From e817d833efc61560c0ce1b0c8d5d00b86c38f1ce Mon Sep 17 00:00:00 2001 From: Patrick Franz Date: Tue, 27 Dec 2022 22:27:47 +0100 Subject: [PATCH] Import qt6-tools_6.4.2~rc1.orig.tar.xz [dgit import orig qt6-tools_6.4.2~rc1.orig.tar.xz] --- .QT-ENTERPRISE-LICENSE-AGREEMENT | 1977 ++ .cmake.conf | 2 + .gitmodules | 3 + .tag | 1 + CMakeLists.txt | 31 + LICENSES/BSD-3-Clause.txt | 9 + LICENSES/BSL-1.0.txt | 9 + LICENSES/GFDL-1.3-no-invariants-only.txt | 451 + LICENSES/GPL-2.0-only.txt | 339 + LICENSES/GPL-3.0-only.txt | 674 + LICENSES/LGPL-3.0-only.txt | 165 + LICENSES/LicenseRef-Qt-Commercial.txt | 8 + LICENSES/Qt-GPL-exception-1.0.txt | 22 + cmake/FindWrapLibClang.cmake | 81 + coin/module_config.yaml | 17 + conanfile.py | 57 + configure.cmake | 128 + dependencies.yaml | 10 + dist/changes-5.0.1 | 71 + dist/changes-5.0.2 | 25 + dist/changes-5.1.0 | 48 + dist/changes-5.1.1 | 25 + dist/changes-5.10.0 | 27 + dist/changes-5.10.1 | 35 + dist/changes-5.11.0 | 65 + dist/changes-5.11.1 | 24 + dist/changes-5.11.2 | 24 + dist/changes-5.11.3 | 32 + dist/changes-5.12.0 | 60 + dist/changes-5.12.1 | 59 + dist/changes-5.12.10 | 26 + dist/changes-5.12.2 | 24 + dist/changes-5.12.3 | 24 + dist/changes-5.12.4 | 33 + dist/changes-5.12.5 | 37 + dist/changes-5.13.0 | 37 + dist/changes-5.13.1 | 29 + dist/changes-5.13.2 | 27 + dist/changes-5.14.0 | 63 + dist/changes-5.14.1 | 26 + dist/changes-5.14.2 | 24 + dist/changes-5.15.0 | 58 + dist/changes-5.15.1 | 47 + dist/changes-5.15.2 | 72 + dist/changes-5.2.0 | 59 + dist/changes-5.2.1 | 42 + dist/changes-5.6.3 | 27 + dist/changes-5.7.0 | 32 + dist/changes-5.8.0 | 41 + dist/changes-5.9.0 | 34 + dist/changes-5.9.1 | 63 + dist/changes-5.9.2 | 28 + dist/changes-5.9.3 | 24 + dist/changes-5.9.4 | 28 + dist/changes-5.9.5 | 34 + dist/changes-5.9.6 | 24 + dist/changes-6.0.0 | 16 + examples/CMakeLists.txt | 21 + examples/assistant/CMakeLists.txt | 2 + examples/assistant/assistant.pro | 5 + .../doc/images/simpletextviewer-example.png | Bin 0 -> 63132 bytes .../simpletextviewer-findfiledialog.png | Bin 0 -> 12421 bytes .../images/simpletextviewer-mainwindow.png | Bin 0 -> 14167 bytes examples/assistant/doc/src/remotecontrol.qdoc | 10 + .../assistant/doc/src/simpletextviewer.qdoc | 427 + .../assistant/remotecontrol/CMakeLists.txt | 47 + examples/assistant/remotecontrol/enter.png | Bin 0 -> 315 bytes examples/assistant/remotecontrol/main.cpp | 14 + .../assistant/remotecontrol/remotecontrol.cpp | 137 + .../assistant/remotecontrol/remotecontrol.h | 42 + .../assistant/remotecontrol/remotecontrol.pro | 12 + .../assistant/remotecontrol/remotecontrol.qrc | 5 + .../assistant/remotecontrol/remotecontrol.ui | 228 + .../assistant/simpletextviewer/CMakeLists.txt | 41 + .../assistant/simpletextviewer/assistant.cpp | 111 + .../assistant/simpletextviewer/assistant.h | 30 + .../simpletextviewer/documentation/about.txt | 9 + .../documentation/browse.html | 34 + .../documentation/filedialog.html | 48 + .../documentation/findfile.html | 32 + .../documentation/images/browse.png | Bin 0 -> 21553 bytes .../documentation/images/fadedfilemenu.png | Bin 0 -> 9589 bytes .../documentation/images/filedialog.png | Bin 0 -> 12318 bytes .../documentation/images/handbook.png | Bin 0 -> 1060 bytes .../documentation/images/icon.png | Bin 0 -> 5513 bytes .../documentation/images/mainwindow.png | Bin 0 -> 12769 bytes .../documentation/images/open.png | Bin 0 -> 11697 bytes .../documentation/images/wildcard.png | Bin 0 -> 11266 bytes .../simpletextviewer/documentation/index.html | 41 + .../simpletextviewer/documentation/intro.html | 28 + .../documentation/openfile.html | 36 + .../documentation/simpletextviewer.qch | Bin 0 -> 155648 bytes .../documentation/simpletextviewer.qhc | Bin 0 -> 16384 bytes .../documentation/simpletextviewer.qhcp | 30 + .../documentation/simpletextviewer.qhp | 49 + .../documentation/wildcardmatching.html | 57 + .../simpletextviewer/findfiledialog.cpp | 185 + .../simpletextviewer/findfiledialog.h | 61 + examples/assistant/simpletextviewer/main.cpp | 14 + .../assistant/simpletextviewer/mainwindow.cpp | 109 + .../assistant/simpletextviewer/mainwindow.h | 50 + .../simpletextviewer/simpletextviewer.pro | 19 + .../assistant/simpletextviewer/textedit.cpp | 37 + .../assistant/simpletextviewer/textedit.h | 23 + examples/designer/CMakeLists.txt | 16 + examples/designer/README | 10 + .../designer/calculatorbuilder/CMakeLists.txt | 48 + .../calculatorbuilder/calculatorbuilder.pro | 10 + .../calculatorbuilder/calculatorbuilder.qrc | 5 + .../calculatorbuilder/calculatorform.cpp | 57 + .../calculatorbuilder/calculatorform.h | 33 + .../calculatorbuilder/calculatorform.ui | 303 + examples/designer/calculatorbuilder/main.cpp | 16 + .../designer/calculatorform/CMakeLists.txt | 35 + .../calculatorform/calculatorform.cpp | 26 + .../designer/calculatorform/calculatorform.h | 28 + .../calculatorform/calculatorform.pro | 11 + .../designer/calculatorform/calculatorform.ui | 284 + examples/designer/calculatorform/main.cpp | 15 + .../containerextension/CMakeLists.txt | 38 + .../containerextension/containerextension.pro | 38 + .../containerextension/multipagewidget.cpp | 102 + .../containerextension/multipagewidget.h | 51 + .../multipagewidgetcontainerextension.cpp | 74 + .../multipagewidgetcontainerextension.h | 39 + .../multipagewidgetextensionfactory.cpp | 25 + .../multipagewidgetextensionfactory.h | 26 + .../multipagewidgetplugin.cpp | 154 + .../multipagewidgetplugin.h | 46 + .../customwidgetplugin/CMakeLists.txt | 36 + .../customwidgetplugin/analogclock.cpp | 76 + .../designer/customwidgetplugin/analogclock.h | 21 + .../customwidgetplugin/customwidgetplugin.cpp | 119 + .../customwidgetplugin/customwidgetplugin.h | 35 + .../customwidgetplugin/customwidgetplugin.pro | 32 + examples/designer/designer.pro | 20 + .../designer/doc/images/arthurplugin-demo.png | Bin 0 -> 77481 bytes .../doc/images/calculatorbuilder-example.png | Bin 0 -> 4326 bytes .../doc/images/calculatorform-example.png | Bin 0 -> 3967 bytes .../doc/images/containerextension-example.png | Bin 0 -> 43032 bytes .../doc/images/customwidgetplugin-example.png | Bin 0 -> 2175 bytes .../doc/images/taskmenuextension-dialog.png | Bin 0 -> 15163 bytes .../taskmenuextension-example-faded.png | Bin 0 -> 5596 bytes .../doc/images/taskmenuextension-example.png | Bin 0 -> 5014 bytes .../doc/images/taskmenuextension-menu.png | Bin 0 -> 3067 bytes .../doc/images/worldtimeclock-connection.png | Bin 0 -> 12119 bytes .../images/worldtimeclock-signalandslot.png | Bin 0 -> 9907 bytes .../images/worldtimeclockbuilder-example.png | Bin 0 -> 8168 bytes .../images/worldtimeclockplugin-example.png | Bin 0 -> 13232 bytes .../doc_src_examples_containerextension.pro | 7 + .../doc_src_examples_customwidgetplugin.pro | 7 + .../doc_src_examples_taskmenuextension.pro | 7 + .../doc_src_examples_worldtimeclockplugin.pro | 7 + .../designer/doc/src/calculatorbuilder.qdoc | 95 + examples/designer/doc/src/calculatorform.qdoc | 91 + .../designer/doc/src/containerextension.qdoc | 471 + .../designer/doc/src/customwidgetplugin.qdoc | 193 + .../designer/doc/src/taskmenuextension.qdoc | 410 + .../doc/src/worldtimeclockbuilder.qdoc | 73 + .../doc/src/worldtimeclockplugin.qdoc | 164 + .../designer/taskmenuextension/CMakeLists.txt | 38 + .../taskmenuextension/taskmenuextension.pro | 36 + .../designer/taskmenuextension/tictactoe.cpp | 140 + .../designer/taskmenuextension/tictactoe.h | 47 + .../taskmenuextension/tictactoedialog.cpp | 63 + .../taskmenuextension/tictactoedialog.h | 35 + .../taskmenuextension/tictactoeplugin.cpp | 101 + .../taskmenuextension/tictactoeplugin.h | 43 + .../taskmenuextension/tictactoetaskmenu.cpp | 63 + .../taskmenuextension/tictactoetaskmenu.h | 50 + .../worldtimeclockbuilder/CMakeLists.txt | 49 + .../designer/worldtimeclockbuilder/form.ui | 162 + .../designer/worldtimeclockbuilder/main.cpp | 33 + .../worldtimeclockbuilder.pro | 8 + .../worldtimeclockbuilder.qrc | 5 + .../worldtimeclockplugin/CMakeLists.txt | 36 + .../worldtimeclockplugin/worldtimeclock.cpp | 84 + .../worldtimeclockplugin/worldtimeclock.h | 35 + .../worldtimeclockplugin.cpp | 83 + .../worldtimeclockplugin.h | 39 + .../worldtimeclockplugin.pro | 30 + examples/examples.pro | 8 + examples/help/CMakeLists.txt | 1 + examples/help/README | 7 + .../help/contextsensitivehelp/CMakeLists.txt | 39 + .../contextsensitivehelp.pro | 17 + .../contextsensitivehelp/docs/amount.html | 11 + .../contextsensitivehelp/docs/filter.html | 12 + .../contextsensitivehelp/docs/plants.html | 44 + .../help/contextsensitivehelp/docs/rain.html | 11 + .../contextsensitivehelp/docs/source.html | 33 + .../docs/temperature.html | 13 + .../help/contextsensitivehelp/docs/time.html | 11 + .../docs/wateringmachine.qch | Bin 0 -> 61440 bytes .../docs/wateringmachine.qhc | Bin 0 -> 94208 bytes .../docs/wateringmachine.qhcp | 14 + .../docs/wateringmachine.qhp | 25 + .../help/contextsensitivehelp/helpbrowser.cpp | 44 + .../help/contextsensitivehelp/helpbrowser.h | 27 + examples/help/contextsensitivehelp/main.cpp | 13 + .../wateringconfigdialog.cpp | 31 + .../wateringconfigdialog.h | 24 + .../wateringconfigdialog.ui | 446 + .../help/doc/src/contextsensitivehelp.qdoc | 11 + examples/help/help.pro | 4 + examples/linguist/CMakeLists.txt | 3 + examples/linguist/README | 6 + examples/linguist/arrowpad/CMakeLists.txt | 45 + examples/linguist/arrowpad/arrowpad.cpp | 27 + examples/linguist/arrowpad/arrowpad.h | 31 + examples/linguist/arrowpad/arrowpad.pro | 17 + examples/linguist/arrowpad/main.cpp | 28 + examples/linguist/arrowpad/mainwindow.cpp | 24 + examples/linguist/arrowpad/mainwindow.h | 31 + .../doc/images/linguist-arrowpad_en.png | Bin 0 -> 1429 bytes .../doc/images/linguist-arrowpad_fr.png | Bin 0 -> 1671 bytes .../doc/images/linguist-arrowpad_nl.png | Bin 0 -> 1706 bytes .../doc/images/linguist-hellotr_en.png | Bin 0 -> 3367 bytes .../doc/images/linguist-hellotr_la.png | Bin 0 -> 753 bytes .../doc/images/linguist-trollprint_10_en.png | Bin 0 -> 1951 bytes .../images/linguist-trollprint_10_pt_bad.png | Bin 0 -> 2073 bytes .../images/linguist-trollprint_10_pt_good.png | Bin 0 -> 2120 bytes .../doc/images/linguist-trollprint_11_en.png | Bin 0 -> 2019 bytes .../doc/images/linguist-trollprint_11_pt.png | Bin 0 -> 2152 bytes .../snippets/doc_src_examples_arrowpad.cpp | 6 + .../snippets/doc_src_examples_arrowpad.qdoc | 21 + .../snippets/doc_src_examples_hellotr.qdoc | 38 + .../snippets/doc_src_examples_trollprint.cpp | 40 + examples/linguist/doc/src/arrowpad.qdoc | 209 + examples/linguist/doc/src/hellotr.qdoc | 163 + examples/linguist/doc/src/trollprint.qdoc | 240 + examples/linguist/hellotr/CMakeLists.txt | 43 + examples/linguist/hellotr/hellotr.pro | 12 + examples/linguist/hellotr/main.cpp | 34 + examples/linguist/linguist.pro | 4 + examples/linguist/trollprint/CMakeLists.txt | 42 + examples/linguist/trollprint/main.cpp | 25 + examples/linguist/trollprint/mainwindow.cpp | 58 + examples/linguist/trollprint/mainwindow.h | 37 + examples/linguist/trollprint/printpanel.cpp | 48 + examples/linguist/trollprint/printpanel.h | 32 + examples/linguist/trollprint/trollprint.pro | 13 + examples/linguist/trollprint/trollprint_pt.ts | 65 + examples/uitools/CMakeLists.txt | 2 + .../images/multipleinheritance-example.png | Bin 0 -> 6974 bytes .../textfinder-example-userinterface.png | Bin 0 -> 7900 bytes .../uitools/doc/src/multipleinheritance.qdoc | 72 + examples/uitools/doc/src/textfinder.qdoc | 154 + .../multipleinheritance/CMakeLists.txt | 35 + .../multipleinheritance/calculatorform.cpp | 28 + .../multipleinheritance/calculatorform.h | 25 + .../multipleinheritance/calculatorform.ui | 303 + examples/uitools/multipleinheritance/main.cpp | 15 + .../multipleinheritance.pro | 11 + examples/uitools/textfinder/CMakeLists.txt | 49 + examples/uitools/textfinder/forms/input.txt | 3 + .../uitools/textfinder/forms/textfinder.ui | 95 + examples/uitools/textfinder/main.cpp | 17 + examples/uitools/textfinder/textfinder.cpp | 114 + examples/uitools/textfinder/textfinder.h | 33 + examples/uitools/textfinder/textfinder.pro | 10 + examples/uitools/textfinder/textfinder.qrc | 6 + examples/uitools/uitools.pro | 4 + .../QtDesigner/private/abstractdialoggui_p.h | 1 + .../private/abstractintrospection_p.h | 1 + .../6.4.2/QtDesigner/private/actioneditor_p.h | 1 + .../QtDesigner/private/actionprovider_p.h | 1 + .../QtDesigner/private/actionrepository_p.h | 1 + .../6.4.2/QtDesigner/private/codedialog_p.h | 1 + .../QtDesigner/private/connectionedit_p.h | 1 + .../QtDesigner/private/csshighlighter_p.h | 1 + .../QtDesigner/private/deviceprofile_p.h | 1 + .../6.4.2/QtDesigner/private/dialoggui_p.h | 1 + .../QtDesigner/private/extensionfactory_p.h | 1 + .../QtDesigner/private/formbuilderextra_p.h | 1 + .../QtDesigner/private/formlayoutmenu_p.h | 1 + .../QtDesigner/private/formwindowbase_p.h | 1 + .../6.4.2/QtDesigner/private/grid_p.h | 1 + .../6.4.2/QtDesigner/private/gridpanel_p.h | 1 + .../QtDesigner/private/htmlhighlighter_p.h | 1 + .../6.4.2/QtDesigner/private/iconloader_p.h | 1 + .../6.4.2/QtDesigner/private/iconselector_p.h | 1 + .../QtDesigner/private/invisible_widget_p.h | 1 + .../6.4.2/QtDesigner/private/layout_p.h | 1 + .../6.4.2/QtDesigner/private/layoutinfo_p.h | 1 + .../6.4.2/QtDesigner/private/lib_pch.h | 1 + .../6.4.2/QtDesigner/private/metadatabase_p.h | 1 + .../6.4.2/QtDesigner/private/morphmenu_p.h | 1 + .../QtDesigner/private/newactiondialog_p.h | 1 + .../QtDesigner/private/newformwidget_p.h | 1 + .../6.4.2/QtDesigner/private/orderdialog_p.h | 1 + .../QtDesigner/private/plaintexteditor_p.h | 1 + .../6.4.2/QtDesigner/private/plugindialog_p.h | 1 + .../QtDesigner/private/pluginmanager_p.h | 1 + .../private/previewconfigurationwidget_p.h | 1 + .../QtDesigner/private/previewmanager_p.h | 1 + .../QtDesigner/private/promotionmodel_p.h | 1 + .../QtDesigner/private/promotiontaskmenu_p.h | 1 + .../6.4.2/QtDesigner/private/properties_p.h | 1 + .../QtDesigner/private/propertylineedit_p.h | 1 + .../QtDesigner/private/qdesigner_command2_p.h | 1 + .../QtDesigner/private/qdesigner_command_p.h | 1 + .../QtDesigner/private/qdesigner_dnditem_p.h | 1 + .../private/qdesigner_dockwidget_p.h | 1 + .../private/qdesigner_formbuilder_p.h | 1 + .../private/qdesigner_formeditorcommand_p.h | 1 + .../private/qdesigner_formwindowcommand_p.h | 1 + .../private/qdesigner_formwindowmanager_p.h | 1 + .../private/qdesigner_introspection_p.h | 1 + .../private/qdesigner_membersheet_p.h | 1 + .../QtDesigner/private/qdesigner_menu_p.h | 1 + .../QtDesigner/private/qdesigner_menubar_p.h | 1 + .../private/qdesigner_objectinspector_p.h | 1 + .../private/qdesigner_promotion_p.h | 1 + .../private/qdesigner_promotiondialog_p.h | 1 + .../private/qdesigner_propertycommand_p.h | 1 + .../private/qdesigner_propertyeditor_p.h | 1 + .../private/qdesigner_propertysheet_p.h | 1 + .../private/qdesigner_qsettings_p.h | 1 + .../private/qdesigner_stackedbox_p.h | 1 + .../private/qdesigner_tabwidget_p.h | 1 + .../QtDesigner/private/qdesigner_taskmenu_p.h | 1 + .../QtDesigner/private/qdesigner_toolbar_p.h | 1 + .../QtDesigner/private/qdesigner_toolbox_p.h | 1 + .../QtDesigner/private/qdesigner_utils_p.h | 1 + .../QtDesigner/private/qdesigner_widget_p.h | 1 + .../private/qdesigner_widgetbox_p.h | 1 + .../private/qdesigner_widgetitem_p.h | 1 + .../QtDesigner/private/qlayout_widget_p.h | 1 + .../QtDesigner/private/qsimpleresource_p.h | 1 + .../private/qtresourceeditordialog_p.h | 1 + .../QtDesigner/private/qtresourcemodel_p.h | 1 + .../QtDesigner/private/qtresourceview_p.h | 1 + .../6.4.2/QtDesigner/private/rcc_p.h | 1 + .../QtDesigner/private/resourcebuilder_p.h | 1 + .../QtDesigner/private/richtexteditor_p.h | 1 + .../QtDesigner/private/selectsignaldialog_p.h | 1 + .../6.4.2/QtDesigner/private/shared_enums_p.h | 1 + .../QtDesigner/private/shared_global_p.h | 1 + .../QtDesigner/private/shared_settings_p.h | 1 + .../QtDesigner/private/sheet_delegate_p.h | 1 + .../QtDesigner/private/signalslotdialog_p.h | 1 + .../QtDesigner/private/spacer_widget_p.h | 1 + .../QtDesigner/private/stylesheeteditor_p.h | 1 + .../6.4.2/QtDesigner/private/textbuilder_p.h | 1 + .../QtDesigner/private/textpropertyeditor_p.h | 1 + .../6.4.2/QtDesigner/private/ui4_p.h | 1 + .../QtDesigner/private/widgetdatabase_p.h | 1 + .../QtDesigner/private/widgetfactory_p.h | 1 + .../6.4.2/QtDesigner/private/zoomwidget_p.h | 1 + include/QtDesigner/QAbstractExtensionFactory | 1 + include/QtDesigner/QAbstractExtensionManager | 1 + include/QtDesigner/QAbstractFormBuilder | 1 + .../QtDesigner/QDesignerActionEditorInterface | 1 + include/QtDesigner/QDesignerComponents | 1 + .../QtDesigner/QDesignerContainerExtension | 1 + .../QDesignerCustomWidgetCollectionInterface | 12 + .../QtDesigner/QDesignerCustomWidgetInterface | 12 + include/QtDesigner/QDesignerDnDItemInterface | 1 + .../QDesignerDynamicPropertySheetExtension | 1 + include/QtDesigner/QDesignerExportWidget | 12 + .../QtDesigner/QDesignerExtraInfoExtension | 1 + .../QtDesigner/QDesignerFormEditorInterface | 1 + .../QDesignerFormEditorPluginInterface | 1 + .../QDesignerFormWindowCursorInterface | 1 + .../QtDesigner/QDesignerFormWindowInterface | 1 + .../QDesignerFormWindowManagerInterface | 1 + .../QDesignerFormWindowToolInterface | 1 + include/QtDesigner/QDesignerIntegration | 1 + .../QtDesigner/QDesignerIntegrationInterface | 1 + include/QtDesigner/QDesignerLanguageExtension | 1 + .../QDesignerLayoutDecorationExtension | 1 + .../QtDesigner/QDesignerMemberSheetExtension | 1 + .../QtDesigner/QDesignerMetaDataBaseInterface | 1 + .../QDesignerMetaDataBaseItemInterface | 1 + .../QDesignerNewFormWidgetInterface | 1 + .../QDesignerObjectInspectorInterface | 1 + .../QtDesigner/QDesignerOptionsPageInterface | 1 + .../QtDesigner/QDesignerPromotionInterface | 1 + .../QDesignerPropertyEditorInterface | 1 + .../QDesignerPropertySheetExtension | 1 + .../QDesignerResourceBrowserInterface | 1 + include/QtDesigner/QDesignerSettingsInterface | 1 + include/QtDesigner/QDesignerTaskMenuExtension | 1 + .../QtDesigner/QDesignerWidgetBoxInterface | 1 + .../QDesignerWidgetDataBaseInterface | 1 + .../QDesignerWidgetDataBaseItemInterface | 1 + .../QDesignerWidgetFactoryInterface | 1 + include/QtDesigner/QExtensionFactory | 1 + include/QtDesigner/QExtensionManager | 1 + include/QtDesigner/QFormBuilder | 1 + include/QtDesigner/QtDesigner | 37 + include/QtDesigner/QtDesignerVersion | 1 + include/QtDesigner/abstractactioneditor.h | 1 + include/QtDesigner/abstractdnditem.h | 1 + include/QtDesigner/abstractformbuilder.h | 1 + include/QtDesigner/abstractformeditor.h | 1 + include/QtDesigner/abstractformeditorplugin.h | 1 + include/QtDesigner/abstractformwindow.h | 1 + include/QtDesigner/abstractformwindowcursor.h | 1 + .../QtDesigner/abstractformwindowmanager.h | 1 + include/QtDesigner/abstractformwindowtool.h | 1 + include/QtDesigner/abstractintegration.h | 1 + include/QtDesigner/abstractlanguage.h | 1 + include/QtDesigner/abstractmetadatabase.h | 1 + include/QtDesigner/abstractnewformwidget.h | 1 + include/QtDesigner/abstractobjectinspector.h | 1 + include/QtDesigner/abstractoptionspage.h | 1 + .../QtDesigner/abstractpromotioninterface.h | 1 + include/QtDesigner/abstractpropertyeditor.h | 1 + include/QtDesigner/abstractresourcebrowser.h | 1 + include/QtDesigner/abstractsettings.h | 1 + include/QtDesigner/abstractwidgetbox.h | 1 + include/QtDesigner/abstractwidgetdatabase.h | 1 + include/QtDesigner/abstractwidgetfactory.h | 1 + include/QtDesigner/container.h | 1 + include/QtDesigner/customwidget.h | 12 + include/QtDesigner/default_extensionfactory.h | 1 + include/QtDesigner/dynamicpropertysheet.h | 1 + include/QtDesigner/extension.h | 1 + include/QtDesigner/extension_global.h | 1 + include/QtDesigner/extrainfo.h | 1 + include/QtDesigner/formbuilder.h | 1 + include/QtDesigner/headers.pri | 6 + include/QtDesigner/layoutdecoration.h | 1 + include/QtDesigner/membersheet.h | 1 + include/QtDesigner/propertysheet.h | 1 + include/QtDesigner/qdesigner_components.h | 1 + .../QtDesigner/qdesigner_components_global.h | 1 + include/QtDesigner/qdesignerexportwidget.h | 12 + include/QtDesigner/qextensionmanager.h | 1 + include/QtDesigner/qtdesignerversion.h | 9 + include/QtDesigner/sdk_global.h | 1 + include/QtDesigner/taskmenu.h | 1 + include/QtDesigner/uilib_global.h | 1 + .../QtDesignerComponents/private/lib_pch.h | 1 + .../QtDesignerComponents/QtDesignerComponents | 5 + .../QtDesignerComponentsVersion | 1 + include/QtDesignerComponents/headers.pri | 6 + .../qtdesignercomponentsversion.h | 9 + .../QtHelp/private/qfilternamedialog_p.h | 1 + .../QtHelp/private/qhelpcollectionhandler_p.h | 1 + .../6.4.2/QtHelp/private/qhelpdbreader_p.h | 1 + .../6.4.2/QtHelp/private/qhelpengine_p.h | 1 + .../QtHelp/private/qhelpfiltersettings_p.h | 1 + .../qhelpsearchindexreader_default_p.h | 1 + .../QtHelp/private/qhelpsearchindexreader_p.h | 1 + .../qhelpsearchindexwriter_default_p.h | 1 + .../6.4.2/QtHelp/private/qoptionswidget_p.h | 1 + include/QtHelp/QCompressedHelpInfo | 1 + include/QtHelp/QHelpContentItem | 1 + include/QtHelp/QHelpContentModel | 1 + include/QtHelp/QHelpContentWidget | 1 + include/QtHelp/QHelpEngine | 1 + include/QtHelp/QHelpEngineCore | 1 + include/QtHelp/QHelpFilterData | 1 + include/QtHelp/QHelpFilterEngine | 1 + include/QtHelp/QHelpFilterSettingsWidget | 1 + include/QtHelp/QHelpGlobal | 1 + include/QtHelp/QHelpIndexModel | 1 + include/QtHelp/QHelpIndexWidget | 1 + include/QtHelp/QHelpLink | 1 + include/QtHelp/QHelpSearchEngine | 1 + include/QtHelp/QHelpSearchQuery | 1 + include/QtHelp/QHelpSearchQueryWidget | 1 + include/QtHelp/QHelpSearchResult | 1 + include/QtHelp/QHelpSearchResultWidget | 1 + include/QtHelp/QtHelp | 17 + include/QtHelp/QtHelpVersion | 1 + include/QtHelp/headers.pri | 6 + include/QtHelp/qcompressedhelpinfo.h | 1 + include/QtHelp/qhelp_global.h | 1 + include/QtHelp/qhelpcontentwidget.h | 1 + include/QtHelp/qhelpengine.h | 1 + include/QtHelp/qhelpenginecore.h | 1 + include/QtHelp/qhelpfilterdata.h | 1 + include/QtHelp/qhelpfilterengine.h | 1 + include/QtHelp/qhelpfiltersettingswidget.h | 1 + include/QtHelp/qhelpindexwidget.h | 1 + include/QtHelp/qhelplink.h | 1 + include/QtHelp/qhelpsearchengine.h | 1 + include/QtHelp/qhelpsearchquerywidget.h | 1 + include/QtHelp/qhelpsearchresultwidget.h | 1 + include/QtHelp/qthelpversion.h | 9 + include/QtTools/QtTools | 5 + include/QtTools/QtToolsVersion | 1 + include/QtTools/headers.pri | 6 + include/QtTools/qttoolsversion.h | 9 + .../QDesignerCustomWidgetCollectionInterface | 1 + .../QtUiPlugin/QDesignerCustomWidgetInterface | 1 + include/QtUiPlugin/QDesignerExportWidget | 1 + include/QtUiPlugin/QtUiPlugin | 7 + include/QtUiPlugin/QtUiPluginVersion | 1 + include/QtUiPlugin/customwidget.h | 1 + include/QtUiPlugin/headers.pri | 6 + include/QtUiPlugin/qdesignerexportwidget.h | 1 + include/QtUiPlugin/qtuipluginversion.h | 9 + .../6.4.2/QtUiTools/private/quiloader_p.h | 1 + include/QtUiTools/QUiLoader | 1 + include/QtUiTools/QtUiTools | 7 + include/QtUiTools/QtUiToolsVersion | 1 + include/QtUiTools/headers.pri | 6 + include/QtUiTools/qtuitoolsglobal.h | 1 + include/QtUiTools/qtuitoolsversion.h | 9 + include/QtUiTools/quiloader.h | 1 + qt_cmdline.cmake | 0 src/CMakeLists.txt | 60 + src/assistant/CMakeLists.txt | 53 + src/assistant/assistant/CMakeLists.txt | 189 + src/assistant/assistant/Info_mac.plist | 20 + src/assistant/assistant/aboutdialog.cpp | 149 + src/assistant/assistant/aboutdialog.h | 57 + src/assistant/assistant/assistant.icns | Bin 0 -> 118925 bytes src/assistant/assistant/assistant.ico | Bin 0 -> 125945 bytes src/assistant/assistant/bookmarkdialog.cpp | 197 + src/assistant/assistant/bookmarkdialog.h | 51 + src/assistant/assistant/bookmarkdialog.ui | 156 + .../assistant/bookmarkfiltermodel.cpp | 278 + src/assistant/assistant/bookmarkfiltermodel.h | 80 + src/assistant/assistant/bookmarkitem.cpp | 146 + src/assistant/assistant/bookmarkitem.h | 53 + src/assistant/assistant/bookmarkmanager.cpp | 528 + src/assistant/assistant/bookmarkmanager.h | 128 + .../assistant/bookmarkmanagerwidget.cpp | 289 + .../assistant/bookmarkmanagerwidget.h | 65 + .../assistant/bookmarkmanagerwidget.ui | 137 + src/assistant/assistant/bookmarkmodel.cpp | 423 + src/assistant/assistant/bookmarkmodel.h | 80 + src/assistant/assistant/bookmarkwidget.ui | 85 + src/assistant/assistant/centralwidget.cpp | 609 + src/assistant/assistant/centralwidget.h | 146 + src/assistant/assistant/cmdlineparser.cpp | 333 + src/assistant/assistant/cmdlineparser.h | 78 + src/assistant/assistant/contentwindow.cpp | 168 + src/assistant/assistant/contentwindow.h | 46 + .../doc/images/assistant-assistant.png | Bin 0 -> 47313 bytes .../doc/images/assistant-bookmarks.png | Bin 0 -> 6083 bytes .../doc/images/assistant-dockwidgets.png | Bin 0 -> 42222 bytes .../doc/images/assistant-examples.png | Bin 0 -> 9799 bytes .../assistant/doc/images/assistant-index.png | Bin 0 -> 4038 bytes .../assistant-preferences-documentation.png | Bin 0 -> 9533 bytes .../images/assistant-preferences-filters.png | Bin 0 -> 10729 bytes .../images/assistant-preferences-fonts.png | Bin 0 -> 5394 bytes .../images/assistant-preferences-options.png | Bin 0 -> 5730 bytes .../assistant/doc/images/assistant-search.png | Bin 0 -> 11710 bytes src/assistant/assistant/doc/internal/README | 9 + .../assistant/doc/internal/assistant.qdocconf | 22 + .../assistant/doc/internal/internal.pro | 2 + .../assistant/doc/qtassistant.qdocconf | 41 + .../snippets/doc_src_assistant-manual.qdoc | 111 + .../assistant/doc/src/assistant-example.qdoc | 27 + .../assistant/doc/src/assistant-manual.qdoc | 418 + .../doc/src/assistant-quick-guide.qdoc | 289 + src/assistant/assistant/findwidget.cpp | 195 + src/assistant/assistant/findwidget.h | 62 + src/assistant/assistant/globalactions.cpp | 217 + src/assistant/assistant/globalactions.h | 75 + .../assistant/helpbrowsersupport.cpp | 207 + src/assistant/assistant/helpbrowsersupport.h | 44 + src/assistant/assistant/helpdocsettings.cpp | 195 + src/assistant/assistant/helpdocsettings.h | 46 + .../assistant/helpdocsettingswidget.cpp | 162 + .../assistant/helpdocsettingswidget.h | 37 + .../assistant/helpdocsettingswidget.ui | 76 + src/assistant/assistant/helpenginewrapper.cpp | 778 + src/assistant/assistant/helpenginewrapper.h | 178 + src/assistant/assistant/helpviewer.cpp | 419 + src/assistant/assistant/helpviewer.h | 89 + src/assistant/assistant/helpviewerimpl.cpp | 69 + src/assistant/assistant/helpviewerimpl.h | 111 + src/assistant/assistant/helpviewerimpl_p.h | 96 + .../assistant/helpviewerimpl_qtb.cpp | 373 + .../assistant/helpviewerimpl_qwv.cpp | 370 + .../assistant/images/assistant-128.png | Bin 0 -> 4118 bytes src/assistant/assistant/images/assistant.png | Bin 0 -> 586 bytes src/assistant/assistant/images/bookmark.png | Bin 0 -> 1266 bytes .../assistant/images/closebutton.png | Bin 0 -> 288 bytes .../assistant/images/darkclosebutton.png | Bin 0 -> 170 bytes src/assistant/assistant/images/mac/addtab.png | Bin 0 -> 469 bytes src/assistant/assistant/images/mac/book.png | Bin 0 -> 1477 bytes .../assistant/images/mac/closetab.png | Bin 0 -> 516 bytes .../assistant/images/mac/editcopy.png | Bin 0 -> 1468 bytes src/assistant/assistant/images/mac/find.png | Bin 0 -> 1836 bytes src/assistant/assistant/images/mac/home.png | Bin 0 -> 1807 bytes src/assistant/assistant/images/mac/next.png | Bin 0 -> 1310 bytes .../assistant/images/mac/previous.png | Bin 0 -> 1080 bytes src/assistant/assistant/images/mac/print.png | Bin 0 -> 2087 bytes .../assistant/images/mac/resetzoom.png | Bin 0 -> 1567 bytes .../assistant/images/mac/synctoc.png | Bin 0 -> 1838 bytes src/assistant/assistant/images/mac/zoomin.png | Bin 0 -> 1696 bytes .../assistant/images/mac/zoomout.png | Bin 0 -> 1662 bytes src/assistant/assistant/images/win/addtab.png | Bin 0 -> 314 bytes src/assistant/assistant/images/win/book.png | Bin 0 -> 1109 bytes .../assistant/images/win/closetab.png | Bin 0 -> 375 bytes .../assistant/images/win/editcopy.png | Bin 0 -> 1325 bytes src/assistant/assistant/images/win/find.png | Bin 0 -> 1944 bytes src/assistant/assistant/images/win/home.png | Bin 0 -> 1414 bytes src/assistant/assistant/images/win/next.png | Bin 0 -> 1038 bytes .../assistant/images/win/previous.png | Bin 0 -> 898 bytes src/assistant/assistant/images/win/print.png | Bin 0 -> 1456 bytes .../assistant/images/win/resetzoom.png | Bin 0 -> 1134 bytes .../assistant/images/win/synctoc.png | Bin 0 -> 1235 bytes src/assistant/assistant/images/win/zoomin.png | Bin 0 -> 1208 bytes .../assistant/images/win/zoomout.png | Bin 0 -> 1226 bytes src/assistant/assistant/images/wrap.png | Bin 0 -> 500 bytes src/assistant/assistant/indexwindow.cpp | 198 + src/assistant/assistant/indexwindow.h | 53 + src/assistant/assistant/main.cpp | 381 + src/assistant/assistant/mainwindow.cpp | 1153 + src/assistant/assistant/mainwindow.h | 131 + src/assistant/assistant/openpagesmanager.cpp | 352 + src/assistant/assistant/openpagesmanager.h | 89 + src/assistant/assistant/openpagesmodel.cpp | 83 + src/assistant/assistant/openpagesmodel.h | 42 + src/assistant/assistant/openpagesswitcher.cpp | 156 + src/assistant/assistant/openpagesswitcher.h | 47 + src/assistant/assistant/openpageswidget.cpp | 198 + src/assistant/assistant/openpageswidget.h | 54 + src/assistant/assistant/preferencesdialog.cpp | 250 + src/assistant/assistant/preferencesdialog.h | 64 + src/assistant/assistant/preferencesdialog.ui | 314 + src/assistant/assistant/qtdocinstaller.cpp | 89 + src/assistant/assistant/qtdocinstaller.h | 46 + src/assistant/assistant/remotecontrol.cpp | 273 + src/assistant/assistant/remotecontrol.h | 57 + src/assistant/assistant/searchwidget.cpp | 208 + src/assistant/assistant/searchwidget.h | 52 + src/assistant/assistant/stdinlistener.cpp | 50 + src/assistant/assistant/stdinlistener.h | 31 + src/assistant/assistant/stdinlistener_win.cpp | 48 + src/assistant/assistant/stdinlistener_win.h | 30 + src/assistant/assistant/topicchooser.cpp | 117 + src/assistant/assistant/topicchooser.h | 44 + src/assistant/assistant/topicchooser.ui | 111 + src/assistant/assistant/tracer.h | 37 + src/assistant/assistant/xbelsupport.cpp | 195 + src/assistant/assistant/xbelsupport.h | 49 + src/assistant/help/CMakeLists.txt | 69 + src/assistant/help/doc/qthelp.qdocconf | 40 + .../help/doc/snippets/doc_src_qthelp.cpp | 22 + .../help/doc/snippets/doc_src_qthelp.qdoc | 138 + .../help/doc/src/qthelp-examples.qdoc | 23 + src/assistant/help/doc/src/qthelp-index.qdoc | 41 + src/assistant/help/doc/src/qthelp-module.qdoc | 23 + src/assistant/help/doc/src/qthelp.qdoc | 284 + src/assistant/help/images/1leftarrow.png | Bin 0 -> 669 bytes src/assistant/help/images/1rightarrow.png | Bin 0 -> 706 bytes src/assistant/help/images/3leftarrow.png | Bin 0 -> 832 bytes src/assistant/help/images/3rightarrow.png | Bin 0 -> 820 bytes src/assistant/help/images/mac/minus.png | Bin 0 -> 488 bytes src/assistant/help/images/mac/plus.png | Bin 0 -> 810 bytes src/assistant/help/images/win/minus.png | Bin 0 -> 429 bytes src/assistant/help/images/win/plus.png | Bin 0 -> 709 bytes src/assistant/help/qcompressedhelpinfo.cpp | 148 + src/assistant/help/qcompressedhelpinfo.h | 43 + src/assistant/help/qfilternamedialog.cpp | 40 + src/assistant/help/qfilternamedialog.ui | 55 + src/assistant/help/qfilternamedialog_p.h | 42 + src/assistant/help/qhelp_global.cpp | 39 + src/assistant/help/qhelp_global.h | 30 + src/assistant/help/qhelpcollectionhandler.cpp | 2497 ++ src/assistant/help/qhelpcollectionhandler_p.h | 229 + src/assistant/help/qhelpcontentwidget.cpp | 564 + src/assistant/help/qhelpcontentwidget.h | 100 + src/assistant/help/qhelpdbreader.cpp | 525 + src/assistant/help/qhelpdbreader_p.h | 107 + src/assistant/help/qhelpengine.cpp | 175 + src/assistant/help/qhelpengine.h | 43 + src/assistant/help/qhelpengine_p.h | 103 + src/assistant/help/qhelpenginecore.cpp | 786 + src/assistant/help/qhelpenginecore.h | 118 + src/assistant/help/qhelpfilterdata.cpp | 124 + src/assistant/help/qhelpfilterdata.h | 42 + src/assistant/help/qhelpfilterengine.cpp | 300 + src/assistant/help/qhelpfilterengine.h | 64 + src/assistant/help/qhelpfiltersettings.cpp | 134 + src/assistant/help/qhelpfiltersettings_p.h | 60 + .../help/qhelpfiltersettingswidget.cpp | 388 + .../help/qhelpfiltersettingswidget.h | 41 + .../help/qhelpfiltersettingswidget.ui | 83 + src/assistant/help/qhelpindexwidget.cpp | 378 + src/assistant/help/qhelpindexwidget.h | 80 + src/assistant/help/qhelplink.cpp | 24 + src/assistant/help/qhelplink.h | 21 + src/assistant/help/qhelpsearchengine.cpp | 566 + src/assistant/help/qhelpsearchengine.h | 109 + src/assistant/help/qhelpsearchindexreader.cpp | 53 + .../help/qhelpsearchindexreader_default.cpp | 251 + .../help/qhelpsearchindexreader_default_p.h | 66 + src/assistant/help/qhelpsearchindexreader_p.h | 66 + .../help/qhelpsearchindexwriter_default.cpp | 507 + .../help/qhelpsearchindexwriter_default_p.h | 97 + src/assistant/help/qhelpsearchquerywidget.cpp | 357 + src/assistant/help/qhelpsearchquerywidget.h | 57 + .../help/qhelpsearchresultwidget.cpp | 312 + src/assistant/help/qhelpsearchresultwidget.h | 41 + src/assistant/help/qoptionswidget.cpp | 204 + src/assistant/help/qoptionswidget_p.h | 62 + src/assistant/qhelpgenerator/CMakeLists.txt | 62 + .../qhelpgenerator/collectionconfigreader.cpp | 222 + .../qhelpgenerator/collectionconfigreader.h | 81 + .../qhelpgenerator/helpgenerator.cpp | 849 + src/assistant/qhelpgenerator/helpgenerator.h | 35 + src/assistant/qhelpgenerator/main.cpp | 385 + .../qhelpgenerator/qhelpdatainterface.cpp | 232 + .../qhelpgenerator/qhelpdatainterface_p.h | 98 + .../qhelpgenerator/qhelpprojectdata.cpp | 432 + .../qhelpgenerator/qhelpprojectdata_p.h | 46 + src/assistant/qlitehtml/.clang-format | 117 + src/assistant/qlitehtml/.gitmodules | 3 + src/assistant/qlitehtml/.tag | 1 + src/assistant/qlitehtml/CMakeLists.txt | 34 + .../qlitehtml/LICENSES/Apache-2.0.txt | 73 + .../qlitehtml/LICENSES/BSD-3-Clause.txt | 9 + .../qlitehtml/LICENSES/GPL-3.0-only.txt | 674 + .../LICENSES/LicenseRef-Qt-Commercial.txt | 8 + src/assistant/qlitehtml/LICENSES/MIT.txt | 9 + .../LICENSES/Qt-GPL-exception-1.0.txt | 22 + src/assistant/qlitehtml/README.md | 14 + .../qlitehtml/src/3rdparty/GUMBO-AUTHORS.txt | 2 + .../src/3rdparty/litehtml/.clang-format | 3 + .../litehtml/.github/workflows/cmake.yml | 38 + .../src/3rdparty/litehtml/.gitignore | 183 + .../src/3rdparty/litehtml/CMakeLists.txt | 255 + .../qlitehtml/src/3rdparty/litehtml/LICENSE | 24 + .../qlitehtml/src/3rdparty/litehtml/README.md | 45 + .../litehtml/cmake/litehtmlConfig.cmake | 3 + .../containers/cairo/cairo_container.cpp | 1027 + .../containers/cairo/cairo_container.h | 110 + .../litehtml/containers/cairo/cairo_font.cpp | 379 + .../litehtml/containers/cairo/cairo_font.h | 117 + .../containers/gdiplus/gdiplus_container.cpp | 198 + .../containers/gdiplus/gdiplus_container.h | 29 + .../containers/haiku/container_haiku.cpp | 568 + .../containers/haiku/container_haiku.h | 87 + .../containers/linux/container_linux.cpp | 895 + .../containers/linux/container_linux.h | 104 + .../containers/test/container_test.cpp | 54 + .../litehtml/containers/test/container_test.h | 44 + .../containers/win32/win32_container.cpp | 327 + .../containers/win32/win32_container.h | 65 + .../src/3rdparty/litehtml/include/litehtml.h | 10 + .../litehtml/include/litehtml/attributes.h | 35 + .../litehtml/include/litehtml/background.h | 58 + .../litehtml/include/litehtml/borders.h | 305 + .../3rdparty/litehtml/include/litehtml/box.h | 120 + .../litehtml/include/litehtml/codepoint.h | 51 + .../litehtml/include/litehtml/context.h | 20 + .../litehtml/include/litehtml/css_length.h | 135 + .../litehtml/include/litehtml/css_margins.h | 36 + .../litehtml/include/litehtml/css_offsets.h | 36 + .../litehtml/include/litehtml/css_position.h | 36 + .../litehtml/include/litehtml/css_selector.h | 276 + .../litehtml/include/litehtml/document.h | 117 + .../litehtml/include/litehtml/el_anchor.h | 18 + .../litehtml/include/litehtml/el_base.h | 17 + .../include/litehtml/el_before_after.h | 40 + .../litehtml/include/litehtml/el_body.h | 17 + .../litehtml/include/litehtml/el_break.h | 17 + .../litehtml/include/litehtml/el_cdata.h | 19 + .../litehtml/include/litehtml/el_comment.h | 19 + .../litehtml/include/litehtml/el_div.h | 17 + .../litehtml/include/litehtml/el_font.h | 17 + .../litehtml/include/litehtml/el_image.h | 28 + .../litehtml/include/litehtml/el_li.h | 20 + .../litehtml/include/litehtml/el_link.h | 18 + .../litehtml/include/litehtml/el_para.h | 18 + .../litehtml/include/litehtml/el_script.h | 20 + .../litehtml/include/litehtml/el_space.h | 20 + .../litehtml/include/litehtml/el_style.h | 20 + .../litehtml/include/litehtml/el_table.h | 26 + .../litehtml/include/litehtml/el_td.h | 17 + .../litehtml/include/litehtml/el_text.h | 37 + .../litehtml/include/litehtml/el_title.h | 18 + .../litehtml/include/litehtml/el_tr.h | 18 + .../litehtml/include/litehtml/element.h | 405 + .../3rdparty/litehtml/include/litehtml/html.h | 117 + .../litehtml/include/litehtml/html_tag.h | 248 + .../litehtml/include/litehtml/iterators.h | 89 + .../litehtml/include/litehtml/media_query.h | 77 + .../litehtml/include/litehtml/num_cvt.h | 19 + .../litehtml/include/litehtml/os_types.h | 85 + .../litehtml/include/litehtml/style.h | 95 + .../litehtml/include/litehtml/stylesheet.h | 47 + .../litehtml/include/litehtml/table.h | 251 + .../litehtml/include/litehtml/tstring_view.h | 136 + .../litehtml/include/litehtml/types.h | 750 + .../3rdparty/litehtml/include/litehtml/url.h | 139 + .../litehtml/include/litehtml/url_path.h | 51 + .../litehtml/include/litehtml/utf8_strings.h | 59 + .../litehtml/include/litehtml/web_color.h | 61 + .../src/3rdparty/litehtml/include/master.css | 327 + .../src/3rdparty/litehtml/litehtml.vcxproj | 431 + .../litehtml/litehtml.vcxproj.filters | 371 + .../src/3rdparty/litehtml/src/background.cpp | 76 + .../src/3rdparty/litehtml/src/box.cpp | 432 + .../src/3rdparty/litehtml/src/codepoint.cpp | 82 + .../src/3rdparty/litehtml/src/context.cpp | 12 + .../src/3rdparty/litehtml/src/css_length.cpp | 54 + .../3rdparty/litehtml/src/css_selector.cpp | 263 + .../src/3rdparty/litehtml/src/document.cpp | 979 + .../src/3rdparty/litehtml/src/el_anchor.cpp | 26 + .../src/3rdparty/litehtml/src/el_base.cpp | 13 + .../3rdparty/litehtml/src/el_before_after.cpp | 199 + .../src/3rdparty/litehtml/src/el_body.cpp | 12 + .../src/3rdparty/litehtml/src/el_break.cpp | 13 + .../src/3rdparty/litehtml/src/el_cdata.cpp | 20 + .../src/3rdparty/litehtml/src/el_comment.cpp | 20 + .../src/3rdparty/litehtml/src/el_div.cpp | 18 + .../src/3rdparty/litehtml/src/el_font.cpp | 55 + .../src/3rdparty/litehtml/src/el_image.cpp | 273 + .../src/3rdparty/litehtml/src/el_li.cpp | 35 + .../src/3rdparty/litehtml/src/el_link.cpp | 39 + .../src/3rdparty/litehtml/src/el_para.cpp | 18 + .../src/3rdparty/litehtml/src/el_script.cpp | 25 + .../src/3rdparty/litehtml/src/el_space.cpp | 40 + .../src/3rdparty/litehtml/src/el_style.cpp | 31 + .../src/3rdparty/litehtml/src/el_table.cpp | 105 + .../src/3rdparty/litehtml/src/el_td.cpp | 44 + .../src/3rdparty/litehtml/src/el_text.cpp | 183 + .../src/3rdparty/litehtml/src/el_title.cpp | 15 + .../src/3rdparty/litehtml/src/el_tr.cpp | 46 + .../src/3rdparty/litehtml/src/element.cpp | 405 + .../litehtml/src/gumbo/CMakeLists.txt | 75 + .../src/3rdparty/litehtml/src/gumbo/LICENSE | 202 + .../3rdparty/litehtml/src/gumbo/attribute.c | 44 + .../3rdparty/litehtml/src/gumbo/char_ref.c | 23069 ++++++++++++++++ .../3rdparty/litehtml/src/gumbo/char_ref.rl | 2554 ++ .../src/3rdparty/litehtml/src/gumbo/error.c | 279 + .../litehtml/src/gumbo/include/gumbo.h | 671 + .../src/gumbo/include/gumbo/attribute.h | 37 + .../src/gumbo/include/gumbo/char_ref.h | 60 + .../litehtml/src/gumbo/include/gumbo/error.h | 225 + .../src/gumbo/include/gumbo/insertion_mode.h | 57 + .../litehtml/src/gumbo/include/gumbo/parser.h | 57 + .../src/gumbo/include/gumbo/string_buffer.h | 84 + .../src/gumbo/include/gumbo/string_piece.h | 38 + .../src/gumbo/include/gumbo/tag_enum.h | 153 + .../src/gumbo/include/gumbo/tag_gperf.h | 105 + .../src/gumbo/include/gumbo/tag_sizes.h | 4 + .../src/gumbo/include/gumbo/tag_strings.h | 153 + .../src/gumbo/include/gumbo/token_type.h | 41 + .../src/gumbo/include/gumbo/tokenizer.h | 123 + .../gumbo/include/gumbo/tokenizer_states.h | 103 + .../litehtml/src/gumbo/include/gumbo/utf8.h | 132 + .../litehtml/src/gumbo/include/gumbo/util.h | 60 + .../litehtml/src/gumbo/include/gumbo/vector.h | 67 + .../src/3rdparty/litehtml/src/gumbo/parser.c | 4188 +++ .../litehtml/src/gumbo/string_buffer.c | 110 + .../litehtml/src/gumbo/string_piece.c | 48 + .../src/3rdparty/litehtml/src/gumbo/tag.c | 95 + .../src/3rdparty/litehtml/src/gumbo/tag.in | 150 + .../3rdparty/litehtml/src/gumbo/tokenizer.c | 2897 ++ .../src/3rdparty/litehtml/src/gumbo/utf8.c | 270 + .../src/3rdparty/litehtml/src/gumbo/util.c | 58 + .../src/3rdparty/litehtml/src/gumbo/vector.c | 123 + .../src/gumbo/visualc/include/strings.h | 4 + .../src/3rdparty/litehtml/src/html.cpp | 245 + .../src/3rdparty/litehtml/src/html_tag.cpp | 4808 ++++ .../src/3rdparty/litehtml/src/iterators.cpp | 93 + .../src/3rdparty/litehtml/src/media_query.cpp | 431 + .../src/3rdparty/litehtml/src/num_cvt.cpp | 108 + .../src/3rdparty/litehtml/src/strtod.cpp | 276 + .../src/3rdparty/litehtml/src/style.cpp | 636 + .../src/3rdparty/litehtml/src/stylesheet.cpp | 219 + .../src/3rdparty/litehtml/src/table.cpp | 566 + .../3rdparty/litehtml/src/tstring_view.cpp | 46 + .../src/3rdparty/litehtml/src/url.cpp | 163 + .../src/3rdparty/litehtml/src/url_path.cpp | 86 + .../3rdparty/litehtml/src/utf8_strings.cpp | 97 + .../src/3rdparty/litehtml/src/web_color.cpp | 256 + .../3rdparty/litehtml/test/codepoint_test.cpp | 148 + .../3rdparty/litehtml/test/contextTest.cpp | 18 + .../src/3rdparty/litehtml/test/cssTest.cpp | 579 + .../3rdparty/litehtml/test/documentTest.cpp | 99 + .../litehtml/test/layoutGlobalTest.cpp | 13 + .../3rdparty/litehtml/test/mediaQueryTest.cpp | 257 + .../litehtml/test/tstring_view_test.cpp | 77 + .../3rdparty/litehtml/test/url_path_test.cpp | 150 + .../src/3rdparty/litehtml/test/url_test.cpp | 206 + .../3rdparty/litehtml/test/webColorTest.cpp | 20 + .../src/3rdparty/litehtml/xxd/LICENSE | 339 + .../qlitehtml/src/3rdparty/litehtml/xxd/xxd.c | 892 + .../src/3rdparty/qt_attribution.json | 31 + src/assistant/qlitehtml/src/CMakeLists.txt | 159 + .../qlitehtml/src/container_qpainter.cpp | 1372 + .../qlitehtml/src/container_qpainter.h | 105 + .../qlitehtml/src/container_qpainter_p.h | 144 + src/assistant/qlitehtml/src/qlitehtml.pri | 164 + src/assistant/qlitehtml/src/qlitehtml.qbs | 225 + .../qlitehtml/src/qlitehtml_global.h | 14 + .../qlitehtml/src/qlitehtmlwidget.cpp | 691 + src/assistant/qlitehtml/src/qlitehtmlwidget.h | 78 + .../tests/manual/browser/CMakeLists.txt | 10 + .../qlitehtml/tests/manual/browser/main.cpp | 146 + .../shared/collectionconfiguration.cpp | 294 + .../shared/collectionconfiguration.h | 112 + src/designer/CMakeLists.txt | 6 + src/designer/data/README | 8 + src/designer/data/generate_header.xsl | 482 + src/designer/data/generate_impl.xsl | 845 + src/designer/data/generate_shared.xsl | 347 + src/designer/data/generate_ui | 126 + src/designer/data/ui3.xsd | 353 + src/designer/data/ui4.xsd | 553 + src/designer/src/CMakeLists.txt | 18 + src/designer/src/components/CMakeLists.txt | 3 + .../components/buddyeditor/buddyeditor.cpp | 396 + .../src/components/buddyeditor/buddyeditor.h | 54 + .../components/buddyeditor/buddyeditor.json | 1 + .../buddyeditor/buddyeditor_global.h | 19 + .../buddyeditor/buddyeditor_plugin.cpp | 90 + .../buddyeditor/buddyeditor_plugin.h | 56 + .../buddyeditor/buddyeditor_tool.cpp | 72 + .../components/buddyeditor/buddyeditor_tool.h | 51 + .../formeditor/default_actionprovider.cpp | 171 + .../formeditor/default_actionprovider.h | 93 + .../formeditor/default_container.cpp | 135 + .../components/formeditor/default_container.h | 184 + .../formeditor/default_layoutdecoration.cpp | 41 + .../formeditor/default_layoutdecoration.h | 31 + .../components/formeditor/defaultbrushes.xml | 542 + .../formeditor/deviceprofiledialog.cpp | 173 + .../formeditor/deviceprofiledialog.h | 66 + .../formeditor/deviceprofiledialog.ui | 112 + .../src/components/formeditor/dpi_chooser.cpp | 168 + .../src/components/formeditor/dpi_chooser.h | 56 + .../formeditor/embeddedoptionspage.cpp | 419 + .../formeditor/embeddedoptionspage.h | 67 + .../src/components/formeditor/formeditor.cpp | 152 + .../src/components/formeditor/formeditor.h | 31 + .../components/formeditor/formeditor_global.h | 19 + .../formeditor/formeditor_optionspage.cpp | 175 + .../formeditor/formeditor_optionspage.h | 43 + .../src/components/formeditor/formwindow.cpp | 2986 ++ .../src/components/formeditor/formwindow.h | 352 + .../formeditor/formwindow_dnditem.cpp | 79 + .../formeditor/formwindow_dnditem.h | 27 + .../formeditor/formwindow_widgetstack.cpp | 180 + .../formeditor/formwindow_widgetstack.h | 64 + .../formeditor/formwindowcursor.cpp | 171 + .../components/formeditor/formwindowcursor.h | 55 + .../formeditor/formwindowmanager.cpp | 1042 + .../components/formeditor/formwindowmanager.h | 150 + .../formeditor/formwindowsettings.cpp | 247 + .../formeditor/formwindowsettings.h | 47 + .../formeditor/formwindowsettings.ui | 386 + .../formeditor/images/cleartext.png | Bin 0 -> 474 bytes .../components/formeditor/images/color.png | Bin 0 -> 117 bytes .../formeditor/images/configure.png | Bin 0 -> 1016 bytes .../formeditor/images/cursors/arrow.png | Bin 0 -> 171 bytes .../formeditor/images/cursors/busy.png | Bin 0 -> 201 bytes .../formeditor/images/cursors/closedhand.png | Bin 0 -> 147 bytes .../formeditor/images/cursors/cross.png | Bin 0 -> 130 bytes .../formeditor/images/cursors/hand.png | Bin 0 -> 159 bytes .../formeditor/images/cursors/hsplit.png | Bin 0 -> 155 bytes .../formeditor/images/cursors/ibeam.png | Bin 0 -> 124 bytes .../formeditor/images/cursors/no.png | Bin 0 -> 199 bytes .../formeditor/images/cursors/openhand.png | Bin 0 -> 160 bytes .../formeditor/images/cursors/sizeall.png | Bin 0 -> 174 bytes .../formeditor/images/cursors/sizeb.png | Bin 0 -> 161 bytes .../formeditor/images/cursors/sizef.png | Bin 0 -> 161 bytes .../formeditor/images/cursors/sizeh.png | Bin 0 -> 145 bytes .../formeditor/images/cursors/sizev.png | Bin 0 -> 141 bytes .../formeditor/images/cursors/uparrow.png | Bin 0 -> 132 bytes .../formeditor/images/cursors/vsplit.png | Bin 0 -> 161 bytes .../formeditor/images/cursors/wait.png | Bin 0 -> 172 bytes .../formeditor/images/cursors/whatsthis.png | Bin 0 -> 191 bytes .../components/formeditor/images/downplus.png | Bin 0 -> 562 bytes .../formeditor/images/dropdownbutton.png | Bin 0 -> 527 bytes .../src/components/formeditor/images/edit.png | Bin 0 -> 929 bytes .../formeditor/images/editdelete-16.png | Bin 0 -> 553 bytes .../formeditor/images/emptyicon.png | Bin 0 -> 108 bytes .../formeditor/images/filenew-16.png | Bin 0 -> 454 bytes .../formeditor/images/fileopen-16.png | Bin 0 -> 549 bytes .../formeditor/images/leveldown.png | Bin 0 -> 557 bytes .../components/formeditor/images/levelup.png | Bin 0 -> 564 bytes .../formeditor/images/mac/adjustsize.png | Bin 0 -> 1929 bytes .../components/formeditor/images/mac/back.png | Bin 0 -> 678 bytes .../formeditor/images/mac/buddytool.png | Bin 0 -> 2046 bytes .../components/formeditor/images/mac/down.png | Bin 0 -> 594 bytes .../formeditor/images/mac/editbreaklayout.png | Bin 0 -> 2067 bytes .../formeditor/images/mac/editcopy.png | Bin 0 -> 1468 bytes .../formeditor/images/mac/editcut.png | Bin 0 -> 1512 bytes .../formeditor/images/mac/editdelete.png | Bin 0 -> 1097 bytes .../formeditor/images/mac/editform.png | Bin 0 -> 621 bytes .../formeditor/images/mac/editgrid.png | Bin 0 -> 751 bytes .../formeditor/images/mac/edithlayout.png | Bin 0 -> 1395 bytes .../images/mac/edithlayoutsplit.png | Bin 0 -> 1188 bytes .../formeditor/images/mac/editlower.png | Bin 0 -> 595 bytes .../formeditor/images/mac/editpaste.png | Bin 0 -> 1906 bytes .../formeditor/images/mac/editraise.png | Bin 0 -> 1213 bytes .../formeditor/images/mac/editvlayout.png | Bin 0 -> 586 bytes .../images/mac/editvlayoutsplit.png | Bin 0 -> 872 bytes .../formeditor/images/mac/filenew.png | Bin 0 -> 772 bytes .../formeditor/images/mac/fileopen.png | Bin 0 -> 904 bytes .../formeditor/images/mac/filesave.png | Bin 0 -> 1206 bytes .../formeditor/images/mac/forward.png | Bin 0 -> 655 bytes .../formeditor/images/mac/insertimage.png | Bin 0 -> 1280 bytes .../formeditor/images/mac/minus.png | Bin 0 -> 488 bytes .../components/formeditor/images/mac/plus.png | Bin 0 -> 810 bytes .../components/formeditor/images/mac/redo.png | Bin 0 -> 1752 bytes .../formeditor/images/mac/resetproperty.png | Bin 0 -> 169 bytes .../images/mac/resourceeditortool.png | Bin 0 -> 2171 bytes .../formeditor/images/mac/signalslottool.png | Bin 0 -> 1989 bytes .../images/mac/simplifyrichtext.png | Bin 0 -> 1917 bytes .../formeditor/images/mac/tabordertool.png | Bin 0 -> 1963 bytes .../formeditor/images/mac/textanchor.png | Bin 0 -> 2543 bytes .../formeditor/images/mac/textbold.png | Bin 0 -> 1611 bytes .../formeditor/images/mac/textcenter.png | Bin 0 -> 1404 bytes .../formeditor/images/mac/textitalic.png | Bin 0 -> 1164 bytes .../formeditor/images/mac/textjustify.png | Bin 0 -> 1257 bytes .../formeditor/images/mac/textleft.png | Bin 0 -> 1235 bytes .../formeditor/images/mac/textright.png | Bin 0 -> 1406 bytes .../formeditor/images/mac/textsubscript.png | Bin 0 -> 1054 bytes .../formeditor/images/mac/textsuperscript.png | Bin 0 -> 1109 bytes .../formeditor/images/mac/textunder.png | Bin 0 -> 1183 bytes .../components/formeditor/images/mac/undo.png | Bin 0 -> 1746 bytes .../components/formeditor/images/mac/up.png | Bin 0 -> 692 bytes .../formeditor/images/mac/widgettool.png | Bin 0 -> 1874 bytes .../components/formeditor/images/minus-16.png | Bin 0 -> 296 bytes .../components/formeditor/images/plus-16.png | Bin 0 -> 383 bytes .../formeditor/images/prefix-add.png | Bin 0 -> 411 bytes .../components/formeditor/images/qt3logo.png | Bin 0 -> 1101 bytes .../formeditor/images/qtlogo16x16.png | Bin 0 -> 1263 bytes .../formeditor/images/qtlogo24x24.png | Bin 0 -> 349 bytes .../formeditor/images/qtlogo32x32.png | Bin 0 -> 15518 bytes .../formeditor/images/qtlogo64x64.png | Bin 0 -> 1936 bytes .../components/formeditor/images/reload.png | Bin 0 -> 1363 bytes .../formeditor/images/resetproperty.png | Bin 0 -> 169 bytes .../formeditor/images/righttoleft.png | Bin 0 -> 131 bytes .../src/components/formeditor/images/sort.png | Bin 0 -> 563 bytes .../components/formeditor/images/submenu.png | Bin 0 -> 179 bytes .../images/widgets/calendarwidget.png | Bin 0 -> 968 bytes .../formeditor/images/widgets/checkbox.png | Bin 0 -> 817 bytes .../formeditor/images/widgets/columnview.png | Bin 0 -> 518 bytes .../formeditor/images/widgets/combobox.png | Bin 0 -> 853 bytes .../images/widgets/commandlinkbutton.png | Bin 0 -> 1208 bytes .../formeditor/images/widgets/dateedit.png | Bin 0 -> 672 bytes .../images/widgets/datetimeedit.png | Bin 0 -> 1132 bytes .../formeditor/images/widgets/dial.png | Bin 0 -> 978 bytes .../images/widgets/dialogbuttonbox.png | Bin 0 -> 1003 bytes .../formeditor/images/widgets/dockwidget.png | Bin 0 -> 638 bytes .../images/widgets/doublespinbox.png | Bin 0 -> 749 bytes .../images/widgets/fontcombobox.png | Bin 0 -> 966 bytes .../formeditor/images/widgets/frame.png | Bin 0 -> 721 bytes .../images/widgets/graphicsview.png | Bin 0 -> 1182 bytes .../formeditor/images/widgets/groupbox.png | Bin 0 -> 439 bytes .../images/widgets/groupboxcollapsible.png | Bin 0 -> 702 bytes .../formeditor/images/widgets/hscrollbar.png | Bin 0 -> 408 bytes .../formeditor/images/widgets/hslider.png | Bin 0 -> 729 bytes .../formeditor/images/widgets/hsplit.png | Bin 0 -> 164 bytes .../formeditor/images/widgets/label.png | Bin 0 -> 953 bytes .../formeditor/images/widgets/lcdnumber.png | Bin 0 -> 555 bytes .../formeditor/images/widgets/line.png | Bin 0 -> 287 bytes .../formeditor/images/widgets/lineedit.png | Bin 0 -> 405 bytes .../formeditor/images/widgets/listbox.png | Bin 0 -> 797 bytes .../formeditor/images/widgets/listview.png | Bin 0 -> 756 bytes .../formeditor/images/widgets/mdiarea.png | Bin 0 -> 643 bytes .../images/widgets/plaintextedit.png | Bin 0 -> 807 bytes .../formeditor/images/widgets/progress.png | Bin 0 -> 559 bytes .../formeditor/images/widgets/pushbutton.png | Bin 0 -> 408 bytes .../formeditor/images/widgets/radiobutton.png | Bin 0 -> 586 bytes .../formeditor/images/widgets/scrollarea.png | Bin 0 -> 548 bytes .../formeditor/images/widgets/spacer.png | Bin 0 -> 686 bytes .../formeditor/images/widgets/spinbox.png | Bin 0 -> 680 bytes .../formeditor/images/widgets/tabbar.png | Bin 0 -> 623 bytes .../formeditor/images/widgets/table.png | Bin 0 -> 483 bytes .../formeditor/images/widgets/tabwidget.png | Bin 0 -> 572 bytes .../formeditor/images/widgets/textedit.png | Bin 0 -> 823 bytes .../formeditor/images/widgets/timeedit.png | Bin 0 -> 1353 bytes .../formeditor/images/widgets/toolbox.png | Bin 0 -> 783 bytes .../formeditor/images/widgets/toolbutton.png | Bin 0 -> 1167 bytes .../formeditor/images/widgets/vline.png | Bin 0 -> 314 bytes .../formeditor/images/widgets/vscrollbar.png | Bin 0 -> 415 bytes .../formeditor/images/widgets/vslider.png | Bin 0 -> 726 bytes .../formeditor/images/widgets/vspacer.png | Bin 0 -> 677 bytes .../formeditor/images/widgets/widget.png | Bin 0 -> 716 bytes .../formeditor/images/widgets/widgetstack.png | Bin 0 -> 828 bytes .../formeditor/images/widgets/wizard.png | Bin 0 -> 898 bytes .../formeditor/images/win/adjustsize.png | Bin 0 -> 1262 bytes .../components/formeditor/images/win/back.png | Bin 0 -> 678 bytes .../formeditor/images/win/buddytool.png | Bin 0 -> 997 bytes .../components/formeditor/images/win/down.png | Bin 0 -> 594 bytes .../formeditor/images/win/editbreaklayout.png | Bin 0 -> 1321 bytes .../formeditor/images/win/editcopy.png | Bin 0 -> 1325 bytes .../formeditor/images/win/editcut.png | Bin 0 -> 1384 bytes .../formeditor/images/win/editdelete.png | Bin 0 -> 850 bytes .../formeditor/images/win/editform.png | Bin 0 -> 349 bytes .../formeditor/images/win/editgrid.png | Bin 0 -> 349 bytes .../formeditor/images/win/edithlayout.png | Bin 0 -> 455 bytes .../images/win/edithlayoutsplit.png | Bin 0 -> 860 bytes .../formeditor/images/win/editlower.png | Bin 0 -> 1038 bytes .../formeditor/images/win/editpaste.png | Bin 0 -> 1482 bytes .../formeditor/images/win/editraise.png | Bin 0 -> 1045 bytes .../formeditor/images/win/editvlayout.png | Bin 0 -> 340 bytes .../images/win/editvlayoutsplit.png | Bin 0 -> 740 bytes .../formeditor/images/win/filenew.png | Bin 0 -> 768 bytes .../formeditor/images/win/fileopen.png | Bin 0 -> 1662 bytes .../formeditor/images/win/filesave.png | Bin 0 -> 2699 bytes .../formeditor/images/win/forward.png | Bin 0 -> 655 bytes .../formeditor/images/win/insertimage.png | Bin 0 -> 885 bytes .../formeditor/images/win/minus.png | Bin 0 -> 429 bytes .../components/formeditor/images/win/plus.png | Bin 0 -> 709 bytes .../components/formeditor/images/win/redo.png | Bin 0 -> 1212 bytes .../images/win/resourceeditortool.png | Bin 0 -> 1429 bytes .../formeditor/images/win/signalslottool.png | Bin 0 -> 1128 bytes .../images/win/simplifyrichtext.png | Bin 0 -> 1933 bytes .../formeditor/images/win/tabordertool.png | Bin 0 -> 1205 bytes .../formeditor/images/win/textanchor.png | Bin 0 -> 1581 bytes .../formeditor/images/win/textbold.png | Bin 0 -> 1134 bytes .../formeditor/images/win/textcenter.png | Bin 0 -> 627 bytes .../formeditor/images/win/textitalic.png | Bin 0 -> 829 bytes .../formeditor/images/win/textjustify.png | Bin 0 -> 695 bytes .../formeditor/images/win/textleft.png | Bin 0 -> 673 bytes .../formeditor/images/win/textright.png | Bin 0 -> 677 bytes .../formeditor/images/win/textsubscript.png | Bin 0 -> 897 bytes .../formeditor/images/win/textsuperscript.png | Bin 0 -> 864 bytes .../formeditor/images/win/textunder.png | Bin 0 -> 971 bytes .../components/formeditor/images/win/undo.png | Bin 0 -> 1181 bytes .../components/formeditor/images/win/up.png | Bin 0 -> 692 bytes .../formeditor/images/win/widgettool.png | Bin 0 -> 1039 bytes .../formeditor/itemview_propertysheet.cpp | 232 + .../formeditor/itemview_propertysheet.h | 52 + .../formeditor/layout_propertysheet.cpp | 489 + .../formeditor/layout_propertysheet.h | 44 + .../formeditor/line_propertysheet.cpp | 45 + .../formeditor/line_propertysheet.h | 33 + .../formeditor/previewactiongroup.cpp | 108 + .../formeditor/previewactiongroup.h | 52 + .../formeditor/qdesigner_resource.cpp | 2240 ++ .../formeditor/qdesigner_resource.h | 140 + .../qlayoutwidget_propertysheet.cpp | 43 + .../formeditor/qlayoutwidget_propertysheet.h | 34 + .../formeditor/qmainwindow_container.cpp | 180 + .../formeditor/qmainwindow_container.h | 45 + .../formeditor/qmdiarea_container.cpp | 243 + .../formeditor/qmdiarea_container.h | 80 + .../formeditor/qwizard_container.cpp | 183 + .../components/formeditor/qwizard_container.h | 86 + .../formeditor/spacer_propertysheet.cpp | 42 + .../formeditor/spacer_propertysheet.h | 34 + .../formeditor/templateoptionspage.cpp | 146 + .../formeditor/templateoptionspage.h | 72 + .../formeditor/templateoptionspage.ui | 59 + .../formeditor/tool_widgeteditor.cpp | 329 + .../components/formeditor/tool_widgeteditor.h | 69 + .../components/formeditor/widgetselection.cpp | 718 + .../components/formeditor/widgetselection.h | 107 + .../src/components/lib/CMakeLists.txt | 458 + src/designer/src/components/lib/lib_pch.h | 7 + .../components/lib/qdesigner_components.cpp | 229 + .../objectinspector/objectinspector.cpp | 826 + .../objectinspector/objectinspector.h | 57 + .../objectinspector/objectinspector_global.h | 23 + .../objectinspector/objectinspectormodel.cpp | 461 + .../objectinspector/objectinspectormodel_p.h | 129 + .../propertyeditor/brushpropertymanager.cpp | 267 + .../propertyeditor/brushpropertymanager.h | 66 + .../designerpropertymanager.cpp | 2859 ++ .../propertyeditor/designerpropertymanager.h | 306 + .../components/propertyeditor/fontmapping.xml | 35 + .../propertyeditor/fontpropertymanager.cpp | 337 + .../propertyeditor/fontpropertymanager.h | 85 + .../newdynamicpropertydialog.cpp | 160 + .../propertyeditor/newdynamicpropertydialog.h | 66 + .../newdynamicpropertydialog.ui | 109 + .../propertyeditor/paletteeditor.cpp | 757 + .../components/propertyeditor/paletteeditor.h | 184 + .../propertyeditor/paletteeditor.ui | 236 + .../propertyeditor/paletteeditorbutton.cpp | 47 + .../propertyeditor/paletteeditorbutton.h | 48 + .../propertyeditor/previewframe.cpp | 81 + .../components/propertyeditor/previewframe.h | 38 + .../propertyeditor/previewwidget.cpp | 35 + .../components/propertyeditor/previewwidget.h | 28 + .../propertyeditor/previewwidget.ui | 307 + .../propertyeditor/propertyeditor.cpp | 1256 + .../propertyeditor/propertyeditor.h | 169 + .../propertyeditor/propertyeditor_global.h | 23 + .../propertyeditor/qlonglongvalidator.cpp | 106 + .../propertyeditor/qlonglongvalidator.h | 72 + .../propertyeditor/stringlisteditor.cpp | 172 + .../propertyeditor/stringlisteditor.h | 54 + .../propertyeditor/stringlisteditor.ui | 229 + .../propertyeditor/stringlisteditorbutton.cpp | 41 + .../propertyeditor/stringlisteditorbutton.h | 43 + .../signalsloteditor/connectdialog.cpp | 302 + .../signalsloteditor/connectdialog.ui | 150 + .../signalsloteditor/connectdialog_p.h | 71 + .../signalsloteditor/signalslot_utils.cpp | 261 + .../signalsloteditor/signalslot_utils_p.h | 65 + .../signalsloteditor/signalsloteditor.cpp | 523 + .../signalsloteditor/signalsloteditor.h | 57 + .../signalsloteditor/signalsloteditor.json | 1 + .../signalsloteditor_global.h | 19 + .../signalsloteditor/signalsloteditor_p.h | 101 + .../signalsloteditor_plugin.cpp | 92 + .../signalsloteditor_plugin.h | 55 + .../signalsloteditor_tool.cpp | 85 + .../signalsloteditor/signalsloteditor_tool.h | 55 + .../signalsloteditorwindow.cpp | 821 + .../signalsloteditor/signalsloteditorwindow.h | 59 + .../tabordereditor/tabordereditor.cpp | 396 + .../tabordereditor/tabordereditor.h | 71 + .../tabordereditor/tabordereditor.json | 1 + .../tabordereditor/tabordereditor_global.h | 19 + .../tabordereditor/tabordereditor_plugin.cpp | 92 + .../tabordereditor/tabordereditor_plugin.h | 56 + .../tabordereditor/tabordereditor_tool.cpp | 73 + .../tabordereditor/tabordereditor_tool.h | 51 + .../components/taskmenu/button_taskmenu.cpp | 670 + .../src/components/taskmenu/button_taskmenu.h | 132 + .../components/taskmenu/combobox_taskmenu.cpp | 94 + .../components/taskmenu/combobox_taskmenu.h | 56 + .../taskmenu/containerwidget_taskmenu.cpp | 300 + .../taskmenu/containerwidget_taskmenu.h | 119 + .../components/taskmenu/groupbox_taskmenu.cpp | 68 + .../components/taskmenu/groupbox_taskmenu.h | 39 + .../components/taskmenu/inplace_editor.cpp | 99 + .../src/components/taskmenu/inplace_editor.h | 72 + .../taskmenu/inplace_widget_helper.cpp | 86 + .../taskmenu/inplace_widget_helper.h | 51 + .../components/taskmenu/itemlisteditor.cpp | 473 + .../src/components/taskmenu/itemlisteditor.h | 138 + .../src/components/taskmenu/itemlisteditor.ui | 120 + .../components/taskmenu/label_taskmenu.cpp | 80 + .../src/components/taskmenu/label_taskmenu.h | 43 + .../components/taskmenu/layouttaskmenu.cpp | 56 + .../src/components/taskmenu/layouttaskmenu.h | 55 + .../components/taskmenu/lineedit_taskmenu.cpp | 66 + .../components/taskmenu/lineedit_taskmenu.h | 36 + .../taskmenu/listwidget_taskmenu.cpp | 78 + .../components/taskmenu/listwidget_taskmenu.h | 47 + .../components/taskmenu/listwidgeteditor.cpp | 100 + .../components/taskmenu/listwidgeteditor.h | 40 + .../src/components/taskmenu/menutaskmenu.cpp | 70 + .../src/components/taskmenu/menutaskmenu.h | 68 + .../taskmenu/tablewidget_taskmenu.cpp | 76 + .../taskmenu/tablewidget_taskmenu.h | 47 + .../components/taskmenu/tablewidgeteditor.cpp | 427 + .../components/taskmenu/tablewidgeteditor.h | 93 + .../components/taskmenu/tablewidgeteditor.ui | 121 + .../taskmenu/taskmenu_component.cpp | 66 + .../components/taskmenu/taskmenu_component.h | 35 + .../src/components/taskmenu/taskmenu_global.h | 19 + .../components/taskmenu/textedit_taskmenu.cpp | 66 + .../components/taskmenu/textedit_taskmenu.h | 51 + .../components/taskmenu/toolbar_taskmenu.cpp | 73 + .../components/taskmenu/toolbar_taskmenu.h | 61 + .../taskmenu/treewidget_taskmenu.cpp | 75 + .../components/taskmenu/treewidget_taskmenu.h | 47 + .../components/taskmenu/treewidgeteditor.cpp | 611 + .../components/taskmenu/treewidgeteditor.h | 92 + .../components/taskmenu/treewidgeteditor.ui | 221 + .../src/components/widgetbox/widgetbox.cpp | 238 + .../src/components/widgetbox/widgetbox.h | 66 + .../src/components/widgetbox/widgetbox.xml | 939 + .../widgetbox/widgetbox_dnditem.cpp | 190 + .../components/widgetbox/widgetbox_dnditem.h | 29 + .../components/widgetbox/widgetbox_global.h | 19 + .../widgetbox/widgetboxcategorylistview.cpp | 480 + .../widgetbox/widgetboxcategorylistview.h | 79 + .../widgetbox/widgetboxtreewidget.cpp | 979 + .../widgetbox/widgetboxtreewidget.h | 111 + src/designer/src/designer/CMakeLists.txt | 147 + src/designer/src/designer/Info_mac.plist | 35 + src/designer/src/designer/appfontdialog.cpp | 392 + src/designer/src/designer/appfontdialog.h | 63 + src/designer/src/designer/assistantclient.cpp | 155 + src/designer/src/designer/assistantclient.h | 47 + src/designer/src/designer/designer.icns | Bin 0 -> 117397 bytes src/designer/src/designer/designer.ico | Bin 0 -> 125480 bytes src/designer/src/designer/designer_enums.h | 14 + ...ressbook-tutorial-part3-labeled-layout.png | Bin 0 -> 22779 bytes .../doc/images/designer-action-editor.png | Bin 0 -> 20454 bytes .../images/designer-add-custom-toolbar.png | Bin 0 -> 940 bytes .../doc/images/designer-add-files-button.png | Bin 0 -> 1130 bytes .../designer-add-resource-entry-button.png | Bin 0 -> 899 bytes .../doc/images/designer-adding-dockwidget.png | Bin 0 -> 6324 bytes .../designer-adding-dynamic-property.png | Bin 0 -> 9511 bytes .../images/designer-adding-menu-action.png | Bin 0 -> 6414 bytes .../images/designer-adding-toolbar-action.png | Bin 0 -> 4793 bytes .../doc/images/designer-buddy-making.png | Bin 0 -> 8885 bytes .../doc/images/designer-buddy-mode.png | Bin 0 -> 8008 bytes .../doc/images/designer-buddy-tool.png | Bin 0 -> 2046 bytes .../doc/images/designer-choosing-form.png | Bin 0 -> 31407 bytes .../doc/images/designer-code-viewer.png | Bin 0 -> 95042 bytes .../doc/images/designer-connection-dialog.png | Bin 0 -> 29675 bytes .../images/designer-connection-editing.png | Bin 0 -> 9338 bytes .../doc/images/designer-connection-editor.png | Bin 0 -> 8404 bytes .../images/designer-connection-highlight.png | Bin 0 -> 5297 bytes .../doc/images/designer-connection-making.png | Bin 0 -> 6869 bytes .../doc/images/designer-connection-mode.png | Bin 0 -> 9595 bytes .../images/designer-connection-to-form.png | Bin 0 -> 4504 bytes .../doc/images/designer-connection-tool.png | Bin 0 -> 1989 bytes .../images/designer-containers-dockwidget.png | Bin 0 -> 3259 bytes .../doc/images/designer-containers-frame.png | Bin 0 -> 744 bytes .../images/designer-containers-groupbox.png | Bin 0 -> 1969 bytes .../designer-containers-stackedwidget.png | Bin 0 -> 2192 bytes .../images/designer-containers-tabwidget.png | Bin 0 -> 1681 bytes .../images/designer-containers-toolbox.png | Bin 0 -> 6062 bytes .../designer-creating-dynamic-property.png | Bin 0 -> 8528 bytes .../images/designer-creating-menu-entry1.png | Bin 0 -> 4705 bytes .../images/designer-creating-menu-entry2.png | Bin 0 -> 4749 bytes .../images/designer-creating-menu-entry3.png | Bin 0 -> 5031 bytes .../images/designer-creating-menu-entry4.png | Bin 0 -> 5760 bytes .../doc/images/designer-creating-menu.png | Bin 0 -> 2513 bytes .../doc/images/designer-creating-menu1.png | Bin 0 -> 2472 bytes .../doc/images/designer-creating-menu2.png | Bin 0 -> 2513 bytes .../doc/images/designer-creating-menu3.png | Bin 0 -> 2321 bytes .../doc/images/designer-creating-menu4.png | Bin 0 -> 2884 bytes .../doc/images/designer-creating-menubar.png | Bin 0 -> 7485 bytes .../doc/images/designer-creating-toolbar.png | Bin 0 -> 12037 bytes .../doc/images/designer-custom-widget-box.png | Bin 0 -> 9783 bytes .../doc/images/designer-customize-toolbar.png | Bin 0 -> 80321 bytes .../doc/images/designer-dialog-final.png | Bin 0 -> 7267 bytes .../doc/images/designer-dialog-initial.png | Bin 0 -> 26271 bytes .../doc/images/designer-dialog-layout.png | Bin 0 -> 18892 bytes .../doc/images/designer-dialog-preview.png | Bin 0 -> 9911 bytes .../doc/images/designer-disambiguation.png | Bin 0 -> 4767 bytes .../images/designer-dragging-onto-form.png | Bin 0 -> 6291 bytes .../doc/images/designer-edit-resource.png | Bin 0 -> 17929 bytes .../images/designer-edit-resources-button.png | Bin 0 -> 810 bytes .../doc/images/designer-editing-mode.png | Bin 0 -> 7908 bytes .../doc/images/designer-embedded-preview.png | Bin 0 -> 4904 bytes .../doc/images/designer-english-dialog.png | Bin 0 -> 18690 bytes .../designer/doc/images/designer-examples.png | Bin 0 -> 8692 bytes .../doc/images/designer-file-menu.png | Bin 0 -> 4641 bytes .../doc/images/designer-find-icon.png | Bin 0 -> 52951 bytes .../designer-form-layout-cleanlooks.png | Bin 0 -> 7626 bytes .../images/designer-form-layout-macintosh.png | Bin 0 -> 6673 bytes .../images/designer-form-layout-windowsXP.png | Bin 0 -> 7656 bytes .../doc/images/designer-form-layout.png | Bin 0 -> 7090 bytes .../images/designer-form-layoutfunction.png | Bin 0 -> 6864 bytes .../doc/images/designer-form-settings.png | Bin 0 -> 14971 bytes .../doc/images/designer-form-viewcode.png | Bin 0 -> 21529 bytes .../doc/images/designer-french-dialog.png | Bin 0 -> 20524 bytes .../doc/images/designer-getting-started.png | Bin 0 -> 8437 bytes .../doc/images/designer-layout-inserting.png | Bin 0 -> 7736 bytes .../doc/images/designer-main-window.png | Bin 0 -> 30843 bytes .../doc/images/designer-making-connection.png | Bin 0 -> 8709 bytes .../designer-manual-containerextension.png | Bin 0 -> 11868 bytes .../designer-manual-membersheetextension.png | Bin 0 -> 15662 bytes ...designer-manual-propertysheetextension.png | Bin 0 -> 23365 bytes .../designer-manual-taskmenuextension.png | Bin 0 -> 12378 bytes .../images/designer-multiple-screenshot.png | Bin 0 -> 151546 bytes .../doc/images/designer-object-inspector.png | Bin 0 -> 7918 bytes .../images/designer-palette-brush-editor.png | Bin 0 -> 31044 bytes .../doc/images/designer-palette-editor.png | Bin 0 -> 45039 bytes .../designer-palette-gradient-editor.png | Bin 0 -> 73055 bytes .../designer-palette-pattern-editor.png | Bin 0 -> 29906 bytes .../images/designer-preview-device-skin.png | Bin 0 -> 52508 bytes .../designer-preview-deviceskin-selection.png | Bin 0 -> 7110 bytes .../designer-preview-style-selection.png | Bin 0 -> 5590 bytes .../doc/images/designer-preview-style.png | Bin 0 -> 38787 bytes .../images/designer-preview-stylesheet.png | Bin 0 -> 30103 bytes .../doc/images/designer-promoting-widgets.png | Bin 0 -> 16376 bytes .../designer-property-editor-add-dynamic.png | Bin 0 -> 767 bytes .../designer-property-editor-configure.png | Bin 0 -> 941 bytes .../images/designer-property-editor-link.png | Bin 0 -> 14883 bytes ...esigner-property-editor-remove-dynamic.png | Bin 0 -> 322 bytes .../designer-property-editor-toolbar.png | Bin 0 -> 3409 bytes .../doc/images/designer-property-editor.png | Bin 0 -> 35879 bytes .../designer-reload-resources-button.png | Bin 0 -> 1107 bytes .../images/designer-remove-custom-toolbar.png | Bin 0 -> 711 bytes .../designer-remove-resource-entry-button.png | Bin 0 -> 640 bytes .../designer-removing-toolbar-action.png | Bin 0 -> 10914 bytes .../doc/images/designer-removing-toolbar.png | Bin 0 -> 8740 bytes .../doc/images/designer-resource-browser.png | Bin 0 -> 12647 bytes .../doc/images/designer-resource-selector.png | Bin 0 -> 14277 bytes .../doc/images/designer-resource-tool.png | Bin 0 -> 2152 bytes .../doc/images/designer-resources-adding.png | Bin 0 -> 11638 bytes .../doc/images/designer-resources-editing.png | Bin 0 -> 13809 bytes .../doc/images/designer-resources-empty.png | Bin 0 -> 8184 bytes .../doc/images/designer-resources-using.png | Bin 0 -> 4118 bytes .../doc/images/designer-screenshot.png | Bin 0 -> 140233 bytes .../doc/images/designer-selecting-widget.png | Bin 0 -> 7266 bytes .../doc/images/designer-selecting-widgets.png | Bin 0 -> 8080 bytes .../doc/images/designer-set-layout.png | Bin 0 -> 4018 bytes .../doc/images/designer-set-layout2.png | Bin 0 -> 7834 bytes .../doc/images/designer-splitter-layout.png | Bin 0 -> 81182 bytes .../images/designer-stylesheet-options.png | Bin 0 -> 13542 bytes .../doc/images/designer-stylesheet-usage.png | Bin 0 -> 7560 bytes .../doc/images/designer-tab-order-mode.png | Bin 0 -> 9588 bytes .../doc/images/designer-tab-order-tool.png | Bin 0 -> 1868 bytes .../doc/images/designer-widget-box.png | Bin 0 -> 12895 bytes .../doc/images/designer-widget-filter.png | Bin 0 -> 14018 bytes .../doc/images/designer-widget-final.png | Bin 0 -> 8498 bytes .../doc/images/designer-widget-initial.png | Bin 0 -> 14010 bytes .../doc/images/designer-widget-layout.png | Bin 0 -> 13862 bytes .../doc/images/designer-widget-morph.png | Bin 0 -> 19303 bytes .../doc/images/designer-widget-preview.png | Bin 0 -> 9291 bytes .../doc/images/designer-widget-tool.png | Bin 0 -> 1863 bytes .../images/directapproach-calculatorform.png | Bin 0 -> 7718 bytes .../doc/images/qtdesignerextensions.png | Bin 0 -> 51434 bytes .../doc/images/qtdesignerscreenshot.png | Bin 0 -> 144869 bytes .../doc/images/rgbController-arrangement.png | Bin 0 -> 8398 bytes .../rgbController-configure-connection1.png | Bin 0 -> 19812 bytes .../rgbController-configure-connection2.png | Bin 0 -> 24013 bytes .../doc/images/rgbController-final-layout.png | Bin 0 -> 8760 bytes .../images/rgbController-form-gridLayout.png | Bin 0 -> 8711 bytes .../rgbController-no-toplevel-layout.png | Bin 0 -> 1110 bytes .../images/rgbController-property-editing.png | Bin 0 -> 6716 bytes .../doc/images/rgbController-screenshot.png | Bin 0 -> 6726 bytes .../images/rgbController-selectForLayout.png | Bin 0 -> 15080 bytes .../images/rgbController-signalsAndSlots.png | Bin 0 -> 8308 bytes .../images/worldtimeclockplugin-example.png | Bin 0 -> 13055 bytes .../src/designer/doc/qtdesigner.qdocconf | 48 + .../autoconnection/autoconnection.pro | 5 + .../snippets/autoconnection/imagedialog.cpp | 32 + .../doc/snippets/autoconnection/imagedialog.h | 22 + .../snippets/autoconnection/imagedialog.ui | 389 + .../doc/snippets/autoconnection/main.cpp | 14 + .../src/designer/doc/snippets/designer.pro | 6 + .../doc/snippets/imagedialog/imagedialog.pro | 3 + .../doc/snippets/imagedialog/imagedialog.ui | 389 + .../doc/snippets/imagedialog/main.cpp | 16 + ...lib_extension_default_extensionfactory.cpp | 38 + ...s_designer_src_lib_extension_extension.cpp | 18 + ...er_src_lib_extension_qextensionmanager.cpp | 20 + ...esigner_src_lib_sdk_abstractformeditor.cpp | 14 + ...esigner_src_lib_sdk_abstractformwindow.cpp | 28 + ...r_src_lib_sdk_abstractformwindowcursor.cpp | 11 + ..._src_lib_sdk_abstractformwindowmanager.cpp | 14 + ...er_src_lib_sdk_abstractobjectinspector.cpp | 14 + ...ner_src_lib_sdk_abstractpropertyeditor.cpp | 26 + ...designer_src_lib_sdk_abstractwidgetbox.cpp | 33 + ...gner_src_lib_uilib_abstractformbuilder.cpp | 20 + ...ols_designer_src_lib_uilib_formbuilder.cpp | 29 + .../manual/doc_src_designer-manual.cpp | 75 + .../manual/doc_src_designer-manual.js | 6 + .../manual/doc_src_designer-manual.pro | 22 + .../multipleinheritance/imagedialog.cpp | 22 + .../multipleinheritance/imagedialog.h | 17 + .../multipleinheritance/imagedialog.ui | 389 + .../doc/snippets/multipleinheritance/main.cpp | 14 + .../multipleinheritance.pro | 5 + .../snippets/noautoconnection/imagedialog.cpp | 39 + .../snippets/noautoconnection/imagedialog.h | 22 + .../snippets/noautoconnection/imagedialog.ui | 389 + .../doc/snippets/noautoconnection/main.cpp | 14 + .../noautoconnection/noautoconnection.pro | 5 + .../snippets/plugins/doc_src_qtdesigner.cpp | 285 + .../snippets/plugins/doc_src_qtdesigner.pro | 6 + .../singleinheritance/imagedialog.cpp | 22 + .../snippets/singleinheritance/imagedialog.h | 20 + .../snippets/singleinheritance/imagedialog.ui | 389 + .../doc/snippets/singleinheritance/main.cpp | 14 + .../singleinheritance/singleinheritance.pro | 5 + .../uitools/calculatorform/calculatorform.pro | 5 + .../uitools/calculatorform/calculatorform.ui | 303 + .../snippets/uitools/calculatorform/main.cpp | 20 + .../doc/src/designer-custom-widgets.qdoc | 107 + .../designer/doc/src/designer-examples.qdoc | 31 + .../src/designer/doc/src/designer-manual.qdoc | 2869 ++ .../designer/doc/src/qtdesigner-index.qdoc | 44 + .../designer/doc/src/qtdesigner-module.qdoc | 25 + src/designer/src/designer/images/designer.png | Bin 0 -> 4167 bytes src/designer/src/designer/images/mdi.png | Bin 0 -> 59505 bytes src/designer/src/designer/images/sdi.png | Bin 0 -> 61037 bytes .../src/designer/images/workbench.png | Bin 0 -> 2085 bytes src/designer/src/designer/main.cpp | 40 + src/designer/src/designer/mainwindow.cpp | 372 + src/designer/src/designer/mainwindow.h | 150 + src/designer/src/designer/newform.cpp | 189 + src/designer/src/designer/newform.h | 66 + .../src/designer/preferencesdialog.cpp | 81 + src/designer/src/designer/preferencesdialog.h | 44 + .../src/designer/preferencesdialog.ui | 91 + src/designer/src/designer/qdesigner.cpp | 309 + src/designer/src/designer/qdesigner.h | 72 + .../src/designer/qdesigner_actions.cpp | 1345 + src/designer/src/designer/qdesigner_actions.h | 191 + .../designer/qdesigner_appearanceoptions.cpp | 123 + .../designer/qdesigner_appearanceoptions.h | 94 + .../designer/qdesigner_appearanceoptions.ui | 57 + .../src/designer/qdesigner_formwindow.cpp | 256 + .../src/designer/qdesigner_formwindow.h | 59 + src/designer/src/designer/qdesigner_pch.h | 21 + .../src/designer/qdesigner_server.cpp | 113 + src/designer/src/designer/qdesigner_server.h | 51 + .../src/designer/qdesigner_settings.cpp | 212 + .../src/designer/qdesigner_settings.h | 56 + .../src/designer/qdesigner_toolwindow.cpp | 394 + .../src/designer/qdesigner_toolwindow.h | 84 + .../src/designer/qdesigner_workbench.cpp | 1085 + .../src/designer/qdesigner_workbench.h | 177 + .../src/designer/saveformastemplate.cpp | 136 + .../src/designer/saveformastemplate.h | 39 + .../src/designer/saveformastemplate.ui | 130 + src/designer/src/designer/uifile.icns | Bin 0 -> 157015 bytes src/designer/src/designer/versiondialog.cpp | 158 + src/designer/src/designer/versiondialog.h | 20 + src/designer/src/lib/CMakeLists.txt | 447 + .../src/lib/components/qdesigner_components.h | 40 + .../components/qdesigner_components_global.h | 24 + .../extension/default_extensionfactory.cpp | 137 + .../lib/extension/default_extensionfactory.h | 44 + src/designer/src/lib/extension/extension.cpp | 148 + src/designer/src/lib/extension/extension.h | 49 + .../src/lib/extension/extension_global.h | 24 + .../src/lib/extension/qextensionmanager.cpp | 134 + .../src/lib/extension/qextensionmanager.h | 37 + src/designer/src/lib/lib_pch.h | 27 + .../src/lib/sdk/abstractactioneditor.cpp | 83 + .../src/lib/sdk/abstractactioneditor.h | 34 + .../src/lib/sdk/abstractdialoggui.cpp | 119 + .../src/lib/sdk/abstractdialoggui_p.h | 66 + src/designer/src/lib/sdk/abstractdnditem.h | 35 + src/designer/src/lib/sdk/abstractdnditem.qdoc | 74 + .../src/lib/sdk/abstractformeditor.cpp | 569 + src/designer/src/lib/sdk/abstractformeditor.h | 100 + .../src/lib/sdk/abstractformeditorplugin.cpp | 48 + .../src/lib/sdk/abstractformeditorplugin.h | 34 + .../src/lib/sdk/abstractformwindow.cpp | 867 + src/designer/src/lib/sdk/abstractformwindow.h | 159 + .../src/lib/sdk/abstractformwindowcursor.cpp | 214 + .../src/lib/sdk/abstractformwindowcursor.h | 69 + .../src/lib/sdk/abstractformwindowmanager.cpp | 538 + .../src/lib/sdk/abstractformwindowmanager.h | 123 + .../src/lib/sdk/abstractformwindowtool.cpp | 66 + .../src/lib/sdk/abstractformwindowtool.h | 43 + .../src/lib/sdk/abstractintegration.cpp | 751 + .../src/lib/sdk/abstractintegration.h | 153 + .../src/lib/sdk/abstractintrospection.cpp | 496 + .../src/lib/sdk/abstractintrospection_p.h | 144 + src/designer/src/lib/sdk/abstractlanguage.h | 69 + .../src/lib/sdk/abstractmetadatabase.cpp | 130 + .../src/lib/sdk/abstractmetadatabase.h | 60 + .../src/lib/sdk/abstractnewformwidget.cpp | 77 + .../src/lib/sdk/abstractnewformwidget.h | 34 + .../src/lib/sdk/abstractobjectinspector.cpp | 70 + .../src/lib/sdk/abstractobjectinspector.h | 31 + .../src/lib/sdk/abstractoptionspage.h | 30 + .../src/lib/sdk/abstractoptionspage.qdoc | 56 + .../lib/sdk/abstractpromotioninterface.cpp | 74 + .../src/lib/sdk/abstractpromotioninterface.h | 53 + .../src/lib/sdk/abstractpropertyeditor.cpp | 153 + .../src/lib/sdk/abstractpropertyeditor.h | 42 + .../src/lib/sdk/abstractresourcebrowser.cpp | 16 + .../src/lib/sdk/abstractresourcebrowser.h | 33 + src/designer/src/lib/sdk/abstractsettings.h | 34 + .../src/lib/sdk/abstractsettings.qdoc | 23 + .../src/lib/sdk/abstractwidgetbox.cpp | 300 + src/designer/src/lib/sdk/abstractwidgetbox.h | 107 + .../src/lib/sdk/abstractwidgetdatabase.cpp | 322 + .../src/lib/sdk/abstractwidgetdatabase.h | 98 + .../src/lib/sdk/abstractwidgetfactory.cpp | 72 + .../src/lib/sdk/abstractwidgetfactory.h | 37 + src/designer/src/lib/sdk/container.h | 39 + src/designer/src/lib/sdk/container.qdoc | 175 + .../src/lib/sdk/dynamicpropertysheet.h | 42 + .../src/lib/sdk/dynamicpropertysheet.qdoc | 56 + src/designer/src/lib/sdk/extrainfo.cpp | 78 + src/designer/src/lib/sdk/extrainfo.h | 45 + src/designer/src/lib/sdk/layoutdecoration.h | 60 + .../src/lib/sdk/layoutdecoration.qdoc | 125 + src/designer/src/lib/sdk/membersheet.h | 50 + src/designer/src/lib/sdk/membersheet.qdoc | 225 + src/designer/src/lib/sdk/propertysheet.h | 52 + src/designer/src/lib/sdk/propertysheet.qdoc | 288 + src/designer/src/lib/sdk/sdk_global.h | 24 + src/designer/src/lib/sdk/taskmenu.cpp | 13 + src/designer/src/lib/sdk/taskmenu.h | 30 + src/designer/src/lib/sdk/taskmenu.qdoc | 114 + src/designer/src/lib/shared/actioneditor.cpp | 879 + src/designer/src/lib/shared/actioneditor_p.h | 145 + .../src/lib/shared/actionprovider_p.h | 69 + .../src/lib/shared/actionrepository.cpp | 651 + .../src/lib/shared/actionrepository_p.h | 233 + src/designer/src/lib/shared/addlinkdialog.ui | 112 + src/designer/src/lib/shared/codedialog.cpp | 256 + src/designer/src/lib/shared/codedialog_p.h | 70 + .../src/lib/shared/connectionedit.cpp | 1572 ++ .../src/lib/shared/connectionedit_p.h | 285 + .../src/lib/shared/csshighlighter.cpp | 151 + .../src/lib/shared/csshighlighter_p.h | 59 + .../src/lib/shared/defaultgradients.xml | 498 + src/designer/src/lib/shared/deviceprofile.cpp | 420 + src/designer/src/lib/shared/deviceprofile_p.h | 114 + src/designer/src/lib/shared/dialoggui.cpp | 221 + src/designer/src/lib/shared/dialoggui_p.h | 69 + .../src/lib/shared/extensionfactory_p.h | 82 + .../src/lib/shared/formlayoutmenu.cpp | 495 + .../src/lib/shared/formlayoutmenu_p.h | 62 + .../src/lib/shared/formlayoutrowdialog.ui | 166 + .../src/lib/shared/formwindowbase.cpp | 550 + .../src/lib/shared/formwindowbase_p.h | 165 + src/designer/src/lib/shared/grid.cpp | 160 + src/designer/src/lib/shared/grid_p.h | 80 + src/designer/src/lib/shared/gridpanel.cpp | 83 + src/designer/src/lib/shared/gridpanel.ui | 144 + src/designer/src/lib/shared/gridpanel_p.h | 63 + .../src/lib/shared/htmlhighlighter.cpp | 160 + .../src/lib/shared/htmlhighlighter_p.h | 65 + .../src/lib/shared/icon-naming-spec.txt | 309 + src/designer/src/lib/shared/iconloader.cpp | 62 + src/designer/src/lib/shared/iconloader_p.h | 35 + src/designer/src/lib/shared/iconselector.cpp | 592 + src/designer/src/lib/shared/iconselector_p.h | 134 + .../src/lib/shared/invisible_widget.cpp | 19 + .../src/lib/shared/invisible_widget_p.h | 37 + src/designer/src/lib/shared/layout.cpp | 1228 + src/designer/src/lib/shared/layout_p.h | 114 + src/designer/src/lib/shared/layoutinfo.cpp | 268 + src/designer/src/lib/shared/layoutinfo_p.h | 76 + src/designer/src/lib/shared/metadatabase.cpp | 244 + src/designer/src/lib/shared/metadatabase_p.h | 99 + src/designer/src/lib/shared/morphmenu.cpp | 590 + src/designer/src/lib/shared/morphmenu_p.h | 56 + .../src/lib/shared/newactiondialog.cpp | 177 + .../src/lib/shared/newactiondialog.ui | 273 + .../src/lib/shared/newactiondialog_p.h | 92 + src/designer/src/lib/shared/newformwidget.cpp | 556 + src/designer/src/lib/shared/newformwidget.ui | 155 + src/designer/src/lib/shared/newformwidget_p.h | 105 + src/designer/src/lib/shared/orderdialog.cpp | 151 + src/designer/src/lib/shared/orderdialog.ui | 162 + src/designer/src/lib/shared/orderdialog_p.h | 76 + .../src/lib/shared/plaintexteditor.cpp | 81 + .../src/lib/shared/plaintexteditor_p.h | 51 + src/designer/src/lib/shared/plugindialog.cpp | 201 + src/designer/src/lib/shared/plugindialog.ui | 99 + src/designer/src/lib/shared/plugindialog_p.h | 55 + src/designer/src/lib/shared/pluginmanager.cpp | 756 + src/designer/src/lib/shared/pluginmanager_p.h | 124 + .../lib/shared/previewconfigurationwidget.cpp | 328 + .../lib/shared/previewconfigurationwidget.ui | 91 + .../lib/shared/previewconfigurationwidget_p.h | 58 + .../src/lib/shared/previewmanager.cpp | 905 + .../src/lib/shared/previewmanager_p.h | 146 + .../src/lib/shared/promotionmodel.cpp | 169 + .../src/lib/shared/promotionmodel_p.h | 69 + .../src/lib/shared/promotiontaskmenu.cpp | 316 + .../src/lib/shared/promotiontaskmenu_p.h | 111 + .../src/lib/shared/propertylineedit.cpp | 56 + .../src/lib/shared/propertylineedit_p.h | 47 + .../src/lib/shared/qdesigner_command.cpp | 2891 ++ .../src/lib/shared/qdesigner_command2.cpp | 183 + .../src/lib/shared/qdesigner_command2_p.h | 85 + .../src/lib/shared/qdesigner_command_p.h | 1102 + .../src/lib/shared/qdesigner_dnditem.cpp | 266 + .../src/lib/shared/qdesigner_dnditem_p.h | 109 + .../src/lib/shared/qdesigner_dockwidget.cpp | 112 + .../src/lib/shared/qdesigner_dockwidget_p.h | 64 + .../src/lib/shared/qdesigner_formbuilder.cpp | 387 + .../src/lib/shared/qdesigner_formbuilder_p.h | 130 + .../shared/qdesigner_formeditorcommand.cpp | 26 + .../shared/qdesigner_formeditorcommand_p.h | 48 + .../shared/qdesigner_formwindowcommand.cpp | 111 + .../shared/qdesigner_formwindowcommand_p.h | 61 + .../shared/qdesigner_formwindowmanager.cpp | 49 + .../shared/qdesigner_formwindowmanager_p.h | 50 + .../lib/shared/qdesigner_introspection.cpp | 329 + .../lib/shared/qdesigner_introspection_p.h | 46 + .../src/lib/shared/qdesigner_membersheet.cpp | 228 + .../src/lib/shared/qdesigner_membersheet_p.h | 79 + .../src/lib/shared/qdesigner_menu.cpp | 1349 + .../src/lib/shared/qdesigner_menu_p.h | 170 + .../src/lib/shared/qdesigner_menubar.cpp | 925 + .../src/lib/shared/qdesigner_menubar_p.h | 140 + .../lib/shared/qdesigner_objectinspector.cpp | 42 + .../lib/shared/qdesigner_objectinspector_p.h | 65 + .../src/lib/shared/qdesigner_promotion.cpp | 363 + .../src/lib/shared/qdesigner_promotion_p.h | 60 + .../lib/shared/qdesigner_promotiondialog.cpp | 434 + .../lib/shared/qdesigner_promotiondialog_p.h | 132 + .../lib/shared/qdesigner_propertycommand.cpp | 1526 + .../lib/shared/qdesigner_propertycommand_p.h | 269 + .../lib/shared/qdesigner_propertyeditor.cpp | 153 + .../lib/shared/qdesigner_propertyeditor_p.h | 74 + .../lib/shared/qdesigner_propertysheet.cpp | 1700 ++ .../lib/shared/qdesigner_propertysheet_p.h | 238 + .../src/lib/shared/qdesigner_qsettings.cpp | 50 + .../src/lib/shared/qdesigner_qsettings_p.h | 51 + .../src/lib/shared/qdesigner_stackedbox.cpp | 363 + .../src/lib/shared/qdesigner_stackedbox_p.h | 126 + .../src/lib/shared/qdesigner_tabwidget.cpp | 534 + .../src/lib/shared/qdesigner_tabwidget_p.h | 115 + .../src/lib/shared/qdesigner_taskmenu.cpp | 725 + .../src/lib/shared/qdesigner_taskmenu_p.h | 93 + .../src/lib/shared/qdesigner_toolbar.cpp | 450 + .../src/lib/shared/qdesigner_toolbar_p.h | 98 + .../src/lib/shared/qdesigner_toolbox.cpp | 397 + .../src/lib/shared/qdesigner_toolbox_p.h | 102 + .../src/lib/shared/qdesigner_utils.cpp | 782 + .../src/lib/shared/qdesigner_utils_p.h | 496 + .../src/lib/shared/qdesigner_widget.cpp | 68 + .../src/lib/shared/qdesigner_widget_p.h | 84 + .../src/lib/shared/qdesigner_widgetbox.cpp | 232 + .../src/lib/shared/qdesigner_widgetbox_p.h | 63 + .../src/lib/shared/qdesigner_widgetitem.cpp | 308 + .../src/lib/shared/qdesigner_widgetitem_p.h | 109 + .../src/lib/shared/qlayout_widget.cpp | 2053 ++ .../src/lib/shared/qlayout_widget_p.h | 256 + .../src/lib/shared/qsimpleresource.cpp | 231 + .../src/lib/shared/qsimpleresource_p.h | 111 + .../src/lib/shared/qtresourceeditordialog.cpp | 2120 ++ .../src/lib/shared/qtresourceeditordialog.ui | 177 + .../src/lib/shared/qtresourceeditordialog_p.h | 92 + .../src/lib/shared/qtresourcemodel.cpp | 584 + .../src/lib/shared/qtresourcemodel_p.h | 107 + .../src/lib/shared/qtresourceview.cpp | 863 + .../src/lib/shared/qtresourceview_p.h | 105 + src/designer/src/lib/shared/rcc.cpp | 1023 + src/designer/src/lib/shared/rcc_p.h | 126 + .../src/lib/shared/richtexteditor.cpp | 886 + .../src/lib/shared/richtexteditor_p.h | 65 + .../src/lib/shared/selectsignaldialog.cpp | 221 + .../src/lib/shared/selectsignaldialog.ui | 93 + .../src/lib/shared/selectsignaldialog_p.h | 73 + src/designer/src/lib/shared/shared_enums_p.h | 62 + src/designer/src/lib/shared/shared_global_p.h | 38 + .../src/lib/shared/shared_settings.cpp | 323 + .../src/lib/shared/shared_settings_p.h | 109 + .../src/lib/shared/sheet_delegate.cpp | 102 + .../src/lib/shared/sheet_delegate_p.h | 47 + .../src/lib/shared/signalslotdialog.cpp | 503 + .../src/lib/shared/signalslotdialog.ui | 129 + .../src/lib/shared/signalslotdialog_p.h | 143 + src/designer/src/lib/shared/spacer_widget.cpp | 236 + src/designer/src/lib/shared/spacer_widget_p.h | 78 + .../src/lib/shared/stylesheeteditor.cpp | 409 + .../src/lib/shared/stylesheeteditor_p.h | 110 + .../240x320/Dialog_with_Buttons_Bottom.ui | 67 + .../240x320/Dialog_with_Buttons_Right.ui | 67 + .../320x240/Dialog_with_Buttons_Bottom.ui | 67 + .../320x240/Dialog_with_Buttons_Right.ui | 67 + .../480x640/Dialog_with_Buttons_Bottom.ui | 67 + .../480x640/Dialog_with_Buttons_Right.ui | 67 + .../640x480/Dialog_with_Buttons_Bottom.ui | 67 + .../640x480/Dialog_with_Buttons_Right.ui | 67 + .../forms/Dialog_with_Buttons_Bottom.ui | 71 + .../forms/Dialog_with_Buttons_Right.ui | 71 + .../templates/forms/Dialog_without_Buttons.ui | 18 + .../lib/shared/templates/forms/Main_Window.ui | 24 + .../src/lib/shared/templates/forms/Widget.ui | 21 + .../src/lib/shared/textpropertyeditor.cpp | 390 + .../src/lib/shared/textpropertyeditor_p.h | 118 + .../src/lib/shared/widgetdatabase.cpp | 862 + .../src/lib/shared/widgetdatabase_p.h | 175 + src/designer/src/lib/shared/widgetfactory.cpp | 918 + src/designer/src/lib/shared/widgetfactory_p.h | 146 + src/designer/src/lib/shared/zoomwidget.cpp | 510 + src/designer/src/lib/shared/zoomwidget_p.h | 194 + .../src/lib/uilib/abstractformbuilder.cpp | 2598 ++ .../src/lib/uilib/abstractformbuilder.h | 223 + src/designer/src/lib/uilib/formbuilder.cpp | 506 + src/designer/src/lib/uilib/formbuilder.h | 68 + .../src/lib/uilib/formbuilderextra.cpp | 776 + .../src/lib/uilib/formbuilderextra_p.h | 244 + src/designer/src/lib/uilib/properties.cpp | 644 + src/designer/src/lib/uilib/properties_p.h | 138 + .../src/lib/uilib/resourcebuilder.cpp | 136 + .../src/lib/uilib/resourcebuilder_p.h | 66 + src/designer/src/lib/uilib/textbuilder.cpp | 40 + src/designer/src/lib/uilib/textbuilder_p.h | 55 + src/designer/src/lib/uilib/ui4.cpp | 6182 +++++ src/designer/src/lib/uilib/ui4_p.h | 2919 ++ src/designer/src/lib/uilib/uilib_global.h | 24 + src/designer/src/lib/uilib/widgets.table | 161 + src/designer/src/plugins/CMakeLists.txt | 11 + .../src/plugins/activeqt/CMakeLists.txt | 26 + .../src/plugins/activeqt/activeqt.json | 1 + .../plugins/activeqt/qaxwidgetextrainfo.cpp | 79 + .../src/plugins/activeqt/qaxwidgetextrainfo.h | 53 + .../src/plugins/activeqt/qaxwidgetplugin.cpp | 105 + .../src/plugins/activeqt/qaxwidgetplugin.h | 40 + .../activeqt/qaxwidgetpropertysheet.cpp | 176 + .../plugins/activeqt/qaxwidgetpropertysheet.h | 63 + .../plugins/activeqt/qaxwidgettaskmenu.cpp | 148 + .../src/plugins/activeqt/qaxwidgettaskmenu.h | 38 + .../plugins/activeqt/qdesigneraxwidget.cpp | 235 + .../src/plugins/activeqt/qdesigneraxwidget.h | 100 + .../src/plugins/qquickwidget/CMakeLists.txt | 30 + .../qquickwidget/images/qquickwidget.png | Bin 0 -> 584 bytes .../qquickwidget/qquickwidget_plugin.cpp | 115 + .../qquickwidget/qquickwidget_plugin.h | 41 + .../src/plugins/qwebview/CMakeLists.txt | 34 + .../src/plugins/qwebview/images/qwebview.png | Bin 0 -> 1473 bytes .../src/plugins/qwebview/qwebview.json | 1 + .../src/plugins/qwebview/qwebview_plugin.cpp | 95 + .../src/plugins/qwebview/qwebview_plugin.h | 37 + .../src/plugins/tools/view3d/CMakeLists.txt | 21 + .../src/plugins/tools/view3d/view3d.cpp | 459 + .../src/plugins/tools/view3d/view3d.h | 39 + .../src/plugins/tools/view3d/view3d_global.h | 23 + .../plugins/tools/view3d/view3d_plugin.cpp | 80 + .../src/plugins/tools/view3d/view3d_plugin.h | 48 + .../src/plugins/tools/view3d/view3d_tool.cpp | 53 + .../src/plugins/tools/view3d/view3d_tool.h | 40 + src/distancefieldgenerator/CMakeLists.txt | 36 + .../distancefieldmodel.cpp | 177 + .../distancefieldmodel.h | 213 + .../distancefieldmodelworker.cpp | 327 + .../distancefieldmodelworker.h | 55 + .../doc/images/distancefieldgenerator.png | Bin 0 -> 68344 bytes .../doc/qtdistancefieldgenerator.qdocconf | 28 + .../src/distancefieldgenerator-manual.qdoc | 107 + src/distancefieldgenerator/main.cpp | 35 + src/distancefieldgenerator/mainwindow.cpp | 753 + src/distancefieldgenerator/mainwindow.h | 64 + src/distancefieldgenerator/mainwindow.ui | 217 + src/global/CMakeLists.txt | 18 + src/kmap2qmap/CMakeLists.txt | 19 + src/kmap2qmap/main.cpp | 966 + src/linguist/CMakeLists.txt | 24 + src/linguist/GenerateLUpdateProject.cmake | 54 + src/linguist/Qt6LinguistToolsMacros.cmake | 414 + src/linguist/lconvert/CMakeLists.txt | 34 + src/linguist/lconvert/main.cpp | 254 + src/linguist/linguist/CMakeLists.txt | 179 + src/linguist/linguist/Info_mac.plist | 79 + src/linguist/linguist/batchtranslation.ui | 223 + .../linguist/batchtranslationdialog.cpp | 161 + .../linguist/batchtranslationdialog.h | 49 + src/linguist/linguist/doc/cmake-macros.qdoc | 388 + .../doc/images/linguist-auxlanguages.png | Bin 0 -> 11304 bytes .../doc/images/linguist-batchtranslation.png | Bin 0 -> 28270 bytes .../doc/images/linguist-check-empty.png | Bin 0 -> 404 bytes .../doc/images/linguist-check-obsolete.png | Bin 0 -> 192 bytes .../doc/images/linguist-check-off.png | Bin 0 -> 434 bytes .../linguist/doc/images/linguist-check-on.png | Bin 0 -> 192 bytes .../doc/images/linguist-check-warning.png | Bin 0 -> 192 bytes .../linguist/doc/images/linguist-danger.png | Bin 0 -> 304 bytes .../doc/images/linguist-doneandnext.png | Bin 0 -> 1320 bytes .../linguist/doc/images/linguist-examples.png | Bin 0 -> 8571 bytes .../doc/images/linguist-finddialog.png | Bin 0 -> 9904 bytes .../linguist/doc/images/linguist-linguist.png | Bin 0 -> 226700 bytes .../doc/images/linguist-linguist_2.png | Bin 0 -> 228482 bytes .../doc/images/linguist-phrasebookdialog.png | Bin 0 -> 38112 bytes .../linguist-translationfilesettings.png | Bin 0 -> 17953 bytes .../cmake-find-package-linguisttools.qdocinc | 6 + src/linguist/linguist/doc/qtlinguist.qdocconf | 38 + .../doc/snippets/cmake-macros/examples.cmake | 57 + .../doc/snippets/doc_src_linguist-manual.cpp | 30 + .../doc/snippets/doc_src_linguist-manual.pro | 15 + .../linguist/doc/src/linguist-examples.qdoc | 23 + .../linguist/doc/src/linguist-manual.qdoc | 1203 + src/linguist/linguist/errorsview.cpp | 82 + src/linguist/linguist/errorsview.h | 41 + src/linguist/linguist/finddialog.cpp | 96 + src/linguist/linguist/finddialog.h | 50 + src/linguist/linguist/finddialog.ui | 261 + src/linguist/linguist/formpreviewview.cpp | 543 + src/linguist/linguist/formpreviewview.h | 90 + src/linguist/linguist/globals.cpp | 17 + src/linguist/linguist/globals.h | 12 + src/linguist/linguist/images/appicon.png | Bin 0 -> 419 bytes src/linguist/linguist/images/down.png | Bin 0 -> 594 bytes src/linguist/linguist/images/editdelete.png | Bin 0 -> 831 bytes .../linguist/images/icons/linguist-128-32.png | Bin 0 -> 3638 bytes .../linguist/images/icons/linguist-128-8.png | Bin 0 -> 5947 bytes .../linguist/images/icons/linguist-16-32.png | Bin 0 -> 280 bytes .../linguist/images/icons/linguist-16-8.png | Bin 0 -> 608 bytes .../linguist/images/icons/linguist-32-32.png | Bin 0 -> 419 bytes .../linguist/images/icons/linguist-32-8.png | Bin 0 -> 1369 bytes .../linguist/images/icons/linguist-48-32.png | Bin 0 -> 1410 bytes .../linguist/images/icons/linguist-48-8.png | Bin 0 -> 1972 bytes .../linguist/images/icons/linguist-64-32.png | Bin 0 -> 1542 bytes .../linguist/images/icons/linguist-64-8.png | Bin 0 -> 2664 bytes .../linguist/images/mac/accelerator.png | Bin 0 -> 1921 bytes src/linguist/linguist/images/mac/book.png | Bin 0 -> 1477 bytes src/linguist/linguist/images/mac/done.png | Bin 0 -> 2224 bytes .../linguist/images/mac/doneandnext.png | Bin 0 -> 1590 bytes src/linguist/linguist/images/mac/editcopy.png | Bin 0 -> 1468 bytes src/linguist/linguist/images/mac/editcut.png | Bin 0 -> 1512 bytes .../linguist/images/mac/editpaste.png | Bin 0 -> 1906 bytes src/linguist/linguist/images/mac/filenew.png | Bin 0 -> 1172 bytes src/linguist/linguist/images/mac/fileopen.png | Bin 0 -> 2168 bytes .../linguist/images/mac/fileprint.png | Bin 0 -> 741 bytes src/linguist/linguist/images/mac/filesave.png | Bin 0 -> 2699 bytes src/linguist/linguist/images/mac/next.png | Bin 0 -> 1056 bytes .../linguist/images/mac/nextunfinished.png | Bin 0 -> 1756 bytes src/linguist/linguist/images/mac/phrase.png | Bin 0 -> 1932 bytes src/linguist/linguist/images/mac/prev.png | Bin 0 -> 1080 bytes .../linguist/images/mac/prevunfinished.png | Bin 0 -> 1682 bytes src/linguist/linguist/images/mac/print.png | Bin 0 -> 2087 bytes .../linguist/images/mac/punctuation.png | Bin 0 -> 1593 bytes src/linguist/linguist/images/mac/redo.png | Bin 0 -> 1752 bytes .../linguist/images/mac/searchfind.png | Bin 0 -> 1836 bytes .../images/mac/surroundingwhitespace.png | Bin 0 -> 1468 bytes src/linguist/linguist/images/mac/undo.png | Bin 0 -> 1746 bytes .../images/mac/validateplacemarkers.png | Bin 0 -> 1452 bytes .../linguist/images/mac/whatsthis.png | Bin 0 -> 1586 bytes src/linguist/linguist/images/minus.png | Bin 0 -> 296 bytes src/linguist/linguist/images/plus.png | Bin 0 -> 383 bytes .../linguist/images/s_check_danger.png | Bin 0 -> 304 bytes .../linguist/images/s_check_empty.png | Bin 0 -> 404 bytes .../linguist/images/s_check_obsolete.png | Bin 0 -> 192 bytes src/linguist/linguist/images/s_check_off.png | Bin 0 -> 434 bytes src/linguist/linguist/images/s_check_on.png | Bin 0 -> 192 bytes .../linguist/images/s_check_warning.png | Bin 0 -> 192 bytes src/linguist/linguist/images/up.png | Bin 0 -> 692 bytes .../linguist/images/win/accelerator.png | Bin 0 -> 1335 bytes src/linguist/linguist/images/win/book.png | Bin 0 -> 1109 bytes src/linguist/linguist/images/win/done.png | Bin 0 -> 1954 bytes .../linguist/images/win/doneandnext.png | Bin 0 -> 1233 bytes src/linguist/linguist/images/win/editcopy.png | Bin 0 -> 1325 bytes src/linguist/linguist/images/win/editcut.png | Bin 0 -> 1384 bytes .../linguist/images/win/editpaste.png | Bin 0 -> 1482 bytes src/linguist/linguist/images/win/filenew.png | Bin 0 -> 768 bytes src/linguist/linguist/images/win/fileopen.png | Bin 0 -> 1662 bytes src/linguist/linguist/images/win/filesave.png | Bin 0 -> 2699 bytes src/linguist/linguist/images/win/next.png | Bin 0 -> 1038 bytes .../linguist/images/win/nextunfinished.png | Bin 0 -> 1257 bytes src/linguist/linguist/images/win/phrase.png | Bin 0 -> 1371 bytes src/linguist/linguist/images/win/prev.png | Bin 0 -> 898 bytes .../linguist/images/win/prevunfinished.png | Bin 0 -> 1260 bytes src/linguist/linguist/images/win/print.png | Bin 0 -> 1456 bytes .../linguist/images/win/punctuation.png | Bin 0 -> 1508 bytes src/linguist/linguist/images/win/redo.png | Bin 0 -> 1212 bytes .../linguist/images/win/searchfind.png | Bin 0 -> 1944 bytes .../images/win/surroundingwhitespace.png | Bin 0 -> 1468 bytes src/linguist/linguist/images/win/undo.png | Bin 0 -> 1181 bytes .../images/win/validateplacemarkers.png | Bin 0 -> 1994 bytes .../linguist/images/win/whatsthis.png | Bin 0 -> 1040 bytes src/linguist/linguist/linguist.icns | Bin 0 -> 101226 bytes src/linguist/linguist/linguist.ico | Bin 0 -> 123477 bytes src/linguist/linguist/main.cpp | 119 + src/linguist/linguist/mainwindow.cpp | 2829 ++ src/linguist/linguist/mainwindow.h | 236 + src/linguist/linguist/mainwindow.ui | 972 + src/linguist/linguist/messageeditor.cpp | 927 + src/linguist/linguist/messageeditor.h | 161 + .../linguist/messageeditorwidgets.cpp | 472 + src/linguist/linguist/messageeditorwidgets.h | 160 + src/linguist/linguist/messagehighlighter.cpp | 173 + src/linguist/linguist/messagehighlighter.h | 47 + src/linguist/linguist/messagemodel.cpp | 1436 + src/linguist/linguist/messagemodel.h | 499 + src/linguist/linguist/phrase.cpp | 307 + src/linguist/linguist/phrase.h | 104 + src/linguist/linguist/phrasebookbox.cpp | 210 + src/linguist/linguist/phrasebookbox.h | 51 + src/linguist/linguist/phrasebookbox.ui | 199 + src/linguist/linguist/phrasemodel.cpp | 163 + src/linguist/linguist/phrasemodel.h | 56 + src/linguist/linguist/phraseview.cpp | 281 + src/linguist/linguist/phraseview.h | 71 + src/linguist/linguist/printout.cpp | 174 + src/linguist/linguist/printout.h | 82 + src/linguist/linguist/recentfiles.cpp | 108 + src/linguist/linguist/recentfiles.h | 45 + src/linguist/linguist/sourcecodeview.cpp | 107 + src/linguist/linguist/sourcecodeview.h | 36 + src/linguist/linguist/statistics.cpp | 46 + src/linguist/linguist/statistics.h | 47 + src/linguist/linguist/statistics.ui | 344 + src/linguist/linguist/translatedialog.cpp | 57 + src/linguist/linguist/translatedialog.h | 51 + src/linguist/linguist/translatedialog.ui | 223 + src/linguist/linguist/translationsettings.ui | 137 + .../linguist/translationsettingsdialog.cpp | 144 + .../linguist/translationsettingsdialog.h | 43 + src/linguist/lprodump/CMakeLists.txt | 57 + src/linguist/lprodump/main.cpp | 466 + src/linguist/lrelease-pro/CMakeLists.txt | 28 + src/linguist/lrelease-pro/main.cpp | 119 + src/linguist/lrelease/CMakeLists.txt | 45 + src/linguist/lrelease/lrelease.1 | 84 + src/linguist/lrelease/main.cpp | 277 + src/linguist/lupdate-pro/CMakeLists.txt | 34 + .../lupdate-pro/lupdate-pro.exe.manifest | 13 + src/linguist/lupdate-pro/lupdate-pro.rc | 4 + src/linguist/lupdate-pro/main.cpp | 133 + src/linguist/lupdate/CMakeLists.txt | 115 + src/linguist/lupdate/clangtoolastreader.cpp | 866 + src/linguist/lupdate/clangtoolastreader.h | 132 + src/linguist/lupdate/cpp.cpp | 2247 ++ src/linguist/lupdate/cpp.h | 104 + src/linguist/lupdate/cpp_clang.cpp | 739 + src/linguist/lupdate/cpp_clang.h | 322 + .../lupdate/filesignificancecheck.cpp | 70 + src/linguist/lupdate/filesignificancecheck.h | 63 + src/linguist/lupdate/java.cpp | 592 + src/linguist/lupdate/lupdate.1 | 125 + src/linguist/lupdate/lupdate.exe.manifest | 13 + src/linguist/lupdate/lupdate.h | 127 + src/linguist/lupdate/lupdate.rc | 4 + .../lupdate/lupdatepreprocessoraction.cpp | 193 + .../lupdate/lupdatepreprocessoraction.h | 118 + src/linguist/lupdate/main.cpp | 1088 + src/linguist/lupdate/merge.cpp | 527 + src/linguist/lupdate/python.cpp | 725 + src/linguist/lupdate/qdeclarative.cpp | 474 + src/linguist/lupdate/synchronized.h | 81 + src/linguist/lupdate/ui.cpp | 176 + src/linguist/phrasebooks/danish.qph | 1018 + src/linguist/phrasebooks/dutch.qph | 1044 + src/linguist/phrasebooks/finnish.qph | 1033 + src/linguist/phrasebooks/french.qph | 1493 + src/linguist/phrasebooks/german.qph | 1075 + src/linguist/phrasebooks/hungarian.qph | 752 + src/linguist/phrasebooks/italian.qph | 1105 + src/linguist/phrasebooks/japanese.qph | 1034 + src/linguist/phrasebooks/norwegian.qph | 1004 + src/linguist/phrasebooks/polish.qph | 527 + src/linguist/phrasebooks/russian.qph | 1219 + src/linguist/phrasebooks/spanish.qph | 1086 + src/linguist/phrasebooks/swedish.qph | 1010 + src/linguist/shared/exclusive_builds.prf | 6 + src/linguist/shared/ioutils.cpp | 275 + src/linguist/shared/ioutils.h | 54 + src/linguist/shared/numerus.cpp | 383 + src/linguist/shared/po.cpp | 881 + src/linguist/shared/profileevaluator.cpp | 212 + src/linguist/shared/profileevaluator.h | 79 + src/linguist/shared/profileutils.h | 29 + src/linguist/shared/proitems.cpp | 496 + src/linguist/shared/proitems.h | 449 + .../shared/projectdescriptionreader.cpp | 230 + .../shared/projectdescriptionreader.h | 31 + src/linguist/shared/qm.cpp | 722 + src/linguist/shared/qmake_global.h | 33 + src/linguist/shared/qmakebuiltins.cpp | 1868 ++ src/linguist/shared/qmakeevaluator.cpp | 2189 ++ src/linguist/shared/qmakeevaluator.h | 309 + src/linguist/shared/qmakeevaluator_p.h | 91 + src/linguist/shared/qmakeglobals.cpp | 367 + src/linguist/shared/qmakeglobals.h | 146 + src/linguist/shared/qmakeparser.cpp | 1549 ++ src/linguist/shared/qmakeparser.h | 214 + src/linguist/shared/qmakevfs.cpp | 257 + src/linguist/shared/qmakevfs.h | 105 + src/linguist/shared/qph.cpp | 165 + src/linguist/shared/qrcreader.cpp | 75 + src/linguist/shared/qrcreader.h | 17 + src/linguist/shared/runqttool.cpp | 99 + src/linguist/shared/runqttool.h | 19 + src/linguist/shared/simtexth.cpp | 202 + src/linguist/shared/simtexth.h | 88 + src/linguist/shared/translator.cpp | 747 + src/linguist/shared/translator.h | 229 + src/linguist/shared/translatormessage.cpp | 131 + src/linguist/shared/translatormessage.h | 140 + src/linguist/shared/ts.cpp | 668 + src/linguist/shared/ts.xsd | 188 + src/linguist/shared/xliff.cpp | 823 + src/linguist/shared/xmlparser.cpp | 84 + src/linguist/shared/xmlparser.h | 38 + src/pixeltool/CMakeLists.txt | 30 + src/pixeltool/Info_mac.plist | 20 + src/pixeltool/main.cpp | 45 + src/pixeltool/qpixeltool.cpp | 697 + src/pixeltool/qpixeltool.h | 87 + src/qdbus/CMakeLists.txt | 11 + src/qdbus/qdbus/CMakeLists.txt | 22 + src/qdbus/qdbus/qdbus.cpp | 512 + src/qdbus/qdbusviewer/CMakeLists.txt | 63 + src/qdbus/qdbusviewer/Info_mac.plist | 20 + .../qdbusviewer/images/qdbusviewer-128.png | Bin 0 -> 5128 bytes src/qdbus/qdbusviewer/images/qdbusviewer.icns | Bin 0 -> 146329 bytes src/qdbus/qdbusviewer/images/qdbusviewer.ico | Bin 0 -> 127592 bytes src/qdbus/qdbusviewer/images/qdbusviewer.png | Bin 0 -> 694 bytes src/qdbus/qdbusviewer/logviewer.cpp | 21 + src/qdbus/qdbusviewer/logviewer.h | 19 + src/qdbus/qdbusviewer/main.cpp | 35 + src/qdbus/qdbusviewer/mainwindow.cpp | 105 + src/qdbus/qdbusviewer/mainwindow.h | 34 + src/qdbus/qdbusviewer/propertydialog.cpp | 76 + src/qdbus/qdbusviewer/propertydialog.h | 32 + src/qdbus/qdbusviewer/qdbusmodel.cpp | 318 + src/qdbus/qdbusviewer/qdbusmodel.h | 59 + src/qdbus/qdbusviewer/qdbusviewer.cpp | 559 + src/qdbus/qdbusviewer/qdbusviewer.h | 83 + src/qdbus/qdbusviewer/servicesproxymodel.cpp | 39 + src/qdbus/qdbusviewer/servicesproxymodel.h | 21 + src/qdoc/CMakeLists.txt | 131 + src/qdoc/access.h | 15 + src/qdoc/aggregate.cpp | 912 + src/qdoc/aggregate.h | 92 + src/qdoc/atom.cpp | 444 + src/qdoc/atom.h | 221 + .../boundaries/filesystem/directorypath.cpp | 126 + .../boundaries/filesystem/directorypath.hpp | 17 + src/qdoc/boundaries/filesystem/filepath.cpp | 125 + src/qdoc/boundaries/filesystem/filepath.hpp | 17 + .../boundaries/filesystem/resolvedfile.cpp | 96 + .../boundaries/filesystem/resolvedfile.hpp | 20 + src/qdoc/boundaries/refined_typedef.hpp | 207 + .../refined_typedef_members.qdocinc | 162 + src/qdoc/clangcodeparser.cpp | 1742 ++ src/qdoc/clangcodeparser.h | 53 + src/qdoc/classnode.cpp | 291 + src/qdoc/classnode.h | 74 + src/qdoc/codechunk.cpp | 104 + src/qdoc/codechunk.h | 74 + src/qdoc/codemarker.cpp | 392 + src/qdoc/codemarker.h | 67 + src/qdoc/codeparser.cpp | 221 + src/qdoc/codeparser.h | 142 + src/qdoc/collectionnode.cpp | 128 + src/qdoc/collectionnode.h | 61 + src/qdoc/config.cpp | 1396 + src/qdoc/config.h | 408 + src/qdoc/cppcodemarker.cpp | 599 + src/qdoc/cppcodemarker.h | 35 + src/qdoc/cppcodeparser.cpp | 1006 + src/qdoc/cppcodeparser.h | 76 + src/qdoc/doc.cpp | 482 + src/qdoc/doc.h | 93 + src/qdoc/doc/config/qdoc.qdocconf | 59 + src/qdoc/doc/corefeatures.qdoc | 11 + src/qdoc/doc/examples/cpp.qdoc.sample | 102 + .../doc/examples/layoutmanagement.qdocinc | 13 + src/qdoc/doc/examples/main.cpp | 16 + src/qdoc/doc/examples/mainwindow.cpp | 213 + src/qdoc/doc/examples/minimum.qdocconf | 36 + src/qdoc/doc/examples/objectmodel.qdocinc | 11 + src/qdoc/doc/examples/qml.qdoc.sample | 90 + src/qdoc/doc/examples/samples.qdocinc | 85 + src/qdoc/doc/examples/signalandslots.qdocinc | 9 + src/qdoc/doc/files/basicqt.qdoc.sample | 64 + src/qdoc/doc/files/compat.qdocconf | 12 + src/qdoc/doc/files/qtgui.qdocconf | 45 + src/qdoc/doc/images/happy.gif | Bin 0 -> 11526 bytes src/qdoc/doc/images/happyguy.jpg | Bin 0 -> 53442 bytes src/qdoc/doc/images/link-to-qquickitem.png | Bin 0 -> 46571 bytes src/qdoc/doc/images/links-to-broken-links.png | Bin 0 -> 16569 bytes src/qdoc/doc/images/links-to-links.png | Bin 0 -> 10042 bytes src/qdoc/doc/images/qa-table.png | Bin 0 -> 7057 bytes src/qdoc/doc/images/qt-logo.png | Bin 0 -> 1214 bytes src/qdoc/doc/images/training.jpg | Bin 0 -> 8368 bytes src/qdoc/doc/images/windows-pushbutton.png | Bin 0 -> 722 bytes src/qdoc/doc/images/windows-toolbutton.png | Bin 0 -> 771 bytes src/qdoc/doc/qdoc-guide/qdoc-guide.qdoc | 668 + .../doc/qdoc-guide/qtwritingstyle-cpp.qdoc | 163 + .../doc/qdoc-guide/qtwritingstyle-qml.qdoc | 142 + src/qdoc/doc/qdoc-manual-cmdindex.qdoc | 132 + src/qdoc/doc/qdoc-manual-contextcmds.qdoc | 1042 + src/qdoc/doc/qdoc-manual-intro.qdoc | 299 + src/qdoc/doc/qdoc-manual-markupcmds.qdoc | 3948 +++ src/qdoc/doc/qdoc-manual-qdocconf.qdoc | 2051 ++ src/qdoc/doc/qdoc-manual-topiccmds.qdoc | 1692 ++ src/qdoc/doc/qdoc-manual.qdoc | 49 + src/qdoc/doc/qdoc-minimum-qdocconf.qdoc | 65 + src/qdoc/doc/qdoc-warnings.qdoc | 796 + src/qdoc/doc/qtgui-qdocconf.qdoc | 260 + src/qdoc/docbookgenerator.cpp | 4472 +++ src/qdoc/docbookgenerator.h | 155 + src/qdoc/docparser.cpp | 2576 ++ src/qdoc/docparser.h | 169 + src/qdoc/docprivate.cpp | 30 + src/qdoc/docprivate.h | 75 + src/qdoc/docutilities.h | 30 + src/qdoc/editdistance.cpp | 68 + src/qdoc/editdistance.h | 17 + src/qdoc/enumitem.h | 30 + src/qdoc/enumnode.cpp | 69 + src/qdoc/enumnode.h | 48 + src/qdoc/examplenode.h | 42 + src/qdoc/externalpagenode.cpp | 28 + src/qdoc/externalpagenode.h | 26 + src/qdoc/filesystem/fileresolver.cpp | 161 + src/qdoc/filesystem/fileresolver.hpp | 24 + src/qdoc/functionnode.cpp | 595 + src/qdoc/functionnode.h | 205 + src/qdoc/generator.cpp | 2146 ++ src/qdoc/generator.h | 217 + src/qdoc/headernode.cpp | 43 + src/qdoc/headernode.h | 47 + src/qdoc/helpprojectwriter.cpp | 794 + src/qdoc/helpprojectwriter.h | 107 + src/qdoc/htmlgenerator.cpp | 3681 +++ src/qdoc/htmlgenerator.h | 176 + src/qdoc/importrec.h | 33 + src/qdoc/jscodemarker.cpp | 115 + src/qdoc/jscodemarker.h | 31 + src/qdoc/location.cpp | 419 + src/qdoc/location.h | 92 + src/qdoc/macro.h | 27 + src/qdoc/main.cpp | 683 + src/qdoc/manifestwriter.cpp | 356 + src/qdoc/manifestwriter.h | 49 + src/qdoc/namespacenode.cpp | 190 + src/qdoc/namespacenode.h | 48 + src/qdoc/node.cpp | 1707 ++ src/qdoc/node.h | 380 + src/qdoc/openedlist.cpp | 172 + src/qdoc/openedlist.h | 47 + src/qdoc/pagenode.cpp | 139 + src/qdoc/pagenode.h | 68 + src/qdoc/parameters.cpp | 542 + src/qdoc/parameters.h | 113 + src/qdoc/propertynode.cpp | 117 + src/qdoc/propertynode.h | 98 + src/qdoc/proxynode.cpp | 54 + src/qdoc/proxynode.h | 23 + src/qdoc/puredocparser.cpp | 101 + src/qdoc/puredocparser.h | 30 + src/qdoc/qdoccommandlineparser.cpp | 186 + src/qdoc/qdoccommandlineparser.h | 28 + src/qdoc/qdocdatabase.cpp | 1605 ++ src/qdoc/qdocdatabase.h | 412 + src/qdoc/qdocindexfiles.cpp | 1548 ++ src/qdoc/qdocindexfiles.h | 71 + src/qdoc/qmlcodemarker.cpp | 197 + src/qdoc/qmlcodemarker.h | 42 + src/qdoc/qmlcodeparser.cpp | 202 + src/qdoc/qmlcodeparser.h | 52 + src/qdoc/qmlmarkupvisitor.cpp | 799 + src/qdoc/qmlmarkupvisitor.h | 142 + src/qdoc/qmlpropertynode.cpp | 125 + src/qdoc/qmlpropertynode.h | 72 + src/qdoc/qmltypenode.cpp | 164 + src/qdoc/qmltypenode.h | 79 + src/qdoc/qmlvisitor.cpp | 737 + src/qdoc/qmlvisitor.h | 97 + src/qdoc/quoter.cpp | 338 + src/qdoc/quoter.h | 45 + src/qdoc/relatedclass.cpp | 46 + src/qdoc/relatedclass.h | 34 + src/qdoc/sections.cpp | 1043 + src/qdoc/sections.h | 248 + src/qdoc/sharedcommentnode.cpp | 56 + src/qdoc/sharedcommentnode.h | 52 + src/qdoc/singleton.h | 32 + src/qdoc/tagfilewriter.cpp | 307 + src/qdoc/tagfilewriter.h | 33 + src/qdoc/text.cpp | 305 + src/qdoc/text.h | 77 + src/qdoc/tokenizer.cpp | 785 + src/qdoc/tokenizer.h | 179 + src/qdoc/topic.h | 29 + src/qdoc/tree.cpp | 1302 + src/qdoc/tree.h | 191 + src/qdoc/typedefnode.cpp | 55 + src/qdoc/typedefnode.h | 54 + src/qdoc/usingclause.cpp | 44 + src/qdoc/usingclause.h | 30 + src/qdoc/utilities.cpp | 181 + src/qdoc/utilities.h | 27 + src/qdoc/variablenode.cpp | 23 + src/qdoc/variablenode.h | 44 + src/qdoc/webxmlgenerator.cpp | 905 + src/qdoc/webxmlgenerator.h | 60 + src/qdoc/xmlgenerator.cpp | 478 + src/qdoc/xmlgenerator.h | 53 + src/qev/CMakeLists.txt | 17 + src/qev/README | 2 + src/qev/qev.cpp | 40 + src/qtattributionsscanner/CMakeLists.txt | 30 + src/qtattributionsscanner/jsongenerator.cpp | 62 + src/qtattributionsscanner/jsongenerator.h | 19 + src/qtattributionsscanner/logging.h | 19 + src/qtattributionsscanner/main.cpp | 169 + src/qtattributionsscanner/package.h | 38 + src/qtattributionsscanner/packagefilter.cpp | 30 + src/qtattributionsscanner/packagefilter.h | 22 + src/qtattributionsscanner/qdocgenerator.cpp | 153 + src/qtattributionsscanner/qdocgenerator.h | 20 + src/qtattributionsscanner/scanner.cpp | 490 + src/qtattributionsscanner/scanner.h | 29 + src/qtdiag/CMakeLists.txt | 56 + src/qtdiag/main.cpp | 50 + src/qtdiag/qtdiag.cpp | 895 + src/qtdiag/qtdiag.h | 23 + src/qtplugininfo/CMakeLists.txt | 17 + src/qtplugininfo/qtplugininfo.cpp | 144 + src/shared/corecon/ccapi.h | 389 + src/shared/corecon/ccapi_11.h | 26 + src/shared/corecon/ccapi_12.h | 26 + src/shared/corecon/corecon.cpp | 419 + src/shared/corecon/corecon.h | 47 + src/shared/deviceskin/deviceskin.cpp | 810 + src/shared/deviceskin/deviceskin.h | 137 + .../ClamshellPhone.skin/ClamshellPhone.skin | 30 + .../ClamshellPhone1-5-closed.png | Bin 0 -> 68200 bytes .../ClamshellPhone1-5-pressed.png | Bin 0 -> 113907 bytes .../ClamshellPhone.skin/ClamshellPhone1-5.png | Bin 0 -> 113450 bytes .../ClamshellPhone.skin/defaultbuttons.conf | 78 + .../PortableMedia.skin/PortableMedia.skin | 14 + .../PortableMedia.skin/defaultbuttons.conf | 23 + .../portablemedia-pressed.png | Bin 0 -> 6183 bytes .../PortableMedia.skin/portablemedia.png | Bin 0 -> 6182 bytes .../PortableMedia.skin/portablemedia.xcf | Bin 0 -> 41592 bytes .../S60-QVGA-Candybar-down.png | Bin 0 -> 161184 bytes .../S60-QVGA-Candybar.png | Bin 0 -> 156789 bytes .../S60-QVGA-Candybar.skin | 15 + .../defaultbuttons.conf | 78 + .../S60-nHD-Touchscreen-down.png | Bin 0 -> 241501 bytes .../S60-nHD-Touchscreen.png | Bin 0 -> 240615 bytes .../S60-nHD-Touchscreen.skin | 10 + .../defaultbuttons.conf | 53 + .../SmartPhone.skin/SmartPhone-pressed.png | Bin 0 -> 111515 bytes .../skins/SmartPhone.skin/SmartPhone.png | Bin 0 -> 101750 bytes .../skins/SmartPhone.skin/SmartPhone.skin | 28 + .../skins/SmartPhone.skin/defaultbuttons.conf | 78 + .../SmartPhone2.skin/SmartPhone2-pressed.png | Bin 0 -> 134749 bytes .../skins/SmartPhone2.skin/SmartPhone2.png | Bin 0 -> 121915 bytes .../skins/SmartPhone2.skin/SmartPhone2.skin | 25 + .../SmartPhone2.skin/defaultbuttons.conf | 52 + .../SmartPhoneWithButtons-pressed.png | Bin 0 -> 103838 bytes .../SmartPhoneWithButtons.png | Bin 0 -> 88470 bytes .../SmartPhoneWithButtons.skin | 31 + .../defaultbuttons.conf | 103 + .../TouchscreenPhone-pressed.png | Bin 0 -> 88599 bytes .../TouchscreenPhone.png | Bin 0 -> 61809 bytes .../TouchscreenPhone.skin | 16 + .../TouchscreenPhone.skin/defaultbuttons.conf | 45 + src/shared/findwidget/abstractfindwidget.cpp | 272 + src/shared/findwidget/abstractfindwidget.h | 79 + src/shared/findwidget/images/mac/closetab.png | Bin 0 -> 516 bytes src/shared/findwidget/images/mac/next.png | Bin 0 -> 1310 bytes src/shared/findwidget/images/mac/previous.png | Bin 0 -> 1080 bytes .../findwidget/images/mac/searchfind.png | Bin 0 -> 1836 bytes src/shared/findwidget/images/win/closetab.png | Bin 0 -> 375 bytes src/shared/findwidget/images/win/next.png | Bin 0 -> 1038 bytes src/shared/findwidget/images/win/previous.png | Bin 0 -> 898 bytes .../findwidget/images/win/searchfind.png | Bin 0 -> 1944 bytes src/shared/findwidget/images/wrap.png | Bin 0 -> 500 bytes src/shared/findwidget/itemviewfindwidget.cpp | 286 + src/shared/findwidget/itemviewfindwidget.h | 41 + src/shared/findwidget/texteditfindwidget.cpp | 131 + src/shared/findwidget/texteditfindwidget.h | 36 + src/shared/fontpanel/fontpanel.cpp | 271 + src/shared/fontpanel/fontpanel.h | 69 + src/shared/qtgradienteditor/images/down.png | Bin 0 -> 594 bytes src/shared/qtgradienteditor/images/edit.png | Bin 0 -> 503 bytes .../qtgradienteditor/images/editdelete.png | Bin 0 -> 831 bytes src/shared/qtgradienteditor/images/minus.png | Bin 0 -> 250 bytes src/shared/qtgradienteditor/images/plus.png | Bin 0 -> 462 bytes .../qtgradienteditor/images/spreadpad.png | Bin 0 -> 151 bytes .../qtgradienteditor/images/spreadreflect.png | Bin 0 -> 165 bytes .../qtgradienteditor/images/spreadrepeat.png | Bin 0 -> 156 bytes .../qtgradienteditor/images/typeconical.png | Bin 0 -> 937 bytes .../qtgradienteditor/images/typelinear.png | Bin 0 -> 145 bytes .../qtgradienteditor/images/typeradial.png | Bin 0 -> 583 bytes src/shared/qtgradienteditor/images/up.png | Bin 0 -> 692 bytes src/shared/qtgradienteditor/images/zoomin.png | Bin 0 -> 1208 bytes .../qtgradienteditor/images/zoomout.png | Bin 0 -> 1226 bytes src/shared/qtgradienteditor/qtcolorbutton.cpp | 236 + src/shared/qtgradienteditor/qtcolorbutton.h | 48 + src/shared/qtgradienteditor/qtcolorline.cpp | 1080 + src/shared/qtgradienteditor/qtcolorline.h | 82 + .../qtgradienteditor/qtgradientdialog.cpp | 315 + .../qtgradienteditor/qtgradientdialog.h | 48 + .../qtgradienteditor/qtgradientdialog.ui | 85 + .../qtgradienteditor/qtgradienteditor.cpp | 924 + .../qtgradienteditor/qtgradienteditor.h | 49 + .../qtgradienteditor/qtgradienteditor.ui | 1341 + .../qtgradienteditor/qtgradientmanager.cpp | 95 + .../qtgradienteditor/qtgradientmanager.h | 54 + .../qtgradientstopscontroller.cpp | 677 + .../qtgradientstopscontroller.h | 41 + .../qtgradienteditor/qtgradientstopsmodel.cpp | 422 + .../qtgradienteditor/qtgradientstopsmodel.h | 83 + .../qtgradientstopswidget.cpp | 1107 + .../qtgradienteditor/qtgradientstopswidget.h | 62 + .../qtgradienteditor/qtgradientutils.cpp | 380 + src/shared/qtgradienteditor/qtgradientutils.h | 27 + .../qtgradienteditor/qtgradientview.cpp | 254 + src/shared/qtgradienteditor/qtgradientview.h | 61 + src/shared/qtgradienteditor/qtgradientview.ui | 135 + .../qtgradienteditor/qtgradientviewdialog.cpp | 51 + .../qtgradienteditor/qtgradientviewdialog.h | 37 + .../qtgradienteditor/qtgradientviewdialog.ui | 85 + .../qtgradienteditor/qtgradientwidget.cpp | 756 + .../qtgradienteditor/qtgradientwidget.h | 83 + .../qtpropertybrowser/images/cursor-arrow.png | Bin 0 -> 171 bytes .../qtpropertybrowser/images/cursor-busy.png | Bin 0 -> 201 bytes .../images/cursor-closedhand.png | Bin 0 -> 147 bytes .../qtpropertybrowser/images/cursor-cross.png | Bin 0 -> 130 bytes .../images/cursor-forbidden.png | Bin 0 -> 199 bytes .../qtpropertybrowser/images/cursor-hand.png | Bin 0 -> 159 bytes .../images/cursor-hsplit.png | Bin 0 -> 155 bytes .../qtpropertybrowser/images/cursor-ibeam.png | Bin 0 -> 124 bytes .../images/cursor-openhand.png | Bin 0 -> 160 bytes .../images/cursor-sizeall.png | Bin 0 -> 174 bytes .../qtpropertybrowser/images/cursor-sizeb.png | Bin 0 -> 161 bytes .../qtpropertybrowser/images/cursor-sizef.png | Bin 0 -> 161 bytes .../qtpropertybrowser/images/cursor-sizeh.png | Bin 0 -> 145 bytes .../qtpropertybrowser/images/cursor-sizev.png | Bin 0 -> 141 bytes .../images/cursor-uparrow.png | Bin 0 -> 132 bytes .../images/cursor-vsplit.png | Bin 0 -> 161 bytes .../qtpropertybrowser/images/cursor-wait.png | Bin 0 -> 172 bytes .../images/cursor-whatsthis.png | Bin 0 -> 191 bytes .../qtbuttonpropertybrowser.cpp | 578 + .../qtbuttonpropertybrowser.h | 47 + .../qtpropertybrowser/qteditorfactory.cpp | 2493 ++ .../qtpropertybrowser/qteditorfactory.h | 360 + .../qtgroupboxpropertybrowser.cpp | 473 + .../qtgroupboxpropertybrowser.h | 38 + .../qtpropertybrowser/qtpropertybrowser.cpp | 1915 ++ .../qtpropertybrowser/qtpropertybrowser.h | 267 + .../qtpropertybrowserutils.cpp | 270 + .../qtpropertybrowserutils_p.h | 94 + .../qtpropertybrowser/qtpropertymanager.cpp | 6394 +++++ .../qtpropertybrowser/qtpropertymanager.h | 709 + .../qttreepropertybrowser.cpp | 1002 + .../qtpropertybrowser/qttreepropertybrowser.h | 96 + .../qtpropertybrowser/qtvariantproperty.cpp | 2180 ++ .../qtpropertybrowser/qtvariantproperty.h | 141 + src/shared/qttoolbardialog/images/back.png | Bin 0 -> 678 bytes src/shared/qttoolbardialog/images/down.png | Bin 0 -> 594 bytes src/shared/qttoolbardialog/images/forward.png | Bin 0 -> 655 bytes src/shared/qttoolbardialog/images/minus.png | Bin 0 -> 250 bytes src/shared/qttoolbardialog/images/plus.png | Bin 0 -> 462 bytes src/shared/qttoolbardialog/images/up.png | Bin 0 -> 692 bytes .../qttoolbardialog/qttoolbardialog.cpp | 1773 ++ src/shared/qttoolbardialog/qttoolbardialog.h | 100 + src/shared/qttoolbardialog/qttoolbardialog.ui | 207 + src/uiplugin/CMakeLists.txt | 27 + src/uiplugin/customwidget.h | 62 + src/uiplugin/customwidget.qdoc | 269 + src/uiplugin/qdesignerexportwidget.h | 24 + src/uitools/CMakeLists.txt | 47 + .../doc/images/textfinder-example-find.png | Bin 0 -> 15837 bytes .../doc/images/textfinder-example-find2.png | Bin 0 -> 15745 bytes src/uitools/doc/images/textfinder-example.png | Bin 0 -> 15424 bytes src/uitools/doc/images/uitools-examples.png | Bin 0 -> 12021 bytes src/uitools/doc/qtuitools.qdocconf | 42 + .../snippets/quiloader/doc_src_qtuiloader.pro | 6 + src/uitools/doc/snippets/quiloader/main.cpp | 33 + src/uitools/doc/snippets/quiloader/myform.ui | 130 + .../doc/snippets/quiloader/mywidget.cpp | 23 + src/uitools/doc/snippets/quiloader/mywidget.h | 15 + .../doc/snippets/quiloader/mywidget.qrc | 5 + .../doc/snippets/quiloader/quiloader.pro | 4 + src/uitools/doc/src/qtuitools-examples.qdoc | 27 + src/uitools/doc/src/qtuitools-index.qdoc | 54 + src/uitools/doc/src/qtuitools-module.qdoc | 32 + src/uitools/qtuitoolsglobal.h | 24 + src/uitools/quiloader.cpp | 914 + src/uitools/quiloader.h | 61 + src/uitools/quiloader_p.h | 77 + sync.profile | 21 + tests/CMakeLists.txt | 7 + tests/README | 18 + tests/auto/CMakeLists.txt | 23 + .../data/QtDesigner.6.0.0.linux-gcc-amd64.txt | 21454 ++++++++++++++ .../data/QtDesigner.6.1.0.linux-gcc-amd64.txt | 21466 ++++++++++++++ .../data/QtDesigner.6.2.0.linux-gcc-amd64.txt | 21876 +++++++++++++++ .../bic/data/QtHelp.6.0.0.linux-gcc-amd64.txt | 20252 ++++++++++++++ .../bic/data/QtHelp.6.1.0.linux-gcc-amd64.txt | 20259 ++++++++++++++ .../bic/data/QtHelp.6.2.0.linux-gcc-amd64.txt | 20669 ++++++++++++++ .../data/QtUiTools.6.0.0.linux-gcc-amd64.txt | 19797 +++++++++++++ .../data/QtUiTools.6.1.0.linux-gcc-amd64.txt | 19804 +++++++++++++ .../data/QtUiTools.6.2.0.linux-gcc-amd64.txt | 20214 ++++++++++++++ tests/auto/cmake/CMakeLists.txt | 67 + tests/auto/cmake/linguist/CMakeLists.txt | 60 + .../test_add_translation_macro/CMakeLists.txt | 14 + .../myi18nobject.cpp | 28 + .../test_add_translation_macro/myobject_de.ts | 12 + .../some_dir/some_include.h | 9 + .../CMakeLists.txt | 14 + .../myi18nobject.cpp | 26 + .../myobject_de.ts | 12 + .../some_dir/some_include.h | 9 + .../cmake/test_translation_api/CMakeLists.txt | 136 + .../test_translation_api/myi18nobject.cpp | 24 + .../cmake/test_translation_api/myobject_de.ts | 12 + .../some_dir/some_include.h | 12 + .../cmake/test_uiplugin_module/CMakeLists.txt | 10 + .../my_designer_plugin.cpp | 45 + .../test_uiplugin_via_designer/CMakeLists.txt | 12 + .../my_designer_plugin.cpp | 51 + tests/auto/linguist/CMakeLists.txt | 5 + tests/auto/linguist/lconvert/CMakeLists.txt | 10 + .../auto/linguist/lconvert/data/codec-utf8.ts | 27 + .../linguist/lconvert/data/endless-po-loop.ts | 16 + .../linguist/lconvert/data/idxmerge-add.ts | 17 + tests/auto/linguist/lconvert/data/idxmerge.ts | 17 + .../linguist/lconvert/data/idxmerge.ts.out | 22 + .../linguist/lconvert/data/makeplurals.pl | 48 + tests/auto/linguist/lconvert/data/msgid.ts | 27 + .../linguist/lconvert/data/phrasebook.qph | 21 + .../auto/linguist/lconvert/data/plurals-cn.ts | 17 + .../auto/linguist/lconvert/data/plurals-de.ts | 18 + tests/auto/linguist/lconvert/data/relative.ts | 74 + tests/auto/linguist/lconvert/data/singular.po | 42 + .../lconvert/data/test-broken-utf8.po | 9 + .../lconvert/data/test-broken-utf8.po.out | 12 + .../lconvert/data/test-developer-comment.po | 23 + .../lconvert/data/test-empty-comment.po | 24 + .../linguist/lconvert/data/test-escapes.po | 11 + .../lconvert/data/test-escapes.po.out | 16 + .../linguist/lconvert/data/test-kde-ctxt.po | 25 + .../linguist/lconvert/data/test-kde-fuzzy.po | 43 + .../lconvert/data/test-kde-multiline.po | 32 + .../lconvert/data/test-kde-plurals.po | 27 + .../auto/linguist/lconvert/data/test-refs.po | 23 + .../auto/linguist/lconvert/data/test-slurp.po | 19 + .../linguist/lconvert/data/test-slurp.po.out | 22 + .../lconvert/data/test-translator-comment.po | 41 + tests/auto/linguist/lconvert/data/test1-cn.po | 67 + tests/auto/linguist/lconvert/data/test1-de.po | 75 + tests/auto/linguist/lconvert/data/test20.ts | 171 + .../linguist/lconvert/data/untranslated.qm | Bin 0 -> 222 bytes .../linguist/lconvert/data/untranslated.ts | 25 + .../lconvert/data/untranslated.ts.out | 20 + tests/auto/linguist/lconvert/data/variants.ts | 24 + .../auto/linguist/lconvert/data/whitespace.ts | 12 + tests/auto/linguist/lconvert/data/wrapping.po | 66 + tests/auto/linguist/lconvert/tst_lconvert.cpp | 322 + tests/auto/linguist/lrelease/CMakeLists.txt | 10 + .../linguist/lrelease/testdata/compressed.ts | 46 + .../linguist/lrelease/testdata/dupes.errors | 4 + .../auto/linguist/lrelease/testdata/dupes.ts | 21 + .../linguist/lrelease/testdata/idbased.ts | 28 + .../lrelease/testdata/no-translations.pro | 1 + .../linguist/lrelease/testdata/translate.ts | 136 + tests/auto/linguist/lrelease/tst_lrelease.cpp | 198 + tests/auto/linguist/lupdate/CMakeLists.txt | 24 + .../testdata/good/backslashes/lupdatecmd | 1 + .../testdata/good/backslashes/project.pro | 3 + .../testdata/good/backslashes/src/main.cpp | 44 + .../good/backslashes/ts/project.ts.result | 13 + .../testdata/good/cmdline_deeppath/lupdatecmd | 2 + .../good/cmdline_deeppath/project.ts.result | 27 + .../lupdate/testdata/good/cmdline_order/a.h | 29 + .../lupdate/testdata/good/cmdline_order/b.h | 31 + .../testdata/good/cmdline_order/lupdatecmd | 1 + .../good/cmdline_order/project.ts.result | 20 + .../testdata/good/cmdline_recurse/lupdatecmd | 2 + .../good/cmdline_recurse/project.ts.result | 115 + .../testdata/good/codecforsrc/main.cpp | 55 + .../testdata/good/codecforsrc/project.pro | 6 + .../good/codecforsrc/project.ts.result | 37 + .../testdata/good/from_subdir/lupdatecmd | 1 + .../good/from_subdir/project.ts.result | 17 + .../testdata/good/from_subdir/src/main.cpp | 38 + .../testdata/good/from_subdir/src/main.h | 32 + .../from_subdir/translations/translations.pro | 7 + .../good/heuristics/expectedoutput.txt | 5 + .../testdata/good/heuristics/lupdatecmd | 2 + .../lupdate/testdata/good/heuristics/main.cpp | 49 + .../testdata/good/heuristics/project.pro | 3 + .../good/heuristics/project.ts.before | 38 + .../good/heuristics/project.ts.result | 22 + .../good/lacksqobject/expectedoutput.txt | 4 + .../testdata/good/lacksqobject/main.cpp | 75 + .../testdata/good/lacksqobject/project.pro | 3 + .../good/lacksqobject/project.ts.result | 40 + .../expectedoutput.txt | 0 .../good/lacksqobject_clang_parser/main.cpp | 75 + .../lacksqobject_clang_parser/project.pro | 3 + .../project.ts.result | 31 + .../testdata/good/merge_ordering/foo.cpp | 56 + .../testdata/good/merge_ordering/lupdatecmd | 1 + .../testdata/good/merge_ordering/project.pro | 3 + .../good/merge_ordering/project.ts.before | 74 + .../good/merge_ordering/project.ts.result | 82 + .../testdata/good/merge_versions/project.pro | 3 + .../good/merge_versions/project.ts.before | 14 + .../good/merge_versions/project.ts.result | 17 + .../testdata/good/merge_versions/project.ui | 35 + .../testdata/good/merge_whitespace/main.cpp | 51 + .../good/merge_whitespace/project.pro | 3 + .../good/merge_whitespace/project.ts.before | 70 + .../good/merge_whitespace/project.ts.result | 71 + .../testdata/good/mergecpp/finddialog.cpp | 71 + .../testdata/good/mergecpp/project.pro | 3 + .../testdata/good/mergecpp/project.ts.before | 71 + .../testdata/good/mergecpp/project.ts.result | 75 + .../good/mergecpp_noobsolete/finddialog.cpp | 141 + .../good/mergecpp_noobsolete/finddialog.h | 66 + .../good/mergecpp_noobsolete/lupdatecmd | 1 + .../good/mergecpp_noobsolete/project.pro | 3 + .../mergecpp_noobsolete/project.ts.before | 44 + .../mergecpp_noobsolete/project.ts.result | 35 + .../good/mergecpp_obsolete/finddialog.cpp | 145 + .../good/mergecpp_obsolete/finddialog.h | 66 + .../good/mergecpp_obsolete/project.pro | 3 + .../good/mergecpp_obsolete/project.ts.before | 39 + .../good/mergecpp_obsolete/project.ts.result | 43 + .../lupdate/testdata/good/mergeui/project.pro | 3 + .../testdata/good/mergeui/project.ts.before | 22 + .../testdata/good/mergeui/project.ts.result | 26 + .../lupdate/testdata/good/mergeui/project.ui | 39 + .../good/mergeui_obsolete/project.pro | 3 + .../good/mergeui_obsolete/project.ts.before | 16 + .../good/mergeui_obsolete/project.ts.result | 22 + .../testdata/good/mergeui_obsolete/project.ui | 26 + .../good/multiple_locations/finddialog.cpp | 42 + .../testdata/good/multiple_locations/main.cpp | 63 + .../good/multiple_locations/project.pro | 4 + .../good/multiple_locations/project.ts.result | 41 + .../lupdate/testdata/good/namespaces/main.cpp | 185 + .../testdata/good/namespaces/project.pro | 3 + .../good/namespaces/project.ts.result | 106 + .../testdata/good/notargetlanguage/main.cpp | 42 + .../good/notargetlanguage/project.pro | 3 + .../good/notargetlanguage/project.ts.before | 15 + .../good/notargetlanguage/project.ts.result | 15 + .../good/parse_special_chars/main.cpp | 46 + .../good/parse_special_chars/project.pro | 3 + .../parse_special_chars/project.ts.result | 17 + .../testdata/good/parsecontexts/main.cpp | 266 + .../testdata/good/parsecontexts/project.pro | 3 + .../good/parsecontexts/project.ts.result | 201 + .../good/parsecontexts_clang_parser/main.cpp | 266 + .../parsecontexts_clang_parser/project.pro | 3 + .../project.ts.result | 177 + .../testdata/good/parsecpp/excluded.cpp | 32 + .../testdata/good/parsecpp/expectedoutput.txt | 3 + .../testdata/good/parsecpp/finddialog.cpp | 171 + .../testdata/good/parsecpp/included.cpp | 31 + .../lupdate/testdata/good/parsecpp/main.cpp | 711 + .../testdata/good/parsecpp/notincluded.cpp | 31 + .../testdata/good/parsecpp/project.pro | 7 + .../testdata/good/parsecpp/project.ts.result | 678 + .../good/parsecpp2/expectedoutput.txt | 8 + .../lupdate/testdata/good/parsecpp2/main.cpp | 149 + .../lupdate/testdata/good/parsecpp2/main.h | 38 + .../testdata/good/parsecpp2/project.pro | 3 + .../testdata/good/parsecpp2/project.ts.result | 83 + .../parsecpp2_clang_parser/expectedoutput.txt | 3 + .../good/parsecpp2_clang_parser/main.cpp | 141 + .../good/parsecpp2_clang_parser/main.h | 36 + .../good/parsecpp2_clang_parser/project.pro | 3 + .../parsecpp2_clang_parser/project.ts.result | 83 + .../parsecpp_clang_only/expectedoutput.txt | 5 + .../good/parsecpp_clang_only/lupdatecmd | 1 + .../good/parsecpp_clang_only/my_include.h | 33 + .../good/parsecpp_clang_only/project.pro | 9 + .../parsecpp_clang_only/project.ts.result | 319 + .../test_QT_TR_NOOP_context.cpp | 165 + .../test_QT_TR_NOOP_context_bis.cpp | 165 + .../test_QT_TR_NOOP_context_with_comments.h | 36 + .../test_contain_only_alias.cpp | 35 + .../parsecpp_clang_only/test_header_only.cpp | 28 + .../parsecpp_clang_only/test_header_only.h | 39 + .../test_isolatedComments.cpp | 84 + .../test_isolatedComments.h | 33 + .../test_line_directive.cpp | 7 + .../test_sameLineComments.cpp | 54 + .../parsecpp_clang_parser/expectedoutput.txt | 2 + .../good/parsecpp_clang_parser/finddialog.cpp | 169 + .../good/parsecpp_clang_parser/included.cpp | 31 + .../good/parsecpp_clang_parser/main.cpp | 690 + .../good/parsecpp_clang_parser/my_include.h | 6 + .../parsecpp_clang_parser/notincluded.cpp | 31 + .../good/parsecpp_clang_parser/project.pro | 7 + .../parsecpp_clang_parser/project.ts.result | 666 + .../testdata/good/parseidbasedui/project.pro | 3 + .../good/parseidbasedui/project.ts.result | 17 + .../testdata/good/parseidbasedui/project.ui | 35 + .../lupdate/testdata/good/parsejava/main.java | 82 + .../testdata/good/parsejava/project.pro | 3 + .../testdata/good/parsejava/project.ts.result | 115 + .../lupdate/testdata/good/parsejs/main.js | 91 + .../lupdate/testdata/good/parsejs/project.pro | 3 + .../testdata/good/parsejs/project.ts.result | 195 + .../testdata/good/parsejs2/expectedoutput.txt | 19 + .../lupdate/testdata/good/parsejs2/main.js | 56 + .../testdata/good/parsejs2/project.pro | 3 + .../testdata/good/parsejs2/project.ts.result | 30 + .../lupdate/testdata/good/parsejs3/main.js | 40 + .../testdata/good/parsejs3/project.pro | 3 + .../testdata/good/parsejs3/project.ts.result | 90 + .../testdata/good/parsejs4/expectedoutput.txt | 19 + .../lupdate/testdata/good/parsejs4/main.js | 85 + .../testdata/good/parsejs4/project.pro | 3 + .../testdata/good/parsejs4/project.ts.result | 30 + .../testdata/good/parsejscontexts/main.js | 29 + .../testdata/good/parsejscontexts/project.pro | 3 + .../good/parsejscontexts/project.ts.result | 81 + .../lupdate/testdata/good/parseobjc/main.mm | 51 + .../testdata/good/parseobjc/project.pro | 3 + .../testdata/good/parseobjc/project.ts.result | 20 + .../lupdate/testdata/good/parsepython/main.py | 85 + .../testdata/good/parsepython/project.pro | 3 + .../good/parsepython/project.ts.result | 76 + .../lupdate/testdata/good/parseqml/main.qml | 100 + .../testdata/good/parseqml/project.pro | 3 + .../testdata/good/parseqml/project.ts.result | 200 + .../good/parseqml2/expectedoutput.txt | 19 + .../lupdate/testdata/good/parseqml2/main.qml | 88 + .../testdata/good/parseqml2/project.pro | 3 + .../testdata/good/parseqml2/project.ts.result | 30 + .../lupdate/testdata/good/parseqrc/main.cpp | 37 + .../lupdate/testdata/good/parseqrc/main.js | 1 + .../lupdate/testdata/good/parseqrc/main.qml | 35 + .../testdata/good/parseqrc/project.pro | 9 + .../testdata/good/parseqrc/project.qrc | 5 + .../testdata/good/parseqrc/project.ts.result | 25 + .../lupdate/testdata/good/parseui/project.pro | 3 + .../testdata/good/parseui/project.ts.result | 17 + .../lupdate/testdata/good/parseui/project.ui | 35 + .../lupdate/testdata/good/prefix/main.cpp | 56 + .../lupdate/testdata/good/prefix/main.h | 48 + .../lupdate/testdata/good/prefix/project.pro | 3 + .../testdata/good/prefix/project.ts.result | 47 + .../good/prefix_clang_parser/main.cpp | 56 + .../testdata/good/prefix_clang_parser/main.h | 48 + .../good/prefix_clang_parser/project.pro | 3 + .../prefix_clang_parser/project.ts.result | 47 + .../lupdate/testdata/good/preprocess/main.cpp | 65 + .../testdata/good/preprocess/project.pro | 3 + .../good/preprocess/project.ts.result | 35 + .../expectedoutput.txt | 1 + .../good/preprocess_clang_parser/main.cpp | 62 + .../good/preprocess_clang_parser/project.pro | 3 + .../preprocess_clang_parser/project.ts.result | 29 + .../good/proparsing/features/default_pre.prf | 2 + .../lupdate/testdata/good/proparsing/main.cpp | 37 + .../lupdate/testdata/good/proparsing/main.qml | 35 + .../testdata/good/proparsing/main_mac.cpp | 35 + .../testdata/good/proparsing/main_unix.cpp | 38 + .../testdata/good/proparsing/main_win.cpp | 38 + .../testdata/good/proparsing/project.pro | 36 + .../good/proparsing/project.ts.result | 80 + .../testdata/good/proparsing/qml/excluded.cpp | 32 + .../testdata/good/proparsing/qml/notmain.qml | 35 + .../vpaths/dependpath/main_dependpath.cpp | 36 + .../good/proparsing/wildcard/main1.cpp | 37 + .../good/proparsing/wildcard/mainfile.cpp | 37 + .../testdata/good/proparsing/wildcard1.cpp | 35 + .../testdata/good/proparsing/wildcard99.cpp | 35 + .../lupdate/testdata/good/proparsing2/a | 32 + .../lupdate/testdata/good/proparsing2/a.cpp | 32 + .../lupdate/testdata/good/proparsing2/b | 32 + .../lupdate/testdata/good/proparsing2/b.cpp | 32 + .../lupdate/testdata/good/proparsing2/e | 32 + .../lupdate/testdata/good/proparsing2/f/g.cpp | 32 + .../testdata/good/proparsing2/files-cc.txt | 1 + .../testdata/good/proparsing2/include.h | 2 + .../testdata/good/proparsing2/project.pro | 33 + .../good/proparsing2/project.ts.result | 62 + .../testdata/good/proparsing2/spaces/z | 32 + .../good/proparsing2/variable_with_spaces | 32 + .../lupdate/testdata/good/proparsing2/with | 32 + .../lupdate/testdata/good/proparsing2/x/d | 32 + .../testdata/good/proparsing2/x/variable | 32 + .../testdata/good/proparsingpaths/file1.cpp | 37 + .../testdata/good/proparsingpaths/filter.cpp | 37 + .../testdata/good/proparsingpaths/project.pro | 5 + .../good/proparsingpaths/project.ts.result | 31 + .../testdata/good/proparsingpaths/sub/sub.pri | 3 + .../good/proparsingpaths/sub/subfile1.cpp | 37 + .../good/proparsingpaths/sub/subfilter.cpp | 37 + .../good/proparsingpri/common/common.pri | 1 + .../good/proparsingpri/common/main.cpp | 37 + .../good/proparsingpri/common/main.pri | 5 + .../testdata/good/proparsingpri/mac/mac.pri | 5 + .../good/proparsingpri/mac/main_mac.cpp | 38 + .../testdata/good/proparsingpri/project.pro | 10 + .../good/proparsingpri/project.ts.result | 37 + .../proparsingpri/relativity/relativity.cpp | 37 + .../proparsingpri/relativity/relativity.pri | 3 + .../good/proparsingpri/relativity/sub/sub.pri | 1 + .../proparsingpri/relativity/sub2/sub2.pri | 2 + .../good/proparsingpri/unix/main_unix.cpp | 38 + .../testdata/good/proparsingpri/unix/unix.pri | 5 + .../good/proparsingpri/win/main_win.cpp | 38 + .../testdata/good/proparsingpri/win/win.pri | 5 + .../good/proparsingsubdirs/project.pro | 2 + .../good/proparsingsubdirs/project.ts.result | 13 + .../good/proparsingsubdirs/sub1/main.cpp | 37 + .../good/proparsingsubdirs/sub1/sub1.pro | 3 + .../good/proparsingsubs/common/common.pro | 1 + .../good/proparsingsubs/common/main.cpp | 37 + .../good/proparsingsubs/excluded/excluded.pro | 1 + .../good/proparsingsubs/excluded/main.cpp | 37 + .../testdata/good/proparsingsubs/lupdatecmd | 1 + .../testdata/good/proparsingsubs/mac/mac.pro | 1 + .../good/proparsingsubs/mac/main_mac.cpp | 38 + .../testdata/good/proparsingsubs/project.pro | 8 + .../good/proparsingsubs/project.ts.result | 39 + .../good/proparsingsubs/sub/include/test.h | 43 + .../good/proparsingsubs/sub/src/test.cpp | 39 + .../testdata/good/proparsingsubs/sub/sub.pro | 5 + .../good/proparsingsubs/unix/main_unix.cpp | 38 + .../good/proparsingsubs/unix/unix.pro | 1 + .../good/proparsingsubs/win/main_win.cpp | 38 + .../testdata/good/proparsingsubs/win/win.pro | 1 + .../good/recurse_full/expectedoutput.txt | 0 .../testdata/good/recurse_full/lupdatecmd | 2 + .../good/recurse_full/project.ts.result | 20 + .../good/recurse_full/project_sub.ts.result | 12 + .../good/recurse_full_ts/expectedoutput.txt | 2 + .../testdata/good/recurse_full_ts/lupdatecmd | 3 + .../good/recurse_full_ts/project.ts.result | 20 + .../recurse_full_ts/project_sub.ts.before | 0 .../recurse_full_ts/project_sub.ts.result | 0 .../recurse_full_ts_join/expectedoutput.txt | 0 .../good/recurse_full_ts_join/lupdatecmd | 2 + .../recurse_full_ts_join/project.ts.result | 20 + .../good/recurse_part/expectedoutput.txt | 1 + .../testdata/good/recurse_part/lupdatecmd | 2 + .../good/recurse_part/project.ts.before | 0 .../good/recurse_part/project.ts.result | 0 .../good/recurse_part/project_sub.ts.result | 12 + .../good/recurse_part_ts/expectedoutput.txt | 1 + .../testdata/good/recurse_part_ts/lupdatecmd | 3 + .../good/recurse_part_ts/project.ts.result | 20 + .../recurse_part_ts/project_sub.ts.before | 0 .../recurse_part_ts/project_sub.ts.result | 0 .../testdata/good/reloutput/lupdatecmd | 1 + .../lupdate/testdata/good/reloutput/main.cpp | 37 + .../testdata/good/reloutput/project.pro | 3 + .../reloutput/translations/project.ts.result | 12 + .../good/resources_cmdline/lupdatecmd | 1 + .../testdata/good/resources_cmdline/main.js | 1 + .../testdata/good/resources_cmdline/main.qml | 35 + .../good/resources_cmdline/project.qrc | 6 + .../good/resources_cmdline/project.ts.result | 17 + .../lupdate/testdata/good/respfile/lupdatecmd | 2 + .../testdata/good/respfile/project.ts.result | 17 + .../testdata/good/respfile/source1.cpp | 36 + .../testdata/good/respfile/source2.cpp | 36 + .../testdata/good/respfile/sources.lst | 2 + .../testdata/good/respfile/tsfiles.lst | 1 + .../testdata/good/textsimilarity/project.pro | 3 + .../good/textsimilarity/project.ts.before | 16 + .../good/textsimilarity/project.ts.result | 22 + .../testdata/good/textsimilarity/project.ui | 26 + .../good/tr_function_alias/lupdatecmd | 1 + .../testdata/good/tr_function_alias/main.cpp | 89 + .../testdata/good/tr_function_alias/main.qml | 4 + .../good/tr_function_alias/project.pro | 4 + .../good/tr_function_alias/project.ts.result | 187 + .../good_testing_all_fixed/parseqrc/main.cpp | 37 + .../good_testing_all_fixed/parseqrc/main.js | 1 + .../good_testing_all_fixed/parseqrc/main.qml | 35 + .../parseqrc/project.pro | 9 + .../parseqrc/project.qrc | 5 + .../parseqrc/project.ts.result | 25 + .../lupdate/testdata/recursivescan/main.cpp | 50 + .../lupdate/testdata/recursivescan/project.ui | 36 + .../recursivescan/sub/filetypes/main.c++ | 36 + .../recursivescan/sub/filetypes/main.cpp | 36 + .../recursivescan/sub/filetypes/main.cxx | 36 + .../testdata/recursivescan/sub/finddialog.cpp | 60 + .../lupdate/testdata/subdirs_full/project.pro | 4 + .../testdata/subdirs_full/subdir1/main.cpp | 33 + .../testdata/subdirs_full/subdir1/subdir1.pro | 1 + .../testdata/subdirs_full/subdir2/subdir2.pro | 2 + .../subdirs_full/subdir2/subsub1/main.cpp | 33 + .../subdirs_full/subdir2/subsub1/subsub1.pro | 1 + .../subdirs_full/subdir2/subsub2/main.cpp | 33 + .../subdirs_full/subdir2/subsub2/subsub2.pro | 3 + .../lupdate/testdata/subdirs_part/project.pro | 2 + .../testdata/subdirs_part/subdir1/main.cpp | 33 + .../testdata/subdirs_part/subdir1/subdir1.pro | 1 + .../testdata/subdirs_part/subdir2/subdir2.pro | 2 + .../subdirs_part/subdir2/subsub1/main.cpp | 33 + .../subdirs_part/subdir2/subsub1/subsub1.pro | 1 + .../subdirs_part/subdir2/subsub2/main.cpp | 33 + .../subdirs_part/subdir2/subsub2/subsub2.pro | 3 + tests/auto/linguist/lupdate/tst_lupdate.cpp | 363 + tests/auto/qdoc/CMakeLists.txt | 14 + tests/auto/qdoc/catch/CATCH_LICENSE.txt | 23 + tests/auto/qdoc/catch/CMakeLists.txt | 0 tests/auto/qdoc/catch/catch.hpp | 17976 ++++++++++++ tests/auto/qdoc/catch/qt_attribution.json | 17 + .../qdoc_catch_conversions.hpp | 24 + .../qt_catch_conversions.hpp | 19 + .../std_catch_conversions.hpp | 16 + .../auto/qdoc/catch_generators/CMakeLists.txt | 1 + .../src/generators/qchar_generator.hpp | 83 + .../src/generators/qstring_generator.hpp | 149 + .../qdoc/catch_generators/src/namespaces.hpp | 5 + .../catch_generators/tests/CMakeLists.txt | 11 + .../tests/catch_qchar_generator.cpp | 73 + .../tests/catch_qstring_generator.cpp | 102 + .../auto/qdoc/catch_generators/tests/main.cpp | 9 + tests/auto/qdoc/config/CMakeLists.txt | 16 + .../testdata/configs/exampletest.qdocconf | 2 + .../testdata/configs/expandvars.qdocconf | 13 + .../testdata/configs/includepaths.qdocconf | 2 + .../testdata/configs/includes/test.qdoc | 1 + .../config/testdata/configs/paths.qdocconf | 5 + .../config/testdata/configs/vars.qdocconf | 17 + .../exampletest/examples/test/empty/test.pro | 1 + .../examples/test/example1/example1.pro | 1 + .../test/example2/example2.qmlproject | 1 + .../examples/test/example3/example3.pyproject | 1 + .../examples/test/example4/CMakeLists.txt | 1 + .../examples/test/example4/example4.pro | 1 + .../includepaths/include/framework/ignore.h | 1 + .../includepaths/include/more/ignore.h | 1 + .../testdata/includepaths/include/purpose.h | 1 + .../includepaths/include/system/ignore.h | 1 + .../includepaths/includepaths.qdocconf | 16 + .../config/testdata/paths/includes/test.qdoc | 1 + .../qdoc/config/testdata/paths/paths.qdocconf | 2 + tests/auto/qdoc/config/tst_config.cpp | 180 + .../auto/qdoc/generatedoutput/CMakeLists.txt | 39 + .../expected_output/autolinking.html | 34 + .../crossmodule/all-namespaces.html | 20 + .../crossmoduleref-sub-crossmodule.html | 30 + .../crossmodule/testtype-members.html | 29 + .../expected_output/crossmodule/testtype.html | 64 + .../expected_output/crossmoduleref.html | 44 + .../expected_output/demos-manifest.xml | 9 + .../docbook/qdoc-test-qmlmodule.xml | 54 + .../qdoctests-qdocfileoutput-exhaustive.xml | 61 + .../qdoctests-qdocfileoutput-linking.xml | 19 + .../docbook/qdoctests-qdocfileoutput.xml | 73 + .../expected_output/docbook/qml-int.xml | 21 + .../docbook/qml-qdoc-test-abstractparent.xml | 72 + .../docbook/qml-qdoc-test-child.xml | 72 + .../docbook/qml-qdoc-test-doctest.xml | 117 + .../docbook/qml-qdoc-test-type.xml | 175 + .../docbook/qml-qdoc-test-yetanotherchild.xml | 37 + .../docbook/qml-test-nover-typenoversion.xml | 28 + .../docbook/qml-uicomponents-progressbar.xml | 104 + .../docbook/qml-uicomponents-switch.xml | 47 + .../docbook/qml-uicomponents-tabwidget.xml | 77 + .../docbook/test-componentset-example.xml | 52 + .../docbook/test-nover-qmlmodule.xml | 22 + .../docbook/testcpp-module.xml | 81 + .../expected_output/docbook/testqdoc-test.xml | 289 + .../docbook/testqdoc-testderived.xml | 104 + .../expected_output/docbook/testqdoc.xml | 64 + .../docbook/uicomponents-qmlmodule.xml | 34 + .../expected_output/dontdocument/classes.html | 21 + .../dontdocument/dontdocument.qhp | 70 + .../dontdocument/seenclass.html | 33 + .../expected_output/examples-manifest.xml | 15 + .../expected_output/first.html | 37 + .../expected_output/globals.html | 45 + .../headerfile-docbook/headers.xml | 19 + .../headerfile-docbook/testheader.xml | 87 + .../expected_output/headerfile/headers.html | 19 + .../headerfile/testheader.html | 65 + .../expected_output/html/first.webxml | 15 + .../expected_output/html/index.webxml | 10 + ...qdoctests-qdocfileoutput-exhaustive.webxml | 58 + .../qdoctests-qdocfileoutput-linking.webxml | 20 + .../html/qdoctests-qdocfileoutput.webxml | 88 + .../expected_output/html/second.webxml | 10 + .../html/test-componentset-example.webxml | 67 + .../html/test-nover-qmlmodule.webxml | 4 + .../html/testcpp-module.webxml | 4 + .../expected_output/html/testqdoc-test.webxml | 98 + .../html/testqdoc-testderived.webxml | 28 + .../expected_output/html/third.webxml | 10 + .../html/uicomponents-qmlmodule.webxml | 4 + .../ignoresince/testqdoc-test.html | 131 + .../expected_output/ignoresince/testqdoc.html | 60 + .../includefromexampledirs/index.html | 27 + .../qml-qdoc-test-abstractparent-members.html | 19 + .../qml-qdoc-test-abstractparent.html | 67 + .../expected_output/index-linking.html | 27 + .../expected_output/index.html | 21 + .../nestedmacro/testcpp-module.html | 56 + .../qdoc-test-qmlmodule.xml | 15 + .../test-componentset-example.xml | 37 + .../noautolist-docbook/testcpp-module.xml | 47 + .../noautolist/qdoc-test-qmlmodule.html | 18 + .../noautolist/test-componentset-example.html | 46 + .../noautolist/testcpp-module.html | 43 + .../expected_output/obsolete-classes.html | 32 + .../testqdoc-testderived.xml | 282 + .../properties/qml-thetype.html | 43 + .../expected_output/properties/testcpp.index | 116 + .../testqdoc-testderived-members.html | 46 + .../properties/testqdoc-testderived.html | 162 + .../proxypage-docbook/stdpair-proxy.xml | 21 + .../proxypage/stdpair-proxy.html | 20 + .../expected_output/qdoc-test-qmlmodule.html | 26 + .../qdoctests-qdocfileoutput-exhaustive.html | 58 + .../qdoctests-qdocfileoutput-linking.html | 36 + .../qdoctests-qdocfileoutput.html | 60 + .../expected_output/qml-int.html | 44 + .../qml-linkmodule-grandchild-members.html | 26 + .../qml-qdoc-test-abstractparent.html | 97 + .../expected_output/qml-qdoc-test-child.html | 97 + .../qml-qdoc-test-doctest.html | 138 + .../qml-qdoc-test-type-members.html | 35 + .../qml-qdoc-test-type-obsolete.html | 31 + .../expected_output/qml-qdoc-test-type.html | 195 + .../qml-qdoc-test-yetanotherchild.html | 47 + .../qml-test-nover-typenoversion-members.html | 16 + .../qml-test-nover-typenoversion.html | 32 + .../qml-uicomponents-progressbar.html | 97 + .../qml-uicomponents-switch.html | 67 + .../qml-uicomponents-tabwidget.html | 83 + .../expected_output/qmlmodules.html | 22 + .../qml-qdoc-test-parent.xml | 63 + .../qml-qdoc-test-anotherchild-members.html | 27 + .../qml-qdoc-test-parent.html | 60 + .../scoped-enum-linking.xml | 12 + .../scopedenum-docbook/testqdoc-test.xml | 386 + .../scopedenum/scoped-enum-linking.html | 18 + .../scopedenum/testqdoc-test.html | 149 + .../expected_output/second.html | 29 + .../expected_output/space.html | 42 + .../expected_output/template/bar.html | 34 + .../expected_output/template/baz.html | 34 + .../expected_output/template/foo.html | 34 + .../template/testqdoc-test-struct.html | 30 + .../template/testqdoc-test.html | 144 + .../template/testqdoc-vec.html | 34 + .../test-cmaketest-example.html | 21 + .../test-componentset-example.html | 54 + .../expected_output/test-nover-qmlmodule.html | 20 + .../generatedoutput/expected_output/test.qhp | 208 + .../expected_output/testcpp-module.html | 55 + .../expected_output/testcpp.index | 73 + .../testqdoc-test-members.html | 27 + .../testqdoc-test-obsolete.html | 44 + .../expected_output/testqdoc-test.html | 129 + .../testqdoc-testderived-members.html | 29 + .../testqdoc-testderived-obsolete.html | 25 + .../expected_output/testqdoc-testderived.html | 67 + .../expected_output/testqdoc.html | 60 + .../expected_output/testtagfile.tags | 335 + .../expected_output/third.html | 29 + .../generatedoutput/expected_output/toc.html | 29 + .../qdoctests-qdocfileoutput-exhaustive.html | 71 + .../qdoctests-qdocfileoutput-linking.html | 38 + .../qdoctests-qdocfileoutput.html | 62 + .../tocbreadcrumbs/toc-test.html | 32 + .../uicomponents-qmlmodule.html | 23 + .../bug80259/inc/testmodule/TestModule.h | 3 + .../testdata/bug80259/inc/testmodule/aaa.h | 4 + .../testdata/bug80259/inc/testmodule/bbb.h | 5 + .../testdata/bug80259/inc/testmodule/ccc.h | 4 + .../testdata/bug80259/src/main.cpp | 29 + .../testdata/bug80259/src/qdoc/index.qdoc | 7 + .../testdata/bug80259/testmodule.qdocconf | 14 + .../bug80259/webxml_testmodule.qdocconf | 2 + .../testdata/configs/config.qdocconf | 14 + .../testdata/configs/docbook.qdocconf | 7 + .../testdata/configs/docbook_test.qdocconf | 3 + .../testdata/configs/docbook_testcpp.qdocconf | 3 + .../testdata/configs/docbook_testqml.qdocconf | 3 + .../testdata/configs/examples-qhp.qdocconf | 40 + .../testdata/configs/headerfile.qdocconf | 11 + .../testdata/configs/ignoresince.qdocconf | 9 + .../testdata/configs/nestedmacro.qdocconf | 10 + .../testdata/configs/noautolist.qdocconf | 14 + .../testdata/configs/properties.qdocconf | 13 + .../testdata/configs/scopedenum.qdocconf | 11 + .../testdata/configs/tagfiles.qdocconf | 2 + .../testdata/configs/test.qdocconf | 16 + .../testdata/configs/testcpp.qdocconf | 14 + .../configs/testcpp_singleexec.qdocconf | 6 + .../testdata/configs/testglobals.qdocconf | 6 + .../testdata/configs/testqml.qdocconf | 24 + .../testdata/configs/testtemplate.qdocconf | 9 + .../testdata/configs/tocbreadcrumbs.qdocconf | 9 + .../testdata/configs/tocnavigation.qdocconf | 5 + .../testdata/configs/usingdirective.qdocconf | 3 + .../testdata/configs/webxml.qdocconf | 3 + .../testdata/configs/webxml_test.qdocconf | 3 + .../testdata/configs/webxml_testcpp.qdocconf | 3 + .../testdata/configs/webxml_testqml.qdocconf | 2 + .../testdata/crossmodule/CrossModule | 2 + .../testdata/crossmodule/crossmodule.qdocconf | 13 + .../crossmodule_singleexec.qdocconf | 6 + .../testdata/crossmodule/namespaces.qdoc | 9 + .../testdata/crossmodule/testtype.cpp | 45 + .../testdata/crossmodule/testtype.h | 16 + .../testdata/dontdocument/TestCPP | 2 + .../testdata/dontdocument/dont.cpp | 22 + .../testdata/dontdocument/dont.h | 16 + .../dontdocument/dontdocument.qdocconf | 21 + .../testdata/dontdocument/test.qdoc | 11 + .../testdata/examples/demos/demo/demo.pro | 2 + .../examples/demos/demo/doc/src/demo.qdoc | 9 + .../examples/demos/hidden/doc/src/hidden.qdoc | 11 + .../testdata/examples/demos/hidden/hidden.pro | 2 + .../testdata/globalfunc/TestGlobals | 1 + .../testdata/globalfunc/global.h | 6 + .../testdata/globalfunc/global.qdoc | 23 + .../testdata/headerfile/testheader.cpp | 36 + .../testdata/headerfile/testheader.h | 8 + .../testdata/images/leonardo-da-vinci.png | Bin 0 -> 15076 bytes .../excludes/anotherindex.qdoc | 14 + .../excludes/parentinclude.qdoc | 27 + .../includefromexampledirs.qdocconf | 13 + .../src/includefromparent.qdoc | 41 + .../includefromexampledirs/src/parent.qdocinc | 1 + .../indexlinking/indexlinking.qdocconf | 11 + .../testdata/indexlinking/linking.qdoc | 25 + .../qdoctests-outputfromqdocfiles.qdoc | 191 + .../testdata/proxypage/proxy.h | 8 + .../testdata/proxypage/proxy.qdoc | 9 + .../testdata/proxypage/proxypage.qdocconf | 13 + .../generatedoutput/testdata/qml/DocTest.qml | 86 + .../testdata/qml/cmaketest/CMakeLists.txt | 2 + .../qml/cmaketest/doc/src/cmaketest.qdoc | 9 + .../testdata/qml/cmaketest/main.cpp | 1 + .../testdata/qml/componentset/ProgressBar.qml | 98 + .../testdata/qml/componentset/Switch.qml | 105 + .../testdata/qml/componentset/TabWidget.qml | 146 + .../qml/componentset/componentset.pro | 5 + .../qml/componentset/componentset.qml | 4 + .../testdata/qml/componentset/examples.qdoc | 80 + .../qml/componentset/uicomponents.qdoc.sample | 14 + .../generatedoutput/testdata/qml/modules.qdoc | 9 + .../generatedoutput/testdata/qml/parent.qdoc | 87 + .../generatedoutput/testdata/qml/type.cpp | 118 + .../testdata/qmlpropertygroups/parent.qdoc | 37 + .../qmlpropertygroups.qdocconf | 12 + .../testdata/scopedenum/scopedenum.qdoc | 36 + .../testdata/singleexec/singleexec.qdocconf | 4 + .../generatedoutput/testdata/testcpp/TestCPP | 5 + .../testdata/testcpp/classlists.qdoc | 36 + .../testdata/testcpp/properties.qdoc | 49 + .../testcpp/snippets/snippet_testcpp.cpp | 3 + .../testdata/testcpp/testcpp.cpp | 350 + .../testdata/testcpp/testcpp.h | 134 + .../testdata/testtemplate/testtemplate.cpp | 23 + .../testdata/testtemplate/testtemplate.h | 28 + .../generatedoutput/testdata/toc/toc.qdoc | 23 + .../testdata/usingdirective/UsingDirective | 2 + .../testdata/usingdirective/alias.h | 7 + .../testdata/usingdirective/space.cpp | 18 + .../testdata/usingdirective/space.h | 7 + .../generatedoutput/tst_generatedoutput.cpp | 542 + .../qdoc/qdoccommandlineparser/CMakeLists.txt | 27 + .../qdoccommandlineparser/tst_arguments.txt | 22 + .../tst_qdoccommandlineparser.cpp | 161 + tests/auto/qdoc/utilities/CMakeLists.txt | 13 + tests/auto/qdoc/utilities/tst_utilities.cpp | 134 + tests/auto/qhelpcontentmodel/CMakeLists.txt | 16 + .../qhelpcontentmodel/data/collection.qhc | Bin 0 -> 10240 bytes .../qhelpcontentmodel/data/qmake-3.3.8.qch | Bin 0 -> 61440 bytes .../qhelpcontentmodel/data/qmake-4.3.0.qch | Bin 0 -> 93184 bytes tests/auto/qhelpcontentmodel/data/test.qch | Bin 0 -> 20480 bytes .../tst_qhelpcontentmodel.cpp | 140 + tests/auto/qhelpenginecore/CMakeLists.txt | 17 + .../auto/qhelpenginecore/data/collection.qhc | Bin 0 -> 10240 bytes .../auto/qhelpenginecore/data/collection1.qhc | Bin 0 -> 10240 bytes .../qhelpenginecore/data/linguist-3.3.8.qch | Bin 0 -> 131072 bytes .../auto/qhelpenginecore/data/qmake-3.3.8.qch | Bin 0 -> 61440 bytes .../auto/qhelpenginecore/data/qmake-4.3.0.qch | Bin 0 -> 93184 bytes tests/auto/qhelpenginecore/data/test.html | 11 + tests/auto/qhelpenginecore/data/test.qch | Bin 0 -> 20480 bytes .../qhelpenginecore/tst_qhelpenginecore.cpp | 403 + tests/auto/qhelpgenerator/CMakeLists.txt | 20 + tests/auto/qhelpgenerator/data/cars.html | 11 + tests/auto/qhelpgenerator/data/classic.css | 92 + tests/auto/qhelpgenerator/data/fancy.html | 11 + tests/auto/qhelpgenerator/data/people.html | 11 + tests/auto/qhelpgenerator/data/sub/about.html | 11 + tests/auto/qhelpgenerator/data/test.html | 11 + tests/auto/qhelpgenerator/data/test.qhp | 71 + .../qhelpgenerator/tst_qhelpgenerator.cpp | 200 + tests/auto/qhelpindexmodel/CMakeLists.txt | 17 + .../auto/qhelpindexmodel/data/collection.qhc | Bin 0 -> 10240 bytes .../auto/qhelpindexmodel/data/collection1.qhc | Bin 0 -> 10240 bytes .../qhelpindexmodel/data/linguist-3.3.8.qch | Bin 0 -> 131072 bytes .../auto/qhelpindexmodel/data/qmake-3.3.8.qch | Bin 0 -> 61440 bytes .../auto/qhelpindexmodel/data/qmake-4.3.0.qch | Bin 0 -> 93184 bytes tests/auto/qhelpindexmodel/data/test.html | 11 + tests/auto/qhelpindexmodel/data/test.qch | Bin 0 -> 20480 bytes .../qhelpindexmodel/tst_qhelpindexmodel.cpp | 132 + tests/auto/qhelpprojectdata/CMakeLists.txt | 18 + tests/auto/qhelpprojectdata/data/test.qhp | 72 + .../qhelpprojectdata/tst_qhelpprojectdata.cpp | 153 + .../auto/qtattributionsscanner/CMakeLists.txt | 17 + .../good/chromium/README_test.chromium | 9 + .../good/complete/qt_attribution_test.json | 24 + .../testdata/good/expected.error | 0 .../testdata/good/expected.json | 110 + .../testdata/good/licenses-dir/expected.error | 0 .../testdata/good/licenses-dir/expected.json | 23 + .../licenses-dir/qt_attribution_test.json | 9 + .../testdata/good/minimal/expected.error | 0 .../testdata/good/minimal/expected.json | 23 + .../good/minimal/qt_attribution_test.json | 9 + .../testdata/good/variants/COPYRIGHT.txt | 1 + .../testdata/good/variants/LICENSE1.txt | 1 + .../testdata/good/variants/LICENSE2.txt | 1 + .../testdata/good/variants/expected.error | 0 .../testdata/good/variants/expected.json | 26 + .../good/variants/qt_attribution_test.json | 11 + .../warnings/incomplete/expected.error | 3 + .../incomplete/qt_attribution_test.json | 2 + .../testdata/warnings/unknown/expected.error | 1 + .../warnings/unknown/qt_attribution_test.json | 10 + .../tst_qtattributionsscanner.cpp | 134 + tests/auto/qtdiag/CMakeLists.txt | 12 + tests/auto/qtdiag/tst_qtdiag.cpp | 57 + tests/global/global.cfg | 7 + tests/manual/CMakeLists.txt | 3 + tests/manual/manual.pro | 3 + .../qtattributionsscanner/CMakeLists.txt | 2 + .../manual/qtattributionsscanner/data/LICENSE | 686 + .../data/qt_attribution.json | 11 + .../qtattributionsscanner/overview.qdoc | 13 + .../qtattributionsscanner.pro | 14 + .../qtattributionsscanner/test.qdocconf | 6 + 3182 files changed, 628515 insertions(+) create mode 100644 .QT-ENTERPRISE-LICENSE-AGREEMENT create mode 100644 .cmake.conf create mode 100644 .gitmodules create mode 100644 .tag create mode 100644 CMakeLists.txt create mode 100644 LICENSES/BSD-3-Clause.txt create mode 100644 LICENSES/BSL-1.0.txt create mode 100644 LICENSES/GFDL-1.3-no-invariants-only.txt create mode 100644 LICENSES/GPL-2.0-only.txt create mode 100644 LICENSES/GPL-3.0-only.txt create mode 100644 LICENSES/LGPL-3.0-only.txt create mode 100644 LICENSES/LicenseRef-Qt-Commercial.txt create mode 100644 LICENSES/Qt-GPL-exception-1.0.txt create mode 100644 cmake/FindWrapLibClang.cmake create mode 100644 coin/module_config.yaml create mode 100644 conanfile.py create mode 100644 configure.cmake create mode 100644 dependencies.yaml create mode 100644 dist/changes-5.0.1 create mode 100644 dist/changes-5.0.2 create mode 100644 dist/changes-5.1.0 create mode 100644 dist/changes-5.1.1 create mode 100644 dist/changes-5.10.0 create mode 100644 dist/changes-5.10.1 create mode 100644 dist/changes-5.11.0 create mode 100644 dist/changes-5.11.1 create mode 100644 dist/changes-5.11.2 create mode 100644 dist/changes-5.11.3 create mode 100644 dist/changes-5.12.0 create mode 100644 dist/changes-5.12.1 create mode 100644 dist/changes-5.12.10 create mode 100644 dist/changes-5.12.2 create mode 100644 dist/changes-5.12.3 create mode 100644 dist/changes-5.12.4 create mode 100644 dist/changes-5.12.5 create mode 100644 dist/changes-5.13.0 create mode 100644 dist/changes-5.13.1 create mode 100644 dist/changes-5.13.2 create mode 100644 dist/changes-5.14.0 create mode 100644 dist/changes-5.14.1 create mode 100644 dist/changes-5.14.2 create mode 100644 dist/changes-5.15.0 create mode 100644 dist/changes-5.15.1 create mode 100644 dist/changes-5.15.2 create mode 100644 dist/changes-5.2.0 create mode 100644 dist/changes-5.2.1 create mode 100644 dist/changes-5.6.3 create mode 100644 dist/changes-5.7.0 create mode 100644 dist/changes-5.8.0 create mode 100644 dist/changes-5.9.0 create mode 100644 dist/changes-5.9.1 create mode 100644 dist/changes-5.9.2 create mode 100644 dist/changes-5.9.3 create mode 100644 dist/changes-5.9.4 create mode 100644 dist/changes-5.9.5 create mode 100644 dist/changes-5.9.6 create mode 100644 dist/changes-6.0.0 create mode 100644 examples/CMakeLists.txt create mode 100644 examples/assistant/CMakeLists.txt create mode 100644 examples/assistant/assistant.pro create mode 100644 examples/assistant/doc/images/simpletextviewer-example.png create mode 100644 examples/assistant/doc/images/simpletextviewer-findfiledialog.png create mode 100644 examples/assistant/doc/images/simpletextviewer-mainwindow.png create mode 100644 examples/assistant/doc/src/remotecontrol.qdoc create mode 100644 examples/assistant/doc/src/simpletextviewer.qdoc create mode 100644 examples/assistant/remotecontrol/CMakeLists.txt create mode 100644 examples/assistant/remotecontrol/enter.png create mode 100644 examples/assistant/remotecontrol/main.cpp create mode 100644 examples/assistant/remotecontrol/remotecontrol.cpp create mode 100644 examples/assistant/remotecontrol/remotecontrol.h create mode 100644 examples/assistant/remotecontrol/remotecontrol.pro create mode 100644 examples/assistant/remotecontrol/remotecontrol.qrc create mode 100644 examples/assistant/remotecontrol/remotecontrol.ui create mode 100644 examples/assistant/simpletextviewer/CMakeLists.txt create mode 100644 examples/assistant/simpletextviewer/assistant.cpp create mode 100644 examples/assistant/simpletextviewer/assistant.h create mode 100644 examples/assistant/simpletextviewer/documentation/about.txt create mode 100644 examples/assistant/simpletextviewer/documentation/browse.html create mode 100644 examples/assistant/simpletextviewer/documentation/filedialog.html create mode 100644 examples/assistant/simpletextviewer/documentation/findfile.html create mode 100644 examples/assistant/simpletextviewer/documentation/images/browse.png create mode 100644 examples/assistant/simpletextviewer/documentation/images/fadedfilemenu.png create mode 100644 examples/assistant/simpletextviewer/documentation/images/filedialog.png create mode 100644 examples/assistant/simpletextviewer/documentation/images/handbook.png create mode 100644 examples/assistant/simpletextviewer/documentation/images/icon.png create mode 100644 examples/assistant/simpletextviewer/documentation/images/mainwindow.png create mode 100644 examples/assistant/simpletextviewer/documentation/images/open.png create mode 100644 examples/assistant/simpletextviewer/documentation/images/wildcard.png create mode 100644 examples/assistant/simpletextviewer/documentation/index.html create mode 100644 examples/assistant/simpletextviewer/documentation/intro.html create mode 100644 examples/assistant/simpletextviewer/documentation/openfile.html create mode 100644 examples/assistant/simpletextviewer/documentation/simpletextviewer.qch create mode 100644 examples/assistant/simpletextviewer/documentation/simpletextviewer.qhc create mode 100644 examples/assistant/simpletextviewer/documentation/simpletextviewer.qhcp create mode 100644 examples/assistant/simpletextviewer/documentation/simpletextviewer.qhp create mode 100644 examples/assistant/simpletextviewer/documentation/wildcardmatching.html create mode 100644 examples/assistant/simpletextviewer/findfiledialog.cpp create mode 100644 examples/assistant/simpletextviewer/findfiledialog.h create mode 100644 examples/assistant/simpletextviewer/main.cpp create mode 100644 examples/assistant/simpletextviewer/mainwindow.cpp create mode 100644 examples/assistant/simpletextviewer/mainwindow.h create mode 100644 examples/assistant/simpletextviewer/simpletextviewer.pro create mode 100644 examples/assistant/simpletextviewer/textedit.cpp create mode 100644 examples/assistant/simpletextviewer/textedit.h create mode 100644 examples/designer/CMakeLists.txt create mode 100644 examples/designer/README create mode 100644 examples/designer/calculatorbuilder/CMakeLists.txt create mode 100644 examples/designer/calculatorbuilder/calculatorbuilder.pro create mode 100644 examples/designer/calculatorbuilder/calculatorbuilder.qrc create mode 100644 examples/designer/calculatorbuilder/calculatorform.cpp create mode 100644 examples/designer/calculatorbuilder/calculatorform.h create mode 100644 examples/designer/calculatorbuilder/calculatorform.ui create mode 100644 examples/designer/calculatorbuilder/main.cpp create mode 100644 examples/designer/calculatorform/CMakeLists.txt create mode 100644 examples/designer/calculatorform/calculatorform.cpp create mode 100644 examples/designer/calculatorform/calculatorform.h create mode 100644 examples/designer/calculatorform/calculatorform.pro create mode 100644 examples/designer/calculatorform/calculatorform.ui create mode 100644 examples/designer/calculatorform/main.cpp create mode 100644 examples/designer/containerextension/CMakeLists.txt create mode 100644 examples/designer/containerextension/containerextension.pro create mode 100644 examples/designer/containerextension/multipagewidget.cpp create mode 100644 examples/designer/containerextension/multipagewidget.h create mode 100644 examples/designer/containerextension/multipagewidgetcontainerextension.cpp create mode 100644 examples/designer/containerextension/multipagewidgetcontainerextension.h create mode 100644 examples/designer/containerextension/multipagewidgetextensionfactory.cpp create mode 100644 examples/designer/containerextension/multipagewidgetextensionfactory.h create mode 100644 examples/designer/containerextension/multipagewidgetplugin.cpp create mode 100644 examples/designer/containerextension/multipagewidgetplugin.h create mode 100644 examples/designer/customwidgetplugin/CMakeLists.txt create mode 100644 examples/designer/customwidgetplugin/analogclock.cpp create mode 100644 examples/designer/customwidgetplugin/analogclock.h create mode 100644 examples/designer/customwidgetplugin/customwidgetplugin.cpp create mode 100644 examples/designer/customwidgetplugin/customwidgetplugin.h create mode 100644 examples/designer/customwidgetplugin/customwidgetplugin.pro create mode 100644 examples/designer/designer.pro create mode 100644 examples/designer/doc/images/arthurplugin-demo.png create mode 100644 examples/designer/doc/images/calculatorbuilder-example.png create mode 100644 examples/designer/doc/images/calculatorform-example.png create mode 100644 examples/designer/doc/images/containerextension-example.png create mode 100644 examples/designer/doc/images/customwidgetplugin-example.png create mode 100644 examples/designer/doc/images/taskmenuextension-dialog.png create mode 100644 examples/designer/doc/images/taskmenuextension-example-faded.png create mode 100644 examples/designer/doc/images/taskmenuextension-example.png create mode 100644 examples/designer/doc/images/taskmenuextension-menu.png create mode 100644 examples/designer/doc/images/worldtimeclock-connection.png create mode 100644 examples/designer/doc/images/worldtimeclock-signalandslot.png create mode 100644 examples/designer/doc/images/worldtimeclockbuilder-example.png create mode 100644 examples/designer/doc/images/worldtimeclockplugin-example.png create mode 100644 examples/designer/doc/snippets/doc_src_examples_containerextension.pro create mode 100644 examples/designer/doc/snippets/doc_src_examples_customwidgetplugin.pro create mode 100644 examples/designer/doc/snippets/doc_src_examples_taskmenuextension.pro create mode 100644 examples/designer/doc/snippets/doc_src_examples_worldtimeclockplugin.pro create mode 100644 examples/designer/doc/src/calculatorbuilder.qdoc create mode 100644 examples/designer/doc/src/calculatorform.qdoc create mode 100644 examples/designer/doc/src/containerextension.qdoc create mode 100644 examples/designer/doc/src/customwidgetplugin.qdoc create mode 100644 examples/designer/doc/src/taskmenuextension.qdoc create mode 100644 examples/designer/doc/src/worldtimeclockbuilder.qdoc create mode 100644 examples/designer/doc/src/worldtimeclockplugin.qdoc create mode 100644 examples/designer/taskmenuextension/CMakeLists.txt create mode 100644 examples/designer/taskmenuextension/taskmenuextension.pro create mode 100644 examples/designer/taskmenuextension/tictactoe.cpp create mode 100644 examples/designer/taskmenuextension/tictactoe.h create mode 100644 examples/designer/taskmenuextension/tictactoedialog.cpp create mode 100644 examples/designer/taskmenuextension/tictactoedialog.h create mode 100644 examples/designer/taskmenuextension/tictactoeplugin.cpp create mode 100644 examples/designer/taskmenuextension/tictactoeplugin.h create mode 100644 examples/designer/taskmenuextension/tictactoetaskmenu.cpp create mode 100644 examples/designer/taskmenuextension/tictactoetaskmenu.h create mode 100644 examples/designer/worldtimeclockbuilder/CMakeLists.txt create mode 100644 examples/designer/worldtimeclockbuilder/form.ui create mode 100644 examples/designer/worldtimeclockbuilder/main.cpp create mode 100644 examples/designer/worldtimeclockbuilder/worldtimeclockbuilder.pro create mode 100644 examples/designer/worldtimeclockbuilder/worldtimeclockbuilder.qrc create mode 100644 examples/designer/worldtimeclockplugin/CMakeLists.txt create mode 100644 examples/designer/worldtimeclockplugin/worldtimeclock.cpp create mode 100644 examples/designer/worldtimeclockplugin/worldtimeclock.h create mode 100644 examples/designer/worldtimeclockplugin/worldtimeclockplugin.cpp create mode 100644 examples/designer/worldtimeclockplugin/worldtimeclockplugin.h create mode 100644 examples/designer/worldtimeclockplugin/worldtimeclockplugin.pro create mode 100644 examples/examples.pro create mode 100644 examples/help/CMakeLists.txt create mode 100644 examples/help/README create mode 100644 examples/help/contextsensitivehelp/CMakeLists.txt create mode 100644 examples/help/contextsensitivehelp/contextsensitivehelp.pro create mode 100644 examples/help/contextsensitivehelp/docs/amount.html create mode 100644 examples/help/contextsensitivehelp/docs/filter.html create mode 100644 examples/help/contextsensitivehelp/docs/plants.html create mode 100644 examples/help/contextsensitivehelp/docs/rain.html create mode 100644 examples/help/contextsensitivehelp/docs/source.html create mode 100644 examples/help/contextsensitivehelp/docs/temperature.html create mode 100644 examples/help/contextsensitivehelp/docs/time.html create mode 100644 examples/help/contextsensitivehelp/docs/wateringmachine.qch create mode 100644 examples/help/contextsensitivehelp/docs/wateringmachine.qhc create mode 100644 examples/help/contextsensitivehelp/docs/wateringmachine.qhcp create mode 100644 examples/help/contextsensitivehelp/docs/wateringmachine.qhp create mode 100644 examples/help/contextsensitivehelp/helpbrowser.cpp create mode 100644 examples/help/contextsensitivehelp/helpbrowser.h create mode 100644 examples/help/contextsensitivehelp/main.cpp create mode 100644 examples/help/contextsensitivehelp/wateringconfigdialog.cpp create mode 100644 examples/help/contextsensitivehelp/wateringconfigdialog.h create mode 100644 examples/help/contextsensitivehelp/wateringconfigdialog.ui create mode 100644 examples/help/doc/src/contextsensitivehelp.qdoc create mode 100644 examples/help/help.pro create mode 100644 examples/linguist/CMakeLists.txt create mode 100644 examples/linguist/README create mode 100644 examples/linguist/arrowpad/CMakeLists.txt create mode 100644 examples/linguist/arrowpad/arrowpad.cpp create mode 100644 examples/linguist/arrowpad/arrowpad.h create mode 100644 examples/linguist/arrowpad/arrowpad.pro create mode 100644 examples/linguist/arrowpad/main.cpp create mode 100644 examples/linguist/arrowpad/mainwindow.cpp create mode 100644 examples/linguist/arrowpad/mainwindow.h create mode 100644 examples/linguist/doc/images/linguist-arrowpad_en.png create mode 100644 examples/linguist/doc/images/linguist-arrowpad_fr.png create mode 100644 examples/linguist/doc/images/linguist-arrowpad_nl.png create mode 100644 examples/linguist/doc/images/linguist-hellotr_en.png create mode 100644 examples/linguist/doc/images/linguist-hellotr_la.png create mode 100644 examples/linguist/doc/images/linguist-trollprint_10_en.png create mode 100644 examples/linguist/doc/images/linguist-trollprint_10_pt_bad.png create mode 100644 examples/linguist/doc/images/linguist-trollprint_10_pt_good.png create mode 100644 examples/linguist/doc/images/linguist-trollprint_11_en.png create mode 100644 examples/linguist/doc/images/linguist-trollprint_11_pt.png create mode 100644 examples/linguist/doc/snippets/doc_src_examples_arrowpad.cpp create mode 100644 examples/linguist/doc/snippets/doc_src_examples_arrowpad.qdoc create mode 100644 examples/linguist/doc/snippets/doc_src_examples_hellotr.qdoc create mode 100644 examples/linguist/doc/snippets/doc_src_examples_trollprint.cpp create mode 100644 examples/linguist/doc/src/arrowpad.qdoc create mode 100644 examples/linguist/doc/src/hellotr.qdoc create mode 100644 examples/linguist/doc/src/trollprint.qdoc create mode 100644 examples/linguist/hellotr/CMakeLists.txt create mode 100644 examples/linguist/hellotr/hellotr.pro create mode 100644 examples/linguist/hellotr/main.cpp create mode 100644 examples/linguist/linguist.pro create mode 100644 examples/linguist/trollprint/CMakeLists.txt create mode 100644 examples/linguist/trollprint/main.cpp create mode 100644 examples/linguist/trollprint/mainwindow.cpp create mode 100644 examples/linguist/trollprint/mainwindow.h create mode 100644 examples/linguist/trollprint/printpanel.cpp create mode 100644 examples/linguist/trollprint/printpanel.h create mode 100644 examples/linguist/trollprint/trollprint.pro create mode 100644 examples/linguist/trollprint/trollprint_pt.ts create mode 100644 examples/uitools/CMakeLists.txt create mode 100644 examples/uitools/doc/images/multipleinheritance-example.png create mode 100644 examples/uitools/doc/images/textfinder-example-userinterface.png create mode 100644 examples/uitools/doc/src/multipleinheritance.qdoc create mode 100644 examples/uitools/doc/src/textfinder.qdoc create mode 100644 examples/uitools/multipleinheritance/CMakeLists.txt create mode 100644 examples/uitools/multipleinheritance/calculatorform.cpp create mode 100644 examples/uitools/multipleinheritance/calculatorform.h create mode 100644 examples/uitools/multipleinheritance/calculatorform.ui create mode 100644 examples/uitools/multipleinheritance/main.cpp create mode 100644 examples/uitools/multipleinheritance/multipleinheritance.pro create mode 100644 examples/uitools/textfinder/CMakeLists.txt create mode 100644 examples/uitools/textfinder/forms/input.txt create mode 100644 examples/uitools/textfinder/forms/textfinder.ui create mode 100644 examples/uitools/textfinder/main.cpp create mode 100644 examples/uitools/textfinder/textfinder.cpp create mode 100644 examples/uitools/textfinder/textfinder.h create mode 100644 examples/uitools/textfinder/textfinder.pro create mode 100644 examples/uitools/textfinder/textfinder.qrc create mode 100644 examples/uitools/uitools.pro create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/abstractdialoggui_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/abstractintrospection_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/actioneditor_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/actionprovider_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/actionrepository_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/codedialog_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/connectionedit_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/csshighlighter_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/deviceprofile_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/dialoggui_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/extensionfactory_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/formbuilderextra_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/formlayoutmenu_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/formwindowbase_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/grid_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/gridpanel_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/htmlhighlighter_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/iconloader_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/iconselector_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/invisible_widget_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/layout_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/layoutinfo_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/lib_pch.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/metadatabase_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/morphmenu_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/newactiondialog_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/newformwidget_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/orderdialog_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/plaintexteditor_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/plugindialog_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/pluginmanager_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/previewconfigurationwidget_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/previewmanager_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/promotionmodel_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/promotiontaskmenu_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/properties_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/propertylineedit_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_command2_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_command_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_dnditem_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_dockwidget_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formbuilder_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formeditorcommand_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formwindowcommand_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formwindowmanager_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_introspection_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_membersheet_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_menu_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_menubar_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_objectinspector_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_promotion_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_promotiondialog_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_propertycommand_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_propertyeditor_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_propertysheet_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_qsettings_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_stackedbox_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_tabwidget_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_taskmenu_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_toolbar_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_toolbox_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_utils_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_widget_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_widgetbox_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_widgetitem_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qlayout_widget_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qsimpleresource_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qtresourceeditordialog_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qtresourcemodel_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/qtresourceview_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/rcc_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/resourcebuilder_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/richtexteditor_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/selectsignaldialog_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/shared_enums_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/shared_global_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/shared_settings_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/sheet_delegate_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/signalslotdialog_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/spacer_widget_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/stylesheeteditor_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/textbuilder_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/textpropertyeditor_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/ui4_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/widgetdatabase_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/widgetfactory_p.h create mode 100644 include/QtDesigner/6.4.2/QtDesigner/private/zoomwidget_p.h create mode 100644 include/QtDesigner/QAbstractExtensionFactory create mode 100644 include/QtDesigner/QAbstractExtensionManager create mode 100644 include/QtDesigner/QAbstractFormBuilder create mode 100644 include/QtDesigner/QDesignerActionEditorInterface create mode 100644 include/QtDesigner/QDesignerComponents create mode 100644 include/QtDesigner/QDesignerContainerExtension create mode 100644 include/QtDesigner/QDesignerCustomWidgetCollectionInterface create mode 100644 include/QtDesigner/QDesignerCustomWidgetInterface create mode 100644 include/QtDesigner/QDesignerDnDItemInterface create mode 100644 include/QtDesigner/QDesignerDynamicPropertySheetExtension create mode 100644 include/QtDesigner/QDesignerExportWidget create mode 100644 include/QtDesigner/QDesignerExtraInfoExtension create mode 100644 include/QtDesigner/QDesignerFormEditorInterface create mode 100644 include/QtDesigner/QDesignerFormEditorPluginInterface create mode 100644 include/QtDesigner/QDesignerFormWindowCursorInterface create mode 100644 include/QtDesigner/QDesignerFormWindowInterface create mode 100644 include/QtDesigner/QDesignerFormWindowManagerInterface create mode 100644 include/QtDesigner/QDesignerFormWindowToolInterface create mode 100644 include/QtDesigner/QDesignerIntegration create mode 100644 include/QtDesigner/QDesignerIntegrationInterface create mode 100644 include/QtDesigner/QDesignerLanguageExtension create mode 100644 include/QtDesigner/QDesignerLayoutDecorationExtension create mode 100644 include/QtDesigner/QDesignerMemberSheetExtension create mode 100644 include/QtDesigner/QDesignerMetaDataBaseInterface create mode 100644 include/QtDesigner/QDesignerMetaDataBaseItemInterface create mode 100644 include/QtDesigner/QDesignerNewFormWidgetInterface create mode 100644 include/QtDesigner/QDesignerObjectInspectorInterface create mode 100644 include/QtDesigner/QDesignerOptionsPageInterface create mode 100644 include/QtDesigner/QDesignerPromotionInterface create mode 100644 include/QtDesigner/QDesignerPropertyEditorInterface create mode 100644 include/QtDesigner/QDesignerPropertySheetExtension create mode 100644 include/QtDesigner/QDesignerResourceBrowserInterface create mode 100644 include/QtDesigner/QDesignerSettingsInterface create mode 100644 include/QtDesigner/QDesignerTaskMenuExtension create mode 100644 include/QtDesigner/QDesignerWidgetBoxInterface create mode 100644 include/QtDesigner/QDesignerWidgetDataBaseInterface create mode 100644 include/QtDesigner/QDesignerWidgetDataBaseItemInterface create mode 100644 include/QtDesigner/QDesignerWidgetFactoryInterface create mode 100644 include/QtDesigner/QExtensionFactory create mode 100644 include/QtDesigner/QExtensionManager create mode 100644 include/QtDesigner/QFormBuilder create mode 100644 include/QtDesigner/QtDesigner create mode 100644 include/QtDesigner/QtDesignerVersion create mode 100644 include/QtDesigner/abstractactioneditor.h create mode 100644 include/QtDesigner/abstractdnditem.h create mode 100644 include/QtDesigner/abstractformbuilder.h create mode 100644 include/QtDesigner/abstractformeditor.h create mode 100644 include/QtDesigner/abstractformeditorplugin.h create mode 100644 include/QtDesigner/abstractformwindow.h create mode 100644 include/QtDesigner/abstractformwindowcursor.h create mode 100644 include/QtDesigner/abstractformwindowmanager.h create mode 100644 include/QtDesigner/abstractformwindowtool.h create mode 100644 include/QtDesigner/abstractintegration.h create mode 100644 include/QtDesigner/abstractlanguage.h create mode 100644 include/QtDesigner/abstractmetadatabase.h create mode 100644 include/QtDesigner/abstractnewformwidget.h create mode 100644 include/QtDesigner/abstractobjectinspector.h create mode 100644 include/QtDesigner/abstractoptionspage.h create mode 100644 include/QtDesigner/abstractpromotioninterface.h create mode 100644 include/QtDesigner/abstractpropertyeditor.h create mode 100644 include/QtDesigner/abstractresourcebrowser.h create mode 100644 include/QtDesigner/abstractsettings.h create mode 100644 include/QtDesigner/abstractwidgetbox.h create mode 100644 include/QtDesigner/abstractwidgetdatabase.h create mode 100644 include/QtDesigner/abstractwidgetfactory.h create mode 100644 include/QtDesigner/container.h create mode 100644 include/QtDesigner/customwidget.h create mode 100644 include/QtDesigner/default_extensionfactory.h create mode 100644 include/QtDesigner/dynamicpropertysheet.h create mode 100644 include/QtDesigner/extension.h create mode 100644 include/QtDesigner/extension_global.h create mode 100644 include/QtDesigner/extrainfo.h create mode 100644 include/QtDesigner/formbuilder.h create mode 100644 include/QtDesigner/headers.pri create mode 100644 include/QtDesigner/layoutdecoration.h create mode 100644 include/QtDesigner/membersheet.h create mode 100644 include/QtDesigner/propertysheet.h create mode 100644 include/QtDesigner/qdesigner_components.h create mode 100644 include/QtDesigner/qdesigner_components_global.h create mode 100644 include/QtDesigner/qdesignerexportwidget.h create mode 100644 include/QtDesigner/qextensionmanager.h create mode 100644 include/QtDesigner/qtdesignerversion.h create mode 100644 include/QtDesigner/sdk_global.h create mode 100644 include/QtDesigner/taskmenu.h create mode 100644 include/QtDesigner/uilib_global.h create mode 100644 include/QtDesignerComponents/6.4.2/QtDesignerComponents/private/lib_pch.h create mode 100644 include/QtDesignerComponents/QtDesignerComponents create mode 100644 include/QtDesignerComponents/QtDesignerComponentsVersion create mode 100644 include/QtDesignerComponents/headers.pri create mode 100644 include/QtDesignerComponents/qtdesignercomponentsversion.h create mode 100644 include/QtHelp/6.4.2/QtHelp/private/qfilternamedialog_p.h create mode 100644 include/QtHelp/6.4.2/QtHelp/private/qhelpcollectionhandler_p.h create mode 100644 include/QtHelp/6.4.2/QtHelp/private/qhelpdbreader_p.h create mode 100644 include/QtHelp/6.4.2/QtHelp/private/qhelpengine_p.h create mode 100644 include/QtHelp/6.4.2/QtHelp/private/qhelpfiltersettings_p.h create mode 100644 include/QtHelp/6.4.2/QtHelp/private/qhelpsearchindexreader_default_p.h create mode 100644 include/QtHelp/6.4.2/QtHelp/private/qhelpsearchindexreader_p.h create mode 100644 include/QtHelp/6.4.2/QtHelp/private/qhelpsearchindexwriter_default_p.h create mode 100644 include/QtHelp/6.4.2/QtHelp/private/qoptionswidget_p.h create mode 100644 include/QtHelp/QCompressedHelpInfo create mode 100644 include/QtHelp/QHelpContentItem create mode 100644 include/QtHelp/QHelpContentModel create mode 100644 include/QtHelp/QHelpContentWidget create mode 100644 include/QtHelp/QHelpEngine create mode 100644 include/QtHelp/QHelpEngineCore create mode 100644 include/QtHelp/QHelpFilterData create mode 100644 include/QtHelp/QHelpFilterEngine create mode 100644 include/QtHelp/QHelpFilterSettingsWidget create mode 100644 include/QtHelp/QHelpGlobal create mode 100644 include/QtHelp/QHelpIndexModel create mode 100644 include/QtHelp/QHelpIndexWidget create mode 100644 include/QtHelp/QHelpLink create mode 100644 include/QtHelp/QHelpSearchEngine create mode 100644 include/QtHelp/QHelpSearchQuery create mode 100644 include/QtHelp/QHelpSearchQueryWidget create mode 100644 include/QtHelp/QHelpSearchResult create mode 100644 include/QtHelp/QHelpSearchResultWidget create mode 100644 include/QtHelp/QtHelp create mode 100644 include/QtHelp/QtHelpVersion create mode 100644 include/QtHelp/headers.pri create mode 100644 include/QtHelp/qcompressedhelpinfo.h create mode 100644 include/QtHelp/qhelp_global.h create mode 100644 include/QtHelp/qhelpcontentwidget.h create mode 100644 include/QtHelp/qhelpengine.h create mode 100644 include/QtHelp/qhelpenginecore.h create mode 100644 include/QtHelp/qhelpfilterdata.h create mode 100644 include/QtHelp/qhelpfilterengine.h create mode 100644 include/QtHelp/qhelpfiltersettingswidget.h create mode 100644 include/QtHelp/qhelpindexwidget.h create mode 100644 include/QtHelp/qhelplink.h create mode 100644 include/QtHelp/qhelpsearchengine.h create mode 100644 include/QtHelp/qhelpsearchquerywidget.h create mode 100644 include/QtHelp/qhelpsearchresultwidget.h create mode 100644 include/QtHelp/qthelpversion.h create mode 100644 include/QtTools/QtTools create mode 100644 include/QtTools/QtToolsVersion create mode 100644 include/QtTools/headers.pri create mode 100644 include/QtTools/qttoolsversion.h create mode 100644 include/QtUiPlugin/QDesignerCustomWidgetCollectionInterface create mode 100644 include/QtUiPlugin/QDesignerCustomWidgetInterface create mode 100644 include/QtUiPlugin/QDesignerExportWidget create mode 100644 include/QtUiPlugin/QtUiPlugin create mode 100644 include/QtUiPlugin/QtUiPluginVersion create mode 100644 include/QtUiPlugin/customwidget.h create mode 100644 include/QtUiPlugin/headers.pri create mode 100644 include/QtUiPlugin/qdesignerexportwidget.h create mode 100644 include/QtUiPlugin/qtuipluginversion.h create mode 100644 include/QtUiTools/6.4.2/QtUiTools/private/quiloader_p.h create mode 100644 include/QtUiTools/QUiLoader create mode 100644 include/QtUiTools/QtUiTools create mode 100644 include/QtUiTools/QtUiToolsVersion create mode 100644 include/QtUiTools/headers.pri create mode 100644 include/QtUiTools/qtuitoolsglobal.h create mode 100644 include/QtUiTools/qtuitoolsversion.h create mode 100644 include/QtUiTools/quiloader.h create mode 100644 qt_cmdline.cmake create mode 100644 src/CMakeLists.txt create mode 100644 src/assistant/CMakeLists.txt create mode 100644 src/assistant/assistant/CMakeLists.txt create mode 100644 src/assistant/assistant/Info_mac.plist create mode 100644 src/assistant/assistant/aboutdialog.cpp create mode 100644 src/assistant/assistant/aboutdialog.h create mode 100644 src/assistant/assistant/assistant.icns create mode 100644 src/assistant/assistant/assistant.ico create mode 100644 src/assistant/assistant/bookmarkdialog.cpp create mode 100644 src/assistant/assistant/bookmarkdialog.h create mode 100644 src/assistant/assistant/bookmarkdialog.ui create mode 100644 src/assistant/assistant/bookmarkfiltermodel.cpp create mode 100644 src/assistant/assistant/bookmarkfiltermodel.h create mode 100644 src/assistant/assistant/bookmarkitem.cpp create mode 100644 src/assistant/assistant/bookmarkitem.h create mode 100644 src/assistant/assistant/bookmarkmanager.cpp create mode 100644 src/assistant/assistant/bookmarkmanager.h create mode 100644 src/assistant/assistant/bookmarkmanagerwidget.cpp create mode 100644 src/assistant/assistant/bookmarkmanagerwidget.h create mode 100644 src/assistant/assistant/bookmarkmanagerwidget.ui create mode 100644 src/assistant/assistant/bookmarkmodel.cpp create mode 100644 src/assistant/assistant/bookmarkmodel.h create mode 100644 src/assistant/assistant/bookmarkwidget.ui create mode 100644 src/assistant/assistant/centralwidget.cpp create mode 100644 src/assistant/assistant/centralwidget.h create mode 100644 src/assistant/assistant/cmdlineparser.cpp create mode 100644 src/assistant/assistant/cmdlineparser.h create mode 100644 src/assistant/assistant/contentwindow.cpp create mode 100644 src/assistant/assistant/contentwindow.h create mode 100644 src/assistant/assistant/doc/images/assistant-assistant.png create mode 100644 src/assistant/assistant/doc/images/assistant-bookmarks.png create mode 100644 src/assistant/assistant/doc/images/assistant-dockwidgets.png create mode 100644 src/assistant/assistant/doc/images/assistant-examples.png create mode 100644 src/assistant/assistant/doc/images/assistant-index.png create mode 100644 src/assistant/assistant/doc/images/assistant-preferences-documentation.png create mode 100644 src/assistant/assistant/doc/images/assistant-preferences-filters.png create mode 100644 src/assistant/assistant/doc/images/assistant-preferences-fonts.png create mode 100644 src/assistant/assistant/doc/images/assistant-preferences-options.png create mode 100644 src/assistant/assistant/doc/images/assistant-search.png create mode 100644 src/assistant/assistant/doc/internal/README create mode 100644 src/assistant/assistant/doc/internal/assistant.qdocconf create mode 100644 src/assistant/assistant/doc/internal/internal.pro create mode 100644 src/assistant/assistant/doc/qtassistant.qdocconf create mode 100644 src/assistant/assistant/doc/snippets/doc_src_assistant-manual.qdoc create mode 100644 src/assistant/assistant/doc/src/assistant-example.qdoc create mode 100644 src/assistant/assistant/doc/src/assistant-manual.qdoc create mode 100644 src/assistant/assistant/doc/src/assistant-quick-guide.qdoc create mode 100644 src/assistant/assistant/findwidget.cpp create mode 100644 src/assistant/assistant/findwidget.h create mode 100644 src/assistant/assistant/globalactions.cpp create mode 100644 src/assistant/assistant/globalactions.h create mode 100644 src/assistant/assistant/helpbrowsersupport.cpp create mode 100644 src/assistant/assistant/helpbrowsersupport.h create mode 100644 src/assistant/assistant/helpdocsettings.cpp create mode 100644 src/assistant/assistant/helpdocsettings.h create mode 100644 src/assistant/assistant/helpdocsettingswidget.cpp create mode 100644 src/assistant/assistant/helpdocsettingswidget.h create mode 100644 src/assistant/assistant/helpdocsettingswidget.ui create mode 100644 src/assistant/assistant/helpenginewrapper.cpp create mode 100644 src/assistant/assistant/helpenginewrapper.h create mode 100644 src/assistant/assistant/helpviewer.cpp create mode 100644 src/assistant/assistant/helpviewer.h create mode 100644 src/assistant/assistant/helpviewerimpl.cpp create mode 100644 src/assistant/assistant/helpviewerimpl.h create mode 100644 src/assistant/assistant/helpviewerimpl_p.h create mode 100644 src/assistant/assistant/helpviewerimpl_qtb.cpp create mode 100644 src/assistant/assistant/helpviewerimpl_qwv.cpp create mode 100644 src/assistant/assistant/images/assistant-128.png create mode 100644 src/assistant/assistant/images/assistant.png create mode 100644 src/assistant/assistant/images/bookmark.png create mode 100644 src/assistant/assistant/images/closebutton.png create mode 100644 src/assistant/assistant/images/darkclosebutton.png create mode 100644 src/assistant/assistant/images/mac/addtab.png create mode 100644 src/assistant/assistant/images/mac/book.png create mode 100644 src/assistant/assistant/images/mac/closetab.png create mode 100644 src/assistant/assistant/images/mac/editcopy.png create mode 100644 src/assistant/assistant/images/mac/find.png create mode 100644 src/assistant/assistant/images/mac/home.png create mode 100644 src/assistant/assistant/images/mac/next.png create mode 100644 src/assistant/assistant/images/mac/previous.png create mode 100644 src/assistant/assistant/images/mac/print.png create mode 100644 src/assistant/assistant/images/mac/resetzoom.png create mode 100644 src/assistant/assistant/images/mac/synctoc.png create mode 100644 src/assistant/assistant/images/mac/zoomin.png create mode 100644 src/assistant/assistant/images/mac/zoomout.png create mode 100644 src/assistant/assistant/images/win/addtab.png create mode 100644 src/assistant/assistant/images/win/book.png create mode 100644 src/assistant/assistant/images/win/closetab.png create mode 100644 src/assistant/assistant/images/win/editcopy.png create mode 100644 src/assistant/assistant/images/win/find.png create mode 100644 src/assistant/assistant/images/win/home.png create mode 100644 src/assistant/assistant/images/win/next.png create mode 100644 src/assistant/assistant/images/win/previous.png create mode 100644 src/assistant/assistant/images/win/print.png create mode 100644 src/assistant/assistant/images/win/resetzoom.png create mode 100644 src/assistant/assistant/images/win/synctoc.png create mode 100644 src/assistant/assistant/images/win/zoomin.png create mode 100644 src/assistant/assistant/images/win/zoomout.png create mode 100644 src/assistant/assistant/images/wrap.png create mode 100644 src/assistant/assistant/indexwindow.cpp create mode 100644 src/assistant/assistant/indexwindow.h create mode 100644 src/assistant/assistant/main.cpp create mode 100644 src/assistant/assistant/mainwindow.cpp create mode 100644 src/assistant/assistant/mainwindow.h create mode 100644 src/assistant/assistant/openpagesmanager.cpp create mode 100644 src/assistant/assistant/openpagesmanager.h create mode 100644 src/assistant/assistant/openpagesmodel.cpp create mode 100644 src/assistant/assistant/openpagesmodel.h create mode 100644 src/assistant/assistant/openpagesswitcher.cpp create mode 100644 src/assistant/assistant/openpagesswitcher.h create mode 100644 src/assistant/assistant/openpageswidget.cpp create mode 100644 src/assistant/assistant/openpageswidget.h create mode 100644 src/assistant/assistant/preferencesdialog.cpp create mode 100644 src/assistant/assistant/preferencesdialog.h create mode 100644 src/assistant/assistant/preferencesdialog.ui create mode 100644 src/assistant/assistant/qtdocinstaller.cpp create mode 100644 src/assistant/assistant/qtdocinstaller.h create mode 100644 src/assistant/assistant/remotecontrol.cpp create mode 100644 src/assistant/assistant/remotecontrol.h create mode 100644 src/assistant/assistant/searchwidget.cpp create mode 100644 src/assistant/assistant/searchwidget.h create mode 100644 src/assistant/assistant/stdinlistener.cpp create mode 100644 src/assistant/assistant/stdinlistener.h create mode 100644 src/assistant/assistant/stdinlistener_win.cpp create mode 100644 src/assistant/assistant/stdinlistener_win.h create mode 100644 src/assistant/assistant/topicchooser.cpp create mode 100644 src/assistant/assistant/topicchooser.h create mode 100644 src/assistant/assistant/topicchooser.ui create mode 100644 src/assistant/assistant/tracer.h create mode 100644 src/assistant/assistant/xbelsupport.cpp create mode 100644 src/assistant/assistant/xbelsupport.h create mode 100644 src/assistant/help/CMakeLists.txt create mode 100644 src/assistant/help/doc/qthelp.qdocconf create mode 100644 src/assistant/help/doc/snippets/doc_src_qthelp.cpp create mode 100644 src/assistant/help/doc/snippets/doc_src_qthelp.qdoc create mode 100644 src/assistant/help/doc/src/qthelp-examples.qdoc create mode 100644 src/assistant/help/doc/src/qthelp-index.qdoc create mode 100644 src/assistant/help/doc/src/qthelp-module.qdoc create mode 100644 src/assistant/help/doc/src/qthelp.qdoc create mode 100644 src/assistant/help/images/1leftarrow.png create mode 100644 src/assistant/help/images/1rightarrow.png create mode 100644 src/assistant/help/images/3leftarrow.png create mode 100644 src/assistant/help/images/3rightarrow.png create mode 100644 src/assistant/help/images/mac/minus.png create mode 100644 src/assistant/help/images/mac/plus.png create mode 100644 src/assistant/help/images/win/minus.png create mode 100644 src/assistant/help/images/win/plus.png create mode 100644 src/assistant/help/qcompressedhelpinfo.cpp create mode 100644 src/assistant/help/qcompressedhelpinfo.h create mode 100644 src/assistant/help/qfilternamedialog.cpp create mode 100644 src/assistant/help/qfilternamedialog.ui create mode 100644 src/assistant/help/qfilternamedialog_p.h create mode 100644 src/assistant/help/qhelp_global.cpp create mode 100644 src/assistant/help/qhelp_global.h create mode 100644 src/assistant/help/qhelpcollectionhandler.cpp create mode 100644 src/assistant/help/qhelpcollectionhandler_p.h create mode 100644 src/assistant/help/qhelpcontentwidget.cpp create mode 100644 src/assistant/help/qhelpcontentwidget.h create mode 100644 src/assistant/help/qhelpdbreader.cpp create mode 100644 src/assistant/help/qhelpdbreader_p.h create mode 100644 src/assistant/help/qhelpengine.cpp create mode 100644 src/assistant/help/qhelpengine.h create mode 100644 src/assistant/help/qhelpengine_p.h create mode 100644 src/assistant/help/qhelpenginecore.cpp create mode 100644 src/assistant/help/qhelpenginecore.h create mode 100644 src/assistant/help/qhelpfilterdata.cpp create mode 100644 src/assistant/help/qhelpfilterdata.h create mode 100644 src/assistant/help/qhelpfilterengine.cpp create mode 100644 src/assistant/help/qhelpfilterengine.h create mode 100644 src/assistant/help/qhelpfiltersettings.cpp create mode 100644 src/assistant/help/qhelpfiltersettings_p.h create mode 100644 src/assistant/help/qhelpfiltersettingswidget.cpp create mode 100644 src/assistant/help/qhelpfiltersettingswidget.h create mode 100644 src/assistant/help/qhelpfiltersettingswidget.ui create mode 100644 src/assistant/help/qhelpindexwidget.cpp create mode 100644 src/assistant/help/qhelpindexwidget.h create mode 100644 src/assistant/help/qhelplink.cpp create mode 100644 src/assistant/help/qhelplink.h create mode 100644 src/assistant/help/qhelpsearchengine.cpp create mode 100644 src/assistant/help/qhelpsearchengine.h create mode 100644 src/assistant/help/qhelpsearchindexreader.cpp create mode 100644 src/assistant/help/qhelpsearchindexreader_default.cpp create mode 100644 src/assistant/help/qhelpsearchindexreader_default_p.h create mode 100644 src/assistant/help/qhelpsearchindexreader_p.h create mode 100644 src/assistant/help/qhelpsearchindexwriter_default.cpp create mode 100644 src/assistant/help/qhelpsearchindexwriter_default_p.h create mode 100644 src/assistant/help/qhelpsearchquerywidget.cpp create mode 100644 src/assistant/help/qhelpsearchquerywidget.h create mode 100644 src/assistant/help/qhelpsearchresultwidget.cpp create mode 100644 src/assistant/help/qhelpsearchresultwidget.h create mode 100644 src/assistant/help/qoptionswidget.cpp create mode 100644 src/assistant/help/qoptionswidget_p.h create mode 100644 src/assistant/qhelpgenerator/CMakeLists.txt create mode 100644 src/assistant/qhelpgenerator/collectionconfigreader.cpp create mode 100644 src/assistant/qhelpgenerator/collectionconfigreader.h create mode 100644 src/assistant/qhelpgenerator/helpgenerator.cpp create mode 100644 src/assistant/qhelpgenerator/helpgenerator.h create mode 100644 src/assistant/qhelpgenerator/main.cpp create mode 100644 src/assistant/qhelpgenerator/qhelpdatainterface.cpp create mode 100644 src/assistant/qhelpgenerator/qhelpdatainterface_p.h create mode 100644 src/assistant/qhelpgenerator/qhelpprojectdata.cpp create mode 100644 src/assistant/qhelpgenerator/qhelpprojectdata_p.h create mode 100644 src/assistant/qlitehtml/.clang-format create mode 100644 src/assistant/qlitehtml/.gitmodules create mode 100644 src/assistant/qlitehtml/.tag create mode 100644 src/assistant/qlitehtml/CMakeLists.txt create mode 100644 src/assistant/qlitehtml/LICENSES/Apache-2.0.txt create mode 100644 src/assistant/qlitehtml/LICENSES/BSD-3-Clause.txt create mode 100644 src/assistant/qlitehtml/LICENSES/GPL-3.0-only.txt create mode 100644 src/assistant/qlitehtml/LICENSES/LicenseRef-Qt-Commercial.txt create mode 100644 src/assistant/qlitehtml/LICENSES/MIT.txt create mode 100644 src/assistant/qlitehtml/LICENSES/Qt-GPL-exception-1.0.txt create mode 100644 src/assistant/qlitehtml/README.md create mode 100644 src/assistant/qlitehtml/src/3rdparty/GUMBO-AUTHORS.txt create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/.clang-format create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/.github/workflows/cmake.yml create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/.gitignore create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/CMakeLists.txt create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/LICENSE create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/README.md create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/cmake/litehtmlConfig.cmake create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_container.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_container.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_font.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_font.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/gdiplus/gdiplus_container.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/gdiplus/gdiplus_container.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/haiku/container_haiku.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/haiku/container_haiku.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/linux/container_linux.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/linux/container_linux.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/test/container_test.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/test/container_test.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/win32/win32_container.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/containers/win32/win32_container.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/attributes.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/background.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/borders.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/box.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/codepoint.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/context.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_length.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_margins.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_offsets.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_position.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_selector.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/document.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_anchor.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_base.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_before_after.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_body.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_break.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_cdata.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_comment.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_div.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_font.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_image.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_li.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_link.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_para.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_script.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_space.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_style.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_table.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_td.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_text.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_title.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_tr.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/element.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/html.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/html_tag.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/iterators.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/media_query.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/num_cvt.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/os_types.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/style.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/stylesheet.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/table.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/tstring_view.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/types.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/url.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/url_path.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/utf8_strings.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/web_color.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/include/master.css create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/litehtml.vcxproj create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/litehtml.vcxproj.filters create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/background.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/box.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/codepoint.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/context.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/css_length.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/css_selector.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/document.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_anchor.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_base.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_before_after.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_body.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_break.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_cdata.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_comment.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_div.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_font.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_image.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_li.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_link.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_para.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_script.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_space.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_style.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_table.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_td.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_text.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_title.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/el_tr.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/element.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/CMakeLists.txt create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/LICENSE create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/attribute.c create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/char_ref.c create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/char_ref.rl create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/error.c create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/attribute.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/char_ref.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/error.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/insertion_mode.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/parser.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/string_buffer.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/string_piece.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/tag_enum.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/tag_gperf.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/tag_sizes.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/tag_strings.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/token_type.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/tokenizer.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/tokenizer_states.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/utf8.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/util.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/include/gumbo/vector.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/parser.c create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/string_buffer.c create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/string_piece.c create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/tag.c create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/tag.in create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/tokenizer.c create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/utf8.c create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/util.c create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/vector.c create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/gumbo/visualc/include/strings.h create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/html.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/html_tag.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/iterators.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/media_query.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/num_cvt.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/strtod.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/style.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/stylesheet.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/table.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/tstring_view.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/url.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/url_path.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/utf8_strings.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/src/web_color.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/test/codepoint_test.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/test/contextTest.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/test/cssTest.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/test/documentTest.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/test/layoutGlobalTest.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/test/mediaQueryTest.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/test/tstring_view_test.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/test/url_path_test.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/test/url_test.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/test/webColorTest.cpp create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/xxd/LICENSE create mode 100644 src/assistant/qlitehtml/src/3rdparty/litehtml/xxd/xxd.c create mode 100644 src/assistant/qlitehtml/src/3rdparty/qt_attribution.json create mode 100644 src/assistant/qlitehtml/src/CMakeLists.txt create mode 100644 src/assistant/qlitehtml/src/container_qpainter.cpp create mode 100644 src/assistant/qlitehtml/src/container_qpainter.h create mode 100644 src/assistant/qlitehtml/src/container_qpainter_p.h create mode 100644 src/assistant/qlitehtml/src/qlitehtml.pri create mode 100644 src/assistant/qlitehtml/src/qlitehtml.qbs create mode 100644 src/assistant/qlitehtml/src/qlitehtml_global.h create mode 100644 src/assistant/qlitehtml/src/qlitehtmlwidget.cpp create mode 100644 src/assistant/qlitehtml/src/qlitehtmlwidget.h create mode 100644 src/assistant/qlitehtml/tests/manual/browser/CMakeLists.txt create mode 100644 src/assistant/qlitehtml/tests/manual/browser/main.cpp create mode 100644 src/assistant/shared/collectionconfiguration.cpp create mode 100644 src/assistant/shared/collectionconfiguration.h create mode 100644 src/designer/CMakeLists.txt create mode 100644 src/designer/data/README create mode 100644 src/designer/data/generate_header.xsl create mode 100644 src/designer/data/generate_impl.xsl create mode 100644 src/designer/data/generate_shared.xsl create mode 100755 src/designer/data/generate_ui create mode 100644 src/designer/data/ui3.xsd create mode 100644 src/designer/data/ui4.xsd create mode 100644 src/designer/src/CMakeLists.txt create mode 100644 src/designer/src/components/CMakeLists.txt create mode 100644 src/designer/src/components/buddyeditor/buddyeditor.cpp create mode 100644 src/designer/src/components/buddyeditor/buddyeditor.h create mode 100644 src/designer/src/components/buddyeditor/buddyeditor.json create mode 100644 src/designer/src/components/buddyeditor/buddyeditor_global.h create mode 100644 src/designer/src/components/buddyeditor/buddyeditor_plugin.cpp create mode 100644 src/designer/src/components/buddyeditor/buddyeditor_plugin.h create mode 100644 src/designer/src/components/buddyeditor/buddyeditor_tool.cpp create mode 100644 src/designer/src/components/buddyeditor/buddyeditor_tool.h create mode 100644 src/designer/src/components/formeditor/default_actionprovider.cpp create mode 100644 src/designer/src/components/formeditor/default_actionprovider.h create mode 100644 src/designer/src/components/formeditor/default_container.cpp create mode 100644 src/designer/src/components/formeditor/default_container.h create mode 100644 src/designer/src/components/formeditor/default_layoutdecoration.cpp create mode 100644 src/designer/src/components/formeditor/default_layoutdecoration.h create mode 100644 src/designer/src/components/formeditor/defaultbrushes.xml create mode 100644 src/designer/src/components/formeditor/deviceprofiledialog.cpp create mode 100644 src/designer/src/components/formeditor/deviceprofiledialog.h create mode 100644 src/designer/src/components/formeditor/deviceprofiledialog.ui create mode 100644 src/designer/src/components/formeditor/dpi_chooser.cpp create mode 100644 src/designer/src/components/formeditor/dpi_chooser.h create mode 100644 src/designer/src/components/formeditor/embeddedoptionspage.cpp create mode 100644 src/designer/src/components/formeditor/embeddedoptionspage.h create mode 100644 src/designer/src/components/formeditor/formeditor.cpp create mode 100644 src/designer/src/components/formeditor/formeditor.h create mode 100644 src/designer/src/components/formeditor/formeditor_global.h create mode 100644 src/designer/src/components/formeditor/formeditor_optionspage.cpp create mode 100644 src/designer/src/components/formeditor/formeditor_optionspage.h create mode 100644 src/designer/src/components/formeditor/formwindow.cpp create mode 100644 src/designer/src/components/formeditor/formwindow.h create mode 100644 src/designer/src/components/formeditor/formwindow_dnditem.cpp create mode 100644 src/designer/src/components/formeditor/formwindow_dnditem.h create mode 100644 src/designer/src/components/formeditor/formwindow_widgetstack.cpp create mode 100644 src/designer/src/components/formeditor/formwindow_widgetstack.h create mode 100644 src/designer/src/components/formeditor/formwindowcursor.cpp create mode 100644 src/designer/src/components/formeditor/formwindowcursor.h create mode 100644 src/designer/src/components/formeditor/formwindowmanager.cpp create mode 100644 src/designer/src/components/formeditor/formwindowmanager.h create mode 100644 src/designer/src/components/formeditor/formwindowsettings.cpp create mode 100644 src/designer/src/components/formeditor/formwindowsettings.h create mode 100644 src/designer/src/components/formeditor/formwindowsettings.ui create mode 100644 src/designer/src/components/formeditor/images/cleartext.png create mode 100644 src/designer/src/components/formeditor/images/color.png create mode 100644 src/designer/src/components/formeditor/images/configure.png create mode 100644 src/designer/src/components/formeditor/images/cursors/arrow.png create mode 100644 src/designer/src/components/formeditor/images/cursors/busy.png create mode 100644 src/designer/src/components/formeditor/images/cursors/closedhand.png create mode 100644 src/designer/src/components/formeditor/images/cursors/cross.png create mode 100644 src/designer/src/components/formeditor/images/cursors/hand.png create mode 100644 src/designer/src/components/formeditor/images/cursors/hsplit.png create mode 100644 src/designer/src/components/formeditor/images/cursors/ibeam.png create mode 100644 src/designer/src/components/formeditor/images/cursors/no.png create mode 100644 src/designer/src/components/formeditor/images/cursors/openhand.png create mode 100644 src/designer/src/components/formeditor/images/cursors/sizeall.png create mode 100644 src/designer/src/components/formeditor/images/cursors/sizeb.png create mode 100644 src/designer/src/components/formeditor/images/cursors/sizef.png create mode 100644 src/designer/src/components/formeditor/images/cursors/sizeh.png create mode 100644 src/designer/src/components/formeditor/images/cursors/sizev.png create mode 100644 src/designer/src/components/formeditor/images/cursors/uparrow.png create mode 100644 src/designer/src/components/formeditor/images/cursors/vsplit.png create mode 100644 src/designer/src/components/formeditor/images/cursors/wait.png create mode 100644 src/designer/src/components/formeditor/images/cursors/whatsthis.png create mode 100644 src/designer/src/components/formeditor/images/downplus.png create mode 100644 src/designer/src/components/formeditor/images/dropdownbutton.png create mode 100644 src/designer/src/components/formeditor/images/edit.png create mode 100644 src/designer/src/components/formeditor/images/editdelete-16.png create mode 100644 src/designer/src/components/formeditor/images/emptyicon.png create mode 100644 src/designer/src/components/formeditor/images/filenew-16.png create mode 100644 src/designer/src/components/formeditor/images/fileopen-16.png create mode 100644 src/designer/src/components/formeditor/images/leveldown.png create mode 100644 src/designer/src/components/formeditor/images/levelup.png create mode 100644 src/designer/src/components/formeditor/images/mac/adjustsize.png create mode 100644 src/designer/src/components/formeditor/images/mac/back.png create mode 100644 src/designer/src/components/formeditor/images/mac/buddytool.png create mode 100644 src/designer/src/components/formeditor/images/mac/down.png create mode 100644 src/designer/src/components/formeditor/images/mac/editbreaklayout.png create mode 100644 src/designer/src/components/formeditor/images/mac/editcopy.png create mode 100644 src/designer/src/components/formeditor/images/mac/editcut.png create mode 100644 src/designer/src/components/formeditor/images/mac/editdelete.png create mode 100644 src/designer/src/components/formeditor/images/mac/editform.png create mode 100644 src/designer/src/components/formeditor/images/mac/editgrid.png create mode 100644 src/designer/src/components/formeditor/images/mac/edithlayout.png create mode 100644 src/designer/src/components/formeditor/images/mac/edithlayoutsplit.png create mode 100644 src/designer/src/components/formeditor/images/mac/editlower.png create mode 100644 src/designer/src/components/formeditor/images/mac/editpaste.png create mode 100644 src/designer/src/components/formeditor/images/mac/editraise.png create mode 100644 src/designer/src/components/formeditor/images/mac/editvlayout.png create mode 100644 src/designer/src/components/formeditor/images/mac/editvlayoutsplit.png create mode 100644 src/designer/src/components/formeditor/images/mac/filenew.png create mode 100644 src/designer/src/components/formeditor/images/mac/fileopen.png create mode 100644 src/designer/src/components/formeditor/images/mac/filesave.png create mode 100644 src/designer/src/components/formeditor/images/mac/forward.png create mode 100644 src/designer/src/components/formeditor/images/mac/insertimage.png create mode 100644 src/designer/src/components/formeditor/images/mac/minus.png create mode 100644 src/designer/src/components/formeditor/images/mac/plus.png create mode 100644 src/designer/src/components/formeditor/images/mac/redo.png create mode 100644 src/designer/src/components/formeditor/images/mac/resetproperty.png create mode 100644 src/designer/src/components/formeditor/images/mac/resourceeditortool.png create mode 100644 src/designer/src/components/formeditor/images/mac/signalslottool.png create mode 100644 src/designer/src/components/formeditor/images/mac/simplifyrichtext.png create mode 100644 src/designer/src/components/formeditor/images/mac/tabordertool.png create mode 100644 src/designer/src/components/formeditor/images/mac/textanchor.png create mode 100644 src/designer/src/components/formeditor/images/mac/textbold.png create mode 100644 src/designer/src/components/formeditor/images/mac/textcenter.png create mode 100644 src/designer/src/components/formeditor/images/mac/textitalic.png create mode 100644 src/designer/src/components/formeditor/images/mac/textjustify.png create mode 100644 src/designer/src/components/formeditor/images/mac/textleft.png create mode 100644 src/designer/src/components/formeditor/images/mac/textright.png create mode 100644 src/designer/src/components/formeditor/images/mac/textsubscript.png create mode 100644 src/designer/src/components/formeditor/images/mac/textsuperscript.png create mode 100644 src/designer/src/components/formeditor/images/mac/textunder.png create mode 100644 src/designer/src/components/formeditor/images/mac/undo.png create mode 100644 src/designer/src/components/formeditor/images/mac/up.png create mode 100644 src/designer/src/components/formeditor/images/mac/widgettool.png create mode 100644 src/designer/src/components/formeditor/images/minus-16.png create mode 100644 src/designer/src/components/formeditor/images/plus-16.png create mode 100644 src/designer/src/components/formeditor/images/prefix-add.png create mode 100644 src/designer/src/components/formeditor/images/qt3logo.png create mode 100644 src/designer/src/components/formeditor/images/qtlogo16x16.png create mode 100644 src/designer/src/components/formeditor/images/qtlogo24x24.png create mode 100644 src/designer/src/components/formeditor/images/qtlogo32x32.png create mode 100644 src/designer/src/components/formeditor/images/qtlogo64x64.png create mode 100644 src/designer/src/components/formeditor/images/reload.png create mode 100644 src/designer/src/components/formeditor/images/resetproperty.png create mode 100644 src/designer/src/components/formeditor/images/righttoleft.png create mode 100644 src/designer/src/components/formeditor/images/sort.png create mode 100644 src/designer/src/components/formeditor/images/submenu.png create mode 100644 src/designer/src/components/formeditor/images/widgets/calendarwidget.png create mode 100644 src/designer/src/components/formeditor/images/widgets/checkbox.png create mode 100644 src/designer/src/components/formeditor/images/widgets/columnview.png create mode 100644 src/designer/src/components/formeditor/images/widgets/combobox.png create mode 100644 src/designer/src/components/formeditor/images/widgets/commandlinkbutton.png create mode 100644 src/designer/src/components/formeditor/images/widgets/dateedit.png create mode 100644 src/designer/src/components/formeditor/images/widgets/datetimeedit.png create mode 100644 src/designer/src/components/formeditor/images/widgets/dial.png create mode 100644 src/designer/src/components/formeditor/images/widgets/dialogbuttonbox.png create mode 100644 src/designer/src/components/formeditor/images/widgets/dockwidget.png create mode 100644 src/designer/src/components/formeditor/images/widgets/doublespinbox.png create mode 100644 src/designer/src/components/formeditor/images/widgets/fontcombobox.png create mode 100644 src/designer/src/components/formeditor/images/widgets/frame.png create mode 100644 src/designer/src/components/formeditor/images/widgets/graphicsview.png create mode 100644 src/designer/src/components/formeditor/images/widgets/groupbox.png create mode 100644 src/designer/src/components/formeditor/images/widgets/groupboxcollapsible.png create mode 100644 src/designer/src/components/formeditor/images/widgets/hscrollbar.png create mode 100644 src/designer/src/components/formeditor/images/widgets/hslider.png create mode 100644 src/designer/src/components/formeditor/images/widgets/hsplit.png create mode 100644 src/designer/src/components/formeditor/images/widgets/label.png create mode 100644 src/designer/src/components/formeditor/images/widgets/lcdnumber.png create mode 100644 src/designer/src/components/formeditor/images/widgets/line.png create mode 100644 src/designer/src/components/formeditor/images/widgets/lineedit.png create mode 100644 src/designer/src/components/formeditor/images/widgets/listbox.png create mode 100644 src/designer/src/components/formeditor/images/widgets/listview.png create mode 100644 src/designer/src/components/formeditor/images/widgets/mdiarea.png create mode 100644 src/designer/src/components/formeditor/images/widgets/plaintextedit.png create mode 100644 src/designer/src/components/formeditor/images/widgets/progress.png create mode 100644 src/designer/src/components/formeditor/images/widgets/pushbutton.png create mode 100644 src/designer/src/components/formeditor/images/widgets/radiobutton.png create mode 100644 src/designer/src/components/formeditor/images/widgets/scrollarea.png create mode 100644 src/designer/src/components/formeditor/images/widgets/spacer.png create mode 100644 src/designer/src/components/formeditor/images/widgets/spinbox.png create mode 100644 src/designer/src/components/formeditor/images/widgets/tabbar.png create mode 100644 src/designer/src/components/formeditor/images/widgets/table.png create mode 100644 src/designer/src/components/formeditor/images/widgets/tabwidget.png create mode 100644 src/designer/src/components/formeditor/images/widgets/textedit.png create mode 100644 src/designer/src/components/formeditor/images/widgets/timeedit.png create mode 100644 src/designer/src/components/formeditor/images/widgets/toolbox.png create mode 100644 src/designer/src/components/formeditor/images/widgets/toolbutton.png create mode 100644 src/designer/src/components/formeditor/images/widgets/vline.png create mode 100644 src/designer/src/components/formeditor/images/widgets/vscrollbar.png create mode 100644 src/designer/src/components/formeditor/images/widgets/vslider.png create mode 100644 src/designer/src/components/formeditor/images/widgets/vspacer.png create mode 100644 src/designer/src/components/formeditor/images/widgets/widget.png create mode 100644 src/designer/src/components/formeditor/images/widgets/widgetstack.png create mode 100644 src/designer/src/components/formeditor/images/widgets/wizard.png create mode 100644 src/designer/src/components/formeditor/images/win/adjustsize.png create mode 100644 src/designer/src/components/formeditor/images/win/back.png create mode 100644 src/designer/src/components/formeditor/images/win/buddytool.png create mode 100644 src/designer/src/components/formeditor/images/win/down.png create mode 100644 src/designer/src/components/formeditor/images/win/editbreaklayout.png create mode 100644 src/designer/src/components/formeditor/images/win/editcopy.png create mode 100644 src/designer/src/components/formeditor/images/win/editcut.png create mode 100644 src/designer/src/components/formeditor/images/win/editdelete.png create mode 100644 src/designer/src/components/formeditor/images/win/editform.png create mode 100644 src/designer/src/components/formeditor/images/win/editgrid.png create mode 100644 src/designer/src/components/formeditor/images/win/edithlayout.png create mode 100644 src/designer/src/components/formeditor/images/win/edithlayoutsplit.png create mode 100644 src/designer/src/components/formeditor/images/win/editlower.png create mode 100644 src/designer/src/components/formeditor/images/win/editpaste.png create mode 100644 src/designer/src/components/formeditor/images/win/editraise.png create mode 100644 src/designer/src/components/formeditor/images/win/editvlayout.png create mode 100644 src/designer/src/components/formeditor/images/win/editvlayoutsplit.png create mode 100644 src/designer/src/components/formeditor/images/win/filenew.png create mode 100644 src/designer/src/components/formeditor/images/win/fileopen.png create mode 100644 src/designer/src/components/formeditor/images/win/filesave.png create mode 100644 src/designer/src/components/formeditor/images/win/forward.png create mode 100644 src/designer/src/components/formeditor/images/win/insertimage.png create mode 100644 src/designer/src/components/formeditor/images/win/minus.png create mode 100644 src/designer/src/components/formeditor/images/win/plus.png create mode 100644 src/designer/src/components/formeditor/images/win/redo.png create mode 100644 src/designer/src/components/formeditor/images/win/resourceeditortool.png create mode 100644 src/designer/src/components/formeditor/images/win/signalslottool.png create mode 100644 src/designer/src/components/formeditor/images/win/simplifyrichtext.png create mode 100644 src/designer/src/components/formeditor/images/win/tabordertool.png create mode 100644 src/designer/src/components/formeditor/images/win/textanchor.png create mode 100644 src/designer/src/components/formeditor/images/win/textbold.png create mode 100644 src/designer/src/components/formeditor/images/win/textcenter.png create mode 100644 src/designer/src/components/formeditor/images/win/textitalic.png create mode 100644 src/designer/src/components/formeditor/images/win/textjustify.png create mode 100644 src/designer/src/components/formeditor/images/win/textleft.png create mode 100644 src/designer/src/components/formeditor/images/win/textright.png create mode 100644 src/designer/src/components/formeditor/images/win/textsubscript.png create mode 100644 src/designer/src/components/formeditor/images/win/textsuperscript.png create mode 100644 src/designer/src/components/formeditor/images/win/textunder.png create mode 100644 src/designer/src/components/formeditor/images/win/undo.png create mode 100644 src/designer/src/components/formeditor/images/win/up.png create mode 100644 src/designer/src/components/formeditor/images/win/widgettool.png create mode 100644 src/designer/src/components/formeditor/itemview_propertysheet.cpp create mode 100644 src/designer/src/components/formeditor/itemview_propertysheet.h create mode 100644 src/designer/src/components/formeditor/layout_propertysheet.cpp create mode 100644 src/designer/src/components/formeditor/layout_propertysheet.h create mode 100644 src/designer/src/components/formeditor/line_propertysheet.cpp create mode 100644 src/designer/src/components/formeditor/line_propertysheet.h create mode 100644 src/designer/src/components/formeditor/previewactiongroup.cpp create mode 100644 src/designer/src/components/formeditor/previewactiongroup.h create mode 100644 src/designer/src/components/formeditor/qdesigner_resource.cpp create mode 100644 src/designer/src/components/formeditor/qdesigner_resource.h create mode 100644 src/designer/src/components/formeditor/qlayoutwidget_propertysheet.cpp create mode 100644 src/designer/src/components/formeditor/qlayoutwidget_propertysheet.h create mode 100644 src/designer/src/components/formeditor/qmainwindow_container.cpp create mode 100644 src/designer/src/components/formeditor/qmainwindow_container.h create mode 100644 src/designer/src/components/formeditor/qmdiarea_container.cpp create mode 100644 src/designer/src/components/formeditor/qmdiarea_container.h create mode 100644 src/designer/src/components/formeditor/qwizard_container.cpp create mode 100644 src/designer/src/components/formeditor/qwizard_container.h create mode 100644 src/designer/src/components/formeditor/spacer_propertysheet.cpp create mode 100644 src/designer/src/components/formeditor/spacer_propertysheet.h create mode 100644 src/designer/src/components/formeditor/templateoptionspage.cpp create mode 100644 src/designer/src/components/formeditor/templateoptionspage.h create mode 100644 src/designer/src/components/formeditor/templateoptionspage.ui create mode 100644 src/designer/src/components/formeditor/tool_widgeteditor.cpp create mode 100644 src/designer/src/components/formeditor/tool_widgeteditor.h create mode 100644 src/designer/src/components/formeditor/widgetselection.cpp create mode 100644 src/designer/src/components/formeditor/widgetselection.h create mode 100644 src/designer/src/components/lib/CMakeLists.txt create mode 100644 src/designer/src/components/lib/lib_pch.h create mode 100644 src/designer/src/components/lib/qdesigner_components.cpp create mode 100644 src/designer/src/components/objectinspector/objectinspector.cpp create mode 100644 src/designer/src/components/objectinspector/objectinspector.h create mode 100644 src/designer/src/components/objectinspector/objectinspector_global.h create mode 100644 src/designer/src/components/objectinspector/objectinspectormodel.cpp create mode 100644 src/designer/src/components/objectinspector/objectinspectormodel_p.h create mode 100644 src/designer/src/components/propertyeditor/brushpropertymanager.cpp create mode 100644 src/designer/src/components/propertyeditor/brushpropertymanager.h create mode 100644 src/designer/src/components/propertyeditor/designerpropertymanager.cpp create mode 100644 src/designer/src/components/propertyeditor/designerpropertymanager.h create mode 100644 src/designer/src/components/propertyeditor/fontmapping.xml create mode 100644 src/designer/src/components/propertyeditor/fontpropertymanager.cpp create mode 100644 src/designer/src/components/propertyeditor/fontpropertymanager.h create mode 100644 src/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp create mode 100644 src/designer/src/components/propertyeditor/newdynamicpropertydialog.h create mode 100644 src/designer/src/components/propertyeditor/newdynamicpropertydialog.ui create mode 100644 src/designer/src/components/propertyeditor/paletteeditor.cpp create mode 100644 src/designer/src/components/propertyeditor/paletteeditor.h create mode 100644 src/designer/src/components/propertyeditor/paletteeditor.ui create mode 100644 src/designer/src/components/propertyeditor/paletteeditorbutton.cpp create mode 100644 src/designer/src/components/propertyeditor/paletteeditorbutton.h create mode 100644 src/designer/src/components/propertyeditor/previewframe.cpp create mode 100644 src/designer/src/components/propertyeditor/previewframe.h create mode 100644 src/designer/src/components/propertyeditor/previewwidget.cpp create mode 100644 src/designer/src/components/propertyeditor/previewwidget.h create mode 100644 src/designer/src/components/propertyeditor/previewwidget.ui create mode 100644 src/designer/src/components/propertyeditor/propertyeditor.cpp create mode 100644 src/designer/src/components/propertyeditor/propertyeditor.h create mode 100644 src/designer/src/components/propertyeditor/propertyeditor_global.h create mode 100644 src/designer/src/components/propertyeditor/qlonglongvalidator.cpp create mode 100644 src/designer/src/components/propertyeditor/qlonglongvalidator.h create mode 100644 src/designer/src/components/propertyeditor/stringlisteditor.cpp create mode 100644 src/designer/src/components/propertyeditor/stringlisteditor.h create mode 100644 src/designer/src/components/propertyeditor/stringlisteditor.ui create mode 100644 src/designer/src/components/propertyeditor/stringlisteditorbutton.cpp create mode 100644 src/designer/src/components/propertyeditor/stringlisteditorbutton.h create mode 100644 src/designer/src/components/signalsloteditor/connectdialog.cpp create mode 100644 src/designer/src/components/signalsloteditor/connectdialog.ui create mode 100644 src/designer/src/components/signalsloteditor/connectdialog_p.h create mode 100644 src/designer/src/components/signalsloteditor/signalslot_utils.cpp create mode 100644 src/designer/src/components/signalsloteditor/signalslot_utils_p.h create mode 100644 src/designer/src/components/signalsloteditor/signalsloteditor.cpp create mode 100644 src/designer/src/components/signalsloteditor/signalsloteditor.h create mode 100644 src/designer/src/components/signalsloteditor/signalsloteditor.json create mode 100644 src/designer/src/components/signalsloteditor/signalsloteditor_global.h create mode 100644 src/designer/src/components/signalsloteditor/signalsloteditor_p.h create mode 100644 src/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp create mode 100644 src/designer/src/components/signalsloteditor/signalsloteditor_plugin.h create mode 100644 src/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp create mode 100644 src/designer/src/components/signalsloteditor/signalsloteditor_tool.h create mode 100644 src/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp create mode 100644 src/designer/src/components/signalsloteditor/signalsloteditorwindow.h create mode 100644 src/designer/src/components/tabordereditor/tabordereditor.cpp create mode 100644 src/designer/src/components/tabordereditor/tabordereditor.h create mode 100644 src/designer/src/components/tabordereditor/tabordereditor.json create mode 100644 src/designer/src/components/tabordereditor/tabordereditor_global.h create mode 100644 src/designer/src/components/tabordereditor/tabordereditor_plugin.cpp create mode 100644 src/designer/src/components/tabordereditor/tabordereditor_plugin.h create mode 100644 src/designer/src/components/tabordereditor/tabordereditor_tool.cpp create mode 100644 src/designer/src/components/tabordereditor/tabordereditor_tool.h create mode 100644 src/designer/src/components/taskmenu/button_taskmenu.cpp create mode 100644 src/designer/src/components/taskmenu/button_taskmenu.h create mode 100644 src/designer/src/components/taskmenu/combobox_taskmenu.cpp create mode 100644 src/designer/src/components/taskmenu/combobox_taskmenu.h create mode 100644 src/designer/src/components/taskmenu/containerwidget_taskmenu.cpp create mode 100644 src/designer/src/components/taskmenu/containerwidget_taskmenu.h create mode 100644 src/designer/src/components/taskmenu/groupbox_taskmenu.cpp create mode 100644 src/designer/src/components/taskmenu/groupbox_taskmenu.h create mode 100644 src/designer/src/components/taskmenu/inplace_editor.cpp create mode 100644 src/designer/src/components/taskmenu/inplace_editor.h create mode 100644 src/designer/src/components/taskmenu/inplace_widget_helper.cpp create mode 100644 src/designer/src/components/taskmenu/inplace_widget_helper.h create mode 100644 src/designer/src/components/taskmenu/itemlisteditor.cpp create mode 100644 src/designer/src/components/taskmenu/itemlisteditor.h create mode 100644 src/designer/src/components/taskmenu/itemlisteditor.ui create mode 100644 src/designer/src/components/taskmenu/label_taskmenu.cpp create mode 100644 src/designer/src/components/taskmenu/label_taskmenu.h create mode 100644 src/designer/src/components/taskmenu/layouttaskmenu.cpp create mode 100644 src/designer/src/components/taskmenu/layouttaskmenu.h create mode 100644 src/designer/src/components/taskmenu/lineedit_taskmenu.cpp create mode 100644 src/designer/src/components/taskmenu/lineedit_taskmenu.h create mode 100644 src/designer/src/components/taskmenu/listwidget_taskmenu.cpp create mode 100644 src/designer/src/components/taskmenu/listwidget_taskmenu.h create mode 100644 src/designer/src/components/taskmenu/listwidgeteditor.cpp create mode 100644 src/designer/src/components/taskmenu/listwidgeteditor.h create mode 100644 src/designer/src/components/taskmenu/menutaskmenu.cpp create mode 100644 src/designer/src/components/taskmenu/menutaskmenu.h create mode 100644 src/designer/src/components/taskmenu/tablewidget_taskmenu.cpp create mode 100644 src/designer/src/components/taskmenu/tablewidget_taskmenu.h create mode 100644 src/designer/src/components/taskmenu/tablewidgeteditor.cpp create mode 100644 src/designer/src/components/taskmenu/tablewidgeteditor.h create mode 100644 src/designer/src/components/taskmenu/tablewidgeteditor.ui create mode 100644 src/designer/src/components/taskmenu/taskmenu_component.cpp create mode 100644 src/designer/src/components/taskmenu/taskmenu_component.h create mode 100644 src/designer/src/components/taskmenu/taskmenu_global.h create mode 100644 src/designer/src/components/taskmenu/textedit_taskmenu.cpp create mode 100644 src/designer/src/components/taskmenu/textedit_taskmenu.h create mode 100644 src/designer/src/components/taskmenu/toolbar_taskmenu.cpp create mode 100644 src/designer/src/components/taskmenu/toolbar_taskmenu.h create mode 100644 src/designer/src/components/taskmenu/treewidget_taskmenu.cpp create mode 100644 src/designer/src/components/taskmenu/treewidget_taskmenu.h create mode 100644 src/designer/src/components/taskmenu/treewidgeteditor.cpp create mode 100644 src/designer/src/components/taskmenu/treewidgeteditor.h create mode 100644 src/designer/src/components/taskmenu/treewidgeteditor.ui create mode 100644 src/designer/src/components/widgetbox/widgetbox.cpp create mode 100644 src/designer/src/components/widgetbox/widgetbox.h create mode 100644 src/designer/src/components/widgetbox/widgetbox.xml create mode 100644 src/designer/src/components/widgetbox/widgetbox_dnditem.cpp create mode 100644 src/designer/src/components/widgetbox/widgetbox_dnditem.h create mode 100644 src/designer/src/components/widgetbox/widgetbox_global.h create mode 100644 src/designer/src/components/widgetbox/widgetboxcategorylistview.cpp create mode 100644 src/designer/src/components/widgetbox/widgetboxcategorylistview.h create mode 100644 src/designer/src/components/widgetbox/widgetboxtreewidget.cpp create mode 100644 src/designer/src/components/widgetbox/widgetboxtreewidget.h create mode 100644 src/designer/src/designer/CMakeLists.txt create mode 100644 src/designer/src/designer/Info_mac.plist create mode 100644 src/designer/src/designer/appfontdialog.cpp create mode 100644 src/designer/src/designer/appfontdialog.h create mode 100644 src/designer/src/designer/assistantclient.cpp create mode 100644 src/designer/src/designer/assistantclient.h create mode 100644 src/designer/src/designer/designer.icns create mode 100644 src/designer/src/designer/designer.ico create mode 100644 src/designer/src/designer/designer_enums.h create mode 100644 src/designer/src/designer/doc/images/addressbook-tutorial-part3-labeled-layout.png create mode 100644 src/designer/src/designer/doc/images/designer-action-editor.png create mode 100644 src/designer/src/designer/doc/images/designer-add-custom-toolbar.png create mode 100644 src/designer/src/designer/doc/images/designer-add-files-button.png create mode 100644 src/designer/src/designer/doc/images/designer-add-resource-entry-button.png create mode 100644 src/designer/src/designer/doc/images/designer-adding-dockwidget.png create mode 100644 src/designer/src/designer/doc/images/designer-adding-dynamic-property.png create mode 100644 src/designer/src/designer/doc/images/designer-adding-menu-action.png create mode 100644 src/designer/src/designer/doc/images/designer-adding-toolbar-action.png create mode 100644 src/designer/src/designer/doc/images/designer-buddy-making.png create mode 100644 src/designer/src/designer/doc/images/designer-buddy-mode.png create mode 100644 src/designer/src/designer/doc/images/designer-buddy-tool.png create mode 100644 src/designer/src/designer/doc/images/designer-choosing-form.png create mode 100644 src/designer/src/designer/doc/images/designer-code-viewer.png create mode 100644 src/designer/src/designer/doc/images/designer-connection-dialog.png create mode 100644 src/designer/src/designer/doc/images/designer-connection-editing.png create mode 100644 src/designer/src/designer/doc/images/designer-connection-editor.png create mode 100644 src/designer/src/designer/doc/images/designer-connection-highlight.png create mode 100644 src/designer/src/designer/doc/images/designer-connection-making.png create mode 100644 src/designer/src/designer/doc/images/designer-connection-mode.png create mode 100644 src/designer/src/designer/doc/images/designer-connection-to-form.png create mode 100644 src/designer/src/designer/doc/images/designer-connection-tool.png create mode 100644 src/designer/src/designer/doc/images/designer-containers-dockwidget.png create mode 100644 src/designer/src/designer/doc/images/designer-containers-frame.png create mode 100644 src/designer/src/designer/doc/images/designer-containers-groupbox.png create mode 100644 src/designer/src/designer/doc/images/designer-containers-stackedwidget.png create mode 100644 src/designer/src/designer/doc/images/designer-containers-tabwidget.png create mode 100644 src/designer/src/designer/doc/images/designer-containers-toolbox.png create mode 100644 src/designer/src/designer/doc/images/designer-creating-dynamic-property.png create mode 100644 src/designer/src/designer/doc/images/designer-creating-menu-entry1.png create mode 100644 src/designer/src/designer/doc/images/designer-creating-menu-entry2.png create mode 100644 src/designer/src/designer/doc/images/designer-creating-menu-entry3.png create mode 100644 src/designer/src/designer/doc/images/designer-creating-menu-entry4.png create mode 100644 src/designer/src/designer/doc/images/designer-creating-menu.png create mode 100644 src/designer/src/designer/doc/images/designer-creating-menu1.png create mode 100644 src/designer/src/designer/doc/images/designer-creating-menu2.png create mode 100644 src/designer/src/designer/doc/images/designer-creating-menu3.png create mode 100644 src/designer/src/designer/doc/images/designer-creating-menu4.png create mode 100644 src/designer/src/designer/doc/images/designer-creating-menubar.png create mode 100644 src/designer/src/designer/doc/images/designer-creating-toolbar.png create mode 100644 src/designer/src/designer/doc/images/designer-custom-widget-box.png create mode 100644 src/designer/src/designer/doc/images/designer-customize-toolbar.png create mode 100644 src/designer/src/designer/doc/images/designer-dialog-final.png create mode 100644 src/designer/src/designer/doc/images/designer-dialog-initial.png create mode 100644 src/designer/src/designer/doc/images/designer-dialog-layout.png create mode 100644 src/designer/src/designer/doc/images/designer-dialog-preview.png create mode 100644 src/designer/src/designer/doc/images/designer-disambiguation.png create mode 100644 src/designer/src/designer/doc/images/designer-dragging-onto-form.png create mode 100644 src/designer/src/designer/doc/images/designer-edit-resource.png create mode 100644 src/designer/src/designer/doc/images/designer-edit-resources-button.png create mode 100644 src/designer/src/designer/doc/images/designer-editing-mode.png create mode 100644 src/designer/src/designer/doc/images/designer-embedded-preview.png create mode 100644 src/designer/src/designer/doc/images/designer-english-dialog.png create mode 100644 src/designer/src/designer/doc/images/designer-examples.png create mode 100644 src/designer/src/designer/doc/images/designer-file-menu.png create mode 100644 src/designer/src/designer/doc/images/designer-find-icon.png create mode 100644 src/designer/src/designer/doc/images/designer-form-layout-cleanlooks.png create mode 100644 src/designer/src/designer/doc/images/designer-form-layout-macintosh.png create mode 100644 src/designer/src/designer/doc/images/designer-form-layout-windowsXP.png create mode 100644 src/designer/src/designer/doc/images/designer-form-layout.png create mode 100644 src/designer/src/designer/doc/images/designer-form-layoutfunction.png create mode 100644 src/designer/src/designer/doc/images/designer-form-settings.png create mode 100644 src/designer/src/designer/doc/images/designer-form-viewcode.png create mode 100644 src/designer/src/designer/doc/images/designer-french-dialog.png create mode 100644 src/designer/src/designer/doc/images/designer-getting-started.png create mode 100644 src/designer/src/designer/doc/images/designer-layout-inserting.png create mode 100644 src/designer/src/designer/doc/images/designer-main-window.png create mode 100644 src/designer/src/designer/doc/images/designer-making-connection.png create mode 100644 src/designer/src/designer/doc/images/designer-manual-containerextension.png create mode 100644 src/designer/src/designer/doc/images/designer-manual-membersheetextension.png create mode 100644 src/designer/src/designer/doc/images/designer-manual-propertysheetextension.png create mode 100644 src/designer/src/designer/doc/images/designer-manual-taskmenuextension.png create mode 100644 src/designer/src/designer/doc/images/designer-multiple-screenshot.png create mode 100644 src/designer/src/designer/doc/images/designer-object-inspector.png create mode 100644 src/designer/src/designer/doc/images/designer-palette-brush-editor.png create mode 100644 src/designer/src/designer/doc/images/designer-palette-editor.png create mode 100644 src/designer/src/designer/doc/images/designer-palette-gradient-editor.png create mode 100644 src/designer/src/designer/doc/images/designer-palette-pattern-editor.png create mode 100644 src/designer/src/designer/doc/images/designer-preview-device-skin.png create mode 100644 src/designer/src/designer/doc/images/designer-preview-deviceskin-selection.png create mode 100644 src/designer/src/designer/doc/images/designer-preview-style-selection.png create mode 100644 src/designer/src/designer/doc/images/designer-preview-style.png create mode 100644 src/designer/src/designer/doc/images/designer-preview-stylesheet.png create mode 100644 src/designer/src/designer/doc/images/designer-promoting-widgets.png create mode 100644 src/designer/src/designer/doc/images/designer-property-editor-add-dynamic.png create mode 100644 src/designer/src/designer/doc/images/designer-property-editor-configure.png create mode 100644 src/designer/src/designer/doc/images/designer-property-editor-link.png create mode 100644 src/designer/src/designer/doc/images/designer-property-editor-remove-dynamic.png create mode 100644 src/designer/src/designer/doc/images/designer-property-editor-toolbar.png create mode 100644 src/designer/src/designer/doc/images/designer-property-editor.png create mode 100644 src/designer/src/designer/doc/images/designer-reload-resources-button.png create mode 100644 src/designer/src/designer/doc/images/designer-remove-custom-toolbar.png create mode 100644 src/designer/src/designer/doc/images/designer-remove-resource-entry-button.png create mode 100644 src/designer/src/designer/doc/images/designer-removing-toolbar-action.png create mode 100644 src/designer/src/designer/doc/images/designer-removing-toolbar.png create mode 100644 src/designer/src/designer/doc/images/designer-resource-browser.png create mode 100644 src/designer/src/designer/doc/images/designer-resource-selector.png create mode 100644 src/designer/src/designer/doc/images/designer-resource-tool.png create mode 100644 src/designer/src/designer/doc/images/designer-resources-adding.png create mode 100644 src/designer/src/designer/doc/images/designer-resources-editing.png create mode 100644 src/designer/src/designer/doc/images/designer-resources-empty.png create mode 100644 src/designer/src/designer/doc/images/designer-resources-using.png create mode 100644 src/designer/src/designer/doc/images/designer-screenshot.png create mode 100644 src/designer/src/designer/doc/images/designer-selecting-widget.png create mode 100644 src/designer/src/designer/doc/images/designer-selecting-widgets.png create mode 100644 src/designer/src/designer/doc/images/designer-set-layout.png create mode 100644 src/designer/src/designer/doc/images/designer-set-layout2.png create mode 100644 src/designer/src/designer/doc/images/designer-splitter-layout.png create mode 100644 src/designer/src/designer/doc/images/designer-stylesheet-options.png create mode 100644 src/designer/src/designer/doc/images/designer-stylesheet-usage.png create mode 100644 src/designer/src/designer/doc/images/designer-tab-order-mode.png create mode 100644 src/designer/src/designer/doc/images/designer-tab-order-tool.png create mode 100644 src/designer/src/designer/doc/images/designer-widget-box.png create mode 100644 src/designer/src/designer/doc/images/designer-widget-filter.png create mode 100644 src/designer/src/designer/doc/images/designer-widget-final.png create mode 100644 src/designer/src/designer/doc/images/designer-widget-initial.png create mode 100644 src/designer/src/designer/doc/images/designer-widget-layout.png create mode 100644 src/designer/src/designer/doc/images/designer-widget-morph.png create mode 100644 src/designer/src/designer/doc/images/designer-widget-preview.png create mode 100644 src/designer/src/designer/doc/images/designer-widget-tool.png create mode 100644 src/designer/src/designer/doc/images/directapproach-calculatorform.png create mode 100644 src/designer/src/designer/doc/images/qtdesignerextensions.png create mode 100644 src/designer/src/designer/doc/images/qtdesignerscreenshot.png create mode 100644 src/designer/src/designer/doc/images/rgbController-arrangement.png create mode 100644 src/designer/src/designer/doc/images/rgbController-configure-connection1.png create mode 100644 src/designer/src/designer/doc/images/rgbController-configure-connection2.png create mode 100644 src/designer/src/designer/doc/images/rgbController-final-layout.png create mode 100644 src/designer/src/designer/doc/images/rgbController-form-gridLayout.png create mode 100644 src/designer/src/designer/doc/images/rgbController-no-toplevel-layout.png create mode 100644 src/designer/src/designer/doc/images/rgbController-property-editing.png create mode 100644 src/designer/src/designer/doc/images/rgbController-screenshot.png create mode 100644 src/designer/src/designer/doc/images/rgbController-selectForLayout.png create mode 100644 src/designer/src/designer/doc/images/rgbController-signalsAndSlots.png create mode 100644 src/designer/src/designer/doc/images/worldtimeclockplugin-example.png create mode 100644 src/designer/src/designer/doc/qtdesigner.qdocconf create mode 100644 src/designer/src/designer/doc/snippets/autoconnection/autoconnection.pro create mode 100644 src/designer/src/designer/doc/snippets/autoconnection/imagedialog.cpp create mode 100644 src/designer/src/designer/doc/snippets/autoconnection/imagedialog.h create mode 100644 src/designer/src/designer/doc/snippets/autoconnection/imagedialog.ui create mode 100644 src/designer/src/designer/doc/snippets/autoconnection/main.cpp create mode 100644 src/designer/src/designer/doc/snippets/designer.pro create mode 100644 src/designer/src/designer/doc/snippets/imagedialog/imagedialog.pro create mode 100644 src/designer/src/designer/doc/snippets/imagedialog/imagedialog.ui create mode 100644 src/designer/src/designer/doc/snippets/imagedialog/main.cpp create mode 100644 src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_default_extensionfactory.cpp create mode 100644 src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_extension.cpp create mode 100644 src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_qextensionmanager.cpp create mode 100644 src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformeditor.cpp create mode 100644 src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindow.cpp create mode 100644 src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindowcursor.cpp create mode 100644 src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindowmanager.cpp create mode 100644 src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractobjectinspector.cpp create mode 100644 src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractpropertyeditor.cpp create mode 100644 src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractwidgetbox.cpp create mode 100644 src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_uilib_abstractformbuilder.cpp create mode 100644 src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_uilib_formbuilder.cpp create mode 100644 src/designer/src/designer/doc/snippets/manual/doc_src_designer-manual.cpp create mode 100644 src/designer/src/designer/doc/snippets/manual/doc_src_designer-manual.js create mode 100644 src/designer/src/designer/doc/snippets/manual/doc_src_designer-manual.pro create mode 100644 src/designer/src/designer/doc/snippets/multipleinheritance/imagedialog.cpp create mode 100644 src/designer/src/designer/doc/snippets/multipleinheritance/imagedialog.h create mode 100644 src/designer/src/designer/doc/snippets/multipleinheritance/imagedialog.ui create mode 100644 src/designer/src/designer/doc/snippets/multipleinheritance/main.cpp create mode 100644 src/designer/src/designer/doc/snippets/multipleinheritance/multipleinheritance.pro create mode 100644 src/designer/src/designer/doc/snippets/noautoconnection/imagedialog.cpp create mode 100644 src/designer/src/designer/doc/snippets/noautoconnection/imagedialog.h create mode 100644 src/designer/src/designer/doc/snippets/noautoconnection/imagedialog.ui create mode 100644 src/designer/src/designer/doc/snippets/noautoconnection/main.cpp create mode 100644 src/designer/src/designer/doc/snippets/noautoconnection/noautoconnection.pro create mode 100644 src/designer/src/designer/doc/snippets/plugins/doc_src_qtdesigner.cpp create mode 100644 src/designer/src/designer/doc/snippets/plugins/doc_src_qtdesigner.pro create mode 100644 src/designer/src/designer/doc/snippets/singleinheritance/imagedialog.cpp create mode 100644 src/designer/src/designer/doc/snippets/singleinheritance/imagedialog.h create mode 100644 src/designer/src/designer/doc/snippets/singleinheritance/imagedialog.ui create mode 100644 src/designer/src/designer/doc/snippets/singleinheritance/main.cpp create mode 100644 src/designer/src/designer/doc/snippets/singleinheritance/singleinheritance.pro create mode 100644 src/designer/src/designer/doc/snippets/uitools/calculatorform/calculatorform.pro create mode 100644 src/designer/src/designer/doc/snippets/uitools/calculatorform/calculatorform.ui create mode 100644 src/designer/src/designer/doc/snippets/uitools/calculatorform/main.cpp create mode 100644 src/designer/src/designer/doc/src/designer-custom-widgets.qdoc create mode 100644 src/designer/src/designer/doc/src/designer-examples.qdoc create mode 100644 src/designer/src/designer/doc/src/designer-manual.qdoc create mode 100644 src/designer/src/designer/doc/src/qtdesigner-index.qdoc create mode 100644 src/designer/src/designer/doc/src/qtdesigner-module.qdoc create mode 100644 src/designer/src/designer/images/designer.png create mode 100644 src/designer/src/designer/images/mdi.png create mode 100644 src/designer/src/designer/images/sdi.png create mode 100644 src/designer/src/designer/images/workbench.png create mode 100644 src/designer/src/designer/main.cpp create mode 100644 src/designer/src/designer/mainwindow.cpp create mode 100644 src/designer/src/designer/mainwindow.h create mode 100644 src/designer/src/designer/newform.cpp create mode 100644 src/designer/src/designer/newform.h create mode 100644 src/designer/src/designer/preferencesdialog.cpp create mode 100644 src/designer/src/designer/preferencesdialog.h create mode 100644 src/designer/src/designer/preferencesdialog.ui create mode 100644 src/designer/src/designer/qdesigner.cpp create mode 100644 src/designer/src/designer/qdesigner.h create mode 100644 src/designer/src/designer/qdesigner_actions.cpp create mode 100644 src/designer/src/designer/qdesigner_actions.h create mode 100644 src/designer/src/designer/qdesigner_appearanceoptions.cpp create mode 100644 src/designer/src/designer/qdesigner_appearanceoptions.h create mode 100644 src/designer/src/designer/qdesigner_appearanceoptions.ui create mode 100644 src/designer/src/designer/qdesigner_formwindow.cpp create mode 100644 src/designer/src/designer/qdesigner_formwindow.h create mode 100644 src/designer/src/designer/qdesigner_pch.h create mode 100644 src/designer/src/designer/qdesigner_server.cpp create mode 100644 src/designer/src/designer/qdesigner_server.h create mode 100644 src/designer/src/designer/qdesigner_settings.cpp create mode 100644 src/designer/src/designer/qdesigner_settings.h create mode 100644 src/designer/src/designer/qdesigner_toolwindow.cpp create mode 100644 src/designer/src/designer/qdesigner_toolwindow.h create mode 100644 src/designer/src/designer/qdesigner_workbench.cpp create mode 100644 src/designer/src/designer/qdesigner_workbench.h create mode 100644 src/designer/src/designer/saveformastemplate.cpp create mode 100644 src/designer/src/designer/saveformastemplate.h create mode 100644 src/designer/src/designer/saveformastemplate.ui create mode 100644 src/designer/src/designer/uifile.icns create mode 100644 src/designer/src/designer/versiondialog.cpp create mode 100644 src/designer/src/designer/versiondialog.h create mode 100644 src/designer/src/lib/CMakeLists.txt create mode 100644 src/designer/src/lib/components/qdesigner_components.h create mode 100644 src/designer/src/lib/components/qdesigner_components_global.h create mode 100644 src/designer/src/lib/extension/default_extensionfactory.cpp create mode 100644 src/designer/src/lib/extension/default_extensionfactory.h create mode 100644 src/designer/src/lib/extension/extension.cpp create mode 100644 src/designer/src/lib/extension/extension.h create mode 100644 src/designer/src/lib/extension/extension_global.h create mode 100644 src/designer/src/lib/extension/qextensionmanager.cpp create mode 100644 src/designer/src/lib/extension/qextensionmanager.h create mode 100644 src/designer/src/lib/lib_pch.h create mode 100644 src/designer/src/lib/sdk/abstractactioneditor.cpp create mode 100644 src/designer/src/lib/sdk/abstractactioneditor.h create mode 100644 src/designer/src/lib/sdk/abstractdialoggui.cpp create mode 100644 src/designer/src/lib/sdk/abstractdialoggui_p.h create mode 100644 src/designer/src/lib/sdk/abstractdnditem.h create mode 100644 src/designer/src/lib/sdk/abstractdnditem.qdoc create mode 100644 src/designer/src/lib/sdk/abstractformeditor.cpp create mode 100644 src/designer/src/lib/sdk/abstractformeditor.h create mode 100644 src/designer/src/lib/sdk/abstractformeditorplugin.cpp create mode 100644 src/designer/src/lib/sdk/abstractformeditorplugin.h create mode 100644 src/designer/src/lib/sdk/abstractformwindow.cpp create mode 100644 src/designer/src/lib/sdk/abstractformwindow.h create mode 100644 src/designer/src/lib/sdk/abstractformwindowcursor.cpp create mode 100644 src/designer/src/lib/sdk/abstractformwindowcursor.h create mode 100644 src/designer/src/lib/sdk/abstractformwindowmanager.cpp create mode 100644 src/designer/src/lib/sdk/abstractformwindowmanager.h create mode 100644 src/designer/src/lib/sdk/abstractformwindowtool.cpp create mode 100644 src/designer/src/lib/sdk/abstractformwindowtool.h create mode 100644 src/designer/src/lib/sdk/abstractintegration.cpp create mode 100644 src/designer/src/lib/sdk/abstractintegration.h create mode 100644 src/designer/src/lib/sdk/abstractintrospection.cpp create mode 100644 src/designer/src/lib/sdk/abstractintrospection_p.h create mode 100644 src/designer/src/lib/sdk/abstractlanguage.h create mode 100644 src/designer/src/lib/sdk/abstractmetadatabase.cpp create mode 100644 src/designer/src/lib/sdk/abstractmetadatabase.h create mode 100644 src/designer/src/lib/sdk/abstractnewformwidget.cpp create mode 100644 src/designer/src/lib/sdk/abstractnewformwidget.h create mode 100644 src/designer/src/lib/sdk/abstractobjectinspector.cpp create mode 100644 src/designer/src/lib/sdk/abstractobjectinspector.h create mode 100644 src/designer/src/lib/sdk/abstractoptionspage.h create mode 100644 src/designer/src/lib/sdk/abstractoptionspage.qdoc create mode 100644 src/designer/src/lib/sdk/abstractpromotioninterface.cpp create mode 100644 src/designer/src/lib/sdk/abstractpromotioninterface.h create mode 100644 src/designer/src/lib/sdk/abstractpropertyeditor.cpp create mode 100644 src/designer/src/lib/sdk/abstractpropertyeditor.h create mode 100644 src/designer/src/lib/sdk/abstractresourcebrowser.cpp create mode 100644 src/designer/src/lib/sdk/abstractresourcebrowser.h create mode 100644 src/designer/src/lib/sdk/abstractsettings.h create mode 100644 src/designer/src/lib/sdk/abstractsettings.qdoc create mode 100644 src/designer/src/lib/sdk/abstractwidgetbox.cpp create mode 100644 src/designer/src/lib/sdk/abstractwidgetbox.h create mode 100644 src/designer/src/lib/sdk/abstractwidgetdatabase.cpp create mode 100644 src/designer/src/lib/sdk/abstractwidgetdatabase.h create mode 100644 src/designer/src/lib/sdk/abstractwidgetfactory.cpp create mode 100644 src/designer/src/lib/sdk/abstractwidgetfactory.h create mode 100644 src/designer/src/lib/sdk/container.h create mode 100644 src/designer/src/lib/sdk/container.qdoc create mode 100644 src/designer/src/lib/sdk/dynamicpropertysheet.h create mode 100644 src/designer/src/lib/sdk/dynamicpropertysheet.qdoc create mode 100644 src/designer/src/lib/sdk/extrainfo.cpp create mode 100644 src/designer/src/lib/sdk/extrainfo.h create mode 100644 src/designer/src/lib/sdk/layoutdecoration.h create mode 100644 src/designer/src/lib/sdk/layoutdecoration.qdoc create mode 100644 src/designer/src/lib/sdk/membersheet.h create mode 100644 src/designer/src/lib/sdk/membersheet.qdoc create mode 100644 src/designer/src/lib/sdk/propertysheet.h create mode 100644 src/designer/src/lib/sdk/propertysheet.qdoc create mode 100644 src/designer/src/lib/sdk/sdk_global.h create mode 100644 src/designer/src/lib/sdk/taskmenu.cpp create mode 100644 src/designer/src/lib/sdk/taskmenu.h create mode 100644 src/designer/src/lib/sdk/taskmenu.qdoc create mode 100644 src/designer/src/lib/shared/actioneditor.cpp create mode 100644 src/designer/src/lib/shared/actioneditor_p.h create mode 100644 src/designer/src/lib/shared/actionprovider_p.h create mode 100644 src/designer/src/lib/shared/actionrepository.cpp create mode 100644 src/designer/src/lib/shared/actionrepository_p.h create mode 100644 src/designer/src/lib/shared/addlinkdialog.ui create mode 100644 src/designer/src/lib/shared/codedialog.cpp create mode 100644 src/designer/src/lib/shared/codedialog_p.h create mode 100644 src/designer/src/lib/shared/connectionedit.cpp create mode 100644 src/designer/src/lib/shared/connectionedit_p.h create mode 100644 src/designer/src/lib/shared/csshighlighter.cpp create mode 100644 src/designer/src/lib/shared/csshighlighter_p.h create mode 100644 src/designer/src/lib/shared/defaultgradients.xml create mode 100644 src/designer/src/lib/shared/deviceprofile.cpp create mode 100644 src/designer/src/lib/shared/deviceprofile_p.h create mode 100644 src/designer/src/lib/shared/dialoggui.cpp create mode 100644 src/designer/src/lib/shared/dialoggui_p.h create mode 100644 src/designer/src/lib/shared/extensionfactory_p.h create mode 100644 src/designer/src/lib/shared/formlayoutmenu.cpp create mode 100644 src/designer/src/lib/shared/formlayoutmenu_p.h create mode 100644 src/designer/src/lib/shared/formlayoutrowdialog.ui create mode 100644 src/designer/src/lib/shared/formwindowbase.cpp create mode 100644 src/designer/src/lib/shared/formwindowbase_p.h create mode 100644 src/designer/src/lib/shared/grid.cpp create mode 100644 src/designer/src/lib/shared/grid_p.h create mode 100644 src/designer/src/lib/shared/gridpanel.cpp create mode 100644 src/designer/src/lib/shared/gridpanel.ui create mode 100644 src/designer/src/lib/shared/gridpanel_p.h create mode 100644 src/designer/src/lib/shared/htmlhighlighter.cpp create mode 100644 src/designer/src/lib/shared/htmlhighlighter_p.h create mode 100644 src/designer/src/lib/shared/icon-naming-spec.txt create mode 100644 src/designer/src/lib/shared/iconloader.cpp create mode 100644 src/designer/src/lib/shared/iconloader_p.h create mode 100644 src/designer/src/lib/shared/iconselector.cpp create mode 100644 src/designer/src/lib/shared/iconselector_p.h create mode 100644 src/designer/src/lib/shared/invisible_widget.cpp create mode 100644 src/designer/src/lib/shared/invisible_widget_p.h create mode 100644 src/designer/src/lib/shared/layout.cpp create mode 100644 src/designer/src/lib/shared/layout_p.h create mode 100644 src/designer/src/lib/shared/layoutinfo.cpp create mode 100644 src/designer/src/lib/shared/layoutinfo_p.h create mode 100644 src/designer/src/lib/shared/metadatabase.cpp create mode 100644 src/designer/src/lib/shared/metadatabase_p.h create mode 100644 src/designer/src/lib/shared/morphmenu.cpp create mode 100644 src/designer/src/lib/shared/morphmenu_p.h create mode 100644 src/designer/src/lib/shared/newactiondialog.cpp create mode 100644 src/designer/src/lib/shared/newactiondialog.ui create mode 100644 src/designer/src/lib/shared/newactiondialog_p.h create mode 100644 src/designer/src/lib/shared/newformwidget.cpp create mode 100644 src/designer/src/lib/shared/newformwidget.ui create mode 100644 src/designer/src/lib/shared/newformwidget_p.h create mode 100644 src/designer/src/lib/shared/orderdialog.cpp create mode 100644 src/designer/src/lib/shared/orderdialog.ui create mode 100644 src/designer/src/lib/shared/orderdialog_p.h create mode 100644 src/designer/src/lib/shared/plaintexteditor.cpp create mode 100644 src/designer/src/lib/shared/plaintexteditor_p.h create mode 100644 src/designer/src/lib/shared/plugindialog.cpp create mode 100644 src/designer/src/lib/shared/plugindialog.ui create mode 100644 src/designer/src/lib/shared/plugindialog_p.h create mode 100644 src/designer/src/lib/shared/pluginmanager.cpp create mode 100644 src/designer/src/lib/shared/pluginmanager_p.h create mode 100644 src/designer/src/lib/shared/previewconfigurationwidget.cpp create mode 100644 src/designer/src/lib/shared/previewconfigurationwidget.ui create mode 100644 src/designer/src/lib/shared/previewconfigurationwidget_p.h create mode 100644 src/designer/src/lib/shared/previewmanager.cpp create mode 100644 src/designer/src/lib/shared/previewmanager_p.h create mode 100644 src/designer/src/lib/shared/promotionmodel.cpp create mode 100644 src/designer/src/lib/shared/promotionmodel_p.h create mode 100644 src/designer/src/lib/shared/promotiontaskmenu.cpp create mode 100644 src/designer/src/lib/shared/promotiontaskmenu_p.h create mode 100644 src/designer/src/lib/shared/propertylineedit.cpp create mode 100644 src/designer/src/lib/shared/propertylineedit_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_command.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_command2.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_command2_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_command_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_dnditem.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_dnditem_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_dockwidget.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_dockwidget_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_formbuilder.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_formbuilder_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_formeditorcommand.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_formeditorcommand_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_formwindowcommand.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_formwindowcommand_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_formwindowmanager.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_formwindowmanager_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_introspection.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_introspection_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_membersheet.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_membersheet_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_menu.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_menu_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_menubar.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_menubar_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_objectinspector.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_objectinspector_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_promotion.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_promotion_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_promotiondialog.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_promotiondialog_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_propertycommand.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_propertycommand_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_propertyeditor.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_propertyeditor_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_propertysheet.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_propertysheet_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_qsettings.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_qsettings_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_stackedbox.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_stackedbox_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_tabwidget.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_tabwidget_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_taskmenu.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_taskmenu_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_toolbar.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_toolbar_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_toolbox.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_toolbox_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_utils.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_utils_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_widget.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_widget_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_widgetbox.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_widgetbox_p.h create mode 100644 src/designer/src/lib/shared/qdesigner_widgetitem.cpp create mode 100644 src/designer/src/lib/shared/qdesigner_widgetitem_p.h create mode 100644 src/designer/src/lib/shared/qlayout_widget.cpp create mode 100644 src/designer/src/lib/shared/qlayout_widget_p.h create mode 100644 src/designer/src/lib/shared/qsimpleresource.cpp create mode 100644 src/designer/src/lib/shared/qsimpleresource_p.h create mode 100644 src/designer/src/lib/shared/qtresourceeditordialog.cpp create mode 100644 src/designer/src/lib/shared/qtresourceeditordialog.ui create mode 100644 src/designer/src/lib/shared/qtresourceeditordialog_p.h create mode 100644 src/designer/src/lib/shared/qtresourcemodel.cpp create mode 100644 src/designer/src/lib/shared/qtresourcemodel_p.h create mode 100644 src/designer/src/lib/shared/qtresourceview.cpp create mode 100644 src/designer/src/lib/shared/qtresourceview_p.h create mode 100644 src/designer/src/lib/shared/rcc.cpp create mode 100644 src/designer/src/lib/shared/rcc_p.h create mode 100644 src/designer/src/lib/shared/richtexteditor.cpp create mode 100644 src/designer/src/lib/shared/richtexteditor_p.h create mode 100644 src/designer/src/lib/shared/selectsignaldialog.cpp create mode 100644 src/designer/src/lib/shared/selectsignaldialog.ui create mode 100644 src/designer/src/lib/shared/selectsignaldialog_p.h create mode 100644 src/designer/src/lib/shared/shared_enums_p.h create mode 100644 src/designer/src/lib/shared/shared_global_p.h create mode 100644 src/designer/src/lib/shared/shared_settings.cpp create mode 100644 src/designer/src/lib/shared/shared_settings_p.h create mode 100644 src/designer/src/lib/shared/sheet_delegate.cpp create mode 100644 src/designer/src/lib/shared/sheet_delegate_p.h create mode 100644 src/designer/src/lib/shared/signalslotdialog.cpp create mode 100644 src/designer/src/lib/shared/signalslotdialog.ui create mode 100644 src/designer/src/lib/shared/signalslotdialog_p.h create mode 100644 src/designer/src/lib/shared/spacer_widget.cpp create mode 100644 src/designer/src/lib/shared/spacer_widget_p.h create mode 100644 src/designer/src/lib/shared/stylesheeteditor.cpp create mode 100644 src/designer/src/lib/shared/stylesheeteditor_p.h create mode 100644 src/designer/src/lib/shared/templates/forms/240x320/Dialog_with_Buttons_Bottom.ui create mode 100644 src/designer/src/lib/shared/templates/forms/240x320/Dialog_with_Buttons_Right.ui create mode 100644 src/designer/src/lib/shared/templates/forms/320x240/Dialog_with_Buttons_Bottom.ui create mode 100644 src/designer/src/lib/shared/templates/forms/320x240/Dialog_with_Buttons_Right.ui create mode 100644 src/designer/src/lib/shared/templates/forms/480x640/Dialog_with_Buttons_Bottom.ui create mode 100644 src/designer/src/lib/shared/templates/forms/480x640/Dialog_with_Buttons_Right.ui create mode 100644 src/designer/src/lib/shared/templates/forms/640x480/Dialog_with_Buttons_Bottom.ui create mode 100644 src/designer/src/lib/shared/templates/forms/640x480/Dialog_with_Buttons_Right.ui create mode 100644 src/designer/src/lib/shared/templates/forms/Dialog_with_Buttons_Bottom.ui create mode 100644 src/designer/src/lib/shared/templates/forms/Dialog_with_Buttons_Right.ui create mode 100644 src/designer/src/lib/shared/templates/forms/Dialog_without_Buttons.ui create mode 100644 src/designer/src/lib/shared/templates/forms/Main_Window.ui create mode 100644 src/designer/src/lib/shared/templates/forms/Widget.ui create mode 100644 src/designer/src/lib/shared/textpropertyeditor.cpp create mode 100644 src/designer/src/lib/shared/textpropertyeditor_p.h create mode 100644 src/designer/src/lib/shared/widgetdatabase.cpp create mode 100644 src/designer/src/lib/shared/widgetdatabase_p.h create mode 100644 src/designer/src/lib/shared/widgetfactory.cpp create mode 100644 src/designer/src/lib/shared/widgetfactory_p.h create mode 100644 src/designer/src/lib/shared/zoomwidget.cpp create mode 100644 src/designer/src/lib/shared/zoomwidget_p.h create mode 100644 src/designer/src/lib/uilib/abstractformbuilder.cpp create mode 100644 src/designer/src/lib/uilib/abstractformbuilder.h create mode 100644 src/designer/src/lib/uilib/formbuilder.cpp create mode 100644 src/designer/src/lib/uilib/formbuilder.h create mode 100644 src/designer/src/lib/uilib/formbuilderextra.cpp create mode 100644 src/designer/src/lib/uilib/formbuilderextra_p.h create mode 100644 src/designer/src/lib/uilib/properties.cpp create mode 100644 src/designer/src/lib/uilib/properties_p.h create mode 100644 src/designer/src/lib/uilib/resourcebuilder.cpp create mode 100644 src/designer/src/lib/uilib/resourcebuilder_p.h create mode 100644 src/designer/src/lib/uilib/textbuilder.cpp create mode 100644 src/designer/src/lib/uilib/textbuilder_p.h create mode 100644 src/designer/src/lib/uilib/ui4.cpp create mode 100644 src/designer/src/lib/uilib/ui4_p.h create mode 100644 src/designer/src/lib/uilib/uilib_global.h create mode 100644 src/designer/src/lib/uilib/widgets.table create mode 100644 src/designer/src/plugins/CMakeLists.txt create mode 100644 src/designer/src/plugins/activeqt/CMakeLists.txt create mode 100644 src/designer/src/plugins/activeqt/activeqt.json create mode 100644 src/designer/src/plugins/activeqt/qaxwidgetextrainfo.cpp create mode 100644 src/designer/src/plugins/activeqt/qaxwidgetextrainfo.h create mode 100644 src/designer/src/plugins/activeqt/qaxwidgetplugin.cpp create mode 100644 src/designer/src/plugins/activeqt/qaxwidgetplugin.h create mode 100644 src/designer/src/plugins/activeqt/qaxwidgetpropertysheet.cpp create mode 100644 src/designer/src/plugins/activeqt/qaxwidgetpropertysheet.h create mode 100644 src/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp create mode 100644 src/designer/src/plugins/activeqt/qaxwidgettaskmenu.h create mode 100644 src/designer/src/plugins/activeqt/qdesigneraxwidget.cpp create mode 100644 src/designer/src/plugins/activeqt/qdesigneraxwidget.h create mode 100644 src/designer/src/plugins/qquickwidget/CMakeLists.txt create mode 100644 src/designer/src/plugins/qquickwidget/images/qquickwidget.png create mode 100644 src/designer/src/plugins/qquickwidget/qquickwidget_plugin.cpp create mode 100644 src/designer/src/plugins/qquickwidget/qquickwidget_plugin.h create mode 100644 src/designer/src/plugins/qwebview/CMakeLists.txt create mode 100644 src/designer/src/plugins/qwebview/images/qwebview.png create mode 100644 src/designer/src/plugins/qwebview/qwebview.json create mode 100644 src/designer/src/plugins/qwebview/qwebview_plugin.cpp create mode 100644 src/designer/src/plugins/qwebview/qwebview_plugin.h create mode 100644 src/designer/src/plugins/tools/view3d/CMakeLists.txt create mode 100644 src/designer/src/plugins/tools/view3d/view3d.cpp create mode 100644 src/designer/src/plugins/tools/view3d/view3d.h create mode 100644 src/designer/src/plugins/tools/view3d/view3d_global.h create mode 100644 src/designer/src/plugins/tools/view3d/view3d_plugin.cpp create mode 100644 src/designer/src/plugins/tools/view3d/view3d_plugin.h create mode 100644 src/designer/src/plugins/tools/view3d/view3d_tool.cpp create mode 100644 src/designer/src/plugins/tools/view3d/view3d_tool.h create mode 100644 src/distancefieldgenerator/CMakeLists.txt create mode 100644 src/distancefieldgenerator/distancefieldmodel.cpp create mode 100644 src/distancefieldgenerator/distancefieldmodel.h create mode 100644 src/distancefieldgenerator/distancefieldmodelworker.cpp create mode 100644 src/distancefieldgenerator/distancefieldmodelworker.h create mode 100644 src/distancefieldgenerator/doc/images/distancefieldgenerator.png create mode 100644 src/distancefieldgenerator/doc/qtdistancefieldgenerator.qdocconf create mode 100644 src/distancefieldgenerator/doc/src/distancefieldgenerator-manual.qdoc create mode 100644 src/distancefieldgenerator/main.cpp create mode 100644 src/distancefieldgenerator/mainwindow.cpp create mode 100644 src/distancefieldgenerator/mainwindow.h create mode 100644 src/distancefieldgenerator/mainwindow.ui create mode 100644 src/global/CMakeLists.txt create mode 100644 src/kmap2qmap/CMakeLists.txt create mode 100644 src/kmap2qmap/main.cpp create mode 100644 src/linguist/CMakeLists.txt create mode 100644 src/linguist/GenerateLUpdateProject.cmake create mode 100644 src/linguist/Qt6LinguistToolsMacros.cmake create mode 100644 src/linguist/lconvert/CMakeLists.txt create mode 100644 src/linguist/lconvert/main.cpp create mode 100644 src/linguist/linguist/CMakeLists.txt create mode 100644 src/linguist/linguist/Info_mac.plist create mode 100644 src/linguist/linguist/batchtranslation.ui create mode 100644 src/linguist/linguist/batchtranslationdialog.cpp create mode 100644 src/linguist/linguist/batchtranslationdialog.h create mode 100644 src/linguist/linguist/doc/cmake-macros.qdoc create mode 100644 src/linguist/linguist/doc/images/linguist-auxlanguages.png create mode 100644 src/linguist/linguist/doc/images/linguist-batchtranslation.png create mode 100644 src/linguist/linguist/doc/images/linguist-check-empty.png create mode 100644 src/linguist/linguist/doc/images/linguist-check-obsolete.png create mode 100644 src/linguist/linguist/doc/images/linguist-check-off.png create mode 100644 src/linguist/linguist/doc/images/linguist-check-on.png create mode 100644 src/linguist/linguist/doc/images/linguist-check-warning.png create mode 100644 src/linguist/linguist/doc/images/linguist-danger.png create mode 100644 src/linguist/linguist/doc/images/linguist-doneandnext.png create mode 100644 src/linguist/linguist/doc/images/linguist-examples.png create mode 100644 src/linguist/linguist/doc/images/linguist-finddialog.png create mode 100644 src/linguist/linguist/doc/images/linguist-linguist.png create mode 100644 src/linguist/linguist/doc/images/linguist-linguist_2.png create mode 100644 src/linguist/linguist/doc/images/linguist-phrasebookdialog.png create mode 100644 src/linguist/linguist/doc/images/linguist-translationfilesettings.png create mode 100644 src/linguist/linguist/doc/includes/cmake-find-package-linguisttools.qdocinc create mode 100644 src/linguist/linguist/doc/qtlinguist.qdocconf create mode 100644 src/linguist/linguist/doc/snippets/cmake-macros/examples.cmake create mode 100644 src/linguist/linguist/doc/snippets/doc_src_linguist-manual.cpp create mode 100644 src/linguist/linguist/doc/snippets/doc_src_linguist-manual.pro create mode 100644 src/linguist/linguist/doc/src/linguist-examples.qdoc create mode 100644 src/linguist/linguist/doc/src/linguist-manual.qdoc create mode 100644 src/linguist/linguist/errorsview.cpp create mode 100644 src/linguist/linguist/errorsview.h create mode 100644 src/linguist/linguist/finddialog.cpp create mode 100644 src/linguist/linguist/finddialog.h create mode 100644 src/linguist/linguist/finddialog.ui create mode 100644 src/linguist/linguist/formpreviewview.cpp create mode 100644 src/linguist/linguist/formpreviewview.h create mode 100644 src/linguist/linguist/globals.cpp create mode 100644 src/linguist/linguist/globals.h create mode 100644 src/linguist/linguist/images/appicon.png create mode 100644 src/linguist/linguist/images/down.png create mode 100644 src/linguist/linguist/images/editdelete.png create mode 100644 src/linguist/linguist/images/icons/linguist-128-32.png create mode 100644 src/linguist/linguist/images/icons/linguist-128-8.png create mode 100644 src/linguist/linguist/images/icons/linguist-16-32.png create mode 100644 src/linguist/linguist/images/icons/linguist-16-8.png create mode 100644 src/linguist/linguist/images/icons/linguist-32-32.png create mode 100644 src/linguist/linguist/images/icons/linguist-32-8.png create mode 100644 src/linguist/linguist/images/icons/linguist-48-32.png create mode 100644 src/linguist/linguist/images/icons/linguist-48-8.png create mode 100644 src/linguist/linguist/images/icons/linguist-64-32.png create mode 100644 src/linguist/linguist/images/icons/linguist-64-8.png create mode 100644 src/linguist/linguist/images/mac/accelerator.png create mode 100644 src/linguist/linguist/images/mac/book.png create mode 100644 src/linguist/linguist/images/mac/done.png create mode 100644 src/linguist/linguist/images/mac/doneandnext.png create mode 100644 src/linguist/linguist/images/mac/editcopy.png create mode 100644 src/linguist/linguist/images/mac/editcut.png create mode 100644 src/linguist/linguist/images/mac/editpaste.png create mode 100644 src/linguist/linguist/images/mac/filenew.png create mode 100644 src/linguist/linguist/images/mac/fileopen.png create mode 100644 src/linguist/linguist/images/mac/fileprint.png create mode 100644 src/linguist/linguist/images/mac/filesave.png create mode 100644 src/linguist/linguist/images/mac/next.png create mode 100644 src/linguist/linguist/images/mac/nextunfinished.png create mode 100644 src/linguist/linguist/images/mac/phrase.png create mode 100644 src/linguist/linguist/images/mac/prev.png create mode 100644 src/linguist/linguist/images/mac/prevunfinished.png create mode 100644 src/linguist/linguist/images/mac/print.png create mode 100644 src/linguist/linguist/images/mac/punctuation.png create mode 100644 src/linguist/linguist/images/mac/redo.png create mode 100644 src/linguist/linguist/images/mac/searchfind.png create mode 100644 src/linguist/linguist/images/mac/surroundingwhitespace.png create mode 100644 src/linguist/linguist/images/mac/undo.png create mode 100644 src/linguist/linguist/images/mac/validateplacemarkers.png create mode 100644 src/linguist/linguist/images/mac/whatsthis.png create mode 100644 src/linguist/linguist/images/minus.png create mode 100644 src/linguist/linguist/images/plus.png create mode 100644 src/linguist/linguist/images/s_check_danger.png create mode 100644 src/linguist/linguist/images/s_check_empty.png create mode 100644 src/linguist/linguist/images/s_check_obsolete.png create mode 100644 src/linguist/linguist/images/s_check_off.png create mode 100644 src/linguist/linguist/images/s_check_on.png create mode 100644 src/linguist/linguist/images/s_check_warning.png create mode 100644 src/linguist/linguist/images/up.png create mode 100644 src/linguist/linguist/images/win/accelerator.png create mode 100644 src/linguist/linguist/images/win/book.png create mode 100644 src/linguist/linguist/images/win/done.png create mode 100644 src/linguist/linguist/images/win/doneandnext.png create mode 100644 src/linguist/linguist/images/win/editcopy.png create mode 100644 src/linguist/linguist/images/win/editcut.png create mode 100644 src/linguist/linguist/images/win/editpaste.png create mode 100644 src/linguist/linguist/images/win/filenew.png create mode 100644 src/linguist/linguist/images/win/fileopen.png create mode 100644 src/linguist/linguist/images/win/filesave.png create mode 100644 src/linguist/linguist/images/win/next.png create mode 100644 src/linguist/linguist/images/win/nextunfinished.png create mode 100644 src/linguist/linguist/images/win/phrase.png create mode 100644 src/linguist/linguist/images/win/prev.png create mode 100644 src/linguist/linguist/images/win/prevunfinished.png create mode 100644 src/linguist/linguist/images/win/print.png create mode 100644 src/linguist/linguist/images/win/punctuation.png create mode 100644 src/linguist/linguist/images/win/redo.png create mode 100644 src/linguist/linguist/images/win/searchfind.png create mode 100644 src/linguist/linguist/images/win/surroundingwhitespace.png create mode 100644 src/linguist/linguist/images/win/undo.png create mode 100644 src/linguist/linguist/images/win/validateplacemarkers.png create mode 100644 src/linguist/linguist/images/win/whatsthis.png create mode 100644 src/linguist/linguist/linguist.icns create mode 100644 src/linguist/linguist/linguist.ico create mode 100644 src/linguist/linguist/main.cpp create mode 100644 src/linguist/linguist/mainwindow.cpp create mode 100644 src/linguist/linguist/mainwindow.h create mode 100644 src/linguist/linguist/mainwindow.ui create mode 100644 src/linguist/linguist/messageeditor.cpp create mode 100644 src/linguist/linguist/messageeditor.h create mode 100644 src/linguist/linguist/messageeditorwidgets.cpp create mode 100644 src/linguist/linguist/messageeditorwidgets.h create mode 100644 src/linguist/linguist/messagehighlighter.cpp create mode 100644 src/linguist/linguist/messagehighlighter.h create mode 100644 src/linguist/linguist/messagemodel.cpp create mode 100644 src/linguist/linguist/messagemodel.h create mode 100644 src/linguist/linguist/phrase.cpp create mode 100644 src/linguist/linguist/phrase.h create mode 100644 src/linguist/linguist/phrasebookbox.cpp create mode 100644 src/linguist/linguist/phrasebookbox.h create mode 100644 src/linguist/linguist/phrasebookbox.ui create mode 100644 src/linguist/linguist/phrasemodel.cpp create mode 100644 src/linguist/linguist/phrasemodel.h create mode 100644 src/linguist/linguist/phraseview.cpp create mode 100644 src/linguist/linguist/phraseview.h create mode 100644 src/linguist/linguist/printout.cpp create mode 100644 src/linguist/linguist/printout.h create mode 100644 src/linguist/linguist/recentfiles.cpp create mode 100644 src/linguist/linguist/recentfiles.h create mode 100644 src/linguist/linguist/sourcecodeview.cpp create mode 100644 src/linguist/linguist/sourcecodeview.h create mode 100644 src/linguist/linguist/statistics.cpp create mode 100644 src/linguist/linguist/statistics.h create mode 100644 src/linguist/linguist/statistics.ui create mode 100644 src/linguist/linguist/translatedialog.cpp create mode 100644 src/linguist/linguist/translatedialog.h create mode 100644 src/linguist/linguist/translatedialog.ui create mode 100644 src/linguist/linguist/translationsettings.ui create mode 100644 src/linguist/linguist/translationsettingsdialog.cpp create mode 100644 src/linguist/linguist/translationsettingsdialog.h create mode 100644 src/linguist/lprodump/CMakeLists.txt create mode 100644 src/linguist/lprodump/main.cpp create mode 100644 src/linguist/lrelease-pro/CMakeLists.txt create mode 100644 src/linguist/lrelease-pro/main.cpp create mode 100644 src/linguist/lrelease/CMakeLists.txt create mode 100644 src/linguist/lrelease/lrelease.1 create mode 100644 src/linguist/lrelease/main.cpp create mode 100644 src/linguist/lupdate-pro/CMakeLists.txt create mode 100644 src/linguist/lupdate-pro/lupdate-pro.exe.manifest create mode 100644 src/linguist/lupdate-pro/lupdate-pro.rc create mode 100644 src/linguist/lupdate-pro/main.cpp create mode 100644 src/linguist/lupdate/CMakeLists.txt create mode 100644 src/linguist/lupdate/clangtoolastreader.cpp create mode 100644 src/linguist/lupdate/clangtoolastreader.h create mode 100644 src/linguist/lupdate/cpp.cpp create mode 100644 src/linguist/lupdate/cpp.h create mode 100644 src/linguist/lupdate/cpp_clang.cpp create mode 100644 src/linguist/lupdate/cpp_clang.h create mode 100644 src/linguist/lupdate/filesignificancecheck.cpp create mode 100644 src/linguist/lupdate/filesignificancecheck.h create mode 100644 src/linguist/lupdate/java.cpp create mode 100644 src/linguist/lupdate/lupdate.1 create mode 100644 src/linguist/lupdate/lupdate.exe.manifest create mode 100644 src/linguist/lupdate/lupdate.h create mode 100644 src/linguist/lupdate/lupdate.rc create mode 100644 src/linguist/lupdate/lupdatepreprocessoraction.cpp create mode 100644 src/linguist/lupdate/lupdatepreprocessoraction.h create mode 100644 src/linguist/lupdate/main.cpp create mode 100644 src/linguist/lupdate/merge.cpp create mode 100644 src/linguist/lupdate/python.cpp create mode 100644 src/linguist/lupdate/qdeclarative.cpp create mode 100644 src/linguist/lupdate/synchronized.h create mode 100644 src/linguist/lupdate/ui.cpp create mode 100644 src/linguist/phrasebooks/danish.qph create mode 100644 src/linguist/phrasebooks/dutch.qph create mode 100644 src/linguist/phrasebooks/finnish.qph create mode 100644 src/linguist/phrasebooks/french.qph create mode 100644 src/linguist/phrasebooks/german.qph create mode 100644 src/linguist/phrasebooks/hungarian.qph create mode 100644 src/linguist/phrasebooks/italian.qph create mode 100644 src/linguist/phrasebooks/japanese.qph create mode 100644 src/linguist/phrasebooks/norwegian.qph create mode 100644 src/linguist/phrasebooks/polish.qph create mode 100644 src/linguist/phrasebooks/russian.qph create mode 100644 src/linguist/phrasebooks/spanish.qph create mode 100644 src/linguist/phrasebooks/swedish.qph create mode 100644 src/linguist/shared/exclusive_builds.prf create mode 100644 src/linguist/shared/ioutils.cpp create mode 100644 src/linguist/shared/ioutils.h create mode 100644 src/linguist/shared/numerus.cpp create mode 100644 src/linguist/shared/po.cpp create mode 100644 src/linguist/shared/profileevaluator.cpp create mode 100644 src/linguist/shared/profileevaluator.h create mode 100644 src/linguist/shared/profileutils.h create mode 100644 src/linguist/shared/proitems.cpp create mode 100644 src/linguist/shared/proitems.h create mode 100644 src/linguist/shared/projectdescriptionreader.cpp create mode 100644 src/linguist/shared/projectdescriptionreader.h create mode 100644 src/linguist/shared/qm.cpp create mode 100644 src/linguist/shared/qmake_global.h create mode 100644 src/linguist/shared/qmakebuiltins.cpp create mode 100644 src/linguist/shared/qmakeevaluator.cpp create mode 100644 src/linguist/shared/qmakeevaluator.h create mode 100644 src/linguist/shared/qmakeevaluator_p.h create mode 100644 src/linguist/shared/qmakeglobals.cpp create mode 100644 src/linguist/shared/qmakeglobals.h create mode 100644 src/linguist/shared/qmakeparser.cpp create mode 100644 src/linguist/shared/qmakeparser.h create mode 100644 src/linguist/shared/qmakevfs.cpp create mode 100644 src/linguist/shared/qmakevfs.h create mode 100644 src/linguist/shared/qph.cpp create mode 100644 src/linguist/shared/qrcreader.cpp create mode 100644 src/linguist/shared/qrcreader.h create mode 100644 src/linguist/shared/runqttool.cpp create mode 100644 src/linguist/shared/runqttool.h create mode 100644 src/linguist/shared/simtexth.cpp create mode 100644 src/linguist/shared/simtexth.h create mode 100644 src/linguist/shared/translator.cpp create mode 100644 src/linguist/shared/translator.h create mode 100644 src/linguist/shared/translatormessage.cpp create mode 100644 src/linguist/shared/translatormessage.h create mode 100644 src/linguist/shared/ts.cpp create mode 100644 src/linguist/shared/ts.xsd create mode 100644 src/linguist/shared/xliff.cpp create mode 100644 src/linguist/shared/xmlparser.cpp create mode 100644 src/linguist/shared/xmlparser.h create mode 100644 src/pixeltool/CMakeLists.txt create mode 100644 src/pixeltool/Info_mac.plist create mode 100644 src/pixeltool/main.cpp create mode 100644 src/pixeltool/qpixeltool.cpp create mode 100644 src/pixeltool/qpixeltool.h create mode 100644 src/qdbus/CMakeLists.txt create mode 100644 src/qdbus/qdbus/CMakeLists.txt create mode 100644 src/qdbus/qdbus/qdbus.cpp create mode 100644 src/qdbus/qdbusviewer/CMakeLists.txt create mode 100644 src/qdbus/qdbusviewer/Info_mac.plist create mode 100644 src/qdbus/qdbusviewer/images/qdbusviewer-128.png create mode 100644 src/qdbus/qdbusviewer/images/qdbusviewer.icns create mode 100644 src/qdbus/qdbusviewer/images/qdbusviewer.ico create mode 100644 src/qdbus/qdbusviewer/images/qdbusviewer.png create mode 100644 src/qdbus/qdbusviewer/logviewer.cpp create mode 100644 src/qdbus/qdbusviewer/logviewer.h create mode 100644 src/qdbus/qdbusviewer/main.cpp create mode 100644 src/qdbus/qdbusviewer/mainwindow.cpp create mode 100644 src/qdbus/qdbusviewer/mainwindow.h create mode 100644 src/qdbus/qdbusviewer/propertydialog.cpp create mode 100644 src/qdbus/qdbusviewer/propertydialog.h create mode 100644 src/qdbus/qdbusviewer/qdbusmodel.cpp create mode 100644 src/qdbus/qdbusviewer/qdbusmodel.h create mode 100644 src/qdbus/qdbusviewer/qdbusviewer.cpp create mode 100644 src/qdbus/qdbusviewer/qdbusviewer.h create mode 100644 src/qdbus/qdbusviewer/servicesproxymodel.cpp create mode 100644 src/qdbus/qdbusviewer/servicesproxymodel.h create mode 100644 src/qdoc/CMakeLists.txt create mode 100644 src/qdoc/access.h create mode 100644 src/qdoc/aggregate.cpp create mode 100644 src/qdoc/aggregate.h create mode 100644 src/qdoc/atom.cpp create mode 100644 src/qdoc/atom.h create mode 100644 src/qdoc/boundaries/filesystem/directorypath.cpp create mode 100644 src/qdoc/boundaries/filesystem/directorypath.hpp create mode 100644 src/qdoc/boundaries/filesystem/filepath.cpp create mode 100644 src/qdoc/boundaries/filesystem/filepath.hpp create mode 100644 src/qdoc/boundaries/filesystem/resolvedfile.cpp create mode 100644 src/qdoc/boundaries/filesystem/resolvedfile.hpp create mode 100644 src/qdoc/boundaries/refined_typedef.hpp create mode 100644 src/qdoc/boundaries/refined_typedef_members.qdocinc create mode 100644 src/qdoc/clangcodeparser.cpp create mode 100644 src/qdoc/clangcodeparser.h create mode 100644 src/qdoc/classnode.cpp create mode 100644 src/qdoc/classnode.h create mode 100644 src/qdoc/codechunk.cpp create mode 100644 src/qdoc/codechunk.h create mode 100644 src/qdoc/codemarker.cpp create mode 100644 src/qdoc/codemarker.h create mode 100644 src/qdoc/codeparser.cpp create mode 100644 src/qdoc/codeparser.h create mode 100644 src/qdoc/collectionnode.cpp create mode 100644 src/qdoc/collectionnode.h create mode 100644 src/qdoc/config.cpp create mode 100644 src/qdoc/config.h create mode 100644 src/qdoc/cppcodemarker.cpp create mode 100644 src/qdoc/cppcodemarker.h create mode 100644 src/qdoc/cppcodeparser.cpp create mode 100644 src/qdoc/cppcodeparser.h create mode 100644 src/qdoc/doc.cpp create mode 100644 src/qdoc/doc.h create mode 100644 src/qdoc/doc/config/qdoc.qdocconf create mode 100644 src/qdoc/doc/corefeatures.qdoc create mode 100644 src/qdoc/doc/examples/cpp.qdoc.sample create mode 100644 src/qdoc/doc/examples/layoutmanagement.qdocinc create mode 100644 src/qdoc/doc/examples/main.cpp create mode 100644 src/qdoc/doc/examples/mainwindow.cpp create mode 100644 src/qdoc/doc/examples/minimum.qdocconf create mode 100644 src/qdoc/doc/examples/objectmodel.qdocinc create mode 100644 src/qdoc/doc/examples/qml.qdoc.sample create mode 100644 src/qdoc/doc/examples/samples.qdocinc create mode 100644 src/qdoc/doc/examples/signalandslots.qdocinc create mode 100644 src/qdoc/doc/files/basicqt.qdoc.sample create mode 100644 src/qdoc/doc/files/compat.qdocconf create mode 100644 src/qdoc/doc/files/qtgui.qdocconf create mode 100644 src/qdoc/doc/images/happy.gif create mode 100644 src/qdoc/doc/images/happyguy.jpg create mode 100644 src/qdoc/doc/images/link-to-qquickitem.png create mode 100644 src/qdoc/doc/images/links-to-broken-links.png create mode 100644 src/qdoc/doc/images/links-to-links.png create mode 100644 src/qdoc/doc/images/qa-table.png create mode 100644 src/qdoc/doc/images/qt-logo.png create mode 100644 src/qdoc/doc/images/training.jpg create mode 100644 src/qdoc/doc/images/windows-pushbutton.png create mode 100644 src/qdoc/doc/images/windows-toolbutton.png create mode 100644 src/qdoc/doc/qdoc-guide/qdoc-guide.qdoc create mode 100644 src/qdoc/doc/qdoc-guide/qtwritingstyle-cpp.qdoc create mode 100644 src/qdoc/doc/qdoc-guide/qtwritingstyle-qml.qdoc create mode 100644 src/qdoc/doc/qdoc-manual-cmdindex.qdoc create mode 100644 src/qdoc/doc/qdoc-manual-contextcmds.qdoc create mode 100644 src/qdoc/doc/qdoc-manual-intro.qdoc create mode 100644 src/qdoc/doc/qdoc-manual-markupcmds.qdoc create mode 100644 src/qdoc/doc/qdoc-manual-qdocconf.qdoc create mode 100644 src/qdoc/doc/qdoc-manual-topiccmds.qdoc create mode 100644 src/qdoc/doc/qdoc-manual.qdoc create mode 100644 src/qdoc/doc/qdoc-minimum-qdocconf.qdoc create mode 100644 src/qdoc/doc/qdoc-warnings.qdoc create mode 100644 src/qdoc/doc/qtgui-qdocconf.qdoc create mode 100644 src/qdoc/docbookgenerator.cpp create mode 100644 src/qdoc/docbookgenerator.h create mode 100644 src/qdoc/docparser.cpp create mode 100644 src/qdoc/docparser.h create mode 100644 src/qdoc/docprivate.cpp create mode 100644 src/qdoc/docprivate.h create mode 100644 src/qdoc/docutilities.h create mode 100644 src/qdoc/editdistance.cpp create mode 100644 src/qdoc/editdistance.h create mode 100644 src/qdoc/enumitem.h create mode 100644 src/qdoc/enumnode.cpp create mode 100644 src/qdoc/enumnode.h create mode 100644 src/qdoc/examplenode.h create mode 100644 src/qdoc/externalpagenode.cpp create mode 100644 src/qdoc/externalpagenode.h create mode 100644 src/qdoc/filesystem/fileresolver.cpp create mode 100644 src/qdoc/filesystem/fileresolver.hpp create mode 100644 src/qdoc/functionnode.cpp create mode 100644 src/qdoc/functionnode.h create mode 100644 src/qdoc/generator.cpp create mode 100644 src/qdoc/generator.h create mode 100644 src/qdoc/headernode.cpp create mode 100644 src/qdoc/headernode.h create mode 100644 src/qdoc/helpprojectwriter.cpp create mode 100644 src/qdoc/helpprojectwriter.h create mode 100644 src/qdoc/htmlgenerator.cpp create mode 100644 src/qdoc/htmlgenerator.h create mode 100644 src/qdoc/importrec.h create mode 100644 src/qdoc/jscodemarker.cpp create mode 100644 src/qdoc/jscodemarker.h create mode 100644 src/qdoc/location.cpp create mode 100644 src/qdoc/location.h create mode 100644 src/qdoc/macro.h create mode 100644 src/qdoc/main.cpp create mode 100644 src/qdoc/manifestwriter.cpp create mode 100644 src/qdoc/manifestwriter.h create mode 100644 src/qdoc/namespacenode.cpp create mode 100644 src/qdoc/namespacenode.h create mode 100644 src/qdoc/node.cpp create mode 100644 src/qdoc/node.h create mode 100644 src/qdoc/openedlist.cpp create mode 100644 src/qdoc/openedlist.h create mode 100644 src/qdoc/pagenode.cpp create mode 100644 src/qdoc/pagenode.h create mode 100644 src/qdoc/parameters.cpp create mode 100644 src/qdoc/parameters.h create mode 100644 src/qdoc/propertynode.cpp create mode 100644 src/qdoc/propertynode.h create mode 100644 src/qdoc/proxynode.cpp create mode 100644 src/qdoc/proxynode.h create mode 100644 src/qdoc/puredocparser.cpp create mode 100644 src/qdoc/puredocparser.h create mode 100644 src/qdoc/qdoccommandlineparser.cpp create mode 100644 src/qdoc/qdoccommandlineparser.h create mode 100644 src/qdoc/qdocdatabase.cpp create mode 100644 src/qdoc/qdocdatabase.h create mode 100644 src/qdoc/qdocindexfiles.cpp create mode 100644 src/qdoc/qdocindexfiles.h create mode 100644 src/qdoc/qmlcodemarker.cpp create mode 100644 src/qdoc/qmlcodemarker.h create mode 100644 src/qdoc/qmlcodeparser.cpp create mode 100644 src/qdoc/qmlcodeparser.h create mode 100644 src/qdoc/qmlmarkupvisitor.cpp create mode 100644 src/qdoc/qmlmarkupvisitor.h create mode 100644 src/qdoc/qmlpropertynode.cpp create mode 100644 src/qdoc/qmlpropertynode.h create mode 100644 src/qdoc/qmltypenode.cpp create mode 100644 src/qdoc/qmltypenode.h create mode 100644 src/qdoc/qmlvisitor.cpp create mode 100644 src/qdoc/qmlvisitor.h create mode 100644 src/qdoc/quoter.cpp create mode 100644 src/qdoc/quoter.h create mode 100644 src/qdoc/relatedclass.cpp create mode 100644 src/qdoc/relatedclass.h create mode 100644 src/qdoc/sections.cpp create mode 100644 src/qdoc/sections.h create mode 100644 src/qdoc/sharedcommentnode.cpp create mode 100644 src/qdoc/sharedcommentnode.h create mode 100644 src/qdoc/singleton.h create mode 100644 src/qdoc/tagfilewriter.cpp create mode 100644 src/qdoc/tagfilewriter.h create mode 100644 src/qdoc/text.cpp create mode 100644 src/qdoc/text.h create mode 100644 src/qdoc/tokenizer.cpp create mode 100644 src/qdoc/tokenizer.h create mode 100644 src/qdoc/topic.h create mode 100644 src/qdoc/tree.cpp create mode 100644 src/qdoc/tree.h create mode 100644 src/qdoc/typedefnode.cpp create mode 100644 src/qdoc/typedefnode.h create mode 100644 src/qdoc/usingclause.cpp create mode 100644 src/qdoc/usingclause.h create mode 100644 src/qdoc/utilities.cpp create mode 100644 src/qdoc/utilities.h create mode 100644 src/qdoc/variablenode.cpp create mode 100644 src/qdoc/variablenode.h create mode 100644 src/qdoc/webxmlgenerator.cpp create mode 100644 src/qdoc/webxmlgenerator.h create mode 100644 src/qdoc/xmlgenerator.cpp create mode 100644 src/qdoc/xmlgenerator.h create mode 100644 src/qev/CMakeLists.txt create mode 100644 src/qev/README create mode 100644 src/qev/qev.cpp create mode 100644 src/qtattributionsscanner/CMakeLists.txt create mode 100644 src/qtattributionsscanner/jsongenerator.cpp create mode 100644 src/qtattributionsscanner/jsongenerator.h create mode 100644 src/qtattributionsscanner/logging.h create mode 100644 src/qtattributionsscanner/main.cpp create mode 100644 src/qtattributionsscanner/package.h create mode 100644 src/qtattributionsscanner/packagefilter.cpp create mode 100644 src/qtattributionsscanner/packagefilter.h create mode 100644 src/qtattributionsscanner/qdocgenerator.cpp create mode 100644 src/qtattributionsscanner/qdocgenerator.h create mode 100644 src/qtattributionsscanner/scanner.cpp create mode 100644 src/qtattributionsscanner/scanner.h create mode 100644 src/qtdiag/CMakeLists.txt create mode 100644 src/qtdiag/main.cpp create mode 100644 src/qtdiag/qtdiag.cpp create mode 100644 src/qtdiag/qtdiag.h create mode 100644 src/qtplugininfo/CMakeLists.txt create mode 100644 src/qtplugininfo/qtplugininfo.cpp create mode 100644 src/shared/corecon/ccapi.h create mode 100644 src/shared/corecon/ccapi_11.h create mode 100644 src/shared/corecon/ccapi_12.h create mode 100644 src/shared/corecon/corecon.cpp create mode 100644 src/shared/corecon/corecon.h create mode 100644 src/shared/deviceskin/deviceskin.cpp create mode 100644 src/shared/deviceskin/deviceskin.h create mode 100644 src/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone.skin create mode 100644 src/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone1-5-closed.png create mode 100644 src/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone1-5-pressed.png create mode 100644 src/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone1-5.png create mode 100644 src/shared/deviceskin/skins/ClamshellPhone.skin/defaultbuttons.conf create mode 100644 src/shared/deviceskin/skins/PortableMedia.skin/PortableMedia.skin create mode 100644 src/shared/deviceskin/skins/PortableMedia.skin/defaultbuttons.conf create mode 100644 src/shared/deviceskin/skins/PortableMedia.skin/portablemedia-pressed.png create mode 100644 src/shared/deviceskin/skins/PortableMedia.skin/portablemedia.png create mode 100644 src/shared/deviceskin/skins/PortableMedia.skin/portablemedia.xcf create mode 100644 src/shared/deviceskin/skins/S60-QVGA-Candybar.skin/S60-QVGA-Candybar-down.png create mode 100644 src/shared/deviceskin/skins/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.png create mode 100644 src/shared/deviceskin/skins/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.skin create mode 100644 src/shared/deviceskin/skins/S60-QVGA-Candybar.skin/defaultbuttons.conf create mode 100644 src/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen-down.png create mode 100644 src/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.png create mode 100644 src/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.skin create mode 100644 src/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/defaultbuttons.conf create mode 100644 src/shared/deviceskin/skins/SmartPhone.skin/SmartPhone-pressed.png create mode 100644 src/shared/deviceskin/skins/SmartPhone.skin/SmartPhone.png create mode 100644 src/shared/deviceskin/skins/SmartPhone.skin/SmartPhone.skin create mode 100644 src/shared/deviceskin/skins/SmartPhone.skin/defaultbuttons.conf create mode 100644 src/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2-pressed.png create mode 100644 src/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2.png create mode 100644 src/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2.skin create mode 100644 src/shared/deviceskin/skins/SmartPhone2.skin/defaultbuttons.conf create mode 100644 src/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons-pressed.png create mode 100644 src/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.png create mode 100644 src/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.skin create mode 100644 src/shared/deviceskin/skins/SmartPhoneWithButtons.skin/defaultbuttons.conf create mode 100644 src/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone-pressed.png create mode 100644 src/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone.png create mode 100644 src/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone.skin create mode 100644 src/shared/deviceskin/skins/TouchscreenPhone.skin/defaultbuttons.conf create mode 100644 src/shared/findwidget/abstractfindwidget.cpp create mode 100644 src/shared/findwidget/abstractfindwidget.h create mode 100644 src/shared/findwidget/images/mac/closetab.png create mode 100644 src/shared/findwidget/images/mac/next.png create mode 100644 src/shared/findwidget/images/mac/previous.png create mode 100644 src/shared/findwidget/images/mac/searchfind.png create mode 100644 src/shared/findwidget/images/win/closetab.png create mode 100644 src/shared/findwidget/images/win/next.png create mode 100644 src/shared/findwidget/images/win/previous.png create mode 100644 src/shared/findwidget/images/win/searchfind.png create mode 100644 src/shared/findwidget/images/wrap.png create mode 100644 src/shared/findwidget/itemviewfindwidget.cpp create mode 100644 src/shared/findwidget/itemviewfindwidget.h create mode 100644 src/shared/findwidget/texteditfindwidget.cpp create mode 100644 src/shared/findwidget/texteditfindwidget.h create mode 100644 src/shared/fontpanel/fontpanel.cpp create mode 100644 src/shared/fontpanel/fontpanel.h create mode 100644 src/shared/qtgradienteditor/images/down.png create mode 100644 src/shared/qtgradienteditor/images/edit.png create mode 100644 src/shared/qtgradienteditor/images/editdelete.png create mode 100644 src/shared/qtgradienteditor/images/minus.png create mode 100644 src/shared/qtgradienteditor/images/plus.png create mode 100644 src/shared/qtgradienteditor/images/spreadpad.png create mode 100644 src/shared/qtgradienteditor/images/spreadreflect.png create mode 100644 src/shared/qtgradienteditor/images/spreadrepeat.png create mode 100644 src/shared/qtgradienteditor/images/typeconical.png create mode 100644 src/shared/qtgradienteditor/images/typelinear.png create mode 100644 src/shared/qtgradienteditor/images/typeradial.png create mode 100644 src/shared/qtgradienteditor/images/up.png create mode 100644 src/shared/qtgradienteditor/images/zoomin.png create mode 100644 src/shared/qtgradienteditor/images/zoomout.png create mode 100644 src/shared/qtgradienteditor/qtcolorbutton.cpp create mode 100644 src/shared/qtgradienteditor/qtcolorbutton.h create mode 100644 src/shared/qtgradienteditor/qtcolorline.cpp create mode 100644 src/shared/qtgradienteditor/qtcolorline.h create mode 100644 src/shared/qtgradienteditor/qtgradientdialog.cpp create mode 100644 src/shared/qtgradienteditor/qtgradientdialog.h create mode 100644 src/shared/qtgradienteditor/qtgradientdialog.ui create mode 100644 src/shared/qtgradienteditor/qtgradienteditor.cpp create mode 100644 src/shared/qtgradienteditor/qtgradienteditor.h create mode 100644 src/shared/qtgradienteditor/qtgradienteditor.ui create mode 100644 src/shared/qtgradienteditor/qtgradientmanager.cpp create mode 100644 src/shared/qtgradienteditor/qtgradientmanager.h create mode 100644 src/shared/qtgradienteditor/qtgradientstopscontroller.cpp create mode 100644 src/shared/qtgradienteditor/qtgradientstopscontroller.h create mode 100644 src/shared/qtgradienteditor/qtgradientstopsmodel.cpp create mode 100644 src/shared/qtgradienteditor/qtgradientstopsmodel.h create mode 100644 src/shared/qtgradienteditor/qtgradientstopswidget.cpp create mode 100644 src/shared/qtgradienteditor/qtgradientstopswidget.h create mode 100644 src/shared/qtgradienteditor/qtgradientutils.cpp create mode 100644 src/shared/qtgradienteditor/qtgradientutils.h create mode 100644 src/shared/qtgradienteditor/qtgradientview.cpp create mode 100644 src/shared/qtgradienteditor/qtgradientview.h create mode 100644 src/shared/qtgradienteditor/qtgradientview.ui create mode 100644 src/shared/qtgradienteditor/qtgradientviewdialog.cpp create mode 100644 src/shared/qtgradienteditor/qtgradientviewdialog.h create mode 100644 src/shared/qtgradienteditor/qtgradientviewdialog.ui create mode 100644 src/shared/qtgradienteditor/qtgradientwidget.cpp create mode 100644 src/shared/qtgradienteditor/qtgradientwidget.h create mode 100644 src/shared/qtpropertybrowser/images/cursor-arrow.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-busy.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-closedhand.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-cross.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-forbidden.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-hand.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-hsplit.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-ibeam.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-openhand.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-sizeall.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-sizeb.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-sizef.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-sizeh.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-sizev.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-uparrow.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-vsplit.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-wait.png create mode 100644 src/shared/qtpropertybrowser/images/cursor-whatsthis.png create mode 100644 src/shared/qtpropertybrowser/qtbuttonpropertybrowser.cpp create mode 100644 src/shared/qtpropertybrowser/qtbuttonpropertybrowser.h create mode 100644 src/shared/qtpropertybrowser/qteditorfactory.cpp create mode 100644 src/shared/qtpropertybrowser/qteditorfactory.h create mode 100644 src/shared/qtpropertybrowser/qtgroupboxpropertybrowser.cpp create mode 100644 src/shared/qtpropertybrowser/qtgroupboxpropertybrowser.h create mode 100644 src/shared/qtpropertybrowser/qtpropertybrowser.cpp create mode 100644 src/shared/qtpropertybrowser/qtpropertybrowser.h create mode 100644 src/shared/qtpropertybrowser/qtpropertybrowserutils.cpp create mode 100644 src/shared/qtpropertybrowser/qtpropertybrowserutils_p.h create mode 100644 src/shared/qtpropertybrowser/qtpropertymanager.cpp create mode 100644 src/shared/qtpropertybrowser/qtpropertymanager.h create mode 100644 src/shared/qtpropertybrowser/qttreepropertybrowser.cpp create mode 100644 src/shared/qtpropertybrowser/qttreepropertybrowser.h create mode 100644 src/shared/qtpropertybrowser/qtvariantproperty.cpp create mode 100644 src/shared/qtpropertybrowser/qtvariantproperty.h create mode 100644 src/shared/qttoolbardialog/images/back.png create mode 100644 src/shared/qttoolbardialog/images/down.png create mode 100644 src/shared/qttoolbardialog/images/forward.png create mode 100644 src/shared/qttoolbardialog/images/minus.png create mode 100644 src/shared/qttoolbardialog/images/plus.png create mode 100644 src/shared/qttoolbardialog/images/up.png create mode 100644 src/shared/qttoolbardialog/qttoolbardialog.cpp create mode 100644 src/shared/qttoolbardialog/qttoolbardialog.h create mode 100644 src/shared/qttoolbardialog/qttoolbardialog.ui create mode 100644 src/uiplugin/CMakeLists.txt create mode 100644 src/uiplugin/customwidget.h create mode 100644 src/uiplugin/customwidget.qdoc create mode 100644 src/uiplugin/qdesignerexportwidget.h create mode 100644 src/uitools/CMakeLists.txt create mode 100644 src/uitools/doc/images/textfinder-example-find.png create mode 100644 src/uitools/doc/images/textfinder-example-find2.png create mode 100644 src/uitools/doc/images/textfinder-example.png create mode 100644 src/uitools/doc/images/uitools-examples.png create mode 100644 src/uitools/doc/qtuitools.qdocconf create mode 100644 src/uitools/doc/snippets/quiloader/doc_src_qtuiloader.pro create mode 100644 src/uitools/doc/snippets/quiloader/main.cpp create mode 100644 src/uitools/doc/snippets/quiloader/myform.ui create mode 100644 src/uitools/doc/snippets/quiloader/mywidget.cpp create mode 100644 src/uitools/doc/snippets/quiloader/mywidget.h create mode 100644 src/uitools/doc/snippets/quiloader/mywidget.qrc create mode 100644 src/uitools/doc/snippets/quiloader/quiloader.pro create mode 100644 src/uitools/doc/src/qtuitools-examples.qdoc create mode 100644 src/uitools/doc/src/qtuitools-index.qdoc create mode 100644 src/uitools/doc/src/qtuitools-module.qdoc create mode 100644 src/uitools/qtuitoolsglobal.h create mode 100644 src/uitools/quiloader.cpp create mode 100644 src/uitools/quiloader.h create mode 100644 src/uitools/quiloader_p.h create mode 100644 sync.profile create mode 100644 tests/CMakeLists.txt create mode 100644 tests/README create mode 100644 tests/auto/CMakeLists.txt create mode 100644 tests/auto/bic/data/QtDesigner.6.0.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtDesigner.6.1.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtDesigner.6.2.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtHelp.6.0.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtHelp.6.1.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtHelp.6.2.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtUiTools.6.0.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtUiTools.6.1.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtUiTools.6.2.0.linux-gcc-amd64.txt create mode 100644 tests/auto/cmake/CMakeLists.txt create mode 100644 tests/auto/cmake/linguist/CMakeLists.txt create mode 100644 tests/auto/cmake/linguist/test_add_translation_macro/CMakeLists.txt create mode 100644 tests/auto/cmake/linguist/test_add_translation_macro/myi18nobject.cpp create mode 100644 tests/auto/cmake/linguist/test_add_translation_macro/myobject_de.ts create mode 100644 tests/auto/cmake/linguist/test_add_translation_macro/some_dir/some_include.h create mode 100644 tests/auto/cmake/linguist/test_create_translation_macro/CMakeLists.txt create mode 100644 tests/auto/cmake/linguist/test_create_translation_macro/myi18nobject.cpp create mode 100644 tests/auto/cmake/linguist/test_create_translation_macro/myobject_de.ts create mode 100644 tests/auto/cmake/linguist/test_create_translation_macro/some_dir/some_include.h create mode 100644 tests/auto/cmake/test_translation_api/CMakeLists.txt create mode 100644 tests/auto/cmake/test_translation_api/myi18nobject.cpp create mode 100644 tests/auto/cmake/test_translation_api/myobject_de.ts create mode 100644 tests/auto/cmake/test_translation_api/some_dir/some_include.h create mode 100644 tests/auto/cmake/test_uiplugin_module/CMakeLists.txt create mode 100644 tests/auto/cmake/test_uiplugin_module/my_designer_plugin.cpp create mode 100644 tests/auto/cmake/test_uiplugin_via_designer/CMakeLists.txt create mode 100644 tests/auto/cmake/test_uiplugin_via_designer/my_designer_plugin.cpp create mode 100644 tests/auto/linguist/CMakeLists.txt create mode 100644 tests/auto/linguist/lconvert/CMakeLists.txt create mode 100644 tests/auto/linguist/lconvert/data/codec-utf8.ts create mode 100644 tests/auto/linguist/lconvert/data/endless-po-loop.ts create mode 100644 tests/auto/linguist/lconvert/data/idxmerge-add.ts create mode 100644 tests/auto/linguist/lconvert/data/idxmerge.ts create mode 100644 tests/auto/linguist/lconvert/data/idxmerge.ts.out create mode 100755 tests/auto/linguist/lconvert/data/makeplurals.pl create mode 100644 tests/auto/linguist/lconvert/data/msgid.ts create mode 100644 tests/auto/linguist/lconvert/data/phrasebook.qph create mode 100644 tests/auto/linguist/lconvert/data/plurals-cn.ts create mode 100644 tests/auto/linguist/lconvert/data/plurals-de.ts create mode 100644 tests/auto/linguist/lconvert/data/relative.ts create mode 100644 tests/auto/linguist/lconvert/data/singular.po create mode 100644 tests/auto/linguist/lconvert/data/test-broken-utf8.po create mode 100644 tests/auto/linguist/lconvert/data/test-broken-utf8.po.out create mode 100644 tests/auto/linguist/lconvert/data/test-developer-comment.po create mode 100644 tests/auto/linguist/lconvert/data/test-empty-comment.po create mode 100644 tests/auto/linguist/lconvert/data/test-escapes.po create mode 100644 tests/auto/linguist/lconvert/data/test-escapes.po.out create mode 100644 tests/auto/linguist/lconvert/data/test-kde-ctxt.po create mode 100644 tests/auto/linguist/lconvert/data/test-kde-fuzzy.po create mode 100644 tests/auto/linguist/lconvert/data/test-kde-multiline.po create mode 100644 tests/auto/linguist/lconvert/data/test-kde-plurals.po create mode 100644 tests/auto/linguist/lconvert/data/test-refs.po create mode 100644 tests/auto/linguist/lconvert/data/test-slurp.po create mode 100644 tests/auto/linguist/lconvert/data/test-slurp.po.out create mode 100644 tests/auto/linguist/lconvert/data/test-translator-comment.po create mode 100644 tests/auto/linguist/lconvert/data/test1-cn.po create mode 100644 tests/auto/linguist/lconvert/data/test1-de.po create mode 100644 tests/auto/linguist/lconvert/data/test20.ts create mode 100644 tests/auto/linguist/lconvert/data/untranslated.qm create mode 100644 tests/auto/linguist/lconvert/data/untranslated.ts create mode 100644 tests/auto/linguist/lconvert/data/untranslated.ts.out create mode 100644 tests/auto/linguist/lconvert/data/variants.ts create mode 100644 tests/auto/linguist/lconvert/data/whitespace.ts create mode 100644 tests/auto/linguist/lconvert/data/wrapping.po create mode 100644 tests/auto/linguist/lconvert/tst_lconvert.cpp create mode 100644 tests/auto/linguist/lrelease/CMakeLists.txt create mode 100644 tests/auto/linguist/lrelease/testdata/compressed.ts create mode 100644 tests/auto/linguist/lrelease/testdata/dupes.errors create mode 100644 tests/auto/linguist/lrelease/testdata/dupes.ts create mode 100644 tests/auto/linguist/lrelease/testdata/idbased.ts create mode 100644 tests/auto/linguist/lrelease/testdata/no-translations.pro create mode 100644 tests/auto/linguist/lrelease/testdata/translate.ts create mode 100644 tests/auto/linguist/lrelease/tst_lrelease.cpp create mode 100644 tests/auto/linguist/lupdate/CMakeLists.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/backslashes/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/backslashes/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/backslashes/src/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/backslashes/ts/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/cmdline_order/a.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/cmdline_order/b.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/cmdline_order/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/cmdline_order/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/from_subdir/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/from_subdir/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/from_subdir/translations/translations.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/heuristics/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/heuristics/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/heuristics/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/heuristics/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/lacksqobject/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/lacksqobject/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/merge_ordering/foo.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/merge_ordering/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/merge_versions/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/merge_versions/project.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/merge_versions/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/merge_versions/project.ui create mode 100644 tests/auto/linguist/lupdate/testdata/good/merge_whitespace/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/finddialog.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/finddialog.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/finddialog.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/finddialog.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergeui/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergeui/project.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergeui/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergeui/project.ui create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ui create mode 100644 tests/auto/linguist/lupdate/testdata/good/multiple_locations/finddialog.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/multiple_locations/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/namespaces/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/namespaces/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/namespaces/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/notargetlanguage/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/notargetlanguage/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/notargetlanguage/project.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/notargetlanguage/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parse_special_chars/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecontexts/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecontexts_clang_parser/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecontexts_clang_parser/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecontexts_clang_parser/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp/excluded.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp/finddialog.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp/included.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp/notincluded.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/main.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/my_include.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_QT_TR_NOOP_context.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_QT_TR_NOOP_context_bis.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_QT_TR_NOOP_context_with_comments.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_contain_only_alias.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_header_only.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_header_only.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_isolatedComments.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_isolatedComments.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_line_directive.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_sameLineComments.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/finddialog.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/included.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/my_include.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/notincluded.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseidbasedui/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseidbasedui/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseidbasedui/project.ui create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejava/main.java create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejava/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejava/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs/main.js create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs2/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs2/main.js create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs2/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs3/main.js create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs3/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs3/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs4/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs4/main.js create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs4/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejs4/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejscontexts/main.js create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejscontexts/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsejscontexts/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseobjc/main.mm create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseobjc/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseobjc/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsepython/main.py create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsepython/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parsepython/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseqml/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseqml2/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseqml2/main.qml create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseqml2/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseqml2/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseqrc/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseqrc/main.js create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseqrc/main.qml create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseqrc/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseqrc/project.qrc create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseqrc/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseui/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseui/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/parseui/project.ui create mode 100644 tests/auto/linguist/lupdate/testdata/good/prefix/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/prefix/main.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/prefix/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/prefix/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/main.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/preprocess/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/preprocess/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/preprocess/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/features/default_pre.prf create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/main.qml create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/main_mac.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/main_unix.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/main_win.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/qml/excluded.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/qml/notmain.qml create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/vpaths/dependpath/main_dependpath.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard/main1.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard/mainfile.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard1.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard99.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/a create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/a.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/b create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/b.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/e create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/f/g.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/files-cc.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/include.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/spaces/z create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/variable_with_spaces create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/with create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/x/d create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsing2/x/variable create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpaths/file1.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpaths/filter.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpaths/sub/sub.pri create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpaths/sub/subfile1.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpaths/sub/subfilter.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/common/common.pri create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/common/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/common/main.pri create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/mac/mac.pri create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/mac/main_mac.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/relativity.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/relativity.pri create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/sub/sub.pri create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/sub2/sub2.pri create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/unix/main_unix.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/unix/unix.pri create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/win/main_win.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingpri/win/win.pri create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/sub1.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/common.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/excluded.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/mac.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/main_mac.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/sub/include/test.h create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/sub/src/test.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/sub/sub.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/main_unix.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/unix.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/main_win.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/win.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_full/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_full/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_full/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_full/project_sub.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_part/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_part/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_part/project_sub.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/expectedoutput.txt create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/reloutput/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/reloutput/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/reloutput/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/reloutput/translations/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/resources_cmdline/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/resources_cmdline/main.js create mode 100644 tests/auto/linguist/lupdate/testdata/good/resources_cmdline/main.qml create mode 100644 tests/auto/linguist/lupdate/testdata/good/resources_cmdline/project.qrc create mode 100644 tests/auto/linguist/lupdate/testdata/good/resources_cmdline/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/respfile/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/respfile/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/respfile/source1.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/respfile/source2.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/respfile/sources.lst create mode 100644 tests/auto/linguist/lupdate/testdata/good/respfile/tsfiles.lst create mode 100644 tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ts.before create mode 100644 tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ui create mode 100644 tests/auto/linguist/lupdate/testdata/good/tr_function_alias/lupdatecmd create mode 100644 tests/auto/linguist/lupdate/testdata/good/tr_function_alias/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good/tr_function_alias/main.qml create mode 100644 tests/auto/linguist/lupdate/testdata/good/tr_function_alias/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good/tr_function_alias/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/main.js create mode 100644 tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/main.qml create mode 100644 tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/project.qrc create mode 100644 tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/project.ts.result create mode 100644 tests/auto/linguist/lupdate/testdata/recursivescan/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/recursivescan/project.ui create mode 100644 tests/auto/linguist/lupdate/testdata/recursivescan/sub/filetypes/main.c++ create mode 100644 tests/auto/linguist/lupdate/testdata/recursivescan/sub/filetypes/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/recursivescan/sub/filetypes/main.cxx create mode 100644 tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_full/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/subdir1.pro create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subdir2.pro create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/subsub1.pro create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_part/project.pro create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/subdir1.pro create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subdir2.pro create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/subsub1.pro create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/main.cpp create mode 100644 tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro create mode 100644 tests/auto/linguist/lupdate/tst_lupdate.cpp create mode 100644 tests/auto/qdoc/CMakeLists.txt create mode 100644 tests/auto/qdoc/catch/CATCH_LICENSE.txt create mode 100644 tests/auto/qdoc/catch/CMakeLists.txt create mode 100644 tests/auto/qdoc/catch/catch.hpp create mode 100644 tests/auto/qdoc/catch/qt_attribution.json create mode 100644 tests/auto/qdoc/catch_conversions/qdoc_catch_conversions.hpp create mode 100644 tests/auto/qdoc/catch_conversions/qt_catch_conversions.hpp create mode 100644 tests/auto/qdoc/catch_conversions/std_catch_conversions.hpp create mode 100644 tests/auto/qdoc/catch_generators/CMakeLists.txt create mode 100644 tests/auto/qdoc/catch_generators/src/generators/qchar_generator.hpp create mode 100644 tests/auto/qdoc/catch_generators/src/generators/qstring_generator.hpp create mode 100644 tests/auto/qdoc/catch_generators/src/namespaces.hpp create mode 100644 tests/auto/qdoc/catch_generators/tests/CMakeLists.txt create mode 100644 tests/auto/qdoc/catch_generators/tests/catch_qchar_generator.cpp create mode 100644 tests/auto/qdoc/catch_generators/tests/catch_qstring_generator.cpp create mode 100644 tests/auto/qdoc/catch_generators/tests/main.cpp create mode 100644 tests/auto/qdoc/config/CMakeLists.txt create mode 100644 tests/auto/qdoc/config/testdata/configs/exampletest.qdocconf create mode 100644 tests/auto/qdoc/config/testdata/configs/expandvars.qdocconf create mode 100644 tests/auto/qdoc/config/testdata/configs/includepaths.qdocconf create mode 100644 tests/auto/qdoc/config/testdata/configs/includes/test.qdoc create mode 100644 tests/auto/qdoc/config/testdata/configs/paths.qdocconf create mode 100644 tests/auto/qdoc/config/testdata/configs/vars.qdocconf create mode 100644 tests/auto/qdoc/config/testdata/exampletest/examples/test/empty/test.pro create mode 100644 tests/auto/qdoc/config/testdata/exampletest/examples/test/example1/example1.pro create mode 100644 tests/auto/qdoc/config/testdata/exampletest/examples/test/example2/example2.qmlproject create mode 100644 tests/auto/qdoc/config/testdata/exampletest/examples/test/example3/example3.pyproject create mode 100644 tests/auto/qdoc/config/testdata/exampletest/examples/test/example4/CMakeLists.txt create mode 100644 tests/auto/qdoc/config/testdata/exampletest/examples/test/example4/example4.pro create mode 100644 tests/auto/qdoc/config/testdata/includepaths/include/framework/ignore.h create mode 100644 tests/auto/qdoc/config/testdata/includepaths/include/more/ignore.h create mode 100644 tests/auto/qdoc/config/testdata/includepaths/include/purpose.h create mode 100644 tests/auto/qdoc/config/testdata/includepaths/include/system/ignore.h create mode 100644 tests/auto/qdoc/config/testdata/includepaths/includepaths.qdocconf create mode 100644 tests/auto/qdoc/config/testdata/paths/includes/test.qdoc create mode 100644 tests/auto/qdoc/config/testdata/paths/paths.qdocconf create mode 100644 tests/auto/qdoc/config/tst_config.cpp create mode 100644 tests/auto/qdoc/generatedoutput/CMakeLists.txt create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/autolinking.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/crossmodule/all-namespaces.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/crossmodule/crossmoduleref-sub-crossmodule.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype-members.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/crossmoduleref.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/demos-manifest.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qdoc-test-qmlmodule.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qdoctests-qdocfileoutput-exhaustive.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qdoctests-qdocfileoutput-linking.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qdoctests-qdocfileoutput.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qml-int.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qml-qdoc-test-abstractparent.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qml-qdoc-test-child.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qml-qdoc-test-doctest.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qml-qdoc-test-type.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qml-qdoc-test-yetanotherchild.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qml-test-nover-typenoversion.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qml-uicomponents-progressbar.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qml-uicomponents-switch.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/qml-uicomponents-tabwidget.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/test-componentset-example.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/test-nover-qmlmodule.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/testcpp-module.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc-test.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc-testderived.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/docbook/uicomponents-qmlmodule.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/dontdocument/classes.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/dontdocument/dontdocument.qhp create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/dontdocument/seenclass.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/examples-manifest.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/first.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/globals.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/headerfile-docbook/headers.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/headerfile-docbook/testheader.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/headerfile/headers.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/headerfile/testheader.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/html/first.webxml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/html/index.webxml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput-exhaustive.webxml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput-linking.webxml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput.webxml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/html/second.webxml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/html/test-componentset-example.webxml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/html/test-nover-qmlmodule.webxml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/html/testcpp-module.webxml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-testderived.webxml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/html/third.webxml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/html/uicomponents-qmlmodule.webxml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/index.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/qml-qdoc-test-abstractparent-members.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/qml-qdoc-test-abstractparent.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/index-linking.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/index.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/nestedmacro/testcpp-module.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/noautolist-docbook/qdoc-test-qmlmodule.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/noautolist-docbook/test-componentset-example.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/noautolist-docbook/testcpp-module.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/noautolist/qdoc-test-qmlmodule.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/noautolist/test-componentset-example.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/noautolist/testcpp-module.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/obsolete-classes.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/properties-docbook/testqdoc-testderived.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/properties/qml-thetype.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/proxypage-docbook/stdpair-proxy.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/proxypage/stdpair-proxy.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qdoc-test-qmlmodule.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput-exhaustive.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput-linking.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-int.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-linkmodule-grandchild-members.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-abstractparent.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-child.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-doctest.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-members.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-obsolete.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-yetanotherchild.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-test-nover-typenoversion-members.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-test-nover-typenoversion.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-progressbar.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-switch.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-tabwidget.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qmlmodules.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups-docbook/qml-qdoc-test-parent.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-anotherchild-members.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-parent.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/scopedenum-docbook/scoped-enum-linking.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/scopedenum-docbook/testqdoc-test.xml create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/scopedenum/scoped-enum-linking.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/second.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/space.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/template/bar.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/template/baz.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/template/foo.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test-struct.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-vec.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/test-cmaketest-example.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/test-componentset-example.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/test-nover-qmlmodule.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/test.qhp create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/testcpp-module.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/testcpp.index create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-obsolete.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-members.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-obsolete.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/testqdoc.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/testtagfile.tags create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/third.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/toc.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/tocbreadcrumbs/qdoctests-qdocfileoutput-exhaustive.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/tocbreadcrumbs/qdoctests-qdocfileoutput-linking.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/tocbreadcrumbs/qdoctests-qdocfileoutput.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/tocbreadcrumbs/toc-test.html create mode 100644 tests/auto/qdoc/generatedoutput/expected_output/uicomponents-qmlmodule.html create mode 100644 tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/TestModule.h create mode 100644 tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/aaa.h create mode 100644 tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/bbb.h create mode 100644 tests/auto/qdoc/generatedoutput/testdata/bug80259/inc/testmodule/ccc.h create mode 100644 tests/auto/qdoc/generatedoutput/testdata/bug80259/src/main.cpp create mode 100644 tests/auto/qdoc/generatedoutput/testdata/bug80259/src/qdoc/index.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/bug80259/testmodule.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/bug80259/webxml_testmodule.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/config.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/docbook.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/docbook_test.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/docbook_testcpp.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/docbook_testqml.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/examples-qhp.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/headerfile.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/ignoresince.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/nestedmacro.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/noautolist.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/properties.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/scopedenum.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/tagfiles.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/test.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/testcpp.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/testcpp_singleexec.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/testglobals.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/testqml.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/testtemplate.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/tocbreadcrumbs.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/tocnavigation.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/usingdirective.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/webxml.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/webxml_test.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/webxml_testcpp.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/configs/webxml_testqml.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/crossmodule/CrossModule create mode 100644 tests/auto/qdoc/generatedoutput/testdata/crossmodule/crossmodule.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/crossmodule/crossmodule_singleexec.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/crossmodule/namespaces.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.cpp create mode 100644 tests/auto/qdoc/generatedoutput/testdata/crossmodule/testtype.h create mode 100644 tests/auto/qdoc/generatedoutput/testdata/dontdocument/TestCPP create mode 100644 tests/auto/qdoc/generatedoutput/testdata/dontdocument/dont.cpp create mode 100644 tests/auto/qdoc/generatedoutput/testdata/dontdocument/dont.h create mode 100644 tests/auto/qdoc/generatedoutput/testdata/dontdocument/dontdocument.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/dontdocument/test.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/examples/demos/demo/demo.pro create mode 100644 tests/auto/qdoc/generatedoutput/testdata/examples/demos/demo/doc/src/demo.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/examples/demos/hidden/doc/src/hidden.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/examples/demos/hidden/hidden.pro create mode 100644 tests/auto/qdoc/generatedoutput/testdata/globalfunc/TestGlobals create mode 100644 tests/auto/qdoc/generatedoutput/testdata/globalfunc/global.h create mode 100644 tests/auto/qdoc/generatedoutput/testdata/globalfunc/global.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/headerfile/testheader.cpp create mode 100644 tests/auto/qdoc/generatedoutput/testdata/headerfile/testheader.h create mode 100644 tests/auto/qdoc/generatedoutput/testdata/images/leonardo-da-vinci.png create mode 100644 tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/anotherindex.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/parentinclude.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/includefromexampledirs.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/src/includefromparent.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/src/parent.qdocinc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/indexlinking/indexlinking.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/indexlinking/linking.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/outputfromqdocfiles/qdoctests-outputfromqdocfiles.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/proxypage/proxy.h create mode 100644 tests/auto/qdoc/generatedoutput/testdata/proxypage/proxy.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/proxypage/proxypage.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/DocTest.qml create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/cmaketest/CMakeLists.txt create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/cmaketest/doc/src/cmaketest.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/cmaketest/main.cpp create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/componentset/ProgressBar.qml create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/componentset/Switch.qml create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/componentset/TabWidget.qml create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/componentset/componentset.pro create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/componentset/componentset.qml create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/componentset/examples.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/componentset/uicomponents.qdoc.sample create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/modules.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/parent.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qml/type.cpp create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qmlpropertygroups/parent.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/qmlpropertygroups/qmlpropertygroups.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/scopedenum/scopedenum.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/singleexec/singleexec.qdocconf create mode 100644 tests/auto/qdoc/generatedoutput/testdata/testcpp/TestCPP create mode 100644 tests/auto/qdoc/generatedoutput/testdata/testcpp/classlists.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/testcpp/properties.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/testcpp/snippets/snippet_testcpp.cpp create mode 100644 tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp create mode 100644 tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h create mode 100644 tests/auto/qdoc/generatedoutput/testdata/testtemplate/testtemplate.cpp create mode 100644 tests/auto/qdoc/generatedoutput/testdata/testtemplate/testtemplate.h create mode 100644 tests/auto/qdoc/generatedoutput/testdata/toc/toc.qdoc create mode 100644 tests/auto/qdoc/generatedoutput/testdata/usingdirective/UsingDirective create mode 100644 tests/auto/qdoc/generatedoutput/testdata/usingdirective/alias.h create mode 100644 tests/auto/qdoc/generatedoutput/testdata/usingdirective/space.cpp create mode 100644 tests/auto/qdoc/generatedoutput/testdata/usingdirective/space.h create mode 100644 tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp create mode 100644 tests/auto/qdoc/qdoccommandlineparser/CMakeLists.txt create mode 100644 tests/auto/qdoc/qdoccommandlineparser/tst_arguments.txt create mode 100644 tests/auto/qdoc/qdoccommandlineparser/tst_qdoccommandlineparser.cpp create mode 100644 tests/auto/qdoc/utilities/CMakeLists.txt create mode 100644 tests/auto/qdoc/utilities/tst_utilities.cpp create mode 100644 tests/auto/qhelpcontentmodel/CMakeLists.txt create mode 100644 tests/auto/qhelpcontentmodel/data/collection.qhc create mode 100644 tests/auto/qhelpcontentmodel/data/qmake-3.3.8.qch create mode 100644 tests/auto/qhelpcontentmodel/data/qmake-4.3.0.qch create mode 100644 tests/auto/qhelpcontentmodel/data/test.qch create mode 100644 tests/auto/qhelpcontentmodel/tst_qhelpcontentmodel.cpp create mode 100644 tests/auto/qhelpenginecore/CMakeLists.txt create mode 100644 tests/auto/qhelpenginecore/data/collection.qhc create mode 100644 tests/auto/qhelpenginecore/data/collection1.qhc create mode 100644 tests/auto/qhelpenginecore/data/linguist-3.3.8.qch create mode 100644 tests/auto/qhelpenginecore/data/qmake-3.3.8.qch create mode 100644 tests/auto/qhelpenginecore/data/qmake-4.3.0.qch create mode 100644 tests/auto/qhelpenginecore/data/test.html create mode 100644 tests/auto/qhelpenginecore/data/test.qch create mode 100644 tests/auto/qhelpenginecore/tst_qhelpenginecore.cpp create mode 100644 tests/auto/qhelpgenerator/CMakeLists.txt create mode 100644 tests/auto/qhelpgenerator/data/cars.html create mode 100644 tests/auto/qhelpgenerator/data/classic.css create mode 100644 tests/auto/qhelpgenerator/data/fancy.html create mode 100644 tests/auto/qhelpgenerator/data/people.html create mode 100644 tests/auto/qhelpgenerator/data/sub/about.html create mode 100644 tests/auto/qhelpgenerator/data/test.html create mode 100644 tests/auto/qhelpgenerator/data/test.qhp create mode 100644 tests/auto/qhelpgenerator/tst_qhelpgenerator.cpp create mode 100644 tests/auto/qhelpindexmodel/CMakeLists.txt create mode 100644 tests/auto/qhelpindexmodel/data/collection.qhc create mode 100644 tests/auto/qhelpindexmodel/data/collection1.qhc create mode 100644 tests/auto/qhelpindexmodel/data/linguist-3.3.8.qch create mode 100644 tests/auto/qhelpindexmodel/data/qmake-3.3.8.qch create mode 100644 tests/auto/qhelpindexmodel/data/qmake-4.3.0.qch create mode 100644 tests/auto/qhelpindexmodel/data/test.html create mode 100644 tests/auto/qhelpindexmodel/data/test.qch create mode 100644 tests/auto/qhelpindexmodel/tst_qhelpindexmodel.cpp create mode 100644 tests/auto/qhelpprojectdata/CMakeLists.txt create mode 100644 tests/auto/qhelpprojectdata/data/test.qhp create mode 100644 tests/auto/qhelpprojectdata/tst_qhelpprojectdata.cpp create mode 100644 tests/auto/qtattributionsscanner/CMakeLists.txt create mode 100644 tests/auto/qtattributionsscanner/testdata/good/chromium/README_test.chromium create mode 100644 tests/auto/qtattributionsscanner/testdata/good/complete/qt_attribution_test.json create mode 100644 tests/auto/qtattributionsscanner/testdata/good/expected.error create mode 100644 tests/auto/qtattributionsscanner/testdata/good/expected.json create mode 100644 tests/auto/qtattributionsscanner/testdata/good/licenses-dir/expected.error create mode 100644 tests/auto/qtattributionsscanner/testdata/good/licenses-dir/expected.json create mode 100644 tests/auto/qtattributionsscanner/testdata/good/licenses-dir/qt_attribution_test.json create mode 100644 tests/auto/qtattributionsscanner/testdata/good/minimal/expected.error create mode 100644 tests/auto/qtattributionsscanner/testdata/good/minimal/expected.json create mode 100644 tests/auto/qtattributionsscanner/testdata/good/minimal/qt_attribution_test.json create mode 100644 tests/auto/qtattributionsscanner/testdata/good/variants/COPYRIGHT.txt create mode 100644 tests/auto/qtattributionsscanner/testdata/good/variants/LICENSE1.txt create mode 100644 tests/auto/qtattributionsscanner/testdata/good/variants/LICENSE2.txt create mode 100644 tests/auto/qtattributionsscanner/testdata/good/variants/expected.error create mode 100644 tests/auto/qtattributionsscanner/testdata/good/variants/expected.json create mode 100644 tests/auto/qtattributionsscanner/testdata/good/variants/qt_attribution_test.json create mode 100644 tests/auto/qtattributionsscanner/testdata/warnings/incomplete/expected.error create mode 100644 tests/auto/qtattributionsscanner/testdata/warnings/incomplete/qt_attribution_test.json create mode 100644 tests/auto/qtattributionsscanner/testdata/warnings/unknown/expected.error create mode 100644 tests/auto/qtattributionsscanner/testdata/warnings/unknown/qt_attribution_test.json create mode 100644 tests/auto/qtattributionsscanner/tst_qtattributionsscanner.cpp create mode 100644 tests/auto/qtdiag/CMakeLists.txt create mode 100644 tests/auto/qtdiag/tst_qtdiag.cpp create mode 100644 tests/global/global.cfg create mode 100644 tests/manual/CMakeLists.txt create mode 100644 tests/manual/manual.pro create mode 100644 tests/manual/qtattributionsscanner/CMakeLists.txt create mode 100644 tests/manual/qtattributionsscanner/data/LICENSE create mode 100644 tests/manual/qtattributionsscanner/data/qt_attribution.json create mode 100644 tests/manual/qtattributionsscanner/overview.qdoc create mode 100644 tests/manual/qtattributionsscanner/qtattributionsscanner.pro create mode 100644 tests/manual/qtattributionsscanner/test.qdocconf diff --git a/.QT-ENTERPRISE-LICENSE-AGREEMENT b/.QT-ENTERPRISE-LICENSE-AGREEMENT new file mode 100644 index 0000000..8d68b15 --- /dev/null +++ b/.QT-ENTERPRISE-LICENSE-AGREEMENT @@ -0,0 +1,1977 @@ +QT LICENSE AGREEMENT +Agreement version 4.4.1 + +This Qt License Agreement ("Agreement") is a legal agreement for the licensing +of Licensed Software (as defined below) between The Qt Company (as defined +below) and the Licensee who has accepted the terms of this Agreement by signing +this Agreement or by downloading or using the Licensed Software or in any other +appropriate means. + +Capitalized terms used herein are defined in Section 1. + +WHEREAS: + (A) Licensee wishes to use the Licensed Software for the purpose of + developing and distributing Applications and/or Devices (each as defined + below); + (B) The Qt Company is willing to grant the Licensee a right to use Licensed + Software for such a purpose pursuant to term and conditions of this + Agreement; and + (C) Parties wish to enable that their respective Affiliates also can sell + and purchase licenses to serve Licensee Affiliates' needs to use Licensed + Software pursuant to terms of the Agreement. Any such license purchases by + Licensee Affiliates from The Qt Company or its Affiliates will create + contractual relationship directly between the relevant The Qt Company and + the respective ordering Licensee Affiliate "Acceding Agreement"). + Accordingly, Licensee shall not be a party to any such Acceding Agreement, + and no rights or obligations are created to the Licensee thereunder but all + rights and obligations under such Acceding Agreement are vested and borne + solely by the ordering Licensee Affiliate and the relevant The Qt Company + as a contracting parties under such Acceding Agreement. + +NOW, THEREFORE, THE PARTIES HEREBY AGREE AS FOLLOWS: + +1. DEFINITIONS + +"Affiliate" of a Party shall mean an entity + (i) which is directly or indirectly controlling such Party; + (ii) which is under the same direct or indirect ownership or control as + such Party; or + (iii) which is directly or indirectly owned or controlled by such Party. +For these purposes, an entity shall be treated as being controlled by another +if that other entity has fifty percent (50 %) or more of the votes in such +entity, is able to direct its affairs and/or to control the composition of its +board of directors or equivalent body. + +"Add-on Products" shall mean The Qt Company's specific add-on software products +which are not licensed as part of The Qt Company's standard product offering, +but shall be included into the scope of Licensed Software only if so +specifically agreed between the Parties. + +"Agreement Term" shall mean the validity period of this Agreement, as set forth +in Section 12. + +"Applications" shall mean software products created using the Licensed +Software, which include the Redistributables, or part thereof. + +"Contractor(s)" shall mean third party consultants, distributors and +contractors performing services to the Licensee under applicable contractual +arrangement. + +"Customer(s)" shall mean Licensee's customers to whom Licensee, directly or +indirectly, distributes copies of the Redistributables as integrated or +incorporated into Applications or Devices. + +"Data Protection Legislation" shall mean the General Data Protection Regulation +(EU 2016/679) (GDPR) and any national implementing laws, regulations and +secondary legislation, as may be amended or updated from time to time, as well +as any other data protection laws or regulations applicable in relevant +territory. + +"Deployment Platforms" shall mean target operating systems and/or hardware +specified in the License Certificate, on which the Redistributables can be +distributed pursuant to the terms and conditions of this Agreement. + +"Designated User(s)" shall mean the employee(s) of Licensee or Licensee's +Affiliates acting within the scope of their employment or Licensee's +Contractors acting within the scope of their services on behalf of Licensee. + +"Development License" shall mean the license needed by the Licensee for each +Designated User to use the Licensed Software under the license grant described +in Section 3.1 of this Agreement. Development Licenses are available per +respective Licensed Software products, each product having its designated scope +and purpose of use. + +"Development License Term" shall mean the agreed validity period of the +Development License or QA Tools license during which time the relevant Licensed +Software product can be used pursuant to this Agreement. Agreed Development +License Term, as ordered and paid for by the Licensee, shall be memorialized in +the applicable License Certificate. + +"Development Platforms" shall mean those host operating systems specified in +the License Certificate, in which the Licensed Software can be used under the +Development License. + +"Devices" shall mean + (1) hardware devices or products that + i. are manufactured and/or distributed by the Licensee, its Affiliates, + Contractors or Customers, and + ii. incorporate, integrate or link to Applications such that + substantial functionality of such unit, when used by an End User, + is provided by Application(s) or otherwise depends on the Licensed + Software, regardless of whether the Application is developed by + Licensee or its Contractors; or + (2) Applications designed for the hardware devices specified in item (1). + + Devices covered by this Agreement shall be specified in Appendix 2 or in a + quote. + +"Distribution License(s)" shall mean a royalty-bearing license required for any +kind of sale, trade, exchange, loan, lease, rental or other distribution by or +on behalf of Licensee to a third party of Redistributables in connection with +Devices pursuant to license grant described in Section 3.3 of this Agreement. +Distribution Licensed are sold separately for each type of Device respectively +and cannot be used for any type of Devices at Licensee's discretion. + +"Distribution License Packs" shall mean set of prepaid Distribution Licenses +for distribution of Redistributables, as defined in The Qt Company's standard +price list, quote, Purchase Order confirmation or in an Appendix 2 hereto, as +the case may be. + +"End User" shall mean the final end user of the Application or a Device. + +"Evaluation License Term" shall mean a time period specified in the License +Certificate for the Licensee to use the relevant Licensed Software for +evaluation purposes according to Section 3.6 herein. + +"Intellectual Property Rights" shall mean patents (including utility models), +design patents, and designs (whether or not capable of registration), chip +topography rights and other like protection, copyrights, trademarks, service +marks, trade names, logos or other words or symbols and any other form of +statutory protection of any kind and applications for any of the foregoing as +well as any trade secrets. + +"License Certificate" shall mean a certificate generated by The Qt Company for +each Designated User respectively upon them downloading the Licensed Software, +which will be available under respective Designated User's Qt Account at +account.qt.io. License Certificates will specify relevant information +pertaining the Licensed Software purchased by Licensee and Designated User's +license to the Licensed Software. + +"License Fee" shall mean the fee charged to the Licensee for rights granted +under the terms of this Agreement. + +"Licensed Software" shall mean specified product of commercially licensed +version of Qt Software and/or QA Tools defined in Appendix 1 and/or Appendix 3, +which Licensee has purchased and which is provided to Licensee under the terms +of this Agreement. Licensed Software shall include corresponding online or +electronic documentation, associated media and printed materials, including the +source code (where applicable), example programs and the documentation. +Licensed Software does not include Third Party Software (as defined in Section +4) or Open Source Qt. The Qt Company may, in the course of its development +activities, at its free and absolute discretion and without any obligation to +send or publish any notifications to the Licensee or in general, make changes, +additions or deletions in the components and functionalities of the Licensed +Software, provided that no such changes, additions or deletions will affect +the already released version of the Licensed Software, but only upcoming +version(s). + +"Licensee" shall mean the individual or legal entity that is party to this +Agreement. + +"Licensee's Records" shall mean books and records that contain information +bearing on Licensee's compliance with this Agreement, Licensee's use of Open +Source Qt and/or the payments due to The Qt Company under this Agreement, +including, but not limited to user information, assembly logs, sales records +and distribution records. + +"Modified Software" shall have the meaning as set forth in Section 2.3. + +"Online Services" shall mean any services or access to systems made available +by The Qt Company to the Licensee over the Internet relating to the Licensed +Software or for the purpose of use by the Licensee of the Licensed Software or +Support. Use of any such Online Services is discretionary for the Licensee and +some of them may be subject to additional fees. + +"Open Source Qt" shall mean Qt Software available under the terms of the GNU +Lesser General Public License, version 2.1 or later ("LGPL") or the GNU General +Public License, version 2.0 or later ("GPL"). For clarity, Open Source Qt shall +not be provided, governed or used under this Agreement. + +"Party" or "Parties" shall mean Licensee and/or The Qt Company. + +"Permitted Software" shall mean (i) third party open source software products +that are generally available for public in source code form and free of any +charge under any of the licenses approved by Open Source Initiative as listed +on https://opensource.org/licenses, which may include parts of Open Source Qt +or be developed using Open Source Qt; and (ii) software The Qt Company has made +available via its Qt Marketplace online distribution channel. + +"Pre-Release Code" shall have the meaning as set forth in Section 4. + +"Prohibited Combination" shall mean any effort to use, combine, incorporate, +link or integrate Licensed Software with any software created with or +incorporating Open Source Qt, or use Licensed Software for creation of any such +software. + +"Purchase Order" shall have the meaning as set forth in Section 10.2. + +"QA Tools" shall mean software libraries and tools as defined in Appendix 1 +depending on which product(s) the Licensee has purchased under the Agreement. + +"Qt Software" shall mean the software libraries and tools of The Qt Company, +which The Qt Company makes available under commercial and/or open source +licenses. + +"Redistributables" shall mean the portions of the Licensed Software set forth +in Appendix 1 that may be distributed pursuant to the terms of this Agreement +in object code form only, including any relevant documentation. Where relevant, +any reference to Licensed Software in this Agreement shall include and refer +also to Redistributables. + +"Renewal Term" shall mean an extension of previous Development License Term as +agreed between the Parties. + +"Submitted Modified Software" shall have the meaning as set forth in Section +2.3. + +"Support" shall mean standard developer support that is provided by The Qt +Company to assist Designated Users in using the Licensed Software in accordance +with this Agreement and the Support Terms. + +"Support Terms" shall mean The Qt Company's standard support terms specified in +Appendix 9 hereto. + +"Taxes" shall have the meaning set forth in Section 10.5. + +"The Qt Company" shall mean: + (i) in the event Licensee is an individual residing in the United States or + a legal entity incorporated in the United States or having its + headquarters in the United States, The Qt Company Inc., a Delaware + corporation with its office at 3031 Tisch Way, 110 Plaza West, + San Jose, CA 95128, USA.; or + (ii) in the event the Licensee is an individual residing outside of the + United States or a legal entity incorporated outside of the United + States or having its registered office outside of the United States, + The Qt Company Ltd., a Finnish company with its registered office at + Miestentie 7, 02150 Espoo, Finland. + +"Third-Party Software" shall have the meaning set forth in Section 4. + +"Updates" shall mean a release or version of the Licensed Software containing +bug fixes, error corrections and other changes that are generally made +available to users of the Licensed Software that have contracted for Support. +Updates are generally depicted as a change to the digits following the decimal +in the Licensed Software version number. The Qt Company shall make Updates +available to the Licensee under the Support. Updates shall be considered as +part of the Licensed Software hereunder. + +"Upgrades" shall mean a release or version of the Licensed Software containing +enhancements and new features and are generally depicted as a change to the +first digit of the Licensed Software version number. In the event Upgrades are +provided to the Licensee under this Agreement, they shall be considered as part +of the Licensed Software hereunder. + +2. OWNERSHIP + +2.1. Ownership of The Qt Company + +The Licensed Software is protected by copyright laws and international +copyright treaties, as well as other intellectual property laws and treaties. +The Licensed Software is licensed, not sold. + +All of The Qt Company's Intellectual Property Rights are and shall remain the +exclusive property of The Qt Company or its licensors respectively. No rights +to The Qt Company's Intellectual Property Rights are assigned or granted to +Licensee under this Agreement, except when and to the extent expressly +specified herein. + +2.2. Ownership of Licensee + +All the Licensee's Intellectual Property Rights are and shall remain the +exclusive property of the Licensee or its licensors respectively. + +All Intellectual Property Rights to the Modified Software, Applications and +Devices shall remain with the Licensee and no rights thereto shall be granted +by the Licensee to The Qt Company under this Agreement (except as set forth in +Section 2.3 below). + +2.3. Modified Software + +Licensee may create bug-fixes, error corrections, patches or modifications to +the Licensed Software ("Modified Software"). Such Modified Software may break +the source or binary compatibility with the Licensed Software (including +without limitation through changing the application programming interfaces +("API") or by adding, changing or deleting any variable, method, or class +signature in the Licensed Software and/or any inter-process protocols, +services or standards in the Licensed Software libraries). To the extent that +Licensee's Modified Software so breaks source or binary compatibility with the +Licensed Software, Licensee acknowledges that The Qt Company's ability to +provide Support may be prevented or limited and Licensee's ability to make use +of Updates may be restricted. + +Licensee may, at its sole and absolute discretion, choose to submit Modified +Software to The Qt Company ("Submitted Modified Software") in connection with +Licensee's Support request, service request or otherwise. In the event +Licensee does so, then, Licensee hereby grants The Qt Company a sublicensable, +assignable, irrevocable, perpetual, worldwide, non-exclusive, royalty-free and +fully paid-up license, under all of Licensee's Intellectual Property Rights, to +reproduce, adapt, translate, modify, and prepare derivative works of, publicly +display, publicly perform, sublicense, make available and distribute such +Submitted Modified Software as The Qt Company sees fit at its free and absolute +discretion. + +3. LICENSES GRANTED + +3.1. Development with Licensed Software + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +worldwide, non-exclusive, non-transferable license, valid for each Development +License Term, to use, modify and copy the Licensed Software by Designated +Users on the Development Platforms for the sole purposes of designing, +developing, demonstrating and testing Application(s) and/or Devices, and to +provide thereto related support and other related services to Customers. Each +Application and/or Device can only include, incorporate or integrate +contributions by such Designated Users who are duly licensed for the applicable +Development Platform(s) and Deployment Platform(s) (i.e have a valid license +for the appropriate Licensed Software product). + +Licensee may install copies of the Licensed Software on five (5) computers per +Designated User, provided that only the Designated Users who have a valid +Development License may use the Licensed Software. + +Licensee may at any time designate another Designated User to replace a +then-current Designated User by notifying The Qt Company in writing, where such +replacement is due to termination of employment, change of job duties, long +time absence or other such permanent reason affecting Designated User's need +for Licensed Software. + +Upon expiry of the initially agreed Development License Term, the respective +Development License Term shall be automatically extended to one or more Renewal +Term(s), unless and until either Party notifies the other Party in writing, or +any other method acceptable to The Qt Company (it being specifically +acknowledged and understood that verbal notification is explicitly deemed +inadequate in all circumstances), that it does not wish to continue the +Development License Term, such notification to be provided to the other Party +no less than thirty (30) days before expiry of the respective Development +License Term. The Qt Company shall, in good time before the due date for the +above notification, remind the Licensee on the coming Renewal Term. Unless +otherwise agreed between the Parties, Renewal Term shall be 12 months. + +Any such Renewal Term shall be subject to License Fees agreed between the +Parties or, if no advance agreement exists, subject to The Qt Company's +standard list pricing applicable at the commencement date of any such +Renewal Term. + +The Qt Company may either request the Licensee to place a purchase order +corresponding to a quote by The Qt Company, or use Licensee's stored Credit +Card information in the Qt Account to automatically charge the Licensee for the +relevant Renewal Term. + +3.2. Distribution of Applications + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +worldwide, non-exclusive, non-transferable, revocable (for cause pursuant to +this Agreement), right and license, valid for the Agreement Term, to + (i) distribute, by itself or through its Contractors, Redistributables as + installed, incorporated or integrated into Applications for execution + on the Deployment Platforms, and + (ii) grant perpetual and irrevocable sublicenses to Redistributables, as + distributed hereunder, for Customers solely to the extent necessary in + order for the Customers to use the Applications for their respective + intended purposes. + +Right to distribute the Redistributables as part of an Application as provided +herein is not royalty-bearing but is conditional upon the Application having +been created, updated and maintained under a valid and duly paid Development +Licenses. + +3.3. Distribution of Devices + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +worldwide, non-exclusive, non-transferable, revocable (for cause pursuant to +this Agreement), right and license, valid for the Agreement Term, to + (i) distribute, by itself or through one or more tiers of Contractors, + Redistributables as installed, incorporated or integrated, or intended + to be installed, incorporated or integrated into Devices for execution + on the Deployment Platforms, and + (ii) grant perpetual and irrevocable sublicenses to Redistributables, as + distributed hereunder, for Customers solely to the extent necessary in + order for the Customers to use the Devices for their respective + intended purposes. + +Right to distribute the Devices as provided herein is conditional upon + (i) the Devices having been created, updated and maintained under a valid + and duly paid Development Licenses, and + (ii) the Licensee having acquired corresponding Distribution Licenses at + the time of distribution of any Devices to Customers. + +3.4. Further Requirements + +The licenses granted above in this Section 3 by The Qt Company to Licensee are +conditional and subject to Licensee's compliance with the following terms: + (i) Licensee acknowledges that The Qt Company has separate products of + Licensed Software for the purpose of Applications and Devices + respectively, where development and distribution of Devices is only + allowed using the correct designated product. Licensee shall make sure + and bear the burden of proof that Licensee is using a correct product + of Licensed Software entitling Licensee to development and distribution + of Devices; + (ii) Licensee shall not remove or alter any copyright, trademark or other + proprietary rights notice(s) contained in any portion of the Licensed + Software; + (iii) Applications must add primary and substantial functionality to the + Licensed Software so as not to compete with the Licensed Software; + (iv) Applications may not pass on functionality which in any way makes it + possible for others to create software with the Licensed Software; + provided however that Licensee may use the Licensed Software's + scripting and QML ("Qt Quick") functionality solely in order to enable + scripting, themes and styles that augment the functionality and + appearance of the Application(s) without adding primary and substantial + functionality to the Application(s); + (v) Licensee shall not use Licensed Software in any manner or for any + purpose that infringes, misappropriates or otherwise violates any + Intellectual property or right of any third party, or that violates any + applicable law; + (vi) Licensee shall not use The Qt Company's or any of its suppliers' + names, logos, or trademarks to market Applications, except that + Licensee may use "Built with Qt" logo to indicate that Application(s) + or Device(s) was developed using the Licensed Software; + (vii) Licensee shall not distribute, sublicense or disclose source code of + Licensed Software to any third party (provided however that Licensee + may appoint employee(s) of Contractors and Affiliates as Designated + Users to use Licensed Software pursuant to this Agreement). Such right + may be available for the Licensee subject to a separate software + development kit ("SDK") license agreement to be concluded with The Qt + Company; + (viii) Licensee shall not grant the Customers a right to (a) make copies of + the Redistributables except when and to the extent required to use the + Applications and/or Devices for their intended purpose, (b) modify the + Redistributables or create derivative works thereof, (c) decompile, + disassemble or otherwise reverse engineer Redistributables, or (d) + redistribute any copy or portion of the Redistributables to any third + party, except as part of the onward sale of the Application or Device + on which the Redistributables are installed; + (ix) Licensee shall not and shall cause that its Affiliates or Contractors + shall not use Licensed Software in any Prohibited Combination, unless + Licensee has received an advance written permission from The Qt Company + to do so. Absent such written permission, any and all distribution by + the Licensee during the Agreement Term of a hardware device or product + a) which incorporate or integrate any part of Licensed Software or Open + Source Qt; or b) where substantial functionality is provided by + software built with Licensed Software or Open Source Qt or otherwise + depends on the Licensed Software or Open Source Qt, shall be considered + to be Device distribution under this Agreement and shall be dependent + on Licensee's compliance thereof (including but not limited to + obligation to pay applicable License Fees for such distribution). + Notwithstanding what is provided above in this sub-section (ix), + Licensee is entitled to use and combine Licensed Software with any + Permitted Software; + (x) Licensee shall cause all of its Affiliates, Contractors and Customers + entitled to make use of the licenses granted under this Agreement, to + be contractually bound to comply with the relevant terms of this + Agreement and not to use the Licensed Software beyond the terms hereof + and for any purposes other than operating within the scope of their + services for Licensee. Licensee shall be responsible for any and all + actions and omissions of its Affiliates and Contractors relating to the + Licensed Software and use thereof (including but not limited to payment + of all applicable License Fees); + (xi) Except when and to the extent explicitly provided in this Section 3, + Licensee shall not transfer, publish, disclose, display or otherwise + make available the Licensed Software; and + (xii) Licensee shall not attempt or enlist a third party to conduct or + attempt to conduct any of the above. + +Above terms shall not be applicable if and to the extent they conflict with any +mandatory provisions of any applicable laws. + +Any use of Licensed Software beyond the provisions of this Agreement is +strictly prohibited and requires an additional license from The Qt Company. + +3.5 QA Tools License + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +worldwide, non-exclusive, non-transferable license, valid for the Development +License Term, to use the QA Tools for Licensee's internal business purposes in +the manner provided below and in Appendix 1 hereto. + +Licensee may modify the QA Tools except for altering or removing any details of +ownership, copyright, trademark or other property right connected with the QA +Tools. + +Licensee shall not distribute the QA Tools or any part thereof, modified or +unmodified, separately or as part of any software package, Application or +Device. + +Upon expiry of the initially agreed Development License Term, the respective +Development License Term shall be automatically extended to one or more Renewal +Term(s), unless and until either Party notifies the other Party in writing, or +any other method acceptable to The Qt Company (it being specifically +acknowledged and understood that verbal notification is explicitly deemed +inadequate in all circumstances), that it does not wish to continue the +Development License Term, such notification to be provided to the other Party +no less than thirty (30) days before expiry of the respective Development +License Term. The Qt Company shall, in good time before the due date for the +above notification, remind the Licensee on the coming Renewal Term. Unless +otherwise agreed between the Parties, Renewal Term shall be 12 months. + +Any such Renewal Term shall be subject to License Fees agreed between the +Parties or, if no advance agreement exists, subject to The Qt Company's +standard list pricing applicable at the commencement date of any such +Renewal Term. + +3.6 Evaluation License + +Subject to the terms of this Agreement, The Qt Company grants to Licensee a +worldwide, non-exclusive, non-transferable license, valid for the Evaluation +License Term to use the Licensed Software solely for the Licensee's internal +use to evaluate and determine whether the Licensed Software meets Licensee's +business requirements, specifically excluding any commercial use of the +Licensed Software or any derived work thereof. + +Upon the expiry of the Evaluation License Term, Licensee must either +discontinue use of the relevant Licensed Software or acquire a commercial +Development License or QA Tools License specified herein. + +4. THIRD-PARTY SOFTWARE + +The Licensed Software may provide links or access to third party libraries or +code (collectively "Third-Party Software") to implement various functions. +Third-Party Software does not, however, comprise part of the Licensed Software, +but is provided to Licensee complimentary and use thereof is discretionary for +the Licensee. Third-Party Software will be listed in the ".../src/3rdparty" +source tree delivered with the Licensed Software or documented in the Licensed +Software, as such may be amended from time to time. Licensee acknowledges that +use or distribution of Third-Party Software is in all respects subject to +applicable license terms of applicable third-party right holders. + +5. PRE-RELEASE CODE + +The Licensed Software may contain pre-release code and functionality, or sample +code marked or otherwise stated with appropriate designation such as +"Technology Preview", "Alpha", "Beta", "Sample", "Example" etc. +("Pre-Release Code"). + +Such Pre-Release Code may be present complimentary for the Licensee, in order +to provide experimental support or information for new platforms or +preliminary versions of one or more new functionalities or for other similar +reasons. The Pre-Release Code may not be at the level of performance and +compatibility of a final, generally available, product offering. The +Pre-Release Code may not operate correctly, may contain errors and may be +substantially modified by The Qt Company prior to the first commercial +product release, if any. The Qt Company is under no obligation to make +Pre-Release Code commercially available, or provide any Support or Updates +relating thereto. The Qt Company assumes no liability whatsoever regarding +any Pre-Release Code, but any use thereof is exclusively at Licensee's own risk +and expense. + +For clarity, unless Licensed Software specifies different license terms for the +respective Pre-Release Code, the Licensee is entitled to use such pre-release +code pursuant to Section 3, just like other Licensed Software. + +6. LIMITED WARRANTY AND WARRANTY DISCLAIMER + +The Qt Company hereby represents and warrants that (i) it has the power and +authority to grant the rights and licenses granted to Licensee under this +Agreement, and (ii) Licensed Software will operate materially in accordance +with its specifications. + +Except as set forth above, the Licensed Software is licensed to Licensee "as +is" and Licensee's exclusive remedy and The Qt Company's entire liability for +errors in the Licensed Software shall be limited, at The Qt Company's option, +to correction of the error, replacement of the Licensed Software or return of +the applicable fees paid for the defective Licensed Software for the time +period during which the License is not able to utilize the Licensed Software +under the terms of this Agreement. + +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE QT COMPANY ON BEHALF OF +ITSELF AND ITS LICENSORS, SUPPLIERS AND AFFILIATES, DISCLAIMS ALL OTHER +WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND +NON-INFRINGEMENT WITH REGARD TO THE LICENSED SOFTWARE. THE QT COMPANY DOES NOT +WARRANT THAT THE LICENSED SOFTWARE WILL SATISFY LICENSEE'S REQUIREMENTS OR THAT +IT WILL OPERATE WITHOUT DEFECT OR ERROR OR THAT THE OPERATION THEREOF WILL BE +UNINTERRUPTED. + +7. LIMITATION OF LIABILITY + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, AND (II) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL EITHER PARTY BE LIABLE TO THE OTHER PARTY FOR ANY LOSS OF PROFIT, +LOSS OF DATA, LOSS OF BUSINESS OR GOODWILL OR ANY OTHER INDIRECT, SPECIAL, +CONSEQUENTIAL, INCIDENTAL OR PUNITIVE COST, DAMAGES OR EXPENSE OF ANY KIND, +HOWSOEVER ARISING UNDER OR IN CONNECTION WITH THIS AGREEMENT. + +EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, AND (II) +BREACH OF CONFIDENTIALITY, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL EITHER PARTY'S TOTAL AGGREGATE LIABILITY UNDER THIS AGREEMENT +EXCEED THE AGGREGATE LICENSE FEES PAID OR PAYABLE TO THE QT COMPANY BY LICENSEE +DURING THE DEVELOPMENT LICENSE TERM DURING WHICH THE EVENT RESULTING IN SUCH +LIABILITY OCCURRED. + +THE PROVISIONS OF THIS SECTION 7 ALLOCATE THE RISKS UNDER THIS AGREEMENT +BETWEEN THE QT COMPANY AND LICENSEE AND THE PARTIES HAVE RELIED UPON THE +LIMITATIONS SET FORTH HEREIN IN DETERMINING WHETHER TO ENTER INTO THIS +AGREEMENT. + +NOTWITHSTANDING ANYTHING TO THE CONTRARY IN THIS AGREEMENT, LICENSEE SHALL +ALWAYS BE LIABLE TO PAY THE APPLICABLE LICENSE FEES CORRESPONDING TO ITS +ACTUAL USE OF LICENSED SOFTWARE. + +8. SUPPORT, UPDATES AND ONLINE SERVICES + +Upon due payment of the agreed License Fees the Licensee will be eligible to +receive Support and Updates and to use the Online Services during the agreed +Development License Term or other agreed fixed time period. Support is +provided according to agreed support level and subject to applicable +requirements and restrictions, as specified in the Support Terms. + +Unless otherwise decided by The Qt Company at its free and absolute discretion, +Upgrades will not be included in the Support but may be available subject to +additional fees. + +From time to time The Qt Company may change the Support Terms, provided that +during the respective ongoing Support period the level of Support may not be +reduced without the consent of the Licensee. + +Unless otherwise agreed, The Qt Company shall not be responsible for providing +any service or support to Customers. + +9. CONFIDENTIALITY + +Each Party acknowledges that during the Agreement Term each Party may receive +information about the other Party's business, business methods, business plans, +customers, business relations, technology, and other information, including the +terms of this Agreement, that is confidential and of great value to the other +Party, and the value of which would be significantly reduced if disclosed to +third parties ("Confidential Information"). Accordingly, when a Party (the +"Receiving Party") receives Confidential Information from the other Party (the +"Disclosing Party"), the Receiving Party shall only disclose such information +to employees and Contractors on a need to know basis, and shall cause its +employees and employees of its Affiliates to: (i) maintain any and all +Confidential Information in confidence; (ii) not disclose the Confidential +Information to a third party without the Disclosing Party's prior written +approval; and (iii) not, directly or indirectly, use the Confidential +Information for any purpose other than for exercising its rights and +fulfilling its responsibilities pursuant to this Agreement. Each Party shall +take reasonable measures to protect the Confidential Information of the other +Party, which measures shall not be less than the measures taken by such Party +to protect its own confidential and proprietary information. + +Obligation of confidentiality shall not apply to information that (i) is or +becomes generally known to the public through no act or omission of the +Receiving Party; (ii) was in the Receiving Party's lawful possession prior to +the disclosure hereunder and was not subject to limitations on disclosure or +use; (iii) is developed independently by employees or Contractors of the +Receiving Party or other persons working for the Receiving Party who have not +had access to the Confidential Information of the Disclosing Party, as proven +by the written records of the Receiving Party; (iv) is lawfully disclosed to +the Receiving Party without restrictions, by a third party not under an +obligation of confidentiality; or (v) the Receiving Party is legally compelled +to disclose, in which case the Receiving Party shall notify the Disclosing +Party of such compelled disclosure and assert the privileged and confidential +nature of the information and cooperate fully with the Disclosing Party to +limit the scope of disclosure and the dissemination of disclosed Confidential +Information to the minimum extent necessary. + +The obligations under this Section 9 shall continue to remain in force for a +period of five (5) years after the last disclosure, and, with respect to trade +secrets, for so long as such trade secrets are protected under applicable trade +secret laws. + +10. FEES, DELIVERY AND PAYMENT + +10.1. License Fees + +License Fees are described in The Qt Company's standard price list, quote or +Purchase Order confirmation or in an Appendix 2 hereto, as the case may be. + +Unless otherwise expressly provided in this Agreement, the License Fees shall +not be refunded or claimed as a credit in any event or for any reason +whatsoever. + +10.2. Ordering Licenses + +Licensee may purchase Development Licenses, Distribution Licenses and QA Tools +Licenses pursuant to agreed pricing terms or, if no specific pricing terms have +been agreed upon, at The Qt Company's standard pricing terms applicable at the +time of purchase. + +Unless expressly otherwise agreed, any price or other term quoted to the +Licensee or specified herein shall only be valid for the thirty (30) days from +the effective date of this Agreement, Appendix 2 or the date of the quote, as +applicable. + +Licensee shall submit all purchase orders for Development Licenses and +Distribution Licenses to The Qt Company by email or any other method acceptable +to The Qt Company (each such order is referred to herein as a "Purchase Order") +for confirmation, whereupon the Purchase Order shall become binding between the +Parties. + +Licensee acknowledges and agrees that all Purchase Orders for Licensed Software +the Licensee makes during the Agreement Term shall be governed exclusively +under the terms of this Agreement. + +10.3. Distribution License Packs + +Unless otherwise agreed, Distribution Licenses shall be purchased by way of +Distribution License Packs. + +Upon due payment of the ordered Distribution License Pack(s), the Licensee will +have an account of Distribution Licenses available for distributing the +Redistributables in accordance with this Agreement. + +Each time Licensee distributes a copy of Redistributables, then one +Distribution License is used, and Licensee's account of available Distribution +Licenses is decreased accordingly. + +Licensee may distribute copies of the Redistributables so long as Licensee has +Distribution Licenses remaining on its account. + +10.4. Payment Terms + +License Fees and any other charges under this Agreement shall be paid by +Licensee no later than thirty (30) days from the date of the applicable invoice +from The Qt Company. + +The Qt Company will submit an invoice to Licensee after the date of this +Agreement and/or after The Qt Company receives a Purchase Order from Licensee. + +A late payment charge of the lower of (a) one percent per month; or (b) the +interest rate stipulated by applicable law, shall be charged on any unpaid +balances that remain past due and which have not been disputed by the Licensee +in good faith. + +10.5. Taxes + +All License Fees and other charges payable hereunder are gross amounts but +exclusive of any value added tax, use tax, sales tax, withholding tax and other +taxes, duties or tariffs ("Taxes") levied directly for the sale, delivery or +use of Licensed Software hereunder pursuant to any applicable law. Such +applicable Taxes shall be paid by Licensee to The Qt Company, or, where +applicable, in lieu of payment of such Taxes to The Qt Company, Licensee shall +provide an exemption certificate to The Qt Company and any applicable +authority. + +11. RECORD-KEEPING AND REPORTING OBLIGATIONS; AUDIT RIGHTS + +11.1. Licensee's Record-keeping + +Licensee shall at all times during the Agreement Term and for a period of two +(2) years thereafter maintain Licensee's Records in an accurate and up-to-date +form. Licensee's Records shall be adequate to reasonably enable The Qt Company +to determine Licensee's compliance with the provisions of this Agreement. The +records shall conform to general good accounting practices. + +Licensee shall, within thirty (30) days from receiving The Qt Company's request +to that effect, deliver to The Qt Company a report based on Licensee's Records, +such report to contain information, in sufficient detail, on (i) number and +identity of users working with Licensed Software or Open Source Qt, (ii) copies +of Redistributables distributed by Licensee during the most recent calendar +quarter and/or any other term specified by The Qt Company, , and (iii) any +other information pertaining to Licensee's compliance with the terms of this +Agreement (like e.g. information on products and/or projects relating to use of +Distribution Licenses), as The Qt Company may reasonably require from time to +time. + +11.2. The Qt Company's Audit Rights + +The Qt Company or an independent auditor acting on behalf of The Qt Company's, +may, upon at least thirty (30) days' prior written notice and at its expense, +audit Licensee with respect to the Licensee's use of the Licensed Software, but +not more frequently than once during each 6-month period. Such audit may be +conducted by mail, electronic means or through an in-person visit to Licensee's +place of business. Any possible in-person audit shall be conducted during +regular business hours at Licensee's facilities and shall not unreasonably +interfere with Licensee's business activities and shall be limited in scope to +verify Licensee's compliance with the terms of this Agreement. The Qt Company +or the independent auditor acting on behalf of The Qt Company shall be entitled +to inspect Licensee's Records and conduct necessary interviews of Licensee's +relevant employees and Contractors. All such Licensee's Records and use thereof +shall be subject to an obligation of confidentiality under this Agreement. + +If an audit reveals that Licensee is using the Licensed Software beyond scope +of the licenses Licensee has paid for, Licensee shall pay to The Qt Company any +amounts owed for such unauthorized use within 30 days from receipt of the +corresponding invoice from The Qt Company. + +In addition, in the event the audit reveals a material violation of the terms +of this Agreement (without limitation, either (i) underpayment of more than 10 +% of License Fees or 10,000 euros (whichever is more) or (ii) distribution of +products, which include or result from Prohibited Combination, shall be deemed +a material violation for purposes of this section), then the Licensee shall +pay The Qt Company's reasonable cost of conducting such audit. + +12. TERM AND TERMINATION + +12.1. Agreement Term + +This Agreement shall enter into force upon due acceptance by both Parties and +remain in force until terminated pursuant to the terms of this Section 12 +("Agreement Term"). + +12.2. Termination for breach and suspension of rights +Either Party shall have the right to terminate this Agreement upon thirty (30) +days prior written notice if the other Party commits a material breach of any +obligation of this Agreement and fails to remedy such breach within such notice +period. + +Instead of termination, The Qt Company shall have the right to suspend or +withhold grants of all rights to the Licensed Software hereunder, including but +not limited to the Development Licenses, Distribution License, and Support, +should Licensee fail to make payment in timely fashion or otherwise violates or +is reasonably suspected to violate its obligations or terms of this Agreement, +and where such violation or breach is not cured within ten (10) business days +following The Qt Company's written notice thereof. + +12.3. Termination for insolvency + +Either Party shall have the right to terminate this Agreement immediately upon +written notice in the event that the other Party becomes insolvent, files for +any form of bankruptcy, makes any assignment for the benefit of creditors, has +a receiver, administrative receiver or officer appointed over the whole or a +substantial part of its assets, ceases to conduct business, or an act +equivalent to any of the above occurs under the laws of the jurisdiction of the +other Party. + +12.4. Parties' Rights and Duties upon Termination + +Upon expiry or termination of the Agreement, Licensee shall cease and shall +cause all Designated Users (including those of its Affiliates' and +Contractors') to cease using the Licensed Software under this Agreement. For +clarity, a Development License of a Designated User or a QA Tools License, and +all rights relating thereto, shall always terminate at the expiry of the +respective Development License Term, even if the Agreement continues to remain +in force. + +Upon such termination the Licensee shall destroy or return to The Qt Company +all copies of the Licensed Software and all related materials and will certify +the same by Licensee's duly authorized officer to The Qt Company upon its +request, provided however that Licensee may retain and exploit such copies of +the Licensed Software as it may reasonably require in providing continued +support to Customers. + +Except when this Agreement is terminated by The Qt Company due to Licensee's +material breach as set forth in Section 12.2, the Licensee may continue +distribution of Applications and Devices under the terms of this Agreement +despite the termination of this Agreement. In such event the terms hereof will +continue to be applicable and govern any such distribution of Applications and +Devices beyond the expiry or termination of this Agreement. In case of +termination by The Qt Company due to Licensee's material breach, Licensee must +cease any distribution of Applications and Devices at the date of termination +of this Agreement. + +Expiry or termination of this Agreement for any reason whatsoever shall not +relieve Licensee of its obligation to pay any License Fees accrued or payable +to The Qt Company prior to the effective date of termination, and Licensee pay +to The Qt Company all such fees within 30 days from the effective date of +termination of this Agreement. + +Termination of this Agreement shall not affect any rights of Customers to +continue use of Applications and Devices (and therein incorporated +Redistributables). + +12.5. Extension of Rights under Special Circumstances + +In the event of The Qt Company choosing not to renew the Development License(s) +or QA Tools Licenses, as set forth in Section 3.1 and 3.5 respectively, and +where such decision of non-renewal is not due to any ongoing breach or alleged +breach (as reasonably determined by The Qt Company) by Licensee of the terms of +this Agreement or any applicable license terms of Open Source Qt, then all +valid and affected Development Licenses and QA Tools licenses possessed by the +Licensee at such date shall be extended to be valid in perpetuity under the +terms of this Agreement and Licensee is entitled to purchase additional +licenses as set forth in Section 10.2. + +In the event The Qt Company is declared bankrupt under a final, non-cancellable +decision by relevant court of law, and this Agreement is not, at the date of +expiry of the Development License(s) or QA Tools Licenses, assigned to party, +who has assumed The Qt Company's position as a legitimate licensor of Licensed +Software under this Agreement, then all valid Development Licenses and QA Tools +Licenses possessed by the Licensee at such date of expiry, and which the +Licensee has not notified for expiry, shall be extended to be valid in +perpetuity under the terms of this Agreement. + +For clarity, in case of an extension under this Section 12.5, any such +extension shall not apply to The Qt Company's Support obligations, but Support +shall be provided only up until the end of the respective fixed Development +License Term regardless of the extension of relevant Development License or QA +Tools License, unless otherwise agreed between the Parties. + +13. GOVERNING LAW AND LEGAL VENUE + +In the event this Agreement is in the name of The Qt Company Inc., a Delaware +Corporation, then: + (i) this Agreement shall be construed and interpreted in accordance with + the laws of the State of California, USA, excluding its choice of law + provisions; + (ii) the United Nations Convention on Contracts for the International Sale + of Goods will not apply to this Agreement; and + (iii) any dispute, claim or controversy arising out of or relating to this + Agreement or the breach, termination, enforcement, interpretation or + validity thereof, including the determination of the scope or + applicability of this Agreement to arbitrate, shall be determined by + arbitration in San Francisco, USA, before one arbitrator. The + arbitration shall be administered by JAMS pursuant to JAMS' Streamlined + Arbitration Rules and Procedures. Judgment on the Award may be entered + in any court having jurisdiction. This Section shall not preclude + parties from seeking provisional remedies in aid of arbitration from a + court of appropriate jurisdiction. + +In the event this Agreement is in the name of The Qt Company Ltd., a Finnish +Company, then: + (i) this Agreement shall be construed and interpreted in accordance with + the laws of Finland, excluding its choice of law provisions; + (ii) the United Nations Convention on Contracts for the International Sale + of Goods will not apply to this Agreement; and + (iii) any disputes, controversy or claim arising out of or relating to this + Agreement, or the breach, termination or validity thereof shall be + finally settled by arbitration in accordance with the Arbitration Rules + of International Chamber of Commerce. The arbitration tribunal shall + consist of one (1), or if either Party so requires, of three (3), + arbitrators. The award shall be final and binding and enforceable in + any court of competent jurisdiction. The arbitration shall be held in + Helsinki, Finland and the process shall be conducted in the English + language. This Section shall not preclude parties from seeking + provisional remedies in aid of arbitration from a court of appropriate + jurisdiction. + +14. GENERAL PROVISIONS + +14.1. No Assignment + +Except in the case of a merger or sale of substantially all of its corporate +assets, Licensee shall not be entitled to assign or transfer all or any of its +rights, benefits and obligations under this Agreement without the prior written +consent of The Qt Company, which shall not be unreasonably withheld or delayed. +The Qt Company shall be entitled to freely assign or transfer any of its +rights, benefits or obligations under this Agreement. + +14.2. No Third-Party Representations + +Licensee shall make no representations or warranties concerning the Licensed +Software on behalf of The Qt Company. Any representation or warranty Licensee +makes or purports to make on The Qt Company's behalf shall be void as to +The Qt Company. + +14.3. Surviving Sections + +Any terms and conditions that by their nature or otherwise reasonably should +survive termination of this Agreement shall so be deemed to survive. Such +sections include especially the following: 1, 2, 6, 7, 9, 11, 12.4, 13 and 14. + +14.4. Entire Agreement + +This Agreement, the Appendices hereto, the License Certificate and any +applicable quote and Purchase Order accepted by The Qt Company constitute the +complete agreement between the Parties and supersedes all prior or +contemporaneous discussions, representations, and proposals, written or oral, +with respect to the subject matters discussed herein. + +In the event of any conflict or inconsistency between this Agreement and any +Purchase Order, the terms of this Agreement will prevail over the terms of the +Purchase Order with respect to such conflict or inconsistency. + +Parties specifically acknowledge and agree that this Agreement prevails over +any click-to-accept or similar agreements the Designated Users may need to +accept online upon download of the Licensed Software, as may be required by +The Qt Company's applicable processes relating to Licensed Software. + +14.5. Modifications + +No modification of this Agreement shall be effective unless contained in a +writing executed by an authorized representative of each Party. No term or +condition contained in Licensee's Purchase Order ("Deviating Terms") shall +apply unless The Qt Company has expressly agreed such Deviating Terms in +writing. Unless and to the extent expressly agreed by The Qt Company, any such +Deviating Terms shall be deemed void and with no legal effect. For clarity, +delivery of the Licensed Software following the receipt of the Purchase Order +including Deviating Terms shall not constitute acceptance of such Deviating +Terms. + +14.6. Force Majeure + +Except for the payment obligations hereunder, neither Party shall be liable to +the other for any delay or non-performance of its obligations hereunder in the +event and to the extent that such delay or non-performance is due to an event +of act of God, terrorist attack or other similar unforeseeable catastrophic +event that prevents either Party for fulfilling its obligations under this +Agreement and which such Party cannot avoid or circumvent ("Force Majeure +Event"). If the Force Majeure Event results in a delay or non-performance of a +Party for a period of three (3) months or longer, then either Party shall have +the right to terminate this Agreement with immediate effect without any +liability (except for the obligations of payment arising prior to the event of +Force Majeure) towards the other Party. + +14.7. Notices + +Any notice given by one Party to the other shall be deemed properly given and +deemed received if specifically acknowledged by the receiving Party in writing +or when successfully delivered to the recipient by hand, fax, or special +courier during normal business hours on a business day to the addresses +specified for each Party on the signature page. Each communication and document +made or delivered by one Party to the other Party pursuant to this Agreement +shall be in the English language. + +14.8. Export Control + +Licensee acknowledges that the Redistributables, as incorporated in +Applications or Devices, may be subject to export control restrictions under +the applicable laws of respective countries. Licensee shall fully comply with +all applicable export license restrictions and requirements as well as with all +laws and regulations relating to the Redistributables and exercise of licenses +hereunder and shall procure all necessary governmental authorizations, +including without limitation, all necessary licenses, approvals, permissions or +consents, where necessary for the re-exportation of the Redistributables, +Applications and/or Devices. + +14.9. No Implied License + +There are no implied licenses or other implied rights granted under this +Agreement, and all rights, save for those expressly granted hereunder, shall +remain with The Qt Company and its licensors. In addition, no licenses or +immunities are granted to the combination of the Licensed Software with any +other software or hardware not delivered by The Qt Company under this +Agreement. + +14.10. Attorney Fees + +The prevailing Party in any action to enforce this Agreement shall be entitled +to recover its attorney's fees and costs in connection with such action, as to +be ordered by the relevant dispute resolution body. + +14.11. Privacy + +Licensee acknowledges and agrees that for the purpose of this Agreement, +The Qt Company may collect, use, transfer and disclose personal data pertaining +to Designated Users as well as any other employees and directors of the +Licensee and its Contractors relevant for carrying out the intent of this +Agreement. Such personal data will be primarily collected from the relevant +individuals but may be collected also from Licensee (e.g. in the course of +Licensee's reporting obligations). The Parties acknowledge that as +The Qt Company determines the purpose and means for such collection and +processing of the applicable personal data, The Qt Company shall be regarded as +the Data Controller under the applicable Data Protection Legislation. +The Qt Company shall process any such personal data in accordance with its +privacy and security policies and practices, which will comply with all +applicable requirements of the Data Protection Legislation. + +14.12. Severability + +If any provision of this Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this Agreement shall +otherwise remain in full force and effect and enforceable. + +14.13. Marketing Rights + +Parties have agreed upon Marketing Rights pursuant to Appendix 7, if any. + + + + +APPENDICES +The Agreement includes following Appendices 1-10, as applicable. +- Appendix 1: Licensed Software details +- Appendix 2: Pricing +- Appendix 3: Add-on Software details (optional) +- Appendix 4: Small business and startup Licenses (optional) +- Appendix 5: Non-commercial and educational Licenses (optional) +- Appendix 6: License Reporting (optional) +- Appendix 7: Marketing Rights (optional) +- Appendix 8: Intentionally left blank (optional) +- Appendix 9: Support Terms +- Appendix 10: Conversion from legacy Licenses to Subscription (optional) + + +APPENDIX 1: LICENSED SOFTWARE + +The modules and/or tools that are included in the latest publicly available +version of the respective product at the effective date of this Agreement- Qt +for Application Development Professional (ADP), Qt for Application Development +Enterprise (ADE), Qt for Device Creation Professional (DCP), Qt for Device +Creation Enterprise (DCE), - are marked with "X" in the below table. The +modules and tools are specific to each product version respectively and may +vary from version to version. Modules and tools included in the latest publicly +available version of the respective product at any given time are listed in +Appendix 1 of the latest version of this Agreement available at +www.qt.io/terms-conditions/. If a new version of Licensed Software does not +include a module or tool present in an older version which Licensee is entitled +to use under a valid license from The Qt Company, then Licensee will continue +to have such right during the Term of this Agreement. In the event a new +version of the Licensed Software adds modules or tools to any previous +version(s), Licensee's rights will extend to cover also such additional modules +and tools. + +Parts of the product that are permitted for distribution in object-code form +only ("Redistributables") are marked with "R" in the below table. + ++----------------------------------------------------------+ +| Modules / Tools | ADP | ADE | DCP | DCE | ++----------------------------------------------------------+ +| Active Qt | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt 3D | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt 5 Core Compatibility APIs | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Android Extras | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Bluetooth | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Canvas 3D | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Charts | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Concurrent | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Core | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Data Visualization | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt D-Bus | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt for Python | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt for WebAssembly | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Gamepad | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Graphical Effects | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt GUI | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Help | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Image Formats | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Location | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Lottie Animation | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Mac Extras | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Multimedia | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Multimedia Widgets | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Network | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Network Authorization | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt NFC | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt OpenGL | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt PDF | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Platform Headers | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Positioning | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Print Support | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Purchasing | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt QML | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick 3D | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Controls 1 | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Controls | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Dialogs | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Extras | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Layouts | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Test | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Timeline | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick WebGL | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Widgets | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Remote Objects | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Script | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Script Tools | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt SCXML | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Sensors | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Serial Bus | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Serial Port | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Shader Tools | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Speech | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt State Machine | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt SQL | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt SVG | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Test | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt UI Tools | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Virtual Keyboard | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Wayland Compositor | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt WebChannel | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt WebEngine | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt WebSockets | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt WebView | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Widgets | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Windows Extras | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt X11 Extras | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt XML | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt XML Patterns | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Designer (Qt Widget Designer) | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Linguist | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt Assistant | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| lupdate | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| lrelease | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| lconvert | X,R | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt MQTT | | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt KNX | | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt OPC UA | | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Qt CoAP | | X,R | X,R | X,R | ++----------------------------------------------------------+ +| Boot 2 Qt stacks | | | X,R | X,R | ++----------------------------------------------------------+ +| Qt OTA | | | X,R | X,R | ++----------------------------------------------------------+ +| Device Utilities | | | X,R | X,R | ++----------------------------------------------------------+ +| Qt Debugging Bridge (QBD) Daemon | | | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Ultralite Controls | | | X,R | X,R | ++----------------------------------------------------------+ +| Qt Quick Ultralite | | | X,R | X,R | ++----------------------------------------------------------+ +| Qt Safe Renderer (QSR) | | | | X,R | ++----------------------------------------------------------+ +| Qt Application Manager | | | | X,R | ++----------------------------------------------------------+ +| Qt Interface Framework | | | | X,R | ++----------------------------------------------------------+ +| Neptune Reference UI | | | | X,R | ++----------------------------------------------------------+ +| Qt for Android Automotive (QAA) | | | | X,R | ++----------------------------------------------------------+ +| Qt Creator | X | X | X | X | ++----------------------------------------------------------+ +| Qt Design Studio Professional | X | X | X | X | ++----------------------------------------------------------+ +| androiddeployqt | X | X | X | X | ++----------------------------------------------------------+ +| androidtestrunner | X | X | X | X | ++----------------------------------------------------------+ +| canbusutil | X | X | X | X | ++----------------------------------------------------------+ +| dumpcpp | X | X | X | X | ++----------------------------------------------------------+ +| dumpdoc | X | X | X | X | ++----------------------------------------------------------+ +| fixqt4headers.pl | X | X | X | X | ++----------------------------------------------------------+ +| idc | X | X | X | X | ++----------------------------------------------------------+ +| moc | X | X | X | X | ++----------------------------------------------------------+ +| pixeltool | X | X | X | X | ++----------------------------------------------------------+ +| qdbus | X | X | X | X | ++----------------------------------------------------------+ +| qdbuscpp2xml | X | X | X | X | ++----------------------------------------------------------+ +| qdbusviwer | X | X | X | X | ++----------------------------------------------------------+ +| qdbusxml2cpp | X | X | X | X | ++----------------------------------------------------------+ +| qdistancefieldgenerator | X | X | X | X | ++----------------------------------------------------------+ +| qdoc | X | X | X | X | ++----------------------------------------------------------+ +| qhelpgenerator | X | X | X | X | ++----------------------------------------------------------+ +| qlalr | X | X | X | X | ++----------------------------------------------------------+ +| qmake | X | X | X | X | ++----------------------------------------------------------+ +| qml | X | X | X | X | ++----------------------------------------------------------+ +| qmlcachegen | X | X | X | X | ++----------------------------------------------------------+ +| qmldom | X | X | X | X | ++----------------------------------------------------------+ +| qmleasing | X | X | X | X | ++----------------------------------------------------------+ +| qmlformat | X | X | X | X | ++----------------------------------------------------------+ +| qmllint | X | X | X | X | ++----------------------------------------------------------+ +| qmlpreview | X | X | X | X | ++----------------------------------------------------------+ +| qmlprofiler | X | X | X | X | ++----------------------------------------------------------+ +| qmlscene | X | X | X | X | ++----------------------------------------------------------+ +| qmltestrunner | X | X | X | X | ++----------------------------------------------------------+ +| qmltime | X | X | X | X | ++----------------------------------------------------------+ +| qmlviewer | X | X | X | X | ++----------------------------------------------------------+ +| qtdiag | X | X | X | X | ++----------------------------------------------------------+ +| qtpaths | X | X | X | X | ++----------------------------------------------------------+ +| qtplugininfo | X | X | X | X | ++----------------------------------------------------------+ +| qvkgen | X | X | X | X | ++----------------------------------------------------------+ +| rcc | X | X | X | X | ++----------------------------------------------------------+ +| tracegen | X | X | X | X | ++----------------------------------------------------------+ +| uic | X | X | X | X | ++----------------------------------------------------------+ +| windeployqt | X | X | X | X | ++----------------------------------------------------------+ +| Target toolchains | | | X | X | ++----------------------------------------------------------+ +| Qt Debugging Bridge Host Tools | | | X | X | ++----------------------------------------------------------+ +| qtconfig-gui | | | X | X | ++----------------------------------------------------------+ +| Qt Emulator | | | X | X | ++----------------------------------------------------------+ +| Qt Creator VxWorks plugin | | | X | X | ++----------------------------------------------------------+ +| Qt Creator plugin for Qt | | | | X | +| Application Manager | | | | | ++----------------------------------------------------------+ +| qmlinterfacegenerator | | | | X | ++----------------------------------------------------------+ +| qmltocpp | | | | X | ++----------------------------------------------------------+ +| qulfontcompiler | | | | X | ++----------------------------------------------------------+ +| Qt Deployment Server | | | | X | ++----------------------------------------------------------+ + + +Rights for Application and Device use cases + +Following table summarizes the rights afforded by different products of the +Licensed Software to create and distribute Applications and Devices as defined +in this Agreement (X marks for rights): + ++---------------------------------------------------------------+ +| | Applications | Devices | ++---------------------------------------------------------------+ +| ADP | X | | ++---------------------------------------------------------------+ +| ADE | X | | ++---------------------------------------------------------------+ +| DCP | X | X | ++---------------------------------------------------------------+ +| DCE | X | X | ++---------------------------------------------------------------+ + +Licensed Software: Designer tools and modules + +The modules and/or tools that are included in the respective product - Qt for +Design Studio Professional (DSP), Qt for Design Studio Enterprise (DSE) - are +marked with "X" in the below table. + +Designer tools provides no Redistributables. + ++---------------------------------------------+ +| | DSP | DSE | ++---------------------------------------------+ +| Qt Design Studio | X | X | ++---------------------------------------------+ +| Qt Design Bridges | | X | ++---------------------------------------------+ +| QML Live on host | X | X | ++---------------------------------------------+ +| QML Live on target | | X | ++---------------------------------------------+ +| Variant Management | | X | ++---------------------------------------------+ +| Shader creation tools | | X | ++---------------------------------------------+ +| Profiling tools | | X | ++---------------------------------------------+ +| Simulink support | | X | ++---------------------------------------------+ + + +Both DSP and DSE can be used to create an user interface for use cases covered +by ADP, ADE, DCP and DCE. + +Licensed Software: QA Tools + +The modules and/or tools that are included in the respective QA Tools product +- Squish (both Tester and execution Licenses), Coco or Test Center - are marked +with "X" in the below table. Optional features that will need additional +licenses are marked with "O". QA Tools include no Redistributables. + ++---------------------------------------------------------------------+ +| | Squish | Coco | Test Center | ++---------------------------------------------------------------------+ +| Squish IDE | X | | | ++---------------------------------------------------------------------+ +| QA Tool-specific command line tools | X | X | X | ++---------------------------------------------------------------------+ +| Coverage Browser | | X | | ++---------------------------------------------------------------------+ +| HTML interface | | | X | ++---------------------------------------------------------------------+ +| Qt Support Module | X | | | ++---------------------------------------------------------------------+ +| Java support module | X | | | ++---------------------------------------------------------------------+ +| Windows support module | X | | | ++---------------------------------------------------------------------+ +| iOS support module | X | | | ++---------------------------------------------------------------------+ +| Android support module | X | | | ++---------------------------------------------------------------------+ +| Web support module | X | | | ++---------------------------------------------------------------------+ +| macOS support module | X | | | ++---------------------------------------------------------------------+ +| VNC support module | X | | | ++---------------------------------------------------------------------+ +| MCU support module | X | | | ++---------------------------------------------------------------------+ +| C and C++ language module | | X | | ++---------------------------------------------------------------------+ +| C# language module | | X | | ++---------------------------------------------------------------------+ +| QML language module | | X | | ++---------------------------------------------------------------------+ +| Tester Cross-Compilation Add-On | O | O | | ++---------------------------------------------------------------------+ + +License capabilities for Squish + +License capabilities that are included in the Squish Tester and Execution +Licenses are marked with "X" in the below table. + ++-----------------------------------------------------------------------------+ +| | Squish Tester License | Squish Execution License | ++-----------------------------------------------------------------------------+ +| Ability to create, edit, | X | | +| and debug test cas | | | ++-----------------------------------------------------------------------------+ +| Ability to execute test | X | X | +| cases | | | ++-----------------------------------------------------------------------------+ + +Install and use capabilities for QA Tools + +Install and use capabilities that are included in the respective QA Tools +products are defined in the below table. + ++-----------------------------------------------------------------------------+ +| | Squish | Squish | Coco | Test | +| | Tester | Execution | License | Center | +| | License | License | | License | ++-----------------------------------------------------------------------------+ +| Number of installation | Unlimited | Unlimited | Unlimited | One(1) | +| instances per license | | | | | ++-----------------------------------------------------------------------------+ +| Number of concurrent | Limited by| Limited by | Limited by | Limited by | +| users | number of | number of | number of | number of | +| | Squish | Squish | Coco | Test Center | +| | Tester | Execution | Tester | Licenses | +| | Licenses | Licenses | Licenses | | ++-----------------------------------------------------------------------------+ + + +APPENDIX 2: PRICING + +Separate template + +APPENDIX 3: ADD-ON PRODUCTS TO LICENSED SOFTWARE + +Intentionally left blank. + +APPENDIX 4: SMALL BUSINESS AND STARTUP + +The provisions of this Appendix 4 are applicable for companies with an annual +revenue, including funding, equivalent to maximum of 250,000 USD (in applicable +currency) during the latest full calendar year, as evidenced by duly audited +records of the Licensee and approved by The Qt Company ("Start-up Company"). + +Start-up Companies are qualified for a discounted License Fee for maximum of +four (4) Development Licenses ("Start-up Development License") unless otherwise +agreed between the parties. + +Start-up Development License entitles the respective Designated User for +Support only for Install Support as defined in Appendix 9, Support Terms. + +Upon expiry of the respective Development License Term, the Start-up +Development Licenses shall be automatically extended, pursuant to Section 3.1 +of the Agreement, for a Renewal Term either as new Start-up Development +Licenses (if the Licensee still qualifies as a Start-up Company), or as normal +then standard list price Development Licenses (if the Licensee no longer +qualifies as a Start-up Company). + +APPENDIX 5: NON-COMMERCIAL AND EDUCATIONAL USE + +The provisions of this Appendix 5 are applicable for non-commercial use of the +Licensed Software by the Licensee. + +For the purpose of this Appendix 5, the following additional definitions +(replacing the relevant definition of the Agreement, where applicable) shall be +applicable: + +"Demo Units" shall mean (i) hardware development platform, which incorporates +the Licensed Software along with Licensee's software and/or hardware, and (ii) +prototype versions of Applications or Devices. + +"Designated User(s)" shall mean the employees and students of the Licensee. + +"Licensee Products" shall mean Applications and/or Devices. + +"Permitted Purpose" shall mean (i) Licensee's internal evaluation and testing +of Licensed Software, (ii) building Demo Units as well as (iii) educational +use. + +"Agreement Term" shall mean a period of twelve (12) months or any such other +period as may be agreed between the Parties. + +For the purpose of this Appendix 5, the following changes shall be agreed with +respect to relevant Sections of the Agreement: + I. Recital (A) shall be replaced in its entirety to read as follows: + "(A) Licensee wishes to use the Licensed Software for the Permitted + Purpose." + II. Section 3.1 shall be replaced in its entirety to read as follows: + "The Qt Company grants to Licensee a personal, non-exclusive, + non-transferable, revocable, royalty-free license, valid for the + Agreement Term, to use, modify and copy the Licensed Software solely + for the Permitted Purpose. Licensee may install copies of the Licensed + Software on five (5) computers per Designated User, provided that only + the Designated Users who have a valid Development License may use the + Licensed Software. Licensee may demonstrate the Demo Units, provided + that such demonstrations must be conducted by Licensee, and the Demo + Units must remain in Licensee's possession and under Licensee's control + at all times. + For clarity, this Agreement does not (i) entitle Licensee to use + Licensed Software to create Applications or Devices (other than + prototypes thereof) or (ii) carry any distribution rights to Licensee, + but such rights are subject to and conditional upon conclusion of a + separate license agreement with The Qt Company." + III. Sections 3.2, 3.3, 3.5, 3.6, 8 and 10 shall be deleted. + IV. Section 3.4 shall be replaced in its entirety to read as follows: + "Licensee shall not: + - remove or alter any copyright, trademark or other proprietary rights + notice contained in any portion of the Licensed Software; + - transfer, publish, sublicense, disclose, display or otherwise make + the Licensed Software available to any third party (except that + Licensee may demonstrate the Demo Units pursuant to Section 3.1); + - in any way combine, incorporate or integrate Licensed Software with, + or use Licensed Software for creation of, any software created with + or incorporating Open Source Qt; Licensee shall cause all Designated + Users who make use of the licenses granted under this Agreement, to + be contractually bound to comply with the relevant terms of this + Agreement and not to use the Licensed Software beyond the terms + hereof. Licensee shall be responsible for any and all actions and + omissions of its Designated Users relating to the Licensed Software + and use thereof. Any use of Licensed Software beyond the provisions + of this Agreement is strictly prohibited and requires an additional + license from The Qt Company." + V. Section 12 shall be replaced in its entirety to read as follows: + "This Agreement shall enter into force upon due acceptance by both + Parties and remain in force for the Agreement Term, unless and until + terminated pursuant to the terms of Section 12. + Upon termination of the Agreement, Licensee shall cease using the + Licensed Software. All other copies of Licensed Software in the + possession or control of Licensee must be erased or destroyed. An + officer of Licensee must, upon request, promptly deliver to The Qt + Company a written confirmation that this has occurred." + +Except for the modifications specified above, this Appendix carries no change +to the terms of the Agreement which shall remain in full force. + +APPENDIX 6: LICENSE REPORTING + +Separate template + +APPENDIX 7: MARKETING RIGHTS + +This Appendix 7 has the purpose to grant visibility through The Qt Company +marketing channels of the usage of Qt and related product and service in +Licensee product. Following related marketing right are agreed between the Qt +Company and the Licensee. + +1. LICENSEE NAME AND LICENSEE LOGO + +The Qt Company has the right to use Licensee name and Licensee logo in public +channel, in respect of the value proposition that the Qt company provided to +the Licensee. + +2. MARKETING CONTENT COOPERATION + +2.1. LICENSEE CASES + +The Licensee is open to collaborate on content creation for marketing and +communication purpose. The Licensee will nominate one responsible that will be +in charge to support The Qt company with this content creation, according to +content format paragraph, answering technical questions or sharing professional +picture or video of required content. The Qt Company will have the right to +advertise this in Content Format and Channel as mentioned in paragraph 3 and 4. + +2.2. FINAL PRODUCT REFERRAL + +Licensee agree that The Qt Company could connect their software product and +services with the Licensee device or application, that the Licensee has created +using The Qt Company technology and competence. Licensee will provide high +quality picture, and video of the created final product where the Qt technology +is running into. The Qt Company will have the right to advertise this in +Content Format and Channel as mentioned in paragraph 3 and 4. + +3. CONTENT FORMAT + +- Video +- Written Licensee case +- Press release +- Social media posts +- Emails +- Event booth Graphics +- Printed material + +4. CHANNELS + +- Social media +- The Qt Company resource center and website +- Email to the Qt company contact database +- Events +- Online webinars +- Public speech +- Public presentations + +APPENDIX 8: INTENTIONALLY LEFT BLANK + +APPENDIX 9: SUPPORT TERMS + +These Qt support terms and conditions ("Support Terms") set forth the legal +framework, where under The Qt Company ("The Qt Company") provides support +services (as herein defined) to the Licensee. + +1 DEFINITIONS + +"Application Code" shall mean a computer software program written strictly +using the Qt programming language, by or for the Licensee, with a user +interface, enabling the Licensee or their users to accomplish a specific task +and display any results of the task on the display monitor or screen. + +"Dedicated Contact" shall mean the employee of The Qt Company who will be the +first point of contact for all Designated Users' requests for Support. + +"Errors" shall mean an error, flaw, mistake, failure, or fault in Licensed +Software that prevents it from behaving as described in the relevant +documentation or as agreed between the Parties. + +"Extended Support" shall mean a continuation to the normal Support period, +which allows Designated Users to receive selected Support (Standard Support or +Premium Support) for a version of Licensed Software that is no longer generally +supported by The Qt Company. + +"Install Support" shall mean Support that is limited to installation related +Error(s) on Development Platforms specified as supported host platforms for +each Qt release under doc.qt.io. + +"Maintenance Release" shall mean a release or version of Licensed Software +containing bug fixes, error corrections and other changes targeted to +maintaining and improving product stability and quality. Maintenance Releases +are generally depicted as a change to the third digit of Licensed Software +version number. + +"Platforms" shall mean both Development Platforms and Deployment Platforms. +Supported host and target Platforms may vary from for each Qt release as +defined under doc.qt.io. + +"Premium Support" shall mean an upgraded level of Support that The Qt Company +provides pursuant to these Support Terms to Licensee if Licensee has purchased +Premium Support instead of Standard Support. Premium Support shall always be +purchased for all Designated User(s) in the respective development team of the +Licensee. + +"Response Time" shall mean the period of time from when Licensee notifies +TheQt Company about an Error or requests Support until The Qt Company provides +Licensee with a response that addresses (but not necessarily resolves) the +reported Error or provides the requested Support. + +"Standard Support" shall mean standard level of Support that The Qt Company +provides pursuant to these Support Terms to Licensee. + +"Support" shall mean developer assistance that is provided by The Qt Company +to assist eligible Designated Users in Licensed Software installation, usage +and functionality problem resolution for Error(s) and Error workarounds +pursuant to the terms of these Support Terms. Support for different products is +available as specified in the below table ("X" marking the Support that is +included in the license price, optional Add-on Support services are marked as +"O"): + ++-----------------------------------------------------------------------+ +| |ADP|ADE|DCP|DCE|DSP|DSE|Squish|Coco|Test Center| ++-----------------------------------------------------------------------+ +| Install Support | X | X | X | X | X | X | X | X | X | ++-----------------------------------------------------------------------+ +| Standard Support | | X | X | X | X | X | X | X | X | ++-----------------------------------------------------------------------+ +| Premium Support | | O | O | O | O | O | O | O | O | ++-----------------------------------------------------------------------+ +| Extended Support | | O | O | O | O | O | | | | ++-----------------------------------------------------------------------+ +| Tool Qualification Kit| | | | | | | O | O | | ++-----------------------------------------------------------------------+ + +"Support Validity Term" shall mean the Development License Term or any other +fixed time period agreed between the Parties during which time the Customer is +eligible to receive Support from The Qt Company. + +"Tool Qualification Kit" shall mean a customized set of documents and +validation test cases. + +2 SUPPORT SERVICES + +2.1 Support Services Provided by The Qt Company + +Subject to these Support Terms and during the Support Validity Term, The Qt +Company will via its web-based support user-interface, provide Designated +User(s) with Support for the Platforms which Customer has licensed under the +Agreement. +The Qt Company will make commercially reasonable efforts to solve any Errors +reported by Designated User(s). Resolution of an Error may be provided through +Designated User(s) themselves downloading of a later released version of the +applicable Licensed Software product(s) or providing the Designated User with a +temporary workaround addressing such Error. + +2.2 Licensee's Obligations + +To report an Error, the Designated User shall register the Error on The Qt +Company's web-based support user interface located at: +https://account.qt.io/login or at another location designated by The Qt Company. + +The Designated User must provide adequate information and documentation to The +Qt Company to enable it to recreate the Error or problem for which the +Designated User has sought assistance. +To ensure efficient handling of Errors, the Designated User must provide the +following information, where relevant: +- A clear, detailed description of the problem, question or suggestion; +- Identification of which Licensed Software product and version is affected; +- Identification of the operating environment (e.g. operating system, hardware + Platform, build tools, etc.) on which the problem exists; +- On Standard Support: A complete and compilable test case of not more than 500 + lines of code that demonstrates the problem; +- On Premium Support: A complete and compilable test case that demonstrates the + problem or access to Application Code source codes. + +Additional relevant content, such as screenshots, etc. +Additional content should be included as attachments. The preferred image +formats are JPEG and PNG. Compressed content should be included in zip or +tar.gz archives. Executable content and documents in platform specific formats +such as Microsoft Office' are not accepted. + +In order for The Qt Company to provide prompt handling of Errors, the +Designated User shall promptly respond to any requests from The Qt Company for +additional information. + +2.3 Support Limitations + +General limitations: + +Each version or release of the Licensed Software will be Supported under +Standard Support or Premium Support only for limited time period as set forth +in doc.qt.io. For example, regular releases of Qt Software are supported for +one (1) year from the release date of the version x.y.0 and Long Term Support +(LTS) Releases are supported for a period of three (3) years from the release +date of the LTS version x.y.0. + +The Qt Company shall only provide Support for Designated User(s). + +Support is made available for the entire development teams only: It is not +allowed to purchase Support only for some members of the development team, and +all Designated Users of the respective development team must be eligible for +the same level of Support. + +Support is not provided for snapshots, preview releases, beta releases or +release candidates. + +The Qt Company shall have no obligation to provide Support for hardware or +operating system specific problems or problems arising from improper use, +accident, neglect or modification of Qt. + +Limitations with Install Support: + +Support limited to Error(s) regarding installation and setting up of the Qt +development environment on host Platforms. + +Limitations with Standard Support: + +The Qt Company shall not provide Support for third-party software or problems +caused by third-party software even if such third-party software is distributed +together with Licensed Software product(s). + +The Qt Company shall only provide Support for Error(s) that are reported on and +can be reproduced on Platforms that are officially supported for the release of +the Licensed Software. + +Limitations with Premium support: + +The Qt Company shall not provide Support for third-party software or problems +caused by third-party software. However, if such third-party software is +distributed together with Licensed Software, The Qt Company will make +commercially reasonable efforts to solve such problems. + +The Qt Company shall only provide Support for Error(s) that can be reproduced +on Platforms that are officially supported for the release of the Licensed +Software. If the Error is on a Platform that is not supported, The Qt Company +will make commercially reasonable efforts to provide a solution on closest +corresponding supported Platform. + +Premium Support is optional and purchased for an agreed bucket of hours +("Bucket"). Hours can be used by any Designated User in the respective +development team. To encourage continuous usage of the Support, ten percent +(10%) of the purchased Bucket shall automatically expire (regardless of whether +such support hours are actually used or not by the Licensee) each month after +three (3) months from the purchase of the Premium Support. + +2.4 Extended Support + +Extended Support extends the Support Validity Term for a release of Licensed +Software that is no longer generally supported. + +Extended Support includes and is by default provided with Standard Support +rules and limitations, unless Extended Support is purchased with Premium +Support in which case Premium Support rules and limitations will apply. + +Extended Support is optional and purchased with annual fee and separately per +each Licensee product. Extended Support will need definition of (i) Licensee +product, (ii) used Platform(s) and (iii) Licensed Software version(s). + +2.5 Tool Qualification Kit + +The Qt Company shall provide set of customized documents and validation tests +that enable Licensee to qualify QA testing tool for the purpose of ISO 26262, +EN 50128, DO-330, IEC 61508, IEC 62304 or IEC 13485 certification Licensee end +to end solution. + +3 RESPONSE TIME + +In performing Support, The Qt Company shall commit to following, non-binding, +Response Times: + +Standard Support: Errors and Support requests will have a Response Time not to +exceed two (2) business days. + +Premium Support: Errors and Support requests will have a Response Time not to +exceed one (1) business day. + +For complex issues, The Qt Company may provide an initial response to the +Designated User and then follow up, without undue delay, with additional +communication before an Error is properly addressed or Support provided. + +4 ADDITIONAL SERVICES IN PREMIUM SUPPORT + +The Designated User(s) will be assigned a Dedicated Contact to handle requests +for Support. Dedicated Contact is subject to change in cases such as sick +leave, vacation and other similar reasons. + +The Designated User(s) can on request ask The Qt Company to access their +computer remotely in order to resolve problems directly. + +The Designated User(s) can request a session via Instant Messaging or phone +call in the support request to The Qt Company. + +Premium Support can assist Licensee in implementing new features, bug fixes +and accessing patches in Licensed Software or Application Code. + +All Support requests will be handled with high priority. + +5 MAINTENANCE RELEASES, UPDATES AND UPGRADES + +Under the Support the Customer is eligible for Maintenance Releases and Updates +that The Qt Company generally makes available to customers who has purchased +Support. Unless otherwise decided by The Company at its free and absolute +discretion, Upgrades will not be provided under the Support. + +The primary focus of Maintenance Releases is product quality. Therefore, each +Maintenance Release typically includes the following types of changes to the +previous version of Licensed Software: +- Bug fixes caused by changes to previously working code; +- Fixes related to build issues on supported Platforms; +- Error corrections specific to a single Platform that are not present on other + Platforms; +- Critical Error corrections such as crashes, data corruption, loss of data, + race conditions; and +- Updates to documentation and license information when deemed necessary by + The Qt Company. + +The primary focus of Updates is introducing new features to Licensed Software +and covering new platforms. Therefore, each Updates typically includes the +following types of changes to the previous version of Licensed Software: +- New platform support; +- New toolchain support; +- New features and Qt modules; + +6 WARRANTY DISCLAIMER + +The Qt Company makes no warranties that the Support provided will be successful +in resolving any difficulties or problems or in diagnosing faults reported by +Licensee. Support is provided to Licensee on an "as is" basis. To the maximum +extent permitted by applicable law, The Qt Company disclaims all warranties and +conditions, either express or implied, including, but not limited to, implied +warranties of merchantability and fitness for a particular purpose for the +Support provided by The Qt Company to Licensee. + +APPENDIX 10: CONVERSION TO SUBSCRIPTION + +Subject to the terms of this Appendix Licensee's current development licenses +("Current Licenses") for commercial version of Qt Software and the license +agreements governing such Current Licenses ("Existing Agreements") are being +replaced by this Agreement and subscription based Development Licenses +governed hereunder, as further specified below. + ++---------------------------------------------------------------------------+ +| Existing Agreement(s) | and | +| signing parties, version | | +| thereof | | ++---------------------------------------------------------------------------+ + +Parties hereby agree on conversion of Current Licenses listed in attached +Exhibit A to the subscription licenses listed in attached Exhibit B for use +through License Term. As of the date hereof, + +i. Licensee's Current Licenses as listed in Exhibit A shall terminate and be +replaced with the Subscription licenses listed in Exhibit B and; +ii. Existing Agreements are terminated. + +Prices for the conversion of Current Licenses are defined in Appendix 2 +Pricing or Quote. + +Notwithstanding anything in this Appendix to the contrary, and in addition to +any payments due pursuant to this Appendix, Licensee remains fully obligated to +fulfill any and all outstanding payment obligations to The Qt Company under any +applicable Existing Agreements. For the avoidance of doubt, if any payments +remain outstanding on the Current Licenses under the applicable terms Licensee +will continue to make such payments in accordance with the applicable order +documentation, notwithstanding the fact that the Current Licenses are being +converted to Development Licenses pursuant to this Appendix. diff --git a/.cmake.conf b/.cmake.conf new file mode 100644 index 0000000..de369df --- /dev/null +++ b/.cmake.conf @@ -0,0 +1,2 @@ +set(QT_REPO_MODULE_VERSION "6.4.2") +set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1") diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..3b0405e --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "src/assistant/qlitehtml"] + path = src/assistant/qlitehtml + url = https://code.qt.io/playground/qlitehtml.git diff --git a/.tag b/.tag new file mode 100644 index 0000000..2a6d4ee --- /dev/null +++ b/.tag @@ -0,0 +1 @@ +2ddbe1df490a4f9a7963a3dc78a8d865165cbf5b diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..171aa09 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,31 @@ +# Generated from qttools.pro. + +cmake_minimum_required(VERSION 3.16) + +include(.cmake.conf) +project(QtTools # special case + VERSION "${QT_REPO_MODULE_VERSION}" + DESCRIPTION "Qt Tools" # special case + HOMEPAGE_URL "https://qt.io/" + LANGUAGES CXX C +) + +# add platform specific compontents +set(optional_components "") +if(WIN32) + list(APPEND optional_components AxContainer) +endif() + +find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core Network) +find_package(Qt6 ${PROJECT_VERSION} QUIET CONFIG OPTIONAL_COMPONENTS + DBus Xml Widgets Quick QuickWidgets Qml + Sql PrintSupport OpenGL OpenGLWidgets ${optional_components}) + +qt_build_repo() + +# special case begin + +# Add tool dependencies that were deferred by qt_internal_add_docs. +qt_internal_add_deferred_dependencies() + +# special case end diff --git a/LICENSES/BSD-3-Clause.txt b/LICENSES/BSD-3-Clause.txt new file mode 100644 index 0000000..b91bbd8 --- /dev/null +++ b/LICENSES/BSD-3-Clause.txt @@ -0,0 +1,9 @@ +Copyright (c) . + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/LICENSES/BSL-1.0.txt b/LICENSES/BSL-1.0.txt new file mode 100644 index 0000000..9cc4741 --- /dev/null +++ b/LICENSES/BSL-1.0.txt @@ -0,0 +1,9 @@ + + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/LICENSES/GFDL-1.3-no-invariants-only.txt b/LICENSES/GFDL-1.3-no-invariants-only.txt new file mode 100644 index 0000000..857214d --- /dev/null +++ b/LICENSES/GFDL-1.3-no-invariants-only.txt @@ -0,0 +1,451 @@ + + GNU Free Documentation License + Version 1.3, 3 November 2008 + + + Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +functional and useful document "free" in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The "Document", below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as "you". You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall +subject (or to related matters) and contains nothing that could fall +directly within that overall subject. (Thus, if the Document is in +part a textbook of mathematics, a Secondary Section may not explain +any mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML, PostScript or PDF designed for human modification. Examples of +transparent image formats include PNG, XCF and JPG. Opaque formats +include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML, PostScript or PDF produced by some word +processors for output purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + +The "publisher" means any person or entity that distributes copies of +the Document to the public. + +A section "Entitled XYZ" means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as "Acknowledgements", +"Dedications", "Endorsements", or "History".) To "Preserve the Title" +of such a section when you modify the Document means that it remains a +section "Entitled XYZ" according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no +other conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to +give them a chance to provide you with an updated version of the +Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section Entitled "History", Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the section all + the substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section to be Entitled "Endorsements" + or to conflict in title with any Invariant Section. +O. Preserve any Warranty Disclaimers. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section Entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections Entitled "History" +in the various original documents, forming one section Entitled +"History"; likewise combine any sections Entitled "Acknowledgements", +and any sections Entitled "Dedications". You must delete all sections +Entitled "Endorsements". + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other +documents released under this License, and replace the individual +copies of this License in the various documents with a single copy +that is included in the collection, provided that you follow the rules +of this License for verbatim copying of each of the documents in all +other respects. + +You may extract a single document from such a collection, and +distribute it individually under this License, provided you insert a +copy of this License into the extracted document, and follow this +License in all other respects regarding verbatim copying of that +document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an "aggregate" if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled "Acknowledgements", +"Dedications", or "History", the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, or distribute it is void, and +will automatically terminate your rights under this License. + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, receipt of a copy of some or all of the same material does +not give you any rights to use it. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions of the +GNU Free Documentation License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. See +https://www.gnu.org/licenses/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. If the Document +specifies that a proxy can decide which future versions of this +License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the +Document. + +11. RELICENSING + +"Massive Multiauthor Collaboration Site" (or "MMC Site") means any +World Wide Web server that publishes copyrightable works and also +provides prominent facilities for anybody to edit those works. A +public wiki that anybody can edit is an example of such a server. A +"Massive Multiauthor Collaboration" (or "MMC") contained in the site +means any set of copyrightable works thus published on the MMC site. + +"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 +license published by Creative Commons Corporation, a not-for-profit +corporation with a principal place of business in San Francisco, +California, as well as future copyleft versions of that license +published by that same organization. + +"Incorporate" means to publish or republish a Document, in whole or in +part, as part of another Document. + +An MMC is "eligible for relicensing" if it is licensed under this +License, and if all works that were first published under this License +somewhere other than this MMC, and subsequently incorporated in whole or +in part into the MMC, (1) had no cover texts or invariant sections, and +(2) were thus incorporated prior to November 1, 2008. + +The operator of an MMC Site may republish an MMC contained in the site +under CC-BY-SA on the same site at any time before August 1, 2009, +provided the MMC is eligible for relicensing. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.3 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, +replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + +If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/LICENSES/GPL-2.0-only.txt b/LICENSES/GPL-2.0-only.txt new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/LICENSES/GPL-2.0-only.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/LICENSES/GPL-3.0-only.txt b/LICENSES/GPL-3.0-only.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/LICENSES/GPL-3.0-only.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/LICENSES/LGPL-3.0-only.txt b/LICENSES/LGPL-3.0-only.txt new file mode 100644 index 0000000..65c5ca8 --- /dev/null +++ b/LICENSES/LGPL-3.0-only.txt @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/LICENSES/LicenseRef-Qt-Commercial.txt b/LICENSES/LicenseRef-Qt-Commercial.txt new file mode 100644 index 0000000..825b1f3 --- /dev/null +++ b/LICENSES/LicenseRef-Qt-Commercial.txt @@ -0,0 +1,8 @@ +Licensees holding valid commercial Qt licenses may use this software in +accordance with the the terms contained in a written agreement between +you and The Qt Company. Alternatively, the terms and conditions that were +accepted by the licensee when buying and/or downloading the +software do apply. + +For the latest licensing terms and conditions, see https://www.qt.io/terms-conditions. +For further information use the contact form at https://www.qt.io/contact-us. diff --git a/LICENSES/Qt-GPL-exception-1.0.txt b/LICENSES/Qt-GPL-exception-1.0.txt new file mode 100644 index 0000000..d0322bf --- /dev/null +++ b/LICENSES/Qt-GPL-exception-1.0.txt @@ -0,0 +1,22 @@ +The Qt Company GPL Exception 1.0 + +Exception 1: + +As a special exception you may create a larger work which contains the +output of this application and distribute that work under terms of your +choice, so long as the work is not otherwise derived from or based on +this application and so long as the work does not in itself generate +output that contains the output from this application in its original +or modified form. + +Exception 2: + +As a special exception, you have permission to combine this application +with Plugins licensed under the terms of your choice, to produce an +executable, and to copy and distribute the resulting executable under +the terms of your choice. However, the executable must be accompanied +by a prominent notice offering all users of the executable the entire +source code to this application, excluding the source code of the +independent modules, but including any changes you have made to this +application, under the terms of this license. + diff --git a/cmake/FindWrapLibClang.cmake b/cmake/FindWrapLibClang.cmake new file mode 100644 index 0000000..3c02ac8 --- /dev/null +++ b/cmake/FindWrapLibClang.cmake @@ -0,0 +1,81 @@ +if(TARGET WrapLibClang::WrapLibClang) + set(WrapLibClang_FOUND TRUE) + return() +endif() + +if(DEFINED ENV{LLVM_INSTALL_DIR}) + set(__qt_wrap_clang_backup_prefix "${CMAKE_PREFIX_PATH}") + list(PREPEND CMAKE_PREFIX_PATH "$ENV{LLVM_INSTALL_DIR}") +elseif(DEFINED CACHE{LLVM_INSTALL_DIR}) + set(__qt_wrap_clang_backup_prefix "${CMAKE_PREFIX_PATH}") + list(PREPEND CMAKE_PREFIX_PATH "${LLVM_INSTALL_DIR}") +endif() + +find_package(Clang CONFIG) + +if(__qt_wrap_clang_backup_prefix) + set(CMAKE_PREFIX_PATH "${__qt_wrap_clang_backup_prefix}") + unset(__qt_wrap_clang_backup_prefix) +endif() + +set(WrapLibClang_FOUND FALSE) +set(__wrap_lib_clang_requested_version_found FALSE) + +# Need to explicitly handle the version check, because the Clang package doesn't. +if(WrapLibClang_FIND_VERSION AND LLVM_PACKAGE_VERSION + AND LLVM_PACKAGE_VERSION VERSION_GREATER_EQUAL "${WrapLibClang_FIND_VERSION}") + set(__wrap_lib_clang_requested_version_found TRUE) +endif() + +if(TARGET libclang AND ((TARGET clang-cpp AND TARGET LLVM) OR TARGET clangHandleCXX) AND __wrap_lib_clang_requested_version_found) + set(WrapLibClang_FOUND TRUE) + + get_target_property(type libclang TYPE) + if (MSVC AND type STREQUAL "STATIC_LIBRARY") + get_property(__wrap_lib_clang_multi_config + GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) + if(__wrap_lib_clang_multi_config) + set(__wrap_lib_clang_configs ${CMAKE_CONFIGURATION_TYPES}) + else() + set(__wrap_lib_clang_configs ${CMAKE_BUILD_TYPE}) + endif() + set(__wrap_lib_clang_non_release_configs ${configs}) + list(REMOVE_ITEM __wrap_lib_clang_non_release_configs + Release MinSizeRel RelWithDebInfo) + if(__wrap_lib_clang_non_release_configs STREQUAL __wrap_lib_clang_configs) + message(STATUS "Static linkage against libclang with MSVC was requested, but the build is not a release build, therefore libclang cannot be used.") + set(WrapLibClang_FOUND FALSE) + endif() + endif() + + if(WrapLibClang_FOUND) + add_library(WrapLibClang::WrapLibClang IMPORTED INTERFACE) + + target_include_directories(WrapLibClang::WrapLibClang INTERFACE ${CLANG_INCLUDE_DIRS}) + if (NOT TARGET Threads::Threads) + find_package(Threads) + endif() + qt_internal_disable_find_package_global_promotion(Threads::Threads) + # lupdate must also link to LLVM when using clang-cpp + set(__qt_clang_genex_condition "$,$>") + set(__qt_clang_genex "$") + target_link_libraries(WrapLibClang::WrapLibClang + INTERFACE libclang + "${__qt_clang_genex}" + Threads::Threads + ) + + foreach(version MAJOR MINOR PATCH) + set(QT_LIB_CLANG_VERSION_${version} ${LLVM_VERSION_${version}} CACHE STRING "" FORCE) + endforeach() + set(QT_LIB_CLANG_VERSION ${LLVM_PACKAGE_VERSION} CACHE STRING "" FORCE) + set(QT_LIB_CLANG_LIBDIR "${LLVM_LIBRARY_DIRS}" CACHE STRING "" FORCE) + set(QT_LIBCLANG_RESOURCE_DIR + "\"${QT_LIB_CLANG_LIBDIR}/clang/${QT_LIB_CLANG_VERSION}/include\"" CACHE STRING "" FORCE) + endif() +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(WrapLibClang + REQUIRED_VARS WrapLibClang_FOUND + VERSION_VAR LLVM_PACKAGE_VERSION) diff --git a/coin/module_config.yaml b/coin/module_config.yaml new file mode 100644 index 0000000..628a967 --- /dev/null +++ b/coin/module_config.yaml @@ -0,0 +1,17 @@ +version: 2 +accept_configuration: + condition: property + property: features + not_contains_value: Disable + +machine_type: + Build: + cores: 4 + +instructions: + Build: + - !include "{{qt/qtbase}}/coin_module_build_template_v2.yaml" + + Test: + - !include "{{qt/qtbase}}/coin_module_test_template_v3.yaml" + - !include "{{qt/qtbase}}/coin_module_test_docs.yaml" diff --git a/conanfile.py b/conanfile.py new file mode 100644 index 0000000..a498f1f --- /dev/null +++ b/conanfile.py @@ -0,0 +1,57 @@ +# Copyright (C) 2021 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +from conans import ConanFile +import re +from pathlib import Path +from typing import Dict, Any + +_qttools_features = [ + "assistant", + "designer", + "distancefieldgenerator", + "kmap2qmap", + "linguist", + "pixeltool", + "qdbus", + "qev", + "qtattributionsscanner", + "qtdiag", + "qtplugininfo", +] + + +def _parse_qt_version_by_key(key: str) -> str: + with open(Path(__file__).parent.resolve() / ".cmake.conf") as f: + m = re.search(fr'{key} .*"(.*)"', f.read()) + return m.group(1) if m else "" + + +def _get_qt_minor_version() -> str: + return ".".join(_parse_qt_version_by_key("QT_REPO_MODULE_VERSION").split(".")[:2]) + + +class QtTools(ConanFile): + name = "qttools" + license = "LGPL-3.0, GPL-2.0+, Commercial Qt License Agreement" + author = "The Qt Company " + url = "https://code.qt.io/cgit/qt/qttools.git" + description = ( + "Qt Tools run on all the supported development platforms and facilitate " + "the development and design of applications." + ) + topics = "qt", "qt6", "qttools", "assistant", "designer", "qdoc", + settings = "os", "compiler", "arch", "build_type" + # for referencing the version number and prerelease tag and dependencies info + exports = ".cmake.conf", "dependencies.yaml" + exports_sources = "*", "!conan*.*" + python_requires = f"qt-conan-common/{_get_qt_minor_version()}@qt/everywhere" + python_requires_extend = "qt-conan-common.QtLeafModule" + + def get_qt_leaf_module_options(self) -> Dict[str, Any]: + """Implements abstractmethod from qt-conan-common.QtLeafModule""" + return self._shared.convert_qt_features_to_conan_options(_qttools_features) + + def get_qt_leaf_module_default_options(self) -> Dict[str, Any]: + """Implements abstractmethod from qt-conan-common.QtLeafModule""" + return self._shared.convert_qt_features_to_default_conan_options(_qttools_features) diff --git a/configure.cmake b/configure.cmake new file mode 100644 index 0000000..04e717f --- /dev/null +++ b/configure.cmake @@ -0,0 +1,128 @@ +#### Inputs + + + +#### Libraries + + + +#### Tests + +# libclang +# special case begin +# Even though Qt builds with qmake and libclang 6.0, it fails with CMake. +# Presumably because 6.0 ClangConfig.cmake files are not good enough? +# In any case explicitly request a minimum version of 8.x for now, otherwise +# building with CMake will fail at compilation time. +qt_find_package(WrapLibClang 8 PROVIDED_TARGETS WrapLibClang::WrapLibClang) +# special case end + +if(TARGET WrapLibClang::WrapLibClang) + set(TEST_libclang "ON" CACHE BOOL "Required libclang version found." FORCE) +endif() + + + +#### Features + +# Check whether the sqlite plugin is available. +set(sqlite_plugin_available FALSE) +if(NOT QT_CONFIGURE_RUNNING) + if(TARGET ${QT_CMAKE_EXPORT_NAMESPACE}::Sql) + get_target_property(sql_plugins ${QT_CMAKE_EXPORT_NAMESPACE}::Sql QT_PLUGINS) + if(QSQLiteDriverPlugin IN_LIST sql_plugins) + set(sqlite_plugin_available TRUE) + endif() + endif() +endif() + +qt_feature("assistant" PRIVATE + LABEL "Qt Assistant" + PURPOSE "Qt Assistant is a tool for viewing on-line documentation in Qt help file format." + CONDITION TARGET Qt::Widgets AND QT_FEATURE_png AND QT_FEATURE_pushbutton AND QT_FEATURE_toolbutton AND (sqlite_plugin_available OR QT_BUILD_SHARED_LIBS) +) +qt_feature("clang" PRIVATE + LABEL "QDoc" + CONDITION TEST_libclang +) +qt_feature("clangcpp" PRIVATE + LABEL "Clang-based lupdate parser" + CONDITION QT_FEATURE_clang AND TEST_libclang +) +qt_feature("designer" PRIVATE + LABEL "Qt Designer" + PURPOSE "Qt Designer is the Qt tool for designing and building graphical user interfaces (GUIs) with Qt Widgets. You can compose and customize your windows or dialogs in a what-you-see-is-what-you-get (WYSIWYG) manner, and test them using different styles and resolutions." + CONDITION TARGET Qt::Widgets AND QT_FEATURE_png AND QT_FEATURE_pushbutton AND QT_FEATURE_toolbutton +) +qt_feature("distancefieldgenerator" PRIVATE + LABEL "Qt Distance Field Generator" + PURPOSE "The Qt Distance Field Generator tool can be used to pregenerate the font cache in order to optimize startup performance." + CONDITION TARGET Qt::Widgets AND QT_FEATURE_png AND QT_FEATURE_thread AND QT_FEATURE_toolbutton AND TARGET Qt::Quick +) +qt_feature("kmap2qmap" PRIVATE + LABEL "kmap2qmap" + PURPOSE "kmap2qmap is a tool to generate keymaps for use on Embedded Linux. The source files have to be in standard Linux kmap format that is e.g. understood by the kernel's loadkeys command." +) +qt_feature("linguist" PRIVATE + LABEL "Qt Linguist" + PURPOSE "Qt Linguist can be used by translator to translate text in Qt applications." +) +qt_feature("pixeltool" PRIVATE + LABEL "pixeltool" + PURPOSE "The Qt Pixel Zooming Tool is a graphical application that magnifies the screen around the mouse pointer so you can look more closely at individual pixels." + CONDITION TARGET Qt::Widgets AND QT_FEATURE_png AND QT_FEATURE_pushbutton AND QT_FEATURE_toolbutton +) +qt_feature("qdbus" PRIVATE + LABEL "qdbus" + PURPOSE "qdbus is a communication interface for Qt-based applications." + CONDITION TARGET Qt::DBus +) +qt_feature("qev" PRIVATE + LABEL "qev" + PURPOSE "qev allows introspection of incoming events for a QWidget, similar to the X11 xev tool." +) +qt_feature("qtattributionsscanner" PRIVATE + LABEL "Qt Attributions Scanner" + PURPOSE "Qt Attributions Scanner generates attribution documents for third-party code in Qt." + CONDITION QT_FEATURE_commandlineparser +) +qt_feature("qtdiag" PRIVATE + LABEL "qtdiag" + PURPOSE "qtdiag outputs information about the Qt installation it was built with." + CONDITION QT_FEATURE_commandlineparser AND TARGET Qt::Gui AND NOT ANDROID AND NOT QNX AND NOT UIKIT AND NOT WASM +) +qt_feature("qtplugininfo" PRIVATE + LABEL "qtplugininfo" + PURPOSE "qtplugininfo dumps metadata about Qt plugins in JSON format." + CONDITION QT_FEATURE_commandlineparser AND QT_FEATURE_library AND (android_app OR NOT ANDROID) +) +qt_configure_add_summary_section(NAME "Qt Tools") +qt_configure_add_summary_entry(ARGS "assistant") +qt_configure_add_summary_entry(ARGS "clang") +qt_configure_add_summary_entry(ARGS "clangcpp") +qt_configure_add_summary_entry(ARGS "designer") +qt_configure_add_summary_entry(ARGS "distancefieldgenerator") +#qt_configure_add_summary_entry(ARGS "kmap2qmap") +qt_configure_add_summary_entry(ARGS "linguist") +qt_configure_add_summary_entry(ARGS "pixeltool") +qt_configure_add_summary_entry(ARGS "qdbus") +#qt_configure_add_summary_entry(ARGS "qev") +qt_configure_add_summary_entry(ARGS "qtattributionsscanner") +qt_configure_add_summary_entry(ARGS "qtdiag") +qt_configure_add_summary_entry(ARGS "qtplugininfo") +qt_configure_end_summary_section() # end of "Qt Tools" section +qt_configure_add_report_entry( + TYPE WARNING + MESSAGE "QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation. +Either set CMAKE_PREFIX_PATH or LLVM_INSTALL_DIR to the location of your llvm installation. +On Linux systems, you may be able to install libclang by installing the libclang-dev or libclang-devel package, depending on your distribution. +On macOS, you can use Homebrew's llvm package. +You will also need to set the FEATURE_clang CMake variable to ON to re-evaluate this check." + CONDITION NOT QT_FEATURE_clang +) +qt_configure_add_report_entry( + TYPE WARNING + MESSAGE "Clang-based lupdate parser will not be available. LLVM and Clang C++ libraries have not been found. +You will need to set the FEATURE_clangcpp CMake variable to ON to re-evaluate this check." + CONDITION NOT QT_FEATURE_clangcpp +) diff --git a/dependencies.yaml b/dependencies.yaml new file mode 100644 index 0000000..048b276 --- /dev/null +++ b/dependencies.yaml @@ -0,0 +1,10 @@ +dependencies: + ../qtactiveqt: + ref: b826f0a64cf94cc49b1e5f6979ce571058e51d77 + required: false + ../qtbase: + ref: e3e40c44d3f998a433a6a1080297c5f28e9a768f + required: true + ../qtdeclarative: + ref: 1b58f30087eedf42f16572d8ae1d6a5b18f3d698 + required: false diff --git a/dist/changes-5.0.1 b/dist/changes-5.0.1 new file mode 100644 index 0000000..f476e80 --- /dev/null +++ b/dist/changes-5.0.1 @@ -0,0 +1,71 @@ +Qt 5.0.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.0.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + + http://qt-project.org/doc/qt-5.0/ + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + http://bugreports.qt-project.org/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + + +**************************************************************************** +* General * +**************************************************************************** + +General Improvements +-------------------- + + - [QTBUG-28633] Fix bogus include paths in some pkg-config files + - [QTBUG-28689] Fix help URLs in tools. + - [QTBUG-28579] Doc: Correcting qhp links to the Linguist and Assistant examples + +Third party components +---------------------- + +**************************************************************************** +* Platform Specific Changes * +**************************************************************************** + + +**************************************************************************** +* Compiler Specific Changes * +**************************************************************************** + + +**************************************************************************** +* Tools * +**************************************************************************** + +Qt Assistant +------------ + + - Fix warnings found by the headersclean test + - Move functions from an anonymous namespace in a header + +Qt DBus Viewer +-------------- + + - Try harder in matching the method signature + +Qt Designer +----------- + + - Fix warning about hidden overloaded virtual, found by Clang + +Qt Help +------- + +Qt UI Tools +----------- + +**************************************************************************** +* Plugins * +**************************************************************************** + diff --git a/dist/changes-5.0.2 b/dist/changes-5.0.2 new file mode 100644 index 0000000..f29fa49 --- /dev/null +++ b/dist/changes-5.0.2 @@ -0,0 +1,25 @@ +Qt 5.0.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.0.0 and 5.0.1. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + + http://qt-project.org/doc/qt-5.0/ + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + http://bugreports.qt-project.org/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + + +**************************************************************************** +* General * +**************************************************************************** + +General Improvements +-------------------- + + - This release contains only minor code improvements. diff --git a/dist/changes-5.1.0 b/dist/changes-5.1.0 new file mode 100644 index 0000000..74f9fa7 --- /dev/null +++ b/dist/changes-5.1.0 @@ -0,0 +1,48 @@ +Qt 5.1 introduces many new features and improvements as well as bugfixes +over the 5.0.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + + http://qt-project.org/doc/qt-5.1 + +The Qt version 5.1 series is binary compatible with the 5.0.x series. +Applications compiled for 5.0 will continue to run with 5.1. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + http://bugreports.qt-project.org/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* General * +**************************************************************************** + +Qt Assistant +------------ + + - [QTBUG-30110] List supported file formats in search indexing. + +Qt Designer +----------- + + - [QTBUG-9502] Rich text editor: Add support for Right-to-Left blocks. + - [QTBUG-25872] Fix moving widgets in horizontal layouts in RTL mode. + - [QTBUG-26394] Use multiline validation for dynamic string properties. + - [QTBUG-29234] ActiveQt plugin: Load control string correctly. + - [QTBUG-29234] ActiveQt plugin: Fix setting a control by task menu. + - [QTBUG-29904] Aero-Style-QWizard: Remove special handling in Qt Designer. + +Qt Linguist +----------- + + - make linguist tools suitable for cross-building + - purge TS 1.1 support from linguist tools + - purge CODECFORTR & -codecfortr support from linguist tools + - [QTBUG-27238] Make linguist's source viewer read all files as UTF-8. + + - lupdate + + * purge ui3 support from lupdate + diff --git a/dist/changes-5.1.1 b/dist/changes-5.1.1 new file mode 100644 index 0000000..e233af4 --- /dev/null +++ b/dist/changes-5.1.1 @@ -0,0 +1,25 @@ +Qt 5.1.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.1.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + + http://qt-project.org/doc/qt-5.1/ + +The Qt version 5.1 series is binary compatible with the 5.0.x series. +Applications compiled for 5.0 will continue to run with 5.1. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + http://bugreports.qt-project.org/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + + +**************************************************************************** +* General * +**************************************************************************** + + - This release contains only minor code improvements. diff --git a/dist/changes-5.10.0 b/dist/changes-5.10.0 new file mode 100644 index 0000000..8b71dea --- /dev/null +++ b/dist/changes-5.10.0 @@ -0,0 +1,27 @@ +Qt 5.10 introduces many new features and improvements as well as bugfixes +over the 5.9.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.10 series is binary compatible with the 5.9.x series. +Applications compiled for 5.9 will continue to run with 5.10. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt 5.10.0 Changes * +**************************************************************************** + + - This release contains only minor code improvements. + +UNSPECIFIED +----------- + + - Added option "-no-untranslated" to lconvert diff --git a/dist/changes-5.10.1 b/dist/changes-5.10.1 new file mode 100644 index 0000000..2a6f51c --- /dev/null +++ b/dist/changes-5.10.1 @@ -0,0 +1,35 @@ +Qt 5.10.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.10.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.10 series is binary compatible with the 5.9.x series. +Applications compiled for 5.9 will continue to run with 5.10. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +This release contains all fixes included in the Qt 5.9.4 release. + +**************************************************************************** +* Qt 5.10.1 Changes * +**************************************************************************** + +windeployqt +------------ + + - The Qt3DAnimation dll is now deployed when the module is used. + +macdeployqt +------------ + + - QtLocation and Qt Positioning plugins are now deployed along the + frameworks. diff --git a/dist/changes-5.11.0 b/dist/changes-5.11.0 new file mode 100644 index 0000000..ad2d7c0 --- /dev/null +++ b/dist/changes-5.11.0 @@ -0,0 +1,65 @@ +Qt 5.11 introduces many new features and improvements as well as bugfixes +over the 5.10.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.11 series is binary compatible with the 5.10.x series. +Applications compiled for 5.10 will continue to run with 5.11. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt 5.11.0 Changes * +**************************************************************************** + +Licensing +--------- + + - The Qt UI Tools library got relicensed to commercial + BSD. + +Qt Designer +----------- + + - [QTBUG-34610] Qt Designer now supports id-based translations. + +Qt Linguist +----------- + + - [QTBUG-35652] Fixed special whitespace characters getting lost. + - [QTBUG-43519] Language labels are now country-qualified when necessary. + - [QTBUG-56376] The language selection dialog now displays each country + and language in both english and the language itself. + - Language labels are now displayed in the target language itself. + - The phrase view now shows the source context of guesses. + - The maximal number of guesses in the phrase view can be changed now. + - The message count fields gained tooltips that show the number of + remaining unfinished messages. + - It is now possible to mark a message as done without jumping to the + next unfinished one. + - The search dialog now supports regular expressions. + +lupdate +------- + + - [QTBUG-67278] -tr-function-alias may now specify QML member expressions. + +lrelease +-------- + + - [QTBUG-64317][CMake] Fixed qt5_add_translation() mishandling of filenames + with multiple dots. + - [QTBUG-44323][CMake] Added OPTIONS parameter to qt5_add_translation(). + +macdeployqt +----------- + + - [QTBUG-65844] Added support for selecting the file system type to use + when building a .dmg file. Defaults to HFS+ to support a wider range + of macOS versions. diff --git a/dist/changes-5.11.1 b/dist/changes-5.11.1 new file mode 100644 index 0000000..030ea3f --- /dev/null +++ b/dist/changes-5.11.1 @@ -0,0 +1,24 @@ +Qt 5.11.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.11.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.11 series is binary compatible with the 5.10.x series. +Applications compiled for 5.10 will continue to run with 5.11. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt 5.11.1 Changes * +**************************************************************************** + + - This release contains only minor code improvements. diff --git a/dist/changes-5.11.2 b/dist/changes-5.11.2 new file mode 100644 index 0000000..8efdf5e --- /dev/null +++ b/dist/changes-5.11.2 @@ -0,0 +1,24 @@ +Qt 5.11.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.11.0 through 5.11.1. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.11 series is binary compatible with the 5.10.x series. +Applications compiled for 5.10 will continue to run with 5.11. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt 5.11.2 Changes * +**************************************************************************** + + - This release contains only minor code improvements. diff --git a/dist/changes-5.11.3 b/dist/changes-5.11.3 new file mode 100644 index 0000000..4e0a0b1 --- /dev/null +++ b/dist/changes-5.11.3 @@ -0,0 +1,32 @@ +Qt 5.11.3 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.11.0 through 5.11.2. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.11 series is binary compatible with the 5.10.x series. +Applications compiled for 5.10 will continue to run with 5.11. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* macdeployqt * +**************************************************************************** + + - [QTBUG-68823] Now deploys plugins when Qt is configured with + -no-framework + +**************************************************************************** +* Assistant * +**************************************************************************** + + - [QTBUG-71399] Fix a crash when removing multiple documentation files + inside preferences dialog diff --git a/dist/changes-5.12.0 b/dist/changes-5.12.0 new file mode 100644 index 0000000..7cbcf1d --- /dev/null +++ b/dist/changes-5.12.0 @@ -0,0 +1,60 @@ +Qt 5.12 introduces many new features and improvements as well as bugfixes +over the 5.11.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.12 series is binary compatible with the 5.11.x series. +Applications compiled for 5.11 will continue to run with 5.12. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* macdeployqt * +**************************************************************************** + + - [QTBUG-68823] Now deploys plugins when Qt is configured with + -no-framework + +**************************************************************************** +* winrtrunner * +**************************************************************************** + + - Loopback exemption for UWP applications: + * Added ability to enable loopback exemption for clients. This basically + enables UWP applications to connect to a local server for debugging + purposes. + * Added ability to enable loopback exemption for servers. This basically + enables UWP applications to react on socket connections that are made + from the same machine for debugging purposes. + +**************************************************************************** +* Qt Help * +**************************************************************************** + + - [QTCREATORBUG-18242] Fixed the issue with too many open files, when + many documentation files were registered. + - [QTBUG-59363] Fixed jumping to the proper documentation version + when activating the link that refers to another qch file. + - [QTBUG-21357] Items are now sorted alphabetically in Contents view. + - Removed qhelpconverter tool. + - Merged qcollectiongenerator tool into the qhelpgenerator tool. + +**************************************************************************** +* Qt Linguist * +**************************************************************************** + + - Added "Go to" action to context menu in "Phrases and guesses" pane. + +lupdate +------- + + - [QTBUG-63364] Add support for C++17 nested namespaces. + - [QTBUG-62478] Fixed premature termination on qmake .prf execution errors. + - Updated qmake project handling to newer functionality in qmake. diff --git a/dist/changes-5.12.1 b/dist/changes-5.12.1 new file mode 100644 index 0000000..ca51580 --- /dev/null +++ b/dist/changes-5.12.1 @@ -0,0 +1,59 @@ +Qt 5.12.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.12.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.12 series is binary compatible with the 5.11.x series. +Applications compiled for 5.11 will continue to run with 5.12. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* qdoc * +**************************************************************************** + + - [QTBUG-69484] Fixed link resolution for types under namespaces. + - [QTBUG-70801] Added linking of buildversion field to + navigation.landingpage. + - [QTBUG-72357] Fixed regression in including inherited members in + all-members list. + - [QTBUG-72723] Don't include overridden functions in all-members list + anymore. + - [QTBUG-71792] Section headers in C++ reference pages for sections + without content are now skipped. + +**************************************************************************** +* Qt Assistant * +**************************************************************************** + + - [QTBUG-72174] Fixed an issue with opening a read-only qhc file. + +**************************************************************************** +* Qt Help * +**************************************************************************** + + - Re-added the qcollectiongenerator tool, which was removed in Qt 5.12.0 + release. It redirects to the qhelpgenerator tool now. + +**************************************************************************** +* windeployqt * +**************************************************************************** + + - Added deployment of Qt Virtual Keyboard plugins. + - Added support for packaging arm64 desktop apps. + +**************************************************************************** +* winrtrunner * +**************************************************************************** + + - winrtrunner now forwards the QT_LOGGING_RULES environment variable to + the actual application. diff --git a/dist/changes-5.12.10 b/dist/changes-5.12.10 new file mode 100644 index 0000000..95c6a0b --- /dev/null +++ b/dist/changes-5.12.10 @@ -0,0 +1,26 @@ +Qt 5.12.10 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.12.9. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + + https://doc.qt.io/qt-5.12/index.html + +The Qt version 5.12 series is binary compatible with the 5.11.x series. +Applications compiled for 5.11 will continue to run with 5.12. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Important Behavior Changes * +**************************************************************************** + +**************************************************************************** +* Library * +**************************************************************************** diff --git a/dist/changes-5.12.2 b/dist/changes-5.12.2 new file mode 100644 index 0000000..e83f600 --- /dev/null +++ b/dist/changes-5.12.2 @@ -0,0 +1,24 @@ +Qt 5.12.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.12.0 through 5.12.1. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.12 series is binary compatible with the 5.11.x series. +Applications compiled for 5.11 will continue to run with 5.12. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* lupdate * +**************************************************************************** + + - [QTBUG-42736] Added support for parsing C++11 raw string literals diff --git a/dist/changes-5.12.3 b/dist/changes-5.12.3 new file mode 100644 index 0000000..b1ea2fe --- /dev/null +++ b/dist/changes-5.12.3 @@ -0,0 +1,24 @@ +Qt 5.12.3 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.12.0 through 5.12.2. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.12 series is binary compatible with the 5.11.x series. +Applications compiled for 5.11 will continue to run with 5.12. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* makeqpf * +**************************************************************************** + + - Fix assert when rendering font using debug build of Qt diff --git a/dist/changes-5.12.4 b/dist/changes-5.12.4 new file mode 100644 index 0000000..4796a38 --- /dev/null +++ b/dist/changes-5.12.4 @@ -0,0 +1,33 @@ +Qt 5.12.4 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.12.0 through 5.12.3. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.12 series is binary compatible with the 5.11.x series. +Applications compiled for 5.11 will continue to run with 5.12. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* lupdate * +**************************************************************************** + + - lupdate will now generate an error if it is asked to update a .ts file + with translations, but without a target language. This is to ensure that + plural translations are not destroyed. + +**************************************************************************** +* qdoc * +**************************************************************************** + + - [QTBUG-73058] qdoc now uses #! as a snippet marker in .cmake, + CMakeLists.txt files. diff --git a/dist/changes-5.12.5 b/dist/changes-5.12.5 new file mode 100644 index 0000000..379f390 --- /dev/null +++ b/dist/changes-5.12.5 @@ -0,0 +1,37 @@ +Qt 5.12.5 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.12.0 through 5.12.4. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.12 series is binary compatible with the 5.11.x series. +Applications compiled for 5.11 will continue to run with 5.12. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* distancefieldgenerator * +**************************************************************************** + + - [QTBUG-76188] Fixed bug where the tool would fail for valid fonts with + the message "end of cmap table reached when parsing subtable". + - [QTBUG-76528] Fixed a bug where the generated textures might exceed the + maximum height. + - [QTBUG-76188][QTBUG-76528] Fixed possible crash when generating large + number of glyphs with a small texture size. + - [QTBUG-77501] Fixed broken text rendering when generating large glyph + sets. + +**************************************************************************** +* Qt Help * +**************************************************************************** + + - [QDS-779] Fixed possible application freeze when using QtHelp module. diff --git a/dist/changes-5.13.0 b/dist/changes-5.13.0 new file mode 100644 index 0000000..2859e92 --- /dev/null +++ b/dist/changes-5.13.0 @@ -0,0 +1,37 @@ +Qt 5.13 introduces many new features and improvements as well as bugfixes +over the 5.12.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.13 series is binary compatible with the 5.12.x series. +Applications compiled for 5.12 will continue to run with 5.13. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Designer * +**************************************************************************** + + - Added a filter line edit to the object inspector. + +**************************************************************************** +* lupdate * +**************************************************************************** + + - lupdate will now generate an error if it is asked to update a .ts file + with translations, but without a target language. This is to ensure that + plural translations are not destroyed. + +**************************************************************************** +* qdoc * +**************************************************************************** + + - [QTBUG-73058] qdoc now uses #! as a snippet marker in .cmake, + CMakeLists.txt files. diff --git a/dist/changes-5.13.1 b/dist/changes-5.13.1 new file mode 100644 index 0000000..557d702 --- /dev/null +++ b/dist/changes-5.13.1 @@ -0,0 +1,29 @@ +Qt 5.13.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.13.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.13 series is binary compatible with the 5.12.x series. +Applications compiled for 5.12 will continue to run with 5.13. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* distancefieldgenerator * +**************************************************************************** + + - [QTBUG-76188] Fixed bug where the tool would fail for valid fonts with + the message "end of cmap table reached when parsing subtable". + - [QTBUG-76528] Fixed a bug where the generated textures might exceed the + maximum height. + - [QTBUG-76188][QTBUG-76528] Fixed possible crash when generating large + number of glyphs with a small texture size. diff --git a/dist/changes-5.13.2 b/dist/changes-5.13.2 new file mode 100644 index 0000000..f1a1f9d --- /dev/null +++ b/dist/changes-5.13.2 @@ -0,0 +1,27 @@ +Qt 5.13.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.13.0 through 5.13.1. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.13 series is binary compatible with the 5.12.x series. +Applications compiled for 5.12 will continue to run with 5.13. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Distance Field Generator * +**************************************************************************** + + - [QTBUG-77499] Improved performance when selecting unicode ranges in + large fonts. + - [QTBUG-77501] Fixed broken text rendering when generating large glyph + sets. diff --git a/dist/changes-5.14.0 b/dist/changes-5.14.0 new file mode 100644 index 0000000..de2bb6f --- /dev/null +++ b/dist/changes-5.14.0 @@ -0,0 +1,63 @@ +Qt 5.14 introduces many new features and improvements as well as bugfixes +over the 5.13.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.14 series is binary compatible with the 5.13.x series. +Applications compiled for 5.13 will continue to run with 5.14. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* pixeltool * +**************************************************************************** + + - 'c' now copies color under cursor, and shows it in the tool window title. + +**************************************************************************** +* Qt Designer * +**************************************************************************** + + - [QTBUG-76375] A per-form setting for disabling generating calls to + QObject::connectSlotsByName() has been added to support migrating forms + to Qt 5 connection syntax. + - The multiselection-modifier of the buddy/signal slot editors has been + changed to Control instead of (historical) Shift. + +**************************************************************************** +* Qt Linguist * +**************************************************************************** + + - [QTBUG-76265] lupdate now warns about qsTr() calls with template literals + in .qml files. + - [QTBUG-67908] Extra \n when reading translator comment from .po file now + gets removed. + - [QTBUG-76723] CMake: qt5_create_translation was creating a warning when + translation files had the same prefix, separated by a dot. This is now + fixed. + +**************************************************************************** +* windeployqt * +**************************************************************************** + + - [QTBUG-15234] windeployqt does not patch paths in Qt5Core anymore if Qt + is configured with -feature-relocatable. + - [QTBUG-75272] Added option -no-virtualkeyboard to disable deployment of + Qt Virtual Keyboard. + +**************************************************************************** +* qdoc * +**************************************************************************** + + - QDoc no longer attempts to run if 'project' configuration variable is + not set; it now fails with an appropriate error message. + + - [QTBUG-80051] 'depends' configuration now accepts '*' as a value, + instructing QDoc to load all available index files as dependencies. diff --git a/dist/changes-5.14.1 b/dist/changes-5.14.1 new file mode 100644 index 0000000..ac11cec --- /dev/null +++ b/dist/changes-5.14.1 @@ -0,0 +1,26 @@ +Qt 5.14.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.14.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.14 series is binary compatible with the 5.13.x series. +Applications compiled for 5.13 will continue to run with 5.14. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* windeployqt * +**************************************************************************** + + - [QTBUG-80806] windeployqt has been fixed to work with MinGW, again. + - [QTBUG-78146] Fixed possible empty content and index widgets when using + Qt Help module. diff --git a/dist/changes-5.14.2 b/dist/changes-5.14.2 new file mode 100644 index 0000000..f90f453 --- /dev/null +++ b/dist/changes-5.14.2 @@ -0,0 +1,24 @@ +Qt 5.14.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.14.0 through 5.14.1. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.14 series is binary compatible with the 5.13.x series. +Applications compiled for 5.13 will continue to run with 5.14. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* qdoc * +**************************************************************************** + + - [QTBUG-82252] Fixed "-F" option on macOS diff --git a/dist/changes-5.15.0 b/dist/changes-5.15.0 new file mode 100644 index 0000000..b061a69 --- /dev/null +++ b/dist/changes-5.15.0 @@ -0,0 +1,58 @@ +Qt 5.15 introduces many new features and improvements as well as bugfixes +over the 5.14.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.15 series is binary compatible with the 5.14.x series. +Applications compiled for 5.14 will continue to run with 5.15. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* QtHelp * +**************************************************************************** + + - QHelpLink data structure has been introduced and used in newly added + documentsForIdentifier() and documentsForKeyword() methods. + - Deprecated linksForIdentifier() and linksForKeyword() methods + in favor of the methods above. + - The QHelpFilterSettings class has been added, describing all + the available filter details. + - The QHelpFilterSettingsWidget class has been added, serving + as an editor for all available filters. + +**************************************************************************** +* Qt Designer * +**************************************************************************** + + - The palette editor dialog has been overhauled. + +**************************************************************************** +* macdeployqt * +**************************************************************************** + + - Added "-hardened-runtime" option to support app notarization. + +**************************************************************************** +* qdoc * +**************************************************************************** + + - QDoc now supports DocBook as an output format. + - Introduced configuration variable 'locationinfo' to drop host-specific + paths from the generated output. + - Added capability to display class/method template parameters in the + generated documentation. + - QDoc now generates correct documentation for enum classes. + - QDoc is now aware of the namespace scope of an \fn command without + requiring fully qualified paths. + - Generate output for arguments passed to the \obsolete command. + - [QTBUG-37355] QDoc now generates a note for the name of the + corresponding handler in \qmlsignal documentation. + - Added support for CMake-based example projects. diff --git a/dist/changes-5.15.1 b/dist/changes-5.15.1 new file mode 100644 index 0000000..018a8c4 --- /dev/null +++ b/dist/changes-5.15.1 @@ -0,0 +1,47 @@ +Qt 5.15.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.15.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.15 series is binary compatible with the 5.14.x series. +Applications compiled for 5.14 will continue to run with 5.15. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt Designer * +**************************************************************************** + + - New command line option --no-scaling allows to disable high-dpi + scaling. + +**************************************************************************** +* qdoc * +**************************************************************************** + + - QDoc now correctly handles templated structs, unions, and type aliases. + +**************************************************************************** +* windeployqt * +**************************************************************************** + + - New command line option --translations allows to pass a comma-separated + list of languages (.qm files) to deploy. + - Fixed an issue where the MSVC Runtime variant (Debug, Release) was + detected incorrectly especially on WinRT. + - Qt3D renderer plugins added in 5.15 are now automatically deployed. + +**************************************************************************** +* macdeployqt * +**************************************************************************** + + - .prl files are not copied anymore to the Resources folder. diff --git a/dist/changes-5.15.2 b/dist/changes-5.15.2 new file mode 100644 index 0000000..fe9d837 --- /dev/null +++ b/dist/changes-5.15.2 @@ -0,0 +1,72 @@ +Qt 5.15.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.15.1. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + + https://doc.qt.io/qt-5.15/index.html + +The Qt version 5.15 series is binary compatible with the 5.14.x series. +Applications compiled for 5.14 will continue to run with 5.15. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Important Behavior Changes * +**************************************************************************** + +**************************************************************************** +* Library * +**************************************************************************** + + - [QTBUG-87802] qdoc: Fix broken links generated by \sincelist + The combination of single-exec mode and outputting to subdirectories + (offline mode) made \sincelist generate href's to new classes and + functions that are missing the target subdirectory. This happened + because we did not pass the relative node to the function(s) that + generate that list - proper link resolution requires a check if the + page containing the \sincelist command comes from a different doc + module, and the relative node is used for that. + The bug was: qdoc: \sincelist generates broken links in certain + conditions + - [QTBUG-84703] qdoc: DocBook generator: Correctly handle enum classes + While commit 46f71fcc fixed handling of enum classes for the code + parser and marker, the DocBook generator has some dedicated code that + also needs to be amended. + The bug was: qdoc: DocBook generator: scoped enums not handled + correctly + - [QTBUG-86988] qdoc: DocBook generator: Remove code for encoding special characters + QXmlStreamWriter already handles this for us. + The bug was: qdoc: DocBook output format: XML special characters are + escaped twice + - [QTBUG-86759] Revert "macdeployqt: Don't copy .prl files into the Resources folder" + This was skipping other files from Resources/ as well, such as + “en-GB.pak” and “QtWebEngineProcess”. This reverts commit + aabba72f7965e06e2e6ed960d8cf8078249dac8c. + The bug was: Missing QtWebEngineProcess Application in application + frameworks + - [QTBUG-84727] QtHelp: Fix documentsFor() when not using filter engine + The bug was: QHelpIndexWidget does not emit documentActivated or + documentsActivated + - [QTBUG-86598] Assistant: fix build with QT_NO_CLIPBOARD + The bug was: Assistant fails to compile if QT_NO_CLIPBOARD is defined + - [QTBUG-86477] Fix static build of assistant + The bug was: [REG 5.15.0->5.15.1] assistant not build when building + whole Qt statically + - [QTBUG-86293] winrtrunner: Remove Windows Phone support + Windows Phone has not been supported for a while now. With newer + Windows versions the functionality causes issues. On build 1909 the + application hangs in CoUninitialize when called with --list-devices + and in build 2004 the needed classes are not registered at all. + The bug was: "winrtrunner --list-devices" hangs + - [QTBUG-86188] qdoc: Fix incorrect loop when processing tagged \fn parameters + This fixes ASSERT: "uint(i) < uint(size())" in file + qt5/qtbase/src/corelib/text/qstring.h, line 1067 + The bug was: qdoc: Crash when using a tagged \fn command + diff --git a/dist/changes-5.2.0 b/dist/changes-5.2.0 new file mode 100644 index 0000000..2beebcc --- /dev/null +++ b/dist/changes-5.2.0 @@ -0,0 +1,59 @@ +Qt 5.2 introduces many new features and improvements as well as bugfixes +over the 5.1.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + + http://qt-project.org/doc/qt-5.2 + +The Qt version 5.2 series is binary compatible with the 5.1.x series. +Applications compiled for 5.1 will continue to run with 5.2. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + http://bugreports.qt-project.org/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* General * +**************************************************************************** + +Qt Assistant +------------ + + +Qt Designer +----------- + + +Qt Linguist +----------- + + - [QTBUG-32196] Fixed search skipping some messages entirely + - [QTBUG-32218] Fixed search generally skipping plural forms + - Fixed search skipping translator comments in multi-language mode + - [QTBUG-14592] Fixed handling of country-less languages like Esperanto + + - lupdate + + * Made the functions lupdate looks for customizable + * Made TR_EXCLUDE work for SUBDIRS and #include statements + * [QTBUG-14056] Added collection of messages from INSTALL and DEPLOYMENT file lists + * [QTBUG-24587] Fixed INCLUDEPATH resolution relative to current project + * Fixed INCLUDEPATH erroneously contributing to VPATH for HEADERS + * [QTBUG-12948] Fixed handling of PO files with obsolete fuzzy messages. + This necessitated the introduction of a new message state, and thus an + increment of the TS file format version to 2.1. + * [QTBUG-27974] Fixed messages from included sources not being collected + * [QTBUG-29131][QTBUG-32725] Fixed handling of incomplete and contradictory meta data + * [QTBUG-18890] Fixed meta data changes being ignored + * [QTBUG-11866] Fixed too aggressive collection of message meta data + * [QTBUG-21876] Fixed numerous C++ parsing issues triggered by comments + * [QTBUG-29998] Fixed parsing of tr() inside brackets (used as a hash key) + * [QTBUG-9276] Fixed parsing of QT_TR_NOOP() in non-array static initializers + * [QTBUG-4393] Fixed parsing of constructors with namespaced parent classes + * Fixed long-standing performance regression relating to processing includes + * Fixed decoding of qml files in non-UTF-8 locales + * Made built-in qmake project parser more accurate and less noisy + * Added -pro-debug option equivalent to qmake -d diff --git a/dist/changes-5.2.1 b/dist/changes-5.2.1 new file mode 100644 index 0000000..430099f --- /dev/null +++ b/dist/changes-5.2.1 @@ -0,0 +1,42 @@ +Qt 5.2.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.2.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + + http://qt-project.org/doc/qt-5.2 + +The Qt version 5.2 series is binary compatible with the 5.1.x series. +Applications compiled for 5.1 will continue to run with 5.2. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + http://bugreports.qt-project.org/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Tools * +**************************************************************************** + +androiddeployqt +--------------- + + - [QTBUG-35401] Debug deployment is now much faster + - [QTBUG-35129] androiddeployqt now updates deployed plugins and + imports when the APK is updated on the device. + +Qt Assistant +------------ + + - mailto links now work again in Qt Assistant. + +Qt Linguist +----------- + + - [QTBUG-35094] TS files are now always written with normalized numerus forms + + - lupdate: + * Tr and TR won't be misinterpreted as tr any more diff --git a/dist/changes-5.6.3 b/dist/changes-5.6.3 new file mode 100644 index 0000000..c4694b0 --- /dev/null +++ b/dist/changes-5.6.3 @@ -0,0 +1,27 @@ +Qt 5.6.3 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.6.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + + http://doc.qt.io/qt-5/index.html + +The Qt version 5.6 series is binary compatible with the 5.5.x series. +Applications compiled for 5.5 will continue to run with 5.6. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Library * +**************************************************************************** + +lupdate +------- + + - [QTBUG-53206] Added qrc resource file support diff --git a/dist/changes-5.7.0 b/dist/changes-5.7.0 new file mode 100644 index 0000000..02bb4b7 --- /dev/null +++ b/dist/changes-5.7.0 @@ -0,0 +1,32 @@ +Qt 5.7 introduces many new features and improvements as well as bugfixes +over the 5.6.x series. Also, there is a change in the licensing terms. +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + + http://doc.qt.io/qt-5/index.html + +The Qt version 5.7 series is binary compatible with the 5.6.x series. +Applications compiled for 5.6 will continue to run with 5.7. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Important License Changes * +**************************************************************************** + + This module is no longer available under LGPLv2.1. The libraries are + now available under the following licenses: + * Commercial License + * GNU General Public License v2.0 (LICENSE.GPL2) and later + * GNU Lesser General Public License v3.0 (LICENSE.LGPL3) + + The tools are now available under the following licenses: + * Commercial License + * GNU General Public License 3.0 (LICENSE.GPL3) with exceptions + described in The Qt Company GPL Exception 1.0 (LICENSE.GPL3-EXCEPT) diff --git a/dist/changes-5.8.0 b/dist/changes-5.8.0 new file mode 100644 index 0000000..3c771f3 --- /dev/null +++ b/dist/changes-5.8.0 @@ -0,0 +1,41 @@ +Qt 5.8 introduces many new features and improvements as well as bugfixes +over the 5.7.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + + http://doc.qt.io/qt-5/index.html + +The Qt version 5.8 series is binary compatible with the 5.7.x series. +Applications compiled for 5.7 will continue to run with 5.8. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +androiddeployqt +--------------- + + - [QTBUG-54147] Fixed problem with ANDROID_DEPLOYMENT_DEPENDENCIES where + last entry in directory would be skipped. + +lupdate +------- + + - [QTBUG-34092] Fixed parsing of #includes without a space before the + file name + - [QTBUG-53206] Added qrc resource file support + +linguist +-------- + + - [QTBUG-35144] Translation validation now recognizes the %Ln marker + - [QTBUG-52020] Fixed widget alignment in length variants view + - [QTBUG-56374] Fixed descriptions of file formats not being translated + +macdeployqt +----------- + + - Added option '-libpath' to search libraries in a custom path. diff --git a/dist/changes-5.9.0 b/dist/changes-5.9.0 new file mode 100644 index 0000000..e113ee6 --- /dev/null +++ b/dist/changes-5.9.0 @@ -0,0 +1,34 @@ +Qt 5.9 introduces many new features and improvements as well as bugfixes +over the 5.8.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.9 series is binary compatible with the 5.8.x series. +Applications compiled for 5.8 will continue to run with 5.9. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +Linguist +-------- + + - [QTBUG-16368] Added capability of checking that the whitespace + surrounding the translations' text matches that of the source strings. + +Assistant +--------- + + - Removed the clucene dependency, used FTS5 from sqlite instead. + - Search results show now the doc excerpt instead of the explicit link. + - Made search results more reliable (e.g.: charset, "UTF-8"). + +QtHelp +----------- + + - Moved the linksForKeyword() method from QHelpIndexModel into QHelpEngineCore. diff --git a/dist/changes-5.9.1 b/dist/changes-5.9.1 new file mode 100644 index 0000000..131dd63 --- /dev/null +++ b/dist/changes-5.9.1 @@ -0,0 +1,63 @@ +Qt 5.9.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.9.0. + +For more details, refer to the documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.9 series is binary compatible with the 5.8.x series. +Applications compiled for 5.8 will continue to run with 5.9. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +General +------- + +- [QTBUG-60926] Fixed building of qdoc documentation with a static Qt. + +androiddeployqt +--------------- + +- [QTBUG-60918] Fixed deployment of QtQuick.Controls 1 and QtQuick.Dialogs. + +macdeployqt +----------- + +- [QTBUG-59609] Icon engines are now deployed. + +qtdiag +------ + +- Show more useful information about styles and platform themes. +- [QTBUG-60962] Changed logic to determine name of ANGLE libraries by + existence. + +Qt Assistant +------------ + +- Fixed the build with qtwebkit. +- Fixed availability of widget arrows in the search result. + +Qt Designer +----------- + +- [QTBUG-61009] Fixed crash in "Go to slot" dialog when no signal is + selected. + + +Qt Property Browser +------------------- + +- Fixed build breakage when qreal is defined as float. + +windeployqt +----------- + +- [QTBUG-61127] Added support of deploying Qt5GamePad with plugins. diff --git a/dist/changes-5.9.2 b/dist/changes-5.9.2 new file mode 100644 index 0000000..8fa99a5 --- /dev/null +++ b/dist/changes-5.9.2 @@ -0,0 +1,28 @@ +Qt 5.9.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.9.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.9 series is binary compatible with the 5.8.x series. +Applications compiled for 5.8 will continue to run with 5.9. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt 5.9.2 Changes * +**************************************************************************** + +androiddeployqt +--------------- + + - [QTBUG-61636] Fixed a crash when using ANDROID_DEPLOYMENT_DEPENDENCIES + to specify the files to deploy. diff --git a/dist/changes-5.9.3 b/dist/changes-5.9.3 new file mode 100644 index 0000000..bb5db63 --- /dev/null +++ b/dist/changes-5.9.3 @@ -0,0 +1,24 @@ +Qt 5.9.3 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.9.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.9 series is binary compatible with the 5.8.x series. +Applications compiled for 5.8 will continue to run with 5.9. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt 5.9.3 Changes * +**************************************************************************** + + - This release contains only minor code improvements. diff --git a/dist/changes-5.9.4 b/dist/changes-5.9.4 new file mode 100644 index 0000000..9a71366 --- /dev/null +++ b/dist/changes-5.9.4 @@ -0,0 +1,28 @@ +Qt 5.9.4 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.9.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.9 series is binary compatible with the 5.8.x series. +Applications compiled for 5.8 will continue to run with 5.9. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt 5.9.4 Changes * +**************************************************************************** + +Build system +------------ + + - [QTBUG-64317] Fixed qt5_add_translation() CMake macro for TS files whose + names contain multiple dots. diff --git a/dist/changes-5.9.5 b/dist/changes-5.9.5 new file mode 100644 index 0000000..eb9f826 --- /dev/null +++ b/dist/changes-5.9.5 @@ -0,0 +1,34 @@ +Qt 5.9.5 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.9.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.9 series is binary compatible with the 5.8.x series. +Applications compiled for 5.8 will continue to run with 5.9. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt 5.9.5 Changes * +**************************************************************************** + +windeployqt +----------- + + - The Qt3DAnimation dll is now deployed when the module is used. + +macdeployqt +----------- + + - [QTBUG-65844] Added support for selecting the file system type to use + when building a .dmg file. Defaults to HFS+ to support a wider range + of macOS versions. diff --git a/dist/changes-5.9.6 b/dist/changes-5.9.6 new file mode 100644 index 0000000..f0179a5 --- /dev/null +++ b/dist/changes-5.9.6 @@ -0,0 +1,24 @@ +Qt 5.9.6 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.9.0 through 5.9.5. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.9 series is binary compatible with the 5.8.x series. +Applications compiled for 5.8 will continue to run with 5.9. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt 5.9.6 Changes * +**************************************************************************** + + - This release contains only minor code improvements. diff --git a/dist/changes-6.0.0 b/dist/changes-6.0.0 new file mode 100644 index 0000000..c7d04ef --- /dev/null +++ b/dist/changes-6.0.0 @@ -0,0 +1,16 @@ +Qt 6.0.0 is a new major version release of Qt. It is not binary compatible with +earlier Qt releases. + +The goal has been to retain as much source compatibility with Qt 5.15 as +possible, but some changes were inevitable to make Qt a better framework. + +To make it easier to port to Qt 6.0, we have created a porting guide to +summarize those changes and provide guidance to handle them. In the guide, you +can find links to articles about changes that may affect your application and +help you transition from Qt 5.15 to Qt 6.0: + +https://doc.qt.io/qt-6/portingguide.html + +For more details refer to the online documentation of Qt 6.0: + +https://doc.qt.io/qt-6/index.html diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 index 0000000..89ea350 --- /dev/null +++ b/examples/CMakeLists.txt @@ -0,0 +1,21 @@ +qt_examples_build_begin(EXTERNAL_BUILD) + +qt_exclude_tool_directories_from_default_target( + assistant +) + +if(TARGET Qt::Widgets) + if(TARGET Qt::Help) + add_subdirectory(help) + endif() + if(QT_FEATURE_linguist) + add_subdirectory(linguist) + endif() + add_subdirectory(uitools) +endif() +if(QT_FEATURE_process AND TARGET Qt::Widgets) + add_subdirectory(designer) + add_subdirectory(assistant) +endif() + +qt_examples_build_end() diff --git a/examples/assistant/CMakeLists.txt b/examples/assistant/CMakeLists.txt new file mode 100644 index 0000000..3d8c97d --- /dev/null +++ b/examples/assistant/CMakeLists.txt @@ -0,0 +1,2 @@ +qt_internal_add_example(simpletextviewer) +qt_internal_add_example(remotecontrol) diff --git a/examples/assistant/assistant.pro b/examples/assistant/assistant.pro new file mode 100644 index 0000000..578c7ff --- /dev/null +++ b/examples/assistant/assistant.pro @@ -0,0 +1,5 @@ +TEMPLATE = subdirs +CONFIG += ordered + +SUBDIRS += simpletextviewer \ + remotecontrol diff --git a/examples/assistant/doc/images/simpletextviewer-example.png b/examples/assistant/doc/images/simpletextviewer-example.png new file mode 100644 index 0000000000000000000000000000000000000000..95d2905393e5e635efdcd7cb164ea7f430adf5a5 GIT binary patch literal 63132 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%0DNofFx1ip%193gqV=;d?qsaO3jesnjh_IM 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 D6f7Si literal 0 HcmV?d00001 diff --git a/examples/assistant/doc/src/remotecontrol.qdoc b/examples/assistant/doc/src/remotecontrol.qdoc new file mode 100644 index 0000000..4e5e4c8 --- /dev/null +++ b/examples/assistant/doc/src/remotecontrol.qdoc @@ -0,0 +1,10 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example remotecontrol + \ingroup examples-qtassistant + \title Remote Control Example + + \brief Using and controlling Qt Assistant as a help viewer. +*/ diff --git a/examples/assistant/doc/src/simpletextviewer.qdoc b/examples/assistant/doc/src/simpletextviewer.qdoc new file mode 100644 index 0000000..2018d00 --- /dev/null +++ b/examples/assistant/doc/src/simpletextviewer.qdoc @@ -0,0 +1,427 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example simpletextviewer + \ingroup examples-qtassistant + \title Simple Text Viewer Example + + \brief Using \QA as a customized help viewer for your application. + + \image simpletextviewer-example.png + + This example shows how to use \QA as a customized help viewer in + a custom application. This is done in two stages. Firstly, + documentation is created and \QA is customized; secondly, the + functionality to launch and control \QA is added to the application. + + The Simple Text Viewer application lets the user select and view + existing files. The application provides its own custom documentation + that is available from the \gui Help menu in the main window's menu bar + or by clicking the \gui Help button in the application's find file + dialog. + + The example consists of four classes: + + \list + \li \c Assistant provides functionality to launch \QA. + \li \c MainWindow is the main application window. + \li \c FindFileDialog allows the user to search for + files using wildcard matching. + \li \c TextEdit provides a rich text browser that makes + sure that images referenced in HTML documents are + displayed properly. + \endlist + + \note We will only comment on the parts of the implementation + that are relevant to the main issue, that is making Qt Assistant + act as a customized help viewer for our Simple Text Viewer + application. + + \section1 Creating Documentation and Customizing \QA + + How to create the actual documentation in the form of HTML pages is + not in the scope of this example. In general, HTML pages can either + be written by hand or generated with the help of documentation tools + like qdoc or Doxygen. For the purposes of this example we assume that + the HTML files have already been created. So, the only thing that + remains to be done is to tell \QA how to structure and display the + help information. + + \section2 Organizing Documentation for \QA + + Plain HTML files only contain text or documentation about specific topics, + but they usually include no information about how several HTML documents + relate to each other or in which order they are supposed to be read. + What is missing is a table of contents along with an index to access + certain help contents quickly, without having to browse through a lot + of documents in order to find a piece of information. + + To organize the documentation and make it available for \QA, we have + to create a Qt help project (.qhp) file. The first and most important + part of the project file is the definition of the namespace. The namespace + has to be unique and will be the first part of the page URL in \QA. + In addition, we have to set a virtual folder which acts as a common + folder for documentation sets. This means, that two documentation sets + identified by two different namespaces can cross reference HTML files + since those files are in one big virtual folder. However, for this + example, we'll only have one documentation set available, so the + virtual folder name and functionality are not important. + + \code + + + org.qt-project.examples.simpletextviewer + doc + \endcode + + The next step is to define the filter section. A filter section + contains the table of contents, indices and a complete list of + all documentation files, and can have any number of filter attributes + assigned to it. A filter attribute is an ordinary string which can + be freely chosen. Later in \QA, users can then define a custom + filter referencing those attributes. If the attributes of a filter + section match the attributes of the custom filter the documentation + will be shown, otherwise \QA will hide the documentation. + + Again, since we'll only have one documentation set, we do not need + the filtering functionality of \QA and can therefore skip the + filter attributes. + + Now, we build up the table of contents. An item in the table is + defined by the \c section tag which contains the attributes for the + item title as well as link to the actual page. Section tags can be + nested infinitely, but for practical reasons it is not recommended + to nest them deeper than three or four levels. For our example we + want to use the following outline for the table of contents: + + \list + \li Simple Text Viewer + \list + \li Find File + \list + \li File Dialog + \li Wildcard Matching + \li Browse + \endlist + \li Open File + \endlist + \endlist + + In the help project file, the outline is represented by: + + \code + + +
+
+
+
+
+
+
+
+ + \endcode + + After the table of contents is defined, we will list all index keywords: + + \code + + + + + + + + + + + + + + + + + \endcode + + As the last step, we have to list all files making up the documentation. + An important point to note here is that all files have to listed, including + image files, and even stylesheets if they are used. + + \code + + browse.html + filedialog.html + findfile.html + index.html + intro.html + openfile.html + wildcardmatching.html + images/browse.png + images/fadedfilemenu.png + images/filedialog.png + images/handbook.png + images/mainwindow.png + images/open.png + images/wildcard.png + + + + \endcode + + The help project file is now finished. If you want to see the resulting + documentation in \QA, you have to generate a Qt compressed help file + out of it and register it with the default help collection of \QA. + + \code + qhelpgenerator simpletextviewer.qhp -o simpletextviewer.qch + assistant -register simpletextviewer.qch + \endcode + + If you start \QA now, you'll see the Simple Text Viewer documentation + beside the Qt documentation. This is OK for testing purposes, but + for the final version we want to only have the Simple Text Viewer + documentation in \QA. + + \section2 Customizing \QA + + The easiest way to make \QA only display the Simple Text Viewer + documentation is to create our own help collection file. A collection + file is stored in a binary format, similar to the compressed help file, + and generated from a help collection project file (*.qhcp). With + the help of a collection file, we can customize the appearance and even + some functionality offered by \QA. + + At first, we change the window title and icon. Instead of showing "\QA" + it will show "Simple Text Viewer", so it is much clearer for the user + that the help viewer actually belongs to our application. + + \code + + + + Simple Text Viewer + images/handbook.png + QtProject/SimpleTextViewer + \endcode + + The \c cacheDirectory tag specifies a subdirectory of the users + data directory (see the + \l{Customizing Qt Assistant#Qt Help Collection Files}{Qt Help Collection Files}) + where the cache file for the full text search or the settings file will + be stored. + + After this, we set the page displayed by \QA when launched for the very + first time in its new configuration. The URL consists of the namespace + and virtual folder defined in the Qt help project file, followed by the + actual page file name. + + \code + qthelp://org.qt-project.examples.simpletextviewer/doc/index.html + \endcode + + Next, we alter the name of the "About" menu item to "About Simple + Text Viewer". The contents of the \gui{About} dialog are also changed + by specifying a file where the about text or icon is taken from. + + \code + + About Simple Text Viewer + + + about.txt + images/icon.png + + \endcode + + \QA offers the possibility to add or remove documentation via its + preferences dialog. This functionality is helpful when using \QA + as the central help viewer for more applications, but in our case + we want to actually prevent the user from removing the documentation. + So, we hide the \gui Documentation tab in the \gui Preferences dialog. + + Since the address bar is not really relevant in such a small + documentation set we switch it off as well. By having just one filter + section, without any filter attributes, we can also disable the filter + functionality of \QA, which means that the filter page and the filter + toolbar will not be available. + + \code + false + false + false + + \endcode + + For testing purposes, we already generated the compressed help file + and registered it with \QA's default help collection. With the + following lines we achieve the same result. The only and important + difference is that we register the compressed help file, not in + the default collection, but in our own collection file. + + \code + + + + simpletextviewer.qhp + simpletextviewer.qch + + + + simpletextviewer.qch + + + + \endcode + + As the last step, we have to generate the binary collection file + out of the help collection project file. This is done by running the + \c qhelpgenerator tool. + + \code + qhelpgenerator simpletextviewer.qhcp -o simpletextviewer.qhc + \endcode + + To test all our customizations made to \QA, we add the collection + file name to the command line: + + \code + assistant -collectionFile simpletextviewer.qhc + \endcode + + \section1 Controlling \QA via the Assistant Class + + We will first take a look at how to start and operate \QA from a + remote application. For that purpose, we create a class called + \c Assistant. + + This class provides a public function that is used to show pages + of the documentation, and one private helper function to make sure + that \QA is up and running. + + Launching \QA is done in the function \c startAssistant() by simply + creating and starting a QProcess. If the process is already running, + the function returns immediately. Otherwise, the process has + to be set up and started. + + \snippet simpletextviewer/assistant.cpp 2 + + To start the process we need the executable name of \QA as well as the + command line arguments for running \QA in a customized mode. The + executable name is a little bit tricky since it depends on the + platform, but fortunately it is only different on \macos. + + The displayed documentation can be altered using the \c -collectionFile + command line argument when launching \QA. When started without any options, + \QA displays a default set of documentation. When Qt is installed, + the default documentation set in \QA contains the Qt reference + documentation as well as the tools that come with Qt, such as Qt + Designer and \c qmake. + + In our example, we replace the default documentation set with our + custom documentation by passing our application-specific collection + file to the process's command line options. + + As the last argument, we add \c -enableRemoteControl, which makes \QA + listen to its \c stdin channel for commands, such as those to display + a certain page in the documentation. + Then we start the process and wait until it is actually running. If, + for some reason \QA cannot be started, \c startAssistant() will return + false. + + The implementation for \c showDocumentation() is now straightforward. + Firstly, we ensure that \QA is running, then we send the request to + display the \a page via the \c stdin channel of the process. It is very + important here that the command is terminated by an end of line token + to flush the channel. + + \snippet simpletextviewer/assistant.cpp 1 + + Finally, we make sure that \QA is terminated properly in the case that + the application is shut down. The destructor of QProcess kills the + process, meaning that the application has no possibility to do things + like save user settings, which would result in corrupted settings files. + To avoid this, we ask \QA to terminate in the destructor of the + \c Assistant class. + + \snippet simpletextviewer/assistant.cpp 0 + + \section1 MainWindow Class + + \image simpletextviewer-mainwindow.png + + The \c MainWindow class provides the main application window with + two menus: the \gui File menu lets the user open and view an + existing file, while the \gui Help menu provides information about + the application and about Qt, and lets the user open \QA to + display the application's documentation. + + To be able to access the help functionality, we initialize the + \c Assistant object in the \c MainWindow's constructor. + + \snippet simpletextviewer/mainwindow.cpp 0 + \dots + \snippet simpletextviewer/mainwindow.cpp 1 + + Then we create all the actions for the Simple Text Viewer application. + Of special interest is the \c assistantAct action accessible + via the \key{F1} shortcut or the \gui Help > \gui {Help Contents} menu item. + This action is connected to the \c showDocumentation() slot of + the \c MainWindow class. + + \snippet simpletextviewer/mainwindow.cpp 4 + \dots + \snippet simpletextviewer/mainwindow.cpp 5 + + In the \c showDocumentation() slot, we call the \c showDocumentation() + function of the \c Assistant class with the URL of home page of the + documentation. + + \snippet simpletextviewer/mainwindow.cpp 3 + + Finally, we must reimplement the protected QWidget::closeEvent() + event handler to ensure that the application's \QA instance is + properly closed before we terminate the application. + + \snippet simpletextviewer/mainwindow.cpp 2 + + \section1 FindFileDialog Class + + \image simpletextviewer-findfiledialog.png + + The Simple Text Viewer application provides a find file dialog + allowing the user to search for files using wildcard matching. The + search is performed within the specified directory, and the user + is given an option to browse the existing file system to find the + relevant directory. + + In the constructor we save the references to the \c Assistant + and \c QTextEdit objects passed as arguments. The \c Assistant + object will be used in the \c FindFileDialog's \c help() slot, + as we will see shortly, while the QTextEdit will be used in the + dialog's \c openFile() slot to display the chosen file. + + \snippet simpletextviewer/findfiledialog.cpp 0 + \dots + \snippet simpletextviewer/findfiledialog.cpp 1 + + The most relevant member to observe in the \c FindFileDialog + class is the private \c help() slot. The slot is connected to the + dialog's \gui Help button, and brings the current \QA instance + to the foreground with the documentation for the dialog by + calling \c Assistant's \c showDocumentation() function. + + \snippet simpletextviewer/findfiledialog.cpp 2 + + \section1 Summary + + In order to make \QA act as a customized help tool for + your application, you must provide your application with a + process that controls \QA in addition to a custom help collection + file including Qt compressed help files. + + For more information about the options and settings available to + applications that use \QA as a custom help viewer, see + \l{Customizing Qt Assistant}. +*/ diff --git a/examples/assistant/remotecontrol/CMakeLists.txt b/examples/assistant/remotecontrol/CMakeLists.txt new file mode 100644 index 0000000..9d5b652 --- /dev/null +++ b/examples/assistant/remotecontrol/CMakeLists.txt @@ -0,0 +1,47 @@ +cmake_minimum_required(VERSION 3.16) +project(remotecontrol LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/assistant/remotecontrol") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) + +qt_add_executable(remotecontrol + main.cpp + remotecontrol.cpp remotecontrol.h remotecontrol.ui +) + +set_target_properties(remotecontrol PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(remotecontrol PUBLIC + Qt::Core + Qt::Gui + Qt::Widgets +) + +# Resources: +set(remotecontrol_resource_files + "enter.png" +) + +qt6_add_resources(remotecontrol "remotecontrol" + PREFIX + "/remotecontrol" + FILES + ${remotecontrol_resource_files} +) + +install(TARGETS remotecontrol + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/assistant/remotecontrol/enter.png b/examples/assistant/remotecontrol/enter.png new file mode 100644 index 0000000000000000000000000000000000000000..f397f4b9c421c1fbdf714b7c914e28d9797a96fc GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#I-3}epz!kr59)wIvL&t&CC>S|xv6<249-QVi6yBi3gww4844j8sS56%z5(x3 zRP%re*^<27T^Rm@;DWu&Cj&+1d%8G=Se#ByP>?fVGBg&L&0r|cEXlB>QcvJKbCPNi z55vu0@?Bp~8ajw|{CDL2pnRO6OyM85sltRtABN9P8h3dnEIh(6VNvOYAL=(75)}S1 z9+`cz&{4urj!?7eIcyB%~I za~OoDO{nMDnkl;TBd>AG1jZhNCc$>a+Ljz9hIcZiYx8O!`vING;OXk;vd$@?2>=~N BWt#v1 literal 0 HcmV?d00001 diff --git a/examples/assistant/remotecontrol/main.cpp b/examples/assistant/remotecontrol/main.cpp new file mode 100644 index 0000000..c4207e2 --- /dev/null +++ b/examples/assistant/remotecontrol/main.cpp @@ -0,0 +1,14 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "remotecontrol.h" + +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + RemoteControl w; + w.show(); + return a.exec(); +} diff --git a/examples/assistant/remotecontrol/remotecontrol.cpp b/examples/assistant/remotecontrol/remotecontrol.cpp new file mode 100644 index 0000000..0456162 --- /dev/null +++ b/examples/assistant/remotecontrol/remotecontrol.cpp @@ -0,0 +1,137 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "remotecontrol.h" + +#include +#include +#include +#include +#include + +RemoteControl::RemoteControl(QWidget *parent, Qt::WindowFlags flags) + : QMainWindow(parent, flags) +{ + ui.setupUi(this); + connect(ui.indexLineEdit, SIGNAL(returnPressed()), + this, SLOT(on_indexButton_clicked())); + connect(ui.identifierLineEdit, SIGNAL(returnPressed()), + this, SLOT(on_identifierButton_clicked())); + connect(ui.urlLineEdit, SIGNAL(returnPressed()), + this, SLOT(on_urlButton_clicked())); + + QString rc; + QTextStream(&rc) << QLatin1String("qthelp://org.qt-project.qtdoc.") + << (QT_VERSION >> 16) << ((QT_VERSION >> 8) & 0xFF) + << (QT_VERSION & 0xFF) + << QLatin1String("/qtdoc/index.html"); + + ui.startUrlLineEdit->setText(rc); + + process = new QProcess(this); + connect(process, SIGNAL(finished(int,QProcess::ExitStatus)), + this, SLOT(helpViewerClosed())); +} + +RemoteControl::~RemoteControl() +{ + if (process->state() == QProcess::Running) { + process->terminate(); + process->waitForFinished(3000); + } +} + +void RemoteControl::on_actionQuit_triggered() +{ + close(); +} + +void RemoteControl::on_launchButton_clicked() +{ + if (process->state() == QProcess::Running) + return; + + QString app = QLibraryInfo::path(QLibraryInfo::BinariesPath); +#if !defined(Q_OS_MAC) + app += QLatin1String("/assistant"); +#else + app += QLatin1String("/Assistant.app/Contents/MacOS/Assistant"); +#endif + + ui.contentsCheckBox->setChecked(true); + ui.indexCheckBox->setChecked(true); + ui.bookmarksCheckBox->setChecked(true); + + QStringList args; + args << QLatin1String("-enableRemoteControl"); + process->start(app, args); + if (!process->waitForStarted()) { + QMessageBox::critical( + this, tr("Remote Control"), + tr("Could not start Qt Assistant from %1.").arg(QDir::toNativeSeparators(app))); + return; + } + + if (!ui.startUrlLineEdit->text().isEmpty()) + sendCommand(QLatin1String("SetSource ") + + ui.startUrlLineEdit->text()); + + ui.launchButton->setEnabled(false); + ui.startUrlLineEdit->setEnabled(false); + ui.actionGroupBox->setEnabled(true); +} + +void RemoteControl::sendCommand(const QString &cmd) +{ + if (process->state() != QProcess::Running) + return; + process->write(cmd.toLocal8Bit() + '\n'); +} + +void RemoteControl::on_indexButton_clicked() +{ + sendCommand(QLatin1String("ActivateKeyword ") + + ui.indexLineEdit->text()); +} + +void RemoteControl::on_identifierButton_clicked() +{ + sendCommand(QLatin1String("ActivateIdentifier ") + + ui.identifierLineEdit->text()); +} + +void RemoteControl::on_urlButton_clicked() +{ + sendCommand(QLatin1String("SetSource ") + + ui.urlLineEdit->text()); +} + +void RemoteControl::on_syncContentsButton_clicked() +{ + sendCommand(QLatin1String("SyncContents")); +} + +void RemoteControl::on_contentsCheckBox_toggled(bool checked) +{ + sendCommand(checked ? + QLatin1String("Show Contents") : QLatin1String("Hide Contents")); +} + +void RemoteControl::on_indexCheckBox_toggled(bool checked) +{ + sendCommand(checked ? + QLatin1String("Show Index") : QLatin1String("Hide Index")); +} + +void RemoteControl::on_bookmarksCheckBox_toggled(bool checked) +{ + sendCommand(checked ? + QLatin1String("Show Bookmarks") : QLatin1String("Hide Bookmarks")); +} + +void RemoteControl::helpViewerClosed() +{ + ui.launchButton->setEnabled(true); + ui.startUrlLineEdit->setEnabled(true); + ui.actionGroupBox->setEnabled(false); +} diff --git a/examples/assistant/remotecontrol/remotecontrol.h b/examples/assistant/remotecontrol/remotecontrol.h new file mode 100644 index 0000000..f5ee0da --- /dev/null +++ b/examples/assistant/remotecontrol/remotecontrol.h @@ -0,0 +1,42 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef REMOTECONTROL_H +#define REMOTECONTROL_H + +#include "ui_remotecontrol.h" + +#include + +QT_BEGIN_NAMESPACE +class QProcess; +QT_END_NAMESPACE + +class RemoteControl : public QMainWindow +{ + Q_OBJECT + +public: + RemoteControl(QWidget *parent = nullptr, Qt::WindowFlags flags = {}); + ~RemoteControl(); + +private: + Ui::RemoteControlClass ui; + QProcess *process; + +private slots: + void on_launchButton_clicked(); + void on_actionQuit_triggered(); + void on_indexButton_clicked(); + void on_identifierButton_clicked(); + void on_urlButton_clicked(); + void on_syncContentsButton_clicked(); + void on_contentsCheckBox_toggled(bool checked); + void on_indexCheckBox_toggled(bool checked); + void on_bookmarksCheckBox_toggled(bool checked); + void helpViewerClosed(); + + void sendCommand(const QString &cmd); +}; + +#endif // REMOTECONTROL_H diff --git a/examples/assistant/remotecontrol/remotecontrol.pro b/examples/assistant/remotecontrol/remotecontrol.pro new file mode 100644 index 0000000..fb9ce4d --- /dev/null +++ b/examples/assistant/remotecontrol/remotecontrol.pro @@ -0,0 +1,12 @@ +TEMPLATE = app +QT += widgets + +HEADERS += remotecontrol.h +SOURCES += main.cpp \ + remotecontrol.cpp +FORMS += remotecontrol.ui +RESOURCES += remotecontrol.qrc + +target.path = $$[QT_INSTALL_EXAMPLES]/assistant/remotecontrol +INSTALLS += target + diff --git a/examples/assistant/remotecontrol/remotecontrol.qrc b/examples/assistant/remotecontrol/remotecontrol.qrc new file mode 100644 index 0000000..9b4299d --- /dev/null +++ b/examples/assistant/remotecontrol/remotecontrol.qrc @@ -0,0 +1,5 @@ + + + enter.png + + diff --git a/examples/assistant/remotecontrol/remotecontrol.ui b/examples/assistant/remotecontrol/remotecontrol.ui new file mode 100644 index 0000000..1cfc7f5 --- /dev/null +++ b/examples/assistant/remotecontrol/remotecontrol.ui @@ -0,0 +1,228 @@ + + RemoteControlClass + + + + 0 + 0 + 344 + 364 + + + + RemoteControl + + + + + + + Start URL: + + + + + + + + + + Launch Qt HelpViewer + + + + + + + Qt::Horizontal + + + + 101 + 20 + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 113 + 16 + + + + + + + + false + + + Actions + + + + + + Search in Index: + + + + + + + 0 + + + + + + + + + + + :/remotecontrol/enter.png + + + + + + + + + Identifier: + + + + + + + 0 + + + + + + + + + + + :/remotecontrol/enter.png + + + + + + + + + Show URL: + + + + + + + 0 + + + + + + + + + + + :/remotecontrol/enter.png + + + + + + + + + Sync Contents + + + + + + + Qt::Horizontal + + + + 81 + 20 + + + + + + + + Show Contents + + + + + + + Show Index + + + + + + + Show Bookmarks + + + + + + + + + + + + 0 + 0 + 344 + 21 + + + + + File + + + + + + + + + Quit + + + + + + + + + diff --git a/examples/assistant/simpletextviewer/CMakeLists.txt b/examples/assistant/simpletextviewer/CMakeLists.txt new file mode 100644 index 0000000..b6b9fcc --- /dev/null +++ b/examples/assistant/simpletextviewer/CMakeLists.txt @@ -0,0 +1,41 @@ +cmake_minimum_required(VERSION 3.16) +project(simpletextviewer LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/assistant/simpletextviewer") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) + +qt_add_executable(simpletextviewer + assistant.cpp assistant.h + findfiledialog.cpp findfiledialog.h + main.cpp + mainwindow.cpp mainwindow.h + textedit.cpp textedit.h +) + +set_target_properties(simpletextviewer PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_compile_definitions(simpletextviewer PUBLIC + SRCDIR="${CMAKE_CURRENT_SOURCE_DIR}/" +) + +target_link_libraries(simpletextviewer PUBLIC + Qt::Core + Qt::Gui + Qt::Widgets +) + +install(TARGETS simpletextviewer + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/assistant/simpletextviewer/assistant.cpp b/examples/assistant/simpletextviewer/assistant.cpp new file mode 100644 index 0000000..69e9b2d --- /dev/null +++ b/examples/assistant/simpletextviewer/assistant.cpp @@ -0,0 +1,111 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "assistant.h" + +#include +#include +#include +#include +#include +#include + +Assistant::Assistant() = default; + +//! [0] +Assistant::~Assistant() +{ + if (!m_process.isNull() && m_process->state() == QProcess::Running) { + QObject::disconnect(m_process.data(), &QProcess::finished, nullptr, nullptr); + m_process->terminate(); + m_process->waitForFinished(3000); + } +} +//! [0] + +//! [1] +void Assistant::showDocumentation(const QString &page) +{ + if (!startAssistant()) + return; + + QByteArray ba("SetSource "); + ba.append("qthelp://org.qt-project.examples.simpletextviewer/doc/"); + + m_process->write(ba + page.toLocal8Bit() + '\n'); +} +//! [1] + +QString documentationDirectory() +{ + QStringList paths; +#ifdef SRCDIR + paths.append(QLatin1String(SRCDIR)); +#endif + paths.append(QLibraryInfo::path(QLibraryInfo::ExamplesPath)); + paths.append(QCoreApplication::applicationDirPath()); + paths.append(QStandardPaths::standardLocations(QStandardPaths::AppDataLocation)); + for (const auto &dir : std::as_const(paths)) { + const QString path = dir + QLatin1String("/documentation"); + if (QFileInfo::exists(path)) + return path; + } + return QString(); +} + +//! [2] +bool Assistant::startAssistant() +{ + if (m_process.isNull()) { + m_process.reset(new QProcess()); + QObject::connect(m_process.data(), &QProcess::finished, + m_process.data(), [this](int exitCode, QProcess::ExitStatus status) { + this->finished(exitCode, status); + }); + } + + if (m_process->state() != QProcess::Running) { + QString app = QLibraryInfo::path(QLibraryInfo::BinariesPath); +#ifndef Q_OS_DARWIN + app += QLatin1String("/assistant"); +#else + app += QLatin1String("/Assistant.app/Contents/MacOS/Assistant"); +#endif + + const QString collectionDirectory = documentationDirectory(); + if (collectionDirectory.isEmpty()) { + showError(tr("The documentation directory cannot be found")); + return false; + } + + QStringList args{QLatin1String("-collectionFile"), + collectionDirectory + QLatin1String("/simpletextviewer.qhc"), + QLatin1String("-enableRemoteControl")}; + + m_process->start(app, args); + + if (!m_process->waitForStarted()) { + showError(tr("Unable to launch Qt Assistant (%1): %2") + .arg(QDir::toNativeSeparators(app), m_process->errorString())); + return false; + } + } + return true; +} +//! [2] + +void Assistant::showError(const QString &message) +{ + QMessageBox::critical(QApplication::activeWindow(), + tr("Simple Text Viewer"), message); +} + +void Assistant::finished(int exitCode, QProcess::ExitStatus status) +{ + const QString stdErr = QString::fromLocal8Bit(m_process->readAllStandardError()); + if (status != QProcess::NormalExit) { + showError(tr("Assistant crashed: ").arg(stdErr)); + } else if (exitCode != 0) { + showError(tr("Assistant exited with %1: %2").arg(exitCode).arg(stdErr)); + } +} diff --git a/examples/assistant/simpletextviewer/assistant.h b/examples/assistant/simpletextviewer/assistant.h new file mode 100644 index 0000000..9c881f9 --- /dev/null +++ b/examples/assistant/simpletextviewer/assistant.h @@ -0,0 +1,30 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef ASSISTANT_H +#define ASSISTANT_H + +#include +#include +#include +#include + + +class Assistant +{ + Q_DECLARE_TR_FUNCTIONS(Assistant) + +public: + Assistant(); + ~Assistant(); + void showDocumentation(const QString &file); + +private: + bool startAssistant(); + void showError(const QString &message); + void finished(int exitCode, QProcess::ExitStatus status); + + QScopedPointer m_process; +}; + +#endif diff --git a/examples/assistant/simpletextviewer/documentation/about.txt b/examples/assistant/simpletextviewer/documentation/about.txt new file mode 100644 index 0000000..eeab35f --- /dev/null +++ b/examples/assistant/simpletextviewer/documentation/about.txt @@ -0,0 +1,9 @@ +The Simple Text Viewer enables the user to select and view existing +files. + +HTML files is displayed using rich text, while other files are +presented as plain text. The application provides a file dialog +allowing the user to search for files using wildcard matching. The +search is performed within in the specified directory, and the user is +given an option to browse the existing file system to find the +relevant directory. diff --git a/examples/assistant/simpletextviewer/documentation/browse.html b/examples/assistant/simpletextviewer/documentation/browse.html new file mode 100644 index 0000000..47e09f5 --- /dev/null +++ b/examples/assistant/simpletextviewer/documentation/browse.html @@ -0,0 +1,34 @@ + + + + Browse + + + +

Browse

+ +

+ The file dialog let you browse the current file system to + specify the directory in which the file you want to open + resides. + Note that only the specified directory will be searched, any + subdirectories will simply be ignored. +

+ +
+
+ + + + +
+ +
+
+

+ See also: File Dialog, Wildcard Matching, + Find File +

+ + + diff --git a/examples/assistant/simpletextviewer/documentation/filedialog.html b/examples/assistant/simpletextviewer/documentation/filedialog.html new file mode 100644 index 0000000..6ebf403 --- /dev/null +++ b/examples/assistant/simpletextviewer/documentation/filedialog.html @@ -0,0 +1,48 @@ + + + + File Dialog + + + +

File Dialog

+ +

+ In the file dialog you can name a particular file name, or + search for files using wildcard matching, i.e. specify a + file name containing wildcards. In addition you must specify + the directory in which the file you search for resides. +

+ +
+
+ + + + +
+ +
+
+

+ By default the dialog will search for all files (*) in the + current directory (the directory the application is run from). +

+ +

+ When editing the file name and directory parameters, an + overview of the matching files are displayed in the + dialog. The overview is updated whenever the parameters + change. +

+ +
+
+

+ See also: Browse, Wildcard Matching, + Find File +

+ + + + diff --git a/examples/assistant/simpletextviewer/documentation/findfile.html b/examples/assistant/simpletextviewer/documentation/findfile.html new file mode 100644 index 0000000..dad66ab --- /dev/null +++ b/examples/assistant/simpletextviewer/documentation/findfile.html @@ -0,0 +1,32 @@ + + + + Find File + + + +

Find File

+ +

+ To open and view a file in the Simple Text Viewer, select the + 'Open...' option in the 'File' menu. The application will then + provide you with a file dialog that you can use to search for + any existing file. +

+ +
+
+ + + + +
+ +
+
+

+ See also: Open File, File Dialog +

+ + + diff --git a/examples/assistant/simpletextviewer/documentation/images/browse.png b/examples/assistant/simpletextviewer/documentation/images/browse.png new file mode 100644 index 0000000000000000000000000000000000000000..86db6b19ebcd8907470b45853a536891ba210bb0 GIT binary patch literal 21553 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 literal 0 HcmV?d00001 diff --git a/examples/assistant/simpletextviewer/documentation/images/fadedfilemenu.png b/examples/assistant/simpletextviewer/documentation/images/fadedfilemenu.png new file mode 100644 index 0000000000000000000000000000000000000000..fde0e43f674ebce4564b3372c69c74b63f4467a8 GIT binary patch literal 9589 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 AjQ{`u literal 0 HcmV?d00001 diff --git a/examples/assistant/simpletextviewer/documentation/images/handbook.png b/examples/assistant/simpletextviewer/documentation/images/handbook.png new file mode 100644 index 0000000000000000000000000000000000000000..3bd2b928b083296cb9b85d0b5fb07106e1fd6f48 GIT binary patch literal 1060 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 literal 0 HcmV?d00001 diff --git a/examples/assistant/simpletextviewer/documentation/images/mainwindow.png b/examples/assistant/simpletextviewer/documentation/images/mainwindow.png new file mode 100644 index 0000000000000000000000000000000000000000..c28d5e9ffe12dc4a390b569097d79d352df5e769 GIT binary patch literal 12769 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 J1o#d7{{ZSp6FdL_ literal 0 HcmV?d00001 diff --git a/examples/assistant/simpletextviewer/documentation/images/open.png b/examples/assistant/simpletextviewer/documentation/images/open.png new file mode 100644 index 0000000000000000000000000000000000000000..1e5bba3c8cdd96c0beb244bf535a94cfb8b69fbf GIT binary patch literal 11697 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
~V`SRk8N!XaLrInSS=`iWM zqQRF`>`KCVTnzta*Iyn{xn7M&`2Vwc%Alw z`@;W-F)CAP_wwA9Kr=Ht69(|y{R;}fJw*Qa$bUclZ#}%fkog}D|8Vh8uy_^Btg~fp+D{5-^T~BDA6)0rZ zRaLFPeWPNmK|B)Qd-H+D3oe)w1M{M*NTmRn-c}6+1H0n{0Op<8P=9~F+v(17#%Dkg z1NG>R)W&{{D)}|$ljcARt-KoOU(Fu2-w(eRm-Dep|LSJCFMjJ zPub}IyF&iW%>R`Y{}n3#@5BE~GxdML;C~k>Ecb_ucRpVFzz{M-?2L zCNwwV_1YBRwl4|)V~u|zDkAc^z3lS`)5i=Pum-?OIFM+PrQ&TiOC7!x4!ESX=FSFF zlV2ghv8fryQd7As2b7neaqcQ4?H)TJTO5%dT4;iFko~*XA^N8L27gu3W_3+8iGKDG zN+dyq03Xa?iscDRYQzN&3kg>krG|AtWMmo(U|o>!qu^;r2n=L)PQIODv=UQ02!0lO zxSe7XZdZfuqzi(Ien$=gJpf0!(MoCPM^J+V=D>Cnoes?;qNA+D7A7U<{uLGyB0a$h z3s#Vsf-HmAKY{j|QfdR^n$IBx&WoNJv_NY!&%wzUOAe^sXN^I&U(CQUid$R|au&2>4{ku>qyO(&l((tWr>Hx+8TZ!`3!@;EeE zp)GJ|?GB4}U6b2>g2Xu!KZkrXoQiI_jBX+icJ3!BFV^U0E_G8KA$UL~{DhBhzXW#25N=*j`t zX)YZa2t2D}qD=St_Hji2#@ECZHlVHD3UKfyt64hUqb~9HB^u?vq#j>_IkJ}7)%}80 z3l;H_w_2H+oR^)Es1@kpUXKEPokTq8-$phc7EkWl4AzV~hE`U7VW3F>dJ~|?uyhVb zw?tMXXOo5@UL}CT=&>^-3n&eO#J)-PYeh7_b^`1TK!THQ{+tvQg^c7GeF@B^`?Ms*-i68sWa^aDZ`xI84oi1V`D ziM*zMltY%fZHE2=dx;>Fvni(n6Q01NCc{J%|KxA&4~cUu4UJGZ%9K>t0xD6<12jR7 zw~w%}LQ561P&sU=#Bc&RSs&Wj4A6%5y^LkSCr|gU8S6bw;k@0<^akeYmt$pWbsd!T zvFr>qB~=R{u$Ur5P^Q{%pQu%PJ$Kxl?4~2l+3L^~N#Y1TfVO!&YVfgOX|#ViSBVYS zj1MF@XEG|c`bDOTMlMidIRjfMC3eQSF(|@@TRC7Pb7^&8e}k%Ap}WF3U?39T^4~p< zNZT5%cK(Q{AmXXN5wW3)QmM0OBxw__A{2kYSXyIi2>L2JQxz1Md3K769V)Nvy*N=B zh`RTzA&cALqQOEwr#F0)*UNhqL8gfwq2yptv>0-L1?y0sfo8iill}1#><+L^O-d|x zY7`rkR@VKTj1PhHE1O1AK@&vI6yIqF^m#Qr*Vr#sy;3jvbl^mGI+M!1BpuU}v=$1?js zHr{~DT5iGAZy*908l&zr|$HT6}rpsD% zS*5?P%fZC@>cVk*wiJksr@*duqj{++`k<>kcCl*FXJ&`>9Z>iI;el4opP0ag1Ic|9 zny{QY$fQ;>tlyxzwj?riYjxMBR=kw8dO5hz@9XTabFvXLS)xyYOD6V07A5yYM%xNL zwKk>i?Fsb#?4VFFSy_O=;!+5$t`dR4$zO*fmcd1JfuHxAwlaqYH9T)@31yw+(;Osm zdikvyj?xIf07Z}MVgt()k-86$9|oQtT7O9m21CqQby{S_&slHEv>zaRa#(PlZMNDF z5Iif=MLd0;uJfrY03%%HyEk7&U=S`veqLVBw{QM|fqKnOpvdFMhQ{lQfB-StHBGX= z6iTOC&z9#k#qty;g@{^El5h&BhEp}#_#c)5aa$xO7E9;wBO0ril&aC)To7cw*%|j& zz|Y`dJ`|KGYh;tnwldP~G&0SmeVqtQidWvmTNVvQC_W^s{R9m9$MZTRWOZW77%3Ta z{`eOIEtB-_Lzq;%^Wp62F0e~h@8QV~>j*`6I$Q`>az2_)-mUlZ>snP)?Sm*=0#P4a zAGkFwrW@;RkmRH#YV$E0Aw2}17vN{p_YuZ0bnGcsvkCGHns4#+L+xIvDv5x_iqh}6sUMN{WR1(Jf0;Sg!l`zTg3&2j|0KQ6Ga>w$}j!sD4-rnYMKeK4)UO?-! zp2q<_QBZ{brIx=kuZ@X~Jr<|) zTJ_0mh^^1$o;3b7{C?`lK1eff(iX@QXw7B4rBu{R@>74)CTbUcjeIzms}bO@FBKH{ zVI3cZZ*DO2**-QvJPbQy2(KeE&dxx`xS<;VoCO@R)XuV%;&J%UEE;mN=A}ZSRxd27 z=~s}bVe^TBRJaO#a5<;I`>@4m(AP5P^`3yIt~fRi6cC*c7j8+I5@J)G%5}7k(`!4= zMiiMK6%K`5D6J@XlW;nmvnv7*1l)`qZ}!&Z%On%`1cmVrcQQYol zui7R&PS!9-2!TJpS1;dvBPAnmiZ}f`^8N23Ay%d4`6DZVVLF zdl*1Z7ybuNG&GJLMH%Vmp3{3NIJzWV?VVbCetf@liQ^{GWD&ZW=%kuu6CK9y1l=PW zsmkIf%Vf-DHJ_6ZAu$w)wi<;anfX|95`9WkZj)B_A4fS;Z!{j9NNn(m2~>-%Reyi8 zGhi_2oR2H3>CGlW(!h-Kem?xhI`Jp07k!y43_loiu-%~KR(iC8R{w!iM!Ug7@+OHp zeAQ8JhcJS>bkmC-I_ssq4Y~`EEKZ0VHb~yEnaX+B>@bmO2|rouv)_48+=*P>#&wcW zZhgM>Uq8*{B54V(=^$9-WYm6)JH&KUk9_&KET?xT2RjQ>ycHY@R!e?mq1^Yq>eNPO zA8zJth)5c`)0=G-i=7A?8CQ3$^jS6^hIaQFOXItv{AvZ=8m5WHwy9bDtFG0myz-D+_Go1P{(njTCBr9@h{vdAld1&lrb^>!tnyZ|euYLuRTNOX%-|ZFWj^7V@FJCydBIsUpH>Q$27s3JH(`o>EY%%M$wNl<^2~*7W~3*%adM3&!vuQv|1ePu_5QOfn`I zrrp8ny?MOpm^AY$F~OqJA!RJx1S9fRE zTu_;qtzCF;p~Ub_U!J)yc~G+O*0%Xiuc7#A=U!&p`@M8u@5&GIt^!sjlGW$mh73N2 z3tq~^A8i!M(S__aooZ($^TrZWCYikyscYW|SzSJ1zk9{)<#KjSBc020Svce6cQ+hv ze^t^*M{RR;k<)U;U?04@&%1mWdQlt`qY2A7IN-l6Y=8H_4KGW%d?rfb_JZACuX>xW zI(>>Bi}Q+`L+hJ#2!on4?gv@x&L>4sbEC|!N<|4}Xd!_q@#0vul5u2TF~M_I;@$nJ zVDX2#>E6c%j;$fviH>l=$Fo^ydFXGRTf_(kTe=$BRDx)>E2(E|R^m&YqQ~un>12IW zMu@{(uf$Yq-o1X-d4ex&W_gNi%)`X{f;-Z7_=)$ zdY`=heF=IkztY4t`Hn1l$E5Uu+$W>{K1WwPJa>=ZaOL-+PK31fS@%!6*P1-8X-{d- zBM%y{XpNiX)oLP9&J%jVJSXUHI757AEJq??xs56A^-JnIY}Mn1ICUL$XQAfppRaoA z4tB#a$-Nm~irvzKJ}RDz{9_MbZ;-LhF^uM|1i5o*XOHoGl+d%^FpJO%ybCIaWhn=iQ)^oUdk`mbrup@5W~al3Y!ATbxS9Th4SE_kAUNL!1uw z)?w=UBA4J)kE2~?x|Od6M@HK^*hc*Jw^PFm%D$v~yrV_I(i;fD`)>wcf0_y6WarN> z9f@$ezelR|LlzN%Es

*$g6iiRC=Q(IYbS@=1s4`&w3~BZDTa+MryX3^Pi(hBw zza;(Ems3DSKYeVfVK@0{$~mebw3HQ_#Tgu9ymqhFCT%ahkgDAojG1^G{kpkcgnu7* z0Aa4`of`)D-fET3N0+o#3sm;(?4Y-s#uudmh}(j}ciFlC>CW6#kndQU)dZNmyc^Pf zy!Cy3=eH+PF@z1JUKWttikE2*KQwGtn(w%c&m3yv~>^ z9WC#4H~8D>*V14&P8@=xCh3_MgUhSIr` zGXXRq(pAT%ptY;yMZSMVP8l*ZywTgPNhjU=$JIf*P65I#*5bz7j4tU~nkIZ( z)q9+e2Gf7UR88xOtK@)2hIt%HJydh$oz*&2G+b!1;$X|PLT9SgzkWmKcefiK-%P1{ zU%1rRL9o^6{=x348vmM!_IDp5HMKXVt6L{^s`byW#)`Fj2e%XM-(=kszG`&OVErWB zwfksyp<&`o8ty40vs!KCpknA*c(d5wUtc1$v$I;W+EG|pEI&9028TD?(c7I!R1;g3 z2<}#t>J9E~KgTfoXg|A9dtm4&;^FbcAid7CUOI_XxV1YYVR*<}uIQD!vz*0O${3X+ zj#Wn4P7LZO+0^kCbcwjzZxx5saJcw-eg>DkiHLE1+&PY$9S$8a-zXPN<^l(ogCgxW zTT_vB#7IQBpSbJFvwVM>iP9Cr6~C*+&w)`11d?3A`|@&_NoTJg!gPW%9~x((FU^I_ zm5=^KE$Sw)w-h}k5RTe~Qd#_H{#bIXPPzI&8RyN;!uJdKI} zX-)M@e3ADmCwVWoe!_ORxp&j?Z@bI9;wdW=r+X-4WdGp4bDwv~=g8K-Z?dYD61M4{ zJQLkWZ{l6;UO7MWmr0kcIM#H&vCm6xC)QIr`dN2&)06ajJ=07FBl(YLr>a4pY^VsI zHrPF8Upk|a52Er&_Bnnx7@lf!i@HX}j2cgolax(a3-!ch`dxrh)_oeUo+({285U(( zN_4KM{4)1QxGy^SYL|4iEf*Q;!V;LAG$SThrDq{v*T4GyYQ0eOiCdV<9WIsXZj;TJ zleT#hlIu-zqhD|HL;|>f_h%x3NTL;Zhu&%pi0Pmpg_W> zZneJb<}2;!lM_pe;Xh1tHCfVFt(I-4DU}Z2ZfYKB1K(g1UKMJ^l&2-6?NMh@ zsabHeNY%_G8C7r)n?~AgqSwsn>Z~2D4D<$@5;+K5s$3nBa|P2`PkGo@RVSRzu#Ax8 zToVwNRL~x!DBjUFTDS5+=6H7;h|MX*uH(&*Y>X!G%i&) zLCQ2VB}MZaRAjW)k`75RH;@z4kU|zC9jDz2waFF-k8`$()vSSLDi7!VpJ6Ioa=dub&u+$PkhNzP)B!0Tm(d%8n~{8+y<;)v8!+`YlBO$lSLh^1LI-jK62pOb`>o{;R+%iCi_JBz)Hv2h zEi}SE^@ibBH~7AL_pbdK<0-c%%3;#OX>rVmr7^yG`+Ir+VTut;>JH!e=dTkKe+Ho@ zyV_|ym>R6N7Fe^p(tN`e;!s9iN119LY;P-IXS>6Yq)#|M~wiTT)PsnLxjE1_?GJ8gd-S{70f&yU`r5#Dd?Iz5Usi)!~*=nof1%^ZbH zzb`iI)!Xbo*z4MD71pDSOicK}AWr-sGg;jVPro;%cHAV))$V*RJfR&dIRz`rQkW15 zrrho~?g4ReapOe>)hHCIEt*jl3RggefjE1ttgXK!CgxAtTs(!ff~uakjbtkm={9)s z$-50_Ft9MF(%7PdGvpD2hlhv1_GaR_jp{6WKi}ToI@kUzF)?ZMKC5%vk?=mf$EOh1 z?J@6#!-qpiOOokydAddCbJ!Y1BL*U*HOy9uW0H@`<0eZKcAW2wq_RAh*$@Bt=~Kvk z%4cO}vNEC~B0YQGIqzX$Vn#+r7HAjMd7s%#K@paS*zx=qFt^?)#RquSv=Tm{{7j6D zN^$J()q{uvJ?-MSw2yX3JYHCH0hSH?_@QKtTkmn;Fj=~Ebl~5ng8}giU0AcqKIy2#Nm* zL=!b^^d@c8ax2q_gb058_|f9GxuE+LZ_NY*1n8c4@|tzrBZW&fcd;s|s3ePd6jMW1 ze>_)Vvql{*QKYgGTXh2_a_N<0Eg99jGZbx>BRjUDYxvEX)wbjWq)4dbHT5$ zy1dK}AEI}1ou8jav(?v6O#BWqFffQP^uehoV;zTw zMktf|DSyc-(yy7IpPA^5=iymCdZdYC^yxw&UsDAkn<&PcZRfkX%AU}tJU)~X?A&R2=5ru&cy7&Knwd2J(43Q zwox7Z!OMYY^&nMMRU!~4Nr5s+1_WF?{&6y27emO@{jDORvhpk#OqG@3la5}G&dnhU z8_iL5%ElDBx!fsXloO>?pbQIMmVtSylov8{cOwBe`St79Cl=K<9~7|Q_F%A9WH6!R z^-xzAj&Ki)T5>3bb$MDSh!lyyM+607k+xG1pHbSD@BHQsz zE4PJ6<=N}OjF;pjd575eWDTB281H-2)1B9Tn3|eS!mbYkC=B(wf9Z&ciN!emh-H(3 z9i=gFiYg8)zB9}EJp6!^^!+DNZw8iR3flbPQu`U9WQ*4xVD!EKC$l~uzcz3&T? zT68Vgd^W5_@QGS!jnI6B^{3cZy`Q-#JS%M{ZujdCWK=XXG{VWaJ~#t`l0Qtpe`lIp zs9&i>1g7}nwmsH*&KRK{lwJGQE&ySYTT=k+IIC(I)~t62SYeFRL2iGpUZ)N$;(ZE_ zDRA5Q>6O92&0YMWKpSQJJcb$q;1AC7A_fk+6y+$+)Gb1h+5xtF%cma%XQhP($uNI2 z_w`xDwc<^FGMp5C=Y{BsrlWiOI!(JspSjkL*DwHc7RJ>Q9bf+Jj%7L3|JLgo<%AXk zX9Yo@gsMF6x(o%KdY;~X5wIfLh(|1tEcl)q&02Oiq5}`(opftC5b~_C9F4N%WBcOj z_+$HNAfC~ITZwSD69|>Gd^Gf%haQl8O^XTxA>cziP^@5Nfq6y%BjgkxjBe_*od5?8 z|K@3+KRj8K1(JuM)PUyjQ_TaoJ<_AlOL8tS9_N?3rd>?yW&~ug{@aqy`aad>r$%hC zB2qo#{qD&1(Q&hq%Ak+R=(L;Pm8pZduIpA`$RM7b#PO+q-uu{!5K29DYyEmToj#q* zNfb$Tv;aQ$wdOtS5Sc^iE&t&bEwUn)@4*Q*7Nl@g;{!&>ZIL`DIQjFDxT@{MCgMVg zjwUG!1KdpdRHoe@uAu5KGde9;XVx?#kNhiNs=egBhErPW_&BK}byv7z+1n8S4Z|&X zIgB{f^Uw;^@Sux{7;^M%%qN-A5^Xx66g^~QMQdh%g>&8p5IQSMjc)52&g36-Z(`BN zVa_u}WM?0i|6E*Lyg1pgg@Cb>1Yg==;=RMSGU7>0NLc2Oi4Y~z8&g*wRpJ_Wwk^iU zZj22vCVPqu0CASEoO6UOC&uRM*gUVhmpz;Dv3#tXOWJ`LF95XEv3g&=i_K+&OA41m zyZD=arT)o!u&~2ClBFYbaE(J-r$D>WeNVJTlG8bi^BDuwh_}~W){UB$G8eF%1Q3m9X=hkUIJF}jJGh?r$QOR2{a ze5w}GQXQkN0g=V5td18WfCfE=&v5|gaqPI~Ik1_6Ow&e;tHBWzXH zgFzAYp1+bWh?^6F-ctN}y?CRs`<8?W*~Od%1ZfO5I+6M)woqM$S=Mi`HT{*}4sY?H zjekfAqP;qhj1N-(CC9bpG$`Uk1Jv@$SMRCIIqJ4xBUN3XTVASYpRssy%nFs^50 zgunW2A*y@SAKo&VW4#A4;xpMgkPOub2&Thl$XJquF7~Pa%d2s)Lkgr|rXcL$Lr3xD zD1xsd+5dU~^B{x>43WqDN6)*bFVfO^fsldyqxS|A_B?ILnn4D7Z4iy3xi^?RQsEw1 zoKSLljzOCz)&A*eC>%uy_FRw6skC)P`edJ<5NZbmcfEfwe5k)H>y0kW04*}wsHV&J z6aFjMBcR^{ww|YiSfX1dJUxJk@U78c!FyTd`bs{&dc^(-D+b9OatIx52ApAr#KE<5SVXT<_ZBo4sRfG*qOC3)9PVq8#Fj-w? zprfF*^tcAvKpF`(b18;=S)jmuAh9z+@UXxNv<@J##g7J+8=zMCd%zHS;)>| ze)iBGwtuFr+*@@oko-*Y7PYvPS-$bw4k@b8=q(bC&<1?6ClEd%to1=n;1mw+J&JW;F+28M8P-ncLUdV zEK)GT`u)fR{Ysng7tP4Fg~_q+@tAD}Rr@tQNMcG^>!HNT9iEz6CXH;R7cz)ePW!o| ze%i81hdJ-i-B~1L2~1VJJKboa#HP3Z?r9km>ynTnsO9JrckVzkEKPOBJ+wn79M=9Y zI;ncMrMSFE(1t55pdib3j6%}0mshQpLKby;TE`6bL+y$P8&1V@>8RB#PR%_1BQ{wn)jjK zjOquxbNh97V*bN!vI5U&YQY@uNQi2ZU_7X3QoqFbX5!H*u~n8}JW?C0^aVgCp0KcR zN`o%F$7)>5bby?W7cRgVFtn4GCJONAi@jp`?253!Z zHFQf~^X+RZU>X;8bH*`+kk%I2&s37@FweN}J~KQul8t!YR=SkRRO))cuHsKXcTudK z>KD4ZH)J)j?;9%OeoayZP=mPtu<&zd{+BPv7tvI@ihAy7sZV_O+X*?8N6)C{C6qrG zx9HWm*(%#15umxcsW>hJ0!+uHICwzh>Rj@tR?~027tOW?BNaQ&FE)))g+;I+`B+R_N7N34Lp4G9@W9Q(ilXAVsf?~ zIsh$pmVke?_(i||tHsD3^>+(hy?YdD)MhjbzZV|bsxtz#Bh&SL;EPn*YzW8L&+_e( zch@H$GFaz`{@c8`r7njxgMkogVcBS0q~PS}9G=UHfYU=*l?I0vS60m7a9tn-*Lvge zu`2AZ4xZTp{BNq>qojftS7@%;pUyxzj@{DE&SztQMu=3lu?${XUY;mutL^G~+V@2u zdkXy(-j^?5bV`ho&%(>U2Lsg5ajs5KM8s?Gt2hvprdpa~RN^BR3Q8F|8FV2Zs2{_c#{mX?=WBiS|X3W|y`FwD=g z1cZcE_?lx$(I8+P>(LzMzy4B5;FYFFEBL<9;3e?aUly}9PN6;B-Fb$!&SqweLQ_*y zs>zS}*w}jd`|S@GTkY5p-sZ!LJ3F=(7D2V`0Qtv;2szA##>F@hJ`AuK&&S5b77-Kk z*qtOwqJ82yRO@1880d3-)CDZq>Te?u8KEEm-2Ykm%D?~`t-*72bc8|%83i#yLWBLs zfsEf{!FOV2hN==Ksv(0pd|2|@ummvqpz*xeu=eSnz7Lq-2eb?B9v+Wq0451Xk%Rqj zFE&b=ZxJ}vM-4)^JLFq{1R>LI3%x!aRagJ|L{Ui@KRT*&bT$i+DIS1Jh7SQh&CSkU zk_=qB^H}uv8q3pMnXa@&IcEO;#ik(SEm|M>)3){lY|wn&n{z~n{LST=A`Sx1>J8oe zaLAs28WE9H?SKse&7Yki3tQXUR~B0XJzcQOz5)sPgo*zROw+L<6to6!8Ee@)w(KKE zyJvcRQTd5@b8%xs9lHAv$=q1TZg}JMjx;i;o*&EbKbTU7% zB;$;wVJ4>wUaw<|h5`b3OE}ljBfn;!YZPDY@8J<3jh9Pp?>$4-09PgI3{-DzZN0ZR z9_Qrb)O>dk#6 z$GtpTTU)vi%&X{Bu2czMJjTUZ>ub-jmHh5t)XbYiQU~5H*}pD&TLqb6^*M z@e)1lt-7tPt@ZL-FD$VKz|IV5z%Wzuzk5)iI(i>KySm0k&mKgfUstycMrX^wGEfYb=qpO=y`~aflPQP=G5~2 zKAC?}c+X`}b?*UdC!o=Jz|;PQ zls~xge^!hTR>Xf@LP5X}{*wxbw%=ig$Z!RLFZ4giWpN%BY}TT{vOs76bcr59GJ#Z6 zRoxr=rUl>ypc7F4i?0Fvi03i+`q-%r z5U)fBo4wEQ3N+0tfV>?L|GL9ZQM=;>T`(3!CrRt2xnAqC@!+xl ztxvPx&12iNypK^Jq+3~8R*I`O&x?E#Gr+fS2&hp#k5XefbkxZ3mcRR490SM+bN6B7 zF$4GuYNw=GX=jS*HIUXf`Cc)iao5z3j8OLTonB!n%%y5{itH}XSKR+u|+R12F!uPT-S%f$q(_?>@QqYFP zj9sUgnvCr8moFmr)6lHexc8h8jkX4_lh@J#>V}5&uK>ww`5mLEsD3P(YKrLi(9r8& zyHgl2AnCuk*hrn4Bzf`l_k!Hz-;}31$vUVlas;(Dxgy|9wRS^#9idaPmK%{_iSH z;LHD}0Q3O3e*UlOzn9Zn5CClm05<>MRfs=_@;m7NvjTY9zi>c<9860~d$KVY4S-5+ zkZE{pfi(146tjtidCyetr(PY46T%Ju`uX;tL&%m5>u6}W;TfGklFYC~MmO)ILkFp#@Z ze+GldS^E0*uNlX1sb@-`Nd~x7%R~S<1em2ZU$@E3Esp(#DHfuZ^w=)*$*@L{Nyshm zf(ZfW$$~Z(i{7{8EWuKI9&>FO3~bEAaTy|+#xnGLB3gJGpK~UE%N{WJkRcU~xciT> zvA&6erh~?pS^_8L3n|>|!5VXN`NJ9&#_i<#=1^Gh|h-zCPkL&EOhs+g}hUyx@0_E&1 z$1fs!y`W&9%LtC!=hF|AlJ0+x0C>|xu@R1Bu617Im=r9g_65giW|!KJ&czQ-2?q@) z1W`_11L7H&y)fVFE0C-9vpba^UwFw+DJ zzOOah7~Z@?Mg~Ul4+}so#=`HVA!KU|YmYIAQ6~VsiXTy63xqND#$7%JFRE{Huwm_RsX)7ku1YF*aqpks z49Jr@j@W4{^Q5K>m3EXk{@5O+4f|{(z|HU?sP{962M;}k|BvjLXP|jPS-SB}<1K0k z^f{qXp}kstO$OH@pxG4J+sVR0DZVkteCiP_7<>0;uC=gW#%obS4QfdzIiVcWOt}+s z&N|<7+7Ap-I!Ac{AiKE!?26)w5w~zOa0VT``TaTHb`!Z?Dq;DsnsPIR5Y!u_)iG8^vz;$WmGW43Q|k)i2UZh`VQ2Hy>7oMPW3-bC?kGwBAu-iKU;Ev0!2}XK)OP^9*{=YRl`!pZJXr! zJq_#GY*?!Qct9zMm;d?rbg$d zJGD64X*F2O05Wd^?$t`02|2VEtG+YpM|qfmPv4w5x5&zzZ3}+3(s}7HSC6W9AWB1* zH+aao-RS9aCmrOFo}NI3p}u0%D4F)#P~5FLq#+kFEch?*1()RyE+-+#M?@EDPk&-a zL#2qxfl$7Sh0MSp56&bwl=eO<|ICJs1-jS?x(sL%IrK{)NSAh;Q4su%Fj2vI30S@^ zQW|*<>C%!jfWMaR*pPu^hL0{^-L*XU-(cs^MM36ya?^!z3ntCe!1<~eo8LdC1~0{w zUB0?@FEW4+4GR4r2JhA-%3^-~JRy8FUtjW%&ZmK%T#iy2p-p-l^Q=W7_E`f|*;8(U z?}O=3{C6L@ieas8tQFr0u(LT_7q?$L_xt + + + Manual + + + +

Simple Text Viewer

+ +

+ The Simple Text Viewer enables the user to select and view + existing files. +

+ +

+ +

+ +

+ HTML files is displayed using rich text, while + other files are presented as plain text. The application + provides a file dialog allowing the user to search for files + using wildcard matching. The search is performed within in the + specified directory, and the user is given an option to browse + the existing file system to find the relevant directory. +

+ + + + + + + diff --git a/examples/assistant/simpletextviewer/documentation/intro.html b/examples/assistant/simpletextviewer/documentation/intro.html new file mode 100644 index 0000000..958619b --- /dev/null +++ b/examples/assistant/simpletextviewer/documentation/intro.html @@ -0,0 +1,28 @@ + + + + Manual + + + +

Simple Text Viewer

+ +

+ The Simple Text Viewer enables the user to select and view + existing files. +

+ +

+ +

+ +

+ The application provides its own custom documentation that is + available through the Help menu in the main window's menubar + and through the Help button in the application's find file + dialog. +

+ + + + diff --git a/examples/assistant/simpletextviewer/documentation/openfile.html b/examples/assistant/simpletextviewer/documentation/openfile.html new file mode 100644 index 0000000..a68b1c1 --- /dev/null +++ b/examples/assistant/simpletextviewer/documentation/openfile.html @@ -0,0 +1,36 @@ + + + + Open File + + + +

Open File

+ +

+ Once the file you want to view appears in the dialog's + display, you can open it in two different ways. +

+ +

+ By pressing the 'Open' button the currently selected file will + be opened. By default, the first file in the list of matching + files is selected. Another way of opening a file is to simply + double click the displayed file name. +

+ +
+
+ + + + +
+ +
+
+

+ See also: Find File +

+ + diff --git a/examples/assistant/simpletextviewer/documentation/simpletextviewer.qch b/examples/assistant/simpletextviewer/documentation/simpletextviewer.qch new file mode 100644 index 0000000000000000000000000000000000000000..1d95f12b79bd5f73b355fa04551e9ffc31782ba2 GIT binary patch literal 155648 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 literal 0 HcmV?d00001 diff --git a/examples/assistant/simpletextviewer/documentation/simpletextviewer.qhc b/examples/assistant/simpletextviewer/documentation/simpletextviewer.qhc new file mode 100644 index 0000000000000000000000000000000000000000..55fead7af66e358548617f090d066cd461143b98 GIT binary patch literal 16384 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 w%+7=m=;z;>&VP|tM0w33Q6O~vJeIl!y?q}nOl + + + Simple Text Viewer + images/handbook.png + QtProject/SimpleTextViewer + qthelp://org.qt-project.examples.simpletextviewer/doc/index.html + + About Simple Text Viewer + + + about.txt + images/icon.png + + false + false + false + + + + + simpletextviewer.qhp + simpletextviewer.qch + + + + simpletextviewer.qch + + + diff --git a/examples/assistant/simpletextviewer/documentation/simpletextviewer.qhp b/examples/assistant/simpletextviewer/documentation/simpletextviewer.qhp new file mode 100644 index 0000000..d33702c --- /dev/null +++ b/examples/assistant/simpletextviewer/documentation/simpletextviewer.qhp @@ -0,0 +1,49 @@ + + + org.qt-project.examples.simpletextviewer + doc + + +
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + browse.html + filedialog.html + findfile.html + index.html + intro.html + openfile.html + wildcardmatching.html + images/browse.png + images/fadedfilemenu.png + images/filedialog.png + images/handbook.png + images/mainwindow.png + images/open.png + images/wildcard.png + + + diff --git a/examples/assistant/simpletextviewer/documentation/wildcardmatching.html b/examples/assistant/simpletextviewer/documentation/wildcardmatching.html new file mode 100644 index 0000000..a6d8a74 --- /dev/null +++ b/examples/assistant/simpletextviewer/documentation/wildcardmatching.html @@ -0,0 +1,57 @@ + + + + Wildcard Matching + + + +

Wildcard Matching

+ +

+ Most command shells such as bash or cmd.exe support "file + globbing", the ability to identify a group of files by using + wildcards. + +
+
+ + + + +
+ +
+
+

+ Wildcard matching provides four features: +

+ +
    +
  • Any character represents itself apart from those + mentioned below. Thus 'c' matches the character 'c'. +
  • +
  • The '?' character matches any single character.
  • +
  • The '*' matches zero or more of any characters.
  • +
  • Sets of characters can be represented in square brackets. + Within the character class, like outside, backslash + has no special meaning. +
  • +
+ +

+ For example we could identify HTML files with + *.html. This will match zero or more characters + followed by a dot followed by 'h', 't', 'm' and 'l'. +

+ +
+
+

+ See also: Browse, File Dialog, + Find File +

+ + + + + diff --git a/examples/assistant/simpletextviewer/findfiledialog.cpp b/examples/assistant/simpletextviewer/findfiledialog.cpp new file mode 100644 index 0000000..78087a3 --- /dev/null +++ b/examples/assistant/simpletextviewer/findfiledialog.cpp @@ -0,0 +1,185 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "assistant.h" +#include "findfiledialog.h" +#include "textedit.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//! [0] +FindFileDialog::FindFileDialog(TextEdit *editor, Assistant *assistant) + : QDialog(editor) +{ + currentAssistant = assistant; + currentEditor = editor; +//! [0] + + createButtons(); + createComboBoxes(); + createFilesTree(); + createLabels(); + createLayout(); + + directoryComboBox->addItem(QDir::toNativeSeparators(QDir::currentPath())); + fileNameComboBox->addItem("*"); + findFiles(); + + setWindowTitle(tr("Find File")); +//! [1] +} +//! [1] + +void FindFileDialog::browse() +{ + QString currentDirectory = directoryComboBox->currentText(); + QString newDirectory = QFileDialog::getExistingDirectory(this, + tr("Select Directory"), currentDirectory); + if (!newDirectory.isEmpty()) { + directoryComboBox->addItem(QDir::toNativeSeparators(newDirectory)); + directoryComboBox->setCurrentIndex(directoryComboBox->count() - 1); + update(); + } +} + +//! [2] +void FindFileDialog::help() +{ + currentAssistant->showDocumentation("filedialog.html"); +} +//! [2] + +void FindFileDialog::openFile() +{ + auto item = foundFilesTree->currentItem(); + if (!item) + return; + + QString fileName = item->text(0); + QString path = QDir(directoryComboBox->currentText()).filePath(fileName); + + currentEditor->setContents(path); + close(); +} + +void FindFileDialog::update() +{ + findFiles(); + buttonBox->button(QDialogButtonBox::Open)->setEnabled( + foundFilesTree->topLevelItemCount() > 0); +} + +void FindFileDialog::findFiles() +{ + QString wildCard = fileNameComboBox->currentText(); + if (!wildCard.endsWith('*')) + wildCard += '*'; + QRegularExpression filePattern(QRegularExpression::wildcardToRegularExpression(wildCard)); + + QDir directory(directoryComboBox->currentText()); + + const QStringList allFiles = directory.entryList(QDir::Files | QDir::NoSymLinks); + QStringList matchingFiles; + + for (const QString &file : allFiles) { + if (filePattern.match(file).hasMatch()) + matchingFiles << file; + } + showFiles(matchingFiles); +} + +void FindFileDialog::showFiles(const QStringList &files) +{ + foundFilesTree->clear(); + + for (int i = 0; i < files.count(); ++i) { + QTreeWidgetItem *item = new QTreeWidgetItem(foundFilesTree); + item->setText(0, files[i]); + } + + if (files.count() > 0) + foundFilesTree->setCurrentItem(foundFilesTree->topLevelItem(0)); +} + +void FindFileDialog::createButtons() +{ + browseButton = new QToolButton; + browseButton->setText(tr("...")); + connect(browseButton, &QAbstractButton::clicked, this, &FindFileDialog::browse); + + buttonBox = new QDialogButtonBox(QDialogButtonBox::Open + | QDialogButtonBox::Cancel + | QDialogButtonBox::Help); + connect(buttonBox, &QDialogButtonBox::accepted, this, &FindFileDialog::openFile); + connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + connect(buttonBox, &QDialogButtonBox::helpRequested, this, &FindFileDialog::help); +} + +void FindFileDialog::createComboBoxes() +{ + directoryComboBox = new QComboBox; + fileNameComboBox = new QComboBox; + + fileNameComboBox->setEditable(true); + fileNameComboBox->setSizePolicy(QSizePolicy::Expanding, + QSizePolicy::Preferred); + + directoryComboBox->setMinimumContentsLength(30); + directoryComboBox->setSizeAdjustPolicy( + QComboBox::AdjustToContents); + directoryComboBox->setSizePolicy(QSizePolicy::Expanding, + QSizePolicy::Preferred); + + connect(fileNameComboBox, &QComboBox::editTextChanged, + this, &FindFileDialog::update); + connect(directoryComboBox, &QComboBox::currentTextChanged, + this, &FindFileDialog::update); +} + +void FindFileDialog::createFilesTree() +{ + foundFilesTree = new QTreeWidget; + foundFilesTree->setColumnCount(1); + foundFilesTree->setHeaderLabels(QStringList(tr("Matching Files"))); + foundFilesTree->setRootIsDecorated(false); + foundFilesTree->setSelectionMode(QAbstractItemView::SingleSelection); + + connect(foundFilesTree, &QTreeWidget::itemActivated, + this, &FindFileDialog::openFile); +} + +void FindFileDialog::createLabels() +{ + directoryLabel = new QLabel(tr("Search in:")); + fileNameLabel = new QLabel(tr("File name (including wildcards):")); +} + +void FindFileDialog::createLayout() +{ + QHBoxLayout *fileLayout = new QHBoxLayout; + fileLayout->addWidget(fileNameLabel); + fileLayout->addWidget(fileNameComboBox); + + QHBoxLayout *directoryLayout = new QHBoxLayout; + directoryLayout->addWidget(directoryLabel); + directoryLayout->addWidget(directoryComboBox); + directoryLayout->addWidget(browseButton); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addLayout(fileLayout); + mainLayout->addLayout(directoryLayout); + mainLayout->addWidget(foundFilesTree); + mainLayout->addStretch(); + mainLayout->addWidget(buttonBox); + setLayout(mainLayout); +} diff --git a/examples/assistant/simpletextviewer/findfiledialog.h b/examples/assistant/simpletextviewer/findfiledialog.h new file mode 100644 index 0000000..6dcd15d --- /dev/null +++ b/examples/assistant/simpletextviewer/findfiledialog.h @@ -0,0 +1,61 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef FINDFILEDIALOG_H +#define FINDFILEDIALOG_H + +#include + +QT_BEGIN_NAMESPACE +class QComboBox; +class QDialogButtonBox; +class QLabel; +class QToolButton; +class QTreeWidget; +class QTreeWidgetItem; +QT_END_NAMESPACE + +class Assistant; +class TextEdit; + +//! [0] +class FindFileDialog : public QDialog +{ + Q_OBJECT + +public: + FindFileDialog(TextEdit *editor, Assistant *assistant); + +private slots: + void browse(); + void help(); + void openFile(); + void update(); + +private: + void findFiles(); + void showFiles(const QStringList &files); + + void createButtons(); + void createComboBoxes(); + void createFilesTree(); + void createLabels(); + void createLayout(); + + Assistant *currentAssistant; + TextEdit *currentEditor; + QTreeWidget *foundFilesTree; + + QComboBox *directoryComboBox; + QComboBox *fileNameComboBox; + + QLabel *directoryLabel; + QLabel *fileNameLabel; + + QDialogButtonBox *buttonBox; + + QToolButton *browseButton; +}; +//! [0] + +#endif diff --git a/examples/assistant/simpletextviewer/main.cpp b/examples/assistant/simpletextviewer/main.cpp new file mode 100644 index 0000000..fb0633c --- /dev/null +++ b/examples/assistant/simpletextviewer/main.cpp @@ -0,0 +1,14 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "mainwindow.h" + +#include + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + MainWindow window; + window.show(); + return app.exec(); +} diff --git a/examples/assistant/simpletextviewer/mainwindow.cpp b/examples/assistant/simpletextviewer/mainwindow.cpp new file mode 100644 index 0000000..321e46d --- /dev/null +++ b/examples/assistant/simpletextviewer/mainwindow.cpp @@ -0,0 +1,109 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "assistant.h" +#include "findfiledialog.h" +#include "mainwindow.h" +#include "textedit.h" + +#include +#include +#include +#include +#include +#include + +// ![0] +MainWindow::MainWindow() +{ + assistant = new Assistant; +// ![0] + textViewer = new TextEdit; + textViewer->setContents(QLibraryInfo::path(QLibraryInfo::ExamplesPath) + + QLatin1String("/assistant/simpletextviewer/documentation/intro.html")); + setCentralWidget(textViewer); + + createActions(); + createMenus(); + + setWindowTitle(tr("Simple Text Viewer")); + resize(750, 400); +// ![1] +} +//! [1] + +//! [2] +void MainWindow::closeEvent(QCloseEvent *) +{ + delete assistant; +} +//! [2] + +void MainWindow::about() +{ + QMessageBox::about(this, tr("About Simple Text Viewer"), + tr("This example demonstrates how to use\n" + "Qt Assistant as help system for your\n" + "own application.")); +} + +//! [3] +void MainWindow::showDocumentation() +{ + assistant->showDocumentation("index.html"); +} +//! [3] + +void MainWindow::open() +{ + FindFileDialog dialog(textViewer, assistant); + dialog.exec(); +} + +//! [4] +void MainWindow::createActions() +{ + assistantAct = new QAction(tr("Help Contents"), this); + assistantAct->setShortcut(QKeySequence::HelpContents); + connect(assistantAct, &QAction::triggered, this, &MainWindow::showDocumentation); +//! [4] + + openAct = new QAction(tr("&Open..."), this); + openAct->setShortcut(QKeySequence::Open); + connect(openAct, &QAction::triggered, this, &MainWindow::open); + + clearAct = new QAction(tr("&Clear"), this); + clearAct->setShortcut(tr("Ctrl+C")); + connect(clearAct, &QAction::triggered, textViewer, &QTextEdit::clear); + + exitAct = new QAction(tr("E&xit"), this); + exitAct->setShortcuts(QKeySequence::Quit); + connect(exitAct, &QAction::triggered, this, &QWidget::close); + + aboutAct = new QAction(tr("&About"), this); + connect(aboutAct, &QAction::triggered, this, &MainWindow::about); + + aboutQtAct = new QAction(tr("About &Qt"), this); + connect(aboutQtAct, &QAction::triggered, QApplication::aboutQt); +//! [5] +} +//! [5] + +void MainWindow::createMenus() +{ + fileMenu = new QMenu(tr("&File"), this); + fileMenu->addAction(openAct); + fileMenu->addAction(clearAct); + fileMenu->addSeparator(); + fileMenu->addAction(exitAct); + + helpMenu = new QMenu(tr("&Help"), this); + helpMenu->addAction(assistantAct); + helpMenu->addSeparator(); + helpMenu->addAction(aboutAct); + helpMenu->addAction(aboutQtAct); + + + menuBar()->addMenu(fileMenu); + menuBar()->addMenu(helpMenu); +} diff --git a/examples/assistant/simpletextviewer/mainwindow.h b/examples/assistant/simpletextviewer/mainwindow.h new file mode 100644 index 0000000..81a5dd1 --- /dev/null +++ b/examples/assistant/simpletextviewer/mainwindow.h @@ -0,0 +1,50 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include + +QT_BEGIN_NAMESPACE +class QAction; +class QMenu; +QT_END_NAMESPACE + +class Assistant; +class TextEdit; + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + MainWindow(); + +private slots: + void about(); + void showDocumentation(); + void open(); + +protected: + void closeEvent(QCloseEvent *event) override; + +private: + void createActions(); + void createMenus(); + + Assistant *assistant; + TextEdit *textViewer; + + QMenu *fileMenu; + QMenu *helpMenu; + + QAction *assistantAct; + QAction *clearAct; + QAction *openAct; + QAction *exitAct; + QAction *aboutAct; + QAction *aboutQtAct; +}; + +#endif diff --git a/examples/assistant/simpletextviewer/simpletextviewer.pro b/examples/assistant/simpletextviewer/simpletextviewer.pro new file mode 100644 index 0000000..b0de7f4 --- /dev/null +++ b/examples/assistant/simpletextviewer/simpletextviewer.pro @@ -0,0 +1,19 @@ +HEADERS = mainwindow.h \ + findfiledialog.h \ + assistant.h \ + textedit.h +SOURCES = main.cpp \ + mainwindow.cpp \ + findfiledialog.cpp \ + assistant.cpp \ + textedit.cpp + +DEFINES += SRCDIR=\\\"$$PWD/\\\" + +QT += widgets + +target.path = $$[QT_INSTALL_EXAMPLES]/assistant/simpletextviewer +docs.files += $$PWD/documentation +docs.path = $$target.path + +INSTALLS += target docs diff --git a/examples/assistant/simpletextviewer/textedit.cpp b/examples/assistant/simpletextviewer/textedit.cpp new file mode 100644 index 0000000..4a1f715 --- /dev/null +++ b/examples/assistant/simpletextviewer/textedit.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "textedit.h" + +#include +#include + +TextEdit::TextEdit(QWidget *parent) + : QTextEdit(parent) +{ + setReadOnly(true); +} + +void TextEdit::setContents(const QString &fileName) +{ + QFileInfo fi(fileName); + srcUrl = QUrl::fromLocalFile(fi.absoluteFilePath()); + QFile file(fileName); + if (file.open(QIODevice::ReadOnly)) { + QString data(file.readAll()); + if (fileName.endsWith(".html")) + setHtml(data); + else + setPlainText(data); + } +} + +QVariant TextEdit::loadResource(int type, const QUrl &name) +{ + if (type == QTextDocument::ImageResource) { + QFile file(srcUrl.resolved(name).toLocalFile()); + if (file.open(QIODevice::ReadOnly)) + return file.readAll(); + } + return QTextEdit::loadResource(type, name); +} diff --git a/examples/assistant/simpletextviewer/textedit.h b/examples/assistant/simpletextviewer/textedit.h new file mode 100644 index 0000000..d75ce2b --- /dev/null +++ b/examples/assistant/simpletextviewer/textedit.h @@ -0,0 +1,23 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef TEXTEDIT_H +#define TEXTEDIT_H + +#include +#include + +class TextEdit : public QTextEdit +{ + Q_OBJECT + +public: + TextEdit(QWidget *parent = nullptr); + void setContents(const QString &fileName); + +private: + QVariant loadResource(int type, const QUrl &name) override; + QUrl srcUrl; +}; + +#endif diff --git a/examples/designer/CMakeLists.txt b/examples/designer/CMakeLists.txt new file mode 100644 index 0000000..0f4a7de --- /dev/null +++ b/examples/designer/CMakeLists.txt @@ -0,0 +1,16 @@ +qt_exclude_tool_directories_from_default_target( + containerextension + taskmenuextension +) + +qt_internal_add_example(calculatorform) +if(QT_BUILD_SHARED_LIBS AND NOT solaris-cc_x_) + qt_internal_add_example(calculatorbuilder) + qt_internal_add_example(worldtimeclockbuilder) +endif() +if(QT_BUILD_SHARED_LIBS) + qt_internal_add_example(containerextension) + qt_internal_add_example(customwidgetplugin) + qt_internal_add_example(taskmenuextension) + qt_internal_add_example(worldtimeclockplugin) +endif() diff --git a/examples/designer/README b/examples/designer/README new file mode 100644 index 0000000..9225074 --- /dev/null +++ b/examples/designer/README @@ -0,0 +1,10 @@ +Qt Designer is a capable graphical user interface designer that lets you +create and configure forms without writing code. GUIs created with +Qt Designer can be compiled into an application or created at run-time. + +Some of the examples in this directory can only be used from within Qt +Designer. + + +Documentation for these examples can be found via the Examples +link in the main Qt documentation. diff --git a/examples/designer/calculatorbuilder/CMakeLists.txt b/examples/designer/calculatorbuilder/CMakeLists.txt new file mode 100644 index 0000000..736d473 --- /dev/null +++ b/examples/designer/calculatorbuilder/CMakeLists.txt @@ -0,0 +1,48 @@ +cmake_minimum_required(VERSION 3.16) +project(calculatorbuilder LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/designer/calculatorbuilder") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui UiTools Widgets) + +qt_add_executable(calculatorbuilder + calculatorform.cpp calculatorform.h + main.cpp +) + +set_target_properties(calculatorbuilder PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(calculatorbuilder PUBLIC + Qt::Core + Qt::Gui + Qt::UiTools + Qt::Widgets +) + +# Resources: +set(calculatorbuilder_resource_files + "calculatorform.ui" +) + +qt6_add_resources(calculatorbuilder "calculatorbuilder" + PREFIX + "/forms" + FILES + ${calculatorbuilder_resource_files} +) + +install(TARGETS calculatorbuilder + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/designer/calculatorbuilder/calculatorbuilder.pro b/examples/designer/calculatorbuilder/calculatorbuilder.pro new file mode 100644 index 0000000..052dbd3 --- /dev/null +++ b/examples/designer/calculatorbuilder/calculatorbuilder.pro @@ -0,0 +1,10 @@ +#! [0] +HEADERS = calculatorform.h +RESOURCES = calculatorbuilder.qrc +SOURCES = calculatorform.cpp \ + main.cpp +QT += widgets uitools +#! [0] + +target.path = $$[QT_INSTALL_EXAMPLES]/designer/calculatorbuilder +INSTALLS += target diff --git a/examples/designer/calculatorbuilder/calculatorbuilder.qrc b/examples/designer/calculatorbuilder/calculatorbuilder.qrc new file mode 100644 index 0000000..19b3905 --- /dev/null +++ b/examples/designer/calculatorbuilder/calculatorbuilder.qrc @@ -0,0 +1,5 @@ + + + calculatorform.ui + + diff --git a/examples/designer/calculatorbuilder/calculatorform.cpp b/examples/designer/calculatorbuilder/calculatorform.cpp new file mode 100644 index 0000000..685bd48 --- /dev/null +++ b/examples/designer/calculatorbuilder/calculatorform.cpp @@ -0,0 +1,57 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +//! [0] +#include +//! [0] +#include +#include +#include +#include + +#include "calculatorform.h" + +//! [1] +CalculatorForm::CalculatorForm(QWidget *parent) + : QWidget(parent) +{ + QUiLoader loader; + + QFile file(":/forms/calculatorform.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = loader.load(&file, this); + file.close(); +//! [1] + +//! [2] + ui_inputSpinBox1 = findChild("inputSpinBox1"); + ui_inputSpinBox2 = findChild("inputSpinBox2"); + ui_outputWidget = findChild("outputWidget"); +//! [2] + +//! [3] + QMetaObject::connectSlotsByName(this); +//! [3] + +//! [4] + QVBoxLayout *layout = new QVBoxLayout; + layout->addWidget(formWidget); + setLayout(layout); + + setWindowTitle(tr("Calculator Builder")); +} +//! [4] + +//! [5] +void CalculatorForm::on_inputSpinBox1_valueChanged(int value) +{ + ui_outputWidget->setText(QString::number(value + ui_inputSpinBox2->value())); +} +//! [5] //! [6] + +//! [6] //! [7] +void CalculatorForm::on_inputSpinBox2_valueChanged(int value) +{ + ui_outputWidget->setText(QString::number(value + ui_inputSpinBox1->value())); +} +//! [7] diff --git a/examples/designer/calculatorbuilder/calculatorform.h b/examples/designer/calculatorbuilder/calculatorform.h new file mode 100644 index 0000000..61f0137 --- /dev/null +++ b/examples/designer/calculatorbuilder/calculatorform.h @@ -0,0 +1,33 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef CALCULATORFORM_H +#define CALCULATORFORM_H + +#include + +QT_BEGIN_NAMESPACE +class QLabel; +class QSpinBox; +QT_END_NAMESPACE + +//! [0] +class CalculatorForm : public QWidget +{ + Q_OBJECT + +public: + explicit CalculatorForm(QWidget *parent = nullptr); + +private slots: + void on_inputSpinBox1_valueChanged(int value); + void on_inputSpinBox2_valueChanged(int value); + +private: + QSpinBox *ui_inputSpinBox1; + QSpinBox *ui_inputSpinBox2; + QLabel *ui_outputWidget; +}; +//! [0] + +#endif diff --git a/examples/designer/calculatorbuilder/calculatorform.ui b/examples/designer/calculatorbuilder/calculatorform.ui new file mode 100644 index 0000000..dda0e62 --- /dev/null +++ b/examples/designer/calculatorbuilder/calculatorform.ui @@ -0,0 +1,303 @@ + + + + + CalculatorForm + + + CalculatorForm + + + + 0 + 0 + 276 + 98 + + + + + 5 + 5 + 0 + 0 + + + + Calculator Builder + + + + + + + 9 + + + 6 + + + + + + + + 1 + + + 6 + + + + + + + + 1 + + + 6 + + + + + label + + + + 1 + 1 + 45 + 19 + + + + Input 1 + + + + + + + inputSpinBox1 + + + + 1 + 26 + 45 + 25 + + + + true + + + + + + + + + label_3 + + + + 54 + 1 + 7 + 52 + + + + + + + + Qt::AlignCenter + + + + + + + + + + 1 + + + 6 + + + + + label_2 + + + + 1 + 1 + 45 + 19 + + + + Input 2 + + + + + + + inputSpinBox2 + + + + 1 + 26 + 45 + 25 + + + + true + + + + + + + + + label_3_2 + + + + 120 + 1 + 7 + 52 + + + + = + + + Qt::AlignCenter + + + + + + + + + + 1 + + + 6 + + + + + label_2_2_2 + + + + 1 + 1 + 37 + 17 + + + + Output + + + + + + + outputWidget + + + + 1 + 24 + 37 + 27 + + + + QFrame::Box + + + QFrame::Sunken + + + 0 + + + Qt::AlignAbsolute|Qt::AlignBottom|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignHorizontal_Mask|Qt::AlignJustify|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing|Qt::AlignVCenter|Qt::AlignVertical_Mask + + + + + + + + + + + verticalSpacer + + + + 85 + 69 + 20 + 20 + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + horizontalSpacer + + + + 188 + 26 + 79 + 20 + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + diff --git a/examples/designer/calculatorbuilder/main.cpp b/examples/designer/calculatorbuilder/main.cpp new file mode 100644 index 0000000..9c19b28 --- /dev/null +++ b/examples/designer/calculatorbuilder/main.cpp @@ -0,0 +1,16 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include + +#include "calculatorform.h" + +int main(int argc, char *argv[]) +{ + Q_INIT_RESOURCE(calculatorbuilder); + + QApplication app(argc, argv); + CalculatorForm calculator; + calculator.show(); + return app.exec(); +} diff --git a/examples/designer/calculatorform/CMakeLists.txt b/examples/designer/calculatorform/CMakeLists.txt new file mode 100644 index 0000000..d68752b --- /dev/null +++ b/examples/designer/calculatorform/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 3.16) +project(calculatorform LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/designer/calculatorform") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) + +qt_add_executable(calculatorform + calculatorform.cpp calculatorform.h calculatorform.ui + main.cpp +) + +set_target_properties(calculatorform PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(calculatorform PUBLIC + Qt::Core + Qt::Gui + Qt::Widgets +) + +install(TARGETS calculatorform + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/designer/calculatorform/calculatorform.cpp b/examples/designer/calculatorform/calculatorform.cpp new file mode 100644 index 0000000..8d5fc88 --- /dev/null +++ b/examples/designer/calculatorform/calculatorform.cpp @@ -0,0 +1,26 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "calculatorform.h" + +//! [0] +CalculatorForm::CalculatorForm(QWidget *parent) + : QWidget(parent) +{ + ui.setupUi(this); +} +//! [0] + +//! [1] +void CalculatorForm::on_inputSpinBox1_valueChanged(int value) +{ + ui.outputWidget->setText(QString::number(value + ui.inputSpinBox2->value())); +} +//! [1] + +//! [2] +void CalculatorForm::on_inputSpinBox2_valueChanged(int value) +{ + ui.outputWidget->setText(QString::number(value + ui.inputSpinBox1->value())); +} +//! [2] diff --git a/examples/designer/calculatorform/calculatorform.h b/examples/designer/calculatorform/calculatorform.h new file mode 100644 index 0000000..bb301ce --- /dev/null +++ b/examples/designer/calculatorform/calculatorform.h @@ -0,0 +1,28 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef CALCULATORFORM_H +#define CALCULATORFORM_H + +//! [0] +#include "ui_calculatorform.h" +//! [0] + +//! [1] +class CalculatorForm : public QWidget +{ + Q_OBJECT + +public: + explicit CalculatorForm(QWidget *parent = nullptr); + +private slots: + void on_inputSpinBox1_valueChanged(int value); + void on_inputSpinBox2_valueChanged(int value); + +private: + Ui::CalculatorForm ui; +}; +//! [1] + +#endif diff --git a/examples/designer/calculatorform/calculatorform.pro b/examples/designer/calculatorform/calculatorform.pro new file mode 100644 index 0000000..0ee1b1f --- /dev/null +++ b/examples/designer/calculatorform/calculatorform.pro @@ -0,0 +1,11 @@ +#! [0] +HEADERS = calculatorform.h +#! [0] #! [1] +FORMS = calculatorform.ui +#! [1] +SOURCES = calculatorform.cpp \ + main.cpp +QT += widgets + +target.path = $$[QT_INSTALL_EXAMPLES]/designer/calculatorform +INSTALLS += target diff --git a/examples/designer/calculatorform/calculatorform.ui b/examples/designer/calculatorform/calculatorform.ui new file mode 100644 index 0000000..3a95639 --- /dev/null +++ b/examples/designer/calculatorform/calculatorform.ui @@ -0,0 +1,284 @@ + + + + + CalculatorForm + + + CalculatorForm + + + + 0 + 0 + 400 + 300 + + + + + 5 + 5 + 0 + 0 + + + + Calculator Form + + + + + + + 9 + + + 6 + + + + + horizontalSpacer + + + + 239 + 9 + 152 + 52 + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + label_3_2 + + + + 169 + 9 + 20 + 52 + + + + = + + + Qt::AlignCenter + + + + + + + + + + 1 + + + 6 + + + + + label_2_2_2 + + + + 1 + 1 + 36 + 17 + + + + Output + + + + + + + outputWidget + + + + 1 + 24 + 36 + 27 + + + + QFrame::Box + + + QFrame::Sunken + + + 0 + + + Qt::AlignAbsolute|Qt::AlignBottom|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignHorizontal_Mask|Qt::AlignJustify|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing|Qt::AlignVCenter|Qt::AlignVertical_Mask + + + + + + + + + verticalSpacer + + + + 89 + 67 + 20 + 224 + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + 1 + + + 6 + + + + + label_2 + + + + 1 + 1 + 46 + 19 + + + + Input 2 + + + + + + + inputSpinBox2 + + + + 1 + 26 + 46 + 25 + + + + + + + + + + label_3 + + + + 63 + 9 + 20 + 52 + + + + + + + + Qt::AlignCenter + + + + + + + + + + 1 + + + 6 + + + + + label + + + + 1 + 1 + 46 + 19 + + + + Input 1 + + + + + + + inputSpinBox1 + + + + 1 + 26 + 46 + 25 + + + + + + + + + + + + diff --git a/examples/designer/calculatorform/main.cpp b/examples/designer/calculatorform/main.cpp new file mode 100644 index 0000000..893c90b --- /dev/null +++ b/examples/designer/calculatorform/main.cpp @@ -0,0 +1,15 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include + +#include "calculatorform.h" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + CalculatorForm calculator; + calculator.show(); + return app.exec(); +} + diff --git a/examples/designer/containerextension/CMakeLists.txt b/examples/designer/containerextension/CMakeLists.txt new file mode 100644 index 0000000..f96695c --- /dev/null +++ b/examples/designer/containerextension/CMakeLists.txt @@ -0,0 +1,38 @@ +cmake_minimum_required(VERSION 3.16) +project(containerextension LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/plugins/designer") + +find_package(Qt6 REQUIRED COMPONENTS Core Designer Gui Widgets) + +qt_add_plugin(containerextension) +target_sources(containerextension PRIVATE + multipagewidget.cpp multipagewidget.h + multipagewidgetcontainerextension.cpp multipagewidgetcontainerextension.h + multipagewidgetextensionfactory.cpp multipagewidgetextensionfactory.h + multipagewidgetplugin.cpp multipagewidgetplugin.h +) + +set_target_properties(containerextension PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(containerextension PUBLIC + Qt::Core + Qt::Designer + Qt::Gui + Qt::Widgets +) + +install(TARGETS containerextension + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/designer/containerextension/containerextension.pro b/examples/designer/containerextension/containerextension.pro new file mode 100644 index 0000000..39b6dc2 --- /dev/null +++ b/examples/designer/containerextension/containerextension.pro @@ -0,0 +1,38 @@ +QTDIR_build { +# This is only for the Qt build. Do not use externally. We mean it. +PLUGIN_TYPE = designer +PLUGIN_CLASS_NAME = MultiPageWidgetPlugin +load(qt_plugin) +CONFIG += install_ok +} else { +# Public example: + +#! [0] +TEMPLATE = lib +CONFIG += plugin +#! [0] + +TARGET = $$qtLibraryTarget($$TARGET) + +target.path = $$[QT_INSTALL_PLUGINS]/designer +INSTALLS += target + +} + +#! [1] +QT += widgets designer +#! [1] + +#! [2] +HEADERS += multipagewidget.h \ + multipagewidgetplugin.h \ + multipagewidgetcontainerextension.h \ + multipagewidgetextensionfactory.h + +SOURCES += multipagewidget.cpp \ + multipagewidgetplugin.cpp \ + multipagewidgetcontainerextension.cpp \ + multipagewidgetextensionfactory.cpp + +OTHER_FILES += multipagewidget.json +#! [2] diff --git a/examples/designer/containerextension/multipagewidget.cpp b/examples/designer/containerextension/multipagewidget.cpp new file mode 100644 index 0000000..5139a2a --- /dev/null +++ b/examples/designer/containerextension/multipagewidget.cpp @@ -0,0 +1,102 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include +#include +#include + +#include "multipagewidget.h" + +MultiPageWidget::MultiPageWidget(QWidget *parent) + : QWidget(parent) + , stackWidget(new QStackedWidget) + , comboBox(new QComboBox) +{ + comboBox->setObjectName(QStringLiteral("__qt__passive_comboBox")); + + connect(comboBox, QOverload::of(&QComboBox::activated), + this, &MultiPageWidget::setCurrentIndex); + + QVBoxLayout *layout = new QVBoxLayout(this); + layout->addWidget(comboBox); + layout->addWidget(stackWidget); +} + +QSize MultiPageWidget::sizeHint() const +{ + return QSize(200, 150); +} + +void MultiPageWidget::addPage(QWidget *page) +{ + insertPage(count(), page); +} + +void MultiPageWidget::removePage(int index) +{ + QWidget *widget = stackWidget->widget(index); + stackWidget->removeWidget(widget); + + comboBox->removeItem(index); +} + +int MultiPageWidget::count() const +{ + return stackWidget->count(); +} + +int MultiPageWidget::currentIndex() const +{ + return stackWidget->currentIndex(); +} + +void MultiPageWidget::insertPage(int index, QWidget *page) +{ + page->setParent(stackWidget); + + stackWidget->insertWidget(index, page); + + QString title = page->windowTitle(); + if (title.isEmpty()) { + title = tr("Page %1").arg(comboBox->count() + 1); + page->setWindowTitle(title); + } + connect(page, &QWidget::windowTitleChanged, + this, &MultiPageWidget::pageWindowTitleChanged); + comboBox->insertItem(index, title); +} + +void MultiPageWidget::setCurrentIndex(int index) +{ + if (index != currentIndex()) { + stackWidget->setCurrentIndex(index); + comboBox->setCurrentIndex(index); + emit currentIndexChanged(index); + } +} + +void MultiPageWidget::pageWindowTitleChanged() +{ + QWidget *page = qobject_cast(sender()); + const int index = stackWidget->indexOf(page); + comboBox->setItemText(index, page->windowTitle()); +} + +QWidget* MultiPageWidget::widget(int index) +{ + return stackWidget->widget(index); +} + +QString MultiPageWidget::pageTitle() const +{ + if (const QWidget *currentWidget = stackWidget->currentWidget()) + return currentWidget->windowTitle(); + return QString(); +} + +void MultiPageWidget::setPageTitle(QString const &newTitle) +{ + if (QWidget *currentWidget = stackWidget->currentWidget()) + currentWidget->setWindowTitle(newTitle); + emit pageTitleChanged(newTitle); +} diff --git a/examples/designer/containerextension/multipagewidget.h b/examples/designer/containerextension/multipagewidget.h new file mode 100644 index 0000000..0f899c9 --- /dev/null +++ b/examples/designer/containerextension/multipagewidget.h @@ -0,0 +1,51 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef MULTIPAGEWIDGET_H +#define MULTIPAGEWIDGET_H + +#include + +QT_BEGIN_NAMESPACE +class QComboBox; +class QStackedWidget; +QT_END_NAMESPACE + +//! [0] +class MultiPageWidget : public QWidget +{ + Q_OBJECT + Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex) + Q_PROPERTY(QString pageTitle READ pageTitle WRITE setPageTitle STORED false) + +public: + explicit MultiPageWidget(QWidget *parent = nullptr); + + QSize sizeHint() const override; + + int count() const; + int currentIndex() const; + QWidget *widget(int index); + QString pageTitle() const; + +public slots: + void addPage(QWidget *page); + void insertPage(int index, QWidget *page); + void removePage(int index); + void setPageTitle(QString const &newTitle); + void setCurrentIndex(int index); + +private slots: + void pageWindowTitleChanged(); + +signals: + void currentIndexChanged(int index); + void pageTitleChanged(const QString &title); + +private: + QStackedWidget *stackWidget; + QComboBox *comboBox; +}; +//! [0] + +#endif diff --git a/examples/designer/containerextension/multipagewidgetcontainerextension.cpp b/examples/designer/containerextension/multipagewidgetcontainerextension.cpp new file mode 100644 index 0000000..d94e91a --- /dev/null +++ b/examples/designer/containerextension/multipagewidgetcontainerextension.cpp @@ -0,0 +1,74 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "multipagewidgetcontainerextension.h" +#include "multipagewidget.h" + +//! [0] +MultiPageWidgetContainerExtension::MultiPageWidgetContainerExtension(MultiPageWidget *widget, + QObject *parent) + : QObject(parent) + , myWidget(widget) +{ +} +//! [0] + +//! [1] +bool MultiPageWidgetContainerExtension::canAddWidget() const +{ + return true; +} + +void MultiPageWidgetContainerExtension::addWidget(QWidget *widget) +{ + myWidget->addPage(widget); +} +//! [1] + +//! [2] +int MultiPageWidgetContainerExtension::count() const +{ + return myWidget->count(); +} +//! [2] + +//! [3] +int MultiPageWidgetContainerExtension::currentIndex() const +{ + return myWidget->currentIndex(); +} +//! [3] + +//! [4] +void MultiPageWidgetContainerExtension::insertWidget(int index, QWidget *widget) +{ + myWidget->insertPage(index, widget); +} +//! [4] + +//! [5] +bool MultiPageWidgetContainerExtension::canRemove(int index) const +{ + Q_UNUSED(index); + return true; +} + +void MultiPageWidgetContainerExtension::remove(int index) +{ + myWidget->removePage(index); +} +//! [5] + +//! [6] +void MultiPageWidgetContainerExtension::setCurrentIndex(int index) +{ + myWidget->setCurrentIndex(index); +} +//! [6] + +//! [7] +QWidget* MultiPageWidgetContainerExtension::widget(int index) const +{ + return myWidget->widget(index); +} +//! [7] diff --git a/examples/designer/containerextension/multipagewidgetcontainerextension.h b/examples/designer/containerextension/multipagewidgetcontainerextension.h new file mode 100644 index 0000000..cecef36 --- /dev/null +++ b/examples/designer/containerextension/multipagewidgetcontainerextension.h @@ -0,0 +1,39 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef MULTIPAGEWIDGETCONTAINEREXTENSION_H +#define MULTIPAGEWIDGETCONTAINEREXTENSION_H + +#include + +QT_BEGIN_NAMESPACE +class QExtensionManager; +QT_END_NAMESPACE +class MultiPageWidget; + +//! [0] +class MultiPageWidgetContainerExtension: public QObject, + public QDesignerContainerExtension +{ + Q_OBJECT + Q_INTERFACES(QDesignerContainerExtension) + +public: + explicit MultiPageWidgetContainerExtension(MultiPageWidget *widget, QObject *parent); + + bool canAddWidget() const override; + void addWidget(QWidget *widget) override; + int count() const override; + int currentIndex() const override; + void insertWidget(int index, QWidget *widget) override; + bool canRemove(int index) const override; + void remove(int index) override; + void setCurrentIndex(int index) override; + QWidget *widget(int index) const override; + +private: + MultiPageWidget *myWidget; +}; +//! [0] + +#endif diff --git a/examples/designer/containerextension/multipagewidgetextensionfactory.cpp b/examples/designer/containerextension/multipagewidgetextensionfactory.cpp new file mode 100644 index 0000000..688470c --- /dev/null +++ b/examples/designer/containerextension/multipagewidgetextensionfactory.cpp @@ -0,0 +1,25 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "multipagewidgetextensionfactory.h" +#include "multipagewidgetcontainerextension.h" +#include "multipagewidget.h" + +//! [0] +MultiPageWidgetExtensionFactory::MultiPageWidgetExtensionFactory(QExtensionManager *parent) + : QExtensionFactory(parent) +{} +//! [0] + +//! [1] +QObject *MultiPageWidgetExtensionFactory::createExtension(QObject *object, + const QString &iid, + QObject *parent) const +{ + MultiPageWidget *widget = qobject_cast(object); + + if (widget && (iid == Q_TYPEID(QDesignerContainerExtension))) + return new MultiPageWidgetContainerExtension(widget, parent); + return nullptr; +} +//! [1] diff --git a/examples/designer/containerextension/multipagewidgetextensionfactory.h b/examples/designer/containerextension/multipagewidgetextensionfactory.h new file mode 100644 index 0000000..9610715 --- /dev/null +++ b/examples/designer/containerextension/multipagewidgetextensionfactory.h @@ -0,0 +1,26 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef MULTIPAGEWIDGETEXTENSIONFACTORY_H +#define MULTIPAGEWIDGETEXTENSIONFACTORY_H + +#include + +QT_BEGIN_NAMESPACE +class QExtensionManager; +QT_END_NAMESPACE + +//! [0] +class MultiPageWidgetExtensionFactory: public QExtensionFactory +{ + Q_OBJECT + +public: + explicit MultiPageWidgetExtensionFactory(QExtensionManager *parent = nullptr); + +protected: + QObject *createExtension(QObject *object, const QString &iid, QObject *parent) const override; +}; +//! [0] + +#endif diff --git a/examples/designer/containerextension/multipagewidgetplugin.cpp b/examples/designer/containerextension/multipagewidgetplugin.cpp new file mode 100644 index 0000000..aef87ca --- /dev/null +++ b/examples/designer/containerextension/multipagewidgetplugin.cpp @@ -0,0 +1,154 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "multipagewidget.h" +#include "multipagewidgetplugin.h" +#include "multipagewidgetextensionfactory.h" + +//! [0] +MultiPageWidgetPlugin::MultiPageWidgetPlugin(QObject *parent) + : QObject(parent) +{ +} + +QString MultiPageWidgetPlugin::name() const +{ + return QLatin1String("MultiPageWidget"); +} + +QString MultiPageWidgetPlugin::group() const +{ + return QLatin1String("Display Widgets [Examples]"); +} + +QString MultiPageWidgetPlugin::toolTip() const +{ + return QString(); +} + +QString MultiPageWidgetPlugin::whatsThis() const +{ + return QString(); +} + +QString MultiPageWidgetPlugin::includeFile() const +{ + return QLatin1String("multipagewidget.h"); +} + +QIcon MultiPageWidgetPlugin::icon() const +{ + return QIcon(); +} + +//! [0] //! [1] +bool MultiPageWidgetPlugin::isContainer() const +{ + return true; +} + +//! [1] //! [2] +QWidget *MultiPageWidgetPlugin::createWidget(QWidget *parent) +{ + MultiPageWidget *widget = new MultiPageWidget(parent); + connect(widget, &MultiPageWidget::currentIndexChanged, + this, &MultiPageWidgetPlugin::currentIndexChanged); + connect(widget, &MultiPageWidget::pageTitleChanged, + this, &MultiPageWidgetPlugin::pageTitleChanged); + return widget; +} + +//! [2] //! [3] +bool MultiPageWidgetPlugin::isInitialized() const +{ + return initialized; +} +//! [3] + +//! [4] +void MultiPageWidgetPlugin::initialize(QDesignerFormEditorInterface *formEditor) +{ + if (initialized) + return; +//! [4] + +//! [5] + QExtensionManager *manager = formEditor->extensionManager(); +//! [5] //! [6] + QExtensionFactory *factory = new MultiPageWidgetExtensionFactory(manager); + + Q_ASSERT(manager != 0); + manager->registerExtensions(factory, Q_TYPEID(QDesignerContainerExtension)); + + initialized = true; +} +//! [6] + +//! [7] +QString MultiPageWidgetPlugin::domXml() const +{ + return QLatin1String(R"( + + + + + + + MultiPageWidget + QWidget + addPage + + +)"); +} +//! [7] + +//! [8] +void MultiPageWidgetPlugin::currentIndexChanged(int index) +{ + Q_UNUSED(index); + MultiPageWidget *widget = qobject_cast(sender()); +//! [8] //! [9] + if (widget) { + QDesignerFormWindowInterface *form = QDesignerFormWindowInterface::findFormWindow(widget); + if (form) + form->emitSelectionChanged(); + } +} +//! [9] + +//! [10] +void MultiPageWidgetPlugin::pageTitleChanged(const QString &title) +{ + Q_UNUSED(title); + MultiPageWidget *widget = qobject_cast(sender()); +//! [10] //! [11] + if (widget) { + QWidget *page = widget->widget(widget->currentIndex()); + QDesignerFormWindowInterface *form; + form = QDesignerFormWindowInterface::findFormWindow(widget); +//! [11] + if (form) { +//! [12] + QDesignerFormEditorInterface *editor = form->core(); + QExtensionManager *manager = editor->extensionManager(); +//! [12] //! [13] + QDesignerPropertySheetExtension *sheet; + sheet = qt_extension(manager, page); + const int propertyIndex = sheet->indexOf(QLatin1String("windowTitle")); + sheet->setChanged(propertyIndex, true); + } + } +} + +//! [13] diff --git a/examples/designer/containerextension/multipagewidgetplugin.h b/examples/designer/containerextension/multipagewidgetplugin.h new file mode 100644 index 0000000..f26f743 --- /dev/null +++ b/examples/designer/containerextension/multipagewidgetplugin.h @@ -0,0 +1,46 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +//! [0] +#ifndef MULTIPAGEWIDGETPLUGIN_H +#define MULTIPAGEWIDGETPLUGIN_H + +#include + +QT_BEGIN_NAMESPACE +class QIcon; +class QWidget; +QT_END_NAMESPACE + +class MultiPageWidgetPlugin: public QObject, public QDesignerCustomWidgetInterface +{ + Q_OBJECT +//! [1] + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidget") +//! [1] + Q_INTERFACES(QDesignerCustomWidgetInterface) +public: + explicit MultiPageWidgetPlugin(QObject *parent = nullptr); + + QString name() const override; + QString group() const override; + QString toolTip() const override; + QString whatsThis() const override; + QString includeFile() const override; + QIcon icon() const override; + bool isContainer() const override; + QWidget *createWidget(QWidget *parent) override; + bool isInitialized() const override; + void initialize(QDesignerFormEditorInterface *formEditor) override; + QString domXml() const override; + +private slots: + void currentIndexChanged(int index); + void pageTitleChanged(const QString &title); + +private: + bool initialized = false; +}; + +#endif +//! [0] diff --git a/examples/designer/customwidgetplugin/CMakeLists.txt b/examples/designer/customwidgetplugin/CMakeLists.txt new file mode 100644 index 0000000..007a524 --- /dev/null +++ b/examples/designer/customwidgetplugin/CMakeLists.txt @@ -0,0 +1,36 @@ +cmake_minimum_required(VERSION 3.16) +project(customwidgetplugin LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/plugins/designer") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui UiPlugin Widgets) + +qt_add_plugin(customwidgetplugin) +target_sources(customwidgetplugin PRIVATE + analogclock.cpp analogclock.h + customwidgetplugin.cpp customwidgetplugin.h +) + +set_target_properties(customwidgetplugin PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(customwidgetplugin PUBLIC + Qt::Core + Qt::Gui + Qt::UiPlugin + Qt::Widgets +) + +install(TARGETS customwidgetplugin + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/designer/customwidgetplugin/analogclock.cpp b/examples/designer/customwidgetplugin/analogclock.cpp new file mode 100644 index 0000000..8d0f4e4 --- /dev/null +++ b/examples/designer/customwidgetplugin/analogclock.cpp @@ -0,0 +1,76 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "analogclock.h" + +#include +#include +#include +#include + +AnalogClock::AnalogClock(QWidget *parent) + : QWidget(parent) +{ + QTimer *timer = new QTimer(this); + connect(timer, &QTimer::timeout, this, QOverload<>::of(&QWidget::update)); + timer->start(1000); + + setWindowTitle(tr("Analog Clock")); + resize(200, 200); +} + +void AnalogClock::paintEvent(QPaintEvent *) +{ + static const QPoint hourHand[3] = { + QPoint(7, 8), + QPoint(-7, 8), + QPoint(0, -40) + }; + static const QPoint minuteHand[3] = { + QPoint(7, 8), + QPoint(-7, 8), + QPoint(0, -70) + }; + + QColor hourColor(127, 0, 127); + QColor minuteColor(0, 127, 127, 191); + + int side = qMin(width(), height()); + QTime time = QTime::currentTime(); + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + painter.translate(width() / 2, height() / 2); + painter.scale(side / 200.0, side / 200.0); + + painter.setPen(Qt::NoPen); + painter.setBrush(hourColor); + + painter.save(); + painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0))); + painter.drawConvexPolygon(hourHand, 3); + painter.restore(); + + painter.setPen(hourColor); + + for (int i = 0; i < 12; ++i) { + painter.drawLine(88, 0, 96, 0); + painter.rotate(30.0); + } + + painter.setPen(Qt::NoPen); + painter.setBrush(minuteColor); + + painter.save(); + painter.rotate(6.0 * (time.minute() + time.second() / 60.0)); + painter.drawConvexPolygon(minuteHand, 3); + painter.restore(); + + painter.setPen(minuteColor); + + for (int j = 0; j < 60; ++j) { + if ((j % 5) != 0) + painter.drawLine(92, 0, 96, 0); + painter.rotate(6.0); + } +} diff --git a/examples/designer/customwidgetplugin/analogclock.h b/examples/designer/customwidgetplugin/analogclock.h new file mode 100644 index 0000000..073f99e --- /dev/null +++ b/examples/designer/customwidgetplugin/analogclock.h @@ -0,0 +1,21 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef ANALOGCLOCK_H +#define ANALOGCLOCK_H + +#include +#include + +class QDESIGNER_WIDGET_EXPORT AnalogClock : public QWidget +{ + Q_OBJECT + +public: + explicit AnalogClock(QWidget *parent = nullptr); + +protected: + void paintEvent(QPaintEvent *event) override; +}; + +#endif diff --git a/examples/designer/customwidgetplugin/customwidgetplugin.cpp b/examples/designer/customwidgetplugin/customwidgetplugin.cpp new file mode 100644 index 0000000..11d8bd7 --- /dev/null +++ b/examples/designer/customwidgetplugin/customwidgetplugin.cpp @@ -0,0 +1,119 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "analogclock.h" +#include "customwidgetplugin.h" + +#include + +//! [0] +AnalogClockPlugin::AnalogClockPlugin(QObject *parent) + : QObject(parent) +{ +} +//! [0] + +//! [1] +void AnalogClockPlugin::initialize(QDesignerFormEditorInterface * /* core */) +{ + if (initialized) + return; + + initialized = true; +} +//! [1] + +//! [2] +bool AnalogClockPlugin::isInitialized() const +{ + return initialized; +} +//! [2] + +//! [3] +QWidget *AnalogClockPlugin::createWidget(QWidget *parent) +{ + return new AnalogClock(parent); +} +//! [3] + +//! [4] +QString AnalogClockPlugin::name() const +{ + return QStringLiteral("AnalogClock"); +} +//! [4] + +//! [5] +QString AnalogClockPlugin::group() const +{ + return QStringLiteral("Display Widgets [Examples]"); +} +//! [5] + +//! [6] +QIcon AnalogClockPlugin::icon() const +{ + return QIcon(); +} +//! [6] + +//! [7] +QString AnalogClockPlugin::toolTip() const +{ + return QString(); +} +//! [7] + +//! [8] +QString AnalogClockPlugin::whatsThis() const +{ + return QString(); +} +//! [8] + +//! [9] +bool AnalogClockPlugin::isContainer() const +{ + return false; +} +//! [9] + +//! [10] +QString AnalogClockPlugin::domXml() const +{ + return QLatin1String(R"( + + +)" +//! [11] +R"( + + + 0 + 0 + 100 + 100 + + +") +//! [11] +R"( + + The current time + + + The analog clock widget displays the current time. + + + +)"); +} +//! [10] + +//! [12] +QString AnalogClockPlugin::includeFile() const +{ + return QStringLiteral("analogclock.h"); +} +//! [12] diff --git a/examples/designer/customwidgetplugin/customwidgetplugin.h b/examples/designer/customwidgetplugin/customwidgetplugin.h new file mode 100644 index 0000000..90afe42 --- /dev/null +++ b/examples/designer/customwidgetplugin/customwidgetplugin.h @@ -0,0 +1,35 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef CUSTOMWIDGETPLUGIN_H +#define CUSTOMWIDGETPLUGIN_H + +#include + +//! [0] +class AnalogClockPlugin : public QObject, public QDesignerCustomWidgetInterface +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface") + Q_INTERFACES(QDesignerCustomWidgetInterface) +public: + explicit AnalogClockPlugin(QObject *parent = nullptr); + + bool isContainer() const override; + bool isInitialized() const override; + QIcon icon() const override; + QString domXml() const override; + QString group() const override; + QString includeFile() const override; + QString name() const override; + QString toolTip() const override; + QString whatsThis() const override; + QWidget *createWidget(QWidget *parent) override; + void initialize(QDesignerFormEditorInterface *core) override; + +private: + bool initialized = false; +}; +//! [0] + +#endif diff --git a/examples/designer/customwidgetplugin/customwidgetplugin.pro b/examples/designer/customwidgetplugin/customwidgetplugin.pro new file mode 100644 index 0000000..1447acd --- /dev/null +++ b/examples/designer/customwidgetplugin/customwidgetplugin.pro @@ -0,0 +1,32 @@ +#! [0] +QT += widgets uiplugin +#! [0] + +QTDIR_build { +# This is only for the Qt build. Do not use externally. We mean it. +PLUGIN_TYPE = designer +PLUGIN_CLASS_NAME = AnalogClockPlugin +load(qt_plugin) +CONFIG += install_ok +} else { +# Public example: + +#! [2] +CONFIG += plugin +TEMPLATE = lib +#! [2] + +TARGET = $$qtLibraryTarget($$TARGET) + +target.path = $$[QT_INSTALL_PLUGINS]/designer +INSTALLS += target + +} + +#! [3] +HEADERS = analogclock.h \ + customwidgetplugin.h +SOURCES = analogclock.cpp \ + customwidgetplugin.cpp +OTHER_FILES += analogclock.json +#! [3] diff --git a/examples/designer/designer.pro b/examples/designer/designer.pro new file mode 100644 index 0000000..3ffd443 --- /dev/null +++ b/examples/designer/designer.pro @@ -0,0 +1,20 @@ +TEMPLATE = subdirs +SUBDIRS = calculatorform + +!contains(CONFIG, static) { + SUBDIRS += calculatorbuilder \ + containerextension \ + customwidgetplugin \ + taskmenuextension \ + worldtimeclockbuilder \ + worldtimeclockplugin +} + +# the sun cc compiler has a problem with the include lines for the form.prf +solaris-cc*:SUBDIRS -= calculatorbuilder \ + worldtimeclockbuilder + +qtNomakeTools( \ + containerextension \ + taskmenuextension \ +) diff --git a/examples/designer/doc/images/arthurplugin-demo.png b/examples/designer/doc/images/arthurplugin-demo.png new file mode 100644 index 0000000000000000000000000000000000000000..6d372c2580b14860b8566f82a2d7e0bd083294f2 GIT binary patch literal 77481 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

^>)&nqOb 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 literal 0 HcmV?d00001 diff --git a/examples/designer/doc/images/calculatorbuilder-example.png b/examples/designer/doc/images/calculatorbuilder-example.png new file mode 100644 index 0000000000000000000000000000000000000000..561e5000586d39844578aace25ef8e23591661b0 GIT binary patch literal 4326 zcmai2cTiK?w~ipa2ue{p;ZmiDO7EIT6a)-i2%$&`MWi<&AjJSe%#|V%L@;zjL^>ge zfG9`{J(LIt7!X7VMEZ;V=Dv6TcyHd!cg~)@&Tebg{?@nVBwLsnbFmAt0{{T7>ktr> z-csmK6e~0Rjmasg004MiT?ZLig_G9uBJS~7i**knD~V7OCi`BPy;51A(FvtnMxYL9 zpeI0D(N@9`Xk=(%0TR5$V-!FAFg95vQ0`-aqO-&a&{sRoD<7Gfnj~Yf3~g&<4u9|B z{p~x&p2VQ&mKDoOKfaNp4tsx0{n*B6SffhWEw|uGtNKMFEZpM85Aoc}m)aEb+!D*A?>+wUxhRK8H6j32yzcAL1= zbrkDIS&RSJl|I4#P@NO#H-o@)s1Od+w`1Ij;m!_``x1d~r0U-naz5T0o-*S>fOS>xA z=AR5>UzZP5E43c>Bs4rId}8Ez{_MRl-L9e%P=q_JU9rB>S-_!O-FqByg=UMiTi|6n zl^O`2@*);$Shut>w~pYmvz|v^Le@iq^s}Q#Nk+IKm_b+pI5$k*Wy4lEct!gLYmEt7 zRe2Y?bYFS=N5}82QohK)BZWkjQa>V^Bezx3e1cb~5u{uUe2#$U_m2DKmrEcCRqX~) z8y8~`w)JaxSX)edN{abVcYd^g)A4$G365GTN3%Wdv*^mQ{_JWp`e7j?*J6NhCNoqs zzc<=1KACvZzK(R23Vr(=*q2Y=+CQBhx%3&ry#n_Zn%6srAXs>@kxpclORZ%7+7@P3E-rwf_^LYF4*> zWL0g)uH(9o@M5(^l(*EfLD|?D6_mMI5J98cg$J>`eqFhCWka7!M4g-{yP{TPR5(`SI52!|ic3?WeFS$yb-PdfX*8Y2%Tm zg&AOq>&f|MU4@_vo1$v=*~5YGbEOIn>!gs`9Zvzon#`@u_m{Op4-{c7p?T>ddRN~r zAAfhv_GEKt5XZs8mgLY+8t@(6B8d73Yad!qW}D+mI0+fO7jo0FB4!$lbZRseRDtmx z2G2G`k;`i3qYYsA@I+;=kTJjM^E*Flk3C9Vdlfw1xC^wkEv^5&(V1hW;{8`0c1V>u+K6}mUA}+ zDo`@~ILy*(44+oGo&~=sx`^jT#C;@Z$F#w4Zv$^2?h_UE!r#+e$#ysI)hMHF0^vvf zxjk7ep${KH1P}s?!lWF`>dy~S2Ilc$hbrbc&;FS&)xDPzFRvwBUf;^>S;zpUQS|It zJ!Um>L9;vL8rXkao?2`}QNt=i2fxgH3O@L%l^s1?FUCXBf**hPimKn489vG_NKvYI z+Lcw#CE${uaQ%i3c3_cEf2;q#_hw+_StB1GhQv&`1^ZaFgS{bE)vw97`{s;sKS7~0e&jxps_htG6QReQwPeQfs?dq6EEoS5m2Wo#t z8&E^~zN}dssb=GU83l=Gpz&*M`hDX$x_|GSyI}ID*j>Xs-SNXqHF((8Htj_iA=FXl z=jV5SF4rp?zcV1+oc6`pP8*4-@S+fdBGGLG0XiH<=Ad?5=V^$pFi)4r5Do~+BYU4Ohs^(T#FHi)(a%DEv6 zc#5_N!s=^58Rk#%&tz^MW0nwvEqbbDn z=wvIyiaMCODQS{H;By9JUs{TM{r9ljg6WjE1Vo@gp5c{QF zf*9l9e*$olmq#8@@E1{O>SAeat<}Ay&*uP!0L*Qys*fs&9Y9Ac( z<rV@vj+`+gy>T

VkWf8mv|zE{O*R_lI6nslit#N6IYAuB8d}ECicv znZ~tkc`0tmnm#ogEw_GYEFL|g8ox1e%`Vj{243%bj&4l7+jbZ#r0SYrqKDK`$p8tl z9z&M;a%HP%5Bdxg&DN1FE(Ha?eb3Z_S6?-xhB3cqU6DOv5?_KR@az6(cL!yX#Og9ElM=Z^m7GW{Z*K2q*{AYb5npgY9 zSI1tRK@cRFFbdow-2YjA;BRS@Z*RKAw!SGNB>Y9VL^LfT7UcBxop!^PC@r$Un`UML z8fRPIoWSf&M$9Qdk-t30t6=jvZq@pc7++HDbw`H*td`~U#60C_W3Gb|$0GIuixs)` z5FLjO>Pq3S4W>W?`jpX8`#Wp%Q63(}9pbvtOBV&2bx(wQOU;8<=x*jh4k_YsQN&4%ZFig@KDsj=`NbH; zXT*B^g((W}eCmH=Nw_J41Qf+*vD}{*&psr-1x+}>jXyH={VQ!0KqsI(Wi#_c ze3wlmwN_e}zx=h7Jm_{ZFq466L}qHBSLF@pK+q>4t>?5nix!9UV_{lBBQ?Q29Qg>x zQ#JtX)3Wkq^9Ok+I`bl2eyaA;SzHDOJL3slb{+A**9W z85w*Ipl1Oa)hCt#8Q)eXl%Oq#Qs8HK4$g*);?}Jeg7WBR_`AfO%=6&L&ren7y9veoklpb~ ztf0?=yIF*28Hx{KWVAckgu{VwyPgc;E=oF}W>4gE>F<09i32HcC%r=KqK;UgLtweCM54`H1d3)V)BE1Q@5ab?37G=d; zaFBOO2ejvKEnS*H9;!oMxY-|><^JBUxz|U~tvM=4yW60_b3AxlAr8AvniH3Y!r2}Q z8{-=r4{|q7*@3BPQZdnHta9?#b#rU3;%vl6Smr-q@{TaTy1n(P`$&xu@%9b>o(=D# z1J)!YUZGIDom1#Cq>>P`yXjsIZzK4joxg{Njf>Np9W)=})+e^!gm_4VK*vj2Cy&AU znwpEM+8Z5_`caeH7q6D$TYMUjI0#2dx;^u2rujNUdI{@%7sGKkpHX`>HDjFNl%PmJ zdmfS+A_+x}r~vgI!<-HIWB0T%Kq9`Qi`nYv)@VFL6556ehT9NMF9WPHjZ+{&o9vmI z``wk?Aa=|i7}w@0rk=<+SV_NR&oZC*v+sAqwCG>1efEiq<3o7ZJa?xP=(4L52PY0f z^IWoH268<~{HQr`mDk^vlPb`}lcRE8>Q{=&YbKkWlsLOEL6gY6kn85~gcNDL(US`T zS^r4YZ{4BeU*h%0@<*5$01{9-{v}oahb5Muu44}vQGBr$rzt3!{+V-h5seFx2i>qz hwgMP#wC^1ljQKfM$c!Xd(f?lnu7k}$RacxJ{1@KdWibE% literal 0 HcmV?d00001 diff --git a/examples/designer/doc/images/calculatorform-example.png b/examples/designer/doc/images/calculatorform-example.png new file mode 100644 index 0000000000000000000000000000000000000000..91432ac8be3a42e15efcc19721f7717f3c8483ef GIT binary patch literal 3967 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 Ql#ex)ksd;~S{oJpKfm^9-2eap literal 0 HcmV?d00001 diff --git a/examples/designer/doc/images/containerextension-example.png b/examples/designer/doc/images/containerextension-example.png new file mode 100644 index 0000000000000000000000000000000000000000..2427f91010c969bb255e58ee83dd6b52e00c0fee GIT binary patch literal 43032 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 literal 0 HcmV?d00001 diff --git a/examples/designer/doc/images/customwidgetplugin-example.png b/examples/designer/doc/images/customwidgetplugin-example.png new file mode 100644 index 0000000000000000000000000000000000000000..87fde81a34407da5025f8134999ecdde321a7bb0 GIT binary patch literal 2175 zcmai0dpHwp8=o{eymCs?TPuegLMVm2(U!wV&b*`?N|L;eIS!jFhvAcC8-|!U7d5d) zj4kJxL*z7JCTv!E)l~2J=KKEq{`j8jx_{4ox_jjv-IKrI_I5gl$mb~g_~sLo1(E7(S?6lBmO8ZHpk(>V8oTuQfpJVby=Cs zvu9T;D(ovNuHo?xc)Vj}r4xbROdz-r2(ARepVif#H8ozfwcd4gKB|ZS!?e4NjloS# z_Yc9th{VX|<`_vtY-?*=YiqnhY66J_BaxEHWHTyJ&^k7 z?c21Dj`WU>jLy!?LzyTg6zT{nyQ?b)l#|odm8X%HN2NZYQlHXjXhSqQn}~k*4s#ZR zF~VSada&oQ*q)w3dJMjA&)UxmDSH8w^JCAR)o_rwHgV&cu@Bsoc_nB0bFYfo*b zpeU3q3N?>P%cs$VYG!BO&Cd1+$Is36GMRn2zW$Q_ekOCEd|+UHesA8w0%KueWMN@+ zadB*Mahy0l-aP)E#hPHTCWX{2)`#Wgsg9|s&Z#M(!)8xYrl-56r`hb8?wJ|t%nX}7 z%Vy8@&dsf?F#DLym6iEVpZ4fhR~J`Tm)6!;LJIaOOX#exFYj?JuW&e@IGnw*5V_p7 zy{5G_E_Z!ngCnd7vl|=SbuM>97;kLwc)UI1@&2=HYD(H1;ReY+aB*-20Ax<+TR8fL z!E?*X8ao*uKS!<@r2+uJDqBmiTb$3(i0whdNm<~i*xlL99n1vna;o)>>#u(fV)U0F zBd3OmW-mKbV?nmrV_d~r*{_E@fB<1H-?h$I&?VIg1Gg?T9DfKf@%jY>X zOT9DdL3655S;LxpwK=cvDQ9Qa76oe&Jbj^O<9G9nr+QQHmxgit`5|0Dhee`eay*XF zZ-#;K+V~H@O@37~lHf$y6@&vtM*h)sJcl3&p8s)ZeK2|7^RmU358zL@HD7&Od??oE4Mnw(9RN&DQ+g4j>CA z%gv+3_?5x6>FM`HTtH3DR!ZH4qJAld8!qdKG%aOMA_Yu8SMR5?F%Buw{QK8DALRNe z9*t0X-QZd=z94%1)z_a_ct-$;wHl9T)ZoDjA4@5yf}pYkt!>R@HiR|1fcIh}rZ9`}Mv|r$9QUy0GerBFjqPXzg`j=5IR3e9{ ziWAqPVhDvYSq)&6;GC|6Otgim0pm$nGKG0F05+(0d;`w~@LOWDn{uDheA18-h4(5? zBHxG$`cGGHdF^xM{@v?Fk@rWtj_G+DL`An$(tQyA;?9*csj5R@UGbdA2-x6wd%pC7w6sj4buNXk!7Rs zdDHei@~>eJHo!Yp@UtuG^uQyJyTz4jdb=_7cgFLYJ3(_G!6*KU{Wk?e5B*_V7B@R1 zoiUzmc17P;VK7*$wi>Rz9THc5vLQaAb07JyFQd8%TZ`dwo?b7e5;uT~G|qmo=eKQ{ zUD&N7=GVtTmwa??IIFbVdA^tCxTLL(DqL&-wOWvc#7NjQe-{8jc@Tm=uk%yYRekw7 zvYF>nsp|}`*iCkTkyWw1;5}>xtT?~pyPbUdY6r;OE3B7_*uK;QYq`iX=_akeEU{rE zFnFWwl5s$Biyp;|gebwr?tZ$ct*E<*MVRcnKO@{fMo)*G0#kFHJRWVAYMHysJYGv& zJq#x4crHPpbpZCoFG#JOoksDWF@KXM>XUv2L!pY7y{jMF*;xrTGqsX`_-ZaU`uf0k zhG!J+)KqR^Pn9NJPdsqKO6ucswi7V%RL8T3lCy%o~_j&DJ~&KI|X}x$YJ~6>~ux68n9X zZF%^dEBXO_Dh3owR6BNOK3+GbO*uBqBC2z^8D=)iXctY+cqKaQ+fzzAB9pR-4eW1H z9dfcK1{upW--rbb{?6Je+^;cCqRT5`?fJ)-O_;`kTnXEXL|o*+`-Ob+nVozxX#L(@ zQOE4u{LBcwD&CdgYMzaD6%Vt#0*U^0QUMy9|UN!3KANySu~S1b63da{lL> z_q}V~`+>EX*?afyuCA{7)zdv8N(xfwD1<1_o;^dCkrr2Z_Ut(-@JED%0DLp(2kCwG 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 literal 0 HcmV?d00001 diff --git a/examples/designer/doc/images/taskmenuextension-example-faded.png b/examples/designer/doc/images/taskmenuextension-example-faded.png new file mode 100644 index 0000000000000000000000000000000000000000..7e96f3ad88b502a0d7e8c39b4e44d0fb8abeec50 GIT binary patch literal 5596 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 literal 0 HcmV?d00001 diff --git a/examples/designer/doc/images/taskmenuextension-example.png b/examples/designer/doc/images/taskmenuextension-example.png new file mode 100644 index 0000000000000000000000000000000000000000..f1d46d2b4014d92b0e191fd74e6147b5c45bc5a0 GIT binary patch literal 5014 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 I_2Bvc0qb8Tw*UYD literal 0 HcmV?d00001 diff --git a/examples/designer/doc/images/taskmenuextension-menu.png b/examples/designer/doc/images/taskmenuextension-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..d626c81dab60d1603158a6b67a2009246116beee GIT binary patch literal 3067 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 literal 0 HcmV?d00001 diff --git a/examples/designer/doc/images/worldtimeclock-connection.png b/examples/designer/doc/images/worldtimeclock-connection.png new file mode 100644 index 0000000000000000000000000000000000000000..42c25600300035ce476a20ddc1bd84146da19bfd GIT binary patch literal 12119 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 b4yWOpF+xiFh!6N+{(-!-id3nDvETmy2RC!< literal 0 HcmV?d00001 diff --git a/examples/designer/doc/images/worldtimeclock-signalandslot.png b/examples/designer/doc/images/worldtimeclock-signalandslot.png new file mode 100644 index 0000000000000000000000000000000000000000..d9d3271f45770c6ac8a4cffbb70404593eca3212 GIT binary patch literal 9907 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 Q84XQM>7`<&{F{&e58!oG3;+NC literal 0 HcmV?d00001 diff --git a/examples/designer/doc/images/worldtimeclockbuilder-example.png b/examples/designer/doc/images/worldtimeclockbuilder-example.png new file mode 100644 index 0000000000000000000000000000000000000000..4b91af3ffc54b1ef15a448a978777a03bbc842cb GIT binary patch literal 8168 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 bkHRum3LhT&TPJ~E;=svBD2SJf8v6Yom6hQP literal 0 HcmV?d00001 diff --git a/examples/designer/doc/snippets/doc_src_examples_containerextension.pro b/examples/designer/doc/snippets/doc_src_examples_containerextension.pro new file mode 100644 index 0000000..903cef9 --- /dev/null +++ b/examples/designer/doc/snippets/doc_src_examples_containerextension.pro @@ -0,0 +1,7 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#! [0] +target.path = $$[QT_INSTALL_PLUGINS]/designer +INSTALLS += target +#! [0] diff --git a/examples/designer/doc/snippets/doc_src_examples_customwidgetplugin.pro b/examples/designer/doc/snippets/doc_src_examples_customwidgetplugin.pro new file mode 100644 index 0000000..903cef9 --- /dev/null +++ b/examples/designer/doc/snippets/doc_src_examples_customwidgetplugin.pro @@ -0,0 +1,7 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#! [0] +target.path = $$[QT_INSTALL_PLUGINS]/designer +INSTALLS += target +#! [0] diff --git a/examples/designer/doc/snippets/doc_src_examples_taskmenuextension.pro b/examples/designer/doc/snippets/doc_src_examples_taskmenuextension.pro new file mode 100644 index 0000000..903cef9 --- /dev/null +++ b/examples/designer/doc/snippets/doc_src_examples_taskmenuextension.pro @@ -0,0 +1,7 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#! [0] +target.path = $$[QT_INSTALL_PLUGINS]/designer +INSTALLS += target +#! [0] diff --git a/examples/designer/doc/snippets/doc_src_examples_worldtimeclockplugin.pro b/examples/designer/doc/snippets/doc_src_examples_worldtimeclockplugin.pro new file mode 100644 index 0000000..903cef9 --- /dev/null +++ b/examples/designer/doc/snippets/doc_src_examples_worldtimeclockplugin.pro @@ -0,0 +1,7 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#! [0] +target.path = $$[QT_INSTALL_PLUGINS]/designer +INSTALLS += target +#! [0] diff --git a/examples/designer/doc/src/calculatorbuilder.qdoc b/examples/designer/doc/src/calculatorbuilder.qdoc new file mode 100644 index 0000000..a3aaae7 --- /dev/null +++ b/examples/designer/doc/src/calculatorbuilder.qdoc @@ -0,0 +1,95 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example calculatorbuilder + \ingroup examples-designer + \title Calculator Builder Example + + \brief Creating a user interface from a \QD form at run-time. + + \image calculatorbuilder-example.png + + We use the form created in the \l{calculatorform}{Calculator Form} + example to show that the same user interface can be generated when the + application is executed or defined when the application is built. + + \section1 Preparation + + The \l{calculatorform}{Calculator Form} example defines a user + interface that we can use without modification. In this example, we use a + \l{The Qt Resource System}{resource file} to contain the \c{calculatorform.ui} + file created in the previous example, but it could be stored on disk instead. + + To generate a form at run time, we need to link the example against the + \c QtUiTools module library. The project file we use contains all the + necessary information to do this: + + \snippet calculatorbuilder/calculatorbuilder.pro 0 + + All the other necessary files are declared as usual. + + \section1 CalculatorForm Class Definition + + The \c CalculatorForm class defines the widget used to host the form's + user interface: + + \snippet calculatorbuilder/calculatorform.h 0 + + Note that we do not need to include a header file to describe the user + interface. We only define two public slots, using the auto-connection + naming convention required by \c uic, and declare private variables + that we will use to access widgets provided by the form after they are + constructed. + + \section1 CalculatorForm Class Implementation + + We will need to use the QUiLoader class that is provided by the + \c libQtUiTools library, so we first ensure that we include the header + file for the module: + + \snippet calculatorbuilder/calculatorform.cpp 0 + + The constructor uses a form loader object to construct the user + interface that we retrieve, via a QFile object, from the example's + resources: + + \snippet calculatorbuilder/calculatorform.cpp 1 + + By including the user interface in the example's resources, we ensure + that it will be present when the example is run. The \c{loader.load()} + function takes the user interface description contained in the file + and constructs the form widget as a child widget of the \c{CalculatorForm}. + + We are interested in three widgets in the generated user interface: + two spin boxes and a label. For convenience, we retrieve pointers to + these widgets from the widget that was constructed by the \c FormBuilder, + and we record them for later use. The \c qFindChild() template function + allows us to query widgets in order to find named child widgets. + + \snippet calculatorbuilder/calculatorform.cpp 2 + + The widgets created by the form loader need to be connected to the + specially-named slots in the \c CalculatorForm object. We use Qt's + meta-object system to enable these connections: + + \snippet calculatorbuilder/calculatorform.cpp 3 + + The form widget is added to a layout, and the window title is set: + + \snippet calculatorbuilder/calculatorform.cpp 4 + + The two slots that modify widgets provided by the form are defined + in a similar way to those in the \l{calculatorform}{Calculator + Form} example, except that we read the values from the spin boxes and + write the result to the output widget via the pointers we recorded in + the constructor: + + \snippet calculatorbuilder/calculatorform.cpp 5 + \codeline + \snippet calculatorbuilder/calculatorform.cpp 7 + + The advantage of this approach is that we can replace the form when the + application is run, but we can still manipulate the widgets it contains + as long as they are given appropriate names. +*/ diff --git a/examples/designer/doc/src/calculatorform.qdoc b/examples/designer/doc/src/calculatorform.qdoc new file mode 100644 index 0000000..32d4ef4 --- /dev/null +++ b/examples/designer/doc/src/calculatorform.qdoc @@ -0,0 +1,91 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example calculatorform + \ingroup examples-designer + \title Calculator Form Example + + \brief Using a form created with \QD in an application. + + The Calculator Form Example shows how to use a form created with + \QD in an application by using the user interface information from + a QWidget subclass. We use \l{Using a Designer UI File in Your Application} + {uic's auto-connection} feature to automatically connect signals + from widgets on the form to slots in our code. + + \image calculatorform-example.png Screenshot of the Calculator Form example + + The example presents two spin boxes that are used to input integer values + and a label that shows their sum. Whenever either of the spin boxes are + updated, the signal-slot connections between the widgets and the form + ensure that the label is also updated. + + \section1 Preparation + + The user interface for this example is designed completely using \QD. The + result is a UI file describing the form, the widgets used, any signal-slot + connections between them, and other standard user interface properties. + + To ensure that the example can use this file, we need to include a \c FORMS + declaration in the example's project file: + + \snippet calculatorform/calculatorform.pro 1 + + When the project is built, \c uic will create a header file that lets us + construct the form. + + \section1 CalculatorForm Class Definition + + The \c CalculatorForm class uses the user interface described in the + \c calculatorform.ui file. To access the form and its contents, we need + to include the \c ui_calculatorform.h header file created by \c uic + during the build process: + + \snippet calculatorform/calculatorform.h 0 + + We define the \c CalculatorForm class by subclassing QWidget because the + form itself is based on QWidget: + + \snippet calculatorform/calculatorform.h 1 + + Apart from the constructor, the class contains two private slots that + are named according to the auto-connection naming convention required + by \c uic. + The private \c ui member variable refers to the form, and is used to + access the contents of the user interface. + + \section1 CalculatorForm Class Implementation + + The constructor simply calls the base class's constructor and + sets up the form's user interface. + + \snippet calculatorform/calculatorform.cpp 0 + + The user interface is set up with the \c setupUI() function. We pass + \c this as the argument to this function to use the \c CalculatorForm + widget itself as the container for the user interface. + + To automatically connect signals from the spin boxes defined in the + user interface, we use the naming convention that indicates which + widgets and their signals in the user interface should be connected + to each slot. The first slot is called whenever the spin box called + "inputSpinBox1" in the user interface emits the + \l{QSpinBox::valueChanged()}{valueChanged()} signal: + + \snippet calculatorform/calculatorform.cpp 1 + + When this occurs, we use the value supplied by the signal to update the + output label by setting its new text directly. We access the output label + and the other spin box via the class's private \c ui variable. + + The second slot is called whenever the second spin box, called + "inputSpinBox2", emits the \l{QSpinBox::valueChanged()}{valueChanged()} + signal: + + \snippet calculatorform/calculatorform.cpp 2 + + In this case, the value from the first spin box is read and combined + with the value supplied by the signal. Again, the output label is + updated directly via the \c ui variable. +*/ diff --git a/examples/designer/doc/src/containerextension.qdoc b/examples/designer/doc/src/containerextension.qdoc new file mode 100644 index 0000000..b20093a --- /dev/null +++ b/examples/designer/doc/src/containerextension.qdoc @@ -0,0 +1,471 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example containerextension + \ingroup examples-designer + \title Container Extension Example + + \brief Creating a custom multi-page plugin for \QD. + + The Container Extension example shows how to create a custom multi-page + plugin for \QD using the + QDesignerContainerExtension class. + + \image containerextension-example.png + + To provide a custom widget that can be used with \QD, we need to + supply a self-contained implementation. In this example we use a + custom multi-page widget designed to show the container extension + feature. + + An extension is an object which modifies the behavior of \QD. The + QDesignerContainerExtension enables \QD to manage and manipulate a + custom multi-page widget, i.e. adding and deleting pages to the + widget. + + There are four available types of extensions in \QD: + + \list + \li QDesignerMemberSheetExtension provides an extension that allows + you to manipulate a widget's member functions which is displayed + when configuring connections using Qt Designer's mode for editing + signals and slots. + \li QDesignerPropertySheetExtension provides an extension that + allows you to manipulate a widget's properties which is displayed + in Qt Designer's property editor. + \li QDesignerTaskMenuExtension provides an extension that allows + you to add custom menu entries to \QD's task menu. + \li QDesignerContainerExtension provides an extension that allows + you to add (and delete) pages to a multi-page container plugin + in \QD. + \endlist + + You can use all the extensions following the same pattern as in + this example, only replacing the respective extension base + class. For more information, see \l{Qt Designer C++ Classes}. + + The Container Extension example consists of four classes: + + \list + \li \c MultiPageWidget is a custom container widget that lets the user + manipulate and populate its pages, and navigate among these + using a combobox. + \li \c MultiPageWidgetPlugin exposes the \c MultiPageWidget class + to \QD. + \li \c MultiPageWidgetExtensionFactory creates a + \c MultiPageWidgetContainerExtension object. + \li \c MultiPageWidgetContainerExtension provides the container + extension. + \endlist + + The project file for custom widget plugins needs some additional + information to ensure that they will work within \QD. For example, + custom widget plugins rely on components supplied with \QD, and + this must be specified in the project file that we use. We will + first take a look at the plugin's project file. + + Then we will continue by reviewing the \c MultiPageWidgetPlugin + class, and take a look at the \c MultiPageWidgetExtensionFactory + and \c MultiPageWidgetContainerExtension classes. Finally, we will + take a quick look at the \c MultiPageWidget class definition. + + \section1 The Project File: containerextension.pro + + The project file must contain some additional information to + ensure that the plugin will work as expected: + + \snippet containerextension/containerextension.pro 0 + \snippet containerextension/containerextension.pro 1 + + The \c TEMPLATE variable's value makes \c qmake create the custom + widget as a library. Later, we will ensure that the widget will be + recognized as a plugin by Qt by using the Q_PLUGIN_METADATA() macro + to export the relevant widget information. + + The \c CONFIG variable is set to \c plugin, which ensures that \c qmake + considers the custom widget a plugin library. + + The \c QT variable contains the value \c designer. Since the plugin uses + components supplied with \QD that require linkage, this value ensures + that our plugin links against \QD's library (\c libQtDesigner.so). + + The header and source files for the widget are declared in the + usual way: + + \snippet containerextension/containerextension.pro 2 + + We provide an implementation of the plugin interface so that \QD + can use the custom widget. In this particular example we also + provide implementations of the container extension interface and + the extension factory. + + It is important to ensure that the plugin is installed in a + location that is searched by \QD. We do this by specifying a + target path for the project and adding it to the list of items to + install: + + \snippet doc/snippets/doc_src_examples_containerextension.pro 0 + + The container extension is created as a library, and will be + installed alongside the other \QD plugins when the project is + installed (using \c{make install} or an equivalent installation + procedure). + + Note that if you want the plugins to appear in a Visual Studio + integration, the plugins must be built in release mode and their + libraries must be copied into the plugin directory in the install + path of the integration (for an example, see \c {C:/program + files/trolltech as/visual studio integration/plugins}). + + For more information about plugins, see the \l {How to Create Qt + Plugins} documentation. + + \section1 MultiPageWidgetPlugin Class Definition + + The \c MultiPageWidgetPlugin class exposes the \c MultiPageWidget + class to \QD. Its definition is similar to the \l + {customwidgetplugin}{Custom Widget Plugin} example's + plugin class which is explained in detail. The parts of the class + definition that is specific to this particular custom widget is + the class name and a couple of private slots: + + \snippet containerextension/multipagewidgetplugin.h 0 + + The plugin class provides \QD with basic information about our + plugin, such as its class name and its include file. Furthermore + it knows how to create instances of the \c MultiPageWidget widget. + \c MultiPageWidgetPlugin also defines the \l + {QDesignerCustomWidgetInterface::initialize()}{initialize()} + function which is called after the plugin is loaded into \QD. The + function's QDesignerFormEditorInterface parameter provides the + plugin with a gateway to all of \QD's API's. + + In the case of a multipage widget such as ours, we must also implement + two private slots, currentIndexChanged() and pageTitleChanged(), + to be able to update \QD's property editor whenever the user views + another page or changes one of the page titles. To be able to give + each page their own title, we have chosen to use the + QWidget::windowTitle property to store the page title (for more + information see the MultiPageWidget class implementation in + \e containerextension/multipagewidget.cpp. Note that currently there + is no way of adding a custom property (for example, a page title) to + the pages without using a predefined property as placeholder. + + The \c MultiPageWidgetPlugin class inherits from both QObject and + QDesignerCustomWidgetInterface. It is important to remember, when + using multiple inheritance, to ensure that all the interfaces + (i.e. the classes that doesn't inherit Q_OBJECT) are made known to + the meta object system using the Q_INTERFACES() macro. This + enables \QD to use qobject_cast() to query for supported + interfaces using nothing but a QObject pointer. + + \section1 MultiPageWidgetPlugin Class Implementation + + The MultiPageWidgetPlugin class implementation is in most parts + equivalent to the \l {customwidgetplugin}{Custom Widget + Plugin} example's plugin class: + + \snippet containerextension/multipagewidgetplugin.cpp 0 + \codeline + \snippet containerextension/multipagewidgetplugin.cpp 3 + + One of the functions that differ is the isContainer() function + which returns true in this example since our custom widget is + intended to be used as a container. + + \snippet containerextension/multipagewidgetplugin.cpp 1 + + Another function that differ is the function creating our custom widget: + + \snippet containerextension/multipagewidgetplugin.cpp 2 + + In addition to create and return the widget, we connect our custom + container widget's currentIndexChanged() signal to the plugin's + currentIndexChanged() slot to ensure that \QD's property editor is + updated whenever the user views another page. We also connect the + widget's pageTitleChanged() signal to the plugin's + pageTitleChanged() slot. + + The currentIndexChanged() slot is called whenever our custom + widget's currentIndexChanged() \e signal is emitted, i.e. whenever + the user views another page: + + \snippet containerextension/multipagewidgetplugin.cpp 8 + + First, we retrieve the object emitting the signal using the + QObject::sender() and qobject_cast() functions. If it's called in + a slot activated by a signal, QObject::sender() returns a pointer + to the object that sent the signal; otherwise it returns 0. + + \snippet containerextension/multipagewidgetplugin.cpp 9 + + Once we have the widget we can update the property editor. \QD + uses the QDesignerPropertySheetExtension class to feed its + property editor, and whenever a widget is selected in its + workspace, Qt Designer will query for the widget's property sheet + extension and update the property editor. + + So what we want to achieve is to notify \QD that our widget's \e + internal selection has changed: First we use the static + QDesignerFormWindowInterface::findFormWindow() function to + retrieve the QDesignerFormWindowInterface object containing the + widget. The QDesignerFormWindowInterface class allows you to query + and manipulate form windows appearing in Qt Designer's + workspace. Then, all we have to do is to emit its \l + {QDesignerFormWindowInterface::emitSelectionChanged()}{emitSelectionChanged()} + signal, forcing an update of the property editor. + + When changing a page title a generic refresh of the property + editor is not enough because it is actually the page's property + extension that needs to be updated. For that reason we need to + access the QDesignerPropertySheetExtension object for the page + which title we want to change. The QDesignerPropertySheetExtension + class also allows you to manipulate a widget's properties, but to + get hold of the extension we must first retrieve access to \QD's + extension manager: + + \snippet containerextension/multipagewidgetplugin.cpp 10 + \snippet containerextension/multipagewidgetplugin.cpp 11 + + Again we first retrieve the widget emitting the signal, using the + QObject::sender() and qobject_cast() functions. Then we retrieve + the current page from the widget that emitted the signal, and we + use the static QDesignerFormWindowInterface::findFormWindow() + function to retrieve the form containing our widget. + + \snippet containerextension/multipagewidgetplugin.cpp 12 + + Now that we have the form window, the QDesignerFormWindowInterface + class provides the \l + {QDesignerFormWindowInterface::core()}{core()} function which + returns the current QDesignerFormEditorInterface object. The + QDesignerFormEditorInterface class allows you to access Qt + Designer's various components. In particular, the + QDesignerFormEditorInterface::extensionManager() function returns + a reference to the current extension manager. + + \snippet containerextension/multipagewidgetplugin.cpp 13 + + Once we have the extension manager we can update the extension + sheet: First we retrieve the property extension for the page which + title we want to change, using the qt_extension() function. Then + we retrieve the index for the page title using the + QDesignerPropertySheetExtension::indexOf() function. As previously + mentioned, we have chosen to use the QWidget::windowTitle property + to store the page title (for more information see the + MultiPageWidget class implementation in + \e containerextension/multipagewidget.cpp. + Finally, we implicitly force an update of the page's property + sheet by calling the + QDesignerPropertySheetExtension::setChanged() function. + + \snippet containerextension/multipagewidgetplugin.cpp 4 + + Note also the initialize() function: The \c initialize() function + takes a QDesignerFormEditorInterface object as argument. + + \snippet containerextension/multipagewidgetplugin.cpp 5 + + When creating extensions associated with custom widget plugins, we + need to access \QD's current extension manager which we retrieve + from the QDesignerFormEditorInterface parameter. + + In addition to allowing you to manipulate a widget's properties, + the QExtensionManager class provides extension management + facilities for \QD. Using \QD's current extension manager you can + retrieve the extension for a given object. You can also register + and unregister an extension for a given object. Remember that an + extension is an object which modifies the behavior of \QD. + + When registrering an extension, it is actually the associated + extension factory that is registered. In \QD, extension factories + are used to look up and create named extensions as they are + required. So, in this example, the container extension itself is + not created until \QD must know whether the associated widget is a + container, or not. + + \snippet containerextension/multipagewidgetplugin.cpp 6 + + We create a \c MultiPageWidgetExtensionFactory object that we + register using \QD's current \l {QExtensionManager}{extension + manager} retrieved from the QDesignerFormEditorInterface + parameter. The first argument is the newly created factory and the + second argument is an extension identifier which is a string. The + \c Q_TYPEID() macro simply convert the string into a + QLatin1String. + + The \c MultiPageWidgetExtensionFactory class is a subclass of + QExtensionFactory. When \QD must know whether a widget is a + container, or not, \QD's extension manager will run through all + its registered factories invoking the first one which is able to + create a container extension for that widget. This factory will in + turn create a \c MultiPageWidgetExtension object. + + \snippet containerextension/multipagewidgetplugin.cpp 7 + + Finally, take a look at the \c domXml() function. This function + includes default settings for the widget in the standard XML + format used by \QD. In this case, we specify the container's first + page; any inital pages of a multi-page widget must be specified + within this function. + + \snippet containerextension/multipagewidgetplugin.h 1 + + Remember to use the Q_PLUGIN_METADATA() macro to export the + MultiPageWidgetPlugin class for use with Qt's plugin handling + classes: This macro ensures that \QD can access and construct the + custom widget. Without this macro, there is no way for \QD to use + the widget. + + \section1 MultiPageWidgetExtensionFactory Class Definition + + The \c MultiPageWidgetExtensionFactory class inherits QExtensionFactory + which provides a standard extension factory for \QD. + + \snippet containerextension/multipagewidgetextensionfactory.h 0 + + The subclass's purpose is to reimplement the + QExtensionFactory::createExtension() function, making it able to + create a \c MultiPageWidget container extension. + + + \section1 MultiPageWidgetExtensionFactory Class Implementation + + The class constructor simply calls the QExtensionFactory base + class constructor: + + \snippet containerextension/multipagewidgetextensionfactory.cpp 0 + + As described above, the factory is invoked when \QD must know + whether the associated widget is a container, or not. + + \snippet containerextension/multipagewidgetextensionfactory.cpp 1 + + \QD's behavior is the same whether the requested extension is + associated with a container, a member sheet, a property sheet or a + task menu: Its extension manager runs through all its registered + extension factories calling \c createExtension() for each until + one responds by creating the requested extension. + + So the first thing we do in \c + MultiPageWidgetExtensionFactory::createExtension() is to check if + the QObject, for which the extension is requested, is in fact a \c + MultiPageWidget object. Then we check if the requested extension + is a container extension. + + If the object is a MultiPageWidget requesting a container + extension, we create and return a \c MultiPageWidgetExtension + object. Otherwise, we simply return a null pointer, allowing \QD's + extension manager to continue its search through the registered + factories. + + + \section1 MultiPageWidgetContainerExtension Class Definition + + The \c MultiPageWidgetContainerExtension class inherits + QDesignerContainerExtension which allows you to add (and delete) + pages to a multi-page container plugin in \QD. + + \snippet containerextension/multipagewidgetcontainerextension.h 0 + + It is important to recognize that the QDesignerContainerExtension + class only is intended to provide \QD access to your custom + multi-page widget's functionality; your custom multi-page widget + must implement functionality corresponding to the extension's + functions. + + Note also that we implement a constructor that takes \e two + arguments: the parent widget, and the \c MultiPageWidget object + for which the task menu is requested. + + QDesignerContainerExtension provides a couple of menu entries in + \QD's task menu by default, enabling the user to add or delete + pages to the associated custom multi-page widget in \QD's + workspace. + + \section1 MultiPageWidgetContainerExtension Class Implementation + + In the constructor we save the reference to the \c MultiPageWidget + object sent as parameter, i.e the widget associated with the + extension. We will need this later to access the custom multi-page + widget performing the requested actions. + + \snippet containerextension/multipagewidgetcontainerextension.cpp 0 + + To fully enable \QD to manage and manipulate your custom + multi-page widget, you must reimplement all the functions of + QDesignerContainerExtension: + + \snippet containerextension/multipagewidgetcontainerextension.cpp 1 + \codeline + \snippet containerextension/multipagewidgetcontainerextension.cpp 2 + \codeline + \snippet containerextension/multipagewidgetcontainerextension.cpp 3 + + You must reimplement \l + {QDesignerContainerExtension::canAddWidget()}{canAddWidget()} and \l + {QDesignerContainerExtension::addWidget()}{addWidget()} adding a + given page to the container, \l + {QDesignerContainerExtension::count()}{count()} returning the + number of pages in the container, and \l + {QDesignerContainerExtension::currentIndex()}{currentIndex()} + returning the index of the currently selected page. + + \snippet containerextension/multipagewidgetcontainerextension.cpp 4 + \codeline + \snippet containerextension/multipagewidgetcontainerextension.cpp 5 + \codeline + \snippet containerextension/multipagewidgetcontainerextension.cpp 6 + \codeline + \snippet containerextension/multipagewidgetcontainerextension.cpp 7 + + You must reimplement \l + {QDesignerContainerExtension::insertWidget()}{insertWidget()} + adding a given page to the container at a given index, \l + {QDesignerContainerExtension::canRemove()}{canRemove()} and \l + {QDesignerContainerExtension::remove()}{remove()} deleting the + page at a given index, \l + {QDesignerContainerExtension::setCurrentIndex()}{setCurrentIndex()} + setting the index of the currently selected page, and finally \l + {QDesignerContainerExtension::widget()}{widget()} returning the + page at a given index. + + \section1 MultiPageWidget Class Definition + + The MultiPageWidget class is a custom container widget that lets + the user manipulate and populate its pages, and navigate among + these using a combobox. + + \snippet containerextension/multipagewidget.h 0 + + The main detail to observe is that your custom multi-page widget + must implement functionality corresponding to the + QDesignerContainerExtension's member functions since the + QDesignerContainerExtension class only is intended to provide Qt + Designer access to your custom multi-page widget's functionality. + + In addition, we declare the \c currentIndex and \c pageTitle + properties, and their associated set and get functions. By + declaring these attributes as properties, we allow \QD to manage + them in the same way it manages the properties the MultiPageWidget + widget inherits from QWidget and QObject, for example featuring + the property editor. + + Note the \c STORED attribute in the declaration of the \c + pageTitle property: The \c STORED attribute indicates persistence, + i.e. it declares whether the property's value must be remembered + when storing an object's state. As mentioned above, we have chosen + to store the page title using the QWidget::windowTitle property to + be able to give each page their own title. For that reason the \c + pageTitle property is a "fake" property, provided for editing + purposes, and doesn't need to be stored. + + We must also implement and emit the currentIndexChanged() and + pageTitleChanged() signals to ensure that \QD's property editor is + updated whenever the user views another page or changes one of the + page titles. + + See the MultiPageWidget class implementation in + \e containerextension/multipagewidget.cpp for more details. +*/ diff --git a/examples/designer/doc/src/customwidgetplugin.qdoc b/examples/designer/doc/src/customwidgetplugin.qdoc new file mode 100644 index 0000000..b7ab1e8 --- /dev/null +++ b/examples/designer/doc/src/customwidgetplugin.qdoc @@ -0,0 +1,193 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example customwidgetplugin + \ingroup examples-designer + \title Custom Widget Plugin Example + + \brief Creating a custom widget plugin for Qt Designer. + + \image customwidgetplugin-example.png + + In this example, the custom widget used is based on the + \l{widgets/analogclock}{Analog Clock example}, and does not provide any custom + signals or slots. + + \section1 Preparation + + To provide a custom widget that can be used with \QD, we need to supply a + self-contained implementation and provide a plugin interface. In this + example, we reuse the \l{widgets/analogclock}{Analog Clock example} for + convenience. + + Since custom widgets plugins rely on components supplied with \QD, the + project file that we use needs to contain information about \QD's + library components: + + \snippet customwidgetplugin/customwidgetplugin.pro 2 + \snippet customwidgetplugin/customwidgetplugin.pro 0 + + The \c TEMPLATE variable's value makes \c qmake create the custom + widget as a library. Later, we will ensure that the widget will be + recognized as a plugin by Qt by using the Q_PLUGIN_METADATA() macro + to export the relevant widget information. + + + The \c CONFIG variable is set to \c plugin, which ensures that \c qmake + considers the custom widget a plugin library. + + The \c QT variable contains the keyword \c uiplugin. This plugin type + provides a factory function for custom widget creation by implementing + the abstract interfaces QDesignerCustomWidgetInterface or + QDesignerCustomWidgetCollectionInterface, suitable for use with + QUiLoader. It does not have a dependency on the \QD libraries. + Plugins accessing other interfaces of \QD to implement container extensions + or other \QD specific functionality follow different rules and are covered + by other examples. + + The header and source files for the widget are declared in the usual way, + and we provide an implementation of the plugin interface so that \QD can + use the custom widget: + + \snippet customwidgetplugin/customwidgetplugin.pro 3 + + It is also important to ensure that the plugin is installed in a + location that is searched by \QD. We do this by specifying a + target path for the project and adding it to the list of items to + install: + + \snippet doc/snippets/doc_src_examples_customwidgetplugin.pro 0 + + The custom widget is created as a library, and will be installed + alongside the other \QD plugins when the project is installed + (using \c{make install} or an equivalent installation procedure). + Later, we will ensure that it is recognized as a plugin by \QD by + using the Q_PLUGIN_METADATA() macro to export the relevant widget + information. + + Note that if you want the plugins to appear in a Visual Studio + integration, the plugins must be built in release mode and their + libraries must be copied into the plugin directory in the install + path of the integration (for an example, see \c {C:/program + files/trolltech as/visual studio integration/plugins}). + + For more information about plugins, see the \l {How to + Create Qt Plugins} documentation. + + \section1 AnalogClock Class Definition and Implementation + + The \c AnalogClock class is defined and implemented in exactly the same + way as described in the \l{widgets/analogclock}{Analog Clock example}. + Since the class is self-contained, and does not require any external + configuration, it can be used without modification as a custom widget in + \QD. + + \section1 AnalogClockPlugin Class Definition + + The \c AnalogClock class is exposed to \QD through the \c + AnalogClockPlugin class. This class inherits from both QObject and + the QDesignerCustomWidgetInterface class, and implements an + interface defined by QDesignerCustomWidgetInterface: + + \snippet customwidgetplugin/customwidgetplugin.h 0 + + The functions provide information about the widget that \QD can use in + the \l{Getting to Know Qt Designer#WidgetBox}{widget box}. + The \c initialized private member variable is used to record whether + the plugin has been initialized by \QD. + + Note that the only part of the class definition that is specific to + this particular custom widget is the class name. + + \section1 AnalogClockPlugin Implementation + + The class constructor simply calls the QObject base class constructor + and sets the \c initialized variable to \c false. + + \snippet customwidgetplugin/customwidgetplugin.cpp 0 + + \QD will initialize the plugin when it is required by calling the + \c initialize() function: + + \snippet customwidgetplugin/customwidgetplugin.cpp 1 + + In this example, the \c initialized private variable is tested, and only + set to \c true if the plugin is not already initialized. Although, this + plugin does not require any special code to be executed when it is + initialized, we could include such code after the test for initialization. + + The \c isInitialized() function lets \QD know whether the plugin is + ready for use: + + \snippet customwidgetplugin/customwidgetplugin.cpp 2 + + Instances of the custom widget are supplied by the \c createWidget() + function. The implementation for the analog clock is straightforward: + + \snippet customwidgetplugin/customwidgetplugin.cpp 3 + + In this case, the custom widget only requires a \c parent to be specified. + If other arguments need to be supplied to the widget, they can be + introduced here. + + The following functions provide information for \QD to use to represent + the widget in the widget box. + The \c name() function returns the name of class that provides the + custom widget: + + \snippet customwidgetplugin/customwidgetplugin.cpp 4 + + The \c group() function is used to describe the type of widget that the + custom widget belongs to: + + \snippet customwidgetplugin/customwidgetplugin.cpp 5 + + The widget plugin will be placed in a section identified by its + group name in \QD's widget box. The icon used to represent the + widget in the widget box is returned by the \c icon() function: + + \snippet customwidgetplugin/customwidgetplugin.cpp 6 + + In this case, we return a null icon to indicate that we have no icon + that can be used to represent the widget. + + A tool tip and "What's This?" help can be supplied for the custom widget's + entry in the widget box. The \c toolTip() function should return a short + message describing the widget: + + \snippet customwidgetplugin/customwidgetplugin.cpp 7 + + The \c whatsThis() function can return a longer description: + + \snippet customwidgetplugin/customwidgetplugin.cpp 8 + + The \c isContainer() function tells \QD whether the widget is supposed to + be used as a container for other widgets. If not, \QD will not allow the + user to place widgets inside it. + + \snippet customwidgetplugin/customwidgetplugin.cpp 9 + + Most widgets in Qt can contain child widgets, but it only makes sense + to use dedicated container widgets for this purpose in \QD. By returning + \c false, we indicate that the custom widget cannot hold other widgets; + if we returned true, \QD would allow other widgets to be placed inside + the analog clock and a layout to be defined. + + The \c domXml() function provides a way to include default settings for + the widget in the standard XML format used by \QD. In this case, we only + specify the widget's geometry: + + \snippet customwidgetplugin/customwidgetplugin.cpp 10 + + If the widget provides a reasonable size hint, it is not necessary to + define it here. In addition, returning an empty string instead of a + \c{} element will tell \QD not to install the widget in the + widget box. + + To make the analog clock widget usable by applications, we implement + the \c includeFile() function to return the name of the header file + containing the custom widget class definition: + + \snippet customwidgetplugin/customwidgetplugin.cpp 12 +*/ diff --git a/examples/designer/doc/src/taskmenuextension.qdoc b/examples/designer/doc/src/taskmenuextension.qdoc new file mode 100644 index 0000000..f3e92ce --- /dev/null +++ b/examples/designer/doc/src/taskmenuextension.qdoc @@ -0,0 +1,410 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example taskmenuextension + \ingroup examples-designer + \title Task Menu Extension Example + + \brief Creating a custom widget plugin for \QD and providing custom task + menu entries that are associated with the plugin. + + The Task Menu Extension example shows how to create a custom + widget plugin for \l {Qt Designer Manual}{\QD}, and how to to use + the QDesignerTaskMenuExtension class to provide custom task menu + entries associated with the plugin. + + \image taskmenuextension-example-faded.png + + To provide a custom widget that can be used with \QD, we need to + supply a self-contained implementation. In this example we use a + custom widget designed to show the task menu extension feature: + The TicTacToe widget. + + An extension is an object which modifies the behavior of \QD. The + QDesignerTaskMenuExtension can provide custom task menu entries + when a widget with this extension is selected. + + There are four available types of extensions in \QD: + + \list + \li QDesignerContainerExtension provides an extension that allows + you to add (and delete) pages to a multi-page container plugin + in \QD. + \li QDesignerMemberSheetExtension provides an extension that allows + you to manipulate a widget's member functions which is displayed + when configuring connections using Qt Designer's mode for editing + signals and slots. + \li QDesignerPropertySheetExtension provides an extension that + allows you to manipulate a widget's properties which is displayed + in Qt Designer's property editor. + \li QDesignerTaskMenuExtension provides an extension that allows + you to add custom menu entries to \QD's task menu. + \endlist + + You can use all the extensions following the same pattern as in + this example, only replacing the respective extension base + class. For more information, see the \l{Qt Designer C++ Classes}. + + The Task Menu Extension example consists of five classes: + + \list + \li \c TicTacToe is a custom widget that lets the user play + the Tic-Tac-Toe game. + \li \c TicTacToePlugin exposes the \c TicTacToe class to \QD. + \li \c TicTacToeTaskMenuFactory creates a \c TicTacToeTaskMenu object. + \li \c TicTacToeTaskMenu provides the task menu extension, i.e the + plugin's associated task menu entries. + \li \c TicTacToeDialog lets the user modify the state of a + Tic-Tac-Toe plugin loaded into \QD. + \endlist + + The project file for custom widget plugins needs some additional + information to ensure that they will work within \QD. For example, + custom widget plugins rely on components supplied with \QD, and + this must be specified in the project file that we use. We will + first take a look at the plugin's project file. + + Then we will continue by reviewing the \c TicTacToePlugin class, + and take a look at the \c TicTacToeTaskMenuFactory and \c + TicTacToeTaskMenu classes. Finally, we will review the \c + TicTacToeDialog class before we take a quick look at the \c + TicTacToe widget's class definition. + + \section1 The Project File: taskmenuextension.pro + + The project file must contain some additional information to + ensure that the plugin will work as expected: + + \snippet taskmenuextension/taskmenuextension.pro 0 + \snippet taskmenuextension/taskmenuextension.pro 1 + + The \c TEMPLATE variable's value makes \c qmake create the custom + widget as a library. Later, we will ensure that the widget will be + recognized as a plugin by Qt by using the Q_PLUGIN_METADATA() macro to + export the relevant widget information. + + The \c CONFIG variable is set to \c plugin, which ensures that \c qmake + considers the custom widget a plugin library. + + The \c QT variable contains the value \c designer. Since the plugin uses + components supplied with \QD that require linkage, this value ensures + that our plugin links against \QD's library (\c libQtDesigner.so). + + The header and source files for the widget are declared in the + usual way: + + \snippet taskmenuextension/taskmenuextension.pro 2 + + We provide an implementation of the plugin interface so that \QD + can use the custom widget. In this particular example we also + provide implementations of the task menu extension and the + extension factory as well as a dialog implementation. + + It is important to ensure that the plugin is installed in a + location that is searched by \QD. We do this by specifying a + target path for the project and adding it to the list of items to + install: + + \snippet doc/snippets/doc_src_examples_taskmenuextension.pro 0 + + The task menu extension is created as a library, and will be + installed alongside the other \QD plugins when the project is + installed (using \c{make install} or an equivalent installation + procedure). + + Note that if you want the plugins to appear in a Visual Studio + integration, the plugins must be built in release mode and their + libraries must be copied into the plugin directory in the install + path of the integration (for an example, see \c {C:/program + files/trolltech as/visual studio integration/plugins}). + + For more information about plugins, see the \l {How to Create Qt + Plugins} documentation. + + \section1 TicTacToePlugin Class Definition + + The \c TicTacToePlugin class exposes \c the TicTacToe class to + \QD. Its definition is equivalent to the \l + {customwidgetplugin}{Custom Widget Plugin} example's + plugin class which is explained in detail. The only part of the + class definition that is specific to this particular custom widget + is the class name: + + \snippet taskmenuextension/tictactoeplugin.h 0 + + The plugin class provides \QD with basic information about our + plugin, such as its class name and its include file. Furthermore + it knows how to create instances of the \c TicTacToe widget. + TicTacToePlugin also defines the \l + {QDesignerCustomWidgetInterface::initialize()}{initialize()} + function which is called after the plugin is loaded into \QD. The + function's QDesignerFormEditorInterface parameter provides the + plugin with a gateway to all of \QD's API's. + + The \c TicTacToePlugin class inherits from both QObject and + QDesignerCustomWidgetInterface. It is important to remember, when + using multiple inheritance, to ensure that all the interfaces + (i.e. the classes that doesn't inherit Q_OBJECT) are made known to + the meta object system using the Q_INTERFACES() macro. This + enables \QD to use qobject_cast() to query for supported + interfaces using nothing but a QObject pointer. + + \section1 TicTacToePlugin Class Implementation + + The TicTacToePlugin class implementation is in most parts + equivalent to the \l {customwidgetplugin}{Custom Widget + Plugin} example's plugin class: + + \snippet taskmenuextension/tictactoeplugin.cpp 0 + + The only function that differs significantly is the initialize() + function: + + \snippet taskmenuextension/tictactoeplugin.cpp 1 + + The \c initialize() function takes a QDesignerFormEditorInterface + object as argument. The QDesignerFormEditorInterface class + provides access to Qt Designer's components. + + In \QD you can create two kinds of plugins: custom widget plugins + and tool plugins. QDesignerFormEditorInterface provides access to + all the \QD components that you normally need to create a tool + plugin: the extension manager, the object inspector, the property + editor and the widget box. Custom widget plugins have access to + the same components. + + \snippet taskmenuextension/tictactoeplugin.cpp 2 + + When creating extensions associated with custom widget plugins, we + need to access \QD's current extension manager which we retrieve + from the QDesignerFormEditorInterface parameter. + + \QD's QDesignerFormEditorInterface holds information about all Qt + Designer's components: The action editor, the object inspector, + the property editor, the widget box, and the extension and form + window managers. + + The QExtensionManager class provides extension management + facilities for \QD. Using \QD's current extension manager you can + retrieve the extension for a given object. You can also register + and unregister an extension for a given object. Remember that an + extension is an object which modifies the behavior of \QD. + + When registrering an extension, it is actually the associated + extension factory that is registered. In \QD, extension factories + are used to look up and create named extensions as they are + required. So, in this example, the task menu extension itself is + not created until a task menu is requested by the user. + + \snippet taskmenuextension/tictactoeplugin.cpp 3 + + We create a \c TicTacToeTaskMenuFactory object that we register + using \QD's current \l {QExtensionManager}{extension manager} + retrieved from the QDesignerFormEditorInterface parameter. The + first argument is the newly created factory and the second + argument is an extension identifier which is a string. The \c + Q_TYPEID() macro simply converts the string into a QLatin1String. + + The \c TicTacToeTaskMenuFactory class is a subclass of + QExtensionFactory. When the user request a task menu by clicking + the right mouse button over a widget with the specified task menu + extension, \QD's extension manager will run through all its + registered factories invoking the first one that is able to create + a task menu extension for the selected widget. This factory will + in turn create a \c TicTacToeTaskMenu object (the extension). + + We omit to reimplement the + QDesignerCustomWidgetInterface::domXml() function (which include + default settings for the widget in the standard XML format used by + Qt Designer), since no default values are necessary. + + \snippet taskmenuextension/tictactoeplugin.h 1 + + Finally, we use the Q_PLUGIN_METADATA() macro to export the + TicTacToePlugin class for use with Qt's plugin handling classes: + This macro ensures that \QD can access and construct the custom + widget. Without this macro, there is no way for \QD to use the + widget. + + \section1 TicTacToeTaskMenuFactory Class Definition + + The \c TicTacToeTaskMenuFactory class inherits QExtensionFactory + which provides a standard extension factory for \QD. + + \snippet taskmenuextension/tictactoetaskmenu.h 1 + + The subclass's purpose is to reimplement the + QExtensionFactory::createExtension() function, making it able to + create a \c TicTacToe task menu extension. + + \section1 TicTacToeTaskMenuFactory Class Implementation + + The class constructor simply calls the QExtensionFactory base + class constructor: + + \snippet taskmenuextension/tictactoetaskmenu.cpp 4 + + As described above, the factory is invoked when the user request a + task menu by clicking the right mouse button over a widget with + the specified task menu extension in \QD. + + \QD's behavior is the same whether the requested extension is + associated with a container, a member sheet, a property sheet or a + task menu: Its extension manager runs through all its registered + extension factories calling \c createExtension() for each until + one responds by creating the requested extension. + + \snippet taskmenuextension/tictactoetaskmenu.cpp 5 + + So the first thing we do in \c + TicTacToeTaskMenuFactory::createExtension() is to check if the + requested extension is a task menu extension. If it is, and the + widget requesting it is a \c TicTacToe widget, we create and + return a \c TicTacToeTaskMenu object. Otherwise, we simply return + a null pointer, allowing \QD's extension manager to continue its + search through the registered factories. + + + \section1 TicTacToeTaskMenu Class Definition + + \image taskmenuextension-menu.png + + The \c TicTacToeTaskMenu class inherits QDesignerTaskMenuExtension + which allows you to add custom entries (in the form of QActions) + to the task menu in \QD. + + \snippet taskmenuextension/tictactoetaskmenu.h 0 + + We reimplement the \c preferredEditAction() and \c taskActions() + functions. Note that we implement a constructor that takes \e two + arguments: the parent widget, and the \c TicTacToe widget for + which the task menu is requested. + + In addition we declare the private \c editState() slot, our custom + \c editStateAction and a private pointer to the \c TicTacToe + widget which state we want to modify. + + \section1 TicTacToeTaskMenu Class Implementation + + \snippet taskmenuextension/tictactoetaskmenu.cpp 0 + + In the constructor we first save the reference to the \c TicTacToe + widget sent as parameter, i.e the widget which state we want to + modify. We will need this later when our custom action is + invoked. We also create our custom \c editStateAction and connect + it to the \c editState() slot. + + \snippet taskmenuextension/tictactoetaskmenu.cpp 1 + + The \c editState() slot is called whenever the user chooses the + \gui {Edit State...} option in a \c TicTacToe widget's task menu. The + slot creates a \c TicTacToeDialog presenting the current state of + the widget, and allowing the user to edit its state by playing the + game. + + \snippet taskmenuextension/tictactoetaskmenu.cpp 2 + + We reimplement the \c preferredEditAction() function to return our + custom \c editStateAction as the action that should be invoked + when selecting a \c TicTacToe widget and pressing \key F2 . + + \snippet taskmenuextension/tictactoetaskmenu.cpp 3 + + We reimplement the \c taskActions() function to return a list of + our custom actions making these appear on top of the default menu + entries in a \c TicTacToe widget's task menu. + + \section1 TicTacToeDialog Class Definition + + \image taskmenuextension-dialog.png + + The \c TicTacToeDialog class inherits QDialog. The dialog lets the + user modify the state of the currently selected Tic-Tac-Toe + plugin. + + \snippet taskmenuextension/tictactoedialog.h 0 + + We reimplement the \c sizeHint() function. We also declare two + private slots: \c resetState() and \c saveState(). In addition to + the dialog's buttons and layouts we declare two \c TicTacToe + pointers, one to the widget the user can interact with and the + other to the original custom widget plugin which state the user + wants to edit. + + \section1 TicTacToeDialog Class Implementation + + \snippet taskmenuextension/tictactoedialog.cpp 0 + + In the constructor we first save the reference to the TicTacToe + widget sent as parameter, i.e the widget which state the user want + to modify. Then we create a new \c TicTacToe widget, and set its + state to be equivalent to the parameter widget's state. + + Finally, we create the dialog's buttons and layout. + + \snippet taskmenuextension/tictactoedialog.cpp 1 + + We reimplement the \c sizeHint() function to ensure that the + dialog is given a reasonable size. + + \snippet taskmenuextension/tictactoedialog.cpp 2 + + The \c resetState() slot is called whenever the user press the + \gui Reset button. The only thing we do is to call the \c + clearBoard() function for the editor widget, i.e. the \c TicTacToe + widget we created in the dialog's constructor. + + \snippet taskmenuextension/tictactoedialog.cpp 3 + + The \c saveState() slot is called whenever the user press the \gui + OK button, and transfers the state of the editor widget to the + widget which state we want to modify. In order to make the change + of state visible to \QD we need to set the latter widget's state + property using the QDesignerFormWindowInterface class. + + QDesignerFormWindowInterface provides you with information about + the associated form window as well as allowing you to alter its + properties. The interface is not intended to be instantiated + directly, but to provide access to Qt Designer's current form + windows controlled by Qt Designer's form window manager. + + If you are looking for the form window containing a specific + widget, you can use the static + QDesignerFormWindowInterface::findFormWindow() function: + + \snippet taskmenuextension/tictactoedialog.cpp 4 + + After retrieving the form window of the widget (which state we + want to modify), we use the QDesignerFormWindowInterface::cursor() + function to retrieve the form window's cursor. + + The QDesignerFormWindowCursorInterface class provides an interface + to the form window's text cursor. Once we have cursor, we can + finally set the state property using the + QDesignerFormWindowCursorInterface::setProperty() function. + + \snippet taskmenuextension/tictactoedialog.cpp 5 + + In the end we call the QEvent::accept() function which sets the + accept flag of the event object. Setting the \c accept parameter + indicates that the event receiver wants the event. Unwanted events + might be propagated to the parent widget. + + \section1 TicTacToe Class Definition + + The \c TicTacToe class is a custom widget that lets the user play + the Tic-Tac-Toe game. + + \snippet taskmenuextension/tictactoe.h 0 + + The main details to observe in the \c TicTacToe class defintion is + the declaration of the \c state property and its \c state() and \c + setState() functions. + + We need to declare the \c TicTacToe widget's state as a property + to make it visible to \QD; allowing \QD to manage it in the same + way it manages the properties the \c TicTacToe widget inherits + from QWidget and QObject, for example featuring the property + editor. +*/ diff --git a/examples/designer/doc/src/worldtimeclockbuilder.qdoc b/examples/designer/doc/src/worldtimeclockbuilder.qdoc new file mode 100644 index 0000000..b732054 --- /dev/null +++ b/examples/designer/doc/src/worldtimeclockbuilder.qdoc @@ -0,0 +1,73 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example worldtimeclockbuilder + \ingroup examples-designer + \title World Time Clock Builder Example + + \brief Creating forms with Qt Designer that contain custom widgets that can be + dynamically generated at run-time. + + \image worldtimeclockbuilder-example.png + + This example uses a form containing the custom widget plugin described in the + \l{worldtimeclockplugin}{World Time Clock Plugin} example, and + dynamically generates a user interface using the QUiLoader class, part of + the QtUiTools module. + + \section1 Preparation + + As with the \l{calculatorbuilder}{Calculator Builder} example, the + project file for this example needs to include the appropriate definitions + to ensure that it is built against the required Qt modules. + + \snippet worldtimeclockbuilder/worldtimeclockbuilder.pro 0 + + By appending \c form to the \c CONFIG declaration, we instruct \c qmake to + generate a dependency on the \c libQtUiTools library containing the QtUiTools + classes. + + Note that we do not inform \c qmake about any UI files, and so none will + be processed and built into the application. The resource file contains + an entry for the particular form that we wish to use: + + \quotefile worldtimeclockbuilder/worldtimeclockbuilder.qrc + + Forms do not need to be included with the application in this way. We only + include a form in the application's resources for convenience, and to keep + the example short. + + \section1 Loading and Building the Form + + Since this example only loads and displays a pre-prepared form, all of the + work can be done in the main() function. We are using a class from the + QtUiTools library so, in addition to any other Qt classes that are normally + required to write an application, we must include the appropriate header + file: + + \snippet worldtimeclockbuilder/main.cpp 0 + + The main function initializes the resource system with the Q_INIT_RESOURCE() + macro and constructs an QApplication instance in the usual way: + + \snippet worldtimeclockbuilder/main.cpp 1 + + We construct a QUiLoader object to handle the form we want to use. + + The form itself is obtained from the resource file system using the path + defined in the resource file. We use the form loader to load and construct + the form: + + \snippet worldtimeclockbuilder/main.cpp 2 + + Once the form has been loaded, the resource file can be closed and the + widget is shown. + + \snippet worldtimeclockbuilder/main.cpp 3 + + The form loader ensures that all the signal and slot connections between + objects in the form are set up correctly when the form is loaded. As a + result, the time is updated by the World Time Clock widget, and the time + zone spin box can be used to change the position of the hour hand. +*/ diff --git a/examples/designer/doc/src/worldtimeclockplugin.qdoc b/examples/designer/doc/src/worldtimeclockplugin.qdoc new file mode 100644 index 0000000..81bb901 --- /dev/null +++ b/examples/designer/doc/src/worldtimeclockplugin.qdoc @@ -0,0 +1,164 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example worldtimeclockplugin + \ingroup examples-designer + \title World Time Clock Plugin Example + + \brief Creating a custom widget plugin for \QD that uses signals and slots. + + \image worldtimeclockplugin-example.png + + In this example, we simply extend the \l + {customwidgetplugin}{Custom Widget Plugin} example and + its custom widget (based on the \l{widgets/analogclock}{Analog + Clock} example), by introducing the concept of signals and slots. + + The World Time Clock Plugin example consists of two classes: + + \list + \li \c WorldTimeClock is a custom clock widget with hour and + minute hands that is automatically updated every few seconds. + \li \c WorldTimeClockPlugin exposes the \c WorldTimeClock class to \QD. + \endlist + + First we will take a look at the \c WorldTimeClock class which + extends the \l {customwidgetplugin}{Custom Widget Plugin} + example's \c AnalogClock class by providing a signal and a + slot. Then we will take a quick look at the \c + WorldTimeClockPlugin class, but this class is in most parts + identical to the \l {customwidgetplugin}{Custom Widget + Plugin} example's implementation. + + Finally we take a look at the plugin's project file. The project + file for custom widget plugins needs some additional information + to ensure that they will work within \QD. This is also covered in + the \l {customwidgetplugin}{Custom Widget Plugin} example, + but due to its importance (custom widget plugins rely on + components supplied with \QD which must be specified in the + project file that we use) we will repeat it here. + + \section1 WorldTimeClock Class + + The \c WorldTimeClock class inherits QWidget, and is a custom + clock widget with hour and minute hands that is automatically + updated every few seconds. What makes this example different from + the \l {customwidgetplugin}{Custom Widget Plugin} + example, is the introduction of the signal and slot in the custom + widget class: + + \snippet worldtimeclockplugin/worldtimeclock.h 1 + + Note the use of the QDESIGNER_WIDGET_EXPORT macro. This is needed + to ensure that \QD can create instances of the widget on some + platforms, but it is a good idea to use it on all platforms. + + We declare the \c setTimeZone() slot with an associated \c + timeZoneOffset variable, and we declare an \c updated() signal + which takes the current time as argument and is emitted whenever + the widget is repainted. + + \image worldtimeclock-connection.png + + In \QD's workspace we can then, for example, connect the \c + WorldTimeClock widget's \c updated() signal to a QTimeEdit's \l + {QDateTimeEdit::setTime()}{setTime()} slot using \QD's mode + for editing signal and slots. + + \image worldtimeclock-signalandslot.png + + We can also connect a QSpinBox's \l + {QSpinBox::valueChanged()}{valueChanged()} signal to the \c + WorldTimeClock's \c setTimeZone() slot. + + \section1 WorldTimeClockPlugin Class + + The \c WorldTimeClockPlugin class exposes the \c WorldTimeClock + class to \QD. Its definition is equivalent to the \l + {customwidgetplugin}{Custom Widget Plugin} example's + plugin class which is explained in detail. The only part of the + class definition that is specific to this particular custom widget + is the class name: + + \snippet worldtimeclockplugin/worldtimeclockplugin.h 0 + + The plugin class provides \QD with basic information about our + plugin, such as its class name and its include file. Furthermore + it knows how to create instances of the \c WorldTimeClockPlugin + widget. \c WorldTimeClockPlugin also defines the \l + {QDesignerCustomWidgetInterface::initialize()}{initialize()} + function which is called after the plugin is loaded into \QD. The + function's QDesignerFormEditorInterface parameter provides the + plugin with a gateway to all of \QD's API's. + + The \c WorldTimeClockPlugin class inherits from both QObject and + QDesignerCustomWidgetInterface. It is important to remember, when + using multiple inheritance, to ensure that all the interfaces + (i.e. the classes that doesn't inherit Q_OBJECT) are made known to + the meta object system using the Q_INTERFACES() macro. This + enables \QD to use qobject_cast() to query for supported + interfaces using nothing but a QObject pointer. + + The implementation of the \c WorldTimeClockPlugin is also + equivalent to the plugin interface implementation in the \l + {customwidgetplugin}{Custom Widget Plugin} example (only + the class name and the implementation of + QDesignerCustomWidgetInterface::domXml() differ). The main thing + to remember is to use the Q_PLUGIN_METADATA() macro to export the \c + WorldTimeClockPlugin class for use with \QD: + + \snippet worldtimeclockplugin/worldtimeclockplugin.h 1 + + Without this macro, there is no way for Qt Designer to use the + widget. + + \section1 The Project File: worldtimeclockplugin.pro + + The project file for custom widget plugins needs some additional + information to ensure that they will work as expected within \QD: + + \snippet worldtimeclockplugin/worldtimeclockplugin.pro 0 + \snippet worldtimeclockplugin/worldtimeclockplugin.pro 1 + + The \c TEMPLATE variable's value in conjunction with the keyword + \c plugin in the \c CONFIG variable make \c qmake create the custom + widget as a plugin library. + + The \c QT variable contains the keyword \c uiplugin. This plugin type + provides a factory function for custom widget creation by implementing + the abstract interfaces QDesignerCustomWidgetInterface or + QDesignerCustomWidgetCollectionInterface, suitable for use with + QUiLoader. It does not have a dependency on the \QD libraries. + Plugins accessing other interfaces of \QD to implement container extensions + or other \QD specific functionality follow different rules and are covered + by other examples. + + The header and source files for the widget are declared in the + usual way, and in addition we provide an implementation of the + plugin interface so that \QD can use the custom widget. + + \snippet worldtimeclockplugin/worldtimeclockplugin.pro 2 + + It is important to ensure that the plugin is installed in a location that + is searched by \QD. We do this by specifying a target path for the project + and adding it to the list of items to install: + + \snippet doc/snippets/doc_src_examples_worldtimeclockplugin.pro 0 + + The custom widget is created as a library, and will be installed + alongside the other \QD plugins when the project is installed + (using \c{make install} or an equivalent installation procedure). + Later, we will ensure that it is recognized as a plugin by \QD by + using the Q_PLUGIN_METADATA() macro to export the relevant widget + information. + + Note that if you want the plugins to appear in a Visual Studio + integration, the plugins must be built in release mode and their + libraries must be copied into the plugin directory in the install + path of the integration (for an example, see \c {C:/program + files/trolltech as/visual studio integration/plugins}). + + For more information about plugins, see the \l {How to Create Qt + Plugins} document. +*/ diff --git a/examples/designer/taskmenuextension/CMakeLists.txt b/examples/designer/taskmenuextension/CMakeLists.txt new file mode 100644 index 0000000..9c3c8e1 --- /dev/null +++ b/examples/designer/taskmenuextension/CMakeLists.txt @@ -0,0 +1,38 @@ +cmake_minimum_required(VERSION 3.16) +project(taskmenuextension LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/plugins/designer") + +find_package(Qt6 REQUIRED COMPONENTS Core Designer Gui Widgets) + +qt_add_plugin(taskmenuextension) +target_sources(taskmenuextension PRIVATE + tictactoe.cpp tictactoe.h + tictactoedialog.cpp tictactoedialog.h + tictactoeplugin.cpp tictactoeplugin.h + tictactoetaskmenu.cpp tictactoetaskmenu.h +) + +set_target_properties(taskmenuextension PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(taskmenuextension PUBLIC + Qt::Core + Qt::Designer + Qt::Gui + Qt::Widgets +) + +install(TARGETS taskmenuextension + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/designer/taskmenuextension/taskmenuextension.pro b/examples/designer/taskmenuextension/taskmenuextension.pro new file mode 100644 index 0000000..71a3806 --- /dev/null +++ b/examples/designer/taskmenuextension/taskmenuextension.pro @@ -0,0 +1,36 @@ +#! [0] +QT += widgets designer +#! [0] + +QTDIR_build { +# This is only for the Qt build. Do not use externally. We mean it. +PLUGIN_TYPE = designer +PLUGIN_CLASS_NAME = TicTacToePlugin +load(qt_plugin) +CONFIG += install_ok +} else { +# Public example: + +#! [1] +TEMPLATE = lib +CONFIG += plugin +#! [1] + +TARGET = $$qtLibraryTarget($$TARGET) + +target.path = $$[QT_INSTALL_PLUGINS]/designer +INSTALLS += target + +} + +#! [2] +HEADERS += tictactoe.h \ + tictactoedialog.h \ + tictactoeplugin.h \ + tictactoetaskmenu.h +SOURCES += tictactoe.cpp \ + tictactoedialog.cpp \ + tictactoeplugin.cpp \ + tictactoetaskmenu.cpp +OTHER_FILES += tictactoe.json +#! [2] diff --git a/examples/designer/taskmenuextension/tictactoe.cpp b/examples/designer/taskmenuextension/tictactoe.cpp new file mode 100644 index 0000000..deaa7c4 --- /dev/null +++ b/examples/designer/taskmenuextension/tictactoe.cpp @@ -0,0 +1,140 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "tictactoe.h" + +#include +#include + +static inline QString defaultState() { return QStringLiteral("---------"); } + +TicTacToe::TicTacToe(QWidget *parent) + : QWidget(parent), myState(defaultState()) +{ +} + +QSize TicTacToe::minimumSizeHint() const +{ + return {200, 200}; +} + +QSize TicTacToe::sizeHint() const +{ + return {200, 200}; +} + +void TicTacToe::setState(const QString &newState) +{ + turnNumber = 0; + myState = defaultState(); + const int count = qMin(9, int(newState.length())); + for (int position = 0; position < count; ++position) { + const QChar mark = newState.at(position); + if (mark == Cross || mark == Nought) { + ++turnNumber; + myState[position] = mark; + } + } + update(); +} + +QString TicTacToe::state() const +{ + return myState; +} + +void TicTacToe::clearBoard() +{ + myState = defaultState(); + turnNumber = 0; + update(); +} + +void TicTacToe::mousePressEvent(QMouseEvent *event) +{ + if (turnNumber == 9) { + clearBoard(); + return; + } + for (int position = 0; position < 9; ++position) { + const QRect &cell = cellRect(position); + if (cell.contains(event->position().toPoint())) { + if (myState.at(position) == Empty) { + myState[position] = turnNumber % 2 == 0 + ? Cross : Nought; + ++turnNumber; + update(); + } + } + } +} + +void TicTacToe::paintEvent(QPaintEvent * /* event */) +{ + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + painter.setPen(QPen(Qt::darkGreen, 1)); + painter.drawLine(cellWidth(), 0, cellWidth(), height()); + painter.drawLine(2 * cellWidth(), 0, 2 * cellWidth(), height()); + painter.drawLine(0, cellHeight(), width(), cellHeight()); + painter.drawLine(0, 2 * cellHeight(), width(), 2 * cellHeight()); + + painter.setPen(QPen(Qt::darkBlue, 2)); + + for (int position = 0; position < 9; ++position) { + const QRect &cell = cellRect(position); + + if (myState.at(position) == Cross) { + painter.drawLine(cell.topLeft(), cell.bottomRight()); + painter.drawLine(cell.topRight(), cell.bottomLeft()); + } else if (myState.at(position) == Nought) { + painter.drawEllipse(cell); + } + } + + painter.setPen(QPen(Qt::yellow, 3)); + + for (int position = 0; position < 9; position = position + 3) { + if (myState.at(position) != Empty + && myState.at(position + 1) == myState.at(position) + && myState.at(position + 2) == myState.at(position)) { + const int y = cellRect(position).center().y(); + painter.drawLine(0, y, width(), y); + turnNumber = 9; + } + } + + for (int position = 0; position < 3; ++position) { + if (myState.at(position) != Empty + && myState.at(position + 3) == myState.at(position) + && myState.at(position + 6) == myState.at(position)) { + const int x = cellRect(position).center().x(); + painter.drawLine(x, 0, x, height()); + turnNumber = 9; + } + } + if (myState.at(0) != Empty && myState.at(4) == myState.at(0) + && myState.at(8) == myState.at(0)) { + painter.drawLine(0, 0, width(), height()); + turnNumber = 9; + } + if (myState.at(2) != Empty && myState.at(4) == myState.at(2) + && myState.at(6) == myState.at(2)) { + painter.drawLine(0, height(), width(), 0); + turnNumber = 9; + } +} + +QRect TicTacToe::cellRect(int position) const +{ + const int HMargin = width() / 30; + const int VMargin = height() / 30; + const int row = position / 3; + const int column = position % 3; + const QPoint pos{column * cellWidth() + HMargin, + row * cellHeight() + VMargin}; + const QSize size{cellWidth() - 2 * HMargin, + cellHeight() - 2 * VMargin}; + return {pos, size}; +} diff --git a/examples/designer/taskmenuextension/tictactoe.h b/examples/designer/taskmenuextension/tictactoe.h new file mode 100644 index 0000000..60b82a5 --- /dev/null +++ b/examples/designer/taskmenuextension/tictactoe.h @@ -0,0 +1,47 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef TICTACTOE_H +#define TICTACTOE_H + +#include + +QT_BEGIN_NAMESPACE +class QRect; +class QSize; +QT_END_NAMESPACE + +//! [0] +class TicTacToe : public QWidget +{ + Q_OBJECT + Q_PROPERTY(QString state READ state WRITE setState) + +public: + explicit TicTacToe(QWidget *parent = nullptr); + + QSize minimumSizeHint() const override; + QSize sizeHint() const override; + void setState(const QString &newState); + QString state() const; + void clearBoard(); + +protected: + void mousePressEvent(QMouseEvent *event) override; + void paintEvent(QPaintEvent *event) override; + +private: + static constexpr char16_t Empty = '-'; + static constexpr char16_t Cross = 'X'; + static constexpr char16_t Nought = 'O'; + + QRect cellRect(int position) const; + int cellWidth() const { return width() / 3; } + int cellHeight() const { return height() / 3; } + + QString myState; + int turnNumber = 0; +}; +//! [0] + +#endif diff --git a/examples/designer/taskmenuextension/tictactoedialog.cpp b/examples/designer/taskmenuextension/tictactoedialog.cpp new file mode 100644 index 0000000..6ead30c --- /dev/null +++ b/examples/designer/taskmenuextension/tictactoedialog.cpp @@ -0,0 +1,63 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "tictactoe.h" +#include "tictactoedialog.h" + +#include +#include +#include +#include +#include +#include + +//! [0] +TicTacToeDialog::TicTacToeDialog(TicTacToe *tic, QWidget *parent) + : QDialog(parent) + , editor(new TicTacToe) + , ticTacToe(tic) + , buttonBox(new QDialogButtonBox(QDialogButtonBox::Ok + | QDialogButtonBox::Cancel + | QDialogButtonBox::Reset)) +{ + editor->setState(ticTacToe->state()); + + connect(buttonBox->button(QDialogButtonBox::Reset), &QAbstractButton::clicked, + this, &TicTacToeDialog::resetState); + connect(buttonBox, &QDialogButtonBox::accepted, this, &TicTacToeDialog::saveState); + connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + + QVBoxLayout *mainLayout = new QVBoxLayout(this); + mainLayout->addWidget(editor); + mainLayout->addWidget(buttonBox); + + setWindowTitle(tr("Edit State")); +} +//! [0] + +//! [1] +QSize TicTacToeDialog::sizeHint() const +{ + return QSize(250, 250); +} +//! [1] + +//! [2] +void TicTacToeDialog::resetState() +{ + editor->clearBoard(); +} +//! [2] + +//! [3] +void TicTacToeDialog::saveState() +{ +//! [3] //! [4] + if (QDesignerFormWindowInterface *formWindow + = QDesignerFormWindowInterface::findFormWindow(ticTacToe)) { + formWindow->cursor()->setProperty("state", editor->state()); + } +//! [4] //! [5] + accept(); +} +//! [5] diff --git a/examples/designer/taskmenuextension/tictactoedialog.h b/examples/designer/taskmenuextension/tictactoedialog.h new file mode 100644 index 0000000..4dfae74 --- /dev/null +++ b/examples/designer/taskmenuextension/tictactoedialog.h @@ -0,0 +1,35 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef TICTACTOEDIALOG_H +#define TICTACTOEDIALOG_H + +#include + +QT_BEGIN_NAMESPACE +class QDialogButtonBox; +QT_END_NAMESPACE +class TicTacToe; + +//! [0] +class TicTacToeDialog : public QDialog +{ + Q_OBJECT + +public: + explicit TicTacToeDialog(TicTacToe *plugin = nullptr, QWidget *parent = nullptr); + + QSize sizeHint() const override; + +private slots: + void resetState(); + void saveState(); + +private: + TicTacToe *editor; + TicTacToe *ticTacToe; + QDialogButtonBox *buttonBox; +}; +//! [0] + +#endif diff --git a/examples/designer/taskmenuextension/tictactoeplugin.cpp b/examples/designer/taskmenuextension/tictactoeplugin.cpp new file mode 100644 index 0000000..75dd91d --- /dev/null +++ b/examples/designer/taskmenuextension/tictactoeplugin.cpp @@ -0,0 +1,101 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "tictactoe.h" +#include "tictactoeplugin.h" +#include "tictactoetaskmenu.h" + +#include +#include +#include + +//! [0] +TicTacToePlugin::TicTacToePlugin(QObject *parent) + : QObject(parent) +{ +} + +QString TicTacToePlugin::name() const +{ + return QStringLiteral("TicTacToe"); +} + +QString TicTacToePlugin::group() const +{ + return QStringLiteral("Display Widgets [Examples]"); +} + +QString TicTacToePlugin::toolTip() const +{ + return QStringLiteral("Tic Tac Toe Example, demonstrating class QDesignerTaskMenuExtension (C++)"); +} + +QString TicTacToePlugin::whatsThis() const +{ + return QString(); +} + +QString TicTacToePlugin::includeFile() const +{ + return QStringLiteral("tictactoe.h"); +} + +QIcon TicTacToePlugin::icon() const +{ + return QIcon(); +} + +bool TicTacToePlugin::isContainer() const +{ + return false; +} + +QWidget *TicTacToePlugin::createWidget(QWidget *parent) +{ + TicTacToe *ticTacToe = new TicTacToe(parent); + ticTacToe->setState(QStringLiteral("-X-XO----")); + return ticTacToe; +} + +bool TicTacToePlugin::isInitialized() const +{ + return initialized; +} + +//! [0] //! [1] +void TicTacToePlugin::initialize(QDesignerFormEditorInterface *formEditor) +{ +//! [1] //! [2] + if (initialized) + return; + + QExtensionManager *manager = formEditor->extensionManager(); + Q_ASSERT(manager != 0); +//! [2] + +//! [3] + manager->registerExtensions(new TicTacToeTaskMenuFactory(manager), + Q_TYPEID(QDesignerTaskMenuExtension)); + + initialized = true; +} + +QString TicTacToePlugin::domXml() const +{ + return QLatin1String(R"( + + + + + TicTacToe + + Tic Tac Toe state + + + + + +)"); +} + +//! [3] diff --git a/examples/designer/taskmenuextension/tictactoeplugin.h b/examples/designer/taskmenuextension/tictactoeplugin.h new file mode 100644 index 0000000..8826266 --- /dev/null +++ b/examples/designer/taskmenuextension/tictactoeplugin.h @@ -0,0 +1,43 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +//! [0] +#ifndef TICTACTOEPLUGIN_H +#define TICTACTOEPLUGIN_H + +#include + +QT_BEGIN_NAMESPACE +class QIcon; +class QWidget; +QT_END_NAMESPACE + +class TicTacToePlugin : public QObject, public QDesignerCustomWidgetInterface +{ + Q_OBJECT +//! [1] + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface") +//! [1] + Q_INTERFACES(QDesignerCustomWidgetInterface) + +public: + explicit TicTacToePlugin(QObject *parent = nullptr); + + QString name() const override; + QString group() const override; + QString toolTip() const override; + QString whatsThis() const override; + QString includeFile() const override; + QIcon icon() const override; + bool isContainer() const override; + QWidget *createWidget(QWidget *parent) override; + bool isInitialized() const override; + void initialize(QDesignerFormEditorInterface *formEditor) override; + QString domXml() const override; + +private: + bool initialized = false; +}; + +#endif +//! [0] diff --git a/examples/designer/taskmenuextension/tictactoetaskmenu.cpp b/examples/designer/taskmenuextension/tictactoetaskmenu.cpp new file mode 100644 index 0000000..967cb59 --- /dev/null +++ b/examples/designer/taskmenuextension/tictactoetaskmenu.cpp @@ -0,0 +1,63 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "tictactoe.h" +#include "tictactoedialog.h" +#include "tictactoetaskmenu.h" + +#include +#include + +//! [0] +TicTacToeTaskMenu::TicTacToeTaskMenu(TicTacToe *tic, QObject *parent) + : QObject(parent) + , editStateAction(new QAction(tr("Edit State..."), this)) + , ticTacToe(tic) +{ + connect(editStateAction, &QAction::triggered, this, &TicTacToeTaskMenu::editState); +} +//! [0] + +//! [1] +void TicTacToeTaskMenu::editState() +{ + TicTacToeDialog dialog(ticTacToe); + dialog.exec(); +} +//! [1] + +//! [2] +QAction *TicTacToeTaskMenu::preferredEditAction() const +{ + return editStateAction; +} +//! [2] + +//! [3] +QList TicTacToeTaskMenu::taskActions() const +{ + return QList{editStateAction}; +} +//! [3] + +//! [4] +TicTacToeTaskMenuFactory::TicTacToeTaskMenuFactory(QExtensionManager *parent) + : QExtensionFactory(parent) +{ +} +//! [4] + +//! [5] +QObject *TicTacToeTaskMenuFactory::createExtension(QObject *object, + const QString &iid, + QObject *parent) const +{ + if (iid != Q_TYPEID(QDesignerTaskMenuExtension)) + return nullptr; + + if (TicTacToe *tic = qobject_cast(object)) + return new TicTacToeTaskMenu(tic, parent); + + return nullptr; +} +//! [5] diff --git a/examples/designer/taskmenuextension/tictactoetaskmenu.h b/examples/designer/taskmenuextension/tictactoetaskmenu.h new file mode 100644 index 0000000..ef85733 --- /dev/null +++ b/examples/designer/taskmenuextension/tictactoetaskmenu.h @@ -0,0 +1,50 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef TICTACTOETASKMENU_H +#define TICTACTOETASKMENU_H + +#include +#include + +QT_BEGIN_NAMESPACE +class QAction; +class QExtensionManager; +QT_END_NAMESPACE +class TicTacToe; + +//! [0] +class TicTacToeTaskMenu : public QObject, public QDesignerTaskMenuExtension +{ + Q_OBJECT + Q_INTERFACES(QDesignerTaskMenuExtension) + +public: + explicit TicTacToeTaskMenu(TicTacToe *tic, QObject *parent); + + QAction *preferredEditAction() const override; + QList taskActions() const override; + +private slots: + void editState(); + +private: + QAction *editStateAction; + TicTacToe *ticTacToe; +}; +//! [0] + +//! [1] +class TicTacToeTaskMenuFactory : public QExtensionFactory +{ + Q_OBJECT + +public: + explicit TicTacToeTaskMenuFactory(QExtensionManager *parent = nullptr); + +protected: + QObject *createExtension(QObject *object, const QString &iid, QObject *parent) const override; +}; +//! [1] + +#endif diff --git a/examples/designer/worldtimeclockbuilder/CMakeLists.txt b/examples/designer/worldtimeclockbuilder/CMakeLists.txt new file mode 100644 index 0000000..cbacb3a --- /dev/null +++ b/examples/designer/worldtimeclockbuilder/CMakeLists.txt @@ -0,0 +1,49 @@ +cmake_minimum_required(VERSION 3.16) +project(worldtimeclockbuilder LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/designer/worldtimeclockbuilder") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui UiTools Widgets) + +qt_add_executable(worldtimeclockbuilder + main.cpp +) + +set_target_properties(worldtimeclockbuilder PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(worldtimeclockbuilder PUBLIC + Qt::Core + Qt::Gui + Qt::UiTools + Qt::Widgets +) + +# Resources: +set(worldtimeclockbuilder_resource_files + "form.ui" +) + +qt6_add_resources(worldtimeclockbuilder "worldtimeclockbuilder" + PREFIX + "/forms" + FILES + ${worldtimeclockbuilder_resource_files} +) + +install(TARGETS worldtimeclockbuilder + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/designer/worldtimeclockbuilder/form.ui b/examples/designer/worldtimeclockbuilder/form.ui new file mode 100644 index 0000000..e5be1d9 --- /dev/null +++ b/examples/designer/worldtimeclockbuilder/form.ui @@ -0,0 +1,162 @@ + + + + + WorldTimeForm + + + + 0 + 0 + 400 + 300 + + + + World Time Clock + + + + 9 + + + 6 + + + + + + + + 1 + + + 6 + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + 1 + + + 6 + + + + + Current time: + + + + + + + true + + + + + + + + + 1 + + + 6 + + + + + Set time zone: + + + + + + + 12 + + + -12 + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + WorldTimeClock + +

worldtimeclock.h
+ 0 + + + + + + + spinBox + valueChanged(int) + worldTimeClock + setTimeZone(int) + + + 339 + 166 + + + 157 + 230 + + + + + worldTimeClock + updated(QTime) + timeEdit + setTime(QTime) + + + 141 + 59 + + + 291 + 133 + + + + + diff --git a/examples/designer/worldtimeclockbuilder/main.cpp b/examples/designer/worldtimeclockbuilder/main.cpp new file mode 100644 index 0000000..505222c --- /dev/null +++ b/examples/designer/worldtimeclockbuilder/main.cpp @@ -0,0 +1,33 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +//! [0] +#include +//! [0] +#include +#include +#include +//! [1] +int main(int argc, char *argv[]) +{ + Q_INIT_RESOURCE(worldtimeclockbuilder); + + QApplication app(argc, argv); + + QUiLoader loader; +//! [1] + +//! [2] + QFile file(":/forms/form.ui"); + file.open(QFile::ReadOnly); + + QWidget *widget = loader.load(&file); + + file.close(); + widget->show(); +//! [2] + +//! [3] + return app.exec(); +} +//! [3] diff --git a/examples/designer/worldtimeclockbuilder/worldtimeclockbuilder.pro b/examples/designer/worldtimeclockbuilder/worldtimeclockbuilder.pro new file mode 100644 index 0000000..1e420aa --- /dev/null +++ b/examples/designer/worldtimeclockbuilder/worldtimeclockbuilder.pro @@ -0,0 +1,8 @@ +#! [0] +QT += widgets uitools +SOURCES = main.cpp +RESOURCES = worldtimeclockbuilder.qrc +#! [0] + +target.path = $$[QT_INSTALL_EXAMPLES]/designer/worldtimeclockbuilder +INSTALLS += target diff --git a/examples/designer/worldtimeclockbuilder/worldtimeclockbuilder.qrc b/examples/designer/worldtimeclockbuilder/worldtimeclockbuilder.qrc new file mode 100644 index 0000000..89d5ac3 --- /dev/null +++ b/examples/designer/worldtimeclockbuilder/worldtimeclockbuilder.qrc @@ -0,0 +1,5 @@ + + + form.ui + + diff --git a/examples/designer/worldtimeclockplugin/CMakeLists.txt b/examples/designer/worldtimeclockplugin/CMakeLists.txt new file mode 100644 index 0000000..dea05a3 --- /dev/null +++ b/examples/designer/worldtimeclockplugin/CMakeLists.txt @@ -0,0 +1,36 @@ +cmake_minimum_required(VERSION 3.16) +project(worldtimeclockplugin LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/plugins/designer") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui UiPlugin Widgets) + +qt_add_plugin(worldtimeclockplugin) +target_sources(worldtimeclockplugin PRIVATE + worldtimeclock.cpp worldtimeclock.h + worldtimeclockplugin.cpp worldtimeclockplugin.h +) + +set_target_properties(worldtimeclockplugin PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(worldtimeclockplugin PUBLIC + Qt::Core + Qt::Gui + Qt::UiPlugin + Qt::Widgets +) + +install(TARGETS worldtimeclockplugin + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/designer/worldtimeclockplugin/worldtimeclock.cpp b/examples/designer/worldtimeclockplugin/worldtimeclock.cpp new file mode 100644 index 0000000..c9a19c1 --- /dev/null +++ b/examples/designer/worldtimeclockplugin/worldtimeclock.cpp @@ -0,0 +1,84 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "worldtimeclock.h" + +#include +#include +#include + +WorldTimeClock::WorldTimeClock(QWidget *parent) + : QWidget(parent) +{ + QTimer *timer = new QTimer(this); + connect(timer, &QTimer::timeout, this, QOverload<>::of(&QWidget::update)); + timer->start(1000); + + setWindowTitle(tr("World Time Clock")); + resize(200, 200); +} + +void WorldTimeClock::paintEvent(QPaintEvent *) +{ + static const QPoint hourHand[3] = { + QPoint(7, 8), + QPoint(-7, 8), + QPoint(0, -40) + }; + static const QPoint minuteHand[3] = { + QPoint(7, 8), + QPoint(-7, 8), + QPoint(0, -70) + }; + + QColor hourColor(127, 0, 127); + QColor minuteColor(0, 127, 127, 191); + + int side = qMin(width(), height()); + QTime time = QTime::currentTime(); + time = time.addSecs(timeZoneOffset); + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + painter.translate(width() / 2, height() / 2); + painter.scale(side / 200.0, side / 200.0); + + painter.setPen(Qt::NoPen); + painter.setBrush(hourColor); + + painter.save(); + painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0))); + painter.drawConvexPolygon(hourHand, 3); + painter.restore(); + + painter.setPen(hourColor); + + for (int i = 0; i < 12; ++i) { + painter.drawLine(88, 0, 96, 0); + painter.rotate(30.0); + } + + painter.setPen(Qt::NoPen); + painter.setBrush(minuteColor); + + painter.save(); + painter.rotate(6.0 * (time.minute() + time.second() / 60.0)); + painter.drawConvexPolygon(minuteHand, 3); + painter.restore(); + + painter.setPen(minuteColor); + + for (int j = 0; j < 60; ++j) { + if ((j % 5) != 0) + painter.drawLine(92, 0, 96, 0); + painter.rotate(6.0); + } + + emit updated(time); +} + +void WorldTimeClock::setTimeZone(int hourOffset) +{ + timeZoneOffset = qMin(qMax(-12, hourOffset), 12) * 3600; + update(); +} diff --git a/examples/designer/worldtimeclockplugin/worldtimeclock.h b/examples/designer/worldtimeclockplugin/worldtimeclock.h new file mode 100644 index 0000000..10682e8 --- /dev/null +++ b/examples/designer/worldtimeclockplugin/worldtimeclock.h @@ -0,0 +1,35 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef WORLDTIMECLOCK_H +#define WORLDTIMECLOCK_H + +#include +#include +#include + +//! [0] //! [1] +class QDESIGNER_WIDGET_EXPORT WorldTimeClock : public QWidget +{ + Q_OBJECT +//! [0] + +public: + explicit WorldTimeClock(QWidget *parent = nullptr); + +public slots: + void setTimeZone(int hourOffset); + +signals: + void updated(QTime currentTime); + +protected: + void paintEvent(QPaintEvent *event) override; + +private: + int timeZoneOffset = 0; +//! [2] +}; +//! [1] //! [2] + +#endif diff --git a/examples/designer/worldtimeclockplugin/worldtimeclockplugin.cpp b/examples/designer/worldtimeclockplugin/worldtimeclockplugin.cpp new file mode 100644 index 0000000..90d4a4f --- /dev/null +++ b/examples/designer/worldtimeclockplugin/worldtimeclockplugin.cpp @@ -0,0 +1,83 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "worldtimeclock.h" +#include "worldtimeclockplugin.h" + +#include + +WorldTimeClockPlugin::WorldTimeClockPlugin(QObject *parent) + : QObject(parent) +{ +} + +void WorldTimeClockPlugin::initialize(QDesignerFormEditorInterface * /* core */) +{ + if (initialized) + return; + + initialized = true; +} + +bool WorldTimeClockPlugin::isInitialized() const +{ + return initialized; +} + +QWidget *WorldTimeClockPlugin::createWidget(QWidget *parent) +{ + return new WorldTimeClock(parent); +} + +QString WorldTimeClockPlugin::name() const +{ + return QStringLiteral("WorldTimeClock"); +} + +QString WorldTimeClockPlugin::group() const +{ + return QStringLiteral("Display Widgets [Examples]"); +} + +QIcon WorldTimeClockPlugin::icon() const +{ + return QIcon(); +} + +QString WorldTimeClockPlugin::toolTip() const +{ + return QString(); +} + +QString WorldTimeClockPlugin::whatsThis() const +{ + return QString(); +} + +bool WorldTimeClockPlugin::isContainer() const +{ + return false; +} + +QString WorldTimeClockPlugin::domXml() const +{ + return QLatin1String(R"( + + + + + 0 + 0 + 100 + 100 + + + + +)"); +} + +QString WorldTimeClockPlugin::includeFile() const +{ + return QStringLiteral("worldtimeclock.h"); +} diff --git a/examples/designer/worldtimeclockplugin/worldtimeclockplugin.h b/examples/designer/worldtimeclockplugin/worldtimeclockplugin.h new file mode 100644 index 0000000..3f7b4b8 --- /dev/null +++ b/examples/designer/worldtimeclockplugin/worldtimeclockplugin.h @@ -0,0 +1,39 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef WORLDTIMECLOCKPLUGIN_H +#define WORLDTIMECLOCKPLUGIN_H + +#include + +//! [0] +class WorldTimeClockPlugin : public QObject, + public QDesignerCustomWidgetInterface +{ + Q_OBJECT +//! [1] + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface") +//! [1] + Q_INTERFACES(QDesignerCustomWidgetInterface) + +public: + explicit WorldTimeClockPlugin(QObject *parent = nullptr); + + bool isContainer() const override; + bool isInitialized() const override; + QIcon icon() const override; + QString domXml() const override; + QString group() const override; + QString includeFile() const override; + QString name() const override; + QString toolTip() const override; + QString whatsThis() const override; + QWidget *createWidget(QWidget *parent) override; + void initialize(QDesignerFormEditorInterface *core) override; + +private: + bool initialized = false; +}; +//! [0] + +#endif diff --git a/examples/designer/worldtimeclockplugin/worldtimeclockplugin.pro b/examples/designer/worldtimeclockplugin/worldtimeclockplugin.pro new file mode 100644 index 0000000..b6332ce --- /dev/null +++ b/examples/designer/worldtimeclockplugin/worldtimeclockplugin.pro @@ -0,0 +1,30 @@ +#! [0] +QT += widgets uiplugin +#! [0] + +QTDIR_build { +# This is only for the Qt build. Do not use externally. We mean it. +PLUGIN_TYPE = designer +PLUGIN_CLASS_NAME = WorldTimeClockPlugin +load(qt_plugin) +CONFIG += install_ok +} else { +# Public example: + +TARGET = $$qtLibraryTarget($$TARGET) +#! [1] +CONFIG += plugin +TEMPLATE = lib +#! [1] + +target.path = $$[QT_INSTALL_PLUGINS]/designer +INSTALLS += target + +} + +#! [2] +HEADERS = worldtimeclock.h \ + worldtimeclockplugin.h +SOURCES = worldtimeclock.cpp \ + worldtimeclockplugin.cpp +#! [2] diff --git a/examples/examples.pro b/examples/examples.pro new file mode 100644 index 0000000..2003bc5 --- /dev/null +++ b/examples/examples.pro @@ -0,0 +1,8 @@ +TEMPLATE = subdirs +qtHaveModule(widgets): SUBDIRS += help designer linguist uitools assistant + +!qtConfig(process): SUBDIRS -= assistant designer + +qtNomakeTools( \ + assistant \ +) diff --git a/examples/help/CMakeLists.txt b/examples/help/CMakeLists.txt new file mode 100644 index 0000000..d51ae1d --- /dev/null +++ b/examples/help/CMakeLists.txt @@ -0,0 +1 @@ +qt_internal_add_example(contextsensitivehelp) diff --git a/examples/help/README b/examples/help/README new file mode 100644 index 0000000..e09e00f --- /dev/null +++ b/examples/help/README @@ -0,0 +1,7 @@ +Support for interactive help is provided by the Qt Assistant application. +Developers can take advantages of the facilities it offers to display +specially-prepared documentation to users of their applications. + + +Documentation for these examples can be found via the Tutorial and Examples +link in the main Qt documentation. diff --git a/examples/help/contextsensitivehelp/CMakeLists.txt b/examples/help/contextsensitivehelp/CMakeLists.txt new file mode 100644 index 0000000..1eebae2 --- /dev/null +++ b/examples/help/contextsensitivehelp/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 3.16) +project(contextsensitivehelp LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/help/contextsensitivehelp") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui Help Widgets) + +qt_add_executable(contextsensitivehelp + helpbrowser.cpp helpbrowser.h + main.cpp + wateringconfigdialog.cpp wateringconfigdialog.h wateringconfigdialog.ui +) + +set_target_properties(contextsensitivehelp PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(contextsensitivehelp PUBLIC + Qt::Core + Qt::Gui + Qt::Help + Qt::Widgets +) + +install(TARGETS contextsensitivehelp + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/help/contextsensitivehelp/contextsensitivehelp.pro b/examples/help/contextsensitivehelp/contextsensitivehelp.pro new file mode 100644 index 0000000..393576f --- /dev/null +++ b/examples/help/contextsensitivehelp/contextsensitivehelp.pro @@ -0,0 +1,17 @@ +TEMPLATE = app + +QT += help widgets +SOURCES += main.cpp \ + wateringconfigdialog.cpp \ + helpbrowser.cpp + +HEADERS += wateringconfigdialog.h \ + helpbrowser.h + +FORMS += wateringconfigdialog.ui + +target.path = $$[QT_INSTALL_EXAMPLES]/help/contextsensitivehelp +docs.files += $$PWD/docs +docs.path = $$target.path + +INSTALLS += target docs diff --git a/examples/help/contextsensitivehelp/docs/amount.html b/examples/help/contextsensitivehelp/docs/amount.html new file mode 100644 index 0000000..78ab220 --- /dev/null +++ b/examples/help/contextsensitivehelp/docs/amount.html @@ -0,0 +1,11 @@ + + + + Water amount + + + Depending on the plant, temperature and rain fall the amount needs to be larger + or smaller. On a really hot day without rain, the suggested amount + can be increased by about 10%. + + diff --git a/examples/help/contextsensitivehelp/docs/filter.html b/examples/help/contextsensitivehelp/docs/filter.html new file mode 100644 index 0000000..6486112 --- /dev/null +++ b/examples/help/contextsensitivehelp/docs/filter.html @@ -0,0 +1,12 @@ + + + +Filter + + +Depending on the source of water, it needs to be filtered or not. Filtering +is strongly recommened for the river and lake. + + + + diff --git a/examples/help/contextsensitivehelp/docs/plants.html b/examples/help/contextsensitivehelp/docs/plants.html new file mode 100644 index 0000000..d0fd4d7 --- /dev/null +++ b/examples/help/contextsensitivehelp/docs/plants.html @@ -0,0 +1,44 @@ + + + + Plants + + + Different kind of plants need different amounts of water. Here's a short + overview over the most common grown plants and their avarage need of water: +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KindAmount
Squash2000
Bean1500
Carrot1200
Strawberry1300
Raspberry1000
Blueberry1100
+

+ Warning: Watering them too much or too little will + cause irreversible damage! + + diff --git a/examples/help/contextsensitivehelp/docs/rain.html b/examples/help/contextsensitivehelp/docs/rain.html new file mode 100644 index 0000000..09b5fa4 --- /dev/null +++ b/examples/help/contextsensitivehelp/docs/rain.html @@ -0,0 +1,11 @@ + + + + Rain + + + Depending on the rain fall, the automated watering system should not be + switched on at all. Also, the temperature should be + considered. + + diff --git a/examples/help/contextsensitivehelp/docs/source.html b/examples/help/contextsensitivehelp/docs/source.html new file mode 100644 index 0000000..68b2f8c --- /dev/null +++ b/examples/help/contextsensitivehelp/docs/source.html @@ -0,0 +1,33 @@ + + + + Water Source + + + The current pipe system connects to four different sources. Be aware + that only a limited amount of water can be taken from some sources. +
+ + + + + + + + + + + + + + + + + + + + + +
SourceAmount
Fountain4000
River6000
Lake10000
Public Water Systemunlimited
+ + diff --git a/examples/help/contextsensitivehelp/docs/temperature.html b/examples/help/contextsensitivehelp/docs/temperature.html new file mode 100644 index 0000000..92e8723 --- /dev/null +++ b/examples/help/contextsensitivehelp/docs/temperature.html @@ -0,0 +1,13 @@ + + + + Temperature + + + Depending on the temperature, the plants need more or less water. The higher + the temperature the higher the need for water. If the temperature does not + reach a certain level, maybe no automatic watering should be done at all.
+ Before setting this parameter for good, you should also take the amount of + rain into account. + + diff --git a/examples/help/contextsensitivehelp/docs/time.html b/examples/help/contextsensitivehelp/docs/time.html new file mode 100644 index 0000000..0cc81f4 --- /dev/null +++ b/examples/help/contextsensitivehelp/docs/time.html @@ -0,0 +1,11 @@ + + + +Starting time + + +Starting the watering too early may be ineffective since most water +will evaporate. + + + diff --git a/examples/help/contextsensitivehelp/docs/wateringmachine.qch b/examples/help/contextsensitivehelp/docs/wateringmachine.qch new file mode 100644 index 0000000000000000000000000000000000000000..1433acfc98dc73eabe2816c2f91e56989e7f1359 GIT binary patch literal 61440 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 TBbJAT&l5z)2&2RkZSDRCygYHy literal 0 HcmV?d00001 diff --git a/examples/help/contextsensitivehelp/docs/wateringmachine.qhc b/examples/help/contextsensitivehelp/docs/wateringmachine.qhc new file mode 100644 index 0000000000000000000000000000000000000000..98cfa14817f46f6d9c2da2aab0a52b58d077b9c3 GIT binary patch literal 94208 zcmeI*&2QW09l&wYltjykLdS1{)1+bM8L?)|mE#1>3$V;d?bc}AWVVnsyBM@gM@04F zNEDo;!vO8j`!?*d>kjL=hXLE6$6f|(m;DJl3}_Ama@u;?!{^ZpsnA|}Yt*k`*?eBa z-;W=@*v}&+-1+G}&v)&EdZX(2_Nq3n>ALn4+txH~PCT>X*?mllg+#X?e(Is+;}++% z<@Z0&WWLa5lAmkVXO?y5H)npB`AcRzb9DN%Q~x|w9(y_VJpD5L!RVKxKQO;E4^l5v zzet@Hop~UD00Ia|fxQ_sd-<~7HhgEV;y!d6O|M?t@G8FBh!nDSx7XK->vnPN&b@Uz z(qu1migt1RDSDQAoi;H@DQpUJjuO8NGZp~Ny28uJ0I0KFL zLa*W@r|KRTuQg?6^Lf2}AsTPXIXv`gk9(`=l&9k(c3MLr`&+bR2jQECPRZ?8=AKNN z*<9|Gu*Cqj7gUy};zP=|*nswf?ai&V?ML>9>yK1$x$U`!6J~aHR&SefOBJa4J{bw2 z>g)yev!C;E>)ktRX6NU->+S4bnO=B#A`&CqVlTu1Ep-nYm3w=3TzOSx@7-8{S^a4hc6C*6zavw))Rxv&i%-_<|%cVQhea1h7EVP1Mw;w}{`y|MAPijPmhAT&-?8u9yMHIwzL++% zmoDkQO82Q{FexLK#v)<+^(V*doT8ii;`s3nJh#!Qh`p#pL6+>bTB%%DugJB{QN^<* zGYq;0>yW8M3h79mktVS>Ub&V8E9vAE4IlL@dVWRq%eg6)h@ukblrMf2HDw}^f*DC9 z(qu1u=suHCqfs6@m6j{_h@HD(rm|a?b@~i|(PZa7HPj`2HWaOwR%ipGb%~g`(H^fAyfvaw)$bE^K&hDW*piDzG*rLgPo%|V0gEyG1iBaz_Iwv*$B&V$~sS38#xN0M%RrHL;d2q1s}0tg_0 z00IagfB*srAn=_QxUMI(`>RKen28b7RVDGxjZ=HJEPgJp+kdik{kjEAbSuy)SA<*e^`IAes6th9auZok3|I!1Q0*~0R#|0009IL zKmY**zFz{fqsEQVjaH>nbf5Y=uG1)$H=Igk&nbN}X&Up1yA9Xz#od^Kd(-Ux;Xfar zO&PiL2j0HBw!hzSo6S2;V=`&v)9bb14nzIQ3khSbQ~6%K)T)Y`XvpyLCJf9syp^tau|UNgAmgUIYk;YuODBK|wT zYsHnTHw)KqUM(zNUtJj!`*PH}tyw>}erf&I`kQsz`o#Ledhz|*#cVAC2q1s}0tg_0 z00IagfB*s~3Y;@;=o>gSvFR-@#~`kw{2=d*WY#rdRcb*lAN z%@4JzinkKU^hNEmFW$D7Z9Bfx@WqY&?4V}C2pXpwj#rb7+hV~UNv8AKobOf--G<}0 z8tQe$etAZhX&zRbn%|VKdmtCp_B!K!JjQ@4(znb{sfdB#s zAb+hQQ z;(-7H2q1s}0tg_000IagfB*t-hQK>|DxF?6R*xLtZHT)KR-IDWtGUZhN@eZe+LgkU zLVjf>U$|CWxq7p3{pQtz8vlQzS>L=F8%UN2Ab + + + + + wateringmachine.qhp + wateringmachine.qch + + + + wateringmachine.qch + + + \ No newline at end of file diff --git a/examples/help/contextsensitivehelp/docs/wateringmachine.qhp b/examples/help/contextsensitivehelp/docs/wateringmachine.qhp new file mode 100644 index 0000000..6dd08e7 --- /dev/null +++ b/examples/help/contextsensitivehelp/docs/wateringmachine.qhp @@ -0,0 +1,25 @@ + + + wateringmachine + wateringcompany.com.1-0-0.premium + + + + + + + + + + + + plants.html + temperature.html + rain.html + time.html + amount.html + source.html + filter.html + + + diff --git a/examples/help/contextsensitivehelp/helpbrowser.cpp b/examples/help/contextsensitivehelp/helpbrowser.cpp new file mode 100644 index 0000000..893b328 --- /dev/null +++ b/examples/help/contextsensitivehelp/helpbrowser.cpp @@ -0,0 +1,44 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include +#include +#include + +#include "helpbrowser.h" +#include "qhelplink.h" + +HelpBrowser::HelpBrowser(QWidget *parent) + : QTextBrowser(parent) +{ + QString collectionFile = QLibraryInfo::path(QLibraryInfo::ExamplesPath) + + QLatin1String("/help/contextsensitivehelp/docs/wateringmachine.qhc"); + + m_helpEngine = new QHelpEngineCore(collectionFile, this); + if (!m_helpEngine->setupData()) { + delete m_helpEngine; + m_helpEngine = nullptr; + } +} + +void HelpBrowser::showHelpForKeyword(const QString &id) +{ + if (m_helpEngine) { + QList documents = m_helpEngine->documentsForIdentifier(id); + if (documents.count()) + setSource(documents.first().url); + } +} + +QVariant HelpBrowser::loadResource(int type, const QUrl &name) +{ + QByteArray ba; + if (type < 4 && m_helpEngine) { + QUrl url(name); + if (name.isRelative()) + url = source().resolved(url); + ba = m_helpEngine->fileData(url); + } + return ba; +} + diff --git a/examples/help/contextsensitivehelp/helpbrowser.h b/examples/help/contextsensitivehelp/helpbrowser.h new file mode 100644 index 0000000..b0a59f8 --- /dev/null +++ b/examples/help/contextsensitivehelp/helpbrowser.h @@ -0,0 +1,27 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef HELPBROWSER_H +#define HELPBROWSER_H + +#include + +QT_BEGIN_NAMESPACE +class QHelpEngineCore; +QT_END_NAMESPACE; + +class HelpBrowser : public QTextBrowser +{ + Q_OBJECT + +public: + HelpBrowser(QWidget *parent); + void showHelpForKeyword(const QString &id); + +private: + QVariant loadResource(int type, const QUrl &name) override; + + QHelpEngineCore *m_helpEngine; +}; + +#endif diff --git a/examples/help/contextsensitivehelp/main.cpp b/examples/help/contextsensitivehelp/main.cpp new file mode 100644 index 0000000..5b75595 --- /dev/null +++ b/examples/help/contextsensitivehelp/main.cpp @@ -0,0 +1,13 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include + +#include "wateringconfigdialog.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + WateringConfigDialog dia; + return dia.exec(); +} diff --git a/examples/help/contextsensitivehelp/wateringconfigdialog.cpp b/examples/help/contextsensitivehelp/wateringconfigdialog.cpp new file mode 100644 index 0000000..9f52588 --- /dev/null +++ b/examples/help/contextsensitivehelp/wateringconfigdialog.cpp @@ -0,0 +1,31 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "wateringconfigdialog.h" + +WateringConfigDialog::WateringConfigDialog() +{ + m_ui.setupUi(this); + m_widgetInfo.insert(m_ui.plantComboBox, tr("plants")); + m_widgetInfo.insert(m_ui.temperatureCheckBox, tr("temperature")); + m_widgetInfo.insert(m_ui.temperatureSpinBox, tr("temperature")); + m_widgetInfo.insert(m_ui.rainCheckBox, tr("rain")); + m_widgetInfo.insert(m_ui.rainSpinBox, tr("rain")); + m_widgetInfo.insert(m_ui.startTimeEdit, tr("starting time")); + m_widgetInfo.insert(m_ui.amountSpinBox, tr("water amount")); + m_widgetInfo.insert(m_ui.sourceComboBox, tr("water source")); + m_widgetInfo.insert(m_ui.filterCheckBox, tr("water filtering")); + + connect(qApp, SIGNAL(focusChanged(QWidget*,QWidget*)), + this, SLOT(focusChanged(QWidget*,QWidget*))); +} + +void WateringConfigDialog::focusChanged(QWidget *, QWidget *now) +{ + if (m_widgetInfo.contains(now)) { + m_ui.helpLabel->setText(tr("Information about %1:").arg(m_widgetInfo.value(now))); + QStringList lst = m_widgetInfo.value(now).split(QLatin1Char(' ')); + m_ui.helpBrowser->showHelpForKeyword(lst.last()); + } +} + diff --git a/examples/help/contextsensitivehelp/wateringconfigdialog.h b/examples/help/contextsensitivehelp/wateringconfigdialog.h new file mode 100644 index 0000000..d2f3587 --- /dev/null +++ b/examples/help/contextsensitivehelp/wateringconfigdialog.h @@ -0,0 +1,24 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef WATERINGCONFIGDIALOG_H +#define WATERINGCONFIGDIALOG_H + +#include +#include "ui_wateringconfigdialog.h" + +class WateringConfigDialog : public QDialog +{ + Q_OBJECT +public: + WateringConfigDialog(); + +private slots: + void focusChanged(QWidget *old, QWidget *now); + +private: + Ui::WateringConfigDialog m_ui; + QMap m_widgetInfo; +}; + +#endif diff --git a/examples/help/contextsensitivehelp/wateringconfigdialog.ui b/examples/help/contextsensitivehelp/wateringconfigdialog.ui new file mode 100644 index 0000000..d7a473a --- /dev/null +++ b/examples/help/contextsensitivehelp/wateringconfigdialog.ui @@ -0,0 +1,446 @@ + + WateringConfigDialog + + + + 0 + 0 + 334 + 550 + + + + Watering Configuration + + + + + + + + Plant: + + + + + + + + 0 + 0 + + + + + Squash + + + + + Bean + + + + + Carrot + + + + + Strawberry + + + + + Raspberry + + + + + Blueberry + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 67 + 16 + + + + + + + + Water when: + + + + + + + Temperature is higher than: + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 16 + 20 + + + + + + + + false + + + + + + C + + + 10 + + + 60 + + + 20 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Rain less than: + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 16 + 20 + + + + + + + + false + + + + + + mm + + + 1 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + Starting Time: + + + + + + + + + + Amount: + + + + + + + l + + + 100 + + + 10000 + + + 100 + + + 1000 + + + + + + + Source: + + + + + + + + Fountain + + + + + River + + + + + Lake + + + + + Public Water System + + + + + + + + Filter: + + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + <a href="test">Show Details</a> + + + + + + + + + Qt::Horizontal + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok + + + + + + + + HelpBrowser + QTextBrowser +
helpbrowser.h
+
+
+ + + + buttonBox + accepted() + WateringConfigDialog + accept() + + + 227 + 372 + + + 157 + 274 + + + + + buttonBox + rejected() + WateringConfigDialog + reject() + + + 286 + 378 + + + 286 + 274 + + + + + temperatureCheckBox + toggled(bool) + temperatureSpinBox + setEnabled(bool) + + + 132 + 101 + + + 132 + 125 + + + + + rainCheckBox + toggled(bool) + rainSpinBox + setEnabled(bool) + + + 110 + 154 + + + 113 + 169 + + + + +
diff --git a/examples/help/doc/src/contextsensitivehelp.qdoc b/examples/help/doc/src/contextsensitivehelp.qdoc new file mode 100644 index 0000000..85eed98 --- /dev/null +++ b/examples/help/doc/src/contextsensitivehelp.qdoc @@ -0,0 +1,11 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example contextsensitivehelp + \ingroup examples-qthelp + \title Context-Sensitive Help Example + + \brief Using the QHelpEngineCore class to implement context-sensitive help + for applications. +*/ diff --git a/examples/help/help.pro b/examples/help/help.pro new file mode 100644 index 0000000..49aae93 --- /dev/null +++ b/examples/help/help.pro @@ -0,0 +1,4 @@ +TEMPLATE = subdirs +CONFIG += ordered + +SUBDIRS += contextsensitivehelp diff --git a/examples/linguist/CMakeLists.txt b/examples/linguist/CMakeLists.txt new file mode 100644 index 0000000..433323c --- /dev/null +++ b/examples/linguist/CMakeLists.txt @@ -0,0 +1,3 @@ +qt_internal_add_example(arrowpad) +qt_internal_add_example(hellotr) +qt_internal_add_example(trollprint) diff --git a/examples/linguist/README b/examples/linguist/README new file mode 100644 index 0000000..1581774 --- /dev/null +++ b/examples/linguist/README @@ -0,0 +1,6 @@ +Internationalization is a core feature of Qt. These examples show how to +access translation and localization facilities at run-time. + + +Documentation for these examples can be found via the Examples +link in the main Qt documentation. diff --git a/examples/linguist/arrowpad/CMakeLists.txt b/examples/linguist/arrowpad/CMakeLists.txt new file mode 100644 index 0000000..1c9ced9 --- /dev/null +++ b/examples/linguist/arrowpad/CMakeLists.txt @@ -0,0 +1,45 @@ +cmake_minimum_required(VERSION 3.16) +project(arrowpad LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/linguist/arrowpad") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) + +#! [0] +find_package(Qt6 REQUIRED COMPONENTS LinguistTools) +#! [0] + +qt_add_executable(arrowpad + arrowpad.cpp arrowpad.h + main.cpp + mainwindow.cpp mainwindow.h +) + +#! [1] +qt6_add_translations(arrowpad + TS_FILES arrowpad_fr.ts arrowpad_nl.ts + QM_FILES_OUTPUT_VARIABLE qm_files) +install(FILES ${qm_files} DESTINATION ${INSTALL_EXAMPLEDIR}) +#! [1] +set_target_properties(arrowpad PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(arrowpad PUBLIC + Qt::Core + Qt::Gui + Qt::Widgets +) + +install(TARGETS arrowpad + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/linguist/arrowpad/arrowpad.cpp b/examples/linguist/arrowpad/arrowpad.cpp new file mode 100644 index 0000000..86771ec --- /dev/null +++ b/examples/linguist/arrowpad/arrowpad.cpp @@ -0,0 +1,27 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include + +#include "arrowpad.h" + +ArrowPad::ArrowPad(QWidget *parent) + : QWidget(parent) +{ +//! [0] + upButton = new QPushButton(tr("&Up")); +//! [0] //! [1] + downButton = new QPushButton(tr("&Down")); +//! [1] //! [2] + leftButton = new QPushButton(tr("&Left")); +//! [2] //! [3] + rightButton = new QPushButton(tr("&Right")); +//! [3] + + QGridLayout *mainLayout = new QGridLayout; + mainLayout->addWidget(upButton, 0, 1); + mainLayout->addWidget(leftButton, 1, 0); + mainLayout->addWidget(rightButton, 1, 2); + mainLayout->addWidget(downButton, 2, 1); + setLayout(mainLayout); +} diff --git a/examples/linguist/arrowpad/arrowpad.h b/examples/linguist/arrowpad/arrowpad.h new file mode 100644 index 0000000..f908baa --- /dev/null +++ b/examples/linguist/arrowpad/arrowpad.h @@ -0,0 +1,31 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef ARROWPAD_H +#define ARROWPAD_H + +#include + +QT_BEGIN_NAMESPACE +class QPushButton; +QT_END_NAMESPACE + +//! [0] +class ArrowPad : public QWidget +//! [0] //! [1] +{ +//! [1] //! [2] + Q_OBJECT +//! [2] + +public: + ArrowPad(QWidget *parent = 0); + +private: + QPushButton *upButton; + QPushButton *downButton; + QPushButton *leftButton; + QPushButton *rightButton; +}; + +#endif diff --git a/examples/linguist/arrowpad/arrowpad.pro b/examples/linguist/arrowpad/arrowpad.pro new file mode 100644 index 0000000..9723703 --- /dev/null +++ b/examples/linguist/arrowpad/arrowpad.pro @@ -0,0 +1,17 @@ +#! [0] +HEADERS = arrowpad.h \ + mainwindow.h +SOURCES = arrowpad.cpp \ + main.cpp \ + mainwindow.cpp +#! [0] #! [1] +TRANSLATIONS = arrowpad_fr.ts \ + arrowpad_nl.ts +#! [1] + +target.path = $$[QT_INSTALL_EXAMPLES]/linguist/arrowpad +INSTALLS += target + +QT += widgets + +simulator: warning(This example might not fully work on Simulator platform) diff --git a/examples/linguist/arrowpad/main.cpp b/examples/linguist/arrowpad/main.cpp new file mode 100644 index 0000000..4458105 --- /dev/null +++ b/examples/linguist/arrowpad/main.cpp @@ -0,0 +1,28 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include + +#include "mainwindow.h" + +using namespace Qt::StringLiterals; + +//! [0] +int main(int argc, char *argv[]) +//! [0] //! [1] +{ + QApplication app(argc, argv); + + auto locale = QLocale::system(); + +//! [2] + QTranslator translator; +//! [2] //! [3] + if (translator.load(locale, u"arrowpad"_s, u"_"_s)) + app.installTranslator(&translator); +//! [1] //! [3] + + MainWindow mainWindow; + mainWindow.show(); + return app.exec(); +} diff --git a/examples/linguist/arrowpad/mainwindow.cpp b/examples/linguist/arrowpad/mainwindow.cpp new file mode 100644 index 0000000..6b8b781 --- /dev/null +++ b/examples/linguist/arrowpad/mainwindow.cpp @@ -0,0 +1,24 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include + +#include "arrowpad.h" +#include "mainwindow.h" + +MainWindow::MainWindow() +{ +//! [0] + arrowPad = new ArrowPad; +//! [0] + setCentralWidget(arrowPad); + +//! [1] + exitAct = new QAction(tr("E&xit"), this); + exitAct->setShortcuts(QKeySequence::Quit); + connect(exitAct, SIGNAL(triggered()), this, SLOT(close())); +//! [1] + + fileMenu = menuBar()->addMenu(tr("&File")); + fileMenu->addAction(exitAct); +} diff --git a/examples/linguist/arrowpad/mainwindow.h b/examples/linguist/arrowpad/mainwindow.h new file mode 100644 index 0000000..0b16d15 --- /dev/null +++ b/examples/linguist/arrowpad/mainwindow.h @@ -0,0 +1,31 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include + +QT_BEGIN_NAMESPACE +class QAction; +class QMenu; +QT_END_NAMESPACE +class ArrowPad; + +//! [0] +class MainWindow : public QMainWindow +//! [0] //! [1] +{ + Q_OBJECT +//! [1] + +public: + MainWindow(); + +private: + ArrowPad *arrowPad; + QMenu *fileMenu; + QAction *exitAct; +}; + +#endif diff --git a/examples/linguist/doc/images/linguist-arrowpad_en.png b/examples/linguist/doc/images/linguist-arrowpad_en.png new file mode 100644 index 0000000000000000000000000000000000000000..9a95eb24ff694b4c056b892b6dd78cc8edbad4d9 GIT binary patch literal 1429 zcmV;G1#0?vONsOGs z@0`c)#>d7=X`D)FrE7wc<}#zIw;bCSI&L4+YRb16xL zbDGXVVU!^>dnrwfF-3$zX`Fka)_bPbLTROpw%(Ms=Y+1-rM~BsuGUg%oI+)#DM5RL zhJ=Kg&V-)EN@1KKICF%e)`X_c5G-pLFncjkjEtt%F;SF^uGUg*rHr!HF;$dOajiK` zjFht0QhBXfb)^6R|2b8RT6whyC~KU$-kiGUoW9;#g0-B!?_+tbV|}e-eYFrYbEU)Q zrNi%~$LFQT@1@K4Ia!=3JbPn`y^S5rcK`qbmq|oHRCr$OmSwBtKoCV!(Q$W|r|$0V zvhMEg?(X`Fw>!l!GwH`>nN45=dm$kW{o!!9REjHDB~GpY*2pkLwT4vdq1H1Qs2|uG zZRnJwslBp1_(Rzz_#wSkQ zN!&Y;oS8|zPKlXMiw2>xR&PjC2h;K(ubih=o6+hnhs)zut*)Te09svbUk`;!q|vA_ zauuzfNz|Q8&b~^CB3gy&IJIZ?Ml~u_h9j(KH5NyyWf)!v9848@P3)kkPm6c;j!UkHe%gW5B5LyP*foF&f0u5OFUl~MyL)l94c(5?cB zQCgx8W1xyJQDe+-ZmnuTL3M4J`rFIp-%&xMi zG-z25wQLo;3Se?qSyc3@hpO!=4`AF}HP0%Ys{lAx|J|;lRZ437T;l*0Du3t;;Lfq4lrC5r}oU=_}#i<>JH%43423#v--cU)|6lE z+EI$bFboFa>2q$OTjc&1TMTARDU__Y0;!ol)Xtkfgi|{v5q;mSq)L@4mHJcwf)>=- zx1ln6pveRnPI^=opbK>X`cS#sW94cE05{wNNIlEvm-;9l=jwi>N|h>As#K|uYdI=V zuZ{H8RH?kb3Q_4e0f<+5!KyB5PF1ZcK$EJDo+ect-TkU+RRdskb*s8U`PGVGoB@#VTORjO2}Ql(0LBp>YV5AsTlq%GafAm2xoDwS9XGN=Hok%CW9 zi6DXc?3+~XKm|qYV58^q1RH;&nMXFS(eibZLs?-4J zLLI+8)Swp?_&tak7e%R4yQrhBO3dCoqu2#$xrMg{_>Q}+OT<1rs jRH;&>NUI00000NkvXXu0mjf9yP%} literal 0 HcmV?d00001 diff --git a/examples/linguist/doc/images/linguist-arrowpad_fr.png b/examples/linguist/doc/images/linguist-arrowpad_fr.png new file mode 100644 index 0000000000000000000000000000000000000000..fc33f9fd736a2cf4c9f03a566a7f4ae770aebf4c GIT binary patch literal 1671 zcmV;226*|2P)WBoDe8$Qf;MDb*)-? ztz&()V}iA7j=gi1#tGp3XvDl!T_vl)C33GYl)BzhX`Gz8-YGnL zLRpm7)6S*C=cUKz5HNGb$Hq!&r71y#IbED7O^iZir9x??Ym&WdlE!P6#xX^N5G-p- zWu-AmjB}RGF-?SXn$B~c&Il-TN^zwjJcN6m#xYTpF;$FvqSkw+&U>cT0094lhJ=Kg z&N)qt2rP3_d968Bj9PK6gs#?vuHKBM){LsoT6Lu%MT8hUdyKNyIbD>Dw%(Mk)+s!M zDM5Rbw&!DctwL3ll)mR7G;^G~=bXOY7%X#~zVBm#y`01EDM^H-zUM+=lw*p$Yl5|< z%l9ETb8CjZYl^jHA%x8U00du2L_t(|UhJ1;kK8a6Me~wjW@cJsW@cuFGBYzXGt*D4 z?eS{BtETO$o7JdSiX}__a&&a#XKo?4qU9DKm(q`ca!F9G0yQ$JY^-cEI*XidmV*Vs zf|ui?zR{CD<=om@C{(h)q)eq!T|VtsUsJ0!^Lc}LdAgQeEeD%dXB1NkQ)%2>Zmy`Z zR6VP<+N|%sM4O`D6N%P9YoMdU5k4I5k@J`MfwQiBSN<)*ebe35<&nu`PkV=FhhKTU zZ$G|YEbi|9`d3KZjTtAYp$IW_&o@C0eMlOrIpeQeH>A_I=$j1&g#jCirwm!Cp#(Ox zC$@2yh%(e6 z0Nf!!+2RiUE)a$zD+_cn6=DbgbqIj)jEn(o& z`VO%`IK-GJ5H(Z;kn9kE6de)=qK?FXvO5$3*y?-e-x#7D3KE_i=+GoJ1R&Kt#F4N- z>|ajY5GH~mL<9vuB1MNNkoY|$YDn@~Zu64@myzu-%k^hOo4sdG{Bk&zewNdUggJqL zw)=bN|9j|X`*xJ#FbIWF_{?)Q)-AaIjSLmz1SAjDqVdl83&uX#kDC00EG=g4i1ru0rPsB!J8+S2n)oICUh>E8AA60TpEsP@zNvu{kKg1p+*zLhcmE znEW?BuJ1TL4pJc67%Tb2A zY*e9p5YZ|`hzbE^l3?cw<&=2=g{e>h#dwB@R-sBENQDwmIXtF9?i485e5dfyYYgPi z2SKlnJQ;L!#qNWk??;dzL4pJc5+q2FAVF)p*yGE$p!q%0(dDOr1PKy!d)SLvp!Op$ z03r{IL9Kx?P+AX4d>d5T*VH-rEzAN@m#)(;P}9CHBXvFtR9l*L+5x(2Uso0^0s;M? zwtan_uL1QxLtH`7;Ftg+ed(4R4aE}TI5+n#97U+%I03-IwsjbISpLS8%8BFc3MomlGt&v*4Zu7bIwM1PKx(NRS{wf&>YAh04JZEWax%)UVBh R=&=9*002ovPDHLkV1nY40C)fZ literal 0 HcmV?d00001 diff --git a/examples/linguist/doc/images/linguist-arrowpad_nl.png b/examples/linguist/doc/images/linguist-arrowpad_nl.png new file mode 100644 index 0000000000000000000000000000000000000000..f2645a81b3b526a8b270f15494e022955663e808 GIT binary patch literal 1706 zcmV;b237fqP)WBoDe8$Qf;MDaivmq zty+1lV|}$_g0*Xoy>phv5G-?qqRxz}){L^=oWAEFJbO7&jB}2?7&v>Bw%(Mw=WB|+ z7%+1wMTA;{wHP#ejIP$4$L~sEoKk6}5HNEoNsLl)tuaZ2T5+XXb*&I2Yg&1=T79)K zQH*1Ktua-ULS39=hP4PJYiowJbCSInG;?c?#(S2=7$|FVlE!nI#tGp3XvDl!T_voWtiKGcT0094lhJ=Kg z&N)qt2rP3_d968Bj9PK6gs#?vuHKBM){LsoT6Lu%MT8hUdyKNyIbD>Dw%(Mk)+s!M zDM5Rbw&!DctwL3ll)mR7G;^G~=bXOY7%X#~zVBm#y`01EDM^H-zUM+=lw*p$Yl5|< z%l9ETb8CjZYl^k7rl17?00e?bL_t(|UhJ1;kK8a6Me~wjW@escW@cu_GBYzXGt*D4 z?eS_LtETO$lhvqKiX}__a&&a#XJ)0aqGnd0kTQUQ3Q16*0yXhc)l}83cXT-3ltki@ z_{+eUckHBBKEJ*mjh5~&EmtTMmrwhY*OW@tLc>r)gQjR#(ZR*FSy{2nP-Zk$m@2Ey z)z4}yR?E9D)6LW0!{Ii6o4>Qu-hQ~fSIS;u2hTctoISTV*G*SnpIai4JPn5CLa#iY zw;$gxB_}4n{#7!7_!-w<(K`;5L=aJH;2R?H$|vPd?nV(&`OYH>MXj$M5vf!U7IqA2 zK4~@D#oapDtjuu2h=}f7HJi;fb+NjbwXt!!`STB(&F0_RVsEkAyQIgY?5Td|Ip_Id z?l$L2B;5Dil83>Wnb6#e*CU>hrQ~vQdFw!YL&x=wZfa0L%yFFSMy4STGBkn=VW6CDzdG65f0%16^@_{acNQVH# z?+_mdhZqwCqJ}yEQXK*iqeH?#)R7QSZiiX{@_i5e8$+~15yDdd9h#zs0K~e77!p1Z z|1T$O2opgEB7!)Oh|wVmBzzAE8WMe$+xn!yWMwsevSg2DvN- z#0M2re2{|ghd~e^K)Uh@08-Xn?voqkp(>=ZJNgF5nGE_zAde29)=!Z8aheH| z+StBDSw=ystS3_QenWlxTm`B@P-R&;t3qy^8)wcar~xN}Ofkr!VUYi3g5+^*mvg~o z*3yGQvq;PoTp+CgsfM{+I1r$fUF`AA_n_lW7I)Frc6JPQs8(24*81PBlyK!5-N0(7Rzp(9y-0Xl>anT~>sm;e9(07*qoM6N<$g7c3L AIsgCw literal 0 HcmV?d00001 diff --git a/examples/linguist/doc/images/linguist-hellotr_en.png b/examples/linguist/doc/images/linguist-hellotr_en.png new file mode 100644 index 0000000000000000000000000000000000000000..6b3d8072cde780db0219f5f0b03d727864821cf3 GIT binary patch literal 3367 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 literal 0 HcmV?d00001 diff --git a/examples/linguist/doc/images/linguist-hellotr_la.png b/examples/linguist/doc/images/linguist-hellotr_la.png new file mode 100644 index 0000000000000000000000000000000000000000..f1ecdb07adb385aca8910fd7aeae73b96e6fb6c4 GIT binary patch literal 753 zcmVNUAw`5KL4*JR{}3p1DM^G7Fmo|U zgb*ZaF;SE`QH(iNlsQ?H7&LQ2Rg^+qltNvcLS>vvVVp{3oJwh>N^PZ5X{AzerBZRN zQhBXfb*)-`ty+DxT7tD>eYInTwPS|8YlgLJioF;#dvlJxbCSk$md1OQ#(SE^dz#LB zqRtpNdxVCBgr3fXrp|<>)`Y6ojH=d*uGWmQ-i)^1l(OEGy55w!=bXCUoWAFr!{?mC z@1?`%Avk*>JbNKLgr&>(YmU7n47^7G00G5GL_t(|UgemFj_NQFMQ7|#%l6)T@4ff_ z-v58kI+oeNag;%3F)QUJpbU(3bQs5x02wv{B!)~B149b-3RrM5++W@M_-YhOBa_p! z^NY)?>zmuVm7|l3tDC!rrXULl~H^5DeTXMLzNIzBZsx3ILbwz2bn|M2+q^7{7v z@%7ys$QzE4;X$h*+7Zdx?XZDXH#7|gS`4>-44-2|Ow1-(I~_@2AEgHD3{!#7j0dn# zMpTA~+7Qv1VVgh&H}4McoT3d8l_6q0Lqs$)WDHF~K+V!G7g(bhL&Q3&7{k;V@<6RE zSs)qe85+ZihoSc4fb0yrX{hhR5Hlphj2VJX29Q=MZ&*ddMiCM9Dn)mO1my2S){xyx zJKt%*N;`XLWJM%vw}W|FaC@m>;&c!&2hYQRF+dCxLBKF}xdTFX4+jW6ogt{0D|%-F zSsyTlkcom!AaQ^({5_z*A%Fyx=Cujv3aF5#M_(^2MyNPa484C+tA~I-_aR7o(HLghqOoyt%^UK8KfZZ0hTT1K_dJY(gn%MY jq|C=(Us2Eq5P|azH2&hyKnkwG00000NkvXXu0mjffEihO literal 0 HcmV?d00001 diff --git a/examples/linguist/doc/images/linguist-trollprint_10_en.png b/examples/linguist/doc/images/linguist-trollprint_10_en.png new file mode 100644 index 0000000000000000000000000000000000000000..e460481f96739c648d1434d1436ce8e4ac867d8c GIT binary patch literal 1951 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 Ze4#nz^-3kj@+E+ThkPI0O!;@g{{jBI=bQil literal 0 HcmV?d00001 diff --git a/examples/linguist/doc/images/linguist-trollprint_11_en.png b/examples/linguist/doc/images/linguist-trollprint_11_en.png new file mode 100644 index 0000000000000000000000000000000000000000..f718c995c0dc9650536e4c6c20a26ca4ffa815b9 GIT binary patch literal 2019 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 FzW}S}`X~SZ literal 0 HcmV?d00001 diff --git a/examples/linguist/doc/snippets/doc_src_examples_arrowpad.cpp b/examples/linguist/doc/snippets/doc_src_examples_arrowpad.cpp new file mode 100644 index 0000000..4d11681 --- /dev/null +++ b/examples/linguist/doc/snippets/doc_src_examples_arrowpad.cpp @@ -0,0 +1,6 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +//! [0] +qApp->translate("ArrowPad", x) +//! [0] diff --git a/examples/linguist/doc/snippets/doc_src_examples_arrowpad.qdoc b/examples/linguist/doc/snippets/doc_src_examples_arrowpad.qdoc new file mode 100644 index 0000000..6da84c4 --- /dev/null +++ b/examples/linguist/doc/snippets/doc_src_examples_arrowpad.qdoc @@ -0,0 +1,21 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +//! [1] +lrelease arrowpad.pro +//! [1] + + +//! [2] +export LANG=fr +setenv LANG fr +//! [2] + + +//! [3] +set LANG=fr +//! [3] + +//! [4] +make update_translations +//! [4] diff --git a/examples/linguist/doc/snippets/doc_src_examples_hellotr.qdoc b/examples/linguist/doc/snippets/doc_src_examples_hellotr.qdoc new file mode 100644 index 0000000..4143849 --- /dev/null +++ b/examples/linguist/doc/snippets/doc_src_examples_hellotr.qdoc @@ -0,0 +1,38 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +//! [0] +lupdate -verbose hellotr.pro +//! [0] + + +//! [1] + + + QPushButton + + Hello world! + + + + +//! [1] + + +//! [2] +linguist hellotr_la.ts +//! [2] + + +//! [3] + +//! [3] + + +//! [4] +Orbis, te saluto! +//! [4] + +//! [5] +make update_translations +//! [5] diff --git a/examples/linguist/doc/snippets/doc_src_examples_trollprint.cpp b/examples/linguist/doc/snippets/doc_src_examples_trollprint.cpp new file mode 100644 index 0000000..667f674 --- /dev/null +++ b/examples/linguist/doc/snippets/doc_src_examples_trollprint.cpp @@ -0,0 +1,40 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +//! [0] +twoSidedEnabledRadio = new QRadioButton(tr("Enabled", "two-sided")); +twoSidedDisabledRadio = new QRadioButton(tr("Disabled", "two-sided")); +//! [0] + + +//! [1] +colorsEnabledRadio = new QRadioButton(tr("Enabled", "colors"), colors); +colorsDisabledRadio = new QRadioButton(tr("Disabled", "colors"), colors); +//! [1] + + +//! [2] +/* + TRANSLATOR MainWindow + + In this application the whole application is a MainWindow. + Choose Help|About from the menu bar to see some text + belonging to MainWindow. + + ... +*/ +//! [2] + + +//! [3] +/* + TRANSLATOR ZClientErrorDialog + + Choose Client|Edit to reach the Client Edit dialog, then choose + Client Specification from the drop down list at the top and pick + client Bartel Leendert van der Waerden. Now check the Profile + checkbox and then click the Start Processing button. You should + now see a pop up window with the text "Error: Name too long!". + This window is a ZClientErrorDialog. +*/ +//! [3] diff --git a/examples/linguist/doc/src/arrowpad.qdoc b/examples/linguist/doc/src/arrowpad.qdoc new file mode 100644 index 0000000..56c9269 --- /dev/null +++ b/examples/linguist/doc/src/arrowpad.qdoc @@ -0,0 +1,209 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example arrowpad + \title Arrow Pad Example + \ingroup examples-linguist + \brief Understanding the Qt Linguist \e contexts concept and using two + or more languages. + + \image linguist-arrowpad_en.png + + We will use two translations, French and Dutch, although there is no + effective limit on the number of possible translations that can be used + with an application. The relevant lines of \c arrowpad.pro are + + \snippet arrowpad/arrowpad.pro 0 + \codeline + \snippet arrowpad/arrowpad.pro 1 + + Run \c lupdate; it should produce two identical message files + \c arrowpad_fr.ts and \c arrowpad_nl.ts. These files will contain all the source + texts marked for translation with \c tr() calls and their contexts. + + It is also possible to produce translations using the + \l{cmake-macros-qtlinguisttools}{Qt6::LinguistTools CMake commands}. + The relevant lines in \c CMakeLists.txt are: + \snippet arrowpad/CMakeLists.txt 0 + \codeline + \snippet arrowpad/CMakeLists.txt 1 + + After configuring and building, the translations are produced by running: + + \snippet doc/snippets/doc_src_examples_arrowpad.qdoc 4 + + See the \l{Qt Linguist Manual} for more information about + translating Qt application. + + \section1 Line by Line Walkthrough + + In \c arrowpad.h we define the \c ArrowPad subclass which is a + subclass of QWidget. In the screenshot above, the central + widget with the four buttons is an \c ArrowPad. + + \snippet arrowpad/arrowpad.h 0 + \snippet arrowpad/arrowpad.h 1 + \snippet arrowpad/arrowpad.h 2 + + When \c lupdate is run it not only extracts the source texts but it + also groups them into contexts. A context is the name of the class in + which the source text appears. Thus, in this example, "ArrowPad" is a + context: it is the context of the texts in the \c ArrowPad class. + The \c Q_OBJECT macro defines \c tr(x) in \c ArrowPad like this: + + \snippet doc/snippets/doc_src_examples_arrowpad.cpp 0 + + Knowing which class each source text appears in enables \e {Qt + Linguist} to group texts that are logically related together, e.g. + all the text in a dialog will have the context of the dialog's class + name and will be shown together. This provides useful information for + the translator since the context in which text appears may influence how + it should be translated. For some translations keyboard + accelerators may need to be changed and having all the source texts in a + particular context (class) grouped together makes it easier for the + translator to perform any accelerator changes without introducing + conflicts. + + In \c arrowpad.cpp we implement the \c ArrowPad class. + + \snippet arrowpad/arrowpad.cpp 0 + \snippet arrowpad/arrowpad.cpp 1 + \snippet arrowpad/arrowpad.cpp 2 + \snippet arrowpad/arrowpad.cpp 3 + + We call \c ArrowPad::tr() for each button's label since the labels are + user-visible text. + + \image linguist-arrowpad_en.png + + \snippet arrowpad/mainwindow.h 0 + \snippet arrowpad/mainwindow.h 1 + + In the screenshot above, the whole window is a \c MainWindow. + This is defined in the \c mainwindow.h header file. Here too, we + use \c Q_OBJECT, so that \c MainWindow will become a context in + \e {Qt Linguist}. + + \snippet arrowpad/mainwindow.cpp 0 + + In the implementation of \c MainWindow, \c mainwindow.cpp, we create + an instance of our \c ArrowPad class. + + \snippet arrowpad/mainwindow.cpp 1 + + We also call \c MainWindow::tr() twice, once for the action and + once for the shortcut. + + Note the use of \c tr() to support different keys in other + languages. "Ctrl+Q" is a good choice for Quit in English, but a + Dutch translator might want to use "Ctrl+A" (for Afsluiten) and a + German translator "Strg+E" (for Beenden). When using \c tr() for + \uicontrol Ctrl key accelerators, the two argument form should be used + with the second argument describing the function that the + accelerator performs. + + Our \c main() function is defined in \c main.cpp as usual. + + \snippet arrowpad/main.cpp 2 + \snippet arrowpad/main.cpp 3 + + We choose which translation to use according to the current locale. + QLocale::system() can be influenced by setting the \c LANG + environment variable, for example. Notice that the use of a naming + convention that incorporates the locale for \c .qm message files, + (and TS files), makes it easy to implement choosing the + translation file according to locale. + + If there is no QM message file for the locale chosen the original + source text will be used and no error raised. + + \section1 Translating to French and Dutch + + We'll begin by translating the example application into French. Start + \e {Qt Linguist} with \c arrowpad_fr.ts. You should get the seven source + texts ("\&Up", "\&Left", etc.) grouped in two contexts ("ArrowPad" + and "MainWindow"). + + Now, enter the following translations: + + \list + \li \c ArrowPad + \list + \li \&Up - \&Haut + \li \&Left - \&Gauche + \li \&Right - \&Droite + \li \&Down - \&Bas + \endlist + \li \c MainWindow + \list + \li E\&xit - \&Quitter + \li Ctrl+Q - Ctrl+Q + \li \&File - \&Fichier + \endlist + \endlist + + It's quickest to press \uicontrol{Alt+D} (which clicks the \uicontrol {Done \& Next} + button) after typing each translation, since this marks the + translation as done and moves on to the next source text. + + Save the file and do the same for Dutch working with \c arrowpad_nl.ts: + + \list + \li \c ArrowPad + \list + \li \&Up - \&Omhoog + \li \&Left - \&Links + \li \&Right - \&Rechts + \li \&Down - Omlaa\&g + \endlist + \li \c MainWindow + \list + \li E\&xit - \&Afsluiten + \li Ctrl+Q - Ctrl+A + \li File - \&Bestand + \endlist + \endlist + + We have to convert the \c tt1_fr.ts and \c tt1_nl.ts translation source + files into QM files. We could use \e {Qt Linguist} as we've done + before; however using the command line tool \c lrelease ensures that + \e all the QM files for the application are created without us + having to remember to load and \uicontrol File|Release each one + individually from \e {Qt Linguist}. + + Type + + \snippet doc/snippets/doc_src_examples_arrowpad.qdoc 1 + + This should create both \c arrowpad_fr.qm and \c arrowpad_nl.qm. Set the \c + LANG environment variable to \c fr. In Unix, one of the two following + commands should work + + \snippet doc/snippets/doc_src_examples_arrowpad.qdoc 2 + + In Windows, either modify \c autoexec.bat or run + + \snippet doc/snippets/doc_src_examples_arrowpad.qdoc 3 + + When you run the program, you should now see the French version: + + \image linguist-arrowpad_fr.png + + Try the same with Dutch, by setting \c LANG=nl. Now the Dutch + version should appear: + + \image linguist-arrowpad_nl.png + + \section1 Exercises + + Mark one of the translations in \e {Qt Linguist} as not done, i.e. + by unchecking the "done" checkbox; run \c lupdate, then \c lrelease, + then the example. What effect did this change have? + + Set \c LANG=fr_CA (French Canada) and run the example program again. + Explain why the result is the same as with \c LANG=fr. + + Change one of the accelerators in the Dutch translation to eliminate the + conflict between \e \&Bestand and \e \&Boven. +*/ diff --git a/examples/linguist/doc/src/hellotr.qdoc b/examples/linguist/doc/src/hellotr.qdoc new file mode 100644 index 0000000..326b018 --- /dev/null +++ b/examples/linguist/doc/src/hellotr.qdoc @@ -0,0 +1,163 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example hellotr + \ingroup examples-linguist + \title Hello tr() Example + + \brief Translating a small Hello World program to Latin. + + The screenshot shows the English version. + + \image linguist-hellotr_en.png + + See the \l{Qt Linguist Manual} for more information about + translating Qt application. + + \section1 Line by Line Walkthrough + + + \snippet hellotr/main.cpp 0 + + This line includes the definition of the QTranslator class. + Objects of this class provide translations for user-visible text. + + \snippet hellotr/main.cpp 5 + + Creates a QTranslator object without a parent. + + \snippet hellotr/main.cpp 6 + + Tries to load a file called \c hellotr_la.qm (the \c .qm file extension is + implicit) that contains Latin translations for the source texts used in + the program. No error will occur if the file is not found. + + \snippet hellotr/main.cpp 7 + + Adds the translations from \c hellotr_la.qm to the pool of translations used + by the program. + + \snippet hellotr/main.cpp 8 + + Creates a push button that displays "Hello world!". If \c hellotr_la.qm + was found and contains a translation for "Hello world!", the + translation appears; if not, the source text appears. + + All classes that inherit QObject have a \c tr() function. Inside + a member function of a QObject class, we simply write \c tr("Hello + world!") instead of \c QPushButton::tr("Hello world!") or \c + QObject::tr("Hello world!"). + + \section1 Running the Application in English + + Since we haven't made the translation file \c hellotr_la.qm, the source text + is shown when we run the application: + + \image linguist-hellotr_en.png + + \section1 Creating a Latin Message File + + The first step is to create a project file, \c hellotr.pro, that lists + all the source files for the project. The project file can be a qmake + project file, or even an ordinary makefile. Any file that contains + + \snippet hellotr/hellotr.pro 0 + \snippet hellotr/hellotr.pro 1 + + will work. \c TRANSLATIONS specifies the message files we want to + maintain. In this example, we just maintain one set of translations, + namely Latin. + + It is also possible to produce translations using the + \l{cmake-macros-qtlinguisttools}{Qt6::LinguistTools CMake commands}. + One needs to add the following to the \c CMakeLists.txt: + \snippet hellotr/CMakeLists.txt 0 + \codeline + \snippet hellotr/CMakeLists.txt 1 + + After configuring and building, the translations are produced by running: + + \snippet doc/snippets/doc_src_examples_hellotr.qdoc 5 + + Note that the file extension is \c .ts, not \c .qm. The \c .ts + translation source format is designed for use during the + application's development. Programmers or release managers run + the \c lupdate program to generate and update TS files with + the source text that is extracted from the source code. + Translators read and update the TS files using \e {Qt + Linguist} adding and editing their translations. + + The TS format is human-readable XML that can be emailed directly + and is easy to put under version control. If you edit this file + manually, be aware that the default encoding for XML is UTF-8, not + Latin1 (ISO 8859-1). One way to type in a Latin1 character such as + '\oslash' (Norwegian o with slash) is to use an XML entity: + "\ø". This will work for any Unicode 4.0 character. + + Once the translations are complete the \c lrelease program is used to + convert the TS files into the QM Qt message file format. The + QM format is a compact binary format designed to deliver very + fast lookup performance. Both \c lupdate and \c lrelease read all the + project's source and header files (as specified in the HEADERS and + SOURCES lines of the project file) and extract the strings that + appear in \c tr() function calls. + + \c lupdate is used to create and update the message files (\c hellotr_la.ts + in this case) to keep them in sync with the source code. It is safe to + run \c lupdate at any time, as \c lupdate does not remove any + information. For example, you can put it in the makefile, so the TS + files are updated whenever the source changes. + + Try running \c lupdate right now, like this: + + \snippet doc/snippets/doc_src_examples_hellotr.qdoc 0 + + (The \c -verbose option instructs \c lupdate to display messages that + explain what it is doing.) You should now have a file \c hellotr_la.ts in + the current directory, containing this: + + \snippet doc/snippets/doc_src_examples_hellotr.qdoc 1 + + You don't need to understand the file format since it is read and + updated using tools (\c lupdate, \e {Qt Linguist}, \c lrelease). + + \section1 Translating to Latin with Qt Linguist + + We will use \e {Qt Linguist} to provide the translation, although + you can use any XML or plain text editor to enter a translation into a + TS file. + + To start \e {Qt Linguist}, type + + \snippet doc/snippets/doc_src_examples_hellotr.qdoc 2 + + You should now see the text "QPushButton" in the top left pane. + Double-click it, then click on "Hello world!" and enter "Orbis, te + saluto!" in the \uicontrol Translation pane (the middle right of the + window). Don't forget the exclamation mark! + + Click the \uicontrol Done checkbox and choose \uicontrol File|Save from the + menu bar. The TS file will no longer contain + + \snippet doc/snippets/doc_src_examples_hellotr.qdoc 3 + + but instead will have + + \snippet doc/snippets/doc_src_examples_hellotr.qdoc 4 + + \section1 Running the Application in Latin + + To see the application running in Latin, we have to generate a QM + file from the TS file. Generating a QM file can be achieved + either from within \e {Qt Linguist} (for a single TS file), or + by using the command line program \c lrelease which will produce one + QM file for each of the TS files listed in the project file. + Generate \c hellotr_la.qm from \c hellotr_la.ts by choosing + \uicontrol File|Release from \e {Qt Linguist}'s menu bar and pressing + \uicontrol Save in the file save dialog that pops up. Now run the \c hellotr + program again. This time the button will be labelled "Orbis, te + saluto!". + + \image linguist-hellotr_la.png +*/ diff --git a/examples/linguist/doc/src/trollprint.qdoc b/examples/linguist/doc/src/trollprint.qdoc new file mode 100644 index 0000000..5f97ff3 --- /dev/null +++ b/examples/linguist/doc/src/trollprint.qdoc @@ -0,0 +1,240 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example trollprint + \ingroup examples-linguist + \title Troll Print Example + + \brief Updating translations for later releases. + + Troll Print is an example application that lets the user choose + printer settings. It comes in two versions: English and + Portuguese. + + \image linguist-trollprint_10_en.png + + We've included a translation file, \c trollprint_pt.ts, which contains some + Portuguese translations for this example. + + We will consider two releases of the same application: Troll Print + 1.0 and 1.1. We will learn to reuse the translations created for one + release in a subsequent release. (In this tutorial, you need to edit + some source files. It's probably best to copy all the files to a new + temporary directory and work from there.) + + See the \l{Qt Linguist Manual} for more information about + translating Qt application. + + \section1 Line by Line Walkthrough + + The \c PrintPanel class is defined in \c printpanel.h. + + \snippet trollprint/printpanel.h 0 + + \c PrintPanel is a QWidget. It needs the \c Q_OBJECT macro for \c + tr() to work properly. + + The implementation file is \c printpanel.cpp. + + \snippet trollprint/printpanel.cpp 0 + + Some of the code is commented out in Troll Print 1.0; you will + uncomment it later, for Troll Print 1.1. + + \snippet trollprint/printpanel.cpp 1 + \snippet trollprint/printpanel.cpp 2 + + Notice the two occurrences of \c tr("Enabled") and of \c + tr("Disabled") in PrintPanel. Since both "Enabled"s and "Disabled"s + appear in the same context \e {Qt Linguist} will only display one + occurrence of each and will use the same translations for the + duplicates that it doesn't display. Whilst this is a useful + timesaver, in some languages, such as Portuguese, the second + occurrence requires a separate translation. We will see how \e {Qt + Linguist} can be made to display all the occurrences for separate + translation shortly. + + The header file for \c MainWindow, \c mainwindow.h, contains no + surprises. In the implementation, \c mainwindow.cpp, we have some + user-visible source texts that must be marked for translation. + + \snippet trollprint/mainwindow.cpp 0 + + We must translate the window title. + + \snippet trollprint/mainwindow.cpp 1 + \snippet trollprint/mainwindow.cpp 3 + + We also need to translate the actions and menus. Note that the + two argument form of \c tr() is used for the keyboard + accelerator, "Ctrl+Q", since the second argument is the only clue + the translator has to indicate what function that accelerator + will perform. + + \snippet trollprint/main.cpp 0 + + The \c main() function in \c main.cpp is the same as the one in + the \l{arrowpad}{Arrow Pad} example. In particular, it + chooses a translation file based on the current locale. + + \section1 Running Troll Print 1.0 in English and in Portuguese + + We will use the translations in the \c trollprint_pt.ts file that is provided. + + Set the \c LANG environment variable to \c pt, and then run \c + trollprint. You should still see the English version. Now run \c + lrelease, e.g. \c {lrelease trollprint.pro}, and then run the + example again. Now you should see the Portuguese edition (Troll + Imprimir 1.0): + + \image linguist-trollprint_10_pt_bad.png + + Whilst the translation has appeared correctly, it is in fact wrong. In + good Portuguese, the second occurrence of "Enabled" should be + "Ativadas", not "Ativado" and the ending for the second translation of + "Disabled" must change similarly too. + + If you open \c trollprint_pt.ts using \e {Qt Linguist}, you will see that + there is just one occurrence of "Enabled" and of "Disabled" in the + translation source file, even though there are two of each in the + source code. This is because \e {Qt Linguist} tries to minimize the + translator's work by using the same translation for duplicate source + texts. In cases such as this where an identical translation is wrong, + the programmer must disambiguate the duplicate occurrences. This is + easily achieved by using the two argument form of \c tr(). + + We can easily determine which file must be changed because the + translator's "context" is in fact the class name for the class where + the texts that must be changed appears. In this case the file is \c + printpanel.cpp, where there are four lines to change. Add the + second argument "two-sided" in the appropriate \c tr() calls to the + first pair of radio buttons: + + \snippet doc/snippets/doc_src_examples_trollprint.cpp 0 + + and add the second argument "colors" in the appropriate \c tr() calls + for the second pair of radio buttons: + + \snippet doc/snippets/doc_src_examples_trollprint.cpp 1 + + Now run \c lupdate and open \c trollprint_pt.ts with \e {Qt Linguist}. You + should now see two changes. + + First, the translation source file now contains \e three "Enabled", + "Disabled" pairs. The first pair is marked "(obs.)" signifying that they + are obsolete. This is because these texts appeared in \c tr() calls that + have been replaced by new calls with two arguments. The second pair has + "two-sided" as their comment, and the third pair has "colors" as their + comment. The comments are shown in the \uicontrol {Source text and comments} + area in \e {Qt Linguist}. + + Second, the translation text "Ativado" and "Desativado" have been + automatically used as translations for the new "Enabled" and "Disabled" + texts, again to minimize the translator's work. Of course in this case + these are not correct for the second occurrence of each word, but they + provide a good starting point. + + Change the second "Ativado" into "Ativadas" and the second + "Desativado" into "Desativadas", then save and quit. Run \c lrelease + to obtain an up-to-date binary \c trollprint_pt.qm file, and run Troll Print + (or rather Troll Imprimir). + + \image linguist-trollprint_10_pt_good.png + + The second argument to \c tr() calls, called "comments" in \e {Qt + Linguist}, distinguish between identical source texts that occur in + the same context (class). They are also useful in other cases to give + clues to the translator, and in the case of Ctrl key accelerators are + the only means of conveying the function performed by the accelerator to + the translator. + + An additional way of helping the translator is to provide information on + how to navigate to the particular part of the application that contains + the source texts they must translate. This helps them see the context + in which the translation appears and also helps them to find and test + the translations. This can be achieved by using a \c TRANSLATOR comment + in the source code: + + \snippet doc/snippets/doc_src_examples_trollprint.cpp 2 + + Try adding these comments to some source files, particularly to + dialog classes, describing the navigation necessary to reach the + dialogs. You could also add them to the example files, e.g. \c + mainwindow.cpp and \c printpanel.cpp are appropriate files. Run \c + lupdate and then start \e {Qt Linguist} and load in \c trollprint_pt.ts. + You should see the comments in the \uicontrol {Source text and comments} area + as you browse through the list of source texts. + + Sometimes, particularly with large programs, it can be difficult for + the translator to find their translations and check that they're + correct. Comments that provide good navigation information can save + them time: + + \snippet doc/snippets/doc_src_examples_trollprint.cpp 3 + + \section1 Troll Print 1.1 + + We'll now prepare release 1.1 of Troll Print. Start your favorite text + editor and follow these steps: + + \list + \li Uncomment the two lines that create a QLabel with the text + "\TROLL PRINT\" in \c printpanel.cpp. + \li Word-tidying: Replace "2-sided" by "Two-sided" in \c printpanel.cpp. + \li Replace "1.0" with "1.1" everywhere it occurs in \c mainwindow.cpp. + \li Update the copyright year to 1999-2000 in \c mainwindow.cpp. + \endlist + + (Of course the version number and copyright year would be consts or + #defines in a real application.) + + Once finished, run \c lupdate, then open \c trollprint_pt.ts in \e {Qt + Linguist}. The following items are of special interest: + + \list + \li \c MainWindow + \list + \li Troll Print 1.0 - marked "(obs.)", obsolete + \li About Troll Print 1.0 - marked "(obs.)", obsolete + \li Troll Print 1.0. Copyright 1999 Software, Inc. - + marked obsolete + \li Troll Print 1.1 - automatically translated as + "Troll Imprimir 1.1" + \li About Troll Print 1.1 - automatically translated as + "Troll Imprimir 1.1" + \li Troll Print 1.1. Copyright 1999-2000 Software, + Inc. - automatically translated as "Troll Imprimir 1.1. + Copyright 1999-2000 Software, Inc." + \endlist + \li \c PrintPanel + \list + \li 2-sided - marked "(obs.)", obsolete + \li \TROLL PRINT\ - unmarked, i.e. untranslated + \li Two-sided - unmarked, i.e. untranslated. + \endlist + \endlist + + Notice that \c lupdate works hard behind the scenes to make revisions + easier, and it's pretty smart with numbers. + + Go over the translations in \c MainWindow and mark these as "done". + Translate "\TROLL PRINT\" as "\TROLL IMPRIMIR\". + When you're translating "Two-sided", press the \uicontrol {Guess Again} + button to translate "Two-sided", but change the "2" into "Dois". + + Save and quit, then run \c lrelease. The Portuguese version + should look like this: + + \image linguist-trollprint_11_pt.png + + Choose \uicontrol{Ajuda|Sobre} (\uicontrol{Help|About}) to see the about box. + + If you choose \uicontrol {Ajuda|Sobre Qt} (\uicontrol {Help|About Qt}), you'll get + an English dialog. Oops! Qt itself needs to be translated. See + \l{Internationalization with Qt} for details. + + Now set \c LANG=en to get the original English version: + + \image linguist-trollprint_11_en.png +*/ diff --git a/examples/linguist/hellotr/CMakeLists.txt b/examples/linguist/hellotr/CMakeLists.txt new file mode 100644 index 0000000..eee4eda --- /dev/null +++ b/examples/linguist/hellotr/CMakeLists.txt @@ -0,0 +1,43 @@ +cmake_minimum_required(VERSION 3.16) +project(hellotr LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/linguist/hellotr") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) + +#! [0] +find_package(Qt6 REQUIRED COMPONENTS LinguistTools) +#! [0] + +qt_add_executable(hellotr + main.cpp +) + +#! [1] +qt6_add_translations(hellotr + TS_FILES hellotr_la.ts + QM_FILES_OUTPUT_VARIABLE qm_files) +install(FILES ${qm_files} DESTINATION ${INSTALL_EXAMPLEDIR}) +#! [1] +set_target_properties(hellotr PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(hellotr PUBLIC + Qt::Core + Qt::Gui + Qt::Widgets +) + +install(TARGETS hellotr + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/linguist/hellotr/hellotr.pro b/examples/linguist/hellotr/hellotr.pro new file mode 100644 index 0000000..766b536 --- /dev/null +++ b/examples/linguist/hellotr/hellotr.pro @@ -0,0 +1,12 @@ +#! [0] +SOURCES = main.cpp +#! [0] #! [1] +TRANSLATIONS = hellotr_la.ts +#! [1] + +target.path = $$[QT_INSTALL_EXAMPLES]/linguist/hellotr +INSTALLS += target + +QT += widgets + +simulator: warning(This example might not fully work on Simulator platform) diff --git a/examples/linguist/hellotr/main.cpp b/examples/linguist/hellotr/main.cpp new file mode 100644 index 0000000..c6db1f3 --- /dev/null +++ b/examples/linguist/hellotr/main.cpp @@ -0,0 +1,34 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include +#include +//! [0] +#include +//! [0] + +//! [1] //! [2] +int main(int argc, char *argv[]) +//! [1] //! [3] //! [4] +{ + QApplication app(argc, argv); +//! [3] + +//! [5] + QTranslator translator; +//! [5] //! [6] + if (!translator.load("hellotr_la")) + return 1; +//! [6] //! [7] + app.installTranslator(&translator); +//! [4] //! [7] + +//! [8] + QPushButton hello(QPushButton::tr("Hello world!")); +//! [8] + hello.resize(100, 30); + + hello.show(); + return app.exec(); +} +//! [2] diff --git a/examples/linguist/linguist.pro b/examples/linguist/linguist.pro new file mode 100644 index 0000000..79e9682 --- /dev/null +++ b/examples/linguist/linguist.pro @@ -0,0 +1,4 @@ +TEMPLATE = subdirs +SUBDIRS = arrowpad \ + hellotr \ + trollprint diff --git a/examples/linguist/trollprint/CMakeLists.txt b/examples/linguist/trollprint/CMakeLists.txt new file mode 100644 index 0000000..48119ee --- /dev/null +++ b/examples/linguist/trollprint/CMakeLists.txt @@ -0,0 +1,42 @@ +cmake_minimum_required(VERSION 3.16) +project(trollprint LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/linguist/trollprint") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) + +find_package(Qt6 REQUIRED COMPONENTS LinguistTools) + +qt_add_executable(trollprint + main.cpp + mainwindow.cpp mainwindow.h + printpanel.cpp printpanel.h +) + +qt6_add_translations(trollprint + TS_FILES trollprint_pt.ts + QM_FILES_OUTPUT_VARIABLE qm_files) +install(FILES ${qm_files} DESTINATION ${INSTALL_EXAMPLEDIR}) + +set_target_properties(trollprint PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(trollprint PUBLIC + Qt::Core + Qt::Gui + Qt::Widgets +) + +install(TARGETS trollprint + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/linguist/trollprint/main.cpp b/examples/linguist/trollprint/main.cpp new file mode 100644 index 0000000..6d7b35b --- /dev/null +++ b/examples/linguist/trollprint/main.cpp @@ -0,0 +1,25 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include + +#include "mainwindow.h" + +using namespace Qt::StringLiterals; + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + auto locale = QLocale::system(); + +//! [0] + QTranslator translator; + if (translator.load(locale, u"trollprint"_s, u"_"_s)) + app.installTranslator(&translator); +//! [0] + + MainWindow mainWindow; + mainWindow.show(); + return app.exec(); +} diff --git a/examples/linguist/trollprint/mainwindow.cpp b/examples/linguist/trollprint/mainwindow.cpp new file mode 100644 index 0000000..eb8fef9 --- /dev/null +++ b/examples/linguist/trollprint/mainwindow.cpp @@ -0,0 +1,58 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include + +#include "mainwindow.h" +#include "printpanel.h" + +MainWindow::MainWindow() +{ + printPanel = new PrintPanel; + setCentralWidget(printPanel); + + createActions(); + createMenus(); + +//! [0] + setWindowTitle(tr("Troll Print 1.0")); +//! [0] +} + +void MainWindow::about() +{ + QMessageBox::information(this, tr("About Troll Print 1.0"), + tr("Troll Print 1.0.\n\n" + "Copyright 1999 Software, Inc.")); +} + +//! [1] +void MainWindow::createActions() +{ +//! [2] + exitAct = new QAction(tr("E&xit"), this); + exitAct->setShortcut(tr("Ctrl+Q", "Quit")); +//! [2] + connect(exitAct, SIGNAL(triggered()), this, SLOT(close())); + + aboutAct = new QAction(tr("&About"), this); + aboutAct->setShortcut(Qt::Key_F1); + connect(aboutAct, SIGNAL(triggered()), this, SLOT(about())); + + aboutQtAct = new QAction(tr("About &Qt"), this); + connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt())); +} + +void MainWindow::createMenus() +//! [1] //! [3] +{ + QMenu *fileMenu = menuBar()->addMenu(tr("&File")); + fileMenu->addAction(exitAct); + + menuBar()->addSeparator(); + + QMenu *helpMenu = menuBar()->addMenu(tr("&Help")); + helpMenu->addAction(aboutAct); + helpMenu->addAction(aboutQtAct); +} +//! [3] diff --git a/examples/linguist/trollprint/mainwindow.h b/examples/linguist/trollprint/mainwindow.h new file mode 100644 index 0000000..ed2d7b6 --- /dev/null +++ b/examples/linguist/trollprint/mainwindow.h @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include + +QT_BEGIN_NAMESPACE +class QAction; +class QMenu; +QT_END_NAMESPACE +class PrintPanel; + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + MainWindow(); + +private slots: + void about(); + +private: + void createActions(); + void createMenus(); + + PrintPanel *printPanel; + QMenu *fileMenu; + QMenu *helpMenu; + QAction *exitAct; + QAction *aboutAct; + QAction *aboutQtAct; +}; + +#endif diff --git a/examples/linguist/trollprint/printpanel.cpp b/examples/linguist/trollprint/printpanel.cpp new file mode 100644 index 0000000..1d0c30c --- /dev/null +++ b/examples/linguist/trollprint/printpanel.cpp @@ -0,0 +1,48 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include + +#include "printpanel.h" + +//! [0] +PrintPanel::PrintPanel(QWidget *parent) + : QWidget(parent) +{ +/* + QLabel *label = new QLabel(tr("TROLL PRINT")); + label->setAlignment(Qt::AlignCenter); +*/ +//! [0] + +//! [1] + twoSidedGroupBox = new QGroupBox(tr("2-sided")); + twoSidedEnabledRadio = new QRadioButton(tr("Enabled")); + twoSidedDisabledRadio = new QRadioButton(tr("Disabled")); +//! [1] //! [2] + twoSidedDisabledRadio->setChecked(true); + + colorsGroupBox = new QGroupBox(tr("Colors")); + colorsEnabledRadio = new QRadioButton(tr("Enabled")); + colorsDisabledRadio = new QRadioButton(tr("Disabled")); +//! [2] + colorsDisabledRadio->setChecked(true); + + QHBoxLayout *twoSidedLayout = new QHBoxLayout; + twoSidedLayout->addWidget(twoSidedEnabledRadio); + twoSidedLayout->addWidget(twoSidedDisabledRadio); + twoSidedGroupBox->setLayout(twoSidedLayout); + + QHBoxLayout *colorsLayout = new QHBoxLayout; + colorsLayout->addWidget(colorsEnabledRadio); + colorsLayout->addWidget(colorsDisabledRadio); + colorsGroupBox->setLayout(colorsLayout); + + QVBoxLayout *mainLayout = new QVBoxLayout; +/* + mainLayout->addWidget(label); +*/ + mainLayout->addWidget(twoSidedGroupBox); + mainLayout->addWidget(colorsGroupBox); + setLayout(mainLayout); +} diff --git a/examples/linguist/trollprint/printpanel.h b/examples/linguist/trollprint/printpanel.h new file mode 100644 index 0000000..9a075dc --- /dev/null +++ b/examples/linguist/trollprint/printpanel.h @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef PRINTPANEL_H +#define PRINTPANEL_H + +#include + +QT_BEGIN_NAMESPACE +class QGroupBox; +class QRadioButton; +QT_END_NAMESPACE + +//! [0] +class PrintPanel : public QWidget +{ + Q_OBJECT +//! [0] + +public: + PrintPanel(QWidget *parent = 0); + +private: + QGroupBox *twoSidedGroupBox; + QGroupBox *colorsGroupBox; + QRadioButton *twoSidedEnabledRadio; + QRadioButton *twoSidedDisabledRadio; + QRadioButton *colorsEnabledRadio; + QRadioButton *colorsDisabledRadio; +}; + +#endif diff --git a/examples/linguist/trollprint/trollprint.pro b/examples/linguist/trollprint/trollprint.pro new file mode 100644 index 0000000..fa51751 --- /dev/null +++ b/examples/linguist/trollprint/trollprint.pro @@ -0,0 +1,13 @@ +HEADERS = mainwindow.h \ + printpanel.h +SOURCES = main.cpp \ + mainwindow.cpp \ + printpanel.cpp +TRANSLATIONS = trollprint_pt.ts + +target.path = $$[QT_INSTALL_EXAMPLES]/linguist/trollprint +INSTALLS += target + +QT += widgets + +simulator: warning(This example might not fully work on Simulator platform) diff --git a/examples/linguist/trollprint/trollprint_pt.ts b/examples/linguist/trollprint/trollprint_pt.ts new file mode 100644 index 0000000..e5871bd --- /dev/null +++ b/examples/linguist/trollprint/trollprint_pt.ts @@ -0,0 +1,65 @@ + + + MainWindow + + Troll Print 1.0 + Troll Imprimir 1.0 + + + E&xit + &Sair + + + &About + &Sobre + + + About &Qt + Sobre &Qt + + + &File + &Arquivo + + + &Help + A&juda + + + About Troll Print 1.0 + Sobre Troll Imprimir 1.0 + + + Troll Print 1.0. + +Copyright 1999 Software, Inc. + Troll Imprimir 1.0 + +Copyright 1999 Software, Inc. + + + Ctrl+Q + Quit + Ctrl+Q + + + + PrintPanel + + 2-sided + 2-lados + + + Enabled + Ativado + + + Disabled + Desativado + + + Colors + Cores + + + diff --git a/examples/uitools/CMakeLists.txt b/examples/uitools/CMakeLists.txt new file mode 100644 index 0000000..4720af7 --- /dev/null +++ b/examples/uitools/CMakeLists.txt @@ -0,0 +1,2 @@ +qt_internal_add_example(multipleinheritance) +qt_internal_add_example(textfinder) diff --git a/examples/uitools/doc/images/multipleinheritance-example.png b/examples/uitools/doc/images/multipleinheritance-example.png new file mode 100644 index 0000000000000000000000000000000000000000..9e8929297303a5fd77c61a8cba939827b5d5b233 GIT binary patch literal 6974 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 literal 0 HcmV?d00001 diff --git a/examples/uitools/doc/images/textfinder-example-userinterface.png b/examples/uitools/doc/images/textfinder-example-userinterface.png new file mode 100644 index 0000000000000000000000000000000000000000..2bebe2e9dd836164fc31a252c8bcc8705ae6505c GIT binary patch literal 7900 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 literal 0 HcmV?d00001 diff --git a/examples/uitools/doc/src/multipleinheritance.qdoc b/examples/uitools/doc/src/multipleinheritance.qdoc new file mode 100644 index 0000000..1c4a83f --- /dev/null +++ b/examples/uitools/doc/src/multipleinheritance.qdoc @@ -0,0 +1,72 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example multipleinheritance + \ingroup examples-qtuitools + \title Multiple Inheritance Example + + \brief Using a form created with Qt Designer in an application. + + The Multiple Inheritance Example shows how to use a form created with + \l{Qt Designer} in an application by subclassing both QWidget and the user + interface class, which is \c{Ui::CalculatorForm}. + + \image multipleinheritance-example.png + + To subclass the \c calculatorform.ui file and ensure that \c qmake + processes it with the \c uic, we have to include \c calculatorform.ui + in the \c .pro file, as shown below: + + \snippet multipleinheritance/multipleinheritance.pro 0 + + When the project is compiled, the \c uic will generate a corresponding + \c ui_calculatorform.h. + + \section1 CalculatorForm Definition + + In the \c CalculatorForm definition, we include the \c ui_calculatorform.h + that was generated earlier. + + \snippet multipleinheritance/calculatorform.h 0 + + As mentioned earlier, the class is a subclass of both QWidget and + \c{Ui::CalculatorForm}. + + \snippet multipleinheritance/calculatorform.h 1 + + Two slots are defined according to the \l{Automatic Connections} + {automatic connection} naming convention required by \c uic. This is + to ensure that \l{QMetaObject}'s auto-connection facilities connect + all the signals and slots involved automatically. + + \section1 CalculatorForm Implementation + + In the constructor, we call \c setupUi() to load the user interface file. + Note that setupUi is a method of \c Ui::CalculatorForm. + + \snippet multipleinheritance/calculatorform.cpp 0 + + We include two slots, \c{on_inputSpinBox1_valueChanged()} and + \c{on_inputSpinBox2_valueChanged()}. These slots respond to the + \l{QSpinBox::valueChanged()}{valueChanged()} signal that both spin boxes + emit. Whenever there is a change in one spin box's value, we take that + value and add it to whatever value the other spin box has. + + \snippet multipleinheritance/calculatorform.cpp 1 + \codeline + \snippet multipleinheritance/calculatorform.cpp 2 + + \section1 \c main() Function + + The \c main() function instantiates QApplication and \c CalculatorForm. + The \c calculator object is displayed by invoking the \l{QWidget::show()} + {show()} function. + + \snippet multipleinheritance/main.cpp 0 + + There are various approaches to include forms into applications. The + Multiple Inheritance approach is just one of them. See + \l{Using a Designer UI File in Your Application} for more information on + the other approaches available. +*/ diff --git a/examples/uitools/doc/src/textfinder.qdoc b/examples/uitools/doc/src/textfinder.qdoc new file mode 100644 index 0000000..773fdd1 --- /dev/null +++ b/examples/uitools/doc/src/textfinder.qdoc @@ -0,0 +1,154 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \example textfinder + \ingroup examples-qtuitools + \title Text Finder Example + + \brief Dynamically loading .ui files using QUiLoader. + + The TextFinder example shows how to load and setup a \c{.ui} file + dynamically using the \l{QUiLoader} class that is part of the + \l{Qt UI Tools} library. + + The program allows the user to look up a particular word within the + contents of a text. The visual elements and layout of the user interface is + loaded at runtime, from a the program resources. + + \table + \row \li \inlineimage textfinder-example-find.png + \li \inlineimage textfinder-example-find2.png + \endtable + + \section1 Setting Up The Resource File + + The resources required for the example are: + \list + \li \c{textfinder.ui} - the user interface file created in + \l{Qt Designer} + \li \c{input.txt} - a text file containing some text to be displayed in + a QTextEdit + \endlist + + \c textfinder.ui contains all the necessary QWidget objects for the Text + Finder. A QLineEdit is used for the user input, a QTextEdit is used to + display the contents of \c input.txt, a QLabel is used to display the text + "Keyword", and a QPushButton is used for the \uicontrol Find button. Note + that all the widgets have sensible \c{objectName}'s assigned. These are + used in code to identify them. + + The screenshot below shows the preview obtained in \l{Qt Designer}. + + \image textfinder-example-userinterface.png + + In this example, we store both resources in the applicaton's executable by + including the \c{textfinder.qrc} file. Alternatively, the files could also + be loaded at runtime from the file system, or from an external binary + resource \c{.rcc} file. For more information on resource files, see + \l{The Qt Resource System}. + + The \c{textfinder.qrc} file lists all files that should be included as a + resource: + + \quotefile textfinder/textfinder.qrc + + To generate a form at run-time, the example is linked against the + \l{Qt Ui Tools} library. This is done in the \c{textfinder.pro} file: + + \snippet textfinder/textfinder.pro 0 + + \section1 TextFinder Class Definition + + The \c TextFinder class contains the main user interface. It declares + pointers to the QPushButton, QTextEdit and QLineEdit elements described + above. The QLabel in the user interface is not declared here as we do + not need to access it from code. + + \snippet textfinder/textfinder.h 0 + + The slot \c{on_findButton_clicked()} is a slot named according to the + \l{Using a Designer UI File in Your Application#Automatic Connections} + {Automatic Connection} naming convention required + by \c uic. + + \section1 Loading the Resources + + We use QFile to load the data from the program resources at runtime. The + code for this is in two method methods on top of \c{textfinder.cpp}: + \c{loadUiFile} and \c{loadTextFile}. + + The \c{loadUiFile} function loads the user interface file previously + created in \l{Qt Designer}. First, the content of the \c{textfinder.ui} + file is loaded from the resource system. Then a QUiLoader instance is + created, and the QUiLoader::load() function is called, with the first + argument being the open file, and the second argument being the pointer of + the widget that should be set as the parent. The created QWidget is + returned. + + \snippet textfinder/textfinder.cpp 4 + + In a similar vein, the \c loadTextFile function loads \c{input.txt} from + the resources. Data is read using QTextStream into a QString with the + QTextStream::readAll() function. We explicitly set the encoding to + \e{UTF-8}, because QTextStream by default uses the current system locale. + Finally, the loaded text is returned. + + \snippet textfinder/textfinder.cpp 5 + + \section1 TextFinder Class Implementation + + The \c TextFinder class's constructor does not instantiate any child widgets + directly. Instead, it calls the \c loadUiFile() function, and then uses + QObject::findChild() to locate the created \l{QWidget}s by object name. + + \snippet textfinder/textfinder.cpp 0 + + We then use QMetaObject::connectSlotsByName() to enable the automatic + calling of the \c on_findButton_clicked() slot. + + \snippet textfinder/textfinder.cpp 2 + + The \c loadTextFile function is called to get the text to be shown in the + QTextEdit. + + \snippet textfinder/textfinder.cpp 3a + + The dynamically loaded user interface in \c formWidget is now properly set + up. We now embed \c formWidget through a \c QVBoxLayout. + + \snippet textfinder/textfinder.cpp 3b + + At the end of the constructor we set a window title. + + \snippet textfinder/textfinder.cpp 3c + + The \c{on_findButton_clicked()} function is a slot that is connected to + \c{ui_findButton}'s \c clicked() signal. The \c searchString is extracted + from the \c ui_lineEdit and the \c document is extracted from + \c ui_textEdit. If there is an empty \c searchString, a QMessageBox is + used, requesting the user to enter a word. Otherwise, we traverse through + the words in \c ui_textEdit, and highlight all ocurrences of the + \c searchString. Two QTextCursor objects are used: One to traverse through + the words in \c line and another to keep track of the edit blocks. + + \snippet textfinder/textfinder.cpp 7 + + The \c found flag is used to indicate if the \c searchString was found + within the contents of \c ui_textEdit. If it was not found, a QMessageBox + is used to inform the user. + + \snippet textfinder/textfinder.cpp 9 + + \section1 \c main() Function + + The \c main() function instantiates and shows \c TextFinder. + + \snippet textfinder/main.cpp 0 + + There are various approaches to include forms into applications. Using + QUILoader is just one of them. See \l{Using a Designer UI File in Your + Application} for more information on the other approaches available. + + \sa {Calculator Builder Example}, {World Time Clock Builder Example} + */ diff --git a/examples/uitools/multipleinheritance/CMakeLists.txt b/examples/uitools/multipleinheritance/CMakeLists.txt new file mode 100644 index 0000000..d1e3944 --- /dev/null +++ b/examples/uitools/multipleinheritance/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 3.16) +project(multipleinheritance LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/uitools/multipleinheritance") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) + +qt_add_executable(multipleinheritance + calculatorform.cpp calculatorform.h calculatorform.ui + main.cpp +) + +set_target_properties(multipleinheritance PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(multipleinheritance PUBLIC + Qt::Core + Qt::Gui + Qt::Widgets +) + +install(TARGETS multipleinheritance + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/uitools/multipleinheritance/calculatorform.cpp b/examples/uitools/multipleinheritance/calculatorform.cpp new file mode 100644 index 0000000..6a877de --- /dev/null +++ b/examples/uitools/multipleinheritance/calculatorform.cpp @@ -0,0 +1,28 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "calculatorform.h" +#include + + +//! [0] +CalculatorForm::CalculatorForm(QWidget *parent) + : QWidget(parent) +{ + setupUi(this); +} +//! [0] + +//! [1] +void CalculatorForm::on_inputSpinBox1_valueChanged(int value) +{ + outputWidget->setText(QString::number(value + inputSpinBox2->value())); +} +//! [1] + +//! [2] +void CalculatorForm::on_inputSpinBox2_valueChanged(int value) +{ + outputWidget->setText(QString::number(value + inputSpinBox1->value())); +} +//! [2] diff --git a/examples/uitools/multipleinheritance/calculatorform.h b/examples/uitools/multipleinheritance/calculatorform.h new file mode 100644 index 0000000..aba28c2 --- /dev/null +++ b/examples/uitools/multipleinheritance/calculatorform.h @@ -0,0 +1,25 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef CALCULATORFORM_H +#define CALCULATORFORM_H + +//! [0] +#include "ui_calculatorform.h" +//! [0] + +//! [1] +class CalculatorForm : public QWidget, private Ui::CalculatorForm +{ + Q_OBJECT + +public: + explicit CalculatorForm(QWidget *parent = nullptr); + +private slots: + void on_inputSpinBox1_valueChanged(int value); + void on_inputSpinBox2_valueChanged(int value); +}; +//! [1] + +#endif diff --git a/examples/uitools/multipleinheritance/calculatorform.ui b/examples/uitools/multipleinheritance/calculatorform.ui new file mode 100644 index 0000000..dda0e62 --- /dev/null +++ b/examples/uitools/multipleinheritance/calculatorform.ui @@ -0,0 +1,303 @@ + + + + + CalculatorForm + + + CalculatorForm + + + + 0 + 0 + 276 + 98 + + + + + 5 + 5 + 0 + 0 + + + + Calculator Builder + + + + + + + 9 + + + 6 + + + + + + + + 1 + + + 6 + + + + + + + + 1 + + + 6 + + + + + label + + + + 1 + 1 + 45 + 19 + + + + Input 1 + + + + + + + inputSpinBox1 + + + + 1 + 26 + 45 + 25 + + + + true + + + + + + + + + label_3 + + + + 54 + 1 + 7 + 52 + + + + + + + + Qt::AlignCenter + + + + + + + + + + 1 + + + 6 + + + + + label_2 + + + + 1 + 1 + 45 + 19 + + + + Input 2 + + + + + + + inputSpinBox2 + + + + 1 + 26 + 45 + 25 + + + + true + + + + + + + + + label_3_2 + + + + 120 + 1 + 7 + 52 + + + + = + + + Qt::AlignCenter + + + + + + + + + + 1 + + + 6 + + + + + label_2_2_2 + + + + 1 + 1 + 37 + 17 + + + + Output + + + + + + + outputWidget + + + + 1 + 24 + 37 + 27 + + + + QFrame::Box + + + QFrame::Sunken + + + 0 + + + Qt::AlignAbsolute|Qt::AlignBottom|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignHorizontal_Mask|Qt::AlignJustify|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing|Qt::AlignVCenter|Qt::AlignVertical_Mask + + + + + + + + + + + verticalSpacer + + + + 85 + 69 + 20 + 20 + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + horizontalSpacer + + + + 188 + 26 + 79 + 20 + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + diff --git a/examples/uitools/multipleinheritance/main.cpp b/examples/uitools/multipleinheritance/main.cpp new file mode 100644 index 0000000..d6b0aee --- /dev/null +++ b/examples/uitools/multipleinheritance/main.cpp @@ -0,0 +1,15 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "calculatorform.h" +#include + +//! [0] +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + CalculatorForm calculator; + calculator.show(); + return app.exec(); +} +//! [0] diff --git a/examples/uitools/multipleinheritance/multipleinheritance.pro b/examples/uitools/multipleinheritance/multipleinheritance.pro new file mode 100644 index 0000000..fd40982 --- /dev/null +++ b/examples/uitools/multipleinheritance/multipleinheritance.pro @@ -0,0 +1,11 @@ +#! [0] +QT += widgets + +HEADERS = calculatorform.h +SOURCES = calculatorform.cpp main.cpp +FORMS = calculatorform.ui +#! [0] + +target.path = $$[QT_INSTALL_EXAMPLES]/uitools/multipleinheritance +INSTALLS += target + diff --git a/examples/uitools/textfinder/CMakeLists.txt b/examples/uitools/textfinder/CMakeLists.txt new file mode 100644 index 0000000..17c6a95 --- /dev/null +++ b/examples/uitools/textfinder/CMakeLists.txt @@ -0,0 +1,49 @@ +cmake_minimum_required(VERSION 3.16) +project(textfinder LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/uitools/textfinder") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui UiTools Widgets) + +qt_add_executable(textfinder + main.cpp + textfinder.cpp textfinder.h +) + +set_target_properties(textfinder PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(textfinder PUBLIC + Qt::Core + Qt::Gui + Qt::UiTools + Qt::Widgets +) + +# Resources: +set(textfinder_resource_files + "forms/input.txt" + "forms/textfinder.ui" +) + +qt6_add_resources(textfinder "textfinder" + PREFIX + "/" + FILES + ${textfinder_resource_files} +) + +install(TARGETS textfinder + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/uitools/textfinder/forms/input.txt b/examples/uitools/textfinder/forms/input.txt new file mode 100644 index 0000000..4dc15ce --- /dev/null +++ b/examples/uitools/textfinder/forms/input.txt @@ -0,0 +1,3 @@ +This user interface was loaded and processed at run-time. + +Applications that want to load .ui files at run-time must be configured to be link against the QtUiTools module. A form loader object, provided by the QUiLoader class, is used to construct the user interface. This user interface can be retrieved from any QIODevice; for example, a QFile object can be used to obtain a form stored in a project's resources. The QUiLoader::load() function takes the user interface description contained in the file and constructs the form widget. diff --git a/examples/uitools/textfinder/forms/textfinder.ui b/examples/uitools/textfinder/forms/textfinder.ui new file mode 100644 index 0000000..9ea3011 --- /dev/null +++ b/examples/uitools/textfinder/forms/textfinder.ui @@ -0,0 +1,95 @@ + + + Form + + + + 0 + 0 + 378 + 158 + + + + Find Text + + + + 6 + + + 9 + + + 9 + + + 9 + + + 9 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + + + + + + &Keyword: + + + lineEdit + + + + + + + &Find + + + + + + + + + + + + + + lineEdit + returnPressed() + findButton + animateClick() + + + 261 + 17 + + + 320 + 17 + + + + + diff --git a/examples/uitools/textfinder/main.cpp b/examples/uitools/textfinder/main.cpp new file mode 100644 index 0000000..4fdd825 --- /dev/null +++ b/examples/uitools/textfinder/main.cpp @@ -0,0 +1,17 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "textfinder.h" +#include + +//! [0] +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + TextFinder textFinder; + textFinder.show(); + + return app.exec(); +} +//! [0] diff --git a/examples/uitools/textfinder/textfinder.cpp b/examples/uitools/textfinder/textfinder.cpp new file mode 100644 index 0000000..dd527b4 --- /dev/null +++ b/examples/uitools/textfinder/textfinder.cpp @@ -0,0 +1,114 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "textfinder.h" +#include +#include +#include +#include +#include +#include +#include +#include + +//! [4] +static QWidget *loadUiFile(QWidget *parent) +{ + QFile file(":/forms/textfinder.ui"); + file.open(QIODevice::ReadOnly); + + QUiLoader loader; + return loader.load(&file, parent); +} +//! [4] + +//! [5] +static QString loadTextFile() +{ + QFile inputFile(":/forms/input.txt"); + inputFile.open(QIODevice::ReadOnly); + QTextStream in(&inputFile); + return in.readAll(); +} +//! [5] + +//! [0] +TextFinder::TextFinder(QWidget *parent) + : QWidget(parent) +{ + QWidget *formWidget = loadUiFile(this); + +//! [1] + ui_findButton = findChild("findButton"); + ui_textEdit = findChild("textEdit"); + ui_lineEdit = findChild("lineEdit"); +//! [0] //! [1] + +//! [2] + QMetaObject::connectSlotsByName(this); +//! [2] + +//! [3a] + ui_textEdit->setText(loadTextFile()); +//! [3a] + +//! [3b] + QVBoxLayout *layout = new QVBoxLayout; + layout->addWidget(formWidget); + setLayout(layout); +//! [3b] + +//! [3c] + setWindowTitle(tr("Text Finder")); +} +//! [3c] + +//! [6] //! [7] +void TextFinder::on_findButton_clicked() +{ + QString searchString = ui_lineEdit->text(); + QTextDocument *document = ui_textEdit->document(); + + bool found = false; + + // undo previous change (if any) + document->undo(); + + if (searchString.isEmpty()) { + QMessageBox::information(this, tr("Empty Search Field"), + tr("The search field is empty. " + "Please enter a word and click Find.")); + } else { + QTextCursor highlightCursor(document); + QTextCursor cursor(document); + + cursor.beginEditBlock(); +//! [6] + + QTextCharFormat plainFormat(highlightCursor.charFormat()); + QTextCharFormat colorFormat = plainFormat; + colorFormat.setForeground(Qt::red); + + while (!highlightCursor.isNull() && !highlightCursor.atEnd()) { + highlightCursor = document->find(searchString, highlightCursor, + QTextDocument::FindWholeWords); + + if (!highlightCursor.isNull()) { + found = true; + highlightCursor.movePosition(QTextCursor::WordRight, + QTextCursor::KeepAnchor); + highlightCursor.mergeCharFormat(colorFormat); + } + } + +//! [8] + cursor.endEditBlock(); +//! [7] //! [9] + + if (found == false) { + QMessageBox::information(this, tr("Word Not Found"), + tr("Sorry, the word cannot be found.")); + } + } +} +//! [8] //! [9] diff --git a/examples/uitools/textfinder/textfinder.h b/examples/uitools/textfinder/textfinder.h new file mode 100644 index 0000000..a9204c1 --- /dev/null +++ b/examples/uitools/textfinder/textfinder.h @@ -0,0 +1,33 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef TEXTFINDER_H +#define TEXTFINDER_H + +#include + +QT_BEGIN_NAMESPACE +class QLineEdit; +class QPushButton; +class QTextEdit; +QT_END_NAMESPACE + +//! [0] +class TextFinder : public QWidget +{ + Q_OBJECT + +public: + explicit TextFinder(QWidget *parent = nullptr); + +private slots: + void on_findButton_clicked(); + +private: + QPushButton *ui_findButton; + QTextEdit *ui_textEdit; + QLineEdit *ui_lineEdit; +}; +//! [0] + +#endif // TEXTFINDER_H diff --git a/examples/uitools/textfinder/textfinder.pro b/examples/uitools/textfinder/textfinder.pro new file mode 100644 index 0000000..8f66814 --- /dev/null +++ b/examples/uitools/textfinder/textfinder.pro @@ -0,0 +1,10 @@ +#! [0] +QT += widgets uitools + +HEADERS = textfinder.h +SOURCES = textfinder.cpp main.cpp +RESOURCES = textfinder.qrc +#! [0] + +target.path = $$[QT_INSTALL_EXAMPLES]/uitools/textfinder +INSTALLS += target diff --git a/examples/uitools/textfinder/textfinder.qrc b/examples/uitools/textfinder/textfinder.qrc new file mode 100644 index 0000000..a4cea8a --- /dev/null +++ b/examples/uitools/textfinder/textfinder.qrc @@ -0,0 +1,6 @@ + + + forms/textfinder.ui + forms/input.txt + + \ No newline at end of file diff --git a/examples/uitools/uitools.pro b/examples/uitools/uitools.pro new file mode 100644 index 0000000..bc2285d --- /dev/null +++ b/examples/uitools/uitools.pro @@ -0,0 +1,4 @@ +TEMPLATE = subdirs +SUBDIRS = multipleinheritance + +SUBDIRS += textfinder diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/abstractdialoggui_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/abstractdialoggui_p.h new file mode 100644 index 0000000..965964b --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/abstractdialoggui_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/sdk/abstractdialoggui_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/abstractintrospection_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/abstractintrospection_p.h new file mode 100644 index 0000000..7191d3b --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/abstractintrospection_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/sdk/abstractintrospection_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/actioneditor_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/actioneditor_p.h new file mode 100644 index 0000000..ae25560 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/actioneditor_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/actioneditor_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/actionprovider_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/actionprovider_p.h new file mode 100644 index 0000000..bd490ce --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/actionprovider_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/actionprovider_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/actionrepository_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/actionrepository_p.h new file mode 100644 index 0000000..fd5e8b3 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/actionrepository_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/actionrepository_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/codedialog_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/codedialog_p.h new file mode 100644 index 0000000..d323602 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/codedialog_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/codedialog_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/connectionedit_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/connectionedit_p.h new file mode 100644 index 0000000..82d74ff --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/connectionedit_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/connectionedit_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/csshighlighter_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/csshighlighter_p.h new file mode 100644 index 0000000..a857ba4 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/csshighlighter_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/csshighlighter_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/deviceprofile_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/deviceprofile_p.h new file mode 100644 index 0000000..90a30a0 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/deviceprofile_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/deviceprofile_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/dialoggui_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/dialoggui_p.h new file mode 100644 index 0000000..d5fdc1c --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/dialoggui_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/dialoggui_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/extensionfactory_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/extensionfactory_p.h new file mode 100644 index 0000000..697e9e6 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/extensionfactory_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/extensionfactory_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/formbuilderextra_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/formbuilderextra_p.h new file mode 100644 index 0000000..cefa6ed --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/formbuilderextra_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/uilib/formbuilderextra_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/formlayoutmenu_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/formlayoutmenu_p.h new file mode 100644 index 0000000..f24863b --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/formlayoutmenu_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/formlayoutmenu_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/formwindowbase_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/formwindowbase_p.h new file mode 100644 index 0000000..a1911e8 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/formwindowbase_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/formwindowbase_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/grid_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/grid_p.h new file mode 100644 index 0000000..eec46db --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/grid_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/grid_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/gridpanel_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/gridpanel_p.h new file mode 100644 index 0000000..592d84e --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/gridpanel_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/gridpanel_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/htmlhighlighter_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/htmlhighlighter_p.h new file mode 100644 index 0000000..0bf6359 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/htmlhighlighter_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/htmlhighlighter_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/iconloader_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/iconloader_p.h new file mode 100644 index 0000000..57def86 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/iconloader_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/iconloader_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/iconselector_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/iconselector_p.h new file mode 100644 index 0000000..a67478f --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/iconselector_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/iconselector_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/invisible_widget_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/invisible_widget_p.h new file mode 100644 index 0000000..caf0e1f --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/invisible_widget_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/invisible_widget_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/layout_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/layout_p.h new file mode 100644 index 0000000..2860401 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/layout_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/layout_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/layoutinfo_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/layoutinfo_p.h new file mode 100644 index 0000000..486c1fa --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/layoutinfo_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/layoutinfo_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/lib_pch.h b/include/QtDesigner/6.4.2/QtDesigner/private/lib_pch.h new file mode 100644 index 0000000..a0b5812 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/lib_pch.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/lib_pch.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/metadatabase_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/metadatabase_p.h new file mode 100644 index 0000000..d5196bb --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/metadatabase_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/metadatabase_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/morphmenu_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/morphmenu_p.h new file mode 100644 index 0000000..ee2ff8f --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/morphmenu_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/morphmenu_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/newactiondialog_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/newactiondialog_p.h new file mode 100644 index 0000000..d780205 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/newactiondialog_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/newactiondialog_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/newformwidget_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/newformwidget_p.h new file mode 100644 index 0000000..97445ee --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/newformwidget_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/newformwidget_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/orderdialog_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/orderdialog_p.h new file mode 100644 index 0000000..0e38b31 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/orderdialog_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/orderdialog_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/plaintexteditor_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/plaintexteditor_p.h new file mode 100644 index 0000000..95c3a38 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/plaintexteditor_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/plaintexteditor_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/plugindialog_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/plugindialog_p.h new file mode 100644 index 0000000..34ce598 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/plugindialog_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/plugindialog_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/pluginmanager_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/pluginmanager_p.h new file mode 100644 index 0000000..574edbe --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/pluginmanager_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/pluginmanager_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/previewconfigurationwidget_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/previewconfigurationwidget_p.h new file mode 100644 index 0000000..7a0ff5b --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/previewconfigurationwidget_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/previewconfigurationwidget_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/previewmanager_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/previewmanager_p.h new file mode 100644 index 0000000..1456af1 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/previewmanager_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/previewmanager_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/promotionmodel_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/promotionmodel_p.h new file mode 100644 index 0000000..9544382 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/promotionmodel_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/promotionmodel_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/promotiontaskmenu_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/promotiontaskmenu_p.h new file mode 100644 index 0000000..2928262 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/promotiontaskmenu_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/promotiontaskmenu_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/properties_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/properties_p.h new file mode 100644 index 0000000..9512638 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/properties_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/uilib/properties_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/propertylineedit_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/propertylineedit_p.h new file mode 100644 index 0000000..d07a150 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/propertylineedit_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/propertylineedit_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_command2_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_command2_p.h new file mode 100644 index 0000000..65fa2ca --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_command2_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_command2_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_command_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_command_p.h new file mode 100644 index 0000000..bf36c0b --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_command_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_command_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_dnditem_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_dnditem_p.h new file mode 100644 index 0000000..bddf762 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_dnditem_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_dnditem_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_dockwidget_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_dockwidget_p.h new file mode 100644 index 0000000..fd19f00 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_dockwidget_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_dockwidget_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formbuilder_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formbuilder_p.h new file mode 100644 index 0000000..8da5ba6 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formbuilder_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_formbuilder_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formeditorcommand_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formeditorcommand_p.h new file mode 100644 index 0000000..abdf437 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formeditorcommand_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_formeditorcommand_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formwindowcommand_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formwindowcommand_p.h new file mode 100644 index 0000000..917ef34 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formwindowcommand_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_formwindowcommand_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formwindowmanager_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formwindowmanager_p.h new file mode 100644 index 0000000..331aded --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_formwindowmanager_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_formwindowmanager_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_introspection_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_introspection_p.h new file mode 100644 index 0000000..7be3ac6 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_introspection_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_introspection_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_membersheet_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_membersheet_p.h new file mode 100644 index 0000000..27c4213 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_membersheet_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_membersheet_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_menu_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_menu_p.h new file mode 100644 index 0000000..13cd318 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_menu_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_menu_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_menubar_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_menubar_p.h new file mode 100644 index 0000000..fa28ce0 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_menubar_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_menubar_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_objectinspector_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_objectinspector_p.h new file mode 100644 index 0000000..3ffb86e --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_objectinspector_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_objectinspector_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_promotion_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_promotion_p.h new file mode 100644 index 0000000..0f26bd5 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_promotion_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_promotion_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_promotiondialog_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_promotiondialog_p.h new file mode 100644 index 0000000..e1f3c51 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_promotiondialog_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_promotiondialog_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_propertycommand_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_propertycommand_p.h new file mode 100644 index 0000000..d6cbee3 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_propertycommand_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_propertycommand_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_propertyeditor_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_propertyeditor_p.h new file mode 100644 index 0000000..82b30b1 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_propertyeditor_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_propertyeditor_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_propertysheet_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_propertysheet_p.h new file mode 100644 index 0000000..a035be8 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_propertysheet_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_propertysheet_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_qsettings_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_qsettings_p.h new file mode 100644 index 0000000..e289133 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_qsettings_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_qsettings_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_stackedbox_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_stackedbox_p.h new file mode 100644 index 0000000..09ff9c2 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_stackedbox_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_stackedbox_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_tabwidget_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_tabwidget_p.h new file mode 100644 index 0000000..1616a13 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_tabwidget_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_tabwidget_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_taskmenu_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_taskmenu_p.h new file mode 100644 index 0000000..795f7c0 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_taskmenu_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_taskmenu_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_toolbar_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_toolbar_p.h new file mode 100644 index 0000000..7bec72e --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_toolbar_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_toolbar_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_toolbox_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_toolbox_p.h new file mode 100644 index 0000000..0eb8f31 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_toolbox_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_toolbox_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_utils_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_utils_p.h new file mode 100644 index 0000000..31266fe --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_utils_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_utils_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_widget_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_widget_p.h new file mode 100644 index 0000000..7d27705 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_widget_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_widget_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_widgetbox_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_widgetbox_p.h new file mode 100644 index 0000000..a30e14a --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_widgetbox_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_widgetbox_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_widgetitem_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_widgetitem_p.h new file mode 100644 index 0000000..8d65dbe --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qdesigner_widgetitem_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qdesigner_widgetitem_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qlayout_widget_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qlayout_widget_p.h new file mode 100644 index 0000000..9010c1b --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qlayout_widget_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qlayout_widget_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qsimpleresource_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qsimpleresource_p.h new file mode 100644 index 0000000..41403ad --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qsimpleresource_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qsimpleresource_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qtresourceeditordialog_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qtresourceeditordialog_p.h new file mode 100644 index 0000000..8a41028 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qtresourceeditordialog_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qtresourceeditordialog_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qtresourcemodel_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qtresourcemodel_p.h new file mode 100644 index 0000000..f050ce3 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qtresourcemodel_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qtresourcemodel_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/qtresourceview_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/qtresourceview_p.h new file mode 100644 index 0000000..28bd8ce --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/qtresourceview_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/qtresourceview_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/rcc_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/rcc_p.h new file mode 100644 index 0000000..f2d1868 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/rcc_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/rcc_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/resourcebuilder_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/resourcebuilder_p.h new file mode 100644 index 0000000..478b368 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/resourcebuilder_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/uilib/resourcebuilder_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/richtexteditor_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/richtexteditor_p.h new file mode 100644 index 0000000..9a9d04e --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/richtexteditor_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/richtexteditor_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/selectsignaldialog_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/selectsignaldialog_p.h new file mode 100644 index 0000000..e96cfdd --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/selectsignaldialog_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/selectsignaldialog_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/shared_enums_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/shared_enums_p.h new file mode 100644 index 0000000..401791d --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/shared_enums_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/shared_enums_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/shared_global_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/shared_global_p.h new file mode 100644 index 0000000..b05c9a7 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/shared_global_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/shared_global_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/shared_settings_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/shared_settings_p.h new file mode 100644 index 0000000..d26c9e7 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/shared_settings_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/shared_settings_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/sheet_delegate_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/sheet_delegate_p.h new file mode 100644 index 0000000..a03507f --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/sheet_delegate_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/sheet_delegate_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/signalslotdialog_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/signalslotdialog_p.h new file mode 100644 index 0000000..85e19cd --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/signalslotdialog_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/signalslotdialog_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/spacer_widget_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/spacer_widget_p.h new file mode 100644 index 0000000..b6e5cf7 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/spacer_widget_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/spacer_widget_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/stylesheeteditor_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/stylesheeteditor_p.h new file mode 100644 index 0000000..b59fcf1 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/stylesheeteditor_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/stylesheeteditor_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/textbuilder_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/textbuilder_p.h new file mode 100644 index 0000000..258ec27 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/textbuilder_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/uilib/textbuilder_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/textpropertyeditor_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/textpropertyeditor_p.h new file mode 100644 index 0000000..3803b72 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/textpropertyeditor_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/textpropertyeditor_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/ui4_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/ui4_p.h new file mode 100644 index 0000000..3a16abe --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/ui4_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/uilib/ui4_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/widgetdatabase_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/widgetdatabase_p.h new file mode 100644 index 0000000..2b697ec --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/widgetdatabase_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/widgetdatabase_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/widgetfactory_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/widgetfactory_p.h new file mode 100644 index 0000000..1210a1e --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/widgetfactory_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/widgetfactory_p.h" diff --git a/include/QtDesigner/6.4.2/QtDesigner/private/zoomwidget_p.h b/include/QtDesigner/6.4.2/QtDesigner/private/zoomwidget_p.h new file mode 100644 index 0000000..6320bf9 --- /dev/null +++ b/include/QtDesigner/6.4.2/QtDesigner/private/zoomwidget_p.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/lib/shared/zoomwidget_p.h" diff --git a/include/QtDesigner/QAbstractExtensionFactory b/include/QtDesigner/QAbstractExtensionFactory new file mode 100644 index 0000000..4efa060 --- /dev/null +++ b/include/QtDesigner/QAbstractExtensionFactory @@ -0,0 +1 @@ +#include "extension.h" diff --git a/include/QtDesigner/QAbstractExtensionManager b/include/QtDesigner/QAbstractExtensionManager new file mode 100644 index 0000000..4efa060 --- /dev/null +++ b/include/QtDesigner/QAbstractExtensionManager @@ -0,0 +1 @@ +#include "extension.h" diff --git a/include/QtDesigner/QAbstractFormBuilder b/include/QtDesigner/QAbstractFormBuilder new file mode 100644 index 0000000..740faff --- /dev/null +++ b/include/QtDesigner/QAbstractFormBuilder @@ -0,0 +1 @@ +#include "abstractformbuilder.h" diff --git a/include/QtDesigner/QDesignerActionEditorInterface b/include/QtDesigner/QDesignerActionEditorInterface new file mode 100644 index 0000000..d388a18 --- /dev/null +++ b/include/QtDesigner/QDesignerActionEditorInterface @@ -0,0 +1 @@ +#include "abstractactioneditor.h" diff --git a/include/QtDesigner/QDesignerComponents b/include/QtDesigner/QDesignerComponents new file mode 100644 index 0000000..0010718 --- /dev/null +++ b/include/QtDesigner/QDesignerComponents @@ -0,0 +1 @@ +#include "qdesigner_components.h" diff --git a/include/QtDesigner/QDesignerContainerExtension b/include/QtDesigner/QDesignerContainerExtension new file mode 100644 index 0000000..733484a --- /dev/null +++ b/include/QtDesigner/QDesignerContainerExtension @@ -0,0 +1 @@ +#include "container.h" diff --git a/include/QtDesigner/QDesignerCustomWidgetCollectionInterface b/include/QtDesigner/QDesignerCustomWidgetCollectionInterface new file mode 100644 index 0000000..50cd3c1 --- /dev/null +++ b/include/QtDesigner/QDesignerCustomWidgetCollectionInterface @@ -0,0 +1,12 @@ +#ifndef DEPRECATED_HEADER_QtDesigner_QDesignerCustomWidgetCollectionInterface +#define DEPRECATED_HEADER_QtDesigner_QDesignerCustomWidgetCollectionInterface +#if defined(__GNUC__) +# warning Header is deprecated. Please include instead. +#elif defined(_MSC_VER) +# pragma message ("Header is deprecated. Please include instead.") +#endif +#include +#if 0 +#pragma qt_no_master_include +#endif +#endif diff --git a/include/QtDesigner/QDesignerCustomWidgetInterface b/include/QtDesigner/QDesignerCustomWidgetInterface new file mode 100644 index 0000000..e58263b --- /dev/null +++ b/include/QtDesigner/QDesignerCustomWidgetInterface @@ -0,0 +1,12 @@ +#ifndef DEPRECATED_HEADER_QtDesigner_QDesignerCustomWidgetInterface +#define DEPRECATED_HEADER_QtDesigner_QDesignerCustomWidgetInterface +#if defined(__GNUC__) +# warning Header is deprecated. Please include instead. +#elif defined(_MSC_VER) +# pragma message ("Header is deprecated. Please include instead.") +#endif +#include +#if 0 +#pragma qt_no_master_include +#endif +#endif diff --git a/include/QtDesigner/QDesignerDnDItemInterface b/include/QtDesigner/QDesignerDnDItemInterface new file mode 100644 index 0000000..b6dc637 --- /dev/null +++ b/include/QtDesigner/QDesignerDnDItemInterface @@ -0,0 +1 @@ +#include "abstractdnditem.h" diff --git a/include/QtDesigner/QDesignerDynamicPropertySheetExtension b/include/QtDesigner/QDesignerDynamicPropertySheetExtension new file mode 100644 index 0000000..4eebe0e --- /dev/null +++ b/include/QtDesigner/QDesignerDynamicPropertySheetExtension @@ -0,0 +1 @@ +#include "dynamicpropertysheet.h" diff --git a/include/QtDesigner/QDesignerExportWidget b/include/QtDesigner/QDesignerExportWidget new file mode 100644 index 0000000..50a1d87 --- /dev/null +++ b/include/QtDesigner/QDesignerExportWidget @@ -0,0 +1,12 @@ +#ifndef DEPRECATED_HEADER_QtDesigner_QDesignerExportWidget +#define DEPRECATED_HEADER_QtDesigner_QDesignerExportWidget +#if defined(__GNUC__) +# warning Header is deprecated. Please include instead. +#elif defined(_MSC_VER) +# pragma message ("Header is deprecated. Please include instead.") +#endif +#include +#if 0 +#pragma qt_no_master_include +#endif +#endif diff --git a/include/QtDesigner/QDesignerExtraInfoExtension b/include/QtDesigner/QDesignerExtraInfoExtension new file mode 100644 index 0000000..5981853 --- /dev/null +++ b/include/QtDesigner/QDesignerExtraInfoExtension @@ -0,0 +1 @@ +#include "extrainfo.h" diff --git a/include/QtDesigner/QDesignerFormEditorInterface b/include/QtDesigner/QDesignerFormEditorInterface new file mode 100644 index 0000000..297c743 --- /dev/null +++ b/include/QtDesigner/QDesignerFormEditorInterface @@ -0,0 +1 @@ +#include "abstractformeditor.h" diff --git a/include/QtDesigner/QDesignerFormEditorPluginInterface b/include/QtDesigner/QDesignerFormEditorPluginInterface new file mode 100644 index 0000000..faf345c --- /dev/null +++ b/include/QtDesigner/QDesignerFormEditorPluginInterface @@ -0,0 +1 @@ +#include "abstractformeditorplugin.h" diff --git a/include/QtDesigner/QDesignerFormWindowCursorInterface b/include/QtDesigner/QDesignerFormWindowCursorInterface new file mode 100644 index 0000000..4fd3335 --- /dev/null +++ b/include/QtDesigner/QDesignerFormWindowCursorInterface @@ -0,0 +1 @@ +#include "abstractformwindowcursor.h" diff --git a/include/QtDesigner/QDesignerFormWindowInterface b/include/QtDesigner/QDesignerFormWindowInterface new file mode 100644 index 0000000..4e04cdd --- /dev/null +++ b/include/QtDesigner/QDesignerFormWindowInterface @@ -0,0 +1 @@ +#include "abstractformwindow.h" diff --git a/include/QtDesigner/QDesignerFormWindowManagerInterface b/include/QtDesigner/QDesignerFormWindowManagerInterface new file mode 100644 index 0000000..0d84534 --- /dev/null +++ b/include/QtDesigner/QDesignerFormWindowManagerInterface @@ -0,0 +1 @@ +#include "abstractformwindowmanager.h" diff --git a/include/QtDesigner/QDesignerFormWindowToolInterface b/include/QtDesigner/QDesignerFormWindowToolInterface new file mode 100644 index 0000000..65e35d9 --- /dev/null +++ b/include/QtDesigner/QDesignerFormWindowToolInterface @@ -0,0 +1 @@ +#include "abstractformwindowtool.h" diff --git a/include/QtDesigner/QDesignerIntegration b/include/QtDesigner/QDesignerIntegration new file mode 100644 index 0000000..a413d07 --- /dev/null +++ b/include/QtDesigner/QDesignerIntegration @@ -0,0 +1 @@ +#include "abstractintegration.h" diff --git a/include/QtDesigner/QDesignerIntegrationInterface b/include/QtDesigner/QDesignerIntegrationInterface new file mode 100644 index 0000000..a413d07 --- /dev/null +++ b/include/QtDesigner/QDesignerIntegrationInterface @@ -0,0 +1 @@ +#include "abstractintegration.h" diff --git a/include/QtDesigner/QDesignerLanguageExtension b/include/QtDesigner/QDesignerLanguageExtension new file mode 100644 index 0000000..13ad08f --- /dev/null +++ b/include/QtDesigner/QDesignerLanguageExtension @@ -0,0 +1 @@ +#include "abstractlanguage.h" diff --git a/include/QtDesigner/QDesignerLayoutDecorationExtension b/include/QtDesigner/QDesignerLayoutDecorationExtension new file mode 100644 index 0000000..37fa7c6 --- /dev/null +++ b/include/QtDesigner/QDesignerLayoutDecorationExtension @@ -0,0 +1 @@ +#include "layoutdecoration.h" diff --git a/include/QtDesigner/QDesignerMemberSheetExtension b/include/QtDesigner/QDesignerMemberSheetExtension new file mode 100644 index 0000000..e26f87b --- /dev/null +++ b/include/QtDesigner/QDesignerMemberSheetExtension @@ -0,0 +1 @@ +#include "membersheet.h" diff --git a/include/QtDesigner/QDesignerMetaDataBaseInterface b/include/QtDesigner/QDesignerMetaDataBaseInterface new file mode 100644 index 0000000..d0983b7 --- /dev/null +++ b/include/QtDesigner/QDesignerMetaDataBaseInterface @@ -0,0 +1 @@ +#include "abstractmetadatabase.h" diff --git a/include/QtDesigner/QDesignerMetaDataBaseItemInterface b/include/QtDesigner/QDesignerMetaDataBaseItemInterface new file mode 100644 index 0000000..d0983b7 --- /dev/null +++ b/include/QtDesigner/QDesignerMetaDataBaseItemInterface @@ -0,0 +1 @@ +#include "abstractmetadatabase.h" diff --git a/include/QtDesigner/QDesignerNewFormWidgetInterface b/include/QtDesigner/QDesignerNewFormWidgetInterface new file mode 100644 index 0000000..2fce237 --- /dev/null +++ b/include/QtDesigner/QDesignerNewFormWidgetInterface @@ -0,0 +1 @@ +#include "abstractnewformwidget.h" diff --git a/include/QtDesigner/QDesignerObjectInspectorInterface b/include/QtDesigner/QDesignerObjectInspectorInterface new file mode 100644 index 0000000..578af90 --- /dev/null +++ b/include/QtDesigner/QDesignerObjectInspectorInterface @@ -0,0 +1 @@ +#include "abstractobjectinspector.h" diff --git a/include/QtDesigner/QDesignerOptionsPageInterface b/include/QtDesigner/QDesignerOptionsPageInterface new file mode 100644 index 0000000..b813020 --- /dev/null +++ b/include/QtDesigner/QDesignerOptionsPageInterface @@ -0,0 +1 @@ +#include "abstractoptionspage.h" diff --git a/include/QtDesigner/QDesignerPromotionInterface b/include/QtDesigner/QDesignerPromotionInterface new file mode 100644 index 0000000..4ef340e --- /dev/null +++ b/include/QtDesigner/QDesignerPromotionInterface @@ -0,0 +1 @@ +#include "abstractpromotioninterface.h" diff --git a/include/QtDesigner/QDesignerPropertyEditorInterface b/include/QtDesigner/QDesignerPropertyEditorInterface new file mode 100644 index 0000000..9b14131 --- /dev/null +++ b/include/QtDesigner/QDesignerPropertyEditorInterface @@ -0,0 +1 @@ +#include "abstractpropertyeditor.h" diff --git a/include/QtDesigner/QDesignerPropertySheetExtension b/include/QtDesigner/QDesignerPropertySheetExtension new file mode 100644 index 0000000..3bed4c1 --- /dev/null +++ b/include/QtDesigner/QDesignerPropertySheetExtension @@ -0,0 +1 @@ +#include "propertysheet.h" diff --git a/include/QtDesigner/QDesignerResourceBrowserInterface b/include/QtDesigner/QDesignerResourceBrowserInterface new file mode 100644 index 0000000..fc1ba5c --- /dev/null +++ b/include/QtDesigner/QDesignerResourceBrowserInterface @@ -0,0 +1 @@ +#include "abstractresourcebrowser.h" diff --git a/include/QtDesigner/QDesignerSettingsInterface b/include/QtDesigner/QDesignerSettingsInterface new file mode 100644 index 0000000..65766d7 --- /dev/null +++ b/include/QtDesigner/QDesignerSettingsInterface @@ -0,0 +1 @@ +#include "abstractsettings.h" diff --git a/include/QtDesigner/QDesignerTaskMenuExtension b/include/QtDesigner/QDesignerTaskMenuExtension new file mode 100644 index 0000000..090f3f0 --- /dev/null +++ b/include/QtDesigner/QDesignerTaskMenuExtension @@ -0,0 +1 @@ +#include "taskmenu.h" diff --git a/include/QtDesigner/QDesignerWidgetBoxInterface b/include/QtDesigner/QDesignerWidgetBoxInterface new file mode 100644 index 0000000..43a7a2a --- /dev/null +++ b/include/QtDesigner/QDesignerWidgetBoxInterface @@ -0,0 +1 @@ +#include "abstractwidgetbox.h" diff --git a/include/QtDesigner/QDesignerWidgetDataBaseInterface b/include/QtDesigner/QDesignerWidgetDataBaseInterface new file mode 100644 index 0000000..7e8b5b9 --- /dev/null +++ b/include/QtDesigner/QDesignerWidgetDataBaseInterface @@ -0,0 +1 @@ +#include "abstractwidgetdatabase.h" diff --git a/include/QtDesigner/QDesignerWidgetDataBaseItemInterface b/include/QtDesigner/QDesignerWidgetDataBaseItemInterface new file mode 100644 index 0000000..7e8b5b9 --- /dev/null +++ b/include/QtDesigner/QDesignerWidgetDataBaseItemInterface @@ -0,0 +1 @@ +#include "abstractwidgetdatabase.h" diff --git a/include/QtDesigner/QDesignerWidgetFactoryInterface b/include/QtDesigner/QDesignerWidgetFactoryInterface new file mode 100644 index 0000000..47a274c --- /dev/null +++ b/include/QtDesigner/QDesignerWidgetFactoryInterface @@ -0,0 +1 @@ +#include "abstractwidgetfactory.h" diff --git a/include/QtDesigner/QExtensionFactory b/include/QtDesigner/QExtensionFactory new file mode 100644 index 0000000..903f1dd --- /dev/null +++ b/include/QtDesigner/QExtensionFactory @@ -0,0 +1 @@ +#include "default_extensionfactory.h" diff --git a/include/QtDesigner/QExtensionManager b/include/QtDesigner/QExtensionManager new file mode 100644 index 0000000..7697afc --- /dev/null +++ b/include/QtDesigner/QExtensionManager @@ -0,0 +1 @@ +#include "qextensionmanager.h" diff --git a/include/QtDesigner/QFormBuilder b/include/QtDesigner/QFormBuilder new file mode 100644 index 0000000..ba7aa4d --- /dev/null +++ b/include/QtDesigner/QFormBuilder @@ -0,0 +1 @@ +#include "formbuilder.h" diff --git a/include/QtDesigner/QtDesigner b/include/QtDesigner/QtDesigner new file mode 100644 index 0000000..bbc2e29 --- /dev/null +++ b/include/QtDesigner/QtDesigner @@ -0,0 +1,37 @@ +#ifndef QT_QTDESIGNER_MODULE_H +#define QT_QTDESIGNER_MODULE_H +#include +#include "abstractactioneditor.h" +#include "abstractdnditem.h" +#include "abstractformbuilder.h" +#include "abstractformeditor.h" +#include "abstractformeditorplugin.h" +#include "abstractformwindow.h" +#include "abstractformwindowcursor.h" +#include "abstractformwindowmanager.h" +#include "abstractformwindowtool.h" +#include "abstractintegration.h" +#include "abstractlanguage.h" +#include "abstractmetadatabase.h" +#include "abstractnewformwidget.h" +#include "abstractobjectinspector.h" +#include "abstractoptionspage.h" +#include "abstractpromotioninterface.h" +#include "abstractpropertyeditor.h" +#include "abstractresourcebrowser.h" +#include "abstractsettings.h" +#include "abstractwidgetbox.h" +#include "abstractwidgetdatabase.h" +#include "abstractwidgetfactory.h" +#include "container.h" +#include "dynamicpropertysheet.h" +#include "extension.h" +#include "extrainfo.h" +#include "formbuilder.h" +#include "layoutdecoration.h" +#include "membersheet.h" +#include "propertysheet.h" +#include "qextensionmanager.h" +#include "taskmenu.h" +#include "qtdesignerversion.h" +#endif diff --git a/include/QtDesigner/QtDesignerVersion b/include/QtDesigner/QtDesignerVersion new file mode 100644 index 0000000..7e5b029 --- /dev/null +++ b/include/QtDesigner/QtDesignerVersion @@ -0,0 +1 @@ +#include "qtdesignerversion.h" diff --git a/include/QtDesigner/abstractactioneditor.h b/include/QtDesigner/abstractactioneditor.h new file mode 100644 index 0000000..7846188 --- /dev/null +++ b/include/QtDesigner/abstractactioneditor.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractactioneditor.h" diff --git a/include/QtDesigner/abstractdnditem.h b/include/QtDesigner/abstractdnditem.h new file mode 100644 index 0000000..43d1a09 --- /dev/null +++ b/include/QtDesigner/abstractdnditem.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractdnditem.h" diff --git a/include/QtDesigner/abstractformbuilder.h b/include/QtDesigner/abstractformbuilder.h new file mode 100644 index 0000000..bf73ca7 --- /dev/null +++ b/include/QtDesigner/abstractformbuilder.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/uilib/abstractformbuilder.h" diff --git a/include/QtDesigner/abstractformeditor.h b/include/QtDesigner/abstractformeditor.h new file mode 100644 index 0000000..7648248 --- /dev/null +++ b/include/QtDesigner/abstractformeditor.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractformeditor.h" diff --git a/include/QtDesigner/abstractformeditorplugin.h b/include/QtDesigner/abstractformeditorplugin.h new file mode 100644 index 0000000..6094f66 --- /dev/null +++ b/include/QtDesigner/abstractformeditorplugin.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractformeditorplugin.h" diff --git a/include/QtDesigner/abstractformwindow.h b/include/QtDesigner/abstractformwindow.h new file mode 100644 index 0000000..1fb6fe0 --- /dev/null +++ b/include/QtDesigner/abstractformwindow.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractformwindow.h" diff --git a/include/QtDesigner/abstractformwindowcursor.h b/include/QtDesigner/abstractformwindowcursor.h new file mode 100644 index 0000000..b4769d5 --- /dev/null +++ b/include/QtDesigner/abstractformwindowcursor.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractformwindowcursor.h" diff --git a/include/QtDesigner/abstractformwindowmanager.h b/include/QtDesigner/abstractformwindowmanager.h new file mode 100644 index 0000000..7580b5c --- /dev/null +++ b/include/QtDesigner/abstractformwindowmanager.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractformwindowmanager.h" diff --git a/include/QtDesigner/abstractformwindowtool.h b/include/QtDesigner/abstractformwindowtool.h new file mode 100644 index 0000000..06b80b7 --- /dev/null +++ b/include/QtDesigner/abstractformwindowtool.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractformwindowtool.h" diff --git a/include/QtDesigner/abstractintegration.h b/include/QtDesigner/abstractintegration.h new file mode 100644 index 0000000..ee4cd49 --- /dev/null +++ b/include/QtDesigner/abstractintegration.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractintegration.h" diff --git a/include/QtDesigner/abstractlanguage.h b/include/QtDesigner/abstractlanguage.h new file mode 100644 index 0000000..171ccac --- /dev/null +++ b/include/QtDesigner/abstractlanguage.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractlanguage.h" diff --git a/include/QtDesigner/abstractmetadatabase.h b/include/QtDesigner/abstractmetadatabase.h new file mode 100644 index 0000000..e069936 --- /dev/null +++ b/include/QtDesigner/abstractmetadatabase.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractmetadatabase.h" diff --git a/include/QtDesigner/abstractnewformwidget.h b/include/QtDesigner/abstractnewformwidget.h new file mode 100644 index 0000000..7f1a9b5 --- /dev/null +++ b/include/QtDesigner/abstractnewformwidget.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractnewformwidget.h" diff --git a/include/QtDesigner/abstractobjectinspector.h b/include/QtDesigner/abstractobjectinspector.h new file mode 100644 index 0000000..5080524 --- /dev/null +++ b/include/QtDesigner/abstractobjectinspector.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractobjectinspector.h" diff --git a/include/QtDesigner/abstractoptionspage.h b/include/QtDesigner/abstractoptionspage.h new file mode 100644 index 0000000..9e46ec5 --- /dev/null +++ b/include/QtDesigner/abstractoptionspage.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractoptionspage.h" diff --git a/include/QtDesigner/abstractpromotioninterface.h b/include/QtDesigner/abstractpromotioninterface.h new file mode 100644 index 0000000..71b5f70 --- /dev/null +++ b/include/QtDesigner/abstractpromotioninterface.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractpromotioninterface.h" diff --git a/include/QtDesigner/abstractpropertyeditor.h b/include/QtDesigner/abstractpropertyeditor.h new file mode 100644 index 0000000..e23f0cf --- /dev/null +++ b/include/QtDesigner/abstractpropertyeditor.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractpropertyeditor.h" diff --git a/include/QtDesigner/abstractresourcebrowser.h b/include/QtDesigner/abstractresourcebrowser.h new file mode 100644 index 0000000..dc00da4 --- /dev/null +++ b/include/QtDesigner/abstractresourcebrowser.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractresourcebrowser.h" diff --git a/include/QtDesigner/abstractsettings.h b/include/QtDesigner/abstractsettings.h new file mode 100644 index 0000000..1071f2b --- /dev/null +++ b/include/QtDesigner/abstractsettings.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractsettings.h" diff --git a/include/QtDesigner/abstractwidgetbox.h b/include/QtDesigner/abstractwidgetbox.h new file mode 100644 index 0000000..2ed0ea5 --- /dev/null +++ b/include/QtDesigner/abstractwidgetbox.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractwidgetbox.h" diff --git a/include/QtDesigner/abstractwidgetdatabase.h b/include/QtDesigner/abstractwidgetdatabase.h new file mode 100644 index 0000000..17efc3a --- /dev/null +++ b/include/QtDesigner/abstractwidgetdatabase.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractwidgetdatabase.h" diff --git a/include/QtDesigner/abstractwidgetfactory.h b/include/QtDesigner/abstractwidgetfactory.h new file mode 100644 index 0000000..012ad51 --- /dev/null +++ b/include/QtDesigner/abstractwidgetfactory.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/abstractwidgetfactory.h" diff --git a/include/QtDesigner/container.h b/include/QtDesigner/container.h new file mode 100644 index 0000000..6bdd1b5 --- /dev/null +++ b/include/QtDesigner/container.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/container.h" diff --git a/include/QtDesigner/customwidget.h b/include/QtDesigner/customwidget.h new file mode 100644 index 0000000..0e89a5f --- /dev/null +++ b/include/QtDesigner/customwidget.h @@ -0,0 +1,12 @@ +#ifndef DEPRECATED_HEADER_QtDesigner_customwidget_h +#define DEPRECATED_HEADER_QtDesigner_customwidget_h +#if defined(__GNUC__) +# warning Header is deprecated. Please include instead. +#elif defined(_MSC_VER) +# pragma message ("Header is deprecated. Please include instead.") +#endif +#include +#if 0 +#pragma qt_no_master_include +#endif +#endif diff --git a/include/QtDesigner/default_extensionfactory.h b/include/QtDesigner/default_extensionfactory.h new file mode 100644 index 0000000..f7c2ba9 --- /dev/null +++ b/include/QtDesigner/default_extensionfactory.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/extension/default_extensionfactory.h" diff --git a/include/QtDesigner/dynamicpropertysheet.h b/include/QtDesigner/dynamicpropertysheet.h new file mode 100644 index 0000000..e80c05a --- /dev/null +++ b/include/QtDesigner/dynamicpropertysheet.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/dynamicpropertysheet.h" diff --git a/include/QtDesigner/extension.h b/include/QtDesigner/extension.h new file mode 100644 index 0000000..9972937 --- /dev/null +++ b/include/QtDesigner/extension.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/extension/extension.h" diff --git a/include/QtDesigner/extension_global.h b/include/QtDesigner/extension_global.h new file mode 100644 index 0000000..96e78e8 --- /dev/null +++ b/include/QtDesigner/extension_global.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/extension/extension_global.h" diff --git a/include/QtDesigner/extrainfo.h b/include/QtDesigner/extrainfo.h new file mode 100644 index 0000000..18368eb --- /dev/null +++ b/include/QtDesigner/extrainfo.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/extrainfo.h" diff --git a/include/QtDesigner/formbuilder.h b/include/QtDesigner/formbuilder.h new file mode 100644 index 0000000..dc6b107 --- /dev/null +++ b/include/QtDesigner/formbuilder.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/uilib/formbuilder.h" diff --git a/include/QtDesigner/headers.pri b/include/QtDesigner/headers.pri new file mode 100644 index 0000000..2463fbc --- /dev/null +++ b/include/QtDesigner/headers.pri @@ -0,0 +1,6 @@ +SYNCQT.HEADER_FILES = components/qdesigner_components.h components/qdesigner_components_global.h extension/default_extensionfactory.h extension/extension.h extension/extension_global.h extension/qextensionmanager.h sdk/abstractactioneditor.h sdk/abstractdnditem.h sdk/abstractformeditor.h sdk/abstractformeditorplugin.h sdk/abstractformwindow.h sdk/abstractformwindowcursor.h sdk/abstractformwindowmanager.h sdk/abstractformwindowtool.h sdk/abstractintegration.h sdk/abstractlanguage.h sdk/abstractmetadatabase.h sdk/abstractnewformwidget.h sdk/abstractobjectinspector.h sdk/abstractoptionspage.h sdk/abstractpromotioninterface.h sdk/abstractpropertyeditor.h sdk/abstractresourcebrowser.h sdk/abstractsettings.h sdk/abstractwidgetbox.h sdk/abstractwidgetdatabase.h sdk/abstractwidgetfactory.h sdk/container.h sdk/dynamicpropertysheet.h sdk/extrainfo.h sdk/layoutdecoration.h sdk/membersheet.h sdk/propertysheet.h sdk/sdk_global.h sdk/taskmenu.h uilib/abstractformbuilder.h uilib/formbuilder.h uilib/uilib_global.h +SYNCQT.GENERATED_HEADER_FILES = QDesignerComponents QExtensionFactory QAbstractExtensionFactory QAbstractExtensionManager QExtensionManager QDesignerActionEditorInterface QDesignerDnDItemInterface QDesignerFormEditorInterface QDesignerFormEditorPluginInterface QDesignerFormWindowInterface QDesignerFormWindowCursorInterface QDesignerFormWindowManagerInterface QDesignerFormWindowToolInterface QDesignerIntegrationInterface QDesignerIntegration QDesignerLanguageExtension QDesignerMetaDataBaseItemInterface QDesignerMetaDataBaseInterface QDesignerNewFormWidgetInterface QDesignerObjectInspectorInterface QDesignerOptionsPageInterface QDesignerPromotionInterface QDesignerPropertyEditorInterface QDesignerResourceBrowserInterface QDesignerSettingsInterface QDesignerWidgetBoxInterface QDesignerWidgetDataBaseItemInterface QDesignerWidgetDataBaseInterface QDesignerWidgetFactoryInterface QDesignerContainerExtension QDesignerDynamicPropertySheetExtension QDesignerExtraInfoExtension QDesignerLayoutDecorationExtension QDesignerMemberSheetExtension QDesignerPropertySheetExtension QDesignerTaskMenuExtension QAbstractFormBuilder QFormBuilder qdesignerexportwidget.h customwidget.h QDesignerExportWidget QDesignerCustomWidgetCollectionInterface QDesignerCustomWidgetInterface qtdesignerversion.h QtDesignerVersion QtDesigner +SYNCQT.PRIVATE_HEADER_FILES = lib_pch.h sdk/abstractdialoggui_p.h sdk/abstractintrospection_p.h shared/actioneditor_p.h shared/actionprovider_p.h shared/actionrepository_p.h shared/codedialog_p.h shared/connectionedit_p.h shared/csshighlighter_p.h shared/deviceprofile_p.h shared/dialoggui_p.h shared/extensionfactory_p.h shared/formlayoutmenu_p.h shared/formwindowbase_p.h shared/grid_p.h shared/gridpanel_p.h shared/htmlhighlighter_p.h shared/iconloader_p.h shared/iconselector_p.h shared/invisible_widget_p.h shared/layout_p.h shared/layoutinfo_p.h shared/metadatabase_p.h shared/morphmenu_p.h shared/newactiondialog_p.h shared/newformwidget_p.h shared/orderdialog_p.h shared/plaintexteditor_p.h shared/plugindialog_p.h shared/pluginmanager_p.h shared/previewconfigurationwidget_p.h shared/previewmanager_p.h shared/promotionmodel_p.h shared/promotiontaskmenu_p.h shared/propertylineedit_p.h shared/qdesigner_command2_p.h shared/qdesigner_command_p.h shared/qdesigner_dnditem_p.h shared/qdesigner_dockwidget_p.h shared/qdesigner_formbuilder_p.h shared/qdesigner_formeditorcommand_p.h shared/qdesigner_formwindowcommand_p.h shared/qdesigner_formwindowmanager_p.h shared/qdesigner_introspection_p.h shared/qdesigner_membersheet_p.h shared/qdesigner_menu_p.h shared/qdesigner_menubar_p.h shared/qdesigner_objectinspector_p.h shared/qdesigner_promotion_p.h shared/qdesigner_promotiondialog_p.h shared/qdesigner_propertycommand_p.h shared/qdesigner_propertyeditor_p.h shared/qdesigner_propertysheet_p.h shared/qdesigner_qsettings_p.h shared/qdesigner_stackedbox_p.h shared/qdesigner_tabwidget_p.h shared/qdesigner_taskmenu_p.h shared/qdesigner_toolbar_p.h shared/qdesigner_toolbox_p.h shared/qdesigner_utils_p.h shared/qdesigner_widget_p.h shared/qdesigner_widgetbox_p.h shared/qdesigner_widgetitem_p.h shared/qlayout_widget_p.h shared/qsimpleresource_p.h shared/qtresourceeditordialog_p.h shared/qtresourcemodel_p.h shared/qtresourceview_p.h shared/rcc_p.h shared/richtexteditor_p.h shared/selectsignaldialog_p.h shared/shared_enums_p.h shared/shared_global_p.h shared/shared_settings_p.h shared/sheet_delegate_p.h shared/signalslotdialog_p.h shared/spacer_widget_p.h shared/stylesheeteditor_p.h shared/textpropertyeditor_p.h shared/widgetdatabase_p.h shared/widgetfactory_p.h shared/zoomwidget_p.h uilib/formbuilderextra_p.h uilib/properties_p.h uilib/resourcebuilder_p.h uilib/textbuilder_p.h uilib/ui4_p.h +SYNCQT.QPA_HEADER_FILES = +SYNCQT.CLEAN_HEADER_FILES = components/qdesigner_components.h components/qdesigner_components_global.h extension/default_extensionfactory.h extension/extension.h extension/extension_global.h extension/qextensionmanager.h sdk/abstractactioneditor.h sdk/abstractdnditem.h sdk/abstractformeditor.h sdk/abstractformeditorplugin.h sdk/abstractformwindow.h sdk/abstractformwindowcursor.h sdk/abstractformwindowmanager.h sdk/abstractformwindowtool.h sdk/abstractintegration.h sdk/abstractlanguage.h sdk/abstractmetadatabase.h sdk/abstractnewformwidget.h sdk/abstractobjectinspector.h sdk/abstractoptionspage.h sdk/abstractpromotioninterface.h sdk/abstractpropertyeditor.h sdk/abstractresourcebrowser.h sdk/abstractsettings.h sdk/abstractwidgetbox.h sdk/abstractwidgetdatabase.h sdk/abstractwidgetfactory.h sdk/container.h sdk/dynamicpropertysheet.h sdk/extrainfo.h sdk/layoutdecoration.h sdk/membersheet.h sdk/propertysheet.h sdk/sdk_global.h sdk/taskmenu.h uilib/abstractformbuilder.h uilib/formbuilder.h uilib/uilib_global.h +SYNCQT.INJECTIONS = diff --git a/include/QtDesigner/layoutdecoration.h b/include/QtDesigner/layoutdecoration.h new file mode 100644 index 0000000..6b81d12 --- /dev/null +++ b/include/QtDesigner/layoutdecoration.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/layoutdecoration.h" diff --git a/include/QtDesigner/membersheet.h b/include/QtDesigner/membersheet.h new file mode 100644 index 0000000..c6aa24b --- /dev/null +++ b/include/QtDesigner/membersheet.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/membersheet.h" diff --git a/include/QtDesigner/propertysheet.h b/include/QtDesigner/propertysheet.h new file mode 100644 index 0000000..e99b3be --- /dev/null +++ b/include/QtDesigner/propertysheet.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/propertysheet.h" diff --git a/include/QtDesigner/qdesigner_components.h b/include/QtDesigner/qdesigner_components.h new file mode 100644 index 0000000..8f7309a --- /dev/null +++ b/include/QtDesigner/qdesigner_components.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/components/qdesigner_components.h" diff --git a/include/QtDesigner/qdesigner_components_global.h b/include/QtDesigner/qdesigner_components_global.h new file mode 100644 index 0000000..2bffda6 --- /dev/null +++ b/include/QtDesigner/qdesigner_components_global.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/components/qdesigner_components_global.h" diff --git a/include/QtDesigner/qdesignerexportwidget.h b/include/QtDesigner/qdesignerexportwidget.h new file mode 100644 index 0000000..42137d9 --- /dev/null +++ b/include/QtDesigner/qdesignerexportwidget.h @@ -0,0 +1,12 @@ +#ifndef DEPRECATED_HEADER_QtDesigner_qdesignerexportwidget_h +#define DEPRECATED_HEADER_QtDesigner_qdesignerexportwidget_h +#if defined(__GNUC__) +# warning Header is deprecated. Please include instead. +#elif defined(_MSC_VER) +# pragma message ("Header is deprecated. Please include instead.") +#endif +#include +#if 0 +#pragma qt_no_master_include +#endif +#endif diff --git a/include/QtDesigner/qextensionmanager.h b/include/QtDesigner/qextensionmanager.h new file mode 100644 index 0000000..2a7d752 --- /dev/null +++ b/include/QtDesigner/qextensionmanager.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/extension/qextensionmanager.h" diff --git a/include/QtDesigner/qtdesignerversion.h b/include/QtDesigner/qtdesignerversion.h new file mode 100644 index 0000000..51ce24b --- /dev/null +++ b/include/QtDesigner/qtdesignerversion.h @@ -0,0 +1,9 @@ +/* This file was generated by syncqt. */ +#ifndef QT_QTDESIGNER_VERSION_H +#define QT_QTDESIGNER_VERSION_H + +#define QTDESIGNER_VERSION_STR "6.4.2" + +#define QTDESIGNER_VERSION 0x060402 + +#endif // QT_QTDESIGNER_VERSION_H diff --git a/include/QtDesigner/sdk_global.h b/include/QtDesigner/sdk_global.h new file mode 100644 index 0000000..b05842d --- /dev/null +++ b/include/QtDesigner/sdk_global.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/sdk_global.h" diff --git a/include/QtDesigner/taskmenu.h b/include/QtDesigner/taskmenu.h new file mode 100644 index 0000000..1306e87 --- /dev/null +++ b/include/QtDesigner/taskmenu.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/sdk/taskmenu.h" diff --git a/include/QtDesigner/uilib_global.h b/include/QtDesigner/uilib_global.h new file mode 100644 index 0000000..4f23b52 --- /dev/null +++ b/include/QtDesigner/uilib_global.h @@ -0,0 +1 @@ +#include "../../src/designer/src/lib/uilib/uilib_global.h" diff --git a/include/QtDesignerComponents/6.4.2/QtDesignerComponents/private/lib_pch.h b/include/QtDesignerComponents/6.4.2/QtDesignerComponents/private/lib_pch.h new file mode 100644 index 0000000..ea41a8b --- /dev/null +++ b/include/QtDesignerComponents/6.4.2/QtDesignerComponents/private/lib_pch.h @@ -0,0 +1 @@ +#include "../../../../../src/designer/src/components/lib/lib_pch.h" diff --git a/include/QtDesignerComponents/QtDesignerComponents b/include/QtDesignerComponents/QtDesignerComponents new file mode 100644 index 0000000..416d18f --- /dev/null +++ b/include/QtDesignerComponents/QtDesignerComponents @@ -0,0 +1,5 @@ +#ifndef QT_QTDESIGNERCOMPONENTS_MODULE_H +#define QT_QTDESIGNERCOMPONENTS_MODULE_H +#include +#include "qtdesignercomponentsversion.h" +#endif diff --git a/include/QtDesignerComponents/QtDesignerComponentsVersion b/include/QtDesignerComponents/QtDesignerComponentsVersion new file mode 100644 index 0000000..dad6e54 --- /dev/null +++ b/include/QtDesignerComponents/QtDesignerComponentsVersion @@ -0,0 +1 @@ +#include "qtdesignercomponentsversion.h" diff --git a/include/QtDesignerComponents/headers.pri b/include/QtDesignerComponents/headers.pri new file mode 100644 index 0000000..0d39060 --- /dev/null +++ b/include/QtDesignerComponents/headers.pri @@ -0,0 +1,6 @@ +SYNCQT.HEADER_FILES = +SYNCQT.GENERATED_HEADER_FILES = qtdesignercomponentsversion.h QtDesignerComponentsVersion QtDesignerComponents +SYNCQT.PRIVATE_HEADER_FILES = lib_pch.h +SYNCQT.QPA_HEADER_FILES = +SYNCQT.CLEAN_HEADER_FILES = +SYNCQT.INJECTIONS = diff --git a/include/QtDesignerComponents/qtdesignercomponentsversion.h b/include/QtDesignerComponents/qtdesignercomponentsversion.h new file mode 100644 index 0000000..24c4b7f --- /dev/null +++ b/include/QtDesignerComponents/qtdesignercomponentsversion.h @@ -0,0 +1,9 @@ +/* This file was generated by syncqt. */ +#ifndef QT_QTDESIGNERCOMPONENTS_VERSION_H +#define QT_QTDESIGNERCOMPONENTS_VERSION_H + +#define QTDESIGNERCOMPONENTS_VERSION_STR "6.4.2" + +#define QTDESIGNERCOMPONENTS_VERSION 0x060402 + +#endif // QT_QTDESIGNERCOMPONENTS_VERSION_H diff --git a/include/QtHelp/6.4.2/QtHelp/private/qfilternamedialog_p.h b/include/QtHelp/6.4.2/QtHelp/private/qfilternamedialog_p.h new file mode 100644 index 0000000..ef2e6dd --- /dev/null +++ b/include/QtHelp/6.4.2/QtHelp/private/qfilternamedialog_p.h @@ -0,0 +1 @@ +#include "../../../../../src/assistant/help/qfilternamedialog_p.h" diff --git a/include/QtHelp/6.4.2/QtHelp/private/qhelpcollectionhandler_p.h b/include/QtHelp/6.4.2/QtHelp/private/qhelpcollectionhandler_p.h new file mode 100644 index 0000000..234161a --- /dev/null +++ b/include/QtHelp/6.4.2/QtHelp/private/qhelpcollectionhandler_p.h @@ -0,0 +1 @@ +#include "../../../../../src/assistant/help/qhelpcollectionhandler_p.h" diff --git a/include/QtHelp/6.4.2/QtHelp/private/qhelpdbreader_p.h b/include/QtHelp/6.4.2/QtHelp/private/qhelpdbreader_p.h new file mode 100644 index 0000000..95dbea1 --- /dev/null +++ b/include/QtHelp/6.4.2/QtHelp/private/qhelpdbreader_p.h @@ -0,0 +1 @@ +#include "../../../../../src/assistant/help/qhelpdbreader_p.h" diff --git a/include/QtHelp/6.4.2/QtHelp/private/qhelpengine_p.h b/include/QtHelp/6.4.2/QtHelp/private/qhelpengine_p.h new file mode 100644 index 0000000..075a6ee --- /dev/null +++ b/include/QtHelp/6.4.2/QtHelp/private/qhelpengine_p.h @@ -0,0 +1 @@ +#include "../../../../../src/assistant/help/qhelpengine_p.h" diff --git a/include/QtHelp/6.4.2/QtHelp/private/qhelpfiltersettings_p.h b/include/QtHelp/6.4.2/QtHelp/private/qhelpfiltersettings_p.h new file mode 100644 index 0000000..be6541d --- /dev/null +++ b/include/QtHelp/6.4.2/QtHelp/private/qhelpfiltersettings_p.h @@ -0,0 +1 @@ +#include "../../../../../src/assistant/help/qhelpfiltersettings_p.h" diff --git a/include/QtHelp/6.4.2/QtHelp/private/qhelpsearchindexreader_default_p.h b/include/QtHelp/6.4.2/QtHelp/private/qhelpsearchindexreader_default_p.h new file mode 100644 index 0000000..8440dd5 --- /dev/null +++ b/include/QtHelp/6.4.2/QtHelp/private/qhelpsearchindexreader_default_p.h @@ -0,0 +1 @@ +#include "../../../../../src/assistant/help/qhelpsearchindexreader_default_p.h" diff --git a/include/QtHelp/6.4.2/QtHelp/private/qhelpsearchindexreader_p.h b/include/QtHelp/6.4.2/QtHelp/private/qhelpsearchindexreader_p.h new file mode 100644 index 0000000..82d7c60 --- /dev/null +++ b/include/QtHelp/6.4.2/QtHelp/private/qhelpsearchindexreader_p.h @@ -0,0 +1 @@ +#include "../../../../../src/assistant/help/qhelpsearchindexreader_p.h" diff --git a/include/QtHelp/6.4.2/QtHelp/private/qhelpsearchindexwriter_default_p.h b/include/QtHelp/6.4.2/QtHelp/private/qhelpsearchindexwriter_default_p.h new file mode 100644 index 0000000..900324f --- /dev/null +++ b/include/QtHelp/6.4.2/QtHelp/private/qhelpsearchindexwriter_default_p.h @@ -0,0 +1 @@ +#include "../../../../../src/assistant/help/qhelpsearchindexwriter_default_p.h" diff --git a/include/QtHelp/6.4.2/QtHelp/private/qoptionswidget_p.h b/include/QtHelp/6.4.2/QtHelp/private/qoptionswidget_p.h new file mode 100644 index 0000000..4108012 --- /dev/null +++ b/include/QtHelp/6.4.2/QtHelp/private/qoptionswidget_p.h @@ -0,0 +1 @@ +#include "../../../../../src/assistant/help/qoptionswidget_p.h" diff --git a/include/QtHelp/QCompressedHelpInfo b/include/QtHelp/QCompressedHelpInfo new file mode 100644 index 0000000..90881d8 --- /dev/null +++ b/include/QtHelp/QCompressedHelpInfo @@ -0,0 +1 @@ +#include "qcompressedhelpinfo.h" diff --git a/include/QtHelp/QHelpContentItem b/include/QtHelp/QHelpContentItem new file mode 100644 index 0000000..07e3570 --- /dev/null +++ b/include/QtHelp/QHelpContentItem @@ -0,0 +1 @@ +#include "qhelpcontentwidget.h" diff --git a/include/QtHelp/QHelpContentModel b/include/QtHelp/QHelpContentModel new file mode 100644 index 0000000..07e3570 --- /dev/null +++ b/include/QtHelp/QHelpContentModel @@ -0,0 +1 @@ +#include "qhelpcontentwidget.h" diff --git a/include/QtHelp/QHelpContentWidget b/include/QtHelp/QHelpContentWidget new file mode 100644 index 0000000..07e3570 --- /dev/null +++ b/include/QtHelp/QHelpContentWidget @@ -0,0 +1 @@ +#include "qhelpcontentwidget.h" diff --git a/include/QtHelp/QHelpEngine b/include/QtHelp/QHelpEngine new file mode 100644 index 0000000..8c0df22 --- /dev/null +++ b/include/QtHelp/QHelpEngine @@ -0,0 +1 @@ +#include "qhelpengine.h" diff --git a/include/QtHelp/QHelpEngineCore b/include/QtHelp/QHelpEngineCore new file mode 100644 index 0000000..e0e68b3 --- /dev/null +++ b/include/QtHelp/QHelpEngineCore @@ -0,0 +1 @@ +#include "qhelpenginecore.h" diff --git a/include/QtHelp/QHelpFilterData b/include/QtHelp/QHelpFilterData new file mode 100644 index 0000000..1cc2afd --- /dev/null +++ b/include/QtHelp/QHelpFilterData @@ -0,0 +1 @@ +#include "qhelpfilterdata.h" diff --git a/include/QtHelp/QHelpFilterEngine b/include/QtHelp/QHelpFilterEngine new file mode 100644 index 0000000..40cd05d --- /dev/null +++ b/include/QtHelp/QHelpFilterEngine @@ -0,0 +1 @@ +#include "qhelpfilterengine.h" diff --git a/include/QtHelp/QHelpFilterSettingsWidget b/include/QtHelp/QHelpFilterSettingsWidget new file mode 100644 index 0000000..369ea60 --- /dev/null +++ b/include/QtHelp/QHelpFilterSettingsWidget @@ -0,0 +1 @@ +#include "qhelpfiltersettingswidget.h" diff --git a/include/QtHelp/QHelpGlobal b/include/QtHelp/QHelpGlobal new file mode 100644 index 0000000..a7ac775 --- /dev/null +++ b/include/QtHelp/QHelpGlobal @@ -0,0 +1 @@ +#include "qhelp_global.h" diff --git a/include/QtHelp/QHelpIndexModel b/include/QtHelp/QHelpIndexModel new file mode 100644 index 0000000..dafc86d --- /dev/null +++ b/include/QtHelp/QHelpIndexModel @@ -0,0 +1 @@ +#include "qhelpindexwidget.h" diff --git a/include/QtHelp/QHelpIndexWidget b/include/QtHelp/QHelpIndexWidget new file mode 100644 index 0000000..dafc86d --- /dev/null +++ b/include/QtHelp/QHelpIndexWidget @@ -0,0 +1 @@ +#include "qhelpindexwidget.h" diff --git a/include/QtHelp/QHelpLink b/include/QtHelp/QHelpLink new file mode 100644 index 0000000..b76fba7 --- /dev/null +++ b/include/QtHelp/QHelpLink @@ -0,0 +1 @@ +#include "qhelplink.h" diff --git a/include/QtHelp/QHelpSearchEngine b/include/QtHelp/QHelpSearchEngine new file mode 100644 index 0000000..5f5637e --- /dev/null +++ b/include/QtHelp/QHelpSearchEngine @@ -0,0 +1 @@ +#include "qhelpsearchengine.h" diff --git a/include/QtHelp/QHelpSearchQuery b/include/QtHelp/QHelpSearchQuery new file mode 100644 index 0000000..5f5637e --- /dev/null +++ b/include/QtHelp/QHelpSearchQuery @@ -0,0 +1 @@ +#include "qhelpsearchengine.h" diff --git a/include/QtHelp/QHelpSearchQueryWidget b/include/QtHelp/QHelpSearchQueryWidget new file mode 100644 index 0000000..653ef56 --- /dev/null +++ b/include/QtHelp/QHelpSearchQueryWidget @@ -0,0 +1 @@ +#include "qhelpsearchquerywidget.h" diff --git a/include/QtHelp/QHelpSearchResult b/include/QtHelp/QHelpSearchResult new file mode 100644 index 0000000..5f5637e --- /dev/null +++ b/include/QtHelp/QHelpSearchResult @@ -0,0 +1 @@ +#include "qhelpsearchengine.h" diff --git a/include/QtHelp/QHelpSearchResultWidget b/include/QtHelp/QHelpSearchResultWidget new file mode 100644 index 0000000..a008ae6 --- /dev/null +++ b/include/QtHelp/QHelpSearchResultWidget @@ -0,0 +1 @@ +#include "qhelpsearchresultwidget.h" diff --git a/include/QtHelp/QtHelp b/include/QtHelp/QtHelp new file mode 100644 index 0000000..bab0129 --- /dev/null +++ b/include/QtHelp/QtHelp @@ -0,0 +1,17 @@ +#ifndef QT_QTHELP_MODULE_H +#define QT_QTHELP_MODULE_H +#include +#include "qcompressedhelpinfo.h" +#include "qhelpcontentwidget.h" +#include "qhelpengine.h" +#include "qhelpenginecore.h" +#include "qhelpfilterdata.h" +#include "qhelpfilterengine.h" +#include "qhelpfiltersettingswidget.h" +#include "qhelpindexwidget.h" +#include "qhelplink.h" +#include "qhelpsearchengine.h" +#include "qhelpsearchquerywidget.h" +#include "qhelpsearchresultwidget.h" +#include "qthelpversion.h" +#endif diff --git a/include/QtHelp/QtHelpVersion b/include/QtHelp/QtHelpVersion new file mode 100644 index 0000000..295ef5e --- /dev/null +++ b/include/QtHelp/QtHelpVersion @@ -0,0 +1 @@ +#include "qthelpversion.h" diff --git a/include/QtHelp/headers.pri b/include/QtHelp/headers.pri new file mode 100644 index 0000000..b30c1d3 --- /dev/null +++ b/include/QtHelp/headers.pri @@ -0,0 +1,6 @@ +SYNCQT.HEADER_FILES = qcompressedhelpinfo.h qhelp_global.h qhelpcontentwidget.h qhelpengine.h qhelpenginecore.h qhelpfilterdata.h qhelpfilterengine.h qhelpfiltersettingswidget.h qhelpindexwidget.h qhelplink.h qhelpsearchengine.h qhelpsearchquerywidget.h qhelpsearchresultwidget.h +SYNCQT.GENERATED_HEADER_FILES = QCompressedHelpInfo QHelpGlobal QHelpContentItem QHelpContentModel QHelpContentWidget QHelpEngine QHelpEngineCore QHelpFilterData QHelpFilterEngine QHelpFilterSettingsWidget QHelpIndexModel QHelpIndexWidget QHelpLink QHelpSearchQuery QHelpSearchResult QHelpSearchEngine QHelpSearchQueryWidget QHelpSearchResultWidget qthelpversion.h QtHelpVersion QtHelp +SYNCQT.PRIVATE_HEADER_FILES = qfilternamedialog_p.h qhelpcollectionhandler_p.h qhelpdbreader_p.h qhelpengine_p.h qhelpfiltersettings_p.h qhelpsearchindexreader_default_p.h qhelpsearchindexreader_p.h qhelpsearchindexwriter_default_p.h qoptionswidget_p.h +SYNCQT.QPA_HEADER_FILES = +SYNCQT.CLEAN_HEADER_FILES = qcompressedhelpinfo.h qhelp_global.h qhelpcontentwidget.h qhelpengine.h qhelpenginecore.h qhelpfilterdata.h qhelpfilterengine.h qhelpfiltersettingswidget.h qhelpindexwidget.h qhelplink.h qhelpsearchengine.h qhelpsearchquerywidget.h qhelpsearchresultwidget.h +SYNCQT.INJECTIONS = diff --git a/include/QtHelp/qcompressedhelpinfo.h b/include/QtHelp/qcompressedhelpinfo.h new file mode 100644 index 0000000..30c0729 --- /dev/null +++ b/include/QtHelp/qcompressedhelpinfo.h @@ -0,0 +1 @@ +#include "../../src/assistant/help/qcompressedhelpinfo.h" diff --git a/include/QtHelp/qhelp_global.h b/include/QtHelp/qhelp_global.h new file mode 100644 index 0000000..df37255 --- /dev/null +++ b/include/QtHelp/qhelp_global.h @@ -0,0 +1 @@ +#include "../../src/assistant/help/qhelp_global.h" diff --git a/include/QtHelp/qhelpcontentwidget.h b/include/QtHelp/qhelpcontentwidget.h new file mode 100644 index 0000000..23ab1cf --- /dev/null +++ b/include/QtHelp/qhelpcontentwidget.h @@ -0,0 +1 @@ +#include "../../src/assistant/help/qhelpcontentwidget.h" diff --git a/include/QtHelp/qhelpengine.h b/include/QtHelp/qhelpengine.h new file mode 100644 index 0000000..850d169 --- /dev/null +++ b/include/QtHelp/qhelpengine.h @@ -0,0 +1 @@ +#include "../../src/assistant/help/qhelpengine.h" diff --git a/include/QtHelp/qhelpenginecore.h b/include/QtHelp/qhelpenginecore.h new file mode 100644 index 0000000..4026e77 --- /dev/null +++ b/include/QtHelp/qhelpenginecore.h @@ -0,0 +1 @@ +#include "../../src/assistant/help/qhelpenginecore.h" diff --git a/include/QtHelp/qhelpfilterdata.h b/include/QtHelp/qhelpfilterdata.h new file mode 100644 index 0000000..b20f36e --- /dev/null +++ b/include/QtHelp/qhelpfilterdata.h @@ -0,0 +1 @@ +#include "../../src/assistant/help/qhelpfilterdata.h" diff --git a/include/QtHelp/qhelpfilterengine.h b/include/QtHelp/qhelpfilterengine.h new file mode 100644 index 0000000..ca7dd00 --- /dev/null +++ b/include/QtHelp/qhelpfilterengine.h @@ -0,0 +1 @@ +#include "../../src/assistant/help/qhelpfilterengine.h" diff --git a/include/QtHelp/qhelpfiltersettingswidget.h b/include/QtHelp/qhelpfiltersettingswidget.h new file mode 100644 index 0000000..f19a757 --- /dev/null +++ b/include/QtHelp/qhelpfiltersettingswidget.h @@ -0,0 +1 @@ +#include "../../src/assistant/help/qhelpfiltersettingswidget.h" diff --git a/include/QtHelp/qhelpindexwidget.h b/include/QtHelp/qhelpindexwidget.h new file mode 100644 index 0000000..76a0a1f --- /dev/null +++ b/include/QtHelp/qhelpindexwidget.h @@ -0,0 +1 @@ +#include "../../src/assistant/help/qhelpindexwidget.h" diff --git a/include/QtHelp/qhelplink.h b/include/QtHelp/qhelplink.h new file mode 100644 index 0000000..33e5cba --- /dev/null +++ b/include/QtHelp/qhelplink.h @@ -0,0 +1 @@ +#include "../../src/assistant/help/qhelplink.h" diff --git a/include/QtHelp/qhelpsearchengine.h b/include/QtHelp/qhelpsearchengine.h new file mode 100644 index 0000000..10ca604 --- /dev/null +++ b/include/QtHelp/qhelpsearchengine.h @@ -0,0 +1 @@ +#include "../../src/assistant/help/qhelpsearchengine.h" diff --git a/include/QtHelp/qhelpsearchquerywidget.h b/include/QtHelp/qhelpsearchquerywidget.h new file mode 100644 index 0000000..86c7994 --- /dev/null +++ b/include/QtHelp/qhelpsearchquerywidget.h @@ -0,0 +1 @@ +#include "../../src/assistant/help/qhelpsearchquerywidget.h" diff --git a/include/QtHelp/qhelpsearchresultwidget.h b/include/QtHelp/qhelpsearchresultwidget.h new file mode 100644 index 0000000..8c46c83 --- /dev/null +++ b/include/QtHelp/qhelpsearchresultwidget.h @@ -0,0 +1 @@ +#include "../../src/assistant/help/qhelpsearchresultwidget.h" diff --git a/include/QtHelp/qthelpversion.h b/include/QtHelp/qthelpversion.h new file mode 100644 index 0000000..f173b55 --- /dev/null +++ b/include/QtHelp/qthelpversion.h @@ -0,0 +1,9 @@ +/* This file was generated by syncqt. */ +#ifndef QT_QTHELP_VERSION_H +#define QT_QTHELP_VERSION_H + +#define QTHELP_VERSION_STR "6.4.2" + +#define QTHELP_VERSION 0x060402 + +#endif // QT_QTHELP_VERSION_H diff --git a/include/QtTools/QtTools b/include/QtTools/QtTools new file mode 100644 index 0000000..81885c0 --- /dev/null +++ b/include/QtTools/QtTools @@ -0,0 +1,5 @@ +#ifndef QT_QTTOOLS_MODULE_H +#define QT_QTTOOLS_MODULE_H +#include +#include "qttoolsversion.h" +#endif diff --git a/include/QtTools/QtToolsVersion b/include/QtTools/QtToolsVersion new file mode 100644 index 0000000..3b676aa --- /dev/null +++ b/include/QtTools/QtToolsVersion @@ -0,0 +1 @@ +#include "qttoolsversion.h" diff --git a/include/QtTools/headers.pri b/include/QtTools/headers.pri new file mode 100644 index 0000000..3799018 --- /dev/null +++ b/include/QtTools/headers.pri @@ -0,0 +1,6 @@ +SYNCQT.HEADER_FILES = +SYNCQT.GENERATED_HEADER_FILES = qttoolsversion.h QtToolsVersion QtTools +SYNCQT.PRIVATE_HEADER_FILES = +SYNCQT.QPA_HEADER_FILES = +SYNCQT.CLEAN_HEADER_FILES = +SYNCQT.INJECTIONS = diff --git a/include/QtTools/qttoolsversion.h b/include/QtTools/qttoolsversion.h new file mode 100644 index 0000000..57fa54c --- /dev/null +++ b/include/QtTools/qttoolsversion.h @@ -0,0 +1,9 @@ +/* This file was generated by syncqt. */ +#ifndef QT_QTTOOLS_VERSION_H +#define QT_QTTOOLS_VERSION_H + +#define QTTOOLS_VERSION_STR "6.4.2" + +#define QTTOOLS_VERSION 0x060402 + +#endif // QT_QTTOOLS_VERSION_H diff --git a/include/QtUiPlugin/QDesignerCustomWidgetCollectionInterface b/include/QtUiPlugin/QDesignerCustomWidgetCollectionInterface new file mode 100644 index 0000000..b08a3c9 --- /dev/null +++ b/include/QtUiPlugin/QDesignerCustomWidgetCollectionInterface @@ -0,0 +1 @@ +#include "customwidget.h" diff --git a/include/QtUiPlugin/QDesignerCustomWidgetInterface b/include/QtUiPlugin/QDesignerCustomWidgetInterface new file mode 100644 index 0000000..b08a3c9 --- /dev/null +++ b/include/QtUiPlugin/QDesignerCustomWidgetInterface @@ -0,0 +1 @@ +#include "customwidget.h" diff --git a/include/QtUiPlugin/QDesignerExportWidget b/include/QtUiPlugin/QDesignerExportWidget new file mode 100644 index 0000000..6f468e6 --- /dev/null +++ b/include/QtUiPlugin/QDesignerExportWidget @@ -0,0 +1 @@ +#include "qdesignerexportwidget.h" diff --git a/include/QtUiPlugin/QtUiPlugin b/include/QtUiPlugin/QtUiPlugin new file mode 100644 index 0000000..7a02d06 --- /dev/null +++ b/include/QtUiPlugin/QtUiPlugin @@ -0,0 +1,7 @@ +#ifndef QT_QTUIPLUGIN_MODULE_H +#define QT_QTUIPLUGIN_MODULE_H +#include +#include "customwidget.h" +#include "qdesignerexportwidget.h" +#include "qtuipluginversion.h" +#endif diff --git a/include/QtUiPlugin/QtUiPluginVersion b/include/QtUiPlugin/QtUiPluginVersion new file mode 100644 index 0000000..f565207 --- /dev/null +++ b/include/QtUiPlugin/QtUiPluginVersion @@ -0,0 +1 @@ +#include "qtuipluginversion.h" diff --git a/include/QtUiPlugin/customwidget.h b/include/QtUiPlugin/customwidget.h new file mode 100644 index 0000000..f5ba487 --- /dev/null +++ b/include/QtUiPlugin/customwidget.h @@ -0,0 +1 @@ +#include "../../src/uiplugin/customwidget.h" diff --git a/include/QtUiPlugin/headers.pri b/include/QtUiPlugin/headers.pri new file mode 100644 index 0000000..1a0588a --- /dev/null +++ b/include/QtUiPlugin/headers.pri @@ -0,0 +1,6 @@ +SYNCQT.HEADER_FILES = customwidget.h qdesignerexportwidget.h +SYNCQT.GENERATED_HEADER_FILES = QDesignerCustomWidgetInterface QDesignerCustomWidgetCollectionInterface QDesignerExportWidget qtuipluginversion.h QtUiPluginVersion QtUiPlugin +SYNCQT.PRIVATE_HEADER_FILES = +SYNCQT.QPA_HEADER_FILES = +SYNCQT.CLEAN_HEADER_FILES = customwidget.h qdesignerexportwidget.h +SYNCQT.INJECTIONS = diff --git a/include/QtUiPlugin/qdesignerexportwidget.h b/include/QtUiPlugin/qdesignerexportwidget.h new file mode 100644 index 0000000..649c60c --- /dev/null +++ b/include/QtUiPlugin/qdesignerexportwidget.h @@ -0,0 +1 @@ +#include "../../src/uiplugin/qdesignerexportwidget.h" diff --git a/include/QtUiPlugin/qtuipluginversion.h b/include/QtUiPlugin/qtuipluginversion.h new file mode 100644 index 0000000..e3a106b --- /dev/null +++ b/include/QtUiPlugin/qtuipluginversion.h @@ -0,0 +1,9 @@ +/* This file was generated by syncqt. */ +#ifndef QT_QTUIPLUGIN_VERSION_H +#define QT_QTUIPLUGIN_VERSION_H + +#define QTUIPLUGIN_VERSION_STR "6.4.2" + +#define QTUIPLUGIN_VERSION 0x060402 + +#endif // QT_QTUIPLUGIN_VERSION_H diff --git a/include/QtUiTools/6.4.2/QtUiTools/private/quiloader_p.h b/include/QtUiTools/6.4.2/QtUiTools/private/quiloader_p.h new file mode 100644 index 0000000..377331f --- /dev/null +++ b/include/QtUiTools/6.4.2/QtUiTools/private/quiloader_p.h @@ -0,0 +1 @@ +#include "../../../../../src/uitools/quiloader_p.h" diff --git a/include/QtUiTools/QUiLoader b/include/QtUiTools/QUiLoader new file mode 100644 index 0000000..1aefe0c --- /dev/null +++ b/include/QtUiTools/QUiLoader @@ -0,0 +1 @@ +#include "quiloader.h" diff --git a/include/QtUiTools/QtUiTools b/include/QtUiTools/QtUiTools new file mode 100644 index 0000000..67a2e91 --- /dev/null +++ b/include/QtUiTools/QtUiTools @@ -0,0 +1,7 @@ +#ifndef QT_QTUITOOLS_MODULE_H +#define QT_QTUITOOLS_MODULE_H +#include +#include "qtuitoolsglobal.h" +#include "quiloader.h" +#include "qtuitoolsversion.h" +#endif diff --git a/include/QtUiTools/QtUiToolsVersion b/include/QtUiTools/QtUiToolsVersion new file mode 100644 index 0000000..789bc67 --- /dev/null +++ b/include/QtUiTools/QtUiToolsVersion @@ -0,0 +1 @@ +#include "qtuitoolsversion.h" diff --git a/include/QtUiTools/headers.pri b/include/QtUiTools/headers.pri new file mode 100644 index 0000000..1f4fdcc --- /dev/null +++ b/include/QtUiTools/headers.pri @@ -0,0 +1,6 @@ +SYNCQT.HEADER_FILES = qtuitoolsglobal.h quiloader.h +SYNCQT.GENERATED_HEADER_FILES = QUiLoader qtuitoolsversion.h QtUiToolsVersion QtUiTools +SYNCQT.PRIVATE_HEADER_FILES = quiloader_p.h +SYNCQT.QPA_HEADER_FILES = +SYNCQT.CLEAN_HEADER_FILES = qtuitoolsglobal.h quiloader.h +SYNCQT.INJECTIONS = diff --git a/include/QtUiTools/qtuitoolsglobal.h b/include/QtUiTools/qtuitoolsglobal.h new file mode 100644 index 0000000..b33632d --- /dev/null +++ b/include/QtUiTools/qtuitoolsglobal.h @@ -0,0 +1 @@ +#include "../../src/uitools/qtuitoolsglobal.h" diff --git a/include/QtUiTools/qtuitoolsversion.h b/include/QtUiTools/qtuitoolsversion.h new file mode 100644 index 0000000..ad9cd64 --- /dev/null +++ b/include/QtUiTools/qtuitoolsversion.h @@ -0,0 +1,9 @@ +/* This file was generated by syncqt. */ +#ifndef QT_QTUITOOLS_VERSION_H +#define QT_QTUITOOLS_VERSION_H + +#define QTUITOOLS_VERSION_STR "6.4.2" + +#define QTUITOOLS_VERSION 0x060402 + +#endif // QT_QTUITOOLS_VERSION_H diff --git a/include/QtUiTools/quiloader.h b/include/QtUiTools/quiloader.h new file mode 100644 index 0000000..9a8d0be --- /dev/null +++ b/include/QtUiTools/quiloader.h @@ -0,0 +1 @@ +#include "../../src/uitools/quiloader.h" diff --git a/qt_cmdline.cmake b/qt_cmdline.cmake new file mode 100644 index 0000000..e69de29 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..b42cd49 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,60 @@ +# Generated from src.pro. + +# special case begin +# Need to stop building these apps by default because they would fail +# in device_and_simulator and webassembly builds. +if(IOS OR WASM) + set(_qt_additional_tools_to_exclude qtplugininfo) +endif() +# special case end + +qt_exclude_tool_directories_from_default_target( + distancefieldgenerator + pixeltool + ${_qt_additional_tools_to_exclude} # special case +) + + +# special case begin +# Evaluate features to decide what to build. +# The config files will be written in the src/global module. +qt_feature_evaluate_features("${CMAKE_CURRENT_SOURCE_DIR}/../configure.cmake") +# special case end + +if(TARGET Qt::Widgets) + add_subdirectory(uiplugin) + add_subdirectory(uitools) +endif() + +add_subdirectory(global) # special case add as first directory +if(QT_FEATURE_linguist) + add_subdirectory(linguist) +endif() +# add_subdirectory(global) # special case remove +if(QT_FEATURE_designer) + add_subdirectory(designer) +endif() +if(QT_FEATURE_pixeltool) + add_subdirectory(pixeltool) +endif() +if(QT_FEATURE_assistant) + add_subdirectory(assistant) +endif() +if(QT_FEATURE_distancefieldgenerator) + add_subdirectory(distancefieldgenerator) +endif() +if(QT_FEATURE_qtattributionsscanner) + add_subdirectory(qtattributionsscanner) +endif() +if(QT_FEATURE_qtplugininfo) + add_subdirectory(qtplugininfo) +endif() +if(QT_FEATURE_clang AND QT_FEATURE_commandlineparser AND QT_FEATURE_thread) + add_subdirectory(qdoc) +endif() +if(QT_FEATURE_qdbus) + add_subdirectory(qdbus) +endif() +if(QT_FEATURE_qtdiag) + add_subdirectory(qtdiag) +endif() diff --git a/src/assistant/CMakeLists.txt b/src/assistant/CMakeLists.txt new file mode 100644 index 0000000..868eefd --- /dev/null +++ b/src/assistant/CMakeLists.txt @@ -0,0 +1,53 @@ +# Generated from assistant.pro. + +# special case begin +if(NOT TARGET Qt::Sql OR NOT TARGET Qt::PrintSupport) + return() +endif() +# special case end + +qt_exclude_tool_directories_from_default_target( + assistant + qhelpgenerator +) + +if(NOT TARGET Qt::Sql) + return() +endif() +if(NOT QT_FEATURE_assistant) + return() +endif() +add_subdirectory(help) +add_subdirectory(assistant) +add_subdirectory(qhelpgenerator) + +set(QLITEHTML_BIN_PATH ${INSTALL_BINDIR}) +set(QLITEHTML_LIBRARY_PATH ${INSTALL_LIBDIR}) +set(QLITEHTML_LIBRARY_TYPE STATIC) +set(BUILD_SHARED_LIBS OFF) +if(QT_FEATURE_static_runtime AND MSVC) + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") +endif() +add_subdirectory(qlitehtml/src EXCLUDE_FROM_ALL) +if(TARGET qlitehtml) + qt_autogen_tools_initial_setup(qlitehtml) + # The litehtml and gumbo targets will not be available here if they are not built by Qt + # but found in the system, because they are imported only to the subdirectory scope + # where find_package was called. But that's fine, we wouldn't be able to set compiler flags + # on them anyway. + if(TARGET litehtml) + qt_internal_set_exceptions_flags(litehtml OFF) + qt_disable_warnings(litehtml) + endif() + if(TARGET gumbo) + qt_disable_warnings(gumbo) + endif() + qt_disable_warnings(qlitehtml) + qt_handle_multi_config_output_dirs(qlitehtml) + set_target_properties(qlitehtml PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${QT_BUILD_DIR}/${INSTALL_BINDIR}" + LIBRARY_OUTPUT_DIRECTORY "${QT_BUILD_DIR}/${INSTALL_LIBDIR}" + ARCHIVE_OUTPUT_DIRECTORY "${QT_BUILD_DIR}/${INSTALL_LIBDIR}") +else() + message(FATAL_ERROR "qlitehtml not found. Did you run git submodule update --init --recursive?") +endif() diff --git a/src/assistant/assistant/CMakeLists.txt b/src/assistant/assistant/CMakeLists.txt new file mode 100644 index 0000000..69470c5 --- /dev/null +++ b/src/assistant/assistant/CMakeLists.txt @@ -0,0 +1,189 @@ +# Generated from assistant.pro. + +##################################################################### +## assistant App: +##################################################################### + +qt_internal_add_app(assistant + SOURCES + ../../shared/fontpanel/fontpanel.cpp ../../shared/fontpanel/fontpanel.h + ../shared/collectionconfiguration.cpp ../shared/collectionconfiguration.h + aboutdialog.cpp aboutdialog.h + bookmarkdialog.cpp bookmarkdialog.h bookmarkdialog.ui + bookmarkfiltermodel.cpp bookmarkfiltermodel.h + bookmarkitem.cpp bookmarkitem.h + bookmarkmanager.cpp bookmarkmanager.h + bookmarkmanagerwidget.cpp bookmarkmanagerwidget.h bookmarkmanagerwidget.ui + bookmarkmodel.cpp bookmarkmodel.h + bookmarkwidget.ui + centralwidget.cpp centralwidget.h + cmdlineparser.cpp cmdlineparser.h + contentwindow.cpp contentwindow.h + findwidget.cpp findwidget.h + globalactions.cpp globalactions.h + helpbrowsersupport.cpp helpbrowsersupport.h + helpdocsettings.cpp helpdocsettings.h + helpdocsettingswidget.cpp helpdocsettingswidget.h helpdocsettingswidget.ui + helpenginewrapper.cpp helpenginewrapper.h + helpviewer.cpp helpviewer.h helpviewerimpl.cpp helpviewerimpl.h helpviewerimpl_p.h + indexwindow.cpp indexwindow.h + main.cpp + mainwindow.cpp mainwindow.h + openpagesmanager.cpp openpagesmanager.h + openpagesmodel.cpp openpagesmodel.h + openpagesswitcher.cpp openpagesswitcher.h + openpageswidget.cpp openpageswidget.h + preferencesdialog.cpp preferencesdialog.h preferencesdialog.ui + qtdocinstaller.cpp qtdocinstaller.h + remotecontrol.cpp remotecontrol.h + searchwidget.cpp searchwidget.h + topicchooser.cpp topicchooser.h topicchooser.ui + tracer.h + xbelsupport.cpp xbelsupport.h + INCLUDE_DIRECTORIES + ../../shared/fontpanel + PUBLIC_LIBRARIES + Qt::Gui + Qt::Help + Qt::Network + Qt::Sql + Qt::Widgets + Qt::PrintSupport # special case + qlitehtml + ENABLE_AUTOGEN_TOOLS + uic +) + +# Resources: +set(assistant_images_resource_files + "images/assistant-128.png" + "images/assistant.png" + "images/bookmark.png" + "images/closebutton.png" + "images/darkclosebutton.png" + "images/mac/addtab.png" + "images/mac/book.png" + "images/mac/closetab.png" + "images/mac/editcopy.png" + "images/mac/find.png" + "images/mac/home.png" + "images/mac/next.png" + "images/mac/previous.png" + "images/mac/print.png" + "images/mac/resetzoom.png" + "images/mac/synctoc.png" + "images/mac/zoomin.png" + "images/mac/zoomout.png" + "images/win/addtab.png" + "images/win/book.png" + "images/win/closetab.png" + "images/win/editcopy.png" + "images/win/find.png" + "images/win/home.png" + "images/win/next.png" + "images/win/previous.png" + "images/win/print.png" + "images/win/resetzoom.png" + "images/win/synctoc.png" + "images/win/zoomin.png" + "images/win/zoomout.png" + "images/wrap.png" +) + +qt_internal_add_resource(assistant "assistant_images" + PREFIX + "/qt-project.org/assistant" + FILES + ${assistant_images_resource_files} +) + +set_target_properties(assistant PROPERTIES + QT_TARGET_DESCRIPTION "Qt Assistant" +) + +#### Keys ignored in scope 1:.:.:assistant.pro:: +# PROJECTNAME = "Assistant" + +## Scopes: +##################################################################### + +#### Keys ignored in scope 2:.:.:assistant.pro:TARGET Qt::WebKitWidgets AND NOT QT_CONFIG___contains___static: +# BROWSER = "qtwebkit" + +#### Keys ignored in scope 3:.:.:assistant.pro:else: +# BROWSER = "qtextbrowser" + +qt_internal_extend_target(assistant CONDITION TARGET Qt::PrintSupport + PUBLIC_LIBRARIES + Qt::PrintSupport +) + +qt_internal_extend_target(assistant CONDITION BROWSER___equals___qtwebkit + SOURCES + helpviewerimpl_qwv.cpp + DEFINES + BROWSER_QTWEBKIT + PUBLIC_LIBRARIES + Qt::WebKitWidgets +) + +qt_internal_extend_target(assistant CONDITION NOT BROWSER___equals___qtwebkit + SOURCES + helpviewerimpl_qtb.cpp + DEFINES + BROWSER_QTEXTBROWSER +) + +if(WIN32) + set_target_properties(assistant PROPERTIES + QT_TARGET_RC_ICONS "${CMAKE_CURRENT_SOURCE_DIR}/assistant.ico" + ) +endif() + +if(WIN32) + set_target_properties(assistant PROPERTIES + QT_TARGET_VERSION "${PROJECT_VERSION}.0" + ) +endif() + +qt_internal_extend_target(assistant CONDITION WIN32 + SOURCES + stdinlistener_win.cpp stdinlistener_win.h + PUBLIC_LIBRARIES + shell32 +) + +if(UNIX) + set_target_properties(assistant PROPERTIES + QT_TARGET_VERSION "${PROJECT_VERSION}" + ) +endif() + +qt_internal_extend_target(assistant CONDITION UNIX + SOURCES + stdinlistener.cpp stdinlistener.h +) + +if(APPLE) + set_target_properties(assistant PROPERTIES + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info_mac.plist" + MACOSX_BUNDLE TRUE + MACOSX_BUNDLE_ICON_FILE "assistant.icns" + OUTPUT_NAME "Assistant" + ) + set_source_files_properties(assistant.icns PROPERTIES + MACOSX_PACKAGE_LOCATION Resources + ) + target_sources(assistant PRIVATE + assistant.icns + ) + # special case end + # Set values to be replaced in the custom Info_mac.plist. + set(ICON "assistant.icns") + set(EXECUTABLE "Assistant") + # special case end +endif() +qt_internal_add_docs(assistant + doc/qtassistant.qdocconf +) + diff --git a/src/assistant/assistant/Info_mac.plist b/src/assistant/assistant/Info_mac.plist new file mode 100644 index 0000000..cf74d05 --- /dev/null +++ b/src/assistant/assistant/Info_mac.plist @@ -0,0 +1,20 @@ + + + + + NSPrincipalClass + NSApplication + CFBundleIconFile + @ICON@ + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleIdentifier + org.qt-project.assistant + CFBundleExecutable + @EXECUTABLE@ + NSHumanReadableCopyright + (C) 2017 The Qt Company Ltd + + diff --git a/src/assistant/assistant/aboutdialog.cpp b/src/assistant/assistant/aboutdialog.cpp new file mode 100644 index 0000000..2c7ea63 --- /dev/null +++ b/src/assistant/assistant/aboutdialog.cpp @@ -0,0 +1,149 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "aboutdialog.h" + +#include "helpviewer.h" +#include "tracer.h" + +#include + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +AboutLabel::AboutLabel(QWidget *parent) + : QTextBrowser(parent) +{ + TRACE_OBJ + setFrameStyle(QFrame::NoFrame); + QPalette p; + p.setColor(QPalette::Base, p.color(QPalette::Window)); + setPalette(p); +} + +void AboutLabel::setText(const QString &text, const QByteArray &resources) +{ + TRACE_OBJ + QDataStream in(resources); + in >> m_resourceMap; + + QTextBrowser::setText(text); +} + +QSize AboutLabel::minimumSizeHint() const +{ + TRACE_OBJ + QTextDocument *doc = document(); + doc->adjustSize(); + return QSize(int(doc->size().width()), int(doc->size().height())); +} + +QVariant AboutLabel::loadResource(int type, const QUrl &name) +{ + TRACE_OBJ + if (type == 2 || type == 3) { + if (m_resourceMap.contains(name.toString())) { + return m_resourceMap.value(name.toString()); + } + } + return QVariant(); +} + +void AboutLabel::doSetSource(const QUrl &url, QTextDocument::ResourceType type) +{ + TRACE_OBJ + Q_UNUSED(type); + if (url.isValid() && (!HelpViewer::isLocalUrl(url) + || !HelpViewer::canOpenPage(url.path()))) { + if (!QDesktopServices::openUrl(url)) { + QMessageBox::warning(this, tr("Warning"), + tr("Unable to launch external application."), QMessageBox::Close); + } + } +} + +AboutDialog::AboutDialog(QWidget *parent) + : QDialog(parent, Qt::MSWindowsFixedSizeDialogHint | + Qt::WindowTitleHint|Qt::WindowSystemMenuHint) +{ + TRACE_OBJ + m_pixmapLabel = nullptr; + m_aboutLabel = new AboutLabel(); + + m_closeButton = new QPushButton(); + m_closeButton->setText(tr("&Close")); + connect(m_closeButton, &QAbstractButton::clicked, this, &QWidget::close); + + m_layout = new QGridLayout(this); + m_layout->addWidget(m_aboutLabel, 1, 0, 1, -1); + m_layout->addItem(new QSpacerItem(20, 10, QSizePolicy::Minimum, + QSizePolicy::Fixed), 2, 1, 1, 1); + m_layout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding), 3, 0, 1, 1); + m_layout->addWidget(m_closeButton, 3, 1, 1, 1); + m_layout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding), 3, 2, 1, 1); +} + +void AboutDialog::setText(const QString &text, const QByteArray &resources) +{ + TRACE_OBJ + m_aboutLabel->setText(text, resources); + updateSize(); +} + +void AboutDialog::setPixmap(const QPixmap &pixmap) +{ + TRACE_OBJ + if (!m_pixmapLabel) { + m_pixmapLabel = new QLabel(); + m_layout->addWidget(m_pixmapLabel, 0, 0, 1, -1, Qt::AlignCenter); + } + m_pixmapLabel->setPixmap(pixmap); + updateSize(); +} + +QString AboutDialog::documentTitle() const +{ + TRACE_OBJ + return m_aboutLabel->documentTitle(); +} + +void AboutDialog::updateSize() +{ + TRACE_OBJ + auto screen = QGuiApplication::screenAt(QCursor::pos()); + if (!screen) + screen = QGuiApplication::primaryScreen(); + const QSize screenSize = screen->availableSize(); + int limit = qMin(screenSize.width()/2, 500); + +#ifdef Q_OS_MAC + limit = qMin(screenSize.width()/2, 420); +#endif + + layout()->activate(); + int width = layout()->totalMinimumSize().width(); + + if (width > limit) + width = limit; + + QFontMetrics fm(qApp->font("QWorkspaceTitleBar")); + int windowTitleWidth = qMin(fm.horizontalAdvance(windowTitle()) + 50, limit); + if (windowTitleWidth > width) + width = windowTitleWidth; + + layout()->activate(); + int height = (layout()->hasHeightForWidth()) + ? layout()->totalHeightForWidth(width) + : layout()->totalMinimumSize().height(); + setFixedSize(width, height); + QCoreApplication::removePostedEvents(this, QEvent::LayoutRequest); +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/aboutdialog.h b/src/assistant/assistant/aboutdialog.h new file mode 100644 index 0000000..dd3db0c --- /dev/null +++ b/src/assistant/assistant/aboutdialog.h @@ -0,0 +1,57 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef ABOUTDIALOG_H +#define ABOUTDIALOG_H + +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class QLabel; +class QPushButton; +class QGridLayout; + +class AboutLabel : public QTextBrowser +{ + Q_OBJECT + +public: + AboutLabel(QWidget *parent = nullptr); + void setText(const QString &text, const QByteArray &resources); + QSize minimumSizeHint() const override; + +private: + QVariant loadResource(int type, const QUrl &name) override; + + void doSetSource(const QUrl &name, QTextDocument::ResourceType type) override; + + QMap m_resourceMap; +}; + +class AboutDialog : public QDialog +{ + Q_OBJECT + +public: + AboutDialog(QWidget *parent = nullptr); + void setText(const QString &text, const QByteArray &resources); + void setPixmap(const QPixmap &pixmap); + QString documentTitle() const; + +private: + void updateSize(); + + QLabel *m_pixmapLabel; + AboutLabel *m_aboutLabel; + QPushButton *m_closeButton; + QGridLayout *m_layout; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/assistant/assistant/assistant.icns b/src/assistant/assistant/assistant.icns new file mode 100644 index 0000000000000000000000000000000000000000..cf763571bd79cfede41decdc1bb22a1199b7e626 GIT binary patch literal 118925 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

w&^Cabk6uF}~L(Iq$3O-O#;65AX1!q>i z@I$+68tjq^(VOAQ8nr~0bT~D-15dgM1$r;NiXgA=6qujOA1v%DjS>4clYbcKjSq`4 zz-y!qcVBuIq~WE!7WE1>7L>OS{rNSn5i&^_Y?cI$9U<2UOV6K78v93>7~TdzQN}Ri zy94LI3;#ML4P~xYCf=gN&xLM1<*XH7$t!e03Ov*fzgwHKMRAW!D(ndk z8pqhD#ozD{VI6e&MRy{YqjZ0UwONGQP(5S|cYX&%KZL;uOY3XW3&C91;d_g1JLZKq zZ*+vVB2bQ3_80%dY`}2_N>7{JPtYdP@3h?mB0=lNbq_#ei0HJ0(Sc!Kd2(+gkHIbN zSzGlUx9=nWzG$Zt8^&K;0bzJH5eAa-W4SCQo|7UI$5=+^6vbX7!XX&H{y}pv4 zWUF=Cs<%C$US%1G>Wx(T>F;m)3{xL~)}V$u{lQ8efIv^|`f5K(EflU;QQJ1rQr7FY z@Fcm}Op! zw|Kx=x5V3X2i+u54Q_JTs`>IrP=7X^PG6#f-C)wx&^pf5t%L57)hYt;1^E&24c%5$ z!IBIgV*_pih)KI%gU) zB@AX7TH{a*6Y%iCRvesze0@heLt}b_aj3l+f#p-^OjdJ4wlxCNY7!Al5U_!V^pj~C zOt6xEwF%uE;&Kgti#7Rgd|<21zyajL9Y2@0%R)4L4qj6(*c#ryX(M+GiRB zwq}4U46?5NMWpZUp!*6#DML{Iy^7vV0RG^Zibl>M5_^bX=Moy|E|uDHu5%@jW`A!S zuZ$j%@cziidMyri+D_)=zI=ykNU#(y8gOvS5R9_f8@DhT?1V2BkPm;;cGvH&Ft&W5 zTNS>jml%%Kma94dH7@WfLqh20rVyxgJPBiHU)81w-5K+V7ENB-VG0YNb@lq*?sD4Q z+=p?2a?-w`E^BFIQ|;ue7aT%VB_k>34GB44q-~7T+R07yeHV<-oXFt}r+*_4)EeCz zsm-A@)VC(A6dt^Y18%7d*l;=N0hOu5!^e=yHFB@+A9V<10s%6ZD6fLUZbg4J?h*%v z-EBss=A8&WjUQV~4BHAYiTG_ghqn-`C9P-nD2TQn{mxW^i9$8+3ec?nej89MlEvob z3Wdog0M9PrVvWm*|G$s)yQ9-RNxZB=N3{d6g$ufQLtniTXBF~49qqk7 literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/bookmarkdialog.cpp b/src/assistant/assistant/bookmarkdialog.cpp new file mode 100644 index 0000000..e34f7fc --- /dev/null +++ b/src/assistant/assistant/bookmarkdialog.cpp @@ -0,0 +1,197 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "bookmarkdialog.h" +#include "bookmarkfiltermodel.h" +#include "bookmarkitem.h" +#include "bookmarkmodel.h" +#include "helpenginewrapper.h" +#include "tracer.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +BookmarkDialog::BookmarkDialog(BookmarkModel *sourceModel, const QString &title, + const QString &url, QWidget *parent) + : QDialog(parent) + , m_url(url) + , m_title(title) + , bookmarkModel(sourceModel) +{ + TRACE_OBJ + ui.setupUi(this); + + ui.bookmarkEdit->setText(m_title); + ui.newFolderButton->setVisible(false); + ui.buttonBox->button(QDialogButtonBox::Ok)->setDefault(true); + + connect(ui.buttonBox, &QDialogButtonBox::accepted, this, &BookmarkDialog::accepted); + connect(ui.buttonBox, &QDialogButtonBox::rejected, this, &BookmarkDialog::rejected); + connect(ui.newFolderButton, &QAbstractButton::clicked, this, &BookmarkDialog::addFolder); + connect(ui.toolButton, &QAbstractButton::clicked, this, &BookmarkDialog::toolButtonClicked); + connect(ui.bookmarkEdit, &QLineEdit::textChanged, this, &BookmarkDialog::textChanged); + + bookmarkProxyModel = new BookmarkFilterModel(this); + bookmarkProxyModel->setSourceModel(bookmarkModel); + ui.bookmarkFolders->setModel(bookmarkProxyModel); + connect(ui.bookmarkFolders, &QComboBox::currentIndexChanged, + this, QOverload::of(&BookmarkDialog::currentIndexChanged)); + + bookmarkTreeModel = new BookmarkTreeModel(this); + bookmarkTreeModel->setSourceModel(bookmarkModel); + ui.treeView->setModel(bookmarkTreeModel); + + ui.treeView->expandAll(); + ui.treeView->setVisible(false); + ui.treeView->installEventFilter(this); + ui.treeView->viewport()->installEventFilter(this); + ui.treeView->setContextMenuPolicy(Qt::CustomContextMenu); + + connect(ui.treeView, &QWidget::customContextMenuRequested, + this, &BookmarkDialog::customContextMenuRequested); + connect(ui.treeView->selectionModel(), &QItemSelectionModel::currentChanged, + this, QOverload::of(&BookmarkDialog::currentIndexChanged)); + + ui.bookmarkFolders->setCurrentIndex(ui.bookmarkFolders->count() > 1 ? 1 : 0); + + const HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); + if (helpEngine.usesAppFont()) + setFont(helpEngine.appFont()); +} + +BookmarkDialog::~BookmarkDialog() +{ + TRACE_OBJ +} + +bool BookmarkDialog::isRootItem(const QModelIndex &index) const +{ + return !bookmarkTreeModel->parent(index).isValid(); +} + +bool BookmarkDialog::eventFilter(QObject *object, QEvent *event) +{ + TRACE_OBJ + if (object != ui.treeView && object != ui.treeView->viewport()) + return QWidget::eventFilter(object, event); + + if (event->type() == QEvent::KeyPress) { + QKeyEvent *ke = static_cast(event); + switch (ke->key()) { + case Qt::Key_F2: { + const QModelIndex &index = ui.treeView->currentIndex(); + if (!isRootItem(index)) { + bookmarkModel->setItemsEditable(true); + ui.treeView->edit(index); + bookmarkModel->setItemsEditable(false); + } + } break; + default: break; + } + } + + return QObject::eventFilter(object, event); +} + +void BookmarkDialog::currentIndexChanged(int row) +{ + TRACE_OBJ + QModelIndex next = bookmarkProxyModel->index(row, 0, QModelIndex()); + if (next.isValid()) { + next = bookmarkProxyModel->mapToSource(next); + ui.treeView->setCurrentIndex(bookmarkTreeModel->mapFromSource(next)); + } +} + +void BookmarkDialog::currentIndexChanged(const QModelIndex &index) +{ + TRACE_OBJ + const QModelIndex current = bookmarkTreeModel->mapToSource(index); + if (current.isValid()) { + const int row = bookmarkProxyModel->mapFromSource(current).row(); + ui.bookmarkFolders->setCurrentIndex(row); + } +} + +void BookmarkDialog::accepted() +{ + TRACE_OBJ + QModelIndex index = ui.treeView->currentIndex(); + if (index.isValid()) { + index = bookmarkModel->addItem(bookmarkTreeModel->mapToSource(index)); + bookmarkModel->setData(index, DataVector() << m_title << m_url << false); + } else + rejected(); + + accept(); +} + +void BookmarkDialog::rejected() +{ + TRACE_OBJ + for (const QPersistentModelIndex &index : std::as_const(cache)) + bookmarkModel->removeItem(index); + reject(); +} + +void BookmarkDialog::addFolder() +{ + TRACE_OBJ + QModelIndex index = ui.treeView->currentIndex(); + if (index.isValid()) { + index = bookmarkModel->addItem(bookmarkTreeModel->mapToSource(index), + true); + cache.append(index); + + index = bookmarkTreeModel->mapFromSource(index); + if (index.isValid()) { + bookmarkModel->setItemsEditable(true); + ui.treeView->edit(index); + ui.treeView->expand(index); + ui.treeView->setCurrentIndex(index); + bookmarkModel->setItemsEditable(false); + } + } +} + +void BookmarkDialog::toolButtonClicked() +{ + TRACE_OBJ + const bool visible = !ui.treeView->isVisible(); + ui.treeView->setVisible(visible); + ui.newFolderButton->setVisible(visible); + + if (visible) { + resize(QSize(width(), 400)); + ui.toolButton->setText(QLatin1String("-")); + } else { + resize(width(), minimumHeight()); + ui.toolButton->setText(QLatin1String("+")); + } +} + +void BookmarkDialog::textChanged(const QString& text) +{ + m_title = text; +} + +void BookmarkDialog::customContextMenuRequested(const QPoint &point) +{ + TRACE_OBJ + const QModelIndex &index = ui.treeView->currentIndex(); + if (isRootItem(index)) + return; // check if we go to rename the "Bookmarks Menu", bail + + QMenu menu(QString(), this); + QAction *renameItem = menu.addAction(tr("Rename Folder")); + + QAction *picked = menu.exec(ui.treeView->mapToGlobal(point)); + if (picked == renameItem) { + bookmarkModel->setItemsEditable(true); + ui.treeView->edit(index); + bookmarkModel->setItemsEditable(false); + } +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/bookmarkdialog.h b/src/assistant/assistant/bookmarkdialog.h new file mode 100644 index 0000000..3b5aecf --- /dev/null +++ b/src/assistant/assistant/bookmarkdialog.h @@ -0,0 +1,51 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#ifndef BOOKMARKDIALOG_H +#define BOOKMARKDIALOG_H + +#include "ui_bookmarkdialog.h" + +QT_BEGIN_NAMESPACE + +class BookmarkModel; +class BookmarkFilterModel; +class BookmarkTreeModel; + +class BookmarkDialog : public QDialog +{ + Q_OBJECT +public: + BookmarkDialog(BookmarkModel *bookmarkModel, const QString &title, + const QString &url, QWidget *parent = nullptr); + ~BookmarkDialog() override; + +private: + bool isRootItem(const QModelIndex &index) const; + bool eventFilter(QObject *object, QEvent *event) override; + +private slots: + void currentIndexChanged(int index); + void currentIndexChanged(const QModelIndex &index); + + void accepted(); + void rejected(); + + void addFolder(); + void toolButtonClicked(); + void textChanged(const QString& text); + void customContextMenuRequested(const QPoint &point); + +private: + QString m_url; + QString m_title; + Ui::BookmarkDialog ui; + QList cache; + + BookmarkModel *bookmarkModel; + BookmarkTreeModel *bookmarkTreeModel; + BookmarkFilterModel *bookmarkProxyModel; +}; + +QT_END_NAMESPACE + +#endif // BOOKMARKDIALOG_H diff --git a/src/assistant/assistant/bookmarkdialog.ui b/src/assistant/assistant/bookmarkdialog.ui new file mode 100644 index 0000000..5131531 --- /dev/null +++ b/src/assistant/assistant/bookmarkdialog.ui @@ -0,0 +1,156 @@ + + + BookmarkDialog + + + + 0 + 0 + 450 + 133 + + + + + 0 + 0 + + + + Add Bookmark + + + + + + + + + + Bookmark: + + + + + + + Add in Folder: + + + + + + + + + + + + + + + + + + + + + + + + 25 + 20 + + + + + + + + + + + + Qt::Horizontal + + + + + + + + + + 0 + 0 + + + + true + + + true + + + true + + + + + + + + + New Folder + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + + + buttonBox + accepted() + BookmarkDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + BookmarkDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/assistant/assistant/bookmarkfiltermodel.cpp b/src/assistant/assistant/bookmarkfiltermodel.cpp new file mode 100644 index 0000000..89fe5ca --- /dev/null +++ b/src/assistant/assistant/bookmarkfiltermodel.cpp @@ -0,0 +1,278 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "bookmarkfiltermodel.h" + +#include "bookmarkitem.h" +#include "bookmarkmodel.h" + +BookmarkFilterModel::BookmarkFilterModel(QObject *parent) + : QAbstractProxyModel(parent) +{ +} + +void BookmarkFilterModel::setSourceModel(QAbstractItemModel *_sourceModel) +{ + beginResetModel(); + + if (sourceModel) { + disconnect(sourceModel, &QAbstractItemModel::dataChanged, + this, &BookmarkFilterModel::changed); + disconnect(sourceModel, &QAbstractItemModel::rowsInserted, + this, &BookmarkFilterModel::rowsInserted); + disconnect(sourceModel, &QAbstractItemModel::rowsAboutToBeRemoved, + this, &BookmarkFilterModel::rowsAboutToBeRemoved); + disconnect(sourceModel, &QAbstractItemModel::rowsRemoved, + this, &BookmarkFilterModel::rowsRemoved); + disconnect(sourceModel, &QAbstractItemModel::layoutAboutToBeChanged, + this, &BookmarkFilterModel::layoutAboutToBeChanged); + disconnect(sourceModel, &QAbstractItemModel::layoutChanged, + this, &BookmarkFilterModel::layoutChanged); + disconnect(sourceModel, &QAbstractItemModel::modelAboutToBeReset, + this, &BookmarkFilterModel::modelAboutToBeReset); + disconnect(sourceModel, &QAbstractItemModel::modelReset, + this, &BookmarkFilterModel::modelReset); + } + + sourceModel = qobject_cast (_sourceModel); + QAbstractProxyModel::setSourceModel(sourceModel); + + if (sourceModel) { + connect(sourceModel, &QAbstractItemModel::dataChanged, + this, &BookmarkFilterModel::changed); + connect(sourceModel, &QAbstractItemModel::rowsInserted, + this, &BookmarkFilterModel::rowsInserted); + connect(sourceModel, &QAbstractItemModel::rowsAboutToBeRemoved, + this, &BookmarkFilterModel::rowsAboutToBeRemoved); + connect(sourceModel, &QAbstractItemModel::rowsRemoved, + this, &BookmarkFilterModel::rowsRemoved); + connect(sourceModel, &QAbstractItemModel::layoutAboutToBeChanged, + this, &BookmarkFilterModel::layoutAboutToBeChanged); + connect(sourceModel, &QAbstractItemModel::layoutChanged, + this, &BookmarkFilterModel::layoutChanged); + connect(sourceModel, &QAbstractItemModel::modelAboutToBeReset, + this, &BookmarkFilterModel::modelAboutToBeReset); + connect(sourceModel, &QAbstractItemModel::modelReset, + this, &BookmarkFilterModel::modelReset); + + setupCache(sourceModel->index(0, 0, QModelIndex()).parent()); + } + endResetModel(); +} + +int BookmarkFilterModel::rowCount(const QModelIndex &index) const +{ + Q_UNUSED(index); + return cache.size(); +} + +int BookmarkFilterModel::columnCount(const QModelIndex &index) const +{ + Q_UNUSED(index); + if (sourceModel) + return sourceModel->columnCount(); + return 0; +} + +QModelIndex BookmarkFilterModel::mapToSource(const QModelIndex &proxyIndex) const +{ + const int row = proxyIndex.row(); + if (proxyIndex.isValid() && row >= 0 && row < cache.size()) + return cache[row]; + return QModelIndex(); +} + +QModelIndex BookmarkFilterModel::mapFromSource(const QModelIndex &sourceIndex) const +{ + return index(cache.indexOf(sourceIndex), 0, QModelIndex()); +} + +QModelIndex BookmarkFilterModel::parent(const QModelIndex &child) const +{ + Q_UNUSED(child); + return QModelIndex(); +} + +QModelIndex BookmarkFilterModel::index(int row, int column, + const QModelIndex &index) const +{ + Q_UNUSED(index); + if (row < 0 || column < 0 || cache.size() <= row + || !sourceModel || sourceModel->columnCount() <= column) { + return QModelIndex(); + } + return createIndex(row, 0); +} + +Qt::DropActions BookmarkFilterModel::supportedDropActions () const +{ + if (sourceModel) + return sourceModel->supportedDropActions(); + return Qt::IgnoreAction; +} + +Qt::ItemFlags BookmarkFilterModel::flags(const QModelIndex &index) const +{ + if (sourceModel) + return sourceModel->flags(index); + return Qt::NoItemFlags; +} + +QVariant BookmarkFilterModel::data(const QModelIndex &index, int role) const +{ + if (sourceModel) + return sourceModel->data(mapToSource(index), role); + return QVariant(); +} + +bool BookmarkFilterModel::setData(const QModelIndex &index, const QVariant &value, + int role) +{ + if (sourceModel) + return sourceModel->setData(mapToSource(index), value, role); + return false; +} + +void BookmarkFilterModel::filterBookmarks() +{ + if (sourceModel) { + beginResetModel(); + hideBookmarks = true; + setupCache(sourceModel->index(0, 0, QModelIndex()).parent()); + endResetModel(); + } +} + +void BookmarkFilterModel::filterBookmarkFolders() +{ + if (sourceModel) { + beginResetModel(); + hideBookmarks = false; + setupCache(sourceModel->index(0, 0, QModelIndex()).parent()); + endResetModel(); + } +} + +void BookmarkFilterModel::changed(const QModelIndex &topLeft, + const QModelIndex &bottomRight) +{ + emit dataChanged(mapFromSource(topLeft), mapFromSource(bottomRight)); +} + +void BookmarkFilterModel::rowsInserted(const QModelIndex &parent, int start, + int end) +{ + if (!sourceModel) + return; + + QModelIndex cachePrevious = parent; + if (BookmarkItem *parentItem = sourceModel->itemFromIndex(parent)) { + BookmarkItem *newItem = parentItem->child(start); + + // iterate over tree hirarchie to find the previous folder + for (int i = 0; i < parentItem->childCount(); ++i) { + if (BookmarkItem *child = parentItem->child(i)) { + const QModelIndex &tmp = sourceModel->indexFromItem(child); + if (tmp.data(UserRoleFolder).toBool() && child != newItem) + cachePrevious = tmp; + } + } + + const QModelIndex &newIndex = sourceModel->indexFromItem(newItem); + const bool isFolder = newIndex.data(UserRoleFolder).toBool(); + if ((isFolder && hideBookmarks) || (!isFolder && !hideBookmarks)) { + beginInsertRows(mapFromSource(parent), start, end); + const int index = cache.indexOf(cachePrevious) + 1; + if (cache.value(index, QPersistentModelIndex()) != newIndex) + cache.insert(index, newIndex); + endInsertRows(); + } + } +} + +void BookmarkFilterModel::rowsAboutToBeRemoved(const QModelIndex &parent, + int start, int end) +{ + if (!sourceModel) + return; + + if (BookmarkItem *parentItem = sourceModel->itemFromIndex(parent)) { + if (BookmarkItem *child = parentItem->child(start)) { + indexToRemove = sourceModel->indexFromItem(child); + if (cache.contains(indexToRemove)) + beginRemoveRows(mapFromSource(parent), start, end); + } + } +} + +void BookmarkFilterModel::rowsRemoved(const QModelIndex &/*parent*/, int, int) +{ + if (cache.contains(indexToRemove)) { + cache.removeAll(indexToRemove); + endRemoveRows(); + } +} + +void BookmarkFilterModel::layoutAboutToBeChanged() +{ + // TODO: ??? +} + +void BookmarkFilterModel::layoutChanged() +{ + // TODO: ??? +} + +void BookmarkFilterModel::modelAboutToBeReset() +{ + beginResetModel(); +} + +void BookmarkFilterModel::modelReset() +{ + if (sourceModel) + setupCache(sourceModel->index(0, 0, QModelIndex()).parent()); + endResetModel(); +} + +void BookmarkFilterModel::setupCache(const QModelIndex &parent) +{ + cache.clear(); + for (int i = 0; i < sourceModel->rowCount(parent); ++i) + collectItems(sourceModel->index(i, 0, parent)); +} + +void BookmarkFilterModel::collectItems(const QModelIndex &parent) +{ + if (parent.isValid()) { + bool isFolder = sourceModel->data(parent, UserRoleFolder).toBool(); + if ((isFolder && hideBookmarks) || (!isFolder && !hideBookmarks)) + cache.append(parent); + + if (sourceModel->hasChildren(parent)) { + for (int i = 0; i < sourceModel->rowCount(parent); ++i) + collectItems(sourceModel->index(i, 0, parent)); + } + } +} + +// -- BookmarkTreeModel + +BookmarkTreeModel::BookmarkTreeModel(QObject *parent) + : QSortFilterProxyModel(parent) +{ +} + +int BookmarkTreeModel::columnCount(const QModelIndex &parent) const +{ + return qMin(1, QSortFilterProxyModel::columnCount(parent)); +} + +bool BookmarkTreeModel::filterAcceptsRow(int row, const QModelIndex &parent) const +{ + Q_UNUSED(row); + BookmarkModel *model = qobject_cast (sourceModel()); + if (model->rowCount(parent) > 0 + && model->data(model->index(row, 0, parent), UserRoleFolder).toBool()) + return true; + return false; +} diff --git a/src/assistant/assistant/bookmarkfiltermodel.h b/src/assistant/assistant/bookmarkfiltermodel.h new file mode 100644 index 0000000..38bfde7 --- /dev/null +++ b/src/assistant/assistant/bookmarkfiltermodel.h @@ -0,0 +1,80 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#ifndef BOOKMARKFILTERMODEL_H +#define BOOKMARKFILTERMODEL_H + +#include + +#include +#include + +QT_BEGIN_NAMESPACE + +class BookmarkItem; +class BookmarkModel; + +typedef QList PersistentModelIndexCache; + +class BookmarkFilterModel : public QAbstractProxyModel +{ + Q_OBJECT +public: + explicit BookmarkFilterModel(QObject *parent = nullptr); + + void setSourceModel(QAbstractItemModel *sourceModel) override; + + int rowCount(const QModelIndex &index) const override; + int columnCount(const QModelIndex &index) const override; + + QModelIndex mapToSource(const QModelIndex &proxyIndex) const override; + QModelIndex mapFromSource(const QModelIndex &sourceIndex) const override; + + QModelIndex parent(const QModelIndex &child) const override; + QModelIndex index(int row, int column, const QModelIndex &parent) const override; + + Qt::DropActions supportedDropActions () const override; + Qt::ItemFlags flags(const QModelIndex &index) const override; + + QVariant data(const QModelIndex &index, int role) const override; + bool setData(const QModelIndex &index, const QVariant &value, int role) override; + + void filterBookmarks(); + void filterBookmarkFolders(); + +private slots: + void changed(const QModelIndex &topLeft, const QModelIndex &bottomRight); + void rowsInserted(const QModelIndex &parent, int start, int end); + void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end); + void rowsRemoved(const QModelIndex &parent, int start, int end); + void layoutAboutToBeChanged(); + void layoutChanged(); + void modelAboutToBeReset(); + void modelReset(); + +private: + void setupCache(const QModelIndex &parent); + void collectItems(const QModelIndex &parent); + +private: + BookmarkModel *sourceModel = nullptr; + PersistentModelIndexCache cache; + QPersistentModelIndex indexToRemove; + bool hideBookmarks = true; +}; + +// -- BookmarkTreeModel + +class BookmarkTreeModel : public QSortFilterProxyModel +{ + Q_OBJECT +public: + BookmarkTreeModel(QObject *parent = nullptr); + int columnCount(const QModelIndex &parent = QModelIndex()) const override; + +protected: + bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override; +}; + +QT_END_NAMESPACE + +#endif // BOOKMARKFILTERMODEL_H diff --git a/src/assistant/assistant/bookmarkitem.cpp b/src/assistant/assistant/bookmarkitem.cpp new file mode 100644 index 0000000..57c5fbe --- /dev/null +++ b/src/assistant/assistant/bookmarkitem.cpp @@ -0,0 +1,146 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "bookmarkitem.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +BookmarkItem::BookmarkItem(const DataVector &data, BookmarkItem *parent) + : m_data(data) + , m_parent(parent) +{ +} + +BookmarkItem::~BookmarkItem() +{ + qDeleteAll(m_children); +} + +BookmarkItem* +BookmarkItem::parent() const +{ + return m_parent; +} + +void +BookmarkItem::setParent(BookmarkItem *parent) +{ + m_parent = parent; +} + +void +BookmarkItem::addChild(BookmarkItem *child) +{ + child->setParent(this); + m_children.append(child); +} + +BookmarkItem* +BookmarkItem::child(int number) const +{ + if (number >= 0 && number < m_children.size()) + return m_children[number]; + return nullptr; +} + +int BookmarkItem::childCount() const +{ + return m_children.size(); +} + +int BookmarkItem::childNumber() const +{ + if (m_parent) + return m_parent->m_children.indexOf(const_cast(this)); + return 0; +} + +QVariant +BookmarkItem::data(int column) const +{ + if (column == 0) + return m_data[0]; + + if (column == 1 || column == UserRoleUrl) + return m_data[1]; + + if (column == UserRoleFolder) + return m_data[1].toString() == QLatin1String("Folder"); + + if (column == UserRoleExpanded) + return m_data[2]; + + return QVariant(); +} + +void +BookmarkItem::setData(const DataVector &data) +{ + m_data = data; +} + +bool +BookmarkItem::setData(int column, const QVariant &newValue) +{ + int index = -1; + if (column == 0 || column == 1) + index = column; + + if (column == UserRoleUrl || column == UserRoleFolder) + index = 1; + + if (column == UserRoleExpanded) + index = 2; + + if (index < 0) + return false; + + m_data[index] = newValue; + return true; +} + +bool +BookmarkItem::insertChildren(bool isFolder, int position, int count) +{ + if (position < 0 || position > m_children.size()) + return false; + + for (int row = 0; row < count; ++row) { + m_children.insert(position, new BookmarkItem(DataVector() + << (isFolder + ? QCoreApplication::translate("BookmarkItem", "New Folder") + : QCoreApplication::translate("BookmarkItem", "Untitled")) + << (isFolder ? "Folder" : "about:blank") << false, this)); + } + + return true; +} + +bool +BookmarkItem::removeChildren(int position, int count) +{ + if (position < 0 || position > m_children.size()) + return false; + + for (int row = 0; row < count; ++row) + delete m_children.takeAt(position); + + return true; +} + +void +BookmarkItem::dumpTree(int indent) const +{ + const QString tree(indent, ' '); + qDebug() << tree + (data(UserRoleFolder).toBool() ? "Folder" : "Bookmark") + << "Label:" << data(0).toString() << "parent:" << m_parent << "this:" + << this; + + for (BookmarkItem *item : m_children) + item->dumpTree(indent + 4); +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/bookmarkitem.h b/src/assistant/assistant/bookmarkitem.h new file mode 100644 index 0000000..391a703 --- /dev/null +++ b/src/assistant/assistant/bookmarkitem.h @@ -0,0 +1,53 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef BOOKMARKITEM_H +#define BOOKMARKITEM_H + +#include +#include + +QT_BEGIN_NAMESPACE + +enum { + UserRoleUrl = Qt::UserRole + 50, + UserRoleFolder = Qt::UserRole + 100, + UserRoleExpanded = Qt::UserRole + 150 +}; + +typedef QList DataVector; + +class BookmarkItem +{ +public: + explicit BookmarkItem(const DataVector &data, BookmarkItem *parent = nullptr); + ~BookmarkItem(); + + BookmarkItem *parent() const; + void setParent(BookmarkItem *parent); + + void addChild(BookmarkItem *child); + BookmarkItem *child(int number) const; + + int childCount() const; + int childNumber() const; + + QVariant data(int column) const; + void setData(const DataVector &data); + bool setData(int column, const QVariant &value); + + bool insertChildren(bool isFolder, int position, int count); + bool removeChildren(int position, int count); + + void dumpTree(int indent) const; + +private: + DataVector m_data; + + BookmarkItem *m_parent; + QList m_children; +}; + +QT_END_NAMESPACE + +#endif // BOOKMARKITEM_H diff --git a/src/assistant/assistant/bookmarkmanager.cpp b/src/assistant/assistant/bookmarkmanager.cpp new file mode 100644 index 0000000..4d3c048 --- /dev/null +++ b/src/assistant/assistant/bookmarkmanager.cpp @@ -0,0 +1,528 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "tracer.h" + +#include "bookmarkmanager.h" +#include "bookmarkmanagerwidget.h" +#include "bookmarkdialog.h" +#include "bookmarkfiltermodel.h" +#include "bookmarkitem.h" +#include "bookmarkmodel.h" +#include "centralwidget.h" +#include "helpenginewrapper.h" + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +// -- BookmarkManager::BookmarkWidget + +void BookmarkManager::BookmarkWidget::focusInEvent(QFocusEvent *event) +{ + TRACE_OBJ + if (event->reason() != Qt::MouseFocusReason) { + ui.lineEdit->selectAll(); + ui.lineEdit->setFocus(); + + // force the focus in event on bookmark manager + emit focusInEventOccurred(); + } +} + +// -- BookmarkManager::BookmarkTreeView + +BookmarkManager::BookmarkTreeView::BookmarkTreeView(QWidget *parent) + : QTreeView(parent) +{ + TRACE_OBJ + setAcceptDrops(true); + setDragEnabled(true); + setAutoExpandDelay(1000); + setUniformRowHeights(true); + setDropIndicatorShown(true); + setExpandsOnDoubleClick(true); + + connect(this, &QTreeView::expanded, this, &BookmarkTreeView::setExpandedData); + connect(this, &QTreeView::collapsed, this, &BookmarkTreeView::setExpandedData); +} + +void BookmarkManager::BookmarkTreeView::subclassKeyPressEvent(QKeyEvent *event) +{ + TRACE_OBJ + QTreeView::keyPressEvent(event); +} + +void BookmarkManager::BookmarkTreeView::commitData(QWidget *editor) +{ + QTreeView::commitData(editor); + emit editingDone(); +} + +void BookmarkManager::BookmarkTreeView::setExpandedData(const QModelIndex &index) +{ + TRACE_OBJ + if (BookmarkModel *treeModel = qobject_cast (model())) + treeModel->setData(index, isExpanded(index), UserRoleExpanded); +} + +// -- BookmarkManager + +QMutex BookmarkManager::mutex; +BookmarkManager* BookmarkManager::bookmarkManager = nullptr; + +// -- public + +BookmarkManager* BookmarkManager::instance() +{ + TRACE_OBJ + if (!bookmarkManager) { + QMutexLocker _(&mutex); + if (!bookmarkManager) + bookmarkManager = new BookmarkManager(); + } + return bookmarkManager; +} + +void BookmarkManager::destroy() +{ + TRACE_OBJ + delete bookmarkManager; + bookmarkManager = nullptr; +} + +QWidget* BookmarkManager::bookmarkDockWidget() const +{ + TRACE_OBJ + if (bookmarkWidget) + return bookmarkWidget; + return nullptr; +} + +void BookmarkManager::setBookmarksMenu(QMenu* menu) +{ + TRACE_OBJ + bookmarkMenu = menu; + refreshBookmarkMenu(); +} + +void BookmarkManager::setBookmarksToolbar(QToolBar *toolBar) +{ + TRACE_OBJ + m_toolBar = toolBar; + refreshBookmarkToolBar(); +} + +// -- public slots + +void BookmarkManager::addBookmark(const QString &title, const QString &url) +{ + TRACE_OBJ + showBookmarkDialog(title.isEmpty() ? tr("Untitled") : title, + url.isEmpty() ? QLatin1String("about:blank") : url); + + storeBookmarks(); +} + +// -- private + +BookmarkManager::BookmarkManager() + : bookmarkModel(new BookmarkModel) + , bookmarkWidget(new BookmarkWidget) + , bookmarkTreeView(new BookmarkTreeView) +{ + TRACE_OBJ + bookmarkWidget->installEventFilter(this); + connect(bookmarkWidget->ui.add, &QAbstractButton::clicked, + this, &BookmarkManager::addBookmarkActivated); + connect(bookmarkWidget->ui.remove, &QAbstractButton::clicked, + this, &BookmarkManager::removeBookmarkActivated); + connect(bookmarkWidget->ui.lineEdit, &QLineEdit::textChanged, + this, &BookmarkManager::textChanged); + connect(bookmarkWidget, &BookmarkWidget::focusInEventOccurred, + this, &BookmarkManager::focusInEventOccurred); + + bookmarkTreeView->setModel(bookmarkModel); + bookmarkTreeView->installEventFilter(this); + bookmarkTreeView->viewport()->installEventFilter(this); + bookmarkTreeView->setContextMenuPolicy(Qt::CustomContextMenu); + bookmarkWidget->ui.stackedWidget->addWidget(bookmarkTreeView); + + connect(bookmarkTreeView, &QAbstractItemView::activated, + this, [this](const QModelIndex &index) { setSourceFromIndex(index, false); }); + connect(bookmarkTreeView, &QWidget::customContextMenuRequested, + this, &BookmarkManager::customContextMenuRequested); + connect(bookmarkTreeView, &BookmarkTreeView::editingDone, + this, &BookmarkManager::storeBookmarks); + + connect(&HelpEngineWrapper::instance(), &HelpEngineWrapper::setupFinished, + this, &BookmarkManager::setupFinished); + + connect(bookmarkModel, &QAbstractItemModel::rowsRemoved, + this, &BookmarkManager::refreshBookmarkMenu); + connect(bookmarkModel, &QAbstractItemModel::rowsInserted, + this, &BookmarkManager::refreshBookmarkMenu); + connect(bookmarkModel, &QAbstractItemModel::dataChanged, + this, &BookmarkManager::refreshBookmarkMenu); + + connect(bookmarkModel, &QAbstractItemModel::rowsRemoved, + this, &BookmarkManager::refreshBookmarkToolBar); + connect(bookmarkModel, &QAbstractItemModel::rowsInserted, + this, &BookmarkManager::refreshBookmarkToolBar); + connect(bookmarkModel, &QAbstractItemModel::dataChanged, + this, &BookmarkManager::refreshBookmarkToolBar); + +} + +BookmarkManager::~BookmarkManager() +{ + TRACE_OBJ + delete bookmarkManagerWidget; + storeBookmarks(); + delete bookmarkModel; +} + +void BookmarkManager::removeItem(const QModelIndex &index) +{ + TRACE_OBJ + QModelIndex current = index; + if (typeAndSearch) { // need to map because of proxy + current = typeAndSearchModel->mapToSource(current); + current = bookmarkFilterModel->mapToSource(current); + } else if (!bookmarkModel->parent(index).isValid()) { + return; // check if we should delete the "Bookmarks Menu", bail + } + + if (bookmarkModel->hasChildren(current)) { + int value = QMessageBox::question(bookmarkTreeView, tr("Remove"), + tr("You are going to delete a Folder, this will also
" + "remove it's content. Are you sure to continue?"), + QMessageBox::Yes | QMessageBox::Cancel, QMessageBox::Cancel); + if (value == QMessageBox::Cancel) + return; + } + bookmarkModel->removeItem(current); + + storeBookmarks(); +} + +bool BookmarkManager::eventFilter(QObject *object, QEvent *event) +{ + if (object != bookmarkTreeView && object != bookmarkTreeView->viewport() + && object != bookmarkWidget) + return QObject::eventFilter(object, event); + + TRACE_OBJ + const bool isWidget = object == bookmarkWidget; + if (event->type() == QEvent::KeyPress) { + QKeyEvent *ke = static_cast(event); + switch (ke->key()) { + case Qt::Key_F2: + renameBookmark(bookmarkTreeView->currentIndex()); + break; + + case Qt::Key_Delete: + removeItem(bookmarkTreeView->currentIndex()); + return true; + + case Qt::Key_Up: // needs event filter on widget + case Qt::Key_Down: + if (isWidget) + bookmarkTreeView->subclassKeyPressEvent(ke); + break; + + case Qt::Key_Escape: + emit escapePressed(); + break; + + default: break; + } + } + + if (event->type() == QEvent::MouseButtonRelease && !isWidget) { + QMouseEvent *me = static_cast(event); + switch (me->button()) { + case Qt::LeftButton: + if (me->modifiers() & Qt::ControlModifier) + setSourceFromIndex(bookmarkTreeView->currentIndex(), true); + break; + + case Qt::MiddleButton: + setSourceFromIndex(bookmarkTreeView->currentIndex(), true); + break; + + default: break; + } + } + + return QObject::eventFilter(object, event); +} + +void BookmarkManager::buildBookmarksMenu(const QModelIndex &index, QMenu* menu) +{ + TRACE_OBJ + if (!index.isValid()) + return; + + const QString &text = index.data().toString(); + const QIcon &icon = qvariant_cast(index.data(Qt::DecorationRole)); + if (index.data(UserRoleFolder).toBool()) { + if (QMenu* subMenu = menu->addMenu(icon, text)) { + for (int i = 0; i < bookmarkModel->rowCount(index); ++i) + buildBookmarksMenu(bookmarkModel->index(i, 0, index), subMenu); + } + } else { + QAction *action = menu->addAction(icon, text); + action->setData(index.data(UserRoleUrl).toString()); + connect(action, &QAction::triggered, + this, &BookmarkManager::setSourceFromAction); + } +} + +void BookmarkManager::showBookmarkDialog(const QString &name, const QString &url) +{ + TRACE_OBJ + BookmarkDialog dialog(bookmarkModel, name, url, bookmarkTreeView); + dialog.exec(); +} + +// -- private slots + +void BookmarkManager::setupFinished() +{ + TRACE_OBJ + bookmarkModel->setBookmarks(HelpEngineWrapper::instance().bookmarks()); + bookmarkModel->expandFoldersIfNeeeded(bookmarkTreeView); + + refreshBookmarkMenu(); + refreshBookmarkToolBar(); + + bookmarkTreeView->hideColumn(1); + bookmarkTreeView->header()->setVisible(false); + bookmarkTreeView->header()->setStretchLastSection(true); + + if (!bookmarkFilterModel) + bookmarkFilterModel = new BookmarkFilterModel(this); + bookmarkFilterModel->setSourceModel(bookmarkModel); + bookmarkFilterModel->filterBookmarkFolders(); + + if (!typeAndSearchModel) + typeAndSearchModel = new QSortFilterProxyModel(this); + typeAndSearchModel->setDynamicSortFilter(true); + typeAndSearchModel->setSourceModel(bookmarkFilterModel); +} + +void BookmarkManager::storeBookmarks() +{ + HelpEngineWrapper::instance().setBookmarks(bookmarkModel->bookmarks()); +} + +void BookmarkManager::addBookmarkActivated() +{ + TRACE_OBJ + if (CentralWidget *widget = CentralWidget::instance()) + addBookmark(widget->currentTitle(), widget->currentSource().toString()); +} + +void BookmarkManager::removeBookmarkActivated() +{ + TRACE_OBJ + removeItem(bookmarkTreeView->currentIndex()); +} + +void BookmarkManager::manageBookmarks() +{ + TRACE_OBJ + if (bookmarkManagerWidget == nullptr) { + bookmarkManagerWidget = new BookmarkManagerWidget(bookmarkModel); + connect(bookmarkManagerWidget, &BookmarkManagerWidget::setSource, + this, &BookmarkManager::setSource); + connect(bookmarkManagerWidget, &BookmarkManagerWidget::setSourceInNewTab, + this, &BookmarkManager::setSourceInNewTab); + connect(bookmarkManagerWidget, &BookmarkManagerWidget::managerWidgetAboutToClose, + this, &BookmarkManager::managerWidgetAboutToClose); + } + bookmarkManagerWidget->show(); + bookmarkManagerWidget->raise(); +} + +void BookmarkManager::refreshBookmarkMenu() +{ + TRACE_OBJ + if (!bookmarkMenu) + return; + + bookmarkMenu->clear(); + + bookmarkMenu->addAction(tr("Manage Bookmarks..."), this, + &BookmarkManager::manageBookmarks); + bookmarkMenu->addAction(QIcon::fromTheme("bookmark-new"), tr("Add Bookmark..."), + QKeySequence(tr("Ctrl+D")), + this, &BookmarkManager::addBookmarkActivated); + + bookmarkMenu->addSeparator(); + + QModelIndex root = bookmarkModel->index(0, 0, QModelIndex()).parent(); + buildBookmarksMenu(bookmarkModel->index(0, 0, root), bookmarkMenu); + + bookmarkMenu->addSeparator(); + + root = bookmarkModel->index(1, 0, QModelIndex()); + for (int i = 0; i < bookmarkModel->rowCount(root); ++i) + buildBookmarksMenu(bookmarkModel->index(i, 0, root), bookmarkMenu); +} + +void BookmarkManager::refreshBookmarkToolBar() +{ + TRACE_OBJ + if (!m_toolBar) + return; + + m_toolBar->clear(); + m_toolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + + const QModelIndex &root = bookmarkModel->index(0, 0, QModelIndex()); + for (int i = 0; i < bookmarkModel->rowCount(root); ++i) { + const QModelIndex &index = bookmarkModel->index(i, 0, root); + if (index.data(UserRoleFolder).toBool()) { + QToolButton *button = new QToolButton(m_toolBar); + button->setPopupMode(QToolButton::InstantPopup); + button->setText(index.data().toString()); + QMenu *menu = new QMenu(button); + for (int j = 0; j < bookmarkModel->rowCount(index); ++j) + buildBookmarksMenu(bookmarkModel->index(j, 0, index), menu); + button->setMenu(menu); + button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + button->setIcon(qvariant_cast(index.data(Qt::DecorationRole))); + QAction *a = m_toolBar->addWidget(button); + a->setText(index.data().toString()); + } else { + QAction *action = m_toolBar->addAction( + qvariant_cast(index.data(Qt::DecorationRole)), + index.data().toString(), this, &BookmarkManager::setSourceFromAction); + action->setData(index.data(UserRoleUrl).toString()); + } + } +} + +void BookmarkManager::renameBookmark(const QModelIndex &index) +{ + // check if we should rename the "Bookmarks Menu", bail + if (!typeAndSearch && !bookmarkModel->parent(index).isValid()) + return; + + bookmarkModel->setItemsEditable(true); + bookmarkTreeView->edit(index); + bookmarkModel->setItemsEditable(false); +} + + +void BookmarkManager::setSourceFromAction() +{ + TRACE_OBJ + const QAction *action = qobject_cast(sender()); + if (!action) + return; + + const QVariant &data = action->data(); + if (data.canConvert()) + emit setSource(data.toUrl()); +} + +void BookmarkManager::setSourceFromIndex(const QModelIndex &index, bool newTab) +{ + TRACE_OBJ + QAbstractItemModel *base = bookmarkModel; + if (typeAndSearch) + base = typeAndSearchModel; + + if (base->data(index, UserRoleFolder).toBool()) + return; + + const QVariant &data = base->data(index, UserRoleUrl); + if (data.canConvert()) { + if (newTab) + emit setSourceInNewTab(data.toUrl()); + else + emit setSource(data.toUrl()); + } +} + +void BookmarkManager::customContextMenuRequested(const QPoint &point) +{ + TRACE_OBJ + QModelIndex index = bookmarkTreeView->indexAt(point); + if (!index.isValid()) + return; + + // check if we should open the menu on "Bookmarks Menu", bail + if (!typeAndSearch && !bookmarkModel->parent(index).isValid()) + return; + + QAction *remove = nullptr; + QAction *rename = nullptr; + QAction *showItem = nullptr; + QAction *showItemInNewTab = nullptr; + + QMenu menu; + if (!typeAndSearch && bookmarkModel->data(index, UserRoleFolder).toBool()) { + remove = menu.addAction(tr("Delete Folder")); + rename = menu.addAction(tr("Rename Folder")); + } else { + showItem = menu.addAction(tr("Show Bookmark")); + showItemInNewTab = menu.addAction(tr("Show Bookmark in New Tab")); + menu.addSeparator(); + remove = menu.addAction(tr("Delete Bookmark")); + rename = menu.addAction(tr("Rename Bookmark")); + } + + QAction *pickedAction = menu.exec(bookmarkTreeView->mapToGlobal(point)); + if (pickedAction == rename) + renameBookmark(index); + else if (pickedAction == remove) + removeItem(index); + else if (pickedAction == showItem || pickedAction == showItemInNewTab) + setSourceFromIndex(index, pickedAction == showItemInNewTab); +} + +void BookmarkManager::focusInEventOccurred() +{ + TRACE_OBJ + const QModelIndex &index = bookmarkTreeView->indexAt(QPoint(2, 2)); + if (index.isValid()) + bookmarkTreeView->setCurrentIndex(index); +} + +void BookmarkManager::managerWidgetAboutToClose() +{ + if (bookmarkManagerWidget) + bookmarkManagerWidget->deleteLater(); + bookmarkManagerWidget = nullptr; + + storeBookmarks(); +} + +void BookmarkManager::textChanged(const QString &text) +{ + TRACE_OBJ + if (!bookmarkWidget->ui.lineEdit->text().isEmpty()) { + if (!typeAndSearch) { + typeAndSearch = true; + bookmarkTreeView->setItemsExpandable(false); + bookmarkTreeView->setRootIsDecorated(false); + bookmarkTreeView->setModel(typeAndSearchModel); + } + typeAndSearchModel->setFilterRegularExpression(text); + } else { + typeAndSearch = false; + bookmarkTreeView->setModel(bookmarkModel); + bookmarkTreeView->setItemsExpandable(true); + bookmarkTreeView->setRootIsDecorated(true); + bookmarkModel->expandFoldersIfNeeeded(bookmarkTreeView); + } +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/bookmarkmanager.h b/src/assistant/assistant/bookmarkmanager.h new file mode 100644 index 0000000..1ffb079 --- /dev/null +++ b/src/assistant/assistant/bookmarkmanager.h @@ -0,0 +1,128 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#ifndef BOOKMARKMANAGER_H +#define BOOKMARKMANAGER_H + +#include +#include + +#include "ui_bookmarkwidget.h" + +QT_BEGIN_NAMESPACE + +class BookmarkManagerWidget; +class BookmarkModel; +class BookmarkFilterModel; +class QKeyEvent; +class QSortFilterProxyModel; +class QToolBar; + +class BookmarkManager : public QObject +{ + Q_OBJECT + class BookmarkWidget; + class BookmarkTreeView; + class BookmarkListView; + Q_DISABLE_COPY(BookmarkManager) + +public: + static BookmarkManager* instance(); + static void destroy(); + + QWidget* bookmarkDockWidget() const; + void setBookmarksMenu(QMenu* menu); + void setBookmarksToolbar(QToolBar *toolBar); + +public slots: + void addBookmark(const QString &title, const QString &url); + +signals: + void escapePressed(); + void setSource(const QUrl &url); + void setSourceInNewTab(const QUrl &url); + +private: + BookmarkManager(); + ~BookmarkManager() override; + + void removeItem(const QModelIndex &index); + bool eventFilter(QObject *object, QEvent *event) override; + void buildBookmarksMenu(const QModelIndex &index, QMenu *menu); + void showBookmarkDialog(const QString &name, const QString &url); + +private slots: + void setupFinished(); + void storeBookmarks(); + + void addBookmarkActivated(); + void removeBookmarkActivated(); + void manageBookmarks(); + void refreshBookmarkMenu(); + void refreshBookmarkToolBar(); + void renameBookmark(const QModelIndex &index); + + void setSourceFromAction(); + void setSourceFromIndex(const QModelIndex &index, bool newTab); + + void focusInEventOccurred(); + void managerWidgetAboutToClose(); + void textChanged(const QString &text); + void customContextMenuRequested(const QPoint &point); + +private: + bool typeAndSearch = false; + + static QMutex mutex; + static BookmarkManager *bookmarkManager; + + QMenu *bookmarkMenu = nullptr; + QToolBar *m_toolBar = nullptr; + + BookmarkModel *bookmarkModel; + BookmarkFilterModel *bookmarkFilterModel = nullptr; + QSortFilterProxyModel *typeAndSearchModel = nullptr; + + BookmarkWidget *bookmarkWidget; + BookmarkTreeView *bookmarkTreeView; + BookmarkManagerWidget *bookmarkManagerWidget = nullptr; +}; + +class BookmarkManager::BookmarkWidget : public QWidget +{ + Q_OBJECT +public: + BookmarkWidget(QWidget *parent = nullptr) + : QWidget(parent) { ui.setupUi(this); } + virtual ~BookmarkWidget() override {} + + Ui::BookmarkWidget ui; + +signals: + void focusInEventOccurred(); + +private: + void focusInEvent(QFocusEvent *event) override; +}; + +class BookmarkManager::BookmarkTreeView : public QTreeView +{ + Q_OBJECT +public: + BookmarkTreeView(QWidget *parent = nullptr); + ~BookmarkTreeView() override {} + + void subclassKeyPressEvent(QKeyEvent *event); + +signals: + void editingDone(); + +protected slots: + void commitData(QWidget *editor) override; + +private slots: + void setExpandedData(const QModelIndex &index); +}; + +QT_END_NAMESPACE + +#endif // BOOKMARKMANAGER_H diff --git a/src/assistant/assistant/bookmarkmanagerwidget.cpp b/src/assistant/assistant/bookmarkmanagerwidget.cpp new file mode 100644 index 0000000..a869bb1 --- /dev/null +++ b/src/assistant/assistant/bookmarkmanagerwidget.cpp @@ -0,0 +1,289 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "bookmarkmanagerwidget.h" +#include "bookmarkitem.h" +#include "bookmarkmodel.h" +#include "tracer.h" +#include "xbelsupport.h" + +#include +#include + +#include +#include +#include + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +BookmarkManagerWidget::BookmarkManagerWidget(BookmarkModel *sourceModel, + QWidget *parent) + : QWidget(parent) + , bookmarkModel(sourceModel) +{ + TRACE_OBJ + ui.setupUi(this); + + ui.treeView->setModel(bookmarkModel); + + ui.treeView->expandAll(); + ui.treeView->installEventFilter(this); + ui.treeView->viewport()->installEventFilter(this); + ui.treeView->setContextMenuPolicy(Qt::CustomContextMenu); + + connect(ui.treeView, &QWidget::customContextMenuRequested, + this, &BookmarkManagerWidget::customContextMenuRequested); + + connect(ui.remove, &QAbstractButton::clicked, + this, [this]() { removeItem(); }); + connect(ui.lineEdit, &QLineEdit::textChanged, + this, &BookmarkManagerWidget::textChanged); + QShortcut *shortcut = new QShortcut(QKeySequence::Find, ui.lineEdit); + connect(shortcut, &QShortcut::activated, + ui.lineEdit, QOverload<>::of(&QWidget::setFocus)); + + importExportMenu.addAction(tr("Import..."), this, + &BookmarkManagerWidget::importBookmarks); + importExportMenu.addAction(tr("Export..."), this, + &BookmarkManagerWidget::exportBookmarks); + ui.importExport->setMenu(&importExportMenu); + + shortcut = new QShortcut(QKeySequence::FindNext, this); + connect(shortcut, &QShortcut::activated, + this, &BookmarkManagerWidget::findNext); + shortcut = new QShortcut(QKeySequence::FindPrevious, this); + connect(shortcut, &QShortcut::activated, + this, &BookmarkManagerWidget::findPrevious); + + connect(bookmarkModel, &QAbstractItemModel::rowsRemoved, + this, &BookmarkManagerWidget::refeshBookmarkCache); + connect(bookmarkModel, &QAbstractItemModel::rowsInserted, + this, &BookmarkManagerWidget::refeshBookmarkCache); + connect(bookmarkModel, &QAbstractItemModel::dataChanged, + this, &BookmarkManagerWidget::refeshBookmarkCache); + + ui.treeView->setCurrentIndex(ui.treeView->indexAt(QPoint(2, 2))); +} + +BookmarkManagerWidget::~BookmarkManagerWidget() +{ + TRACE_OBJ +} + +void BookmarkManagerWidget::closeEvent(QCloseEvent *event) +{ + TRACE_OBJ + event->accept(); + emit managerWidgetAboutToClose(); +} + +void BookmarkManagerWidget::renameItem(const QModelIndex &index) +{ + TRACE_OBJ + // check if we should rename the "Bookmarks Menu", bail + if (!bookmarkModel->parent(index).isValid()) + return; + + bookmarkModel->setItemsEditable(true); + ui.treeView->edit(index); + bookmarkModel->setItemsEditable(false); +} + +static int nextIndex(int current, int count, bool forward) +{ + TRACE_OBJ + if (current >= 0) + return (forward ? (current + 1) : ((current - 1) + count)) % count; + return 0; +} + +void BookmarkManagerWidget::selectNextIndex(bool direction) const +{ + QModelIndex current = ui.treeView->currentIndex(); + if (current.isValid() && !cache.isEmpty()) { + current = cache.at(nextIndex(cache.indexOf(current), cache.size(), + direction)); + } + ui.treeView->setCurrentIndex(current); +} + +bool BookmarkManagerWidget::eventFilter(QObject *object, QEvent *event) +{ + TRACE_OBJ + if (object != ui.treeView && object != ui.treeView->viewport()) + return QWidget::eventFilter(object, event); + + if (event->type() == QEvent::KeyPress) { + QKeyEvent *ke = static_cast(event); + switch (ke->key()) { + case Qt::Key_F2: + renameItem(ui.treeView->currentIndex()); + break; + + case Qt::Key_Delete: + removeItem(ui.treeView->currentIndex()); + break; + + default: break; + } + } + + if (event->type() == QEvent::MouseButtonRelease) { + QMouseEvent *me = static_cast(event); + switch (me->button()) { + case Qt::LeftButton: + if (me->modifiers() & Qt::ControlModifier) + setSourceFromIndex(ui.treeView->currentIndex(), true); + break; + + case Qt::MiddleButton: + setSourceFromIndex(ui.treeView->currentIndex(), true); + break; + + default: break; + } + } + return QObject::eventFilter(object, event); +} + +void BookmarkManagerWidget::findNext() +{ + TRACE_OBJ + selectNextIndex(true); +} + +void BookmarkManagerWidget::findPrevious() +{ + TRACE_OBJ + selectNextIndex(false); +} + +void BookmarkManagerWidget::importBookmarks() +{ + TRACE_OBJ + const QString &fileName = QFileDialog::getOpenFileName(nullptr, tr("Open File"), + QDir::currentPath(), tr("Files (*.xbel)")); + + if (fileName.isEmpty()) + return; + + QFile file(fileName); + if (file.open(QIODevice::ReadOnly)) { + XbelReader reader(bookmarkModel); + reader.readFromFile(&file); + } +} + +void BookmarkManagerWidget::exportBookmarks() +{ + TRACE_OBJ + QString fileName = QFileDialog::getSaveFileName(nullptr, tr("Save File"), + QLatin1String("untitled.xbel"), tr("Files (*.xbel)")); + + const QLatin1String suffix(".xbel"); + if (!fileName.endsWith(suffix)) + fileName.append(suffix); + + QFile file(fileName); + if (file.open(QIODevice::WriteOnly)) { + XbelWriter writer(bookmarkModel); + writer.writeToFile(&file); + } else { + QMessageBox::information(this, tr("Qt Assistant"), + tr("Unable to save bookmarks."), QMessageBox::Ok); + } +} + +void BookmarkManagerWidget::refeshBookmarkCache() +{ + TRACE_OBJ + cache.clear(); + + const QString &text = ui.lineEdit->text(); + if (!text.isEmpty()) + cache = bookmarkModel->indexListFor(text); +} + +void BookmarkManagerWidget::textChanged(const QString &/*text*/) +{ + TRACE_OBJ + refeshBookmarkCache(); + if (!cache.isEmpty()) + ui.treeView->setCurrentIndex(cache.at(0)); +} + +void BookmarkManagerWidget::removeItem(const QModelIndex &index) +{ + TRACE_OBJ + QModelIndex current = index.isValid() ? index : ui.treeView->currentIndex(); + if (!current.parent().isValid() && current.row() < 2) + return; // check if we should delete the "Bookmarks Menu", bail + + if (bookmarkModel->hasChildren(current)) { + int value = QMessageBox::question(this, tr("Remove"), tr("You are going" + "to delete a Folder, this will also
remove it's content. Are " + "you sure to continue?"), + QMessageBox::Yes | QMessageBox::Cancel, QMessageBox::Cancel); + if (value == QMessageBox::Cancel) + return; + } + bookmarkModel->removeItem(current); +} + +void BookmarkManagerWidget::customContextMenuRequested(const QPoint &point) +{ + TRACE_OBJ + const QModelIndex &index = ui.treeView->indexAt(point); + if (!index.isValid()) + return; + + // check if we should open the menu on "Bookmarks Menu", bail + if (!bookmarkModel->parent(index).isValid()) + return; + + QAction *remove = nullptr; + QAction *rename = nullptr; + QAction *showItem = nullptr; + QAction *showItemInNewTab = nullptr; + + QMenu menu; + if (bookmarkModel->data(index, UserRoleFolder).toBool()) { + remove = menu.addAction(tr("Delete Folder")); + rename = menu.addAction(tr("Rename Folder")); + } else { + showItem = menu.addAction(tr("Show Bookmark")); + showItemInNewTab = menu.addAction(tr("Show Bookmark in New Tab")); + menu.addSeparator(); + remove = menu.addAction(tr("Delete Bookmark")); + rename = menu.addAction(tr("Rename Bookmark")); + } + + QAction *pickedAction = menu.exec(ui.treeView->mapToGlobal(point)); + if (pickedAction == rename) + renameItem(index); + else if (pickedAction == remove) + removeItem(index); + else if (pickedAction == showItem || pickedAction == showItemInNewTab) + setSourceFromIndex(index, pickedAction == showItemInNewTab); +} + +void +BookmarkManagerWidget::setSourceFromIndex(const QModelIndex &index, bool newTab) +{ + TRACE_OBJ + if (bookmarkModel->data(index, UserRoleFolder).toBool()) + return; + + const QVariant &data = bookmarkModel->data(index, UserRoleUrl); + if (data.canConvert()) { + if (newTab) + emit setSourceInNewTab(data.toUrl()); + else + emit setSource(data.toUrl()); + } +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/bookmarkmanagerwidget.h b/src/assistant/assistant/bookmarkmanagerwidget.h new file mode 100644 index 0000000..dc56eea --- /dev/null +++ b/src/assistant/assistant/bookmarkmanagerwidget.h @@ -0,0 +1,65 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#ifndef BOOKMARKMANAGERWIDGET_H +#define BOOKMARKMANAGERWIDGET_H + +#include "ui_bookmarkmanagerwidget.h" + +#include + +#include + +QT_BEGIN_NAMESPACE + +class BookmarkModel; +class QCloseEvent; +class QString; + +class BookmarkManagerWidget : public QWidget +{ + Q_OBJECT +public: + explicit BookmarkManagerWidget(BookmarkModel *bookmarkModel, + QWidget *parent = nullptr); + ~BookmarkManagerWidget() override; + +protected: + void closeEvent(QCloseEvent *event) override; + +signals: + void setSource(const QUrl &url); + void setSourceInNewTab(const QUrl &url); + + void managerWidgetAboutToClose(); + +private: + void renameItem(const QModelIndex &index); + void selectNextIndex(bool direction) const; + bool eventFilter(QObject *object, QEvent *event) override; + +private slots: + void findNext(); + void findPrevious(); + + void importBookmarks(); + void exportBookmarks(); + + void refeshBookmarkCache(); + void textChanged(const QString &text); + + void removeItem(const QModelIndex &index = QModelIndex()); + + void customContextMenuRequested(const QPoint &point); + void setSourceFromIndex(const QModelIndex &index, bool newTab = false); + +private: + QMenu importExportMenu; + Ui::BookmarkManagerWidget ui; + QList cache; + + BookmarkModel *bookmarkModel; +}; + +QT_END_NAMESPACE + +#endif // BOOKMARKMANAGERWIDGET_H diff --git a/src/assistant/assistant/bookmarkmanagerwidget.ui b/src/assistant/assistant/bookmarkmanagerwidget.ui new file mode 100644 index 0000000..dc965d9 --- /dev/null +++ b/src/assistant/assistant/bookmarkmanagerwidget.ui @@ -0,0 +1,137 @@ + + + BookmarkManagerWidget + + + + 0 + 0 + 517 + 348 + + + + Manage Bookmarks + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Search: + + + + + + + + + + + + true + + + true + + + true + + + 1000 + + + true + + + true + + + 225 + + + 50 + + + 225 + + + 50 + + + + + + + + + Remove + + + + + + + Import and Backup + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + OK + + + + + + + + + + + pushButton_5 + clicked() + BookmarkManagerWidget + close() + + + 445 + 328 + + + 340 + 313 + + + + + diff --git a/src/assistant/assistant/bookmarkmodel.cpp b/src/assistant/assistant/bookmarkmodel.cpp new file mode 100644 index 0000000..46557a7 --- /dev/null +++ b/src/assistant/assistant/bookmarkmodel.cpp @@ -0,0 +1,423 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "bookmarkmodel.h" +#include "bookmarkitem.h" + +#include +#include +#include + +#include +#include +#include + +const quint32 VERSION = 0xe53798; +const QLatin1String MIMETYPE("application/bookmarks.assistant"); + +BookmarkModel::BookmarkModel() + : QAbstractItemModel() + , m_folder(false) + , m_editable(false) + , rootItem(nullptr) +{ +} + +BookmarkModel::~BookmarkModel() +{ + delete rootItem; +} + +QByteArray +BookmarkModel::bookmarks() const +{ + QByteArray ba; + QDataStream stream(&ba, QIODevice::WriteOnly); + stream << qint32(VERSION); + + const QModelIndex &root = index(0,0, QModelIndex()).parent(); + for (int i = 0; i < rowCount(root); ++i) + collectItems(index(i, 0, root), 0, &stream); + + return ba; +} + +void +BookmarkModel::setBookmarks(const QByteArray &bookmarks) +{ + beginResetModel(); + + delete rootItem; + folderIcon = QApplication::style()->standardIcon(QStyle::SP_DirClosedIcon); + bookmarkIcon = QIcon(QLatin1String(":/qt-project.org/assistant/images/bookmark.png")); + + rootItem = new BookmarkItem(DataVector() << tr("Name") << tr("Address") + << true); + + QStack parents; + QDataStream stream(bookmarks); + + quint32 version; + stream >> version; + if (version < VERSION) { + stream.device()->seek(0); + BookmarkItem* toolbar = new BookmarkItem(DataVector() << tr("Bookmarks Toolbar") + << QLatin1String("Folder") << true); + rootItem->addChild(toolbar); + + BookmarkItem* menu = new BookmarkItem(DataVector() << tr("Bookmarks Menu") + << QLatin1String("Folder") << true); + rootItem->addChild(menu); + parents.push(menu); + } else { + parents.push(rootItem); + } + + qint32 depth; + bool expanded; + QString name, url; + while (!stream.atEnd()) { + stream >> depth >> name >> url >> expanded; + while ((parents.size() - 1) != depth) + parents.pop(); + + BookmarkItem *item = new BookmarkItem(DataVector() << name << url << expanded); + if (url == QLatin1String("Folder")) { + parents.top()->addChild(item); + parents.push(item); + } else { + parents.top()->addChild(item); + } + } + + cache.clear(); + setupCache(index(0,0, QModelIndex().parent())); + endResetModel(); +} + +void +BookmarkModel::setItemsEditable(bool editable) +{ + m_editable = editable; +} + +void +BookmarkModel::expandFoldersIfNeeeded(QTreeView *treeView) +{ + for (QModelIndex index : std::as_const(cache)) + treeView->setExpanded(index, index.data(UserRoleExpanded).toBool()); +} + +QModelIndex +BookmarkModel::addItem(const QModelIndex &parent, bool isFolder) +{ + m_folder = isFolder; + QModelIndex next; + if (insertRow(rowCount(parent), parent)) + next = index(rowCount(parent) - 1, 0, parent); + m_folder = false; + + return next; +} + +bool +BookmarkModel::removeItem(const QModelIndex &index) +{ + if (!index.isValid()) + return false; + + QModelIndexList indexes; + if (rowCount(index) > 0) + indexes = collectItems(index); + indexes.append(index); + + for (const QModelIndex &itemToRemove : std::as_const(indexes)) { + if (!removeRow(itemToRemove.row(), itemToRemove.parent())) + return false; + cache.remove(itemFromIndex(itemToRemove)); + } + return true; +} + +int +BookmarkModel::rowCount(const QModelIndex &index) const +{ + if (BookmarkItem *item = itemFromIndex(index)) + return item->childCount(); + return 0; +} + +int +BookmarkModel::columnCount(const QModelIndex &/*index*/) const +{ + return 2; +} + +QModelIndex +BookmarkModel::parent(const QModelIndex &index) const +{ + if (!index.isValid()) + return QModelIndex(); + + if (BookmarkItem *childItem = itemFromIndex(index)) { + if (BookmarkItem *parent = childItem->parent()) { + if (parent != rootItem) + return createIndex(parent->childNumber(), 0, parent); + } + } + return QModelIndex(); +} + +QModelIndex +BookmarkModel::index(int row, int column, const QModelIndex &index) const +{ + if (index.isValid() && (index.column() != 0 && index.column() != 1)) + return QModelIndex(); + + if (BookmarkItem *parent = itemFromIndex(index)) { + if (BookmarkItem *childItem = parent->child(row)) + return createIndex(row, column, childItem); + } + return QModelIndex(); +} + +Qt::DropActions +BookmarkModel::supportedDropActions () const +{ + return /* Qt::CopyAction | */Qt::MoveAction; +} + +Qt::ItemFlags +BookmarkModel::flags(const QModelIndex &index) const +{ + if (!index.isValid()) + return Qt::NoItemFlags; + + Qt::ItemFlags defaultFlags = Qt::ItemIsEnabled | Qt::ItemIsSelectable; + + if (m_editable) + defaultFlags |= Qt::ItemIsEditable; + + if (itemFromIndex(index) && index.data(UserRoleFolder).toBool()) { + if (index.column() > 0) + return defaultFlags &~ Qt::ItemIsEditable; + return defaultFlags | Qt::ItemIsDropEnabled; + } + + return defaultFlags | Qt::ItemIsDragEnabled; +} + +QVariant +BookmarkModel::data(const QModelIndex &index, int role) const +{ + if (index.isValid()) { + if (BookmarkItem *item = itemFromIndex(index)) { + switch (role) { + case Qt::EditRole: + case Qt::DisplayRole: + if (index.data(UserRoleFolder).toBool() && index.column() == 1) + return QString(); + return item->data(index.column()); + + case Qt::DecorationRole: + if (index.column() == 0) + return index.data(UserRoleFolder).toBool() + ? folderIcon : bookmarkIcon; + break; + + default: + return item->data(role); + } + } + } + return QVariant(); +} + +void BookmarkModel::setData(const QModelIndex &index, const DataVector &data) +{ + if (BookmarkItem *item = itemFromIndex(index)) { + item->setData(data); + emit dataChanged(index, index); + } +} + +bool +BookmarkModel::setData(const QModelIndex &index, const QVariant &value, int role) +{ + bool result = false; + if (role != Qt::EditRole && role != UserRoleExpanded) + return result; + + if (BookmarkItem *item = itemFromIndex(index)) { + if (role == Qt::EditRole) { + const bool isFolder = index.data(UserRoleFolder).toBool(); + if (!isFolder || (isFolder && index.column() == 0)) + result = item->setData(index.column(), value); + } else if (role == UserRoleExpanded) { + result = item->setData(UserRoleExpanded, value); + } + } + + if (result) + emit dataChanged(index, index); + return result; +} + +QVariant +BookmarkModel::headerData(int section, Qt::Orientation orientation, + int role) const +{ + if (rootItem && orientation == Qt::Horizontal && role == Qt::DisplayRole) + return rootItem->data(section); + return QVariant(); +} + +QModelIndex +BookmarkModel::indexFromItem(BookmarkItem *item) const +{ + return cache.value(item, QModelIndex()); +} + +BookmarkItem* +BookmarkModel::itemFromIndex(const QModelIndex &index) const +{ + if (index.isValid()) + return static_cast(index.internalPointer()); + return rootItem; +} + +QList +BookmarkModel::indexListFor(const QString &label) const +{ + QList hits; + const QModelIndexList &list = collectItems(QModelIndex()); + for (const QModelIndex &index : list) { + if (index.data().toString().contains(label, Qt::CaseInsensitive)) + hits.prepend(index); // list is reverse sorted + } + return hits; +} + +bool +BookmarkModel::insertRows(int position, int rows, const QModelIndex &parent) +{ + if (parent.isValid() && !parent.data(UserRoleFolder).toBool()) + return false; + + bool success = false; + if (BookmarkItem *parentItem = itemFromIndex(parent)) { + beginInsertRows(parent, position, position + rows - 1); + success = parentItem->insertChildren(m_folder, position, rows); + if (success) { + const QModelIndex ¤t = index(position, 0, parent); + cache.insert(itemFromIndex(current), current); + } + endInsertRows(); + } + return success; +} + +bool +BookmarkModel::removeRows(int position, int rows, const QModelIndex &index) +{ + bool success = false; + if (BookmarkItem *parent = itemFromIndex(index)) { + beginRemoveRows(index, position, position + rows - 1); + success = parent->removeChildren(position, rows); + endRemoveRows(); + } + return success; +} + +QStringList +BookmarkModel::mimeTypes() const +{ + return QStringList() << MIMETYPE; +} + +QMimeData* +BookmarkModel::mimeData(const QModelIndexList &indexes) const +{ + if (indexes.isEmpty()) + return nullptr; + + QByteArray data; + QDataStream stream(&data, QIODevice::WriteOnly); + + for (const QModelIndex &index : indexes) { + if (index.column() == 0) + collectItems(index, 0, &stream); + } + + QMimeData *mimeData = new QMimeData(); + mimeData->setData(MIMETYPE, data); + return mimeData; +} + +bool +BookmarkModel::dropMimeData(const QMimeData *data, Qt::DropAction action, + int row, int column, const QModelIndex &parent) +{ + if (action == Qt::IgnoreAction) + return true; + + if (!data->hasFormat(MIMETYPE) || column > 0) + return false; + + QByteArray ba = data->data(MIMETYPE); + QDataStream stream(&ba, QIODevice::ReadOnly); + while (stream.atEnd()) + return false; + + qint32 depth; + bool expanded; + QString name, url; + while (!stream.atEnd()) { + stream >> depth >> name >> url >> expanded; + if (insertRow(qMax(0, row), parent)) { + const QModelIndex ¤t = index(qMax(0, row), 0, parent); + if (current.isValid()) { + BookmarkItem* item = itemFromIndex(current); + item->setData(DataVector() << name << url << expanded); + } + } + } + return true; +} + +void +BookmarkModel::setupCache(const QModelIndex &parent) +{ + const QModelIndexList &list = collectItems(parent); + for (const QModelIndex &index : list) + cache.insert(itemFromIndex(index), index); +} + +QModelIndexList +BookmarkModel::collectItems(const QModelIndex &parent) const +{ + QModelIndexList list; + for (int i = rowCount(parent) - 1; i >= 0 ; --i) { + const QModelIndex &next = index(i, 0, parent); + if (data(next, UserRoleFolder).toBool()) + list += collectItems(next); + list.append(next); + } + return list; +} + +void +BookmarkModel::collectItems(const QModelIndex &parent, qint32 depth, + QDataStream *stream) const +{ + if (parent.isValid()) { + *stream << depth; + *stream << parent.data().toString(); + *stream << parent.data(UserRoleUrl).toString(); + *stream << parent.data(UserRoleExpanded).toBool(); + + for (int i = 0; i < rowCount(parent); ++i) { + if (parent.data(UserRoleFolder).toBool()) + collectItems(index(i, 0 , parent), depth + 1, stream); + } + } +} diff --git a/src/assistant/assistant/bookmarkmodel.h b/src/assistant/assistant/bookmarkmodel.h new file mode 100644 index 0000000..9d1453d --- /dev/null +++ b/src/assistant/assistant/bookmarkmodel.h @@ -0,0 +1,80 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#ifndef BOOKMARKMODEL_H +#define BOOKMARKMODEL_H + +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class BookmarkItem; +class QMimeData; +class QTreeView; + +typedef QMap ItemModelIndexCache; + +class BookmarkModel : public QAbstractItemModel +{ + Q_OBJECT +public: + BookmarkModel(); + ~BookmarkModel() override; + + QByteArray bookmarks() const; + void setBookmarks(const QByteArray &bookmarks); + + void setItemsEditable(bool editable); + void expandFoldersIfNeeeded(QTreeView *treeView); + + QModelIndex addItem(const QModelIndex &parent, bool isFolder = false); + bool removeItem(const QModelIndex &index); + + int rowCount(const QModelIndex &index = QModelIndex()) const override; + int columnCount(const QModelIndex &index = QModelIndex()) const override; + + QModelIndex parent(const QModelIndex &index) const override; + QModelIndex index(int row, int column, const QModelIndex &index) const override; + + Qt::DropActions supportedDropActions () const override; + Qt::ItemFlags flags(const QModelIndex &index) const override; + + QVariant data(const QModelIndex &index, int role) const override; + void setData(const QModelIndex &index, const QList &data); + bool setData(const QModelIndex &index, const QVariant &value, int role) override; + QVariant headerData(int section, Qt::Orientation orientation, int role) const override; + + QModelIndex indexFromItem(BookmarkItem *item) const; + BookmarkItem *itemFromIndex(const QModelIndex &index) const; + QList indexListFor(const QString &label) const; + + bool insertRows(int position, int rows, const QModelIndex &parent) override; + bool removeRows(int position, int rows, const QModelIndex &parent) override; + + QStringList mimeTypes() const override; + QMimeData* mimeData(const QModelIndexList &indexes) const override; + bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, + int column, const QModelIndex &parent) override; + +private: + void setupCache(const QModelIndex &parent); + QModelIndexList collectItems(const QModelIndex &parent) const; + void collectItems(const QModelIndex &parent, qint32 depth, + QDataStream *stream) const; + +private: + int columns; + bool m_folder; + bool m_editable; + QIcon folderIcon; + QIcon bookmarkIcon; + QTreeView *treeView; + BookmarkItem *rootItem; + ItemModelIndexCache cache; +}; + +QT_END_NAMESPACE + +#endif // BOOKMARKMODEL_H diff --git a/src/assistant/assistant/bookmarkwidget.ui b/src/assistant/assistant/bookmarkwidget.ui new file mode 100644 index 0000000..a31a277 --- /dev/null +++ b/src/assistant/assistant/bookmarkwidget.ui @@ -0,0 +1,85 @@ + + + BookmarkWidget + + + + 0 + 0 + 235 + 606 + + + + Bookmarks + + + + 4 + + + + + + + Filter: + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Add + + + + + + + Remove + + + + + + + + + + diff --git a/src/assistant/assistant/centralwidget.cpp b/src/assistant/assistant/centralwidget.cpp new file mode 100644 index 0000000..9f55515 --- /dev/null +++ b/src/assistant/assistant/centralwidget.cpp @@ -0,0 +1,609 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "centralwidget.h" + +#include "findwidget.h" +#include "helpenginewrapper.h" +#include "helpviewer.h" +#include "openpagesmanager.h" +#include "tracer.h" + +#include +#include + +#include +#include +#ifndef QT_NO_PRINTER +#include +#include +#include +#include +#endif +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +namespace { + CentralWidget *staticCentralWidget = nullptr; +} + +// -- TabBar + +TabBar::TabBar(QWidget *parent) + : QTabBar(parent) +{ + TRACE_OBJ +#ifdef Q_OS_MAC + setDocumentMode(true); +#endif + setMovable(true); + setShape(QTabBar::RoundedNorth); + setContextMenuPolicy(Qt::CustomContextMenu); + setSizePolicy(QSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred, + QSizePolicy::TabWidget)); + connect(this, &QTabBar::currentChanged, + this, &TabBar::slotCurrentChanged); + connect(this, &QTabBar::tabCloseRequested, + this, &TabBar::slotTabCloseRequested); + connect(this, &QWidget::customContextMenuRequested, + this, &TabBar::slotCustomContextMenuRequested); +} + +TabBar::~TabBar() +{ + TRACE_OBJ +} + +int TabBar::addNewTab(const QString &title) +{ + TRACE_OBJ + const int index = addTab(title); + setTabsClosable(count() > 1); + return index; +} + +void TabBar::setCurrent(HelpViewer *viewer) +{ + TRACE_OBJ + for (int i = 0; i < count(); ++i) { + HelpViewer *data = tabData(i).value(); + if (data == viewer) { + setCurrentIndex(i); + break; + } + } +} + +void TabBar::removeTabAt(HelpViewer *viewer) +{ + TRACE_OBJ + for (int i = 0; i < count(); ++i) { + HelpViewer *data = tabData(i).value(); + if (data == viewer) { + removeTab(i); + break; + } + } + setTabsClosable(count() > 1); +} + +void TabBar::titleChanged() +{ + TRACE_OBJ + for (int i = 0; i < count(); ++i) { + HelpViewer *data = tabData(i).value(); + QString title = data->title(); + title.replace(QLatin1Char('&'), QLatin1String("&&")); + setTabText(i, title.isEmpty() ? tr("(Untitled)") : title); + } +} + +void TabBar::slotCurrentChanged(int index) +{ + TRACE_OBJ + emit currentTabChanged(tabData(index).value()); +} + +void TabBar::slotTabCloseRequested(int index) +{ + TRACE_OBJ + OpenPagesManager::instance()->closePage(tabData(index).value()); +} + +void TabBar::slotCustomContextMenuRequested(const QPoint &pos) +{ + TRACE_OBJ + const int tab = tabAt(pos); + if (tab < 0) + return; + + QMenu menu(QString(), this); + menu.addAction(tr("New &Tab"), OpenPagesManager::instance(), + &OpenPagesManager::createBlankPage); + + const bool enableAction = count() > 1; + QAction *closePage = menu.addAction(tr("&Close Tab")); + closePage->setEnabled(enableAction); + + QAction *closePages = menu.addAction(tr("Close Other Tabs")); + closePages->setEnabled(enableAction); + + menu.addSeparator(); + + HelpViewer *viewer = tabData(tab).value(); + QAction *newBookmark = menu.addAction(tr("Add Bookmark for this Page...")); + const QString &url = viewer->source().toString(); + if (url.isEmpty() || url == QLatin1String("about:blank")) + newBookmark->setEnabled(false); + + QAction *pickedAction = menu.exec(mapToGlobal(pos)); + if (pickedAction == closePage) + slotTabCloseRequested(tab); + else if (pickedAction == closePages) { + for (int i = count() - 1; i >= 0; --i) { + if (i != tab) + slotTabCloseRequested(i); + } + } else if (pickedAction == newBookmark) + emit addBookmark(viewer->title(), url); +} + +// -- CentralWidget + +CentralWidget::CentralWidget(QWidget *parent) + : QWidget(parent) +#ifndef QT_NO_PRINTER + , m_printer(nullptr) +#endif + , m_findWidget(new FindWidget(this)) + , m_stackedWidget(new QStackedWidget(this)) + , m_tabBar(new TabBar(this)) +{ + TRACE_OBJ + staticCentralWidget = this; + QVBoxLayout *vboxLayout = new QVBoxLayout(this); + + vboxLayout->setContentsMargins(QMargins()); + vboxLayout->setSpacing(0); + vboxLayout->addWidget(m_tabBar); + m_tabBar->setVisible(HelpEngineWrapper::instance().showTabs()); + vboxLayout->addWidget(m_stackedWidget); + vboxLayout->addWidget(m_findWidget); + m_findWidget->hide(); + + connect(m_findWidget, &FindWidget::findNext, this, &CentralWidget::findNext); + connect(m_findWidget, &FindWidget::findPrevious, this, &CentralWidget::findPrevious); + connect(m_findWidget, &FindWidget::find, this, &CentralWidget::find); + connect(m_findWidget, &FindWidget::escapePressed, this, &CentralWidget::activateTab); + connect(m_tabBar, &TabBar::addBookmark, this, &CentralWidget::addBookmark); +} + +CentralWidget::~CentralWidget() +{ + TRACE_OBJ + QStringList zoomFactors; + QStringList currentPages; + for (int i = 0; i < m_stackedWidget->count(); ++i) { + const HelpViewer * const viewer = viewerAt(i); + const QUrl &source = viewer->source(); + if (source.isValid()) { + currentPages << source.toString(); + zoomFactors << QString::number(viewer->scale()); + } + } + + HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); + helpEngine.setLastShownPages(currentPages); + helpEngine.setLastZoomFactors(zoomFactors); + helpEngine.setLastTabPage(m_stackedWidget->currentIndex()); + +#ifndef QT_NO_PRINTER + delete m_printer; +#endif +} + +CentralWidget *CentralWidget::instance() +{ + TRACE_OBJ + return staticCentralWidget; +} + +QUrl CentralWidget::currentSource() const +{ + TRACE_OBJ + return currentHelpViewer()->source(); +} + +QString CentralWidget::currentTitle() const +{ + TRACE_OBJ + return currentHelpViewer()->title(); +} + +bool CentralWidget::hasSelection() const +{ + TRACE_OBJ + return !currentHelpViewer()->selectedText().isEmpty(); +} + +bool CentralWidget::isForwardAvailable() const +{ + TRACE_OBJ + return currentHelpViewer()->isForwardAvailable(); +} + +bool CentralWidget::isBackwardAvailable() const +{ + TRACE_OBJ + return currentHelpViewer()->isBackwardAvailable(); +} + +HelpViewer* CentralWidget::viewerAt(int index) const +{ + TRACE_OBJ + return static_cast(m_stackedWidget->widget(index)); +} + +HelpViewer* CentralWidget::currentHelpViewer() const +{ + TRACE_OBJ + return static_cast(m_stackedWidget->currentWidget()); +} + +void CentralWidget::addPage(HelpViewer *page, bool fromSearch) +{ + TRACE_OBJ + page->installEventFilter(this); + page->setFocus(Qt::OtherFocusReason); + connectSignals(page); + const int index = m_stackedWidget->addWidget(page); + m_tabBar->setTabData(m_tabBar->addNewTab(page->title()), + QVariant::fromValue(viewerAt(index))); + connect(page, &HelpViewer::titleChanged, m_tabBar, &TabBar::titleChanged); + + if (fromSearch) { + connect(currentHelpViewer(), &HelpViewer::loadFinished, + this, &CentralWidget::highlightSearchTerms); + } +} + +void CentralWidget::removePage(int index) +{ + TRACE_OBJ + const bool currentChanged = index == currentIndex(); + m_tabBar->removeTabAt(viewerAt(index)); + m_stackedWidget->removeWidget(m_stackedWidget->widget(index)); + if (currentChanged) + emit currentViewerChanged(); +} + +int CentralWidget::currentIndex() const +{ + TRACE_OBJ + return m_stackedWidget->currentIndex(); +} + +void CentralWidget::setCurrentPage(HelpViewer *page) +{ + TRACE_OBJ + m_tabBar->setCurrent(page); + m_stackedWidget->setCurrentWidget(page); + emit currentViewerChanged(); +} + +void CentralWidget::connectTabBar() +{ + TRACE_OBJ + connect(m_tabBar, &TabBar::currentTabChanged, OpenPagesManager::instance(), + QOverload::of(&OpenPagesManager::setCurrentPage)); +} + +// -- public slots + +#if QT_CONFIG(clipboard) +void CentralWidget::copy() +{ + TRACE_OBJ + currentHelpViewer()->copy(); +} +#endif + +void CentralWidget::home() +{ + TRACE_OBJ + currentHelpViewer()->home(); +} + +void CentralWidget::zoomIn() +{ + TRACE_OBJ + currentHelpViewer()->scaleUp(); +} + +void CentralWidget::zoomOut() +{ + TRACE_OBJ + currentHelpViewer()->scaleDown(); +} + +void CentralWidget::resetZoom() +{ + TRACE_OBJ + currentHelpViewer()->resetScale(); +} + +void CentralWidget::forward() +{ + TRACE_OBJ + currentHelpViewer()->forward(); +} + +void CentralWidget::nextPage() +{ + TRACE_OBJ + m_stackedWidget->setCurrentIndex((m_stackedWidget->currentIndex() + 1) + % m_stackedWidget->count()); +} + +void CentralWidget::backward() +{ + TRACE_OBJ + currentHelpViewer()->backward(); +} + +void CentralWidget::previousPage() +{ + TRACE_OBJ + m_stackedWidget->setCurrentIndex((m_stackedWidget->currentIndex() - 1) + % m_stackedWidget->count()); +} + +void CentralWidget::print() +{ + TRACE_OBJ +#if !defined(QT_NO_PRINTER) && !defined(QT_NO_PRINTDIALOG) + initPrinter(); + QPrintDialog dlg(m_printer, this); + + if (!currentHelpViewer()->selectedText().isEmpty()) + dlg.setOption(QAbstractPrintDialog::PrintSelection); + dlg.setOption(QAbstractPrintDialog::PrintPageRange); + dlg.setOption(QAbstractPrintDialog::PrintCollateCopies); + dlg.setWindowTitle(tr("Print Document")); + if (dlg.exec() == QDialog::Accepted) + currentHelpViewer()->print(m_printer); +#endif +} + +void CentralWidget::pageSetup() +{ + TRACE_OBJ +#if !defined(QT_NO_PRINTER) && !defined(QT_NO_PRINTDIALOG) + initPrinter(); + QPageSetupDialog dlg(m_printer); + dlg.exec(); +#endif +} + +void CentralWidget::printPreview() +{ + TRACE_OBJ +#if !defined(QT_NO_PRINTER) && !defined(QT_NO_PRINTDIALOG) + initPrinter(); + QPrintPreviewDialog preview(m_printer, this); + connect(&preview, &QPrintPreviewDialog::paintRequested, + this, &CentralWidget::printPreviewToPrinter); + preview.exec(); +#endif +} + +void CentralWidget::setSource(const QUrl &url) +{ + TRACE_OBJ + HelpViewer *viewer = currentHelpViewer(); + viewer->setSource(url); + viewer->setFocus(Qt::OtherFocusReason); +} + +void CentralWidget::setSourceFromSearch(const QUrl &url) +{ + TRACE_OBJ + connect(currentHelpViewer(), &HelpViewer::loadFinished, + this, &CentralWidget::highlightSearchTerms); + currentHelpViewer()->setSource(url); + currentHelpViewer()->setFocus(Qt::OtherFocusReason); +} + +void CentralWidget::findNext() +{ + TRACE_OBJ + find(m_findWidget->text(), true, false); +} + +void CentralWidget::findPrevious() +{ + TRACE_OBJ + find(m_findWidget->text(), false, false); +} + +void CentralWidget::find(const QString &ttf, bool forward, bool incremental) +{ + TRACE_OBJ + bool found = false; + if (HelpViewer *viewer = currentHelpViewer()) { + HelpViewer::FindFlags flags; + if (!forward) + flags |= HelpViewer::FindBackward; + if (m_findWidget->caseSensitive()) + flags |= HelpViewer::FindCaseSensitively; + found = viewer->findText(ttf, flags, incremental, false); + } + + if (!found && ttf.isEmpty()) + found = true; // the line edit is empty, no need to mark it red... + + if (!m_findWidget->isVisible()) + m_findWidget->show(); + m_findWidget->setPalette(found); +} + +void CentralWidget::activateTab() +{ + TRACE_OBJ + currentHelpViewer()->setFocus(); +} + +void CentralWidget::showTextSearch() +{ + TRACE_OBJ + m_findWidget->show(); +} + +void CentralWidget::updateBrowserFont() +{ + TRACE_OBJ + const int count = m_stackedWidget->count(); + const QFont &font = viewerAt(count - 1)->viewerFont(); + for (int i = 0; i < count; ++i) + viewerAt(i)->setViewerFont(font); +} + +void CentralWidget::updateUserInterface() +{ + m_tabBar->setVisible(HelpEngineWrapper::instance().showTabs()); +} + +// -- protected + +void CentralWidget::keyPressEvent(QKeyEvent *e) +{ + TRACE_OBJ + const QString &text = e->text(); + if (text.startsWith(QLatin1Char('/'))) { + if (!m_findWidget->isVisible()) { + m_findWidget->showAndClear(); + } else { + m_findWidget->show(); + } + } else { + QWidget::keyPressEvent(e); + } +} + +void CentralWidget::focusInEvent(QFocusEvent * /* event */) +{ + TRACE_OBJ + // If we have a current help viewer then this is the 'focus proxy', + // otherwise it's the central widget. This is needed, so an embedding + // program can just set the focus to the central widget and it does + // The Right Thing(TM) + QWidget *receiver = m_stackedWidget; + if (HelpViewer *viewer = currentHelpViewer()) + receiver = viewer; + QTimer::singleShot(1, receiver, + QOverload<>::of(&QWidget::setFocus)); +} + +// -- private slots + +void CentralWidget::highlightSearchTerms() +{ + TRACE_OBJ + QHelpSearchEngine *searchEngine = + HelpEngineWrapper::instance().searchEngine(); + const QString searchInput = searchEngine->searchInput(); + const bool wholePhrase = searchInput.startsWith(QLatin1Char('"')) && + searchInput.endsWith(QLatin1Char('"')); + const QStringList &words = wholePhrase ? QStringList(searchInput.mid(1, searchInput.size() - 2)) : + searchInput.split(QRegularExpression("\\W+"), Qt::SkipEmptyParts); + HelpViewer *viewer = currentHelpViewer(); + for (const QString &word : words) + viewer->findText(word, {}, false, true); + disconnect(viewer, &HelpViewer::loadFinished, + this, &CentralWidget::highlightSearchTerms); +} + +void CentralWidget::printPreviewToPrinter(QPrinter *p) +{ + TRACE_OBJ +#ifndef QT_NO_PRINTER + currentHelpViewer()->print(p); +#endif +} + +void CentralWidget::handleSourceChanged(const QUrl &url) +{ + TRACE_OBJ + if (sender() == currentHelpViewer()) + emit sourceChanged(url); +} + +void CentralWidget::slotHighlighted(const QUrl &link) +{ + TRACE_OBJ + QUrl resolvedLink = m_resolvedLinks.value(link); + if (!link.isEmpty() && resolvedLink.isEmpty()) { + resolvedLink = HelpEngineWrapper::instance().findFile(link); + m_resolvedLinks.insert(link, resolvedLink); + } + emit highlighted(resolvedLink); +} + +// -- private + +void CentralWidget::initPrinter() +{ + TRACE_OBJ +#ifndef QT_NO_PRINTER + if (!m_printer) + m_printer = new QPrinter(QPrinter::HighResolution); +#endif +} + +void CentralWidget::connectSignals(HelpViewer *page) +{ + TRACE_OBJ +#if defined(BROWSER_QTWEBKIT) + connect(page, &HelpViewer::printRequested, + this, &CentralWidget::print); +#endif +#if QT_CONFIG(clipboard) + connect(page, &HelpViewer::copyAvailable, + this, &CentralWidget::copyAvailable); +#endif + connect(page, &HelpViewer::forwardAvailable, + this, &CentralWidget::forwardAvailable); + connect(page, &HelpViewer::backwardAvailable, + this, &CentralWidget::backwardAvailable); + connect(page, &HelpViewer::sourceChanged, + this, &CentralWidget::handleSourceChanged); + connect(page, QOverload::of(&HelpViewer::highlighted), + this, &CentralWidget::slotHighlighted); +} + +bool CentralWidget::eventFilter(QObject *object, QEvent *e) +{ + TRACE_OBJ + if (e->type() != QEvent::KeyPress) + return QWidget::eventFilter(object, e); + + HelpViewer *viewer = currentHelpViewer(); + QKeyEvent *keyEvent = static_cast (e); + if (viewer == object && keyEvent->key() == Qt::Key_Backspace) { + if (viewer->isBackwardAvailable()) { +#if defined(BROWSER_QTWEBKIT) + // this helps in case there is an html field + if (!viewer->hasFocus()) +#endif // BROWSER_QTWEBKIT + viewer->backward(); + } + } + return QWidget::eventFilter(object, e); +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/centralwidget.h b/src/assistant/assistant/centralwidget.h new file mode 100644 index 0000000..2ff379b --- /dev/null +++ b/src/assistant/assistant/centralwidget.h @@ -0,0 +1,146 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef CENTRALWIDGET_H +#define CENTRALWIDGET_H + +#include +#include + +#include +#include + +QT_BEGIN_NAMESPACE + +class FindWidget; +class HelpViewer; +class QStackedWidget; +class QPrinter; + +class TabBar : public QTabBar +{ + Q_OBJECT + friend class CentralWidget; + +public: + ~TabBar(); + + int addNewTab(const QString &title); + void setCurrent(HelpViewer *viewer); + void removeTabAt(HelpViewer *viewer); + +public slots: + void titleChanged(); + +signals: + void currentTabChanged(HelpViewer *viewer); + void addBookmark(const QString &title, const QString &url); + +private: + TabBar(QWidget *parent = nullptr); + +private slots: + void slotCurrentChanged(int index); + void slotTabCloseRequested(int index); + void slotCustomContextMenuRequested(const QPoint &pos); +}; + +class CentralWidget : public QWidget +{ + Q_OBJECT + friend class OpenPagesManager; + +public: + CentralWidget(QWidget *parent = nullptr); + ~CentralWidget() override; + + static CentralWidget *instance(); + + QUrl currentSource() const; + QString currentTitle() const; + + bool hasSelection() const; + bool isForwardAvailable() const; + bool isBackwardAvailable() const; + + HelpViewer *viewerAt(int index) const; + HelpViewer *currentHelpViewer() const; + int currentIndex() const; + + void connectTabBar(); + +public slots: +#if QT_CONFIG(clipboard) + void copy(); +#endif + void home(); + + void zoomIn(); + void zoomOut(); + void resetZoom(); + + void forward(); + void nextPage(); + + void backward(); + void previousPage(); + + void print(); + void pageSetup(); + void printPreview(); + + void setSource(const QUrl &url); + void setSourceFromSearch(const QUrl &url); + + void findNext(); + void findPrevious(); + void find(const QString &text, bool forward, bool incremental); + + void activateTab(); + void showTextSearch(); + void updateBrowserFont(); + void updateUserInterface(); + +signals: + void currentViewerChanged(); +#if QT_CONFIG(clipboard) + void copyAvailable(bool yes); +#endif + void sourceChanged(const QUrl &url); + void highlighted(const QUrl &link); + void forwardAvailable(bool available); + void backwardAvailable(bool available); + void addBookmark(const QString &title, const QString &url); + +protected: + void keyPressEvent(QKeyEvent *) override; + void focusInEvent(QFocusEvent *event) override; + +private slots: + void highlightSearchTerms(); + void printPreviewToPrinter(QPrinter *printer); + void handleSourceChanged(const QUrl &url); + void slotHighlighted(const QUrl& link); + +private: + void initPrinter(); + void connectSignals(HelpViewer *page); + bool eventFilter(QObject *object, QEvent *e) override; + + void removePage(int index); + void setCurrentPage(HelpViewer *page); + void addPage(HelpViewer *page, bool fromSearch = false); + +private: +#ifndef QT_NO_PRINTER + QPrinter *m_printer; +#endif + FindWidget *m_findWidget; + QStackedWidget *m_stackedWidget; + TabBar *m_tabBar; + QHash m_resolvedLinks; +}; + +QT_END_NAMESPACE + +#endif // CENTRALWIDGET_H diff --git a/src/assistant/assistant/cmdlineparser.cpp b/src/assistant/assistant/cmdlineparser.cpp new file mode 100644 index 0000000..e0be70f --- /dev/null +++ b/src/assistant/assistant/cmdlineparser.cpp @@ -0,0 +1,333 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "tracer.h" + +#include +#include +#include + +#include "cmdlineparser.h" + +QT_BEGIN_NAMESPACE + +static const char helpMessage[] = QT_TRANSLATE_NOOP("CmdLineParser", + "Usage: assistant [Options]\n\n" + "-collectionFile file Uses the specified collection\n" + " file instead of the default one\n" + "-showUrl url Shows the document with the\n" + " url.\n" + "-enableRemoteControl Enables Assistant to be\n" + " remotely controlled.\n" + "-show widget Shows the specified dockwidget\n" + " which can be \"contents\", \"index\",\n" + " \"bookmarks\" or \"search\".\n" + "-activate widget Activates the specified dockwidget\n" + " which can be \"contents\", \"index\",\n" + " \"bookmarks\" or \"search\".\n" + "-hide widget Hides the specified dockwidget\n" + " which can be \"contents\", \"index\"\n" + " \"bookmarks\" or \"search\".\n" + "-register helpFile Registers the specified help file\n" + " (.qch) in the given collection\n" + " file.\n" + "-unregister helpFile Unregisters the specified help file\n" + " (.qch) from the give collection\n" + " file.\n" + "-setCurrentFilter filter Set the filter as the active filter.\n" + "-remove-search-index Removes the full text search index.\n" + "-rebuild-search-index Obsolete. Use -remove-search-index instead.\n" + " Removes the full text search index.\n" + " It will be rebuilt on next Assistant run.\n" + "-quiet Does not display any error or\n" + " status message.\n" + "-help Displays this help.\n" + ); + + +CmdLineParser::CmdLineParser(const QStringList &arguments) + : m_pos(0), + m_enableRemoteControl(false), + m_contents(Untouched), + m_index(Untouched), + m_bookmarks(Untouched), + m_search(Untouched), + m_register(None), + m_removeSearchIndex(false), + m_quiet(false) +{ + TRACE_OBJ + for (int i = 1; i < arguments.size(); ++i) { + const QString &arg = arguments.at(i); + if (arg.toLower() == "-quiet") + m_quiet = true; + else + m_arguments.append(arg); + } +} + +CmdLineParser::Result CmdLineParser::parse() +{ + TRACE_OBJ + bool showHelp = false; + + while (m_error.isEmpty() && hasMoreArgs()) { + const QString &arg = nextArg().toLower(); + if (arg == QLatin1String("-collectionfile")) + handleCollectionFileOption(); + else if (arg == QLatin1String("-showurl")) + handleShowUrlOption(); + else if (arg == QLatin1String("-enableremotecontrol")) + m_enableRemoteControl = true; + else if (arg == QLatin1String("-show")) + handleShowOption(); + else if (arg == QLatin1String("-hide")) + handleHideOption(); + else if (arg == QLatin1String("-activate")) + handleActivateOption(); + else if (arg == QLatin1String("-register")) + handleRegisterOption(); + else if (arg == QLatin1String("-unregister")) + handleUnregisterOption(); + else if (arg == QLatin1String("-setcurrentfilter")) + handleSetCurrentFilterOption(); + else if (arg == QLatin1String("-remove-search-index")) + m_removeSearchIndex = true; + else if (arg == QLatin1String("-rebuild-search-index")) + m_removeSearchIndex = true; + else if (arg == QLatin1String("-help")) + showHelp = true; + else + m_error = tr("Unknown option: %1").arg(arg); + } + + if (!m_error.isEmpty()) { + showMessage(m_error + QLatin1String("\n\n\n") + tr(helpMessage), true); + return Error; + } else if (showHelp) { + showMessage(tr(helpMessage), false); + return Help; + } + return Ok; +} + +bool CmdLineParser::hasMoreArgs() const +{ + TRACE_OBJ + return m_pos < m_arguments.size(); +} + +const QString &CmdLineParser::nextArg() +{ + TRACE_OBJ + Q_ASSERT(hasMoreArgs()); + return m_arguments.at(m_pos++); +} + +void CmdLineParser::handleCollectionFileOption() +{ + TRACE_OBJ + if (hasMoreArgs()) { + const QString &fileName = nextArg(); + m_collectionFile = getFileName(fileName); + if (m_collectionFile.isEmpty()) + m_error = tr("The collection file '%1' does not exist."). + arg(fileName); + } else { + m_error = tr("Missing collection file."); + } +} + +void CmdLineParser::handleShowUrlOption() +{ + TRACE_OBJ + if (hasMoreArgs()) { + const QString &urlString = nextArg(); + QUrl url(urlString); + if (url.isValid()) { + m_url = url; + } else + m_error = tr("Invalid URL '%1'.").arg(urlString); + } else { + m_error = tr("Missing URL."); + } +} + +void CmdLineParser::handleShowOption() +{ + TRACE_OBJ + handleShowOrHideOrActivateOption(Show); +} + +void CmdLineParser::handleHideOption() +{ + TRACE_OBJ + handleShowOrHideOrActivateOption(Hide); +} + +void CmdLineParser::handleActivateOption() +{ + TRACE_OBJ + handleShowOrHideOrActivateOption(Activate); +} + +void CmdLineParser::handleShowOrHideOrActivateOption(ShowState state) +{ + TRACE_OBJ + if (hasMoreArgs()) { + const QString &widget = nextArg().toLower(); + if (widget == QLatin1String("contents")) + m_contents = state; + else if (widget == QLatin1String("index")) + m_index = state; + else if (widget == QLatin1String("bookmarks")) + m_bookmarks = state; + else if (widget == QLatin1String("search")) + m_search = state; + else + m_error = tr("Unknown widget: %1").arg(widget); + } else { + m_error = tr("Missing widget."); + } +} + +void CmdLineParser::handleRegisterOption() +{ + TRACE_OBJ + handleRegisterOrUnregisterOption(Register); +} + +void CmdLineParser::handleUnregisterOption() +{ + TRACE_OBJ + handleRegisterOrUnregisterOption(Unregister); +} + +void CmdLineParser::handleRegisterOrUnregisterOption(RegisterState state) +{ + TRACE_OBJ + if (hasMoreArgs()) { + const QString &fileName = nextArg(); + m_helpFile = getFileName(fileName); + if (m_helpFile.isEmpty()) + m_error = tr("The Qt help file '%1' does not exist.").arg(fileName); + else + m_register = state; + } else { + m_error = tr("Missing help file."); + } +} + +void CmdLineParser::handleSetCurrentFilterOption() +{ + TRACE_OBJ + if (hasMoreArgs()) + m_currentFilter = nextArg(); + else + m_error = tr("Missing filter argument."); +} + +QString CmdLineParser::getFileName(const QString &fileName) +{ + TRACE_OBJ + QFileInfo fi(fileName); + if (!fi.exists()) + return QString(); + return fi.absoluteFilePath(); +} + +void CmdLineParser::showMessage(const QString &msg, bool error) +{ + TRACE_OBJ + if (m_quiet) + return; +#ifdef Q_OS_WIN + QString message = QLatin1String("

") % msg % QLatin1String("
"); + if (error) + QMessageBox::critical(0, tr("Error"), message); + else + QMessageBox::information(0, tr("Notice"), message); +#else + fprintf(error ? stderr : stdout, "%s\n", qPrintable(msg)); +#endif +} + +void CmdLineParser::setCollectionFile(const QString &file) +{ + TRACE_OBJ + m_collectionFile = file; +} + +QString CmdLineParser::collectionFile() const +{ + TRACE_OBJ + return m_collectionFile; +} + +bool CmdLineParser::collectionFileGiven() const +{ + TRACE_OBJ + return m_arguments.contains(QLatin1String("-collectionfile"), + Qt::CaseInsensitive); +} + +QUrl CmdLineParser::url() const +{ + TRACE_OBJ + return m_url; +} + +bool CmdLineParser::enableRemoteControl() const +{ + TRACE_OBJ + return m_enableRemoteControl; +} + +CmdLineParser::ShowState CmdLineParser::contents() const +{ + TRACE_OBJ + return m_contents; +} + +CmdLineParser::ShowState CmdLineParser::index() const +{ + TRACE_OBJ + return m_index; +} + +CmdLineParser::ShowState CmdLineParser::bookmarks() const +{ + TRACE_OBJ + return m_bookmarks; +} + +CmdLineParser::ShowState CmdLineParser::search() const +{ + TRACE_OBJ + return m_search; +} + +QString CmdLineParser::currentFilter() const +{ + TRACE_OBJ + return m_currentFilter; +} + +bool CmdLineParser::removeSearchIndex() const +{ + TRACE_OBJ + return m_removeSearchIndex; +} + +CmdLineParser::RegisterState CmdLineParser::registerRequest() const +{ + TRACE_OBJ + return m_register; +} + +QString CmdLineParser::helpFile() const +{ + TRACE_OBJ + return m_helpFile; +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/cmdlineparser.h b/src/assistant/assistant/cmdlineparser.h new file mode 100644 index 0000000..04ca012 --- /dev/null +++ b/src/assistant/assistant/cmdlineparser.h @@ -0,0 +1,78 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef CMDLINEPARSER_H +#define CMDLINEPARSER_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class CmdLineParser +{ + Q_DECLARE_TR_FUNCTIONS(CmdLineParser) +public: + enum Result {Ok, Help, Error}; + enum ShowState {Untouched, Show, Hide, Activate}; + enum RegisterState {None, Register, Unregister}; + + CmdLineParser(const QStringList &arguments); + Result parse(); + + void setCollectionFile(const QString &file); + QString collectionFile() const; + bool collectionFileGiven() const; + QString cloneFile() const; + QUrl url() const; + bool enableRemoteControl() const; + ShowState contents() const; + ShowState index() const; + ShowState bookmarks() const; + ShowState search() const; + QString currentFilter() const; + bool removeSearchIndex() const; + bool rebuildSearchIndex() const; + RegisterState registerRequest() const; + QString helpFile() const; + + void showMessage(const QString &msg, bool error); + +private: + QString getFileName(const QString &fileName); + bool hasMoreArgs() const; + const QString &nextArg(); + void handleCollectionFileOption(); + void handleShowUrlOption(); + void handleShowOption(); + void handleHideOption(); + void handleActivateOption(); + void handleShowOrHideOrActivateOption(ShowState state); + void handleRegisterOption(); + void handleUnregisterOption(); + void handleRegisterOrUnregisterOption(RegisterState state); + void handleSetCurrentFilterOption(); + + QStringList m_arguments; + int m_pos; + QString m_collectionFile; + QString m_cloneFile; + QString m_helpFile; + QUrl m_url; + bool m_enableRemoteControl; + + ShowState m_contents; + ShowState m_index; + ShowState m_bookmarks; + ShowState m_search; + RegisterState m_register; + QString m_currentFilter; + bool m_removeSearchIndex; + bool m_quiet; + QString m_error; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/assistant/assistant/contentwindow.cpp b/src/assistant/assistant/contentwindow.cpp new file mode 100644 index 0000000..d9fc185 --- /dev/null +++ b/src/assistant/assistant/contentwindow.cpp @@ -0,0 +1,168 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "contentwindow.h" + +#include "centralwidget.h" +#include "helpenginewrapper.h" +#include "helpviewer.h" +#include "openpagesmanager.h" +#include "tracer.h" + +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +ContentWindow::ContentWindow() + : m_contentWidget(HelpEngineWrapper::instance().contentWidget()) + , m_expandDepth(-2) +{ + TRACE_OBJ + m_contentWidget->viewport()->installEventFilter(this); + m_contentWidget->setContextMenuPolicy(Qt::CustomContextMenu); + + QVBoxLayout *layout = new QVBoxLayout(this); + layout->setContentsMargins(4, 4, 4, 4); + layout->addWidget(m_contentWidget); + + connect(m_contentWidget, &QWidget::customContextMenuRequested, + this, &ContentWindow::showContextMenu); + connect(m_contentWidget, &QHelpContentWidget::linkActivated, + this, &ContentWindow::linkActivated); + + QHelpContentModel *contentModel = + qobject_cast(m_contentWidget->model()); + connect(contentModel, &QHelpContentModel::contentsCreated, + this, &ContentWindow::expandTOC); +} + +ContentWindow::~ContentWindow() +{ + TRACE_OBJ +} + +bool ContentWindow::syncToContent(const QUrl& url) +{ + TRACE_OBJ + QModelIndex idx = m_contentWidget->indexOf(url); + if (!idx.isValid()) + return false; + m_contentWidget->setCurrentIndex(idx); + m_contentWidget->scrollTo(idx); + return true; +} + +void ContentWindow::expandTOC() +{ + TRACE_OBJ + Q_ASSERT(m_expandDepth >= -2); + if (m_expandDepth > -2) { + expandToDepth(m_expandDepth); + m_expandDepth = -2; + } +} + +void ContentWindow::expandToDepth(int depth) +{ + TRACE_OBJ + Q_ASSERT(depth >= -2); + m_expandDepth = depth; + if (depth == -1) + m_contentWidget->expandAll(); + else if (depth == 0) + m_contentWidget->collapseAll(); + else + m_contentWidget->expandToDepth(depth - 1); +} + +void ContentWindow::focusInEvent(QFocusEvent *e) +{ + TRACE_OBJ + if (e->reason() != Qt::MouseFocusReason) + m_contentWidget->setFocus(); +} + +void ContentWindow::keyPressEvent(QKeyEvent *e) +{ + TRACE_OBJ + if (e->key() == Qt::Key_Escape) + emit escapePressed(); +} + +bool ContentWindow::eventFilter(QObject *o, QEvent *e) +{ + TRACE_OBJ + if (m_contentWidget && o == m_contentWidget->viewport() + && e->type() == QEvent::MouseButtonRelease) { + QMouseEvent *me = static_cast(e); + const QModelIndex &index = m_contentWidget->indexAt(me->pos()); + if (!index.isValid()) + return QWidget::eventFilter(o, e); + + const Qt::MouseButtons button = me->button(); + QItemSelectionModel *sm = m_contentWidget->selectionModel(); + if (sm->isSelected(index)) { + if ((button == Qt::LeftButton && (me->modifiers() & Qt::ControlModifier)) + || (button == Qt::MiddleButton)) { + QHelpContentModel *contentModel = + qobject_cast(m_contentWidget->model()); + if (contentModel) { + QHelpContentItem *itm = contentModel->contentItemAt(index); + if (itm && HelpViewer::canOpenPage(itm->url().path())) + OpenPagesManager::instance()->createPage(itm->url()); + } + } else if (button == Qt::LeftButton) { + itemClicked(index); + } + } + } + return QWidget::eventFilter(o, e); +} + + +void ContentWindow::showContextMenu(const QPoint &pos) +{ + TRACE_OBJ + if (!m_contentWidget->indexAt(pos).isValid()) + return; + + QHelpContentModel *contentModel = + qobject_cast(m_contentWidget->model()); + QHelpContentItem *itm = + contentModel->contentItemAt(m_contentWidget->currentIndex()); + + QMenu menu; + QAction *curTab = menu.addAction(tr("Open Link")); + QAction *newTab = menu.addAction(tr("Open Link in New Tab")); + if (!HelpViewer::canOpenPage(itm->url().path())) + newTab->setEnabled(false); + + menu.move(m_contentWidget->mapToGlobal(pos)); + + QAction *action = menu.exec(); + if (curTab == action) + emit linkActivated(itm->url()); + else if (newTab == action) + OpenPagesManager::instance()->createPage(itm->url()); +} + +void ContentWindow::itemClicked(const QModelIndex &index) +{ + TRACE_OBJ + QHelpContentModel *contentModel = + qobject_cast(m_contentWidget->model()); + + if (contentModel) { + if (QHelpContentItem *itm = contentModel->contentItemAt(index)) { + const QUrl &url = itm->url(); + if (url != CentralWidget::instance()->currentSource()) + emit linkActivated(url); + } + } +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/contentwindow.h b/src/assistant/assistant/contentwindow.h new file mode 100644 index 0000000..5dae053 --- /dev/null +++ b/src/assistant/assistant/contentwindow.h @@ -0,0 +1,46 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef CONTENTWINDOW_H +#define CONTENTWINDOW_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QHelpContentWidget; + +class ContentWindow : public QWidget +{ + Q_OBJECT + +public: + ContentWindow(); + ~ContentWindow() override; + + bool syncToContent(const QUrl &url); + void expandToDepth(int depth); + +signals: + void linkActivated(const QUrl &link); + void escapePressed(); + +private slots: + void showContextMenu(const QPoint &pos); + void expandTOC(); + void itemClicked(const QModelIndex &index); + +private: + void focusInEvent(QFocusEvent *e) override; + void keyPressEvent(QKeyEvent *e) override; + bool eventFilter(QObject *o, QEvent *e) override; + + QHelpContentWidget * const m_contentWidget; + int m_expandDepth; +}; + +QT_END_NAMESPACE + +#endif // CONTENTWINDOW_H diff --git a/src/assistant/assistant/doc/images/assistant-assistant.png b/src/assistant/assistant/doc/images/assistant-assistant.png new file mode 100644 index 0000000000000000000000000000000000000000..368b5c9325f1d988d5b1973e38affd5d04f0ab4c GIT binary patch literal 47313 zcmZU)cRbtQ_Xn=iy8}f_)rcBR)vCQiixNtxRl9cW+AC9cs4G!izjvLCjEn-Ttnh-2?6MXa z*~NqZE|OZr)%g3!$f}dT3Qx4X$JZLJCEeCZ$v567VAUbLlgZ0A8|hMBwSK;9p1urU z@2q=rU%BG-=E80L$u8b0IXQ*f4;87O&~Yim`SV`CY*{sW{h{Yrl{xQ|+nSnV3W~Q- zr`-{#kF?Z4Hul8Au0r1#APefFxXYY^rM1sAvC)k!uSX|xbwRY?PmYUa&7<0dtNJOH zZLU`Hqpmu!ue!grhu7*&6&lk_!db&zsL&ytK8lVLmCUkc=8;CZWO8Z>Cw4=&gDO=& zB9141ubS#_R37^|c1w;_e&q9FI2~@tRZO?vh|Ad!@nYa#F&dCY2y4)}`8lYTFZKUW zKeqN*5v$<$QlLlLxz~(W4t{gy^(bjHZpsf`r9T>D^yc4<6jfq0m92eAZ_c-UquAMG zIlYgwHm9*B<#o-2Ax>OwcJ1ZDJjIZNx?NRye8r1mvwl@$La}H+uSuxzb&cuDqWJx} z!wq3OuJwY6?>Sk)n7K*5#VnnI(`Tzcjt#3cS0zU(N>)c`U^!p=nujYFYehXu?X`f7 zgB7KcH<0v($p@MqrA>J~9{Ynepr5YB&>GNucSE0|u}9jWiG7WU@kTh`{vn?VLskgm z#=c?pceiCp_-tggj83qq{>s_yQWc zlv^-N!951Z)<04WN{E2JTFK3V>YlUd$3@=u)VXXf&i*XQy#wZH(T>8(0!?|k;nv1O zuXdS3CY}?_hjAA67=V85!P2Kxu_~3&h7n{5Hfi?;+fC6G<%S)Z=8__HCt3W8o;}1~Y3tCk-w5M?qALb2X_oVGh$v5zp z4AE@n3H>XcK~cP>BhY^x+yk|=)t+=mcFOQ?tRD?-V7r?pM$DY|FJstQW>pNrYuj>Z zdWlulxY0pmS5i2gS8+;hrqj%(cyL9@)$}=vFqWn!j?QA~^HHJlG8aiquaToXg%Xu? zJto}{_1i(ZBRqDMiwk>VvJA`4pp?%rD`A$tJF4EdcU|trY30x9_&9o{j`USuXIT8k zA#HxXtQuFkqA9d)3|_?7Jjy5B9Nn%IXn0rlTz2QA!akLg5x*@45b3uF(-KaY|47C~ zjx55BJC#sqU6ihDD5Ny|%R==EPZ0_@Fy`d*1dW9Zlt53*6@!oRGQk3LI(6z)16EnlQ=6)HlxjSVCQRbpf>mLhX7M>TemRGvO0V5n&w=2B4iwTGd zOqT7PGh#Vj0eA|LW8foU!TKlksuSSe(g%SH_e;)9AQ@S_(o{qeL}UH0l5{-%yMM{@ zFAUaP`}_QM+zh1lDANupuRdVpU35;x>VdDJ{`dNxGpO~iB7C7s>XrXL9sB=3lvv4^ zUtQg(w$qvCPMGo5U#3Xpue`jSrT)0f%W$LxxYlBL<$ON2Nxke69wmj^_~@TecYAb-7)@(% z)(i`7>qk}p%z?%L3Me{gvpzpHyzg!1ags@;n!Qz(*L0-XSz%dsES;|4r{&JE6KRBPt1YC-}F!W&;x@WmnBjPb6VdRNwN!>NEVkK)=I@514tc z+&?nwm%7>b>&KlZoLaRPbbkN&)cnqB+}a>d^{e{P#C@B`j7#|gWo^zn5kJ`#4=VY#@ z?PV^ZeXmno7&G(2MYOcQ4!!TJI!(jyZdSsryPhwBkyX95;%9MZNGNnkmD>4zuo>tYJP{#3E9TsmA?%01ao zi#OVKEAu^`ZX*R#b07apzCgEsLq{=9r@+}o;mM1{TaGB;?=OO|SNG0(lWR+XIr9&? zeeONX)%#`#U5Kc-=Md9tvKy2-zX2gms>WC`S6 z?95W-Y(ZlMK%#gsaA5f-qAY5X*YU_oFi1a_TH(d?iwteEVmHyC=azK^^Uxg+U(32= zrGq3G8_2=~lckH`N#|nUnTHxVhfY9m{bha~4}R?C_B0u67uK!XWo$Z?&!Kh{-{awX z?4UNa-23KF5ARJ-%R2#t&ALIUgV_AuGXrkg>)uHasQ2$4tL5jT>E0oiIH%P8hR()H zmMje4>8K{iIew`5cCJ163xACr**_EX^Pf>kNP=y13^+e}i%RJgJ0~S8c=3)jpy zK3*BSq4zv+{pZP)Y2dNP;T@KPgP(`Hs~FxSvBuY^pZER!8Z&0fP4}^NvVI3!v!6D8 z2k!JK<>cg)+w=yQn)RefAgtEMD@>u=il0>)PY#te`?|dHcubp|u=PHSm>%Og+m_I7 zm2TZ{<8`itM&r7@Tu(#LSb3#`Ro}1`EhuTgdAE2(54~1yu2R(>maYm< zeRm#Wv~17KfkqKJkIwqkna{`XK!|?#^|q-$OR5YP;NY!<|{+d?Iq#7U8Uus7kX_^CDU zVn(g$>C@6{7m!i>T-@BMv%1duJDA4Ef$kB=5wS%C9$%WU*zq;pl=+b?j&L$3z>Iyq zRuyO}fzgt{w1}VW!kcvN0alO2R(PXkCUEN)Ih!mfUV2)f^iAK-n5p@y03mG4K+Ymi zZ(Ramjr=8I*eyGXus9}JEw7D9u1ti->aZ9&)r#zwnMBioWb06q!Wdo0F@)88d*soa zvK%<$H%Eq$*M`xUl{jq6Oru46gnsp#+35y9ElM$+tS2H2S~!2iIo4Zt)tw= z;aB^69?7oprHzLwL63xNdU&|F#>#CVSNQ|xgT$0%ytaQTtx)(bG(YJTW!M=tT~Pcr z9~iK?j#T9Mgj@YcxM_cy${=LjQ3#Qt@@Uv?Yz~CiZx6NEPn*{G^pQ^_I*c|zR~vOE zWDOeDf36_j7kT+tdT#15?lDgt%=S^-03|(m@>P#~f&S()FfqX()Fj1yZ*2^|rfjM! z`3qruk}hb~g|O-d5f*5D=s`zoLbj*-GlBdk?CDc?xOJ7kKkPVWc=_1nGauAN(XrFVx;aAy3K|EW!kS!mC8P}U$0J?p})Z*Gdu2Fr#KZaVJUm;Fbun#wCA zH?7_s{wljFjxBYg+#~!+y=EBT?cB{}k!;PEYSFFj#sDhcFB~d*vHCllTm>|tFGVv% z-4eZS{={60W>3G?yC<)Rgcfe4flI&tB1eED%7I8r?eT^ zGOHOYc9U6B*cLzbmvi}>h|2^OO+^|%D-OO&K?+qDMI6$oFz?U2 zu52q1m(8g&H?xfWPqmq~6jw|ZVcyhMTYSz#Gwy>xJ0Cb}N)4Pu=%t zyJy&za-7`Ni(y1%8FMMu`>CRiG3)(Rw?wYHW*t%*)MDMek7u{WAr{@W^0WTf=Aylj z%^K{x1+>l610a)q81B+~Hh78UarQkOla_YE zE6|y*Ea!?D5RZH30-8vKrOJHo+*Z3XtHz%;F8<007BU~wSm}euL?ppJ_;SFNPP`5@ zZ+AjtJ7DfhS|wUBlb>+>@MD8{f`2ONE|cBSbktEUpeuDdnTHBZEdG-J`pJx8xT&*X zJwB2Yah_oBi3O}~0^q*0`Rk50{*(46HqNLchqpZ8AV$P&H^U-wBo1I$ezLWr2&d#a z`7u*3e;l5r`YVoaIklI{Wg#+F;$|x}o13SPOhRKC=`!EmY43A?@8Nw`AKuy9)XFu< znetCIbV4bQ#R35)0T1gJ=C@)XY~B6uXNQzp!euE<0|<`b)ZW9g*@2^G*)_`3@7*s0 z4$VgPkyUG>xRW&o_6K(w2c%>NH^Rs{->Vww8Qhh|&0BzQ$)NO+1PWhU%&3VyTaKPMAh1_JDvHauVM3BJ+?t- zOxFj^h z*k1I~hnA+LHVRJ_>S2k}a(IqDmOSD9`N zxrM_(hOXJ`_5ARpqp^<#w7QK0zPrB@*x}AZ&pOivDchhX!sG}cA$5jm3VU9N9}cO{ zl<8HQ+MkP~!jA-;OfQ$u6lrB1d++V6K=Rbb2P$^{Bzbk$HGsC4-BC*I>-iY=4mz*{ zEk3%Bl}*B&Qt&?$nk)NU9nY>&fQd@Jcb_RINUwvQ;%4*K@3V}F^CTbx^oLnsYX(j!Vml$zXj|D zANtf?dZr8o-4qmf+uFEb!7e}>9ja@Al@_enNy%N`@LtL(N|7CK?fO)g`)vc{wOF{z zxHw75qh(0@AST=2Vuy66EjkmXxxJ+8-ndoj^oRq_ytFTssgS86Csl&CykC?v^DPrU z8}HdoONokw9!+^!{6$mcc^ia_|d(#PpXTMLsd>jKNO1%<5NJq=(){#KlK3MUjB)gYw1 zG9J=A6K7$@TGVgZV0)OeliNr)pO35%{ zJpq$S({`PPuub6T5T3~l5`3DggC$zC+jyijWNwoCZTPS39>E!Q)|~`q>3sKdo|2f0HdCBYNTLshEs}BU|G?|lC4J5a5r%#u2 zRZFKH1Hj7yxmA*H{>Z(sb!Mc$nZg&_qvo>~E8$p$@?R#*$*g~BT58;ReY!hCIT7Hy zRsv937sn4{v>J5Nm+F^_DBD6G@TSxSw#SlN%Zilu?rM?C*4vEe@)K(E2GC-S+u?r5 zldmHP!x^K%nTRR>h|b~Z8PQ@0xafp?gQ0q*F(AkBQ}?qp886-14DzVBhMK*1^h($q zXHcf(3{t>ERawd8ZXJgMn^1k{H`>6@jGPsn{goC*8<(W5Ha%@nEUp zn#CaxpZ=C>QzN?0vy)K-p?{ju)a|#@w9#dM*g<=PjxTPO+qvo3^YeW$2*d950Kk}h z_fLu542qD*y($9TsiosL3WUHy_IGQS`%Wk}mXq;tFANa@p1EV?8r}-X@WC)72TT7! z>U<-XY~xpr@fz7UU4BuAzTI3=ev#KF(4JDKK9j0rVyTn%+ZqW<^Fqs$@OQM@XT-N*CndiEsPW{(<ScP-6oK=)qzx zh1**zyZZ6Q8xr2=Zw{uphT;9a@$|mkB^C*VQADQ-qu1iS*C~qgY^ibXNr? zR(tUplCZ>?{U8~(_UWo$8m9nU98s#NTSj!(D$gPOGS&%c)zA3)jUQ6pg4Bf?LQP}J`b1M0Z;|n@v_>6^ZGAnVq%uaTLSX0BB zQl~X@ll1gcTT{!<*?|(@7y9VwCy8DC?J}yVJ3Nj=T)!cXe)6Ds?U}L7)Nki)fBwWt zB5DFX5J9+0&BETnewROjx1BGH&~b~4T2bpB=Lx$x7iM0lM=8^;wCUt|544Z*O zQo85)ArBibo7d^jXu+H(J(~s##QpaYr^jy`YW~coN#Zu&UtwgAI{tZyO8R(bz%}b) zkAI%-wC~ENw7@0_Y}1B^_O$0}bcA-mQA9%(zj(hxXD22Hn93*NGlGbPB&I7D;y%nn z(`d}Y2_1pvzgYKEG!b4V!Y?eD@;53R%PQL-(TQHkwd^m14Z3 zVLS99qQ?EH*?xErRNy|bFMSqa8eDbKyM;;XKy24|2aE0GUyQJ*(Zls(|GXoZ;bVJ3We($B zfV-fyOWM=Iyv9h*ElPEq{BNuG?SrHHg27h=_~02|nD>>dc6_uM>j-3Pph9e%@lK zSvS|1Q$%Ri_QY&GaE^6IJaRid-al%%0k|pQZ%!y+$3vKtf!z~V*0H^CG1rZ?jiQ9c zlRl>wXo;`eB(qk+6v4^1?pJjCjOT=7Kds7Lj%~tC{ zldV@h0G2313#Qa2!Ji|=WyXKM;b1QOSBv0yS2`&qiU%@bX~iehK5%S2uuf*u(OdIl zH=IkI6o6OvzvM?>N6{A~L)4`kX?tDVuKEZI0J!c^U9VYn*^C_5cAyo2b1Wji$(%(- z+J%J604#gcPA}t#k0n+%T~hcl^gH;V#WZA}=;+-$^TBKA#%6=0QGmSn%(q#HRK~$; zqb>|y|8`5@!kcTjyC>}YmRW0$NPoP%6oMv3L02a#i{Yac>QCyzePuJGz7Z$Jj?_y} zh-(`bvdo8k(1p;gvVqww*$+(zp!!V(@8d+QLI8$Ed#Gw&>lG!=x@D|gJCmllx3&7NU?7) zIv4g%jO01s3~nlED=oBs24ubcD&JrB*+GtdoZSpiebKH6IQ9*@*y(*p1v-#>6sPX_0~K25xi;Nsbu=MA-H7YrUQEZOpv^Z^ zs??dek2i|uHXD6S6I@#AB3NV`beH>0R&{r$t5$a}9jW1K>{k#~xxMlG`-iKgf%{Wl zv{%7Ul+x26S3q_JZYOn*cE(xS_9#*a)J<4SmuQOTs0vNxl^OG#=(|A5OIF%!{(N_- z4Pa@hx%E|iysI?TjTkZ)JJJ*=IPnM~-Gk)ESU~&+Bx5**8vPm&Q^l_!DDT_B{kJ$U z^m@b*vHj3Jc8U;BgAri{ZMj+&c>(*cL|X3V{SJ=A8XCvobt9^koI$ffAWW^uv6CzH#u z51-K+{ZM)~3KY@b+kU;EB>akaBXH7vVRF1hc3qr~?{3o<@3zW##{GaJ3-6Opj@+Uf z#+5Fc8S}FgrpG@Pmmr(c$E(roN-90^+gi1W=2L`0wHg9;YIMK89(=mJ6*t2-DPwS$ zm=`E5;%=Kqej{*ys}37Z-HAg*aLdXzntJk%3!Kb?v9d(p<2baEZ;N$4(%U)w-Fwa5t0lGJNgiX5P^P?|=-T9(5xug@J?$!SU(UXY2Yx2NR|A@B`>xSg#H9 zsRO1Fv2C1DQySPbeItRFvC2{F31PZ&6JjgqKIc}hnwL;=Pta2N_;B|uJ|GC^#;!l` zk`Dq3T3ffHl5sULc{3ftzXbs)&u_A_TXN_)Ol&l;QJFhYFpAc1w=>qcFS8Y0kkuP1 z!tJyZ#LWdgxylF;_N5X=$n?rwru?W)fs0DIPfi`gxKq`V+gSDSVT;9FWA^vpF6%n# z%mtVJKYHDaMv`uGvTqThy_?sfnV*5jQ#*S1*VX-HUgK7)>W7+E56ZG0KvEw2y!cAA zhBp@v4`StvnccTT^HLR0h ztx!v*xc^`Z)~z!O#-Eek#%;qSIxaiC7`@xeUJ4I9A$U#uC^-dbbJA9W_YJHe0kgsM zXDKO94qInGuk|T}hg)Atl~Pn7a35hLi`SPqNad$zK61d6$qQK$4*&QK02_!47T?r2YyL-^g`>`x-j(?$!kxNiQY)$tp(Gl|?UfF*agXydgPrwV`ITIZoe zH1f?o>`n4M5A+iA5%g+%G~&Sk!$IO;jW!#;Pfh4^9HG@l_IvM}TgG1GaZJEZy{TJ? zqK+R4kBdY|=QI!xUhx5m5*UVTEwMB3BeUscXVsZ?zwV{`GMwV9Uul+ez|K;^z~p<& zj{P&d+}yD&sY$TD)Wo;%t2OM#Ei~dxZT7{etHwMz>Q`S@6BWEq#b#lR*Z5zSTTC?e zdIjJX_t3NN)HuW&9Q^!{Id$e#qSvP13I*2^_gIKY;vZ*F2vgVPo96a3d3FHB+;<6t-y7k$trn{8 z|8iFOh{huingEBRrbjX!=?VrH55XdZ(zD`lp5{+9J~4B#&o7*X-Q$j+f(X1z2kc>2 z@vNg_KqJ9-#qZL_-F@|5bgCHnrlTL%XZKabG!CqiWZ;X`of<7=SGUyOP+*H8>_ZhG z@`FD|bNP|CWwLbO)S(Qy*GB?Vq;hoJwbvjuKog;~_oUzn48L*j7{c35bPE?~sye&1xsQqEdkF{m8ywEiKDe!dNP~)U{1Np(6uu^|yrqPg zGVxvJ1P7!_dK5}0%3l=8tRo5EL}sZqF&yS^0-f8+Y$3M>jGDYWG}-@U?EHEHu|Yw> zS6e+DOmFn&S1`TFL$H&%e*gQxooJgjsYMBs29!Fk#@3zj`$J9GE}f5dS8 zz6z_5j`Ax71HL|vS_?gdF z&ivk3ow<3jR&x9~MC`?5cspd2wCe=tp-edTXn2i9U1Y#)OlQMAx+uQS)LR#nT#xj) zG3-xR7zX&KoRa%l)z(S(*?$VQlx9Nq0~tYEjtjv&fI#|yoL9u~h8wkw{Wi~*$q}ku zmqp-6r^alH^del~1ax6WjB%F=t#r(9VJnIQq(mNs=C+)iM1748OpW}=gJ!?NrdpJ- z+aEzl!dZyJ`ef;Z;u_k$S@hKoIGA{GUtV0R>G+RZK48HmhfSLej^jh6?gz}bj~M%V zIL)_<$?m;W{-GqAA;TEvlzy~4nUiSpsC?Z=?Mj&q`ZKNRx5GCBOZ^4C5t}oILwTjE zhlA^-?wbe0f5b?)wcIs6@>$9>=>nX_v(+w+C5LXIvZv@(iWBRn1MuCZ&0hH%Y`EAU zLQ<8gc^EE?Mke;!m&Mz-()t8m8cZ$j6ZgH5V>RrvCjTrnJX~^-a(VLQZMHwmH?)1y zl@~7+mYfBeh4e{O=b6V6Lbe4L4Ix^irI?F72gccVwN#=ph}|D#;Uus;&Cr_(*7Ez% zMk@u|fS&x`JH2mi!RIW!xA_%AALpn~7@{W+-ErDC3J>%zS}&bm8CIy>y=IeRk3UEc zwDszXp9=6oer&3PQ|{=o~F6)%hr2tw$UPCU^Em3iQC@MkqA!HK8YV80ZqD*Yay$p&i+>E^iI-& zzc0}@9CSoxDZ$kD=2OsTdzW;TcP7P(4ro8>BvC!dy(3~Q*8hS0ji^CZ|GM|&RJmg? zz37i0mXbSKZeIa&#%R*wR0&=){(f7r?*)r<6vOEdkFw$y)=uthjMZT?fCj?rlUsYg zPQ8z|ni?z)dN=Owl}`*=EzOK2!n<)lRVl=r$JPQBO_+U`n^kVfogtVw?r1z{BwcFk zJWYP5=Hz$i`r3FrLq=={>Q-)zUT};rXvgF0NZaz58~`Pxdx-|%)mnX8D^9jTWrghq zm9J(hvo<%0hG};ACxp#gUcFKyEWi{fmXONsJp6X#Xfkm3N;==k*bR!4nq6K!@FzV< z%slL2D|6LMfa!5KOP!3@?=Me4Zh?BpuA%{P_$$mM5tzIm1wP zJ4^KabK~-z${bl<-^!6FR8~41ero1ZL(Jq0pZsv)($$*)kWn`G>{wfuN@D!p#=c4( z{kX>xE}N%UdS=*25_B5J(_8?oKLX*EfcX z#2Iv^8)UZzp@_gVDrOMbR+pzm+F8#WW}pcCg|~KgXa7i3`a()^1}hNM8u;sq_aB_{ z#@m7xuhi6BSzJ!+qf=k`nW7>(`5|uR*I<`kGiRRXCj;U;%X3EA_Mqv2*x0PyWF7%P z`Hdu7e8HRTPVJmutKf3WPZWHVi%I!N`p{yLoagzYjhvMkU#=y;{+{ctlMHFboB!+m zEym6MrwfQWxwCuVx|*68zzUnBJy z6IWE|`KHjoqm)t~I#;6xr8!qu9U1)fGwv3xqY-8{VY7hMaB1(hSN{7lVCJV zA9sl6#!DRrRZji%JZ}`P#~nupWcHax5E-v8)~b%P)9AvaPR0v)8}CVFS(M6DMt@(l z)AyQ??xisnu@jl<)z9(h*C<0W&{m@TjiW@xA#tP7`lF3!W{bBB1>F1;gh0MUZ?J}=CFwTTZf3zro z)eC-TpIjcN(McXn=$JlGwRd*t9;~k~h#I<#$+}E7`8DHp)o+z}gd(LjHtfXSQa?<^w0r96NSO4G zu0`)C4=s83aodLCq^ot@Bhvy|NiQDJl)4t%$$D2_>^Vq0c3VBrRx(xOV>@Xka#(-@ z{*HJKqg53!a5<-Vt)lucpWu+&dEnfsNnI6|6l3+QM@Pm5-xqxG2b-CPm`!8v~hw_~j)4BEa*hKXuUf90i4 z2mgZZum{HA;e%+UiCu^TsCGI(klf(g10VeM=U5Ij@GF+2GNau-Om`e3MJLcu9cqf< zhHlX!ZH^%cf%n~k(#{`y0v`j~&%hyaoT)G=&1n?{DW_-t#r0L*x+(VIXwNvK>gpSd zZJy7%(TGwf6|M=jJ8!>((47O&K_Z*urf%XhE2}zNimoZq(*(cW_aZ)OCu2?ZXwLGcmT|=u6Y`w1W`w`x&Kly%FMhM|xIQZ+R z=ZV~jW4NiFWp=~JhYL}(KH5%QZ+)8&ZavzEUg}|Z=tS1Bt-I>(8xR(?d)E}+Bi!?@H>25OS?Q5ZY*^($ zeF1~rn@5|1k9*GW;)O7Ru+T`kv}U6#8mPG4*UI~75-R*8>z*A5tQHx0@b{~q)*!Va zRkz~|%j;x+0o>APEEmb@ok5_;@|Q7gh8}0e`O;aohAc)D{ue4uCX$#$SSxU0t&rQH zA-y1b&Vw%iUm{U;1mMlSP?B2Yy0U*C6_#NxeMWD~ol}$HJ0l2|v%N$S5RDEm->owP zNtT~ON;nyee1j2Kul{x1$TYIh*viTzD)YA_P|O)~Qv3UV_!ttVQxHC<5e3c{e_hvg z!`1CZ*LzbX#3FYORCKp-4KbaHXzERm_RKW~4=F3gpxe*!qjrUag~dgyc4(`T_7oT8 z6si7P_z zk3rS%rK8uxEbJYc?%j<^4=H)s&yhM8f0yyNn;WRc)*2T_P%z!;DM!8>{28u~s^pv6 z_db}(Bos_)DVZ!dnQjEe*-FvawGmMgU45<0j?=(6r?PbEYo2jyNh(7vF_Z>kmMV{tLq z`l5;=%Aoj>N7YDPx?T6qChNJ>G*(eady!xVF(J0t41)NI@+%OgAQlg|v;bAE39i$n zejj6#|0VS81Z{*to{BSWZKK9526~X}E|+ ze)PI54Da@Zh{)eJ!DKza_!zBe8%lFZoPtdr8PUHs)(-OgTP%_UaV<9>7lVIiH$)4v zkP;t@d_@A8qI(RKb3%6y;sFd@V6&k2J18Y^@~8cu@kBA3d%AClh3@Ty(cTQ!3AA)G z5_H#(>dMw6rO*o4E3KN);o}6?4$X3x5%LWP=X)Fv~i#|F=OK zAo}2a-%+8PlAi!v>M@{|j1;6kx`Wqmzh=V^cCuC?Y28n#G%9adNMr!oe$kR4Sp<%Y z(UnMFVNiAId^bAWV&QrOa{)iKeP|+>r&ScxGJdEcKm1OG(A*zU8zrck1tZ)Jb#PNY zAJ1oMd`)?HQtvwQ!k5EVDBHLNeS8wpI|UNp@-$44YBB>b?o=>ywe)d5$4nfVGq4I7_YRqWJD&5~Qmu?#IFHI8||=wSX_a zPhTCHihKOHh|=S|#Zbk@^qKjn=!9-;un55$$TZ9>`=P=KGKFo_q$ zT+(PjDG9YaK|vH=O>)^`BCcReyad{yU8=Zw&p47M%Y>o7r&`*GYpAqyS+mLDO^` zdq;-T5)P^_NpWVB8%$hO=qet@SdMIS%@vQ8t{+X&-pe0zdH#kpG7UpCmW7nC99*CC zhRn`6g)gyR!el)*U+7Q*P>`VD123n_ERb1Wkq^{Tv?VYW`jMu-j3hcT46PVkwA42V zGU#g%^I}D$l;LLN z9y>n<9>c$oysRf$d4z+Hu$T+<{L~@|PQ39ys;PP1)`E+(B6dH7ic^twh~fnnu*-Yv zkrq84V}pjHu>@fX$sV8w-bFiM=~i3P$74CV6c|UP%+3}&W|YMZ z1$(~vx8BJzi|}Lls|dgllwx*&>REO96qIIyiIMq2njB_6(UV+5U>+KTAO3uQCGILN zb6zODJ&HN}yi)3nGAaoobc}}%@`wz`7Dv{aNq4P|#$D-QpoAi(;^d17l>ZUr)czJ` zbg&|0IqX3EKB-h>f6b9dE7XK^>YTd`Z&RE=-&&#fNN>)qpB!2gPD~<@$pr_Uccz^~ z_(4)?{5+XP*k9^+N065n^8Z8rf2<75LFlEhi~l+qBWW^es(*ixc>ineg_oK ziT+zd)?tUA)xDT~dZp!T-RsIOyA7||?PZBwx&;N6z6WpE?_}<9xI9!JxPgu@_AJks_2Xmf|tO{3g zKo3BPwTA*+kEwVl+f?lfg;qZ?*?rTQu78o!9PMc;crT3{brHo=uuCA!0QMuhU7B}fMwSyj* zdFLPk2qWF7-M({&lS{TQyrkpzOTi0TWM>=l%gR<*D@T_ner-&GO878jqoiWxsVDyn z`|pF#ZB%r@BPNEz?Ox7nx1$a;5uA)O#rt`55*fc?#-y*?3% zsAskNwXXfdy>_<8o((SW9wc;p;fGS2~FFJpBArXD7ygA$nL|Gv`siDkO_ut>N1* zpT?<&bXNxqPBZ*(;kRp{j-99!$Y=YqshooiRu5fMJT(cFB;+_Q91TYx5MNB3{X2~3 zn~nCn54GD(uE373oQ{#P3YmVd7eCw2aU~O)uy|K9V*Gr0H=h1On!ddX zK~9M2CGU&zT(0HuRVJQ=20cQ~bjCVH;84-j?X82@?(ks}yDqtn3IS! z#^UJB%lVwH;~|NYf(W!mlENAl{+)^lTw3b9Hw{7`y3b+Zif#Maf_VGfMBTpKh5hW| z9w-}3|66>y!TUjf*V^Wi2GE%O#@&zHRz0Npt7ATIwc7QJ*`Fp~Yv>q#=WId042tTX zVEnboD_Zvsd){cIqkzHMVmkWfuBpGFY^9kkl{BFsEy|>e*+*Bjf|05L=bGGwlgK8p`l`CmHTXkp;h1W0j1bJ zOmmUv4tqfnS<}$Qy@wr7W+i>Ci3f`hUHI!O@}hxEkwnYo9NNdhYezwUi*EHTLElWC zJ2_Pq2fyX|tK9A=yT<=%ygN#8PZ~hh`0CuOkP?*t)R`(&qynEWMJOwg4BkV=7^yOYY}=UqZ4=e@A73&I|aG z1p5#20!JHtyPIt;B(qRa+ae|w-ZA_2v%aFGh#39R<5q~a z_+Yb9h53`*>uvDgS>u{Npe{sKF6u`gzdihwec@U8l>pxve4l z(w+n<`iY^9dKU1)mR|D0zew-%6-;dFq*DPk)i+kT|3!N`)*v+Z_}N+TFKYZ(!bduJ z{!WC|5pSzoMq2H^B@<+F9s=;&))ngEYsu76HOqfbsC;V7Ks{TA<-JPTdLV|f{lOwb zPPFaJ4-@K1v7nK#|E;$wI#21h3y4h`+zDw_;xYT!t=!5s2cwPzD>^wHVrajsqsY%S zfs7P@h{G)xNGn}(BSco=lsBsA!|m<6N>dG@(;Gaq|zq7D#xfUnvW{p_rvmI1~r8 zyY{~UIz9%>qLPIMa@A-Fq@p*xeRw+^o5~BOiIRHH#E6X_&$$wi)(%5D8QSUA25Dcd zCGmY#AA0Hk=e^V5!EBh=pU}*AOiF`o0*@Y67LKY%eG)7N7DzH@WQhRaS!ez`Y1fk# zej^AMy>$Tvj5)c~eH;(JGoeYo^3ume0J+@<<5+!8%8)7jUsUi44>ofW+rLTP<08Ux zl}1Vh(w~CJ{%;gUXY2Y; z#^nF%K1nNouElRvgy6Sr#7VKp`3G+cMMzsz?@#eCY0Lgq*fTo@Ob%&bq59JYadiYK z01uY{yUL~HN&kF?B*%kuUI8r$>d|EIInD%!S0;r7pL zj>!jQe>I8}^`#I78!#m(B=iL-i<=}fK|wMez{h(R+zxq@zn!I6zKkb9(qCa>7sLUj z4pprM_SD@B;7Z0e@gt5m8W(5(Il5M@99@ zWe6wj;_CYNLdU|1?i&O$ak_Wqk?Q7eDp8t7*Fve>yI^rC}iORe1c2pXA{%; zOT2ibkT$^?mai_rkg{tnA5ZnhMFJ`7qGe(IPJ$Q(73nTwR*%x}XVs=}^tZbmbK`kB z%L68`82FF^{e~TX_~BJZ+3Rps*0@3)cpO5O0)Adn#oD&AD@>5aW!;p1$!%SLne#_d z^n1HB7Uz>|Q;@mqS&5_%hEt*}sQbfogz`j`uxi0~qi-`>K?5$+kYiG_eTj2+G*`j8egyWw9t0_Nt3$pbfk1FxeSku z@jbVp@4>pPYZzcc&AKADoZfwYoDH8B>!!A&X|(rg%=h&CHfcBW zzTGS^lT@>K{##7bgtkTJf+TTWUG27#woyEKPCP;8uu6093Zd<5J-5r%8)dToIgKr5 z+h;6dL{MkHAXvIVgbjkK6qJ%LkZuVdZN|lMyHcTruJ80_VXIp!ofFa>y*_;@D*j!Z z?2?`wk|K8WHm0i)|K;!c$bUm?sTp%+;0B=u-(h4SQ69_zKhUw?>zb^pmE&9&_sY8S zQho-$n^Io&cHKJ*)mkoL?K`=zcCtzuE%|-aB2bh$%P^3xN^*T;tzb-?wVb|ksLMsE zGbPWAOfxBtEAp{@;kK#KfZ~{CUntAqeDAy0UMjt=rJu!bj{S5eZPd4mA33OCxM{P) zl=Y?V!|ni!8DUqX;-tPoh|A&=cMGRlpxKvxgVPy_W29tYK;@6JBrP*ju=0@DSc*J{ zYIYfEw4SZGIzAY`$u6G$wT;bMS{ zPWM!rnql{vwC&Y|sR&ZRn5 zm&FEJ=Y{9B(Bu)gN!sVycGuHEp`YA_LD_V&EW1wNblHw$lthVJEx|(yA=}L2;oRyY ziT&H?Id|N648V+TkC-+n^bS5vR2fQ);#l~u6V}fQPdt)Jf0-o~B;lv1lVX_k5mqPu ziq%wzc?V$bbY=t1HbNImwFa)p8&A&I{DKJlfS@6HZ2zxB3d~dw-I0| zQl|g0N=c)?dPG#W+ozPjs)ujaVCLM=2;J=orKV~qnmn(1yY@j^tZuW;d(3N`W;;lY z0Rsa!qAoWu-F%t;m5KZEt!Co}hVN@@(>@=ofA#vHY#ma}Av)L_?_SXu|NnZ{Nh2*N zSYWlbcMxKqx=?RwMZE2wSu=l+tMZoa#8u_r#uAORukj4(pPDdRM`(n;P7zM`4mD7f zr#?{l&PaN^PIv3o z@!wmeAQscp^}s3fd3~wUZ%e2xJk`mbYEn#_T3ORVD;0kE zi#gC@OHF)_&$=Q zrL-r0#zJnf30vn=eIFg0PwY9EHT~x{!_+1%-5CAlr2RqD9L`Ts#Tg9Z1^Y-T9bkV! zy%v(R9{9~X=0(j}$0^zSTJg>Hs>F!g+aC`|=w|F*GSD58!kcQGqV3*n3{^6$sU=}| zY?w&0;#||!W~|O4ZkDjkvfnq%-LjQ+`JHAgz1^_*sWvht zXUcBHxwlZY+$GLaU=q%-lss|S4l1zL7W>JpmsYc=nbOD3K?ny+O&$5Qb(}tmQFq!k zE8c|6h)Gwuc)F57Mh}_4-f8PETBZqDKg=FqZ62&k*pV!iW9lrTi2B~2@$`~ zt?trwHp@PQ&Tr2+5oBnmL>&QelCftXl7Y!3!34R6?x#9{cZRK z>>?cl%Z^%!hV^-M@{9qau(}@4QokT%alPqq#14c3{@e0Tt@yfe6lZhN^h2gfdART| z$(Ct&+Ybg8yss?xC&+Pg=I1U$UiVCVU?3yN{vxK9PzXUoz7G0*xqx8tshD~?WsKZ? zcHBhdySh^{DS58zfYP?PZk!=xK!_o#nagNMtaRKtU|Y+|ZS466ldNj;&z|3s-Mi|4 z7iaxmsmH4Ig&3svISt6?j8GoZUT?15gX0cMzaC?k4%zx^kPETC3@pbQjH^Wrr5!7) z<4sWX96edqAwTn5oR=RY)~n&=OxkL5(m2-|wQ`HFb+g72tosZBc71g?PcqxEhI3%|0u_)zAqK{VkL7^2Qw>~ zZgu5*pWM$TEL7MV8mq`M%|i}{qO)_rOwurlosH^f?Z2NzoLy#?(LSTKXepDGTO2FV^q= z*6QraySEys>1e-^Hv8aMqZS+f#j;wvIpK5eHf?~zx930VZM!bim*~K6Ewa7~#CciK zzHV}eAeW*a2lA3_GU*!qw3DkEL|mJXnJxqjeB z$;;r+&IclvO260VbYPuxJWlT}#q5QjN8bPN#V_hS$jV7K*C(D;(CcZIuVblyf_t84 zuC$oY(miKwPAz>goog_b1E;*aNL{}Xr$!i~lppcH?CO1O-GAwIR!90*xc z=ty;s<$pmFOQ7l7|HY@jz$$z|R?o>r1fcxE+`}gY-2fD3$gDEH0Qo+SV$m9B7Of>N}1+IHo}2USPq#;J93 zwuyMIzWS%dJN0y@@Cpb#HcN8QS&rdPf_GM z3Dmt>V-G=w6VNYU9Kxv74J_!CaQDCG)_NsDI!$L$wX$m-yo}>9_3#1sXUraP1O|nJW6&KFbESIq%IeNA8!GY0kYvwBH9m zZh@UmQAzuVSj>g{{^UM~);NdkS`z4cRh#y3(L-QPx-J+8K=e`J2i?4>KU>=c=zdj9 z{k+3=awR(}x)M}6XDhr<7x(1mC=sfDc&teA&rJrsL&z}KF>LJY^76i^q$zS441GV( zAQ|7befla=W1U_f#Pb)NCI|gdMuIwFQeH7J@VDB!t=GI;E$xvCjCUt)k)BsV!N}+- z%Ec!abgSX40?sw3n+NsjCQRO6IB~-6WgCBR~D6?I^S*YmNTn+hb zJD43MVH4l!XkG5wPKp^;l1Ni8ba~~p`JZ4w9+CSkD=0Q)0`tF^p%MG)qfChwO?aM6 z`zw|jzD%ZsvmM2ZHPU0WW1OX?TJ@3Ys3m2ON(MR)8qGXiEAP(h+CGmJ>%#tOkTEkT z6;!my)D+s2997L%0=4BEa3ymrk7L$cHSQevV*2PKP2&7LW#^9m;S%OMb!=e{O< z8DkSO2WzaD+Wh<>iUt|{fr>gA* z;L&p7*l0ZNc=!C-e=$`DTHtP7-IRLUmHPj}n$4kKDyIHH%^Bm#s3&-Ls?XU=(eapX zp|iR15HG&uh}@sx0P(_?O`!j)8XSAhq}*Dc1wZn)HG$q^_kDd1X!8_=6(E$3DW#1@ zJ){JgB?p_ezC1I=I=`Q7!$+P&Z7_CwZM*L+ik^uoS}9Q?QG5$;8_Qk_E9lGd=6>R( z?_U>$^DRtZT`wzWVWZ7l#fHMT)!0Ib)Xf#FeFWofcwaAl$dyk|D{i>@0DH}9;kx|e zv^f4F_l+@-p49>ix38_Iz%mY$9eRsStNbpfBDKC?6wkOqv9=+T72icF&7AW!qYx~+ zN0qZ^&^Z67FK-;ma1G%{eR*5^w&Fs&|l(leUyv-Q9f`yh+G zvP|Dwkb?)U#z(wS9E;)xkAuF4#%lhcAvrxP4|NS;(hLV5JJ$31LU%3~FBvhJ8472_Xu?ansMDUTDq$J?eyqShkCM?LREaqo81v2FmR%Z zIy&|v{!EGQmeV&=5cX5cKCF9@n3d-sv_`tk|Lv}5c^amMItxYJxV+0WyXGK)j6Z{0u!@~ zE3L00L^|(>Wrgbm1N@#2cwdn`y4Cy)K1YesNeQ|FnYPb($oW_qup#uBj0Ms)Z%hR` zqz5n_>|2FMRgMw!2HdcBA}J4kL1X799p&0#F+vP>S!_%lAL!g$B3=${knd;Ez46Iw z3$M}#jGp|E?X%;{P0F+GH%y>RzPWk2brI zR*BA+VnY z4weh(&!d_S^g++bggTRs(Z(OVd(a2ZeF1NA(jzq96zZOSGrs)_AsJ3C+i-L1%s=j9 z7&aa$Z~8hYE~HE1+U><`2T$Hk4%E&s=^SM;hWeV zY8rTVWYYSnkJjyv3om(qRf8|i?X=KUd$kyS)?w;-5h&~Z@@o*?%7lOW&6_kwFas(fcZ9&Fdf~!{O*+!k--}s(LFOJN zUcR|_uhrytS=Wm{+M|zYCsavYZ&Vj|zHBk-)MM;&h5-g~wdaxO2h$xIm_fK&zPbW;-H0q@Pp@w5w=-xBzJKnJ)4LdosTlcBqwJzWU}l<;xcd?{rU+T` z{C6dOPa%SaJGy}Qzsk?RW?$8NaF&Xl z>ZA*@2~^7-TC*EMA=p!X@a1y>^`ppTYLfS=ZOo3y?zcFR-Y#X^5qg8_bxT}(bk&5b z=F_cnX!1l+SM-6w4e#0Ig~c~}wd^9RR?r2eVi&OmDg&cv<5UOqTw|zq-3bha#=2Qp zHF%R2tCcOLFCBDghp2ZZa8dHiW|OC<$12vOOu$@-Lk;gRSXF;n8BD*x3m3e$$oJWL z=oWv-L6bCe0$h@`ul5 zLd^Pg7&3DO#e}=@QY7Uy*4)G1MNRoIymaz1SQ#6?Pq%2dZd|Mr-a8zwI^!H)hO#iR zXc)5<;DGFOScVTIM>X(Gb3q_t9Gdb5z{g?^#wOLY=vg&x4ZC>;SdL#ru<(JTwZg{? zq#wMJq8esOiNdKLro7c>&3E3`s(xMG2vE+JtNuBSP2^)&9vFuh+$i?vDnQ6 zr0jqum`Dq(>a3=c&+>fYLnT3m!#7j%nqi#LntU&7QY5MocZkyd<-%Q5d3uxuVQBM? zvksSO%WU8`g|>Tx0c>C4s!DXRYG2_jD{pGraZN(&FoR< zyF2&d9dlo9mBrXozQ5{oCIZ(^KBO2B5+&bn8{-fLQr6R@a;@X5JA66u2gCqNqd|iP z*dJ)yZGBE$T%zq(4M8-2VRf_#B@qn;dQpGOas76TE5I3**)pgjEz##@mM8@cfXCCG zyBG->t*;uTL`mT@mq9?a8#n|?zbz%v=Adwh;6WEiKWc&5vVW_?yVd@YdV$U$fCSZ) zl82k*o;16E^B@4iTLb)9x21m2HcG2ATl3pTTg54mAdMdbwDR8mf{@LW$dr(lmX_;@ zIwBHuoKgLn6m|9L8e`Ap@I5+ETz{fi{Krk8w>mFG;NJdWWRkp|R^Ir?yC`=UMu(yX zSsSOIFbJ|w5*QpQ_>g5k#rIg>(Xl*as6EcBH!W=W>{uKe%5_eomUW@QJywkPQ6xUe z8$b1%R?u6qeE*l%W==H~QEIiX{RLIQhUkzDzjnME&GgmjZt0{!Dj7xLHw)WSXZ!(3 zHW0hjrK5;o(Zh!UHnoc&x#j#)<;ayjXQy?xsJ|h$KR#!ni(`T-8b=*CZw7Ug1RDHg z-Wg_SIA$C1>VXQs(qAUDk)H#j2+EuI^sdt{WB^FU?m?s$=kuBr@x5378SjRG=We040NJxCbu5q@F39I5TFZRGIIKq$xhHT5RQo4#G9HY(!<}M zn_;hT!@hu=lv4%kEzO|L}5M1I)cS?TMlq5=a2LB?$umQSE?& z7{qAkhT`y>xQEur)p%xsPvJ;Z*-k{Iin<u zjpi@kRn*i`R4A{ZC8THlReC-y)ko=LqFI<$E?Im(q_e?+J_00y`H!1H)55@rgxLHo zbQV#;TVm-Tt^xsS?i-}tQki^xzf`S#8vWywC?zJ<>f9-(j9j&dcD;mE`e(yk^CSAI zkiL{wcz+^K35}g>XGE}c&;a-yU>^4;kRY(e@HxEAQ;r-q2tS)(HdxuY>;)`zQ##kW z2rpV^dA6iR6!nu8FW8{gaQQw9AKV1LquO?PzUayidO_}&+)`fvJ1N*ytYry7gPG zWRAQ=6n>-;JopLs>9BecbT%)2>g}4cKuWR3$v!EubW|N>TzN!-$n{86`AI{9Ft2&X zhcU2!5UEmQVBer*V*2^RL}87Tcw0agUmsUZ=jx_?${2yqnWIwh?5c$bE0^zeQ>QNQ zw(j_~zU0wlWtPmyk5C&y@xfe>sv1;Xd+aWkMI;`2biDnoTCO7N{`W1OZK_qOf^tHi ztDhc{{c62+@6Pw|cjx&t&h2()KfE0w|FdFuJi(`}6VgM^8~iaT@h#JEIYqmkXBb@2jLz7bshxd)VC}xWWB& z$nnDQVWAD|s8q60*%WGE3Y{w}sHS)=(qO-OmigJjN(h_7H(i;ws@8`&qyDKOMYaz0 zE7xBK8NxBcia8dJ{Nl=jV5j^sd~np$h|oeaWMrLxmdbyei5bY{usIFwC25UJngr6_`9bw>g7tl!RIXxgq6>U zLuL|-Tr5`@z%06A(a5jwc{p&QVq&%_3Y`{lnO*^+kylx+ZdhmYSz%WAdCfc6SG`jO z;5iD{bX;P4YV3;~QcR(xdzB5Jk4umD_m4LYRgQXc`A#V|lL5ryx`H7GU3hLNPSFmU zZz6SbE>PI!$)eY!EwqnDGJ_Gan~;REYu>6c-c6C6+30UDK7t!Z{0*LIEun`jM!#&K z8qKEG_`F1S&A-p};}+ zwy091mP=>$_InKFSGgDrGf%%M)CGz`SF&56DIKB6fWJ3Nv4ZmKuio9kMvGdg-&Rx$ zL?EGRD^G)iQd4(jkd;#fwqdyN*qDjngt2^6&@=YLDK0ZYW69yiF1d%WE9@HrUmJzF zt*(G0c&fy<_~D+%%K{pSD8#4UflJqbb~;5Ub4{Sl8wc4y3l&A<8aH~=a@NWH_Pss$ zPg42_gxg@BVK%*oFq1jZDBr2sum`2m=+$L+v{76zNc%TC$=)A#|M&pg3wsL&t)x5n zYr$4bp*)Sx)sj%>!it{*o&WdOsRg(zEB3X7l$t{~PgD-g%%`#jzgdtS49sPIGRo=Y zLNKVOX;aRbGyh8GCu}f>r0@^(JO)T2Rxj|%YTB4YBa{L1N$eLUt-R|`Z$XO6;q>9F zor_uIBt9EE6ArKD+FX%UEQhrX>Ntqk+7B6zMvnO3tmB2pf#4Rj&!Ek_t0VQ(i&?L% z*l~U1b5~{UB3>p4z{jH-*TUHc@zwg29Sq0o496)qw;pi5Cmi~0Kn^#-81Zy9-4A~q z)VG|1dYV%^S(`7psH$0Xa08i({8c0+bgPu4pb*`+6?7QG1~fuZ67K%`{(z=PqKt3c z@+)7n;I6KK_OHRb@BSVUG8G?t@>gKZG_q2=4$ygoUkVI6Y!Ork{IEOcE`0H>jM3&W ztNZwkE6$MTdRCdkK~mns?PZ%F>sk75SQG0kN{{P2X5tw1Jyc@X*coY)kM#x9pNN}b zhfDJVg_4<*w{f0>9)0Nk*+u(B&YV7}05P!ry&&(UOa_hZoAGt5FBpb6O*g`D6*2Iv ztgMzMxXcJjv^sXs@&eX%{wo{;X@8=6v_>q^;mH0@&uHkaQaWUeyPr5 za>{pX>iuu^-w(=^OPSH$j8PdV?7Hf*8=c0UC*Xm86fj;nRe>fa&AWB4ELvm&X{@%Q z{L%2FapD<=vmB0+V^< z0V-Y$*~}Y4v>J51Wg#u$uf+yUq&tex3ombvS$HxBy5*E#FRvkiTb9sQlk(h=wTCM2Tffx4~V>zGjJ5^^z4pcn9LTErVC9Gx?)27lAC8LOqW=N9sFaIgO~?IE;2o z=47!X2K_jdkQeTKN4rTZ-Bnk2GDW8}Swtmm5$$w|jVG>2*5da)_FWa{3-HlLVjCcP z3wNs;RhNhn?t}I2U~Y(w^WFxMyqALFYTg_IlKj}AwyHHC;_JN2gbM`;V6Vo`oZ*Gz zlA;XX%F>u-X0yLC;m?UAC1hXZ(wCv)pnK(FaaSN7*;w#?ZlpCA5>qIPahk8@V!&Q6 zxHf!|H8IMEc;SrenB&7iruUeHUm6qQwgPa);B(I68e~$o=e3miZ7E^lNIz|Sf@bstk(h%>EFW2-pPo7q6&nS18*-*Dy&F&VME@Kx%Uw5g5~H;L`A{Y?V8fW>$OExqv3jJX-iNZFwq#x z#yOx5j*D(0g|@M{@hTlwl*lnw{WLQIeMsmr`dJze?Gg(#?Y+RAaGj?iyz&ri(-*o3 z6x^w{4MOG~ci`XcbgB<$(bx)}r>U(l%cAE5|I!hGP7=_pzW5Iq(Bg&r%3_nAu?#rd zbfr~wyO+hQIQsR6T>YCMKxye3f@7UclJ~7D_G;^MFUC|B;RLO0dqSp|Z67$>pVB3| ziAokwxZktTeOOL3L$=t53|+JJ*%Z?od4>^#E%MP(8v_f zSY3O=)y-{C_`RZeC+k_n_~tT2Ur`hcxl~#Wq9}tj9D^yu74xIjQ$sfV}|e6H}` zU9RHW!o?IM;p!m|SA!!-*(YAzymXqJQO27h1Qf3?bYq*2O@Nu3TvOziMX&K9VN9!; zm}Y#pM^?+3Q?tQ|Q1*aFg&rXIc}#i#Ev}t8RA8=^@6taww*{RHHsd6jkRUY&2c!JQ zk%291fua4sdQa8IU=1DJ<}JH57MC+>J!NhUX+c3TKO)z%^D-epBI+)JCC~fQPvvO) zKh;d~0`WM+vg8Kg7ZMZY5cnmobj*7Ziv3=rDhn(GyEiLp#LR&e_S|P0pMjpe-Z3MbKiKgu0?tJiAFnSvH2Qi96FQ91~N` zH;ud=2{ex+OuW`@9G@O(WJNwn^b<|B6D&FE{24R_9tkat#eMrQOwB z@!lS2^npH3j1>4H$k*L%C@WMzGTtV?!9{;rrMOEH0gEw|%+4fOk&Bpw1%BQ(_h@7k zF*}^y`{L_! z*NXe*4`zs8o+SV$fR7=VEIogo5!nOs!nbFLAYzoDUj zk6@{Db8c~q;que^sP?vtoP2p+0cmAIZw~GG2JiPu#SJcW+sq``*9w*muqyc=x(Kx% zU9f$cxoKNW^T?*RbX>ujkQ_q1!2SOI)pL4|RkIZL)I08HkqG)r9z>$b1_ z^$>Jno(N?Y{(4j+%$J++dC5szxtd**23q?ms5?QQUY)c?V*SH2wCU}-bY5jU-RQf5m3(ev0JZqpXI zw%D&QA;5JmCl+x8;h7?dJHE+kM3)j~PRB7}w~?#KYQa6S@USLjg`l^i&3)=?Jkt}qi*7v-TF-77;)z!jB(0av*Zo3vQz(qyB3UhT%=!Sr0)cOlt;-}p z)tB*dB%w5j3o!}D%>4VZqQ}|4KmNW!N<8zrW=3ujl!|hs{3smT=5d?w0Z4k7<@k(9 zG(|&wm7>dMzh~p>tJ-r|dpX95C-z7Hv+FkE!mY+pELbJ;dl0qYpw*ou%nVz?=c{R= z>qT@oLz`I~i>V~^D^jO#a{Q5)E@B>Q?3ZPlXgI=l))u%h~bB9a&DW^c#LJc zHQ8i7m~1;oP^O8c8Ht8>6icEj#csEf{WLwVIn;#M*f1SF3n>{tGlgtduXE6s4ZlesPnC zftXDu0HNW@zk2OHxiiIx+s==SP~n~R{li}Zbt@`=lJXSLFhSjo>EJ=7M2B)EksTvP z%OgDr-BF#-`O!XvFIGl^=3Tj!c*q7_c>X@qD4-^a{I~dh1lPy}@(qNK<|x;)3cfed z7<7gey?lG*LZUa-Yt_JHcz}CkYUH~Gr)5cZuuEArInwuqZcAA0_d+OcqUT8kte{Co z{{qNRw5xM9vP;JPXI_VM0moQ2PO8Z!sqA@F`1NXQf4^n1+VFt|{V^Ow4gTw47F3VO zndPuc|MIhHzeK|q&raT5LePRvQQ?~?2H4j}>0OmFbiz)dn*hAOzOe(woQ_IN@tTHy z({unm%Fklgzwq)H4#58F+RI5OG7u&k=(REyNx8r{TXhKEc_y@%-}5OBkN7y|7`#Cw zz4D}f7kjs2Kz-JvRb-%ssB7mp&wI?UDbymG!#D9~rQ(G7f93+rJZ6XILqYY^?}hF%`J2w1XBhD6v-;)7E6l7@;RgPW-;W%@dYwG2;`rudT>JtMY_CY{qHx z8JeBWO$hGxXZXcMA|8Qym$WZmWUW)^(K9xG0bBBZ(&PnAntzk zjsFz4_-hEk!xBkbl2cGa51oF8ixm`hyk9N%yF=7qly4q18_%})`l<(Mspp!{p~-Q$ z{WZkorn>;m)wzpkMMra-(YITZ-BI2!uM$UIYKju-=X0%&n`^5E#GRy_MYQMPGWTo0 z{E|9Oidl1v!RvR@ebxGIt6!ALhDubRY+77>h9c)?8h0 zG1~>oAxuC-(#CM~PK9Rof&m{ke!1(4hRG}!rP0P{Pso%ak9aP2#Ur2ph2(KOl7DwU)iH8q*h2*m?Q|)-? zv*I2U5Pta~I?&D3s`SZPY_SQKq~fD&Qi!879?}-*KhkjPUM|p|B$WxlwL8^q%25X1 ziEYT`ga2x(nrBL%gf-eFsW8iT3RwEi>Z+_xei_=Ep&d&wgTIhX2W9V^?XY?+5!F8W zYzdUa&ZOo>?2LG>>b#gEoe(y~CTIWL8T(?~Tdm#p`z7Wb_ZhHB{OCCz_BG|CWhi_M zDa%x#)Jw#f97R*({SLw)VQ>qVgoKG*w(Ws!_sT`7vtM>lHi71pmM0^+-Kp-ql6T(} zw3SADt4x~rZ~g-)A3toLR&fL7FX|EVb4YrmdYkrz<<4Q8qb8G&X>SvhE%Iujibv1H z3#;RH!Gdk3-+>iV98kL}E# z#k0bQGG^tqFWplb({-&6cUlS3IOq^FFy_ghaG$TPf($!rmZi^C58BOlo*%iy)b+a> zLhCCosw6iaD_$;7?nFsvM{h5x)m#%*pkM3#WU*j)A!c~)>9BE^ij6I{d>|#ezmLk33JLa%HK<4= z050=D3M!41`v(*b@C~`p_WYbgU~Ush{SU;Kg-?1q0Cz(X?K%<^mWN5u7Aad8-6VFl zsL3dIPkHbL#_}&OpVAT-t#!qHT=%1)e)p=2TQ6*S4W6DAmyp)7`xo|c4Z=Fz=dBXF zuV>@&F+2z_@)BF;8anP+`7H2$6aCrq|MYtup3(Y?`Z+>L0XT4KdqKE-@}Xro5fx5B z^3U9w7$U4*7Yy5-8(KUKLPud(Jp=&dRw*Scklhf_SLc*H%1(-UM1<1Z$WrQDc~xSE z*4*>x%<6<+50w)4s(K;SXiopv&1W8ZLi&q5&D6M<@rb3~~ zom?rx>(+AvR|WnO{R)C`mfRwY$A9_3019Rf&D_lKc(<7ya))Z5n&^tq8Adxr$9YRu znn(Q+Q-xoo+KEB)05CZb2czTK->Gw77Kwn1D)n!>)Tpt7p*@1gOu`C1@@tpLFi&r@ zir++^eST|Oa5N`ynrCr7CKvcp*G{p=|u+! zt7l+ut8Upak88$UFw}Q!5gbs_sty#!_E=OfjXheo{uw8EuIwgy&Q~~O=kKlhkycM- zeJztlHe7qUje>+A3`>%u_%;Y&4>>1bmN`TvoN}_f45OE@cc$<-#!K)f*;?PlTcx$%z;niZk!(!@8cK$5CTvPaIM}^s!>R=it*=mE%RY=2ySH=Htydzm2_w6g)0Z zY01)rvI4x~*?YrhU{9nQQ^PU`F{JD%8q9b3+!YROwJ@Q3I-g%YM~`~zxI!VC4Y=L4 zrYX|2*uD%zL-fdHqi>>VM%2>$7#!(=@KD^hTb!rJ8HzPF@x;;2dDxek;0HJH|*5 z5tMOaqsOtu$6FYPVO?$0M^}PSRsb=DT6lQSz)*CU+em<^Z%3wwNjw|tNp zP=G+v3TVwoQersjkUZ3yW!!WsV4*rdB?fh?Q|=FfBtdCcyRz8eX-X!J3&vKDng(X)J9yXX0#Z7rA` zGvzC+2{hLND(?|womhjt|dL3{E;>5&)`KMl7wqik|P09ufPwd zv2DnvAX$AO`TixP;J4(cvUm|y^7)$Vd#^_97;M?G(N6M>Q2-m4t}ke*-F5DOY4^gC z1)kNU2*L#?l$KR*P*v=Z%-$#9CB&++Ik1;2W!D~#LY(YKfXM*@$$J9W@!wM1^CyB; zEoMjuejmL0-Ti8y%NfVjOx*d$g*izdn6<09t#xy5czSWITf&Q9+yJSP+V>}vI;_5F z@+g50AZoWECOKD+&Jnl@z{g0SDtOtfM}giuK+)U{q&u%nfKA$d&z%3C+r4h@djXqL*_ z&GRfNv|djGR%cBha13QU>LNZt!ejuSm!i%OhXWC~`zl;l2GPAvyIvMLGXzr&Dt{PRvCaL2|o@CRej;?@EwG6b) z;Be~5v39)A2h;Tni7G71hVm9nwTcdQLzcXu-zIW#SLLLy<@;(u=r#A5bwAd>&5I^w z65`^ayMkGJuzvD#>M&k-noWWJOrtk;W8tg3Z)9ZTI65W-#Y$Bm0p4K06#VOA$)T>8 z%AwOeC9#-S`vmBLfSAS6u1@vkTxW&c$3Ddm>Ekb12`t#U_jx<71<)%!{Tj}bDVO97 zrc6Nj403xZkQ=0i+d#*VDho;vJFOG}7UuO^ zm4{X@X70}baDE7Kt^e|%DV?wi@B)h#nB@nBnw06;suyf2m;|@l`k%_euQmALzw{xQ z4I!=0yEY)+@W-W~I{rh6AQc99Ua{HY_F*xaHG|*<(=9NuSZ$H#*~Ax>ZGeQ?CuoXX zOE4wmNs6Loaf0@V98`flYOzT|dF22qqcz!$8Y4KMC6Z@gRq^9f58!Or7Ff7+xNNmn zVjo)SUt5fxLQaWfeJG5UpsVVDbuKiDtf7{FgcdozLb62XAx#=KiF5tKhP!s)ypbQ8L!0RvSE23ye~G_Cda~ z^*L=)*dHdZx@f|~i~DY5kbqbx~qO&Fz@gpXCM&Cf8Hq_2PeW$2N|X!(vW!jJQXjT%IYK<8*inD9wN>_xyz{YOKv8X{9(; zXI4mzO5%|i3nHuBTQH^a>R`W zM7;3W19fH!5=H*e_1P90HSosuim%McQ7FI4GfaL{Xn>SY%1toE@-H58+22EhW+Q-! zbvo$tFMxr8?)-=|XQz8BRndOAJ~67X zp$lCjO?J10zYkV1=4gmuNq_An3y^brX@6YNv~rGX?O8#*&{$eSzVAJ0_Uo@T#a&4IU*V9=O(;5TIn@6`K47OOGxA2VirbI=Ryz)Fci6qLF z(AXb=h+L!?x-qiw3HNEE9T48+Cr3raBJ}*Fx(R=umH^=)R*MF}A5B<5KQ`gdv3v^Z z7Jx&v6QhbSH9lTbX~Rq(Fu2+HvKj;R{`#rs6^ng$z$}4<;Du+~s(ez5iia1T)0y1^ zbVdb{jmC0)Skvh&deM~wq7#@mk_UI-{C|jRKz8{K0T*$IExF@}z&DJR7>TEll1HB? zb+1=+MZO@O11BhJ{U1c&`Q_jCYeTb^wC|K&09?Wt%jO;V(*EG1@6B4y71diJm-}av zsrx=nyHu6mJLzax#*NO(l#usH_gSk0>_~H+@-iuTgsJ|*yZr<6!q4~yKj%*+c^tVY zlSuVm;)DrnSx!_rj@)tk$184oseI=)g>#LU`lCvs2T3|gYcH-Q`jzGV9seA5j7A>scMF-ON=e(Ul<|4L3M zE>ZceuQ|i=ae4A}Dff1q^S=L!`;cr)5`Gi&DJ9v$#6}XFJfyEyhaWB$Cl!pBH4#v2UzM1MB0{oUuI#=z?0_h~AL1Ct$S$67-$o{k zJI+Wf@&?nuIiPv`SO%m&!r3mU`ltty39!?r6>gRH@SzjvP{k+ z0)aRxbkKu5e%Niv*2hST?NaZj5VGfEYkJtFlE-iHm0Fxbu$+9`tKg7zt}dEk7M5F< zkRY4nxg>l%aI!|SZjD8g>f}x*MyTYip={Xjhw-;fF9I!t*Y;)}R`alTB;E2opwCge zF3MnBP{Q6Pe@+$uK*R#@G;w?^ECe7R{=jkI?yJ53L+c@vZd0|uv+Y`r% zxB5SsQ(4jXQk3$ZXVB*LKM&vxu5%c(uN7H4Ik3FgCC{+GbbQcxquF$>aaeLfr-fK@ zR66$;`cZQ%%^QpSrhvrc^T?jt3S4io=Jj7Y`FF{6M4s5uk6zb|3jw4uIQciQb)#UZ zMRaH%hx{R6!z>kR+R zNhQWe+-R5B{h`LSk~QvO#7832Xr|iuW)o7$gXfzoap`)7Sm)>j){g?Dihav-Z&aDNka72(v~n#KODoMJyw9}ks~%5D`?zHJ0~OC7vk<$;ZsR`liY5R=M%Bhy~@s;`X(k} zsC1iE^t+o~@~aQoE)Uq~1(N0Hme~e7I$^sPIHY`sOKMVBb1fae<&$b9h)o6zzV|0z zY)CK-^Vt8eia+QeN8stQEp$$7Ltwy`7~&ssc!9$Pr4Nq61vEGc5#vrQlc?O9v^}l5 z*roX1)rnKJn3D{m4KL!e=M6TAYfRDihO$52EkK&wNZXl+$uWrBGl{OacU|@WY3sYg znp(ELIijL+6cv#pEh-8K0@8c10SZDW(u*k4LX+M?u^=J>DhPxCQIIaZcT^yhgkD0I zVjy&glmNmzJ9y8%-}8L=hn=uz_Uu_}R{5>9W<*)LwxcWl>3r}C*RQmh?r8X6;(83m zLSF|w*uWLS=rsoRmxda&G#tc?j|{2!y0Kyzd9}8wu~yXBh_W0RGPfEuxuIeZkPqx_ z$WZCBYC*;gJx%)S=W#I4U#KrOPOWwELF*Zy>j2+Wjj@;FBxabkSXEwbiQ;LHm{ew)=Lw#^eT~(c`v?FZbKbhu1j7 zc`P*IF1qYGN3jOen!d;L;yvgCm0Vlo(2v+aXL%_kX21>R-wA0~dd`keA$bk?aXe^9 z8UiARXwv0{z2XwGhU_7Lu{=N>4vuT9ktiu_h36dt7p9hWki38 zpuSx=oOhfQx%eL{@|$ulPU{S5{LUOcvZmTQzW_ZgPlI$Th(3@Y1Lrx6#(Fj~te{Qk5?LavTga@UsaaF=9ZP@Z3riswrC6Blu@XA!Ku zm=xu$`ox=1*FY?oXp<-%0fzz){l~ZjGX)=_%L(piicB8gR6~TPkgNW*PK&tD2RH>RzzuYo+Ja`Q8I@%e>_pMt# zd~n$s+8j3;3C~pogtC85eZ$QJtqY^^O$2M5=(qk(C3DGdDb9PV8vJ=Td#hb>Z^wwn zdv%g=?X6DLycY05bv9lqiK>s+*X)_`s48bVel43?B=0cJj3w%XDQ-4#tNKT+SMB|V zX(ANYW|H@tzm7xf6@wjxRkoW3tOqslt*CD}x-^ajvLifTZzEtYKO(@Sc(0B@adY|m zl0FkWf8(zEY0663;L#peK=r`hYuJ&}MpEPohkMKBT|xf#^urHR2c;I!i35s(`~>!n z@BQ~fDvIm*q(rPP*go<=WQIdF4YjI0YMU-X_E1=>WvD>LBd<){*=9ZA_vP-4j=%8v zZ?_?u-=o-8wyPlD$YDfMLP(M6uVMA)5S=K|3tZf{>-|A^E&24&=-yK%$&GdKjh*yW zM*$@Ka(jLRK{;iuyDY`Qit(XTXW|#??Ez8yHOr^(gnC9$MZ_{Sgxe)Byub!DVvlz$ zN(w8VcK?M>n`QA|B?Ocx@WpBdR)C@B%iMr65xdN*m5AXpH&<~Kfq9M+E)YDDS0zB} zt3+^mc?k84&M=U-z-$-PU+@^Y`}%m34?RiwHjy0XZ z#WY8#aD#3Lq>ifuLmGo7>_BQ_GHhGH0lo(;GplZVFeV7xWS)(mt`YVJm>KBhUGWHr z1Xp%fq!%eTmGH4_zwW#I<`!T&pBZdWM?To z?hh|MMBVBqFQ)8_04G0C0_5rk{OtN1+b+cw&>+CI_mW!bXW5@Z2r+C?f*`MbaOzD( zy5w^$Z{x&YAT~eD*@O$7wIfSDM~;c-JxxYIiZAdGradwsRs?pL6*;7t#wtikE@fRC zT8K}g_K1~i>QlgB1w!f@=)zr=PP1y9((%g=2vuN9jk`2wst9tX&JY~We7k`ZzV8RO z%^2!=lq{v@&Qu^s-G+oOqa@ati)xa)mnn70(RtmT`}iSBhUNF%POOaYI$B2*rV!a7 zG+&qm_S6dcke-_CZ;>L!xu)~wBo$V zXFvQ1ZcCe9B}}`aB|NuApj6v)7GP)dBa+U4 zQR3bBK+MlDdS^aJ;%Fm@hr?O)j*>udNI`_07W70N5$;#UQn5B%Ep$#1BFrwNP=nSD0`@7ynTbPRC5Jdw2h@cod*>VPwK+Ztfi z(S7EJTZV18jbCP-V(Qfn*_yg_XdwffWdUX$Og-M3)28(hH{x%aYXOSwAB_LlIgE~o zz(8gF&^_kxE>xm{*uVLv*mH#7_7mplTI{~!0zouzBMm#C!#KjHU;X>V30{vngJYVPX!g#3(ouXz)T((gxSyS%iHP5zAc9?ZCzdyQu}w*Yca)vgWn!TFl9!{a4m1sKq0#Lm(-n^?V9rh zm7}-H%u5BlVCzkdl8;N%ZI^qf*NHriU7=e`Tpah;?@OrWcF4Ngo?k(~V=vZMnA2!% zjQX41P+i=Ljf>ykW&h3VP7|gt7>=K3&d^i~NMlE*RLTtydub^y&pTm^jXi^px3|R{uP0sK@z=0~Yv8|Q??6); z+ld;L*woJ5o0V#_f#2AvXHc(43ZnS`zF^R)By{0BPlgq~0hP4Ap45D?TgtT?8NzMZ zzH#a5BkJ#YB>dvVW(2grp-5?lVnxr8Ej}%FL9eD*`6Mav=ML{bw~N5><|d)6yrm2AfjWYN`PO$lkc3mu*v?|7kY0j|L))CqlhN^{TAWwLSp*%xVV zxHnJJt!3_A^RK{^$eiUqs+%VUA~h3yRCH+ccwo7G>9B*s*Sx#hCeo=(3qB!CCpUl3 z+rvq6K|IJ;ThI%}52N6UJtRu1Tki*+!PtM)%iD?#H?}Wvrk#E$NDrbFZ~Fcot+Enm zv?TB*-18<8n!T=f4(dxcu>{#&F+LeVwpwZ(anCFQDHM9BXTeaHfN?VXr{9;g^BVbO zlYK%t#0=~xAx=!U{Gk7m%;CAiIxHvrR|x~-adeG?*%f`BByjG`L#`y6)^HWU!l*ql zzQ6lx5&-u~fO^{m?eQB>TRpw**!EUfEpe#)Cnw5-E^B}D?7Wi{?*S^S&u`613i?CqRjL#01@$^8+r)uXIgLnB|CeYb>+^`LF?4=;fz=&7ocT;DM~pAf-}G( zW!-v?+#CKH7G(HzUZVHsJ_7KCY63yx4XALYc3`c+j<=@=VBGh3!GV zoao;K8fZDw7m2?x`=L6Xq*}}?%nDz7-ct~DZW!y7@V-k>%!<>krAmU^VqMpL=3L1G z@Ms8xH(;h{G5+>Z4{+~bR(_aWm)OHUq3|^p;i_Df`6X4VYGUdV`9rmd1Dj*|uMD<& z8D&>nIWLzQKULqw3SXB4&C*}(hjJm8#m))t2O^L_2Org=KGeJ%9o8pCut+&3=rAZO z)u!N(q|6h@{r4qT(3E_y%egTqR@a9Gv?J0{yg5L-6O_&ir}E26sipvQIU2)`IQ?n< zU_tkcBRr$|v3xezyc{^3)|5{r>~+zxh*%@5({-Z9#wWy-O&>k9Y4%|BwG@_;84|<` zsp*hKHMHZjkrK_)VONVyIYC3odep3a>Ciws0|=V&n&J9$Tm)I=J479yx=iX6EzpKq+rlfveyZwz|0Ky`4f$kF6eqgo$_VH`%J%DLvfa>@1K)mdUmeyD;2 zk@7oIbE{mxOB8uGAA`Ps{31-R7eX9o4sTKJX_P=Ruvhzq8GnWS-4HH2xkHk1XD>C@ zu%*PCXK}EYv~22T-%2%PzNy7ym1BlW-tkECvFjYxQ{1g6H!Ob@tvG2RQQ}v1DpNrR z74e9t`oZo1tkp@pN1X>u$q#YD^l8Akmr0ZMpO3orFnZdtt$#NA>3c{tYo|jQZ?SNV z|0zNCdWpW>TNTqbw=q|p!ARHcvr|GwWsZ)Z%4TtvTzQg|tb*C(!ZoL+r(`Ybfb*}w z+NvXCA|50JduHE$d2Qt$r7Q$nwDFqs_Fzkryd@SVgP%EkQ>wUb6K&NnoiZK+rhgnD}x|* zfT#?BkBOiD4vhUS@E@vLpyr3VtXA^vMo(5JCNFcXNmu6;Lpwb7{&-zGf3?q*Y{vrX zXO5gX}cTdh6~SyDn>+Gi9VRM05F}Ud~4Jy}wb6ofnZU zq(=E#u2aToQdXlMZ=t1^1m?d{*aDQ*A?Ce;h_KBB|hT@(5dE+a>hVJlI=4wVj~;FQR`E~J%QswNngd^)8eV1bO5|h{{15Y*WhnmIF2^f1F>YrP~9#ba1s3hDK zh9FUBEO~1*?GQ-)&%h-uC*r_?eb&2F<&m2 zB-xcQRCXLyunjVi-JV>T)<-Y4)Z=^SyrR%ArN<(D(*|oE_1_O@*o5lCpbV%wkGP1! zQy*UNxHTM$P{{C*W;ym4pC-d?)*JWfH1P}dv2V(aM3W5#sT2i~Qc@M#Ks-v;VtbGx z`|*szPX>saAu57UG-^Fg^z9&U?2Ik0GPjFIY#_&Ci2`Cz^R}hma5juI*gwyEzs`3- zsT1OQNQ4Gvi^JXt{%5JWS(=et)o(wY&|iVXJ(QSNhq}5Y#1>P;^S-5}F-iRj_k|Su z(mef|Z#Oc0v#6JJ9C-B5l^^b%9V=cYANQXCtsqL8GZJ_;6kVT2i6>6dmL|HYSUc!> zx_&aBmhN2ifurxJo6GlIH`>t4r+KO-!Sntdkf1nr?b(7R#M#i(X-e4K@_)7_{C~)5 zV5KI*tpzPLy?&J0h7ep15MzmeRz@dSOjZj z0kbo?b>Ig0-;-I=EuhvsVj~JpvG{7SPZE#ZbGX9bh~=nk&lpz2Ellf_I?F9bNlv}1 zt{+W3P>#tQ(@d8xd&6cJvWi)saTbl#GSl~wvv&e!M<5j(4@f*l(VEc8-R;duzN!D^ z0x{A^uu7~1|^P>kB>ua<*JnVZX z#az17CEnrL)N|w0_<2{HMh1|;cJnVT>GTecIEuGj&O2mlTa)-yDrNl`gY6?@6Ca4O zAcC6?@YNMiOCi3-a@Nt4He9e!L7vh>J9e7?0)|if3%$qw#g{L%H7A6RmY38OUhM{r zXgqTEdUdXi%D_z0Wm}9}FgE(rp9ri$6jigA&0GzyqSo+nkk$81Vh2jKT6TTEMjYZU zQuv^`io=`a%&g|H+e|MX1;;xV{1xuRyntq2oQ|CP01y`jCmv0elnKE==xG{`@EEXY z1Vvz_K{kcS8VeWnyyov#d#CH4=jJ7xTge>QS(5vxgn|!#NZVX<{TYSm(k~AtyrOsa)h!t!8^@#m;+|hS{&aD47(9(B6=n4O>fzgw<0OTvql9YMm|3|8%xgkwdPzFotO%g zl*ty)>Ooe7(*jP=0}@Hh!V`95WznJ2GrktHA3L7B4T+56=P24ZEvS;?_SE6Z)>+C} znaLM|-kiv@eBt8dz7t?oYV#G9oT6Ax6 z4zV4vqWp01>Fx4|-IA+{kTD{VMaEB`1Ndl~T3SHUw)KeGqK zCUgbq`B(5l6Rr?1b;MXVCRyg^*3DDI8e)UYLq~-9${(ew&mCD!A$_;UzTEkzwYyK& zQz8yY7D@l&4I?PC?Gtc0fXi8xV8{p;#@!;n@)5`j{LmW(mB>NzslQ~=y(mb? zOe?e0ivN8t#)Zu-q%b`BLk_$B96IVXfNcLf=!MbWnSQ0h)6HO$4YT^7U)`>SUiZnp zZi*MdEp;d!Ondh5G<_ZmDcK`Yq_UeBCTiy@{RGoX

vdZ|ZR{iM`D3-n_=v8^hlJ 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 X;iRQlm>sn^57AQByH=$7XUP8mc72Rx literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/doc/images/assistant-dockwidgets.png b/src/assistant/assistant/doc/images/assistant-dockwidgets.png new file mode 100644 index 0000000000000000000000000000000000000000..c657426e99206fa5d9ec5a36d57313669dee7fa9 GIT binary patch literal 42222 zcma&Nby!p3`#+8WhzcqwNDNd`x?@PFq%@3fDQSt(AqI%b=w@^d7|rOZfHX*q7%?Pe z#OQ|o2EN~)Z(P^+x_;-M^PITP6Zh-BpSw=Drn(~eO}d*zL`3AuN^;snMAy}ch_3G5 zxJtMK#Vl?U5#`n>%RLAApx2s7lNeCRg;EDc2k@~*@3Ei&+zj4)a<$zSFgl)FQz1oi zJIVSUap#kV54B^jzxtdhOHFz64a;NA{%=2TchfDVX{zUlE8Sp~HB@>etTciL>wBY$ zU^*z>X(=HoA>7FbGguc2e9+La+;kSW3<|kI7y=QICXQp4^0Gw)yLNeghy8b%3H*01 zr1(D`7ee?w@qfAWG1Rtmz>8@R$xdrRH`71-BfGc=@yFc4N&KUeoz63VBoe?vdWUhB zH}MlKL%13ET>LCwhNoFKK3U((YjOuAolLSpPpb`vlsv5|`@IIWgxD^xm9y$da+rF2 zOr^T$;}O@7P77V|qgO%}v$BcnZ)j}cK)k^5ljI@nN`=4$$Aret&-s`PIbba@_B*pt5!AH3@qV`_pH!yw26z z8+jdiki*>Sj*XVomT|x3Uj}rj@UIXqAk{(AN0q}@pA3I;hW(qTurNw%kBxqSEDtDX zsvESLPc>;aHM7`NI-nm^k<-4vZx2#z`w<(K5EU*`6{v&OhRnYONRshtO^G-jg*OBg zIMVDl(doScD7`*`Rxz`oFWHd^L^(@N_^2D8e0`LAoY^_)`|5Tys_4ojD=Nk|LVmz< z$gtx#=c!~W$Q9iHiGuayoVxKC_c8~7a($%XOn))+KPJ}9K0M-Ql>MLw-AJ7g=wRV5 za68F2t7vi?DO4}V7FIA!#!(K^>3>t45Wk>zglACxbSu$4BSl>d;~j~EiEkcIB=P(H z*Gd`HX&J|b{vi(qbM7j@*nt7qbGn@h-tZQk!Dk+%0y)NVJhe_&6%>-}OVPIl=&mG6 zR+C+RhN#mKRWxWxb}n8&7&@N{ELpc^tqMGBS48yHW73*^jzuEI?)y4^Zv3k9@~VP` z2cJiAjAO}FBvG_&eU9Xve=~_f!gM@7sD-69xCSU1htJmozbLUVi+}0%kz!r}!XFb) zG2iA01V3ZGle?s?XnDt~R2R^vb-9?rcTx7Tk$1^)5>lf3#DyYT zmAC*F5z*2A1L*$`Ir#tg_Wy%e_PnsaVvmX)E~7WC2omxyI#^f`9PRf1L4G+DR330> zlmS+0kvMVOt4lv(imcKeYZ06&vTAMXO;36AvY0(FwON91?7b;i4{TC%qzk!3qpS!_ zy{7j0hgGtPN092&6bGq}Qn|fi;`$boKN{EnF$2UNXgo}B-^J#V<=oSd{kTieaJ_40 z08ZT1UEP5*a8XcO&>i0l{|P5Xw^n;6K8N=Au=~<UUrT$e{h@LvA!=;HUgkpLt)t1V& zCDlgg7Ir)=1szuWLB|$O_13KfSfgShz%;fua$UEYw4|loZMky_Sgi%s1hfYHw7LAG zgdUVT6)I8yBnz8}-=@aTYZOMrFH#35YkAB}JUJMSDdE+BG4leZJ~t8uTiyuFBGDjx zN-rjF^RP($Z7s_`yo%%kCkm+Sty^7s*d}LE&V^_j`Ze`|3HygO*F(ZbDdr8GXd^%J zk4Sx#<)s`SX#pMs11ZN#c&>sJ1)y0#lopp^RG;{r;}&2#qO};9bg6ttK4Yz=GAq5x z?S(*(gobFQCx%4EtkI*WJ?nl!r09+z*w^CQ&) zyz}e-Mk`czgK+2f-5g*CQKp#{jAHCUr0D1f+WwMCGg!BP^Gf2i%%Eb53{S$NH=kiU zTOCXq8PZU$tC~pNFpZ0SMVK3PFQ0w(%fdB!F_(oWZ?j-8!H2no4M_GS2ujikTWSB0 zE)hIfC+4+2<@fh@)*9E;-WEKbOJ6lrz}crOiZQUEY2P+%tf4lzHPAz1SmjwmZxp&j9qS%eCH0s<@>OAAjbIhCS6uC^Ovq^Zw|8 zN`jMl)7y>&o=Krb?nVSpnSn`V(2vh|*t|`FTYaolKt8%jmvjHp<-}(Qr{nLDGRK>p z(aeSF5k(igk!{t6k|g~=dhJV|8Jljp$Kuyczxz@hi%eEnh1pB0U~v5Vi#y8+&l+7Z zEv;d9NJq*&miy(uQbV57qvqG)WyqtsRny6XzxdazFKMmn*pIcRqwH=czlmpp;OO1a4%kWXg4gDUE>RJ_~yqc z@R$qpnZhbPFu+S*UY;b;Z@R=xQZKUD#BjeWtY=@JH-2TarH}MLm+{=%?kFlD7PH#m zp~wo;5rVxm2mE7NY#<4~z`vGB%1=0ql)dKDZACeozFq`rbxY>36drZ7kpXTwS)OJ( zFRMf_!AqvtYK4y5&5_5Ox~=JFE2K;Tk7}tjyR3M=D)eIo{8u;kGBnONcTc;iRB8cc zwe|y*d+|&qlhy9i4K=A^uGB(?$e_To8L37v&Tsa62)FU3c02>B0lcbLX4cI7>EpMB zE6Ptqb@ElCb@LZ)gi&^KPT;EThhG?lnCwUg%0wk>(S*7kg4}_AKseBxUV(dGl|eojHY2%>Q78)v?5`~PI@W(|F+ZhiOasSMSkEh}h^-kJ zRoJa0ob@1>Olsykv3DX%QnsEae+)Fk&1BVS=u6b}8g05O+4ZL#{R$U0%R_PXEMh9G zI(QArEeEdxA9(xoLHAfN@t zG+`xjHXT@jUlRinLLJ|P6#G_sS6U^#ot_1q7BcJ?G>S!R9Bs~h+7T>=^23otbfYUfJMT-8GLQKs8Zev$|?6v7qL z39E95b6bkq+Or$=Tq@S^(u1QLY+9H49vCC^RR11~WJ|4qy%ARef7K#iQBwr(pZ;*}CocjX$ON~N;{r~KwrJv= zf`j%$X1+#Jyi!-38_s6FRx>O~WoFi7t!2yO6OK)S>Eu0vG26QjEr=wl+*X_;8cJ4l zQpDbCj;1oKvW?(Q{PnR;GwBv8Z@J02AR<14w&#GY;K9i^fL#RZWQ6}ly-Wl48-L4; zBPh^X%?^n^nwZh`u!Hc@4%!`859atu|2|qwa9@_weLrjbBKyhfTU>hZxMA0m?c!kP z=@#VJ?kq@`{<7m^`g1hsRO4R1y}sM zRo?O)^tjVp2cQ5K?1(`)c6%7Dpr4_ ztu{J-O-*mv&oEl8+_UQM_=OAd*0DwzN{om%w;nnaZ=t9?j+csg%o&Xl_R}NE^Q7PC zj$8^TDhe2bWn(JkTo!M%c6bqtkPTYp-I&79<3Fv|&Fjx1q!GJJ=9|qJn$uMqV*J6E z)nhdu_rtarT93Rj9XB_(4hSI6;IJQr?oR!dwud;N!R(yJ1Qa)&@1dUG)+B5t?{2_6 zxcx|wZ60kN5crBMxBcthM(oI3L0GfTZhmya zPWJ4z_;#7SWOBO~i>vdl3Ni!J*i{*%W=9d!(EhPBQuR3Z=-Y>Zeu?egwbs6TfKNd8 z`IS6oYNY?zP>UL=H0Cd~Ac)^~9)0*h?;(!&3o^ZG;P3J1Uo$CxIS};u zua&-EMKzr=OfQq8lC z-6xema!!BxvtpTeq4)yhjE2P@iRV7X#rak=(^|FFXL0Q+dhmomg#EDX?%zRo+Ls&p z#z#FKV_>7EmE>f{ol^JXf2JL|Dfo${AHnsQj#xy{3k5$JE~-b|!EP3Wlm-JU&yI4; z8+=AoXn3JRIzxFsm)AR8k6w!p8Hg#)M`wN!KFk$h@0$RVu?R;euM@P$xc)7DiWWrn z!VgxfbY~&oo_QVVK(GBjkREkU<0G5IMf0ZWO`o1*(hP3A^>}Uty$a(LX#0B|ME}l8 z0K)Uj4WF5QOnUu!!(8xFx}&cyDtMs9*?g;L&D2{9NRe0u0PoY@U)1BRKH*(GWKwx> zSlirzpfDO+tFer7q zK}|-aWa^;|#-P4$yt-$+;^b?j7ZbYbL`Wi0-PLn#rrE!fNb3cdbLX z9v?syUX7V+-vN5B?jzXK4?SWh%beYpJpg7g(Q_=d!^Qf1;X0qf*RM~J2_DzhW$e1w zSE+^ly2f6cUR~HjI(fdoka|#q^~HPOnrgB0q||FZZ}$_TRYpIvin`7;5iCDSrQ5Vo zBYHE4*O*EAgMBk3JBD+hysSS(J<(*yUJc%2Z&G8U9u17=a_VEE`T1~-isoX{KiE1@15 zN`LZqqpNRJ&3EN!+gT$%7#%bd?ZTz8Kk4K5H=&Hw8RqA|UIbBrAdDO;Fij#lT^m~hMBKdm-1n>+xWszIDhA- z81zCzIPoVC^r;RTy+VM`3ZDjpdF|W&Y~SJK{uJ@xrM9BjU#h8smVdJA^9YuYVWphI z>PS&+6JSNxuD#I?Y2vltHdV#G)VaH&h>LtUEqS)vN&{|-ASU@@-k2#u)S3{e5AE+c^ z_5*(0aS3udYDojZb)ib}1?$Bg$|0|`idG&cL@c!V5*#BF$h};KC%|y9Ep4&2IyW)u zIhYU;!|SqJli-(ZtO|A;7XK!+{K{|qW`nonK1>k61wY)u_a~iDS^XjY6@#Jgf%A(> z`vvrTZz&CCl^F`NznQ8utk=M##G?3dO0v{SEg8xr%e&jWmH*N2|dbuq4Tf zop}F(T5&-{UqU6j8B}K?0A0YxBR-VvzruB`z>5xOH3Y9JV>R<+5S;I`=`c_7C|_^V zVE0C@Zl;MUF4ZJYH*UrK80gekLU-dFe9us(_yf}q=T)t1GRXSEt^QWW+~@TH9dU_0 zu4_%RwY(}Ro~A>&J=v1BP5=;isalnZ(O}qjaDCta$wiM6XkW^`v&0#W?R@04lt+~- z+GQD=U;f6r9IHh0ly-h~Z_GT=OuHwM$B^Gu9l;AV4_<#j3of-@=o}gnc#aQ3t@%!qj(+I#Ffch(b)1D5W%z!P1Wv%eW3i4SMa~Tmf_*MhGyBXB@?*^x>ht&%VR;D@gsSUgK zM=G=o5{HAroI~#tasj?Z*{2h+`7;Wi$e;ESeX2(1b@BFXRf8co&y_T3M9|*z6H^_d zCe++94Nbr?I-5CgEd72nt+aD{-6#5lVB03K!1j|{qH+Bg{(#{kgdPK~X>FD((nKO_ z5?YB0qe^Eu+jg~63(_z?g7Ux{VLM3C74MCz#ZP?w4NG5#GgLlQcC0CyrMaCI@6a`i z;zP%l#Qbb#%z?di`=6BcYoI=AV-g1~f+xp%xTypiP{+4FNtO&h0xWq2^p!!14HDtB zMhP7E7zLEIpzm6Mlw$rnePRgLvN*3Q&%Nk6&4F|&cGa{;t(Y!Ug81Y_m0h28(|m_a z;@z~STQPR5oF^kX8pQOV#cgkxw0Xes-`-(Gg0b)L=A=l6ZI@nmD7$(g!kNA?;B?SR zr-OQ*Vdza;Z?S*N*l{1DV9Ykud**3v!oIR3K}lE%e3kfGKRsrZ`R%3VW-J>qeoyvC zuvA=H(2?d3-)-Er_TqW%K>XRkMQFl3>jgx!KrcvtCHsAFW6P`zehJnzaoj3Vbh@-P z>6-3Vw>3qD=#z04ev9BASQ zP+7B?l@IbbS~bUWGCLREveBdN<^+)v5jiMVATY%Ayj#W=z2g0jQ0o+>%`SkSJwzrm9kCDBXibguWlozL18Qs`&G%;>w z@FZE`34gOb6K(nVLK~oZg%Yzgjt36RkU6EeBJPMi>Q7wj2TMRlR-Pc`kDO68*SF!Pj>VM!@N&tT^m-| z?2mKFKU|->Mv0CoaPD4_8LrA`Q&6?!5I<;npCP5WSrr!ZvwZ*e$1jm>TpP^?Gc@J_ z0s*t~#`Tj5+xgqof#4VH<>4W@)@__RnaANC&H>5}(PFSz_lGBWx*>Z{giueF>f=0um!knd|qwoOj3K)UKA+xO-k$` zQxIl+|A62P3e}ptaYBw1HvJlR%c(#tZbgRLlmJhtl72F$syytt&*=O3mW{5ma@Xn6 zPOIm3LizVlFc-$r-)u{V#?!B)ykvVJ7f_HGjSy&wJ_9G6Ti3}l}&`QpR6qvmR@+2R~BdDV6V`Fbia}ZBLo*;r6~e`1aJNz z)y}GhQQ1gORobuq0@GtwcKVslH%Wa9PD3-tTh`Wf6qkeD%1^(3(6ON##n=D%aH5tb zQ#SvF73$^W>oKOT0^Z;--Q2Hxx_xdIxQDX(^-Y^?j&DzsPi zKaSTFt9P~lhtlHVf{U5R0Nl3a{3P zUx; z@n^U;J00}^QNw(DDq!>Wc2(8#01n}))zST>pK0AkI14BinSStQA}#qAjj~<5BfMTA zR7z=;gs>O9H0iW(iMhodswZeQb1ODMG`T5n7T=sTo953_zVn-uw4FM?beiQQYT9qL z^p5ml=0nrN=R?);7=C+vO>CradY~|dGjd9wT^3x;S|do+q*n&aU$~yCUPG|J_21i& zpt?r>%icYL0l=X#8AV;X`#VWE(|5`Xa-Uw&MVR7jX=KKh6?(qiKfJu_=<9;ilUbkK zW)CzAe)PeTtc_P8KWgLV6O~4)Bxjc`h81ci``fEl;p33%lQ87wj!4)5FMcgmO)+Bb zk5D&_vq6*JNmp6K%2!ctqvpUL*!4*WZ81eq)kdcnPWr4h6I1q+w8ol%FwCkl+{{!NfBGjQwfV)#cNlK0V;me%< zz`uPxf_eb^bE6*&J4MmkFW{jJxe`Ow$>X-tFF?BrCh}>DGsNLhowb$xnFn84%9XKk zCLUxsrK*=H%tL+&!lFX1YB8hMZ8vC1j6y{d?CPH#EyPYY?)tcnbSif91!5ye`A()E z49U;nUN{?%o-AZZbjT!op2miE>}!l`37ppJ9eAyx?SH)|ZWS$g3ZI&B!j97)w;ZhH z9_8&M5_J4>We;!T(NgN7OD|i98a(u)VlJlVkc?`fC8pqa=igpIhveO*L^Ix)vl`1) zuL@$V8m_XYZM0)q;70wjwdg{iE`oCaUIyX9&Q;$H`|dMpWa`qC{H8n9fe9caY)x}p z-J*(WBrc0I8>TKuuBNOseB+y4Y2~U9piuqIM&F%`{`@01goi|#Ep@y< zQ3DDb@z_lb_H8tt{PU7Df>Gr4ZejFxaRA8&wI05Suauo1?z6LsN4V8}aUwrHRmQ9yjF1D5G75?^39-P097Z^fVi`6y z0e@=Q;U|HU9{8yhnGM>bU>w)c`EK7eNU-nkwNXLuopb3pP_zu zn8NvPOEd#L(>Jcj%I-~ZsK&9oop z0#*EjgDge|&!`|9^nAlvQn*O^y>6<=nIp6#pIW*=;Ca4UUJp&AVY&78TD_G2-tln8 z`ADG_Gp%lk+G@i5F9@YB#SIMc!B`Ac^nNTufSX%|$<6wj1)*OxdFDj8Pjq9Qn zpD;_=faJM@uQAuOF-`yx)Shzg(5F~m2 zRvG#%PX{nPP81Dd7qJfUFnHhABxb#U)^aHSfNwc*$p+pQB_xA=OM%hp#q;IR=cS~z zM=KL$`A}(zVAVwA?Tww3(^I}5ckL6DcYq%hKc~<-4t*~zER14HDTGV}Bu2gO)UZvr z(jNNLRGQIYW7}$J)uWZOU01Q=F`qLKLE9thJigVnG)*eXC^`xd%>7mfsm8T8zUOi} z9S0{qI~e9Nmn>K*$4!fz;%^%a0Y$gaEa}yAVB|0xb>{P$NpLb1X zN}lq@nfhY_C+Op}sN@D%C{fQszV&nGBuuByW`!}vm?;EHYwXYb+l+HiOBr3`nPU^)HTD4~oKqnR0-tFu!8jfWM zH;#%UD*_^K}_7^N$%z-zgrFpB!9hmdcJ zHbs!zJb}l%_V#Zh9|~x1V-{wjqR@42Hk8^?n-G@r=G`Hcm;pT_BhG=2D9vw&rRIIc ziTlrjEcypEx+8-{SF228y_^{&@MrtYlV-yuD`oKd)AwI_pWzdcr;A6+8GOEu*}6m4 z!3%%F@W&?^-VJNGu&LA1e#F_|bp%j_1iD|UA$c=n<@OwrVAIEs(hHreW-K{EJ;|?J zgJ}P*c_*5@&Z!cAkL~t1u>v=q3~Wo#TQ@ zk~2OJhi97^baxI5j8D$yc>?G0qKtPlT)xtL*6?oevP{qd^mwUu3DCD?zpor!i)F5| z&rr&dPru9g{J{#V4I1){9d!GZlg`X1`{8_1huvirJ|3r$zsHJ95#h_7KZWe(wu-AT zX=m%M!CY2zM-iBEXTywn(!_u|+s)Gt_&mStz&k#&3=B1f6-inw@(yyPWAE{DY?v;x3Z3g%EH(ixG!+++otU9`44d;Kds5 zXxUMwApD5}@>naiIOueA8p&&KI$og0>=qiO&kb5!Zs)?8`Co*fbP%%tR=X1x8%AKkNh>{@AOEscCwH#J-~dAi1&8;ey8%@E*Qw%$O3KWpbfCyn~=P^>U}X zD=ZSY_ufgtLWt?1AGg5h`}?ux2YKO-q`u~EaY_MMzV@!g#=3#jZog_+RARsD#;)VT zV(L7YeRPWk?lRMK@bZq-(UiwPT%v}6epe&2p&gBxPgbse*U83Mjs5X#hk{pAtweX{Y+4xi623b^Vm>m`UKCX|Oo%ljFd;FP@lBI$(YF$A_F5_>qY( z`XcXik+jpy&}Hwr9b^wyzSYYxB5u)Hxv4}xlr&jor;$MJ{UBW8b7VNrH{GbUM=M8< zke`CL+PkD050u8@*wj)wOLoO$no0HRoKI@~8C~5SQ@LC>&IZH|@F&K{!K(>Dm9HdBzVrkR}Eg&SezCEX9SL5~H7k!g~u5}(W z4-TCF6|v|XfA71b=Ns>pyhN$Z?_9W+#^arV`50#Ry{e3}HCQn`rk{n<;RakS`>s3G z#z%~HUshc$j?Ex+ajr8Jb=KE^V0zp$N)x#HsR!vXW`53LXgpD<&Odh>F%_`WoM^iF zx9^jb|NiZVF^#->W{Jnxk2-+D#La_;L_{zxaOJ>kA~meK)+3wM)|ssysB3Sga?L2f zsga6yrhx!=COy4w*CoL&`M-paJ^uWxy>e*7RM_eK{SmaG1%3Rf!06e*N7d4FS6eln zj9~42JwD;8e9`q(#cvlCpZr8bSUTInn*_>7M3m!1?@FE#nuU>MP9|50E@+7|XJG2- zGB2BXh-AN5r7veM?Tpb7ZjZEJ7j}e3^4wm+9~0d$LUk>d@m)~bpd=D71Dc9pqVF2u z?bFp;gqsfL;B8t$0O{&Q5Q*r!K6o2hM#1xpXj8=^r|hD1=6VqYVZkyXu#3~>8xWhQ zwU+#0)VYk#F*SC7QNUmQDHWGDuX2BZ#77f`w@p5c zUJ}$x+>v)tS(k&cE&{f6ZMgYA;Uz6|KLDx&NP zG?;8t;WR#JxmPbfTaFX_Pr*!~F)T;TOKdT(S}A;$<>xcy-aI&KxHIrUm#S8gm2)M< z*wusM!zSaT`zWoT^GLBPvCd0}CUXaeul2cQ4Vhf|Q^-3Gkrf76h+Ls13$Y5FvURj} zRhLx5C@_b{KGK9|RZ0}o%wpST#53WcZ;un!+oP>|Inp7Q!M^)LKraAn^MS2DLGy2Q53yF={?FQWnt_GK z$?TtwY3Yn`gUQUaGoJ`j=`$ODnyT{ChRqMx?WTMfve12dYFl>wX26GA8zi+xNL}N? zbg2+U_-PYvjVngHcH-P$>%B?~JH2QW6HZLLv)@WO1T-9aLuc!$DV7@ z?CoOd2z}l`pz6uh|Ah>+wRd7c+ZpRM)ZoEPINP)2Vn}Uih8ftiZ)ldf%1F%mryou?82QP)VLt1@df8L#4 zZ*6I6L1B;Simpf^PjnE}|C!u^9vHF`GY!3x95;aNL!r4=9~Ss0EDbHA)(Q)%bqcKTNJ8B#Xnsu4V|l^HI>+%5fbMMbj<+@o`Vx; zL=;KWx*Bi)gEBA+=$pP~Rt1aAT6yz?ir^cklxs>6Qfkb4R{zjWRM@Bm_^0292&Uwv zq9a0eDH0@s|01PE^e7J7OE?jZLht)d#paL7WCJdX<3GMXj%$m=%AOZfK%Fn13$htq zHI~u=ybFLFW?dG_7pjNCV#8z>#!d`$pyJOjl^zixQ>O_4{i~|JFsKO4%Z>=$|4;Lg zE2!X^p2a<`JN}R2+dqA3kN=X!BJnX}Bf>}^jM z{N>9RK@i~HU6gCLRhB6`2Bb*Wp=`><*(Zjoh~(+rLaCv&`UOb!Y5ubjP^MeOgkTR3 z6<@qt;WfrdY}%p)nW4(E9xmvC2>JDM@jF$+07OM z<<+0S)TbnxEYo~mq}B`9n~|S&z8cnWQi+i-de!^s$6`EG;l>krZD`w9b@_gdFLXu~ zUnG|Dn$sQ1JM=#}I4bG^Cc=GXXZYhT3W|MAsBCHr|5AE@D+?Rhc9PbIHST++r=8?_ z=esqwh+3>JQU)v(>w^86kP zI~A$|-O=UqvWeDNQo}ub?%{rDCI1W6$9`8+of&Hj+su6vk`$wjoF@})tQ|PyMJV=m zMdA%;*g%`Cx$-O`?Qm^x-)j&ZDZw+zi)_|*#E4HzuY|0^S43MGOLu_QVfrl9a!l+6f^C z&6UB2LcH?~36Dh9WHpaMD&F5#VC_@~$8i^eVvUvUJ?!*8DJ6I3mq9#m_W!LtzJYub zuB#l~D(de2el)L|uWo0XgsDI*g#16~sSJdx10Mgh7)FP>!-oBvT#=$U6=$fU6o*(K zIDq8wjfV-}*PsONK8Vao&-;9#XhrJB+T3s>$6VC!Kioehmp<4U{&oZQq_$H2tDq;; zW9c|9ENh8WQ~hJ`e?;QK$0JPWLQpR55Zajv1^{9ZDb+uZMmOEB`crCg9!ifGgh-)bYh7(y-0g zUI%Zj=P_T=ec4*K3n4$>g@u>FUA4SG{llKOEH-Cg#*Y;Hn{2S|03D9lO9{4Dg zgitvS7EGry1J}AtqqA*Pp5lME-l2IQ#ldG(6Qn@>?{(i2;FbIwmYTd*Ecf$Fby$a; zWrwfYJ@)7FkX~ooASc>Z1FKH@Hu!pYOj7e0pZH$J2Z^FIU^$UxZJ$_H7~NtXi81o;(4p@#Z`SNyLj6M;K%6@v_00 zm-SuIOHMw@(CvtRZR?=ecxC2#?K=~Zu^0NE+2XL*ZHBIZG|Zu!P16ODK#Gv2HxsbE z-&rp&!Ts)351>Dn%*wF;!c?DO5$v9J<)Hlf6*8x8w*5!M*TI?6|H{@EVhL=&8<_-`?SIJsuSS#%Y{#MCH5*%g zn(8IFY)}!!7{zy$k>BM1SC9TMLjD=^*6_-IG(I*S>oi_&Nhm0_8%SU5z6$&I!_)}D zE%Sl+s4FWg%S{$>^Kx@=aKmpKxWa49`uy_$CkCOZw;YH1S+uJ9T>LwDeD~Q%R z`<3U?tz69*tDFcM%;n68P-KM2BWykC*W;VnK8hwvs;?Kll=90>8+`^3-y77M3T_!a zT^ymYYp?xt=t30bfqKfx`5(|XVQ=W_>e|@Yyq0|M;K3hNMP16U?n3#I%C4(j`ukVC zOBARYwAOC)gkbfd+5gr~c3KbmMhh@0rVXDLx$9~UjVq1o&`!Ny$dUaKD_aUvkN(es z!(r+q6OOPP7NMRYnEGk_-&aGPSM%EW2-+pYK_7s6d+JmG1Qk?PHW~OKpE8yFG;s5^ zNf2v<>cM{83nSP6x-`t*0g!pSr}BL1wIS1mtY-p6WUi(P>GRmLHe46gU|`z-Rv0+& z&ID{bI{JpODkbc$k!Aux9j>*0gyMka2ggTBCUgM{tZnR%{ZY|DUINn=pO2ZOZ%!fK zU#NwVbnHW|jN*AnF^7axKXu$h=PL@8%qo_Qty~c<6q{kC5uKK%Gc49C;QbU#Jri;m zK;-ZO>^Z5R4UjG%&}**3tXN)4`uf4GOP=?^)Ya~YuHU^W`EmZ{uJ~LbZISwJq?Q3n zpbAx@XdYj@{qhDifyluWyqygCaBDu~xBv*r{ER@RIzofL{nB^}GX)Q&QC%XckV5tY z2%yW}WRwYyP*LcELHbRH#^yd_EiRUUfDB4 z4&p)IaT>YG-5EJSE$GkJ3aKOnqEk)iDIkI9(SWqpo;>(xL88q=)MNOCBUw`h93)AF z=kUkSFVtf{Dp`Dm12-Z=tbD4=AIM>gshA`wCNBJjCQazy$h+X0K<$X+ZdJ7A23>sL z+uvOcUSHYsSYRqF zDZoLr_*S2lK=GHhVc<SRWRzmXgoaj*4O{ra~4qllxJ ze~Cimv_aM6^YHD(qKI6%5^;%n7dzHh)E#kjCJBqk2e50t`9MRd7uApYWF3~~rBGW} z(#V`F_nyjv=P)E$UKg&grZJ2eq^nCPRu5kXfk3&A(!QyZLrd;F8r-VYS-rn>n(E_r zDNQ{%>+7}Sy%lZa9XdNlc%j%gwb>|Q-$I~$D8=Ssn2?SzzfU$FU5N&qVaU_CK*CG< z;-4AK6ByNF7?m=3%Fub{^@c-Vek`-zJl16P0eva%526ggMGO7ps#nmlFiyt#?wz&S*AUIWaBB z9qCu0thd6GGja0~9;C>{I8{aHRJOGwKchH@_H~yl$5UMS^;gPc<=5kZM-_BIUH8ye zNgtOhxZOhEywKt7xNn|>7y?nIWrDIfAbj0=oUN6KU`dx^k0n(9qc6Mqz1p19f-G*noWpF#Nh)O-xVbBkUCCQ2eL)PT zOi5`SGi1;q*pCjXHVw>Iq_zGj{bmp#3kHLgl&CrtWM@BlvrH%TSyIW@y?z^QELbt5 zmt*aaQV-Ji%>|aKiVe4W!g6FNT{!+r9jFVvp#>F&#oj>G&2hrhrMe8|T}Q%x7MprJ zL9I~!!$&~&rJ3^1FCTdC1bdyeJkRq<7MItq!n%`HK?7?Z+jp@iqsa>3_lT?i^IdJ| zZ3T-R3YFOn`uQA&F7kMThzC_#FC>5{GSdPbr&QHyl(COsPO9LE=d55bg}xc z+&Pwqcm8`rN*i!ty5Z+o%9VVKE<||l-@E3^zZExa~27#ve9z>Wlke<)Gum{>Y5Kz9X+=gzUTl3Iatx{ zs-FsCeHxkJAPb{igS3R?1r`)F(>}y=X@5&(WMB~Kb-9rLhSupey zI`Q-CNu@_l*{F7i&OrfUm`)o!HU1zD0pW4ad2if*?K%$#>X~$KmpB zBuFApY^!zfQd1wx7~OhV&vO_RzDY8Jt^@>o_Gb(j*T$tm>u;R*AjWAVci#?PonU|w zRwf@o8D_4D&FXtBk2Ng4P6mfzzz)h&O0Snte33`#nLAe~$oR-29($2$+14eZ`27=*8hYBcf_x!#)}R?F(5DVPh>YI2lWvL}urqv6UT*%%@|=z&D1LF1 zZI`fO{wpzj)4|baNCj*IR<0V#ffVz{e1BI)M(~}iP|D}~`6okn4t1Zxuz&GznmXp1 zq7NdIC!vUM2=|@T@ruSa{XVA*3eF%fNt*tq;Yl0Qi*>YUYMW(JuoidlrsVVGGS_}F z$@1EF-aNgj#S*u}lHX7~9XZ*U(mSC(;UU}63zgtI&=^cN?-Mch-I&=#gzQ^UZr0y8 zs^6L9KWt6fmpfH|Jp1bg8agnh_5ETgOjVx9$1rCo{dMi+7jq_*H|;#XQP&LC0$}(m zs&$X1DbcRmvjeUq7#71I(~oE0vFECw{2pm{Q#k*D2AVH#4cYA;M5SG8tjO= zhPp>k(B0kLZC;$5obIDHJetDLf-{)pD|AiR!}H82Q5A!+pE}Gds4QTLM)QQIMv8hN zJc_nZ{X4i*7TiPw6WoQzvOA@_Zs$Q0sK&2yjh(%R=GQuapq}X#x$AB5=uz&>nNG_E z_Sw>J`M`84vf#ld(sp?2g;D4^x3u3NmudUxzh0Go29@X zx)Qk@v!*xRl&*YaXNOVEt^VAyNuok2pP=qx`LsUAcCQt4FN<03!(ufm!i*xY*4e-y zjN8T5rhqP!_LhFPkJGeqQ{@uwPODPKWhmI(c~0guBa2)Ta$++-VxzsD3oQ&^yh5&q z0R|3mfnE;#6aQQTR&eUQiT|<;H4I;FVJ}=bsYi;})c9&}23n16=-d+wQ46N|H=#<^63Yhoj3_C8+s z;=WVAz0%C&@G_D7Z*YnsRO!%F=`3~5<0ZC50xEg)H2-E1Fr8ky8C%DfA{N54xl??W z#d8Rxp9nUstKB^!r~sxj{ZIJCZT+h_G3#07yfeo_Dd~YM+hD5vlM4;7F|t^VF#;2Q zW7$WAZ~Ir-sZ_DEk~t9szY<{jXyO#mO9*vN`;NG7hWL25&3c6!_2TT(L0~Uu^mU0b zrqOq~kC1WnNT&H~CyoBb_8UEm`1r*Z%|G7j$FDs<304=(+spc#EBQO@q{pGyCzl&X zqz}qlDGz5ZS z<;3r;2fdumm@&Q1y6ebmA!`e5FrR*)**IzE{Ui(dxQ6BjKGZYV!_WJEnhNz?qW?5G zE;eClsttE-l`b^z(P35Dz}H)+A(HcDw-$STA6RWP2cQ0wq+MV+u_1EM;OsSj*$2&$ z7%6f2sTmBr8f(-V=!mjJby-}my@3=f#=;{_sD`hA*r%6E|C};>cV*gp_~MW}77b8* zNY|MW4&2@QDQ4MM42d4}0RKFnajNS`@xqE@ye>58YbTBj8no=5)?1%CB61xNDQs^* z?*HTKyW^UOx;8;nL;&}P{l5Kn`6It1%uMb*bM7h6bLL!I_mf(eJ--{nukg3RMk!aRztbdS zp2lELTDS|Yjq)LgkEXBui&lWp4e*#MNXXtLTl^xa)ZA$-_}YTuiGMZ*s6Gq<9-t-U zZUj|^X~BL|sh>ZM6V#ZVz&4-4W_DOu7ezyOE0|yZWWMn&_4X|{@n_9jM6YL(x2^H! zM`3iLKU9jMzh4DT!aCqKq8k>3==G0mCMd0KtL9TFKftN>QD8g`TfFOx_ZoaRX#R6d zC9kviu)eoJ+IH`zX6)vzfxE!T$Q~5GdFQ*u4BxfolBTM}PCH#b_n%))a4BOuEX#|t z5#yMOq;Y=cGUr5CQrXD;`NzDbMX+KGs!q=b+7zEJpolwu;4(~?zTN2`|89zeP{_d2 zr<^SRNcN7dE36h5R(&^(CJkpLbeK@<&|2(G;WvG(W8m_}LNs?VS;@R86W=`3Im%E#4+XAnu-0r zaQq)NUY|pkqaRBpL@13ulvz%q?up*9X@|GE9(8(iqBe{(!i+c8G@URYBm!l2KQ^7g zss2&3n>~&!v@%=CWGjm9laN5#=yX*DrzGT>x?QQEa-OV*Lcg9|J-f4m>&@azPzx;fmb1nqd>xMS9>0%{wtB`PdN6+DQeTy-p3Zj`;dw_pF8hlxET(yrQl#1(v z$Ks=*vB}SjDilvqW;&UdnNP85HBYS$=Y^tuZwM`lCM!O>aE|A}YGNAQ~N_9JG9= z!A{)9@~K_?Big)vFHhhJj_K?=qNlE_1KTXU1NhCKlP*j;aN-c1nDVJeKUG5B3Iwv{ zx9s(B4U73` z4lTtZN)6CIqz8&4d)5r(Ri4*Whf^N+zN{S9SGE!Ax1YemLv!C#J?0Mbm+mgJQS=$E z6+PT5(W(WB(2V-|l>W4%jBU;}8VArFSOuo~$s_o=BR#`&3@8o#n5!2~hiAKREz5Q% ze*BBzpLy$psq3G>UqvUjY>C&O4@GYt2di-Ts$gww;#5-;g~GV*-0fqS|7HGJ1jq`F zE;N;uHndO+b5$(N1YbL!5BY@9n!d9PzGtUBa*>B8wywjV0r*WTo4VhQ}3asHIL&qd*E{8;Yi(L1NlE7H_uX8j%;ZU zA7lP0CCnlJOV{@pa2j_u_B$^D9wD3$ew+)Q_KK)fBLlcuKFdsICB1aC?Td_f|oZkFHmfJrzR(}Nl`iK5ug&SL_@8jbtGP-AyQ4(l4I>9B!l9=(he-a{C~es9%DZBIS@^ejdy$%>x3FD< z%7Y!C1(i1Fo`~k@Pg&nVA?OmDX@Ukg)P!-5e5XenoC_-zS`=3y9Je)Or9Pl3Gm(DU zO#B&cZTNOro7<^Cte>OIgge5kmy3ivZpjbB;yYvh6HyBTqh`tnmOIx1ZN;WI9^ez60IFu=D zF?0@F<8=n9Q|J-0;ED{^;AEUk*BK2+xY@tur&HOl&{@Cb`cb64`R#OIrZ9AIg8)v~?09<7 z+s;(jl<(P2%=9iUucJ{S0KcMR)hJ>H$?MnlcUe%<{j}8+Bf5%bZ+oTHQP`czx5ILF zIy^mYf|$(K%Zo%-;|YxVb`6{b_n>C?s8kL&1)(i`<35 zDMi+9eP=wHd#T#RIsv$+FGHnE>U#;seYqy z?pixtg8~A)u}H$6)K=}vT-gxuys-2RY%-sTqbGqqtX52J-4pz^S!;0tw#y{!FF&O{ zINGXZ&iHD1SRmo)rPepnHsf+Fb0H!pY$yp|vRqXMvs00(N;WXPtit7pE}spkl{ zE2o^dLH%53%p-Vrb;xzNxwK^)b!{$Eq6s*0N zc*T_Ma{Fa&{Sa4$ob}$l1;`a61;ul>1vS7IU034Kr)hE!IUdnl2S*v3* zhAT=%sF&e6}FI7{9~2g2X?kcrkXz~851<|IMl$gD3GF?(7Z@=M-Yo>n^qfA!Re6Cg27P%1vu zCKTVv@0LX$x+@~K*{n9Eme^x$Pkl3vS#(gOLywEjk?&5Ly{U@&lgp<}Kj6WDrf^x{ z%@Q#N%_+{_QEO9^A-OO6jfN4Cl%4Y536iIrHb|yoJxYyltz&&Yz;S zyO$=e&cswHWA;;?`PD2dq>tr8#*3u1U*Vs?wV1YQz@(7d>eYN9YD#|$nCN))rhrCV z#J0kh2qJ!YfB;`}0NmRWsltm=R*vz|hz8&pKjB1fMy~2Zg|N?~7SzkDmHE18UVnFm z<%bYr8t+IzhOo^!L$0HK8A{haL+Y7@+J-*~_NncRO5rC(X>r#p4|^cQ?` zz)}E7rmLGW3IQ4`eZ_3k{t&pjdNFaCt^Tf!aMv3bsxmkz=WZ8!_xPTvcS7MHI-yq8 z={VKRtOcQ*Kjn?#uK8H=MB}m=Tu;FyUaj}t5dv4#8xnMp)I%C3m@%5=2-~XtgH<^b zrOqjZpaolb1Jpi6=$giRgsna-+x*VgIG7-CM`baKNJCL1LHi95y|f{tJzoa-8~dXu z8H#SOU1Q*|bYPjS>XLUXwmoH0kpRw6RuXM|F3sqnz(&Hj2Gfx4AToOVMi-RoOACmz zNwcH(h3HlvogJ4q4~YWMe8gO9%V8C#lE`Rym$jy*`}c(CBIS60t>ucd%9L_6%-(DFzllQ*^8XcG6C6NCWa;N zpLDZrXEPn1#%%!8#l(7TqHFHSC0D@8PoP-i?UIR~W>m9kvtsxU;y3uFQ(ya-Yqz#* zDKnSO`s0zv=;u*Nnb}fwqk8w2CRjNfsF^O)%$@rC4?9{Qv%=EL?IcJ@5i*H zTyjO|x%~@Pt>y+Bw{MoqolYEILs<5e%(!c2vGwI9A})7HsPkJ8;gwj|= znT3apMkw>CJq4Tro20|$=afN1xm*|0-0tk*2S*O(?m^!#_g$Oly%ZBE#G^WLZJ)!y zJGkcE3o_u&e{cj!om!}Y@p;qWpf}o-rQE{a+5J9e_Z)BHU(Q*P`;J7lheQ6+X z0o0__=4-Q;`)PREJm=$uyc4WQnq6kWpTaBP6-ah!M6s!O^Iw;sE&G%7CwV`GBSNr5 zO^R9JudD05zjm9woN4KpSAzf{F{nvPu244P9b!%9?YkWb9nhby$i>Kgca~}bp^DAL zUpmEyi?4X38Ew3|qvRq!i$0K%DgfhOv|5pqLz%1}qRcES^Mjb6OiQ?UH(cz}l=!on z62iQIo0GK~Iw7q8yX#&f)6&3wS(lvJlmeugAo~>z-x|w>;#Km9hg)H$_ubfNlOf*hNM@H#VWebbfj)yYD{v5vR~@x-(@#MZ?V^*OZCp zzAgzH1!{TV)FL%_ZC6<+)({t~ka5gW#Y&PtukBixzn<}85(>-*s52xmkOcFQ_~w1b zWh{grqpL5U&SYm${?X&cpigKC{=Qbhn_#Zr6K}q0zr@cK;N@%eU{_>Jn1A_Z*7vUx zuo-~E0{Evr_R=LSIUKQ-V_M8FVNPhb@cCz}P5^7UQX0qfR8i-nheGq&6*N1{nE}TS z%o8Y$_{%-YAB4xjauX|W=EQwAMX~gH^wawEX!;yVi&KAl7qMk>I0sUGqv$Zrms$io zoBI&e@@bGT{ydbK`ELWJ$J&U4*K}_-ZU>CJ!#9&zJ7?2jY^5T$XwK?kc2do)CHeR@ zlSvMT&o}h)?4xFAD{g!Mk3pFbSz6zur|E$U&E*rIE66=ksaa-#hJwP!LT+Nf6(1nV z90~}*~xV?!OAO-ca^b4-1{XY{~|LT+elc$BsV?xr*4#B4@mr#gjE8KZ|!dIy(H$UB{Hd`-cJ!{OPWhtd!tLENXg6q=0ozNQHS!>vk(D6q^2BA z#Jj41?gs)6+gSCUOEWxwr1$sApVxQ_+VFQvHFfuigET*LI;^w%e|c`|Ys>?slrqfW z=8wEO<`@m0&3HdKZ4`%k_t%31u9FVuA}zmCDj&pi1*0oNc3Csuxht6d)`pJ^(4JFE zqDCWcQ5dDdr2QmYzOMdBn}+1SsTJKT-S>=vI_JhOz3za9skg@xC35~)q-r#!VGjZx zqI%OdpYb8OZu}R_cK6(w>`?KNE!3lQx{g%NynH#$Yt@<73;kzm#rc@S@tqj8ByK}K z?6@-_4s#hsW?x$@5^XE)?T7)d7HQ~n+`Rf%44}Y^Y1(N^me<<@_iWG~op!fXYl7W~ z&WQ%~LDRHqDtSeU)3jmrq_cr@!&07a6m5K;pPTyXKx{_wX<3=6LHxcUlDL%kZ#sa=x+uOCn~%u1K)aE>pS-khybcmfn@&_{5Xy50No>i6#qma`2Q;!Dhe|z zN%`1+%Y@=|^e-c7=gqe#TfIfR&c*bKTUcz7hTKX~Vwzu#KHylWa$F2AO;a%8yn9f+20~dsP}x=(P$rmFCv>$rWVwVX#J2JgW8UMXQ-I zR(^W*G|Wy*8su}s$5PC}xJNg-qJP|HV5b=sgWIl{exw<# z-(decy_Xk}U|HFI9CWBpQ<5Xb`z`ygE(P@P^>)*Y7i24(E0>3;ls>#yy#fGTXJF6Q z4_Y1atsZ`R9zbT@W@{Tc#Aj-Q+#&?ffA86Uhj4(E@P$B3|E;5|M#X<7 z(8zy3jsPE7r74bBoew)QAQVFj0hd*IzC0W|(+{lEX@%DqWYW!EHPlzx6|zW0#-V`mp}jP4V2#r|`&@(_KYe_ZWM<&!%{z!yxFk=&kDvNKG?s8z*Wm9b-{W zReMCffiLpkaJL}@%otT(&Q}Hp3Wz_z?dD|CTLlvps|USWgk3@&CEXh-_?VfkAW~h3 z&5y1OV|9HGzU82xGz3(|p8o#VtC}DwO%Mw274>DFC%-gO$XdhZJSy5Q%VE<)|ASBd=gkwC?ThEaSvJBWWikxF973drb?<_Vm9r4rgMQ}4slxO@&OD6O83Sf z^(rr_K{F~PbLkKmHO1AsSS{uj07BegW#{Ws4a?nUmVwb@txhw2>re``nm;THcn-fZ zy(ldE$7mBfSAqXIagQ-+J8mdSIJcMf*C%FcXVfe;Q&H95`U?uQ^?$8uvVneLpcy;j~&-gtN{v-Y;MVlV|2^%v1!?CvwF>3Z|&L%d7eA+gF zXH_NKEP7ipBYm-&%FxhJ!L2S#ZYDh>N1Sb*`w;ak0FVJdr%H$7rL~xxM4uU2*GBs) zkl=n0v>UPZ00v{8$L?vFf8NHx!V@pxWA+EJy;$SQ`7mlqQyaZTok zlOOH)5vqd(+;L%}Ivo#!`ubnFPkFx53Nd~`jN8!7*eE^E3*FEmN^1Dz@pI>XQM_>7 zW=+czUOE?y-Gy#X4HZ-->%p6!giF}}N4Y?@o)c21%B7-z7eFy<@YxC`L&Y0cj%d|k zE9QJ1(UmStTsFlIX}R3T!+4Kp>liw8M}0Y?V?Pn9$m|Zu{W9N}ON3 zjzKKrk=ig31r&zj2r5!XlX3~CeZ=oYx)w!DvW4d!3z5`CuLt*P<-J@dm^#glFu<1B z!w1pR9Z8FG2{GlCdXDVc=4!(~4uEi?9HF-A-ES)P zq23Pjb3mJICdGWV8U#QI91*#Lm(R>2aNszQv3it2SKA`%h2OGY3g8VzyfhVFxLB4P z*W8Xge`eLbK8zUEkuw!dVY~#T{Vyi!f&tLE|1X!~ll}h*7X*6$2NUJoEbso$**Kj! zo5fjYM%4kA$~~r-z6~+SiuT^mVplA7H-cteKam3#?F@^b8+XOZ}_szq76>hXe>rE-sphd?fPHculVE zZO;%_RzuAW-V{!!8=(cyTot^zwKFC;nIDw<-_z~o)p^G~ThvV>TF#}cwI;5KzPHW` zRM(9WGOx3sNKBIuTdZhxj0NT0;gD2hY`0@2Rx;4CDPpbsI;~>z{eB-LxccmwM50Y; zLOsETk_q`oaKN=2b(S(Z*rV66w~cAsIKoXWY)cT<0YEY7nXpXAe)TRYd@Zrholz%C=mH+L%t=-(6z@!sJ&M`$!8IgMKq~ht39EgU^Y11L zYqKD}Kj}*}B}Unnh1@u$frMp83QNcBZVay=)=3ozuT{>`e^semf{ntUgocN7(iBL~ zO%?TAJQ|OyycyW7dTaOV@EF`qBTScrjtFwlq61g zOTAZ$=3`cy%R*}76$0iY@^iWH+!ZnQ7F$)@F?xTXMGnu7^}b}@YYrMa6ffmTe_G{t z>7m;~feY^~s8xyRpR?o6kf%uFhf z*`f9X+2H^RYp@b*sFu1N@IO$s(d0y`KhYnI+!ra5S5>YH;n8b9;U zakhIU)|hcl<+5lzP$R1Z(G}>Yv2uF-xbU9JCe9!v(jo7M)wG1&S9`6AgDCTb;nC74 zYDm>X@hQIL+p1M9zkMSwmh*h`t$jI$f_OVER+W4bIT`mH5JP%rqcZs zCw`>}sTLGVqnlEGpv!M#4tUivSAQoN9F;`{${^w_8{CKZTn}0bsOZ{1no2Air(9vw z<{sMbZHoCly~ht`GJJ@yICLk43-#&SO=_1MZsBUXG48KO_@Sgb{@DC)5Y+sWY>(0j zFFx@}W=XrrL{$0t`1)9`@5=oSNhEfj9o@xBgE5_6zgMD4->%Mp^;>xia5i=R+FQIv zOyA@k98)OLZs+-6wZ)?{dDYQ*9j;40f+lI0x+5+}Ow*>JKx6(I1AJb{)!SxvPNCMQ z??;i4s@)&k+|RE5{{HnT6CObe5bQx(SL+@fYqc!=g^`}*Sf@;1=5GBT`TnTPfSM@= zw`knEM%<1+2aG}`m7u;fZ*-4A>xW;_fZ_f;%P$ZaP&D?w8&i-)%16cUXa?qym-4igPD zt52}`QIgZayt-c`2Hj>y8YiPyze?iWPu$a*suvo+?!^DxE8Ew(%$OVoC{=GLc$W2Z z7x8{C`7PV7k0S}gHO>6%FAUHrYW>{rnHon|(c_J=3zOvxg8Y!$FnTVDKx`NH=v)(n zjc>7$IOFe7Fu#-ga8+#eEm&%%zG2vpxTv%Oip*gKyS_+p5yj~Et3EM`(NyRnu&_=0 zZ9ULs2}u4~Z6{F%SSqW~?gc36RhWldKSSKOa2CcW6gdrW;S+CM(D+TJEQHv*4k)5STyN^Y&8B#yixXqtFp#)3o77S-hyytF}ZC~a(UB&kL4|RZ=>i)hSm6(`}W#%L#q$VBe$&r zbrQ2PgqH9d?zGmY#+)RWN$a)A>RNV3X?kIo{_GG=frwkL?R zxISCGUm?{WQpaxXF(tSz!RIzx?O#*Ww3V1>IW}D6AUQRuT>eMt$am?v1(Z}84vzuj z&`-Or!8|ps>mprAvmpIrJE344EHk5Hng$9wN;2QuY$k?U$sj20cbTgb_Sc7_Fjart z7V(9C9O7vuKVwKujOF06f%p3|#3%4#xGfJH8E1(Pj52MsCEpQ;@gg9JE2+jW;4 zHSIsf$}qjW5e9b98KXSVl!;q*Ni!U>JONjGQ0jA8dhX_@Iy4U_n@_I^Pe_2j8QcC5 z9!uf*x@*1v)L~b}X(D-QQ9r$T`?AQIFOvT;pcSl#<$oKJ(#NmANfngC5tu!Hr#$OhBmb{Om)W_?vU?xOX zJ_Kf>R^4v>Uh=4_U7OlUu}e>xa@mOnZ(|&2mu);{*K@L>kt9T=R0v3}{;N6H_f>V- zATtOheA#fQ>UY${;1|@`%ObffQ&seo?n=+yu~T~5^`V^f9F!E0?n{R#F!}H1;gv*_Nt^LsQ9dU&39%h7a^nJX zX~Mvvz~m@xigb6}M^W(Xl z$p@b9Xp5}Yut=68g8_wV-jRV{Jr!Rh@6h2xg80n7$`&J|>%Fc0t%5_4EsYW2%)OmF zAk&&Su6ANH2n#X3NmQB!wZc@;jOC^>x4W3?)hkRpMj9++x=;RK93GKt85U}HDt5xk z7RBgBYh+HCc#xj?kyiX{W$OcB>P`E0mG9t7s^l?$Qvw!98b zb?W0rU5`)9$t;%^h?b8RNkS_|NVmj-*0pKbyq{@>_+N)<^DY8YZeEjvi=e>dvTy}> zj+bsh?Rx|+BO8&xo~bxdqmU006@n5DW?4L(ENbEgghSa|wXO%Rx@hmfai0!b*!%w3 zcosw_#adv?Y}JhhHu?Z+bz@lskZoxX)GCO1G^^|=K#$cljVux zm5H>)@O0_mWZoo1f(z2z0O^_tAuuK%|KPJ#+6V9RMc#{wCQ9``e;q+#EPIp05DFR* zb|^aT+OA;_&V6R`7=bz2+6&a3N@vA4n+D8)j;BYQ8gU*(jLAHUdT`__cljOBZ(_>9 z0+?JRI%@=&Z0R;~i@d}aT|ojUvL2Ov1V;}@^u44s6DAdjcE;?3s*g(~-FoyXCpUAw z>UZ`SB0w8^WBSwOTc5j1$Y~?M8^$)Iz`E-p*y`0#aD-tdjl#m?j*}%3&kWD8mXnPK z8I5Z@i;(G~mOnEa+w0$aaPc~UbNaXaryNeW`T8LjnVWc@3*+TQU!F#2FR;3I=Ag%D zgQS69l@80LHIusTEwR7a@3%6b+RCb~Vo)8Q3;*Kecw86g*OMm0H2UXkl&fEPq)BV^ z=iQ|v4mI+{4$ zltdQxJ&m6;Y?TE1)e1rc@zN~RFq07kCgynI0zv+Qo?0MkjDd~SExKH}{T6WNp4QsW zCh+FM$L;;u&*doa*#4CyC-pB1nGxU}q*f>xI=CO-aV!9TSj!$7v|%01cp?3#(;XGj zjZnw2?prhs)i+}9ljdwiPE&SQhs&MJ&5m5?2?rx2wfhx-8-=bZ!KHv!1r%@31|QoD zuz8E>faszEt^FsJx$`R{+Zh|{8YSoina#ukEIJq1tP@(?(D-QZP}d0M;kf>gkE*4^ zU_YuJZs;ZrX9@+oOr!(Vcb>JZO}|Y&FWh7KnnQI2J$O12u>O{BQ95?f*D51QPE4UA zEXM0lPW5_>*Rjrn!w8NEI7Z7 z6o#SvtZhADF2wois7qo4hEFwZY@vC*Qe!Agkp46qzL`=Q-YF8e>~z$M3v}VmXj z<%E~>yBzoxHEdXcUDm!Xy?oYerG3cxCDwAaB2e%rAJC?%7_aZ1Wc!vEc1@OG6gu?h z>o&f=r0}?dzb*pe?eQM#F%rF1sn3-`@IKRk4dkgGBvN}XSeurBqkigLc2dg!s{8SA zyf=_Ubr+gpdkZZ+1gGNa_{7b1B)N3QVoFMu5}shkmXI_GtcqMNE)YGK%`_Xx_l@fB z+Qb0u-_^8e{7-wZk4ew8y(TtjH3Dpb2}?TZNy8j%COPqD++P7~#X_St$W}ChyVK+S zqxZ5`VFxnsk*S@27X178bnhkQek4uxc@@b5k2k71^2fmGqSt{yXRHWGBc8`Y3maaqxqnpnGv^65NPKOhBQx|1 z#(RCQ8U&fNu>(d9*tR_jh&6$`WP2Yr^t?000f#cWo(ac

oeu|4MZTy@f)?oN&&Y38Kf8)N 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 S*{IFR|2X0V(z?_Nd*z?Hlmf^A literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/doc/images/assistant-preferences-documentation.png b/src/assistant/assistant/doc/images/assistant-preferences-documentation.png new file mode 100644 index 0000000000000000000000000000000000000000..92e8e0568b27db11f519df73410c349de44b59cb GIT binary patch literal 9533 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 literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/doc/images/assistant-preferences-options.png b/src/assistant/assistant/doc/images/assistant-preferences-options.png new file mode 100644 index 0000000000000000000000000000000000000000..38233b7cfa7b779e3d8f603c7a3cd7855fdb44a0 GIT binary patch literal 5730 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

;?I`UNFZC=g_o#plr{TI>-NlEyakCyc z;1IRXoz3bw!-aHh6s9my{sIaEU*xea zKIMiJqQ9afeoCk*MmE02<^d6qWxUT=CfJWw&orQ5o`vdeQC`eXwY}KMKg6^Kg>`EZ zKaE_*?52lPL*jhL?v>;BVu_N_aFnrQ^)Bhk)IwjIk&q(;$C6P#v^1Nz>;-X2koTl> zN$p9x%)^D(zq<`Fc=5cMll5?&sfbI6KeifFF?=E-+d0ces^kJ4C}}qgnUS0Smn0#y zD$)EOEHULqQ&6<*pEOhPUmTOEt7OcXP@@epIvP%hN#$#jF&DrGsU*@mdz4)HRE&o5 zaqZszvqS~_tyKRNP)+`^KlI\n" +qhp.extraFiles = style/offline-simple.css +buildversion = " " diff --git a/src/assistant/assistant/doc/internal/internal.pro b/src/assistant/assistant/doc/internal/internal.pro new file mode 100644 index 0000000..d6c3cea --- /dev/null +++ b/src/assistant/assistant/doc/internal/internal.pro @@ -0,0 +1,2 @@ +TEMPLATE = aux +QMAKE_DOCS = $$PWD/assistant.qdocconf diff --git a/src/assistant/assistant/doc/qtassistant.qdocconf b/src/assistant/assistant/doc/qtassistant.qdocconf new file mode 100644 index 0000000..b797389 --- /dev/null +++ b/src/assistant/assistant/doc/qtassistant.qdocconf @@ -0,0 +1,41 @@ +include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) +include($QT_INSTALL_DOCS/config/exampleurl-qttools.qdocconf) + +project = QtAssistant +description = Qt Assistant Manual +examplesinstallpath = assistant +moduleheader = + +qhp.projects = QtAssistant + +qhp.QtAssistant.file = qtassistant.qhp +qhp.QtAssistant.namespace = org.qt-project.qtassistant.$QT_VERSION_TAG +qhp.QtAssistant.virtualFolder = qtassistant +qhp.QtAssistant.indexTitle = Qt Assistant Manual + +qhp.QtAssistant.subprojects = manual examples +qhp.QtAssistant.subprojects.manual.title = Manual +qhp.QtAssistant.subprojects.manual.indexTitle = Qt Assistant Manual +qhp.QtAssistant.subprojects.manual.selectors = fake:page +qhp.QtAssistant.subprojects.examples.title = Examples +qhp.QtAssistant.subprojects.examples.indexTitle = Qt Assistant Examples +qhp.QtAssistant.subprojects.examples.selectors = fake:example +qhp.QtAssistant.subprojects.examples.sortPages = true + +language = Cpp + +sourcedirs += .. + +exampledirs = ../../../../examples/assistant \ + snippets + +imagedirs = images + +depends += qtdoc qmake + +# Use a generic thumbnail image for examples that have no images in their docs +manifestmeta.thumbnail.names += "QtAssistant/Remote Control Example" + +navigation.landingpage = "Qt Assistant Manual" + +warninglimit = 0 diff --git a/src/assistant/assistant/doc/snippets/doc_src_assistant-manual.qdoc b/src/assistant/assistant/doc/snippets/doc_src_assistant-manual.qdoc new file mode 100644 index 0000000..4d00f19 --- /dev/null +++ b/src/assistant/assistant/doc/snippets/doc_src_assistant-manual.qdoc @@ -0,0 +1,111 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +//! [0] +assistant -collectionFile file +//! [0] + + +//! [1] + + + + My Application Help + qthelp://com.mycompany.1_0_0/doc/index.html + myfilter + application.png + false + false + true + mycompany/myapplication + + About My Application + Über meine Applikation... + + + about.txt + ueber.txt + about.png + + + + + + myapplication-manual.qhp + myapplication-manual.qch + + + + myapplication-manual.qch + + + +//! [1] + + +//! [2] +QProcess *process = new QProcess; +QStringList args; +args << QLatin1String("-collectionFile") + << QLatin1String("mycollection.qhc") + << QLatin1String("-enableRemoteControl"); +process->start(QLatin1String("assistant"), args); +if (!process->waitForStarted()) + return; +//! [2] + + +//! [3] +QByteArray ba; +ba.append("setSource qthelp://com.mycompany.1_0_0/doc/index.html\n"); +process->write(ba); +//! [3] + + +//! [4] +QByteArray ba; +ba.append("hide bookmarks;"); +ba.append("hide index;"); +ba.append("setSource qthelp://com.mycompany.1_0_0/doc/index.html\n"); +process->write(ba); +//! [4] + +//! [5] + + + ... + + + myapplication-manual.qch + another-manual.qch + + + +//! [5] + +//! [6] +assistant -collectionFile mycollection.qhc -register myapplication-manual.qch +//! [6] + +//! [7] + + + + My Application Help + mycompany/myapplication + ... + + +//! [7] + +//! [8] +assistant -collectionFile mycollection.qhc +//! [8] + +//! [9] +%QDesktopServices::AppDataLocation%/mycompany/myapplication/mycollection.qhc +//! [9] + +//! [10] +qhelpgenerator mycollection.qhcp -o mycollection.qhc +//! [10] diff --git a/src/assistant/assistant/doc/src/assistant-example.qdoc b/src/assistant/assistant/doc/src/assistant-example.qdoc new file mode 100644 index 0000000..8a3fc5e --- /dev/null +++ b/src/assistant/assistant/doc/src/assistant-example.qdoc @@ -0,0 +1,27 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \group examples-qtassistant + \ingroup all-examples + \title Qt Assistant Examples + \brief Using Qt Assistant as a help viewer for Qt applications. + + \image assistant-examples.png + + Qt Assistant provides support for interactive help and enables you to + display customer documentation to users of your Qt applications. + + The following examples illustrate how to use Qt Assistant as a help viewer + for applications. + +*/ + +/* + \list + \li \l{simpletextviewer}{Simple Text Viewer}\raisedaster + \li \l{remotecontrol}{Remote Control} + \endlist + + Examples marked with an asterisk (*) are fully documented. +*/ diff --git a/src/assistant/assistant/doc/src/assistant-manual.qdoc b/src/assistant/assistant/doc/src/assistant-manual.qdoc new file mode 100644 index 0000000..121def1 --- /dev/null +++ b/src/assistant/assistant/doc/src/assistant-manual.qdoc @@ -0,0 +1,418 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \page qtassistant-index.html + \title Qt Assistant Manual + \ingroup qttools + + \startpage {Qt Reference Pages} + \nextpage Qt Assistant Quick Guide + + \keyword Qt Assistant + + \QA is a tool for viewing on-line documentation in Qt help file format. + For more information about basic \QA functions, see + \l{Qt Assistant Quick Guide}. + + Qt installations include a set of reference and tools documentation that + you can view in the Qt Creator IDE and in \QA. You can add custom + documentation to the set of documents displayed in the \QA main view. For + detailed information about all \QA functions, see \l{Using Qt Assistant}. + + You can use \QA as the help viewer in your applications. You can display + your own documentation and customize \QA to look and feel like part of your + application. You can change the window title or icon, as well as menu texts + and actions. For more information, see \l{Customizing Qt Assistant}. + + \section1 Table of Contents + + \list + \li \l{Qt Assistant Quick Guide} + \li \l{Using Qt Assistant} + \li \l{Customizing Qt Assistant} + \li \l{Licenses and Attributions} + \endlist +*/ + +/*! + \page assistant-custom-help-viewer.html + \title Customizing Qt Assistant + + \previouspage Using Qt Assistant + \nextpage Licenses and Attributions + + Using \QA as custom help viewer requires more than just being able to + display custom documentation. It is equally important that the + appearance of \QA can be customized so that it is seen as a + application-specific help viewer rather than \QA. This is achieved by + changing the window title or icon, as well as some application-specific + menu texts and actions. For a complete list of possible customizations, + see \l{Creating a Custom Help Collection File}. + + Another requirement of a custom help viewer is the ability to receive + actions or commands from the application it provides help for. This is + especially important when the application offers context sensitive help. + When used in this way, the help viewer may need to change its contents + depending on the state the application is currently in. This means that + the application has to communicate the current state to the help viewer. + For more information, see \l{Using Qt Assistant Remotely}. + + The \l{Simple Text Viewer Example}{Simple Text Viewer} example uses the + techniques described in this document to show how to use \QA as a custom + help viewer for an application. + + \warning In order to ship Qt Assistant in your application, it is crucial + that you include the sqlite plugin. For more information on how to include + plugins in your application, refer to the \l{Deploying Qt Applications} + {deployment documentation}. + + \section1 Qt Help Collection Files + + The first important point to know about \QA is that it stores all + settings related to its appearance \e and a list of installed + documentation in a help collection file. This means, when starting \QA + with different collection files, \QA may look totally different. This + complete separation of settings makes it possible to deploy \QA as a + custom help viewer for more than one application on one machine + without risk of interference between different instances of \QA. + + To apply a certain help collection to \QA, specify the respective + collection file on the command line when starting it. For example: + + \snippet doc_src_assistant-manual.qdoc 8 + + However, storing all settings in one collection file raises some problems. + The collection file is usually installed in the same directory as the + application itself, or one of its subdirectories. Depending on the + directory and the operating system, the user may not have any permissions + to modify this file which would happen when the user settings are stored. + Also, it may not even be possible to give the user write permissions, for + example when the file is located on a read-only medium like a CD-ROM. + + Even if it is possible to give everybody the right to store their settings + in a globally available collection file, the settings from one user would + be overwritten by another user when exiting \QA. + + To solve this dilemma, \QA creates user specific collection files which + are more or less copied from the original collection file. The user-specific + collection file will be saved in a subdirectory of the path returned by + QDesktopServices::AppDataLocation. The subdirectory, or \e{cache directory} + within this user-specific location, can be defined in the help collection + project file. For example: + + \snippet doc_src_assistant-manual.qdoc 7 + + So, when calling + + \snippet doc_src_assistant-manual.qdoc 8 + + \QA actually uses the collection file: + + \snippet doc_src_assistant-manual.qdoc 9 + + There is no need ever to start \QA with the user specific collection + file. Instead, the collection file shipped with the application should + always be used. Also, when adding or removing documentation from the + collection file (see next section) always use the normal collection file. + \QA will take care of synchronizing the user collection files when the + list of installed documentation has changed. + + \section1 Displaying Custom Documentation + + Before \QA is able to show documentation, it has to know where it can + find the actual documentation files, meaning that it has to know the + location of the Qt compressed help file (*.qch). As already mentioned, + \QA stores references to the compressed help files in the currently used + collection file. So, when creating a new collection file you can list + all compressed help files \QA should display. + + \snippet doc_src_assistant-manual.qdoc 5 + + Sometimes, depending on the application for which \QA acts as a + help viewer, more documentation needs to be added over time; for + example, when installing more application components or plugins. + This can be done manually in \QA by selecting \gui Edit > \gui Preferences + > \gui Documentation. However, this approach has the disadvantage + that every user has to do it manually to get access to the new + documentation. + + The preferred way of adding documentation to an already existing collection + file is to use the \c{-register} command line flag of \QA. When starting + \QA with this flag, the documentation will be added and \QA will + exit right away displaying a message if the registration was successful + or not. + + The search indexing will only index your custom *.html, *.htm, + and *.txt files. + + \snippet doc_src_assistant-manual.qdoc 6 + + The \c{-quiet} flag can be passed on to \QA to prevent it from writing + out the status message. + + \note \QA shows the documentation in the \gui Contents view in the same + order as it was registered. + + + \section1 Changing the Appearance of Qt Assistant + + The appearance of \QA can be changed by passing different command line options + on startup. However, these command line options only allow to show or hide + specific widgets, like the contents or index view. Other customizations, such + as changing the application title or icon, or disabling the filter functionality, + can be done by creating a custom help collection file. + + \section2 Creating a Custom Help Collection File + + The help collection file (*.qhc) used by \QA is created when running the + \c qhelpgenerator tool on a help collection project file (*.qhcp). + The project file format is XML and it supports the following tags: + + \table + \header + \li Tag + \li Brief Description + \row + \li \c{} + \li Specifies a window title for \QA. + \row + \li \c{<homePage>} + \li Specifies the page to display when selecting \gui Home in the + \QA main window. + \row + \li \c{<startPage>} + \li Specifies the page to display initially when the help collection + is used. + \row + \li \c{<currentFilter>} + \li Specifies the filter that is initially used. + If this filter is not specified, the documentation will not be filtered. This has + no impact if only one documentation set is installed. + \row + \li \c{<applicationIcon>} + \li Describes an icon that will be used instead of the normal \QA + application icon. This is specified as a relative path from the directory + containing the collection file. + \row + \li \c{<enableFilterFunctionality>} + \li Enables or disables user accessible filter functionality, + making it possible to prevent the user from changing any filter when running \QA. + It does not mean that the internal filter functionality is completely disabled. + Set the value to \c{false} if you want to disable the filtering. If the filter + toolbar should be shown by default, set the attribute \c{visible} to \c{true}. + \row + \li \c{<enableDocumentationManager>} + \li Shows or hides the \gui Documentation tab in the \gui Preferences + dialog. Disabling the \gui Documentation tab allows you to limit + \QA to display a specific documentation set or make it impossible for the end user + to accidentally remove or install documentation. To hide the \gui Documentation tab, + set the tag value to \c{false}. + \row + \li \c{<enableAddressBar>} + \li Enables or disables the address bar functionality. By default it + is enabled. To disable it, set the tag value to \c{false}. If the + address bar functionality is enabled, the address bar can be shown by setting the + tag attribute \c{visible} to \c{true}. + \row + \li \c{<aboutMenuText>, <text>} + \li Lists localized versions for the \gui About menu item in the + \gui Help menu. For example, \gui {About Application}. The text is + specified within the \c{text} tags. The \c{language} attribute takes the two + letter language name. The text is used as the default text if no language + attribute is specified. + \row + \li \c{<aboutDialog>, <file>, <icon>} + \li Specifies the text for the \gui About dialog that can be opened + from the \gui Help menu. The text is taken from the + file in the \c{file} tags. It is possible to specify a different file or any + language. The icon defined by the \c{icon} tags is applied to any language. + \row + \li \c{<cacheDirectory>, <cacheDirectory base="collection">} + \li Specifies the cache directory that is used to store index files + needed for the full text search and a copy of the collection file. + The copy is needed because \QA stores all its settings in the + collection file, and therefore, it must be writable for the user. + The directory is specified as a relative path. + If the \c{base} attribute is set to "collection", the path is + relative to the directory the collection file resides in. + If the attribute is set to "default" or if it is missing, + the path is relative to the directory given by + QDesktopServices::AppDataLocation. The first form is useful for + collections that are used in a \e mobile way, such as carried around + on a USB stick. + \row + \li \c{<enableFullTextSearchFallback>} + \li Enables or disables the ability to fallback and use the full text + search if a keyword cannot be found in the index. This functionality + can be used while remote controlling \QA. To make it available for + remote control, set the tag value to \c{true}. + \endtable + + In addition to those \QA specific tags, the tags for generating and registering + documentation can be used. See \l{Qt Help Collection Files} documentation for more information. + + An example of a help collection file that uses all the available tags is shown below: + + \snippet doc_src_assistant-manual.qdoc 1 + + To create the binary collection file, run the \c qhelpgenerator tool: + + \snippet doc_src_assistant-manual.qdoc 10 + + To test the generated collection file, start \QA in the following way: + + \snippet doc_src_assistant-manual.qdoc 8 + + \section1 Using Qt Assistant Remotely + + Even though the help viewer is a standalone application, it will mostly + be launched by the application it provides help for. This approach + gives the application the possibility to ask for specific help contents + to be displayed as soon as the help viewer is started. Another advantage + with this approach is that the application can communicate with the + help viewer process and can therefore request other help contents to be + shown depending on the current state of the application. + + So, to use \QA as the custom help viewer of your application, simply + create a QProcess and specify the path to the \QA executable. In order + to make \QA listen to your application, turn on its remote control + functionality by passing the \c{-enableRemoteControl} command line option. + + The following example shows how this can be done: + + \snippet doc_src_assistant-manual.qdoc 2 + + Once \QA is running, you can send commands by using the stdin channel of + the process. The code snippet below shows how to tell \QA to show a certain + page in the documentation. + + \snippet doc_src_assistant-manual.qdoc 3 + + \note The trailing newline character is required to mark the end + of the input. + + The following commands can be used to control \QA: + + \table + \header + \li Command + \li Brief Description + \row + \li \c{show <Widget>} + \li Shows the sidebar window (dock widget) specified by <Widget>. If the widget + is already shown and this command is sent again, the widget will be + activated, meaning that it will be raised and given the input focus. + Possible values for <Widget> are "contents", "index", "bookmarks" or "search". + \row + \li \c{hide <Widget>} + \li Hides the dock widget specified by <Widget>. Possible values for + <Widget> are "contents", "index", "bookmarks" and "search". + \row + \li \c{setSource <Url>} + \li Displays the given <Url>. The URL can be absolute or relative + to the currently displayed page. If the URL is absolute, it has to + be a valid Qt help system URL. That is, starting with "qthelp://". + \row + \li \c{activateKeyword <Keyword>} + \li Inserts the specified <Keyword> into the line edit of the + index dock widget and activates the corresponding item in the + index list. If such an item has more than one link associated + with it, a topic chooser will be shown. + \row + \li \c{activateIdentifier <Id>} + \li Displays the help contents for the given <Id>. An ID is unique + in each namespace and has only one link associated to it, so the + topic chooser will never pop up. + \row + \li \c{syncContents} + \li Selects the item in the contents widget which corresponds to + the currently displayed page. + \row + \li \c{setCurrentFilter <filter>} + \li Selects the specified filter and updates the visual representation + accordingly. + \row + \li \c{expandToc <Depth>} + \li Expands the table of contents tree to the given depth. If depth + is 0, the tree will be collapsed completely. If depth is -1, + the tree will be expanded completely. + \row + \li \c{register <help file>} + \li Adds the given Qt compressed help file to the collection. + \row + \li \c{unregister <help file>} + \li Removes the given Qt compressed help file from the collection. + \endtable + + If you want to send several commands within a short period of time, it is + recommended that you write only a single line to the stdin of the process + instead of one line for every command. The commands have to be separated by + a semicolon, as shown in the following example: + + \snippet doc_src_assistant-manual.qdoc 4 +*/ + +/* +\section2 Modifying \QA with Command Line Options + + Different help collections can be shown by simply passing the help collection + path to \QA. For example: + + \snippet doc_src_assistant-manual.qdoc 0 + + Other available options the can be passed on the command line. + + \table + \header + \li Command Line Option + \li Brief Description + \row + \li -collectionFile <file.qhc> + \li Uses the specified collection file instead of the default one. + \row + \li -showUrl URL + \li Shows the document referenced by URL. + \row + \li -enableRemoteControl + \li Enables \QA to be remotly controlled. + \row + \li -show <widget> + \li Shows the specified dockwidget which can be "contents", "index", + "bookmarks" or "search". + \row + \li -hide <widget> + \li Hides the specified dockwidget which can be "contents", "index", + "bookmarks" or "search. + \row + \li -activate <widget> + \li Activates the specified dockwidget which can be "contents", + "index", "bookmarks" or "search. + \row + \li -register <doc.qch> + \li Registers the specified compressed help file in the given help + collection. + \row + \li -unregister <doc.qch> + \li Unregisters the specified compressed help file from the given + collection file. + \row + \li -quiet + \li Doesn't show any error, warning or success messages. + \endtable + */ + +/*! + \page assistant-licenses.html + \title Licenses and Attributions + + \previouspage Customizing Qt Assistant + + \QA is available under commercial licenses from \l{The Qt Company}. In + addition, it is available under the \l{GNU General Public License, version 3}. + + Furthermore, \QA \QtVersion may contain third party modules + under following permissive licenses: + + \generatelist{groupsbymodule attributions-qtassistant-tools} +*/ diff --git a/src/assistant/assistant/doc/src/assistant-quick-guide.qdoc b/src/assistant/assistant/doc/src/assistant-quick-guide.qdoc new file mode 100644 index 0000000..5fa53a2 --- /dev/null +++ b/src/assistant/assistant/doc/src/assistant-quick-guide.qdoc @@ -0,0 +1,289 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \if !defined(ASSISTANT_INTERNAL) + \previouspage Qt Assistant Manual + \endif + \page assistant-quick-guide.html + \nextpage Using Qt Assistant + + \title Qt Assistant Quick Guide + + Once you have installed Qt, you can start Qt Assistant in the same way as + any other application on the development host. + + The \QA main window contains a sidebar (1) with navigation windows for: + + \list + \li Viewing a list of documents in Qt help format that are installed on + the development host. + \li Managing bookmarks. + \li Searching for keywords in the index. + \li Searching for information using a free text search function. + \li Switching between open topics. + \endlist + + The selected topic in the selected document is displayed in the + \b Documentation window (2). + + \image assistant-assistant.png + + Click the \gui Previous and \gui Next toolbar buttons (3) to navigate within + the topics you have visited. + + \section1 Managing Bookmarks + + \image assistant-bookmarks.png + + To bookmark topics of particular interest, select \gui Bookmarks > + \gui {Add Bookmark} (or press \key{Ctrl+B}). A bookmark for the + page that is currently showing in the \gui Documentation window is added. + + You can view and manage bookmarks in the \gui Bookmarks window. + Double-click a bookmark to open the topic in the \gui Documentation window. + You can also right-click the bookmark and select \gui{Show Bookmark} in the + context menu. + + To rename or delete the highlighted bookmark, select \gui {Rename Bookmark} + or \gui {Delete Bookmark} in the context menu. + + \section1 Searching for Keywords + + \image assistant-index.png + + To perform an index search, click the \gui{Index} tab on the sidebar + (or press \key{Alt+I}). In the \gui{Look For} field, enter the search term. + As you type, words are found and highlighted in a list beneath the field. + If the highlighted text matches what you are + looking for, double-click it or press \key{Enter}. The + \gui Documentation window displays the relevant topic. You rarely have + to type in the whole word before \QA finds a match. Note that for some + words there may be more than one possible topic that is relevant. + + \section1 Using Free Text Search + + \image assistant-search.png + + \QA also provides full text searching for finding specific words in the + documentation. To activate the full text search, either press \key(Alt+S) + or click the \gui{Search} tab on the sidebar. Then enter the term you are + looking for and click \gui{Search}. All documents containing the specified + term are listed. +*/ + +/*! + \if !defined(ASSISTANT_INTERNAL) + \nextpage Customizing Qt Assistant + \endif + \page assistant-details.html + \title Using Qt Assistant + \previouspage Qt Assistant Quick Guide + + \image assistant-dockwidgets.png + + You can read documentation in the \gui Documentation window. To open a topic + in a new tab, right click it in the \gui Contents window to open a context + menu and select \gui {Open Link in New Tab}. All open topics are listed in + the \gui {Open Pages} window. Select a topic to view it in the + \gui Documentation window. + + If you want the \gui{Documentation} window to use as much space as possible, + you can easily group, move or hide the sidebar windows. To group the windows, + drag one on top of the other and release the mouse. If one or all sidebar + windows are not shown, select keyboard shortcuts to display them. You can + view the keyboard shortcuts in the \gui View menu. + + The sidebar windows can be docked into the main window, so you can drag them + to the top, left, right or bottom of the main window, or you can + drag them outside \QA to float them as independent windows. + + To change the font family and font sizes of the browser window displaying + the documentation or the application itself, select \gui Edit > + \gui Preferences > \gui Fonts. + + \image assistant-preferences-fonts.png + + To temporarily increase or decrease the font size in the \gui Documentation + window, select \gui View > \gui {Zoom in} or \gui {Zoom out}. To reset the + font size, select \gui View > \gui {Normal Size}. + + To navigate between pages, select \gui Go > \gui Previous or \gui Next. This + takes you to the previous or next page in the history. To return to the home + page, select \gui Go > \gui Home. To specify the home page, select + \gui Edit > \gui Preferences > \gui Options. + + To synchronize the \gui{Contents} window with the page currently shown in + the \gui{Documentation} window, select \gui Go > + \gui {Sync with Table of Contents}. + + The address toolbar provides a fast way to enter a specific URL for a + documentation file. To show the address toolbar, select \gui View > + \gui Toolbars > \gui {Address Toolbar}. + + \section1 Searching from Page Contents + + To find text on the current page, select \gui Edit > \gui {Find in Text}. + Enter the search term in the field. The search is incremental, meaning that + the most relevant result is shown as you enter characters into the field. + + If you select the \gui{Case sensitive} checkbox, the search considers the + case of the search term. For example, if you search for \b spin, it matches + \b spin but not \b Spin. + + To search forwards or backwards from your current position on the page, + click \gui Previous or \gui Next. + + To hide the find control, either click \gui Close or press \key Esc. + + \section1 Full Text Searching + + \img assistant-search.png + + \QA provides a powerful full text search engine. You can search for certain + words or text in the \gui Search window. Enter the text you want to look for + and press \key{Enter} or click \gui{Search}. The search is not case sensitive. + For example, \b Foo, \b fOo and \b FOO are all treated as the same. + + You can create complex queries using the + \l{https://sqlite.org/fts5.html#full_text_query_syntax}{FTS query syntax}. + + The following are examples of common search patterns: + + \list + \li \c deep -- lists all the documents that contain the word \b deep + \li \c{deep*} -- lists all the documents that contain a word beginning + with \b deep + \li \c{deep copy} -- lists all documents that contain both \b deep \e + and \b copy + \li \c{"deep copy"} -- list all documents that contain the phrase + \b {deep copy} + \endlist + + The list of documents found is ordered according to the number of + occurrences of the search text which they contain, with those containing + the highest number of occurrences appearing first. Simply click any + document in the list to display it in the \gui{Documentation} window. + + If the documentation has changed \mdash for example, if documents have been added + or removed \mdash \QA will index them again. + + \section1 Filtering Help Contents + + \QA allows you to install any kind of documentation as long as it is organized + in Qt compressed help files (*.qch). For example, you can view + Qt reference documentation for several Qt versions at the same time. In many + respects, this is very convenient since only one version of \QA is needed. + However, at the same time it becomes more complicated when performing tasks like + searching the index because most keywords are defined in more than one Qt + version. This means that \QA will always ask the user to choose which one + should be displayed. + + We use documentation filters to solve this issue. A filter is identified by its + name, and contains a list of filter attributes. An attribute is just a string and + can be freely chosen. Attributes are defined by the documentation itself, + which means that every documentation set usually has one or more attributes. + + For example, the \QA documentation defines the attributes \c {assistant} and + \c{tools}, whereas \QD defines \c{designer} and \c{tools}. + The filter to display all tools would then define only the attribute + \c{tools} since this attribute is part of both documentation sets. + Adding the attribute \c{assistant} to the filter would then only show \QA + documentation since the \QD documentation does not contain this + attribute. Having an empty list of attributes in a filter will match all + documentation. That is, it is equivalent to requesting unfiltered documentation. + + To create and remove documentation filters, select \gui Edit > + \gui Preferences > \gui Filters. + + \image assistant-preferences-filters.png + + To add a new filter, click \gui Add, + specify a filter name, and click \gui OK. Then select the filter attributes + in the \gui Attributes field. + + To delete a filter, select it and click \gui Remove. + + The filter toolbar allows you to apply a filter to the currently installed + documentation. To show the filter toolbar, select \gui View > \gui Toolbars + > \gui {Filter Toolbar}. + + \section1 Adding Documentation + + To install and remove compressed help files, select \gui Edit > + \gui Preferences > \gui Documentation. + + \image assistant-preferences-documentation.png + + Click the \gui{Install} button and + choose the path of the compressed help file (*.qch) you would like to install. + To delete a help file, select a documentation set in the list and click + \gui{Remove}. + + \section1 Specifying Home Page + + To specify the homepage \QA displays when you click the \gui{Home} button, + select \gui Edit > \gui Preferences > \gui Options. + + \image assistant-preferences-options.png + + Enter the URL of the home page or select \gui{Current Page} to set the + currently displayed page as your home page. To leave the home page blank, + select \gui {Blank page}. Select \gui{Restore to default} to reset your home + page to the default home page. + + \section1 Using Command Line Options + + \QA handles the following command line options: + + \table + \header + \li Command Line Option + \li Brief Description + \row + \li -collectionFile <file.qhc> + \li Uses the specified collection file instead of the default one. + \row + \li -showUrl <URL> + \li Shows the document referenced by URL. + \row + \li -enableRemoteControl + \li Enables \QA to be remotely controlled. + \row + \li -show <widget> + \li Shows the specified sidebar window which can be "contents", "index", + "bookmarks" or "search". + \row + \li -hide <widget> + \li Hides the specified sidebar window which can be "contents", "index", + "bookmarks" or "search". + \row + \li -activate <widget> + \li Activates the specified sidebar window which can be "contents", + "index", "bookmarks" or "search". + \row + \li -register <doc.qch> + \li Registers the specified compressed help file in the given help + collection. + \row + \li -unregister <doc.qch> + \li Unregisters the specified compressed help file from the given + collection file. + \row + \li -remove-search-index + \li Purges the help search engine's index. This option is + useful in case the associated index files get corrupted. + \QA will re-index the documentation at the next start-up. + \row + \li -rebuild-search-index + \li Rebuilds the help search engine's index. + Note that this operation may take a while to finish. + \row + \li -setCurrentFilter <filter> + \li Sets the given filter as the active filter. + \row + \li -quiet + \li Does not show any error, warning or success messages. + \endtable + +*/ diff --git a/src/assistant/assistant/findwidget.cpp b/src/assistant/assistant/findwidget.cpp new file mode 100644 index 0000000..33050b0 --- /dev/null +++ b/src/assistant/assistant/findwidget.cpp @@ -0,0 +1,195 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "tracer.h" +#include "findwidget.h" + +#include <QtWidgets/QApplication> +#include <QtWidgets/QCheckBox> +#include <QtGui/QHideEvent> +#include <QtGui/QKeyEvent> +#include <QtWidgets/QLabel> +#include <QtWidgets/QLayout> +#include <QtWidgets/QLineEdit> +#include <QtWidgets/QToolButton> + +QT_BEGIN_NAMESPACE + +FindWidget::FindWidget(QWidget *parent) + : QWidget(parent) + , appPalette(qApp->palette()) +{ + TRACE_OBJ + installEventFilter(this); + QHBoxLayout *hboxLayout = new QHBoxLayout(this); + QString resourcePath = QLatin1String(":/qt-project.org/assistant/images/"); + +#ifndef Q_OS_MAC + hboxLayout->setContentsMargins(QMargins()); + hboxLayout->setSpacing(6); + resourcePath.append(QLatin1String("win")); +#else + resourcePath.append(QLatin1String("mac")); +#endif + + toolClose = setupToolButton(QString(), + resourcePath + QLatin1String("/closetab.png")); + hboxLayout->addWidget(toolClose); + connect(toolClose, &QAbstractButton::clicked, this, &QWidget::hide); + + editFind = new QLineEdit(this); + hboxLayout->addWidget(editFind); + editFind->setMinimumSize(QSize(150, 0)); + connect(editFind, &QLineEdit::textChanged, this, &FindWidget::textChanged); + connect(editFind, &QLineEdit::returnPressed, this, &FindWidget::findNext); + connect(editFind, &QLineEdit::textChanged, this, &FindWidget::updateButtons); + + toolPrevious = setupToolButton(tr("Previous"), + resourcePath + QLatin1String("/previous.png")); + connect(toolPrevious, &QAbstractButton::clicked, this, &FindWidget::findPrevious); + + hboxLayout->addWidget(toolPrevious); + + toolNext = setupToolButton(tr("Next"), + resourcePath + QLatin1String("/next.png")); + hboxLayout->addWidget(toolNext); + connect(toolNext, &QAbstractButton::clicked, this, &FindWidget::findNext); + + checkCase = new QCheckBox(tr("Case Sensitive"), this); + hboxLayout->addWidget(checkCase); + + labelWrapped = new QLabel(this); + labelWrapped->setScaledContents(true); + labelWrapped->setTextFormat(Qt::RichText); + labelWrapped->setMinimumSize(QSize(0, 20)); + labelWrapped->setMaximumSize(QSize(105, 20)); + labelWrapped->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter); + labelWrapped->setText(tr("<img src=\":/qt-project.org/assistant/images/wrap.png\"" + "> Search wrapped")); + hboxLayout->addWidget(labelWrapped); + + QSpacerItem *spacerItem = new QSpacerItem(20, 20, QSizePolicy::Expanding, + QSizePolicy::Minimum); + hboxLayout->addItem(spacerItem); + setMinimumWidth(minimumSizeHint().width()); + labelWrapped->hide(); + + updateButtons(); +} + +FindWidget::~FindWidget() +{ + TRACE_OBJ +} + +void FindWidget::show() +{ + TRACE_OBJ + QWidget::show(); + editFind->selectAll(); + editFind->setFocus(Qt::ShortcutFocusReason); +} + +void FindWidget::showAndClear() +{ + TRACE_OBJ + show(); + editFind->clear(); +} + +QString FindWidget::text() const +{ + TRACE_OBJ + return editFind->text(); +} + +bool FindWidget::caseSensitive() const +{ + TRACE_OBJ + return checkCase->isChecked(); +} + +void FindWidget::setPalette(bool found) +{ + TRACE_OBJ + QPalette palette = editFind->palette(); + palette.setColor(QPalette::Active, QPalette::Base, found ? Qt::white + : QColor(255, 102, 102)); + editFind->setPalette(palette); +} + +void FindWidget::setTextWrappedVisible(bool visible) +{ + TRACE_OBJ + labelWrapped->setVisible(visible); +} + +void FindWidget::hideEvent(QHideEvent* event) +{ + TRACE_OBJ +#if defined(BROWSER_QTWEBKIT) + // TODO: remove this once webkit supports setting the palette + if (!event->spontaneous()) + qApp->setPalette(appPalette); +#else // BROWSER_QTWEBKIT + Q_UNUSED(event); +#endif +} + +void FindWidget::showEvent(QShowEvent* event) +{ + TRACE_OBJ +#if defined(BROWSER_QTWEBKIT) + // TODO: remove this once webkit supports setting the palette + if (!event->spontaneous()) { + QPalette p = appPalette; + p.setColor(QPalette::Inactive, QPalette::Highlight, + p.color(QPalette::Active, QPalette::Highlight)); + p.setColor(QPalette::Inactive, QPalette::HighlightedText, + p.color(QPalette::Active, QPalette::HighlightedText)); + qApp->setPalette(p); + } +#else // BROWSER_QTWEBKIT + Q_UNUSED(event); +#endif +} + +void FindWidget::updateButtons() +{ + TRACE_OBJ + const bool enable = !editFind->text().isEmpty(); + toolNext->setEnabled(enable); + toolPrevious->setEnabled(enable); +} + +void FindWidget::textChanged(const QString &text) +{ + TRACE_OBJ + emit find(text, true, true); +} + +bool FindWidget::eventFilter(QObject *object, QEvent *e) +{ + TRACE_OBJ + if (e->type() == QEvent::KeyPress) { + if ((static_cast<QKeyEvent*>(e))->key() == Qt::Key_Escape) { + hide(); + emit escapePressed(); + } + } + return QWidget::eventFilter(object, e); +} + +QToolButton* FindWidget::setupToolButton(const QString &text, const QString &icon) +{ + TRACE_OBJ + QToolButton *toolButton = new QToolButton(this); + + toolButton->setText(text); + toolButton->setAutoRaise(true); + toolButton->setIcon(QIcon(icon)); + toolButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + + return toolButton; +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/findwidget.h b/src/assistant/assistant/findwidget.h new file mode 100644 index 0000000..a9647b0 --- /dev/null +++ b/src/assistant/assistant/findwidget.h @@ -0,0 +1,62 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#ifndef FINDWIDGET_H +#define FINDWIDGET_H + +#include <QtWidgets/QWidget> + +QT_BEGIN_NAMESPACE + +class QCheckBox; +class QLabel; +class QLineEdit; +class QToolButton; + +class FindWidget : public QWidget +{ + Q_OBJECT +public: + FindWidget(QWidget *parent = nullptr); + ~FindWidget() override; + + void show(); + void showAndClear(); + + QString text() const; + bool caseSensitive() const; + + void setPalette(bool found); + void setTextWrappedVisible(bool visible); + +signals: + void findNext(); + void findPrevious(); + void escapePressed(); + void find(const QString &text, bool forward, bool incremental); + +protected: + void hideEvent(QHideEvent* event) override; + void showEvent(QShowEvent * event) override; + +private slots: + void updateButtons(); + void textChanged(const QString &text); + +private: + bool eventFilter(QObject *object, QEvent *e) override; + QToolButton* setupToolButton(const QString &text, const QString &icon); + +private: + QPalette appPalette; + + QLineEdit *editFind; + QCheckBox *checkCase; + QLabel *labelWrapped; + QToolButton *toolNext; + QToolButton *toolClose; + QToolButton *toolPrevious; +}; + +QT_END_NAMESPACE + +#endif // FINDWIDGET_H diff --git a/src/assistant/assistant/globalactions.cpp b/src/assistant/assistant/globalactions.cpp new file mode 100644 index 0000000..38be27e --- /dev/null +++ b/src/assistant/assistant/globalactions.cpp @@ -0,0 +1,217 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "globalactions.h" + +#include "centralwidget.h" +#include "helpviewer.h" +#include "tracer.h" + +#include <QtWidgets/QMenu> + +#include <QtGui/QAction> + +#if defined(BROWSER_QTWEBKIT) +# include <QWebHistory> +#endif + +GlobalActions *GlobalActions::instance(QObject *parent) +{ + Q_ASSERT(!m_instance != !parent); + if (!m_instance) + m_instance = new GlobalActions(parent); + return m_instance; +} + +GlobalActions::GlobalActions(QObject *parent) : QObject(parent) +{ + TRACE_OBJ + + // TODO: Put resource path in misc class + QString resourcePath = QLatin1String(":/qt-project.org/assistant/images/"); +#ifdef Q_OS_MAC + resourcePath.append(QLatin1String("mac")); +#else + resourcePath.append(QLatin1String("win")); +#endif + CentralWidget *centralWidget = CentralWidget::instance(); + + m_backAction = new QAction(tr("&Back"), parent); + m_backAction->setEnabled(false); + m_backAction->setShortcuts(QKeySequence::Back); + m_backAction->setIcon(QIcon(resourcePath + QLatin1String("/previous.png"))); + connect(m_backAction, &QAction::triggered, centralWidget, &CentralWidget::backward); + m_actionList << m_backAction; + + m_nextAction = new QAction(tr("&Forward"), parent); + m_nextAction->setPriority(QAction::LowPriority); + m_nextAction->setEnabled(false); + m_nextAction->setShortcuts(QKeySequence::Forward); + m_nextAction->setIcon(QIcon(resourcePath + QLatin1String("/next.png"))); + connect(m_nextAction, &QAction::triggered, centralWidget, &CentralWidget::forward); + m_actionList << m_nextAction; + + setupNavigationMenus(m_backAction, m_nextAction, centralWidget); + + m_homeAction = new QAction(tr("&Home"), parent); + m_homeAction->setShortcut(tr("ALT+Home")); + m_homeAction->setIcon(QIcon(resourcePath + QLatin1String("/home.png"))); + connect(m_homeAction, &QAction::triggered, centralWidget, &CentralWidget::home); + m_actionList << m_homeAction; + + QAction *separator = new QAction(parent); + separator->setSeparator(true); + m_actionList << separator; + + m_zoomInAction = new QAction(tr("Zoom &in"), parent); + m_zoomInAction->setPriority(QAction::LowPriority); + m_zoomInAction->setIcon(QIcon(resourcePath + QLatin1String("/zoomin.png"))); + m_zoomInAction->setShortcut(QKeySequence::ZoomIn); + connect(m_zoomInAction, &QAction::triggered, centralWidget, &CentralWidget::zoomIn); + m_actionList << m_zoomInAction; + + m_zoomOutAction = new QAction(tr("Zoom &out"), parent); + m_zoomOutAction->setPriority(QAction::LowPriority); + m_zoomOutAction->setIcon(QIcon(resourcePath + QLatin1String("/zoomout.png"))); + m_zoomOutAction->setShortcut(QKeySequence::ZoomOut); + connect(m_zoomOutAction, &QAction::triggered, centralWidget, &CentralWidget::zoomOut); + m_actionList << m_zoomOutAction; + + separator = new QAction(parent); + separator->setSeparator(true); + m_actionList << separator; + +#if QT_CONFIG(clipboard) + m_copyAction = new QAction(tr("&Copy selected Text"), parent); + m_copyAction->setPriority(QAction::LowPriority); + m_copyAction->setIconText("&Copy"); + m_copyAction->setIcon(QIcon(resourcePath + QLatin1String("/editcopy.png"))); + m_copyAction->setShortcuts(QKeySequence::Copy); + m_copyAction->setEnabled(false); + connect(m_copyAction, &QAction::triggered, centralWidget, &CentralWidget::copy); + m_actionList << m_copyAction; +#endif + + m_printAction = new QAction(tr("&Print..."), parent); + m_printAction->setPriority(QAction::LowPriority); + m_printAction->setIcon(QIcon(resourcePath + QLatin1String("/print.png"))); + m_printAction->setShortcut(QKeySequence::Print); + connect(m_printAction, &QAction::triggered, centralWidget, &CentralWidget::print); + m_actionList << m_printAction; + + m_findAction = new QAction(tr("&Find in Text..."), parent); + m_findAction->setIconText(tr("&Find")); + m_findAction->setIcon(QIcon(resourcePath + QLatin1String("/find.png"))); + m_findAction->setShortcuts(QKeySequence::Find); + connect(m_findAction, &QAction::triggered, centralWidget, &CentralWidget::showTextSearch); + m_actionList << m_findAction; + +#if defined (Q_OS_UNIX) && !defined(Q_OS_MAC) + m_backAction->setIcon(QIcon::fromTheme(QStringLiteral("go-previous") , m_backAction->icon())); + m_nextAction->setIcon(QIcon::fromTheme(QStringLiteral("go-next") , m_nextAction->icon())); + m_zoomInAction->setIcon(QIcon::fromTheme(QStringLiteral("zoom-in") , m_zoomInAction->icon())); + m_zoomOutAction->setIcon(QIcon::fromTheme(QStringLiteral("zoom-out") , m_zoomOutAction->icon())); +#if QT_CONFIG(clipboard) + m_copyAction->setIcon(QIcon::fromTheme(QStringLiteral("edit-copy") , m_copyAction->icon())); +#endif + m_findAction->setIcon(QIcon::fromTheme(QStringLiteral("edit-find") , m_findAction->icon())); + m_homeAction->setIcon(QIcon::fromTheme(QStringLiteral("go-home") , m_homeAction->icon())); + m_printAction->setIcon(QIcon::fromTheme(QStringLiteral("document-print") , m_printAction->icon())); +#endif +} + +void GlobalActions::updateActions() +{ + TRACE_OBJ + CentralWidget *centralWidget = CentralWidget::instance(); +#if QT_CONFIG(clipboard) + m_copyAction->setEnabled(centralWidget->hasSelection()); +#endif + m_nextAction->setEnabled(centralWidget->isForwardAvailable()); + m_backAction->setEnabled(centralWidget->isBackwardAvailable()); +} + +#if QT_CONFIG(clipboard) +void GlobalActions::setCopyAvailable(bool available) +{ + TRACE_OBJ + m_copyAction->setEnabled(available); +} +#endif + +#if defined(BROWSER_QTWEBKIT) + +void GlobalActions::slotAboutToShowBackMenu() +{ + TRACE_OBJ + m_backMenu->clear(); + if (QWebHistory *history = CentralWidget::instance()->currentHelpViewer()->history()) { + const int currentItemIndex = history->currentItemIndex(); + QList<QWebHistoryItem> items = history->backItems(history->count()); + for (int i = items.count() - 1; i >= 0; --i) { + QAction *action = new QAction(this); + action->setText(items.at(i).title()); + action->setData(-1 * (currentItemIndex - i)); + m_backMenu->addAction(action); + } + } +} + +void GlobalActions::slotAboutToShowNextMenu() +{ + TRACE_OBJ + m_nextMenu->clear(); + if (QWebHistory *history = CentralWidget::instance()->currentHelpViewer()->history()) { + const int count = history->count(); + QList<QWebHistoryItem> items = history->forwardItems(count); + for (int i = 0; i < items.count(); ++i) { + QAction *action = new QAction(this); + action->setData(count - i); + action->setText(items.at(i).title()); + m_nextMenu->addAction(action); + } + } +} + +void GlobalActions::slotOpenActionUrl(QAction *action) +{ + TRACE_OBJ + if (HelpViewer* viewer = CentralWidget::instance()->currentHelpViewer()) { + const int offset = action->data().toInt(); + QWebHistory *history = viewer->history(); + if (offset > 0) { + history->goToItem(history->forwardItems(history->count() + - offset + 1).back()); // forward + } else if (offset < 0) { + history->goToItem(history->backItems(-1 * offset).first()); // back + } + } +} + +#endif // BROWSER_QTWEBKIT + +void GlobalActions::setupNavigationMenus(QAction *back, QAction *next, + QWidget *parent) +{ +#if defined(BROWSER_QTWEBKIT) + m_backMenu = new QMenu(parent); + connect(m_backMenu, &QMenu::aboutToShow, + this, &GlobalActions::slotAboutToShowBackMenu); + connect(m_backMenu, &QMenu::triggered, + this, &GlobalActions::slotOpenActionUrl); + back->setMenu(m_backMenu); + + m_nextMenu = new QMenu(parent); + connect(m_nextMenu, &QMenu::aboutToShow, + this, &GlobalActions::slotAboutToShowNextMenu); + connect(m_nextMenu, &QMenu::triggered, + this, &GlobalActions::slotOpenActionUrl); + next->setMenu(m_nextMenu); +#else + Q_UNUSED(back); + Q_UNUSED(next); + Q_UNUSED(parent); +#endif +} + +GlobalActions *GlobalActions::m_instance = nullptr; diff --git a/src/assistant/assistant/globalactions.h b/src/assistant/assistant/globalactions.h new file mode 100644 index 0000000..fc72554 --- /dev/null +++ b/src/assistant/assistant/globalactions.h @@ -0,0 +1,75 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef GLOBALACTIONS_H +#define GLOBALACTIONS_H + +#include <QtCore/QList> +#include <QtCore/QObject> +#include <QtGui/qtguiglobal.h> + +QT_BEGIN_NAMESPACE + +class QAction; +class QMenu; + +class GlobalActions : public QObject +{ + Q_OBJECT + Q_DISABLE_COPY(GlobalActions) +public: + static GlobalActions *instance(QObject *parent = nullptr); + + QList<QAction *> actionList() const { return m_actionList; } + QAction *backAction() const { return m_backAction; } + QAction *nextAction() const { return m_nextAction; } + QAction *homeAction() const { return m_homeAction; } + QAction *zoomInAction() const { return m_zoomInAction; } + QAction *zoomOutAction() const { return m_zoomOutAction; } +#if QT_CONFIG(clipboard) + QAction *copyAction() const { return m_copyAction; } +#endif + QAction *printAction() const { return m_printAction; } + QAction *findAction() const { return m_findAction; } + +public slots: +#if QT_CONFIG(clipboard) + void setCopyAvailable(bool available); +#endif + void updateActions(); + +#if defined(BROWSER_QTWEBKIT) +private slots: + void slotAboutToShowBackMenu(); + void slotAboutToShowNextMenu(); + void slotOpenActionUrl(QAction *action); +#endif // BROWSER_QTWEBKIT + +private: + void setupNavigationMenus(QAction *back, QAction *next, QWidget *parent); + +private: + GlobalActions(QObject *parent); + + static GlobalActions *m_instance; + + QAction *m_backAction; + QAction *m_nextAction; + QAction *m_homeAction; + QAction *m_zoomInAction; + QAction *m_zoomOutAction; +#if QT_CONFIG(clipboard) + QAction *m_copyAction; +#endif + QAction *m_printAction; + QAction *m_findAction; + + QList<QAction *> m_actionList; + + QMenu *m_backMenu; + QMenu *m_nextMenu; +}; + +QT_END_NAMESPACE + +#endif // GLOBALACTIONS_H diff --git a/src/assistant/assistant/helpbrowsersupport.cpp b/src/assistant/assistant/helpbrowsersupport.cpp new file mode 100644 index 0000000..2109f90 --- /dev/null +++ b/src/assistant/assistant/helpbrowsersupport.cpp @@ -0,0 +1,207 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "helpbrowsersupport.h" +#include "helpenginewrapper.h" +#include "helpviewer.h" +#include "tracer.h" + +#include <QtHelp/QHelpEngineCore> + +#include <QtNetwork/QNetworkAccessManager> +#include <QtNetwork/QNetworkReply> +#include <QtNetwork/QNetworkRequest> + +#include <QtCore/QTimer> +#include <QtCore/QCoreApplication> +#include <QtCore/QUrl> +#include <QtCore/QDebug> + +QT_BEGIN_NAMESPACE + +// -- messages + +static const char g_htmlPage[] = "<html><head><meta http-equiv=\"content-type\" content=\"text/html; " + "charset=UTF-8\"><title>%1

%2

%3

%4

"; + +QString HelpBrowserSupport::msgError404() +{ + return QCoreApplication::translate("HelpViewer", "Error 404..."); +} + +QString HelpBrowserSupport::msgPageNotFound() +{ + return QCoreApplication::translate("HelpViewer", "The page could not be found"); +} + +QString HelpBrowserSupport::msgAllDocumentationSets() +{ + return QCoreApplication::translate("HelpViewer", + "Please make sure that you have all " + "documentation sets installed."); +} + +QString HelpBrowserSupport::msgLoadError(const QUrl &url) +{ + return HelpViewer::tr("Error loading: %1").arg(url.toString()); +} + +QString HelpBrowserSupport::msgHtmlErrorPage(const QUrl &url) +{ + return QString::fromLatin1(g_htmlPage) + .arg(HelpBrowserSupport::msgError404(), HelpBrowserSupport::msgPageNotFound(), + HelpBrowserSupport::msgLoadError(url), HelpBrowserSupport::msgAllDocumentationSets()); +} + +// A QNetworkAccessManager implementing unhandled URL schema handling for WebKit-type browsers. + +// -- HelpNetworkReply + +class HelpNetworkReply : public QNetworkReply +{ +public: + HelpNetworkReply(const QNetworkRequest &request, const QByteArray &fileData, + const QString &mimeType); + + void abort() override; + + qint64 bytesAvailable() const override + { return data.size() + QNetworkReply::bytesAvailable(); } + +protected: + qint64 readData(char *data, qint64 maxlen) override; + +private: + QByteArray data; + const qint64 origLen; +}; + +HelpNetworkReply::HelpNetworkReply(const QNetworkRequest &request, + const QByteArray &fileData, const QString& mimeType) + : data(fileData), origLen(fileData.size()) +{ + TRACE_OBJ + setRequest(request); + setUrl(request.url()); + setOpenMode(QIODevice::ReadOnly); + + setHeader(QNetworkRequest::ContentTypeHeader, mimeType); + setHeader(QNetworkRequest::ContentLengthHeader, QByteArray::number(origLen)); + QTimer::singleShot(0, this, &QNetworkReply::metaDataChanged); + QTimer::singleShot(0, this, &QNetworkReply::readyRead); + QTimer::singleShot(0, this, &QNetworkReply::finished); +} + +void HelpNetworkReply::abort() +{ + TRACE_OBJ +} + +qint64 HelpNetworkReply::readData(char *buffer, qint64 maxlen) +{ + TRACE_OBJ + qint64 len = qMin(qint64(data.size()), maxlen); + if (len) { + memcpy(buffer, data.constData(), len); + data.remove(0, len); + } + if (!data.size()) + QTimer::singleShot(0, this, &QNetworkReply::finished); + return len; +} + +// -- HelpRedirectNetworkReply + +class HelpRedirectNetworkReply : public QNetworkReply +{ +public: + HelpRedirectNetworkReply(const QNetworkRequest &request, const QUrl &newUrl) + { + setRequest(request); + setAttribute(QNetworkRequest::HttpStatusCodeAttribute, 301); + setAttribute(QNetworkRequest::RedirectionTargetAttribute, newUrl); + + QTimer::singleShot(0, this, &QNetworkReply::finished); + } + +protected: + void abort() override { TRACE_OBJ } + qint64 readData(char*, qint64) override { TRACE_OBJ return qint64(-1); } +}; + +// -- HelpNetworkAccessManager + +class HelpNetworkAccessManager : public QNetworkAccessManager +{ +public: + HelpNetworkAccessManager(QObject *parent); + +protected: + QNetworkReply *createRequest(Operation op, + const QNetworkRequest &request, QIODevice *outgoingData = nullptr) override; +}; + +HelpNetworkAccessManager::HelpNetworkAccessManager(QObject *parent) + : QNetworkAccessManager(parent) +{ + TRACE_OBJ +} + +QNetworkReply *HelpNetworkAccessManager::createRequest(Operation, const QNetworkRequest &request, QIODevice*) +{ + TRACE_OBJ + + QByteArray data; + const QUrl url = request.url(); + QUrl redirectedUrl; + switch (HelpBrowserSupport::resolveUrl(url, &redirectedUrl, &data)) { + case HelpBrowserSupport::UrlRedirect: + return new HelpRedirectNetworkReply(request, redirectedUrl); + case HelpBrowserSupport::UrlLocalData: { + const QString mimeType = HelpViewer::mimeFromUrl(url); + return new HelpNetworkReply(request, data, mimeType); + } + case HelpBrowserSupport::UrlResolveError: + break; + } + return new HelpNetworkReply(request, HelpBrowserSupport::msgHtmlErrorPage(request.url()).toUtf8(), + QStringLiteral("text/html")); +} + +QByteArray HelpBrowserSupport::fileDataForLocalUrl(const QUrl &url) +{ + return HelpEngineWrapper::instance().fileData(url); +} + +HelpBrowserSupport::ResolveUrlResult HelpBrowserSupport::resolveUrl(const QUrl &url, + QUrl *targetUrlP, + QByteArray *dataP) +{ + const HelpEngineWrapper &engine = HelpEngineWrapper::instance(); + + const QUrl targetUrl = engine.findFile(url); + if (!targetUrl.isValid()) + return UrlResolveError; + + if (targetUrl != url) { + if (targetUrlP) + *targetUrlP = targetUrl; + return UrlRedirect; + } + + if (dataP) + *dataP = HelpBrowserSupport::fileDataForLocalUrl(targetUrl); + return UrlLocalData; +} + +QNetworkAccessManager *HelpBrowserSupport::createNetworkAccessManager(QObject *parent) +{ + return new HelpNetworkAccessManager(parent); +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/helpbrowsersupport.h b/src/assistant/assistant/helpbrowsersupport.h new file mode 100644 index 0000000..08920e6 --- /dev/null +++ b/src/assistant/assistant/helpbrowsersupport.h @@ -0,0 +1,44 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef HELPBROWSERSUPPORT_H +#define HELPBROWSERSUPPORT_H + +#include + +QT_BEGIN_NAMESPACE + +class QNetworkAccessManager; +class QObject; +class QString; +class QByteArray; +class QUrl; + +// Provide helper functions for feeding the QtHelp data stored in the help database +// into various browsers. +class HelpBrowserSupport +{ +public: + enum ResolveUrlResult { + UrlRedirect, + UrlLocalData, + UrlResolveError + }; + + static QString msgError404(); + static QString msgPageNotFound(); + static QString msgAllDocumentationSets(); + static QString msgLoadError(const QUrl &url); + static QString msgHtmlErrorPage(const QUrl &url); + + static ResolveUrlResult resolveUrl(const QUrl &url, QUrl *targetUrl, + QByteArray *data); + static QByteArray fileDataForLocalUrl(const QUrl &url); + + // Create an instance of QNetworkAccessManager for WebKit-type browsers. + static QNetworkAccessManager *createNetworkAccessManager(QObject *parent = nullptr); +}; + +QT_END_NAMESPACE + +#endif // HELPBROWSERSUPPORT_H diff --git a/src/assistant/assistant/helpdocsettings.cpp b/src/assistant/assistant/helpdocsettings.cpp new file mode 100644 index 0000000..498f1bd --- /dev/null +++ b/src/assistant/assistant/helpdocsettings.cpp @@ -0,0 +1,195 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "helpdocsettings.h" + +#include +#include +#include + +#include + +#include + +QT_BEGIN_NAMESPACE + +class HelpDocSettingsPrivate : public QSharedData +{ +public: + HelpDocSettingsPrivate() = default; + HelpDocSettingsPrivate(const HelpDocSettingsPrivate &other) = default; + ~HelpDocSettingsPrivate() = default; + + QMap m_namespaceToComponent; + QMap m_componentToNamespace; + + QMap m_namespaceToVersion; + QMap m_versionToNamespace; + + QMap m_namespaceToFileName; + QMap m_fileNameToNamespace; +}; + + +HelpDocSettings::HelpDocSettings() + : d(new HelpDocSettingsPrivate) +{ +} + +HelpDocSettings::HelpDocSettings(const HelpDocSettings &) = default; + +HelpDocSettings::HelpDocSettings(HelpDocSettings &&) = default; + +HelpDocSettings::~HelpDocSettings() = default; + +HelpDocSettings &HelpDocSettings::operator=(const HelpDocSettings &) = default; + +HelpDocSettings &HelpDocSettings::operator=(HelpDocSettings &&) = default; + +bool HelpDocSettings::addDocumentation(const QString &fileName) +{ + const QCompressedHelpInfo info = QCompressedHelpInfo::fromCompressedHelpFile(fileName); + + if (info.isNull()) + return false; + + const QString namespaceName = info.namespaceName(); + + if (d->m_namespaceToFileName.contains(namespaceName)) + return false; + + if (d->m_fileNameToNamespace.contains(fileName)) + return false; + + const QString component = info.component(); + const QVersionNumber version = info.version(); + + d->m_namespaceToFileName.insert(namespaceName, fileName); + d->m_fileNameToNamespace.insert(fileName, namespaceName); + + d->m_namespaceToComponent.insert(namespaceName, component); + d->m_componentToNamespace[component].append(namespaceName); + + d->m_namespaceToVersion.insert(namespaceName, version); + d->m_versionToNamespace[version].append(namespaceName); + + return true; +} + +bool HelpDocSettings::removeDocumentation(const QString &namespaceName) +{ + if (namespaceName.isEmpty()) + return false; + + const QString fileName = d->m_namespaceToFileName.value(namespaceName); + if (fileName.isEmpty()) + return false; + + const QString component = d->m_namespaceToComponent.value(namespaceName); + const QVersionNumber version = d->m_namespaceToVersion.value(namespaceName); + + d->m_namespaceToComponent.remove(namespaceName); + d->m_namespaceToVersion.remove(namespaceName); + d->m_namespaceToFileName.remove(namespaceName); + d->m_fileNameToNamespace.remove(fileName); + d->m_componentToNamespace[component].removeOne(namespaceName); + if (d->m_componentToNamespace[component].isEmpty()) + d->m_componentToNamespace.remove(component); + d->m_versionToNamespace[version].removeOne(namespaceName); + if (d->m_versionToNamespace[version].isEmpty()) + d->m_versionToNamespace.remove(version); + + return true; +} + +QString HelpDocSettings::namespaceName(const QString &fileName) const +{ + return d->m_fileNameToNamespace.value(fileName); +} + +QStringList HelpDocSettings::components() const +{ + return d->m_componentToNamespace.keys(); +} + +QList HelpDocSettings::versions() const +{ + return d->m_versionToNamespace.keys(); +} + +QStringList HelpDocSettings::namespaces() const +{ + return d->m_namespaceToFileName.keys(); +} + +QMap HelpDocSettings::namespaceToFileName() const +{ + return d->m_namespaceToFileName; +} + +HelpDocSettings HelpDocSettings::readSettings(QHelpEngineCore *helpEngine) +{ + QHelpFilterEngine *filterEngine = helpEngine->filterEngine(); + + HelpDocSettings docSettings; + docSettings.d->m_namespaceToComponent = filterEngine->namespaceToComponent(); + docSettings.d->m_namespaceToVersion = filterEngine->namespaceToVersion(); + for (auto it = docSettings.d->m_namespaceToComponent.constBegin(); + it != docSettings.d->m_namespaceToComponent.constEnd(); ++it) { + const QString namespaceName = it.key(); + const QString namespaceFileName = helpEngine->documentationFileName(namespaceName); + docSettings.d->m_namespaceToFileName.insert(namespaceName, namespaceFileName); + docSettings.d->m_fileNameToNamespace.insert(namespaceFileName, namespaceName); + docSettings.d->m_componentToNamespace[it.value()].append(namespaceName); + } + for (auto it = docSettings.d->m_namespaceToVersion.constBegin(); + it != docSettings.d->m_namespaceToVersion.constEnd(); ++it) { + docSettings.d->m_versionToNamespace[it.value()].append(it.key()); + } + + return docSettings; +} + +static QMap subtract(const QMap &minuend, + const QMap &subtrahend) +{ + auto result = minuend; + + for (auto itSubtrahend = subtrahend.cbegin(); itSubtrahend != subtrahend.cend(); ++itSubtrahend) { + auto itResult = result.find(itSubtrahend.key()); + if (itResult != result.end() && itSubtrahend.value() == itResult.value()) + result.erase(itResult); + } + + return result; +} + +bool HelpDocSettings::applySettings(QHelpEngineCore *helpEngine, + const HelpDocSettings &settings) +{ + const HelpDocSettings oldSettings = readSettings(helpEngine); + + const QMap docsToRemove = subtract( + oldSettings.namespaceToFileName(), + settings.namespaceToFileName()); + const QMap docsToAdd = subtract( + settings.namespaceToFileName(), + oldSettings.namespaceToFileName()); + + bool changed = false; + for (const QString &namespaceName : docsToRemove.keys()) { + if (!helpEngine->unregisterDocumentation(namespaceName)) + qWarning() << "Cannot unregister documentation:" << namespaceName; + changed = true; + } + + for (const QString &fileName : docsToAdd.values()) { + if (!helpEngine->registerDocumentation(fileName)) + qWarning() << "Cannot register documentation file:" << fileName; + changed = true; + } + + return changed; +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/helpdocsettings.h b/src/assistant/assistant/helpdocsettings.h new file mode 100644 index 0000000..43fe9ca --- /dev/null +++ b/src/assistant/assistant/helpdocsettings.h @@ -0,0 +1,46 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef HELPDOCSETTINGS_H +#define HELPDOCSETTINGS_H + +#include + +QT_BEGIN_NAMESPACE + +class QVersionNumber; +class QHelpEngineCore; +class HelpDocSettingsPrivate; + +class HelpDocSettings final +{ +public: + HelpDocSettings(); + HelpDocSettings(const HelpDocSettings &other); + HelpDocSettings(HelpDocSettings &&other); + ~HelpDocSettings(); + + HelpDocSettings &operator=(const HelpDocSettings &other); + HelpDocSettings &operator=(HelpDocSettings &&other); + + void swap(HelpDocSettings &other) noexcept + { d.swap(other.d); } + + bool addDocumentation(const QString &fileName); + bool removeDocumentation(const QString &namespaceName); + QString namespaceName(const QString &fileName) const; + QStringList components() const; + QList versions() const; + QStringList namespaces() const; + QMap namespaceToFileName() const; + + static HelpDocSettings readSettings(QHelpEngineCore *helpEngine); + static bool applySettings(QHelpEngineCore *helpEngine, const HelpDocSettings &settings); + +private: + QSharedDataPointer d; +}; + +QT_END_NAMESPACE + +#endif // HELPDOCSETTINGS_H diff --git a/src/assistant/assistant/helpdocsettingswidget.cpp b/src/assistant/assistant/helpdocsettingswidget.cpp new file mode 100644 index 0000000..67442b8 --- /dev/null +++ b/src/assistant/assistant/helpdocsettingswidget.cpp @@ -0,0 +1,162 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "helpdocsettings.h" +#include "helpdocsettingswidget.h" +#include "ui_helpdocsettingswidget.h" + +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class HelpDocSettingsWidgetPrivate +{ + HelpDocSettingsWidget *q_ptr; + Q_DECLARE_PUBLIC(HelpDocSettingsWidget) +public: + HelpDocSettingsWidgetPrivate() = default; + + void addDocumentation(); + void removeDocumentation(); + void applyDocListFilter(QListWidgetItem *item); + + QMap m_namespaceToItem; + QHash m_itemToNamespace; + + Ui::HelpDocSettingsWidget m_ui; + HelpDocSettings m_settings; +}; + +void HelpDocSettingsWidgetPrivate::addDocumentation() +{ + Q_Q(HelpDocSettingsWidget); + + const QStringList &fileNames = + QFileDialog::getOpenFileNames(q, HelpDocSettingsWidget::tr("Add Documentation"), {}, + HelpDocSettingsWidget::tr("Qt Compressed Help Files (*.qch)")); + if (fileNames.isEmpty()) + return; + + bool added = false; + + for (const QString &fileName : fileNames) { + if (!m_settings.addDocumentation(fileName)) + continue; + + if (!added) { + added = true; + m_ui.registeredDocsListWidget->clearSelection(); + } + + const QString namespaceName = m_settings.namespaceName(fileName); + QListWidgetItem *item = new QListWidgetItem(namespaceName); + m_namespaceToItem.insert(namespaceName, item); + m_itemToNamespace.insert(item, namespaceName); + m_ui.registeredDocsListWidget->insertItem(m_namespaceToItem.keys().indexOf(namespaceName), item); + + item->setSelected(true); + applyDocListFilter(item); + } + + if (added) + emit q->docSettingsChanged(m_settings); +} + +void HelpDocSettingsWidgetPrivate::removeDocumentation() +{ + Q_Q(HelpDocSettingsWidget); + + const QList selectedItems = m_ui.registeredDocsListWidget->selectedItems(); + if (selectedItems.isEmpty()) + return; + + for (QListWidgetItem *item : selectedItems) { + const QString namespaceName = m_itemToNamespace.value(item); + m_itemToNamespace.remove(item); + m_namespaceToItem.remove(namespaceName); + delete item; + + m_settings.removeDocumentation(namespaceName); + } + + emit q->docSettingsChanged(m_settings); +} + +void HelpDocSettingsWidgetPrivate::applyDocListFilter(QListWidgetItem *item) +{ + const QString namespaceName = m_itemToNamespace.value(item); + const QString nameFilter = m_ui.registeredDocsFilterLineEdit->text(); + + const bool matches = nameFilter.isEmpty() || namespaceName.contains(nameFilter); + + if (!matches) + item->setSelected(false); + item->setHidden(!matches); +} + +HelpDocSettingsWidget::HelpDocSettingsWidget(QWidget *parent) + : QWidget(parent) + , d_ptr(new HelpDocSettingsWidgetPrivate()) +{ + Q_D(HelpDocSettingsWidget); + d->q_ptr = this; + d->m_ui.setupUi(this); + + connect(d->m_ui.docAddButton, &QAbstractButton::clicked, + [this]() { + Q_D(HelpDocSettingsWidget); + d->addDocumentation(); + }); + connect(d->m_ui.docRemoveButton, &QAbstractButton::clicked, + [this]() { + Q_D(HelpDocSettingsWidget); + d->removeDocumentation(); + }); + connect(d->m_ui.registeredDocsFilterLineEdit, &QLineEdit::textChanged, + [this](const QString &) { + Q_D(HelpDocSettingsWidget); + for (const auto item : d->m_namespaceToItem) + d->applyDocListFilter(item); + }); + connect(d->m_ui.registeredDocsListWidget, &QListWidget::itemSelectionChanged, + [this]() { + Q_D(HelpDocSettingsWidget); + d->m_ui.docRemoveButton->setEnabled( + !d->m_ui.registeredDocsListWidget->selectedItems().isEmpty()); + }); +} + +HelpDocSettingsWidget::~HelpDocSettingsWidget() = default; + +void HelpDocSettingsWidget::setDocSettings(const HelpDocSettings &settings) +{ + Q_D(HelpDocSettingsWidget); + d->m_settings = settings; + + d->m_ui.registeredDocsListWidget->clear(); + d->m_namespaceToItem.clear(); + d->m_itemToNamespace.clear(); + + for (const QString &namespaceName : d->m_settings.namespaces()) { + QListWidgetItem *item = new QListWidgetItem(namespaceName); + d->m_namespaceToItem.insert(namespaceName, item); + d->m_itemToNamespace.insert(item, namespaceName); + d->m_ui.registeredDocsListWidget->addItem(item); + d->applyDocListFilter(item); + } + + d->m_ui.docRemoveButton->setEnabled( + !d->m_ui.registeredDocsListWidget->selectedItems().isEmpty()); +} + +HelpDocSettings HelpDocSettingsWidget::docSettings() const +{ + Q_D(const HelpDocSettingsWidget); + return d->m_settings; +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/helpdocsettingswidget.h b/src/assistant/assistant/helpdocsettingswidget.h new file mode 100644 index 0000000..652426e --- /dev/null +++ b/src/assistant/assistant/helpdocsettingswidget.h @@ -0,0 +1,37 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef HELPDOCSETTINGSWIDGET_H +#define HELPDOCSETTINGSWIDGET_H + +#include + +QT_BEGIN_NAMESPACE + +class HelpDocSettings; +class HelpDocSettingsWidgetPrivate; + +class HelpDocSettingsWidget : public QWidget +{ + Q_OBJECT +public: + HelpDocSettingsWidget(QWidget *parent = nullptr); + + ~HelpDocSettingsWidget(); + + void setDocSettings(const HelpDocSettings &settings); + HelpDocSettings docSettings() const; + +Q_SIGNALS: + void docSettingsChanged(const HelpDocSettings &settings); + +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(HelpDocSettingsWidget) + Q_DISABLE_COPY_MOVE(HelpDocSettingsWidget) +}; + +QT_END_NAMESPACE + +#endif + diff --git a/src/assistant/assistant/helpdocsettingswidget.ui b/src/assistant/assistant/helpdocsettingswidget.ui new file mode 100644 index 0000000..4897dfe --- /dev/null +++ b/src/assistant/assistant/helpdocsettingswidget.ui @@ -0,0 +1,76 @@ + + + HelpDocSettingsWidget + + + + 0 + 0 + 268 + 128 + + + + Form + + + + + + Registered Documentation + + + + + + + <Filter> + + + true + + + + + + + + + Add... + + + + + + + Remove + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + QAbstractItemView::ExtendedSelection + + + + + + + + diff --git a/src/assistant/assistant/helpenginewrapper.cpp b/src/assistant/assistant/helpenginewrapper.cpp new file mode 100644 index 0000000..5c9e504 --- /dev/null +++ b/src/assistant/assistant/helpenginewrapper.cpp @@ -0,0 +1,778 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "tracer.h" + +#include "helpenginewrapper.h" +#include "../shared/collectionconfiguration.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +namespace { + const QString AppFontKey(QLatin1String("appFont")); + const QString AppWritingSystemKey(QLatin1String("appWritingSystem")); + const QString BookmarksKey(QLatin1String("Bookmarks")); + const QString BrowserFontKey(QLatin1String("browserFont")); + const QString BrowserWritingSystemKey(QLatin1String("browserWritingSystem")); + const QString HomePageKey(QLatin1String("homepage")); + const QString MainWindowKey(QLatin1String("MainWindow")); + const QString MainWindowGeometryKey(QLatin1String("MainWindowGeometry")); + const QString SearchWasAttachedKey(QLatin1String("SearchWasAttached")); + const QString StartOptionKey(QLatin1String("StartOption")); + const QString UseAppFontKey(QLatin1String("useAppFont")); + const QString UseBrowserFontKey(QLatin1String("useBrowserFont")); + const QString VersionKey(QString(QLatin1String("qtVersion%1$$$%2")). + arg(QLatin1String(QT_VERSION_STR))); + const QString ShowTabsKey(QLatin1String("showTabs")); + const QString TopicChooserGeometryKey(QLatin1String("TopicChooserGeometry")); +} // anonymous namespace + +class TimeoutForwarder : public QObject +{ + Q_OBJECT +public: + TimeoutForwarder(const QString &fileName); +private slots: + void forward(); +private: + friend class HelpEngineWrapperPrivate; + + const QString m_fileName; +}; + +class HelpEngineWrapperPrivate : public QObject +{ + Q_OBJECT + friend class HelpEngineWrapper; + friend class TimeoutForwarder; +private slots: + void qchFileChanged(const QString &fileName); + +signals: + void documentationRemoved(const QString &namespaceName); + void documentationUpdated(const QString &namespaceName); + +private: + HelpEngineWrapperPrivate(const QString &collectionFile); + + void initFileSystemWatchers(); + void checkDocFilesWatched(); + void qchFileChanged(const QString &fileName, bool fromTimeout); + + static const int UpdateGracePeriod = 2000; + + QHelpEngine * const m_helpEngine; + QFileSystemWatcher * const m_qchWatcher; + typedef QPair > RecentSignal; + QMap m_recentQchUpdates; +}; + +HelpEngineWrapper *HelpEngineWrapper::helpEngineWrapper = nullptr; + +HelpEngineWrapper &HelpEngineWrapper::instance(const QString &collectionFile) +{ + TRACE_OBJ + /* + * Note that this Singleton cannot be static, because it has to be + * deleted before the QApplication. + */ + if (!helpEngineWrapper) + helpEngineWrapper = new HelpEngineWrapper(collectionFile); + return *helpEngineWrapper; +} + +void HelpEngineWrapper::removeInstance() +{ + TRACE_OBJ + delete helpEngineWrapper; + helpEngineWrapper = nullptr; +} + +HelpEngineWrapper::HelpEngineWrapper(const QString &collectionFile) + : d(new HelpEngineWrapperPrivate(collectionFile)) +{ + TRACE_OBJ + + /* + * Otherwise we will waste time if several new docs are found, + * because we will start to index them, only to be interrupted + * by the next request. Also, there is a nasty SQLITE bug that will + * cause the application to hang for minutes in that case. + * This call is reverted by initialDocSetupDone(), which must be + * called after the new docs have been installed. + */ +// TODO: probably remove it + disconnect(d->m_helpEngine, &QHelpEngineCore::setupFinished, + searchEngine(), &QHelpSearchEngine::scheduleIndexDocumentation); + + connect(d, &HelpEngineWrapperPrivate::documentationRemoved, + this, &HelpEngineWrapper::documentationRemoved); + connect(d, &HelpEngineWrapperPrivate::documentationUpdated, + this, &HelpEngineWrapper::documentationUpdated); + connect(d->m_helpEngine, &QHelpEngineCore::setupFinished, + this, &HelpEngineWrapper::setupFinished); +} + +HelpEngineWrapper::~HelpEngineWrapper() +{ + TRACE_OBJ + const QStringList &namespaces = d->m_helpEngine->registeredDocumentations(); + for (const QString &nameSpace : namespaces) { + const QString &docFile + = d->m_helpEngine->documentationFileName(nameSpace); + d->m_qchWatcher->removePath(docFile); + } + + delete d; +} + +void HelpEngineWrapper::initialDocSetupDone() +{ + TRACE_OBJ +// TODO: probably remove it + connect(d->m_helpEngine, &QHelpEngineCore::setupFinished, + searchEngine(), &QHelpSearchEngine::scheduleIndexDocumentation); + setupData(); +} + +QHelpSearchEngine *HelpEngineWrapper::searchEngine() const +{ + TRACE_OBJ + return d->m_helpEngine->searchEngine(); +} + +QHelpContentModel *HelpEngineWrapper::contentModel() const +{ + TRACE_OBJ + return d->m_helpEngine->contentModel(); +} + +QHelpIndexModel *HelpEngineWrapper::indexModel() const +{ + TRACE_OBJ + return d->m_helpEngine->indexModel(); +} + +QHelpContentWidget *HelpEngineWrapper::contentWidget() +{ + TRACE_OBJ + return d->m_helpEngine->contentWidget(); +} + +QHelpIndexWidget *HelpEngineWrapper::indexWidget() +{ + TRACE_OBJ + return d->m_helpEngine->indexWidget(); +} + +const QStringList HelpEngineWrapper::registeredDocumentations() const +{ + TRACE_OBJ + return d->m_helpEngine->registeredDocumentations(); +} + +QString HelpEngineWrapper::documentationFileName(const QString &namespaceName) const +{ + TRACE_OBJ + return d->m_helpEngine->documentationFileName(namespaceName); +} + +const QString HelpEngineWrapper::collectionFile() const +{ + TRACE_OBJ + return d->m_helpEngine->collectionFile(); +} + +bool HelpEngineWrapper::registerDocumentation(const QString &docFile) +{ + TRACE_OBJ + d->checkDocFilesWatched(); + if (!d->m_helpEngine->registerDocumentation(docFile)) + return false; + d->m_qchWatcher->addPath(docFile); + d->checkDocFilesWatched(); + return true; +} + +bool HelpEngineWrapper::unregisterDocumentation(const QString &namespaceName) +{ + TRACE_OBJ + d->checkDocFilesWatched(); + const QString &file = d->m_helpEngine->documentationFileName(namespaceName); + if (!d->m_helpEngine->unregisterDocumentation(namespaceName)) + return false; + d->m_qchWatcher->removePath(file); + d->checkDocFilesWatched(); + return true; +} + +bool HelpEngineWrapper::setupData() +{ + TRACE_OBJ + return d->m_helpEngine->setupData(); +} + +QUrl HelpEngineWrapper::findFile(const QUrl &url) const +{ + TRACE_OBJ + return d->m_helpEngine->findFile(url); +} + +QByteArray HelpEngineWrapper::fileData(const QUrl &url) const +{ + TRACE_OBJ + return d->m_helpEngine->fileData(url); +} + +QList HelpEngineWrapper::documentsForIdentifier(const QString &id) const +{ + TRACE_OBJ + return d->m_helpEngine->documentsForIdentifier(id); +} + +QString HelpEngineWrapper::error() const +{ + TRACE_OBJ + return d->m_helpEngine->error(); +} + +QHelpFilterEngine *HelpEngineWrapper::filterEngine() const +{ + return d->m_helpEngine->filterEngine(); +} + +const QStringList HelpEngineWrapper::qtDocInfo(const QString &component) const +{ + TRACE_OBJ + return d->m_helpEngine->customValue(VersionKey.arg(component)).toString(). + split(CollectionConfiguration::ListSeparator); +} + +void HelpEngineWrapper::setQtDocInfo(const QString &component, + const QStringList &doc) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(VersionKey.arg(component), + doc.join(CollectionConfiguration::ListSeparator)); +} + +const QStringList HelpEngineWrapper::lastShownPages() const +{ + TRACE_OBJ + return CollectionConfiguration::lastShownPages(*d->m_helpEngine); +} + +void HelpEngineWrapper::setLastShownPages(const QStringList &lastShownPages) +{ + TRACE_OBJ + CollectionConfiguration::setLastShownPages(*d->m_helpEngine, lastShownPages); +} + +const QStringList HelpEngineWrapper::lastZoomFactors() const +{ + TRACE_OBJ + return CollectionConfiguration::lastZoomFactors(*d->m_helpEngine); +} + +void HelpEngineWrapper::setLastZoomFactors(const QStringList &lastZoomFactors) +{ + TRACE_OBJ + CollectionConfiguration::setLastZoomFactors(*d->m_helpEngine, lastZoomFactors); +} + +const QString HelpEngineWrapper::cacheDir() const +{ + TRACE_OBJ + return CollectionConfiguration::cacheDir(*d->m_helpEngine); +} + +bool HelpEngineWrapper::cacheDirIsRelativeToCollection() const +{ + TRACE_OBJ + return CollectionConfiguration::cacheDirIsRelativeToCollection(*d->m_helpEngine); +} + +void HelpEngineWrapper::setCacheDir(const QString &cacheDir, + bool relativeToCollection) +{ + TRACE_OBJ + CollectionConfiguration::setCacheDir(*d->m_helpEngine, cacheDir, + relativeToCollection); +} + +bool HelpEngineWrapper::filterFunctionalityEnabled() const +{ + TRACE_OBJ + return CollectionConfiguration::filterFunctionalityEnabled(*d->m_helpEngine); +} + +void HelpEngineWrapper::setFilterFunctionalityEnabled(bool enabled) +{ + TRACE_OBJ + CollectionConfiguration::setFilterFunctionalityEnabled(*d->m_helpEngine, + enabled); +} + +bool HelpEngineWrapper::filterToolbarVisible() const +{ + TRACE_OBJ + return CollectionConfiguration::filterToolbarVisible(*d->m_helpEngine); +} + +void HelpEngineWrapper::setFilterToolbarVisible(bool visible) +{ + TRACE_OBJ + CollectionConfiguration::setFilterToolbarVisible(*d->m_helpEngine, visible); +} + +bool HelpEngineWrapper::addressBarEnabled() const +{ + TRACE_OBJ + return CollectionConfiguration::addressBarEnabled(*d->m_helpEngine); +} + +void HelpEngineWrapper::setAddressBarEnabled(bool enabled) +{ + TRACE_OBJ + CollectionConfiguration::setAddressBarEnabled(*d->m_helpEngine, enabled); +} + +bool HelpEngineWrapper::addressBarVisible() const +{ + TRACE_OBJ + return CollectionConfiguration::addressBarVisible(*d->m_helpEngine); +} + +void HelpEngineWrapper::setAddressBarVisible(bool visible) +{ + TRACE_OBJ + CollectionConfiguration::setAddressBarVisible(*d->m_helpEngine, visible); +} + +bool HelpEngineWrapper::documentationManagerEnabled() const +{ + TRACE_OBJ + return CollectionConfiguration::documentationManagerEnabled(*d->m_helpEngine); +} + +void HelpEngineWrapper::setDocumentationManagerEnabled(bool enabled) +{ + TRACE_OBJ + CollectionConfiguration::setDocumentationManagerEnabled(*d->m_helpEngine, + enabled); +} + +const QByteArray HelpEngineWrapper::aboutMenuTexts() const +{ + TRACE_OBJ + return CollectionConfiguration::aboutMenuTexts(*d->m_helpEngine); +} + +void HelpEngineWrapper::setAboutMenuTexts(const QByteArray &texts) +{ + TRACE_OBJ + CollectionConfiguration::setAboutMenuTexts(*d->m_helpEngine, texts); +} + +const QByteArray HelpEngineWrapper::aboutIcon() const +{ + TRACE_OBJ + return CollectionConfiguration::aboutIcon(*d->m_helpEngine); +} + +void HelpEngineWrapper::setAboutIcon(const QByteArray &icon) +{ + TRACE_OBJ + CollectionConfiguration::setAboutIcon(*d->m_helpEngine, icon); +} + +const QByteArray HelpEngineWrapper::aboutImages() const +{ + TRACE_OBJ + return CollectionConfiguration::aboutImages(*d->m_helpEngine); +} + +void HelpEngineWrapper::setAboutImages(const QByteArray &images) +{ + TRACE_OBJ + CollectionConfiguration::setAboutImages(*d->m_helpEngine, images); +} + +const QByteArray HelpEngineWrapper::aboutTexts() const +{ + TRACE_OBJ + return CollectionConfiguration::aboutTexts(*d->m_helpEngine); +} + +void HelpEngineWrapper::setAboutTexts(const QByteArray &texts) +{ + TRACE_OBJ + CollectionConfiguration::setAboutTexts(*d->m_helpEngine, texts); +} + +const QString HelpEngineWrapper::windowTitle() const +{ + TRACE_OBJ + return CollectionConfiguration::windowTitle(*d->m_helpEngine); +} + +void HelpEngineWrapper::setWindowTitle(const QString &windowTitle) +{ + TRACE_OBJ + CollectionConfiguration::setWindowTitle(*d->m_helpEngine, windowTitle); +} + +const QByteArray HelpEngineWrapper::applicationIcon() const +{ + TRACE_OBJ + return CollectionConfiguration::applicationIcon(*d->m_helpEngine); +} + +void HelpEngineWrapper::setApplicationIcon(const QByteArray &icon) +{ + TRACE_OBJ + CollectionConfiguration::setApplicationIcon(*d->m_helpEngine, icon); +} + +const QByteArray HelpEngineWrapper::mainWindow() const +{ + TRACE_OBJ + return d->m_helpEngine->customValue(MainWindowKey).toByteArray(); +} + +void HelpEngineWrapper::setMainWindow(const QByteArray &mainWindow) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(MainWindowKey, mainWindow); +} + +const QByteArray HelpEngineWrapper::mainWindowGeometry() const +{ + TRACE_OBJ + return d->m_helpEngine->customValue(MainWindowGeometryKey).toByteArray(); +} + +void HelpEngineWrapper::setMainWindowGeometry(const QByteArray &geometry) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(MainWindowGeometryKey, geometry); +} + +const QByteArray HelpEngineWrapper::bookmarks() const +{ + TRACE_OBJ + return d->m_helpEngine->customValue(BookmarksKey).toByteArray(); +} + +void HelpEngineWrapper::setBookmarks(const QByteArray &bookmarks) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(BookmarksKey, bookmarks); +} + +int HelpEngineWrapper::lastTabPage() const +{ + TRACE_OBJ + return CollectionConfiguration::lastTabPage(*d->m_helpEngine); +} + +void HelpEngineWrapper::setLastTabPage(int lastPage) +{ + TRACE_OBJ + CollectionConfiguration::setLastTabPage(*d->m_helpEngine, lastPage); +} + +int HelpEngineWrapper::startOption() const +{ + TRACE_OBJ + return d->m_helpEngine->customValue(StartOptionKey, ShowLastPages).toInt(); +} + +void HelpEngineWrapper::setStartOption(int option) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(StartOptionKey, option); +} + +const QString HelpEngineWrapper::homePage() const +{ + TRACE_OBJ + const QString &homePage + = d->m_helpEngine->customValue(HomePageKey).toString(); + if (!homePage.isEmpty()) + return homePage; + return defaultHomePage(); +} + +void HelpEngineWrapper::setHomePage(const QString &page) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(HomePageKey, page); + +} + +const QString HelpEngineWrapper::defaultHomePage() const +{ + TRACE_OBJ + return CollectionConfiguration::defaultHomePage(*d->m_helpEngine); +} + +void HelpEngineWrapper::setDefaultHomePage(const QString &page) +{ + TRACE_OBJ + CollectionConfiguration::setDefaultHomePage(*d->m_helpEngine, page); +} + +bool HelpEngineWrapper::hasFontSettings() const +{ + TRACE_OBJ + return d->m_helpEngine->customValue(UseAppFontKey).isValid(); +} + +bool HelpEngineWrapper::usesAppFont() const +{ + TRACE_OBJ + return d->m_helpEngine->customValue(UseAppFontKey).toBool(); +} + +void HelpEngineWrapper::setUseAppFont(bool useAppFont) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(UseAppFontKey, useAppFont); +} + +bool HelpEngineWrapper::usesBrowserFont() const +{ + TRACE_OBJ + return d->m_helpEngine->customValue(UseBrowserFontKey, false).toBool(); +} + +void HelpEngineWrapper::setUseBrowserFont(bool useBrowserFont) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(UseBrowserFontKey, useBrowserFont); +} + +const QFont HelpEngineWrapper::appFont() const +{ + TRACE_OBJ + return qvariant_cast(d->m_helpEngine->customValue(AppFontKey)); +} + +void HelpEngineWrapper::setAppFont(const QFont &font) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(AppFontKey, font); +} + +QFontDatabase::WritingSystem HelpEngineWrapper::appWritingSystem() const +{ + TRACE_OBJ + return static_cast( + d->m_helpEngine->customValue(AppWritingSystemKey).toInt()); +} + +void HelpEngineWrapper::setAppWritingSystem(QFontDatabase::WritingSystem system) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(AppWritingSystemKey, system); +} + +const QFont HelpEngineWrapper::browserFont() const +{ + TRACE_OBJ + return qvariant_cast(d->m_helpEngine->customValue(BrowserFontKey)); +} + +void HelpEngineWrapper::setBrowserFont(const QFont &font) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(BrowserFontKey, font); +} + +QFontDatabase::WritingSystem HelpEngineWrapper::browserWritingSystem() const +{ + TRACE_OBJ + return static_cast( + d->m_helpEngine->customValue(BrowserWritingSystemKey).toInt()); +} + +void HelpEngineWrapper::setBrowserWritingSystem(QFontDatabase::WritingSystem system) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(BrowserWritingSystemKey, system); +} + +bool HelpEngineWrapper::showTabs() const +{ + TRACE_OBJ + return d->m_helpEngine->customValue(ShowTabsKey, false).toBool(); +} + +void HelpEngineWrapper::setShowTabs(bool show) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(ShowTabsKey, show); +} + +bool HelpEngineWrapper::fullTextSearchFallbackEnabled() const +{ + TRACE_OBJ + return CollectionConfiguration::fullTextSearchFallbackEnabled(*d->m_helpEngine); +} + +const QByteArray HelpEngineWrapper::topicChooserGeometry() const +{ + TRACE_OBJ + return d->m_helpEngine->customValue(TopicChooserGeometryKey).toByteArray(); +} + +void HelpEngineWrapper::setTopicChooserGeometry(const QByteArray &geometry) +{ + TRACE_OBJ + d->m_helpEngine->setCustomValue(TopicChooserGeometryKey, geometry); +} + +QHelpEngineCore *HelpEngineWrapper::helpEngine() const +{ + return d->m_helpEngine; +} + + +// -- TimeoutForwarder + +TimeoutForwarder::TimeoutForwarder(const QString &fileName) + : m_fileName(fileName) +{ + TRACE_OBJ +} + +void TimeoutForwarder::forward() +{ + TRACE_OBJ + HelpEngineWrapper::instance().d->qchFileChanged(m_fileName, true); +} + +// -- HelpEngineWrapperPrivate + +HelpEngineWrapperPrivate::HelpEngineWrapperPrivate(const QString &collectionFile) + : m_helpEngine(new QHelpEngine(collectionFile, this)), + m_qchWatcher(new QFileSystemWatcher(this)) +{ + TRACE_OBJ + m_helpEngine->setReadOnly(false); + m_helpEngine->setUsesFilterEngine(true); + initFileSystemWatchers(); +} + +void HelpEngineWrapperPrivate::initFileSystemWatchers() +{ + TRACE_OBJ + for (const QString &ns : m_helpEngine->registeredDocumentations()) + m_qchWatcher->addPath(m_helpEngine->documentationFileName(ns)); + + connect(m_qchWatcher, &QFileSystemWatcher::fileChanged, this, + QOverload::of(&HelpEngineWrapperPrivate::qchFileChanged)); + checkDocFilesWatched(); +} + +void HelpEngineWrapperPrivate::qchFileChanged(const QString &fileName) +{ + TRACE_OBJ + qchFileChanged(fileName, false); +} + +void HelpEngineWrapperPrivate::checkDocFilesWatched() +{ + TRACE_OBJ + const int watchedFilesCount = m_qchWatcher->files().size(); + const int docFilesCount = m_helpEngine->registeredDocumentations().size(); + if (watchedFilesCount != docFilesCount) { + qWarning("Strange: Have %d docs, but %d are being watched", + watchedFilesCount, docFilesCount); + } +} + +void HelpEngineWrapperPrivate::qchFileChanged(const QString &fileName, + bool fromTimeout) +{ + TRACE_OBJ + + /* + * We don't use QHelpEngineCore::namespaceName(fileName), because the file + * may not exist anymore or contain a different namespace. + */ + QString ns; + for (const QString &curNs : m_helpEngine->registeredDocumentations()) { + if (m_helpEngine->documentationFileName(curNs) == fileName) { + ns = curNs; + break; + } + } + + /* + * We can't do an assertion here, because QFileSystemWatcher may send the + * signal more than once. + */ + if (ns.isEmpty()) { + m_recentQchUpdates.remove(fileName); + return; + } + + /* + * Since the QFileSystemWatcher typically sends the signal more than once, + * we repeatedly delay our reaction a bit until we think the last signal + * was sent. + */ + + const auto &it = m_recentQchUpdates.find(fileName); + const QDateTime &now = QDateTime::currentDateTime(); + + // Case 1: This is the first recent signal for the file. + if (it == m_recentQchUpdates.end()) { + QSharedPointer forwarder(new TimeoutForwarder(fileName)); + m_recentQchUpdates.insert(fileName, RecentSignal(now, forwarder)); + QTimer::singleShot(UpdateGracePeriod, forwarder.data(), + &TimeoutForwarder::forward); + return; + } + + // Case 2: The last signal for this file has not expired yet. + if (it.value().first > now.addMSecs(-UpdateGracePeriod)) { + if (!fromTimeout) + it.value().first = now; + else + QTimer::singleShot(UpdateGracePeriod, it.value().second.data(), + &TimeoutForwarder::forward); + return; + } + + // Case 3: The last signal for this file has expired. + if (m_helpEngine->unregisterDocumentation(ns)) { + if (!QFileInfo(fileName).exists() + || !m_helpEngine->registerDocumentation(fileName)) { + m_qchWatcher->removePath(fileName); + emit documentationRemoved(ns); + } else { + emit documentationUpdated(ns); + } + m_helpEngine->setupData(); + } + m_recentQchUpdates.erase(it); +} + +QT_END_NAMESPACE + +#include "helpenginewrapper.moc" diff --git a/src/assistant/assistant/helpenginewrapper.h b/src/assistant/assistant/helpenginewrapper.h new file mode 100644 index 0000000..177d281 --- /dev/null +++ b/src/assistant/assistant/helpenginewrapper.h @@ -0,0 +1,178 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef HELPENGINEWRAPPER_H +#define HELPENGINEWRAPPER_H + +#include +#include +#include +#include +#include +#include +#include + +#include "qhelplink.h" + +QT_BEGIN_NAMESPACE + +class QFileSystemWatcher; +class QHelpContentModel; +class QHelpContentWidget; +class QHelpIndexModel; +class QHelpIndexWidget; +class QHelpSearchEngine; +class QHelpFilterEngine; +class QHelpEngineCore; + +enum { + ShowHomePage = 0, + ShowBlankPage = 1, + ShowLastPages = 2 +}; + +class HelpEngineWrapperPrivate; +class TimeoutForwarder; + +class HelpEngineWrapper : public QObject +{ + Q_OBJECT + Q_DISABLE_COPY(HelpEngineWrapper) + friend class TimeoutForwarder; +public: + static HelpEngineWrapper &instance(const QString &collectionFile = QString()); + static void removeInstance(); + + // Forwarded help engine member functions, possibly enriched. + QHelpSearchEngine *searchEngine() const; + QHelpContentModel *contentModel() const; + QHelpIndexModel *indexModel() const; + QHelpContentWidget *contentWidget(); + QHelpIndexWidget *indexWidget(); + bool setupData(); + const QStringList registeredDocumentations() const; + QString documentationFileName(const QString &namespaceName) const; + const QString collectionFile() const; + bool registerDocumentation(const QString &docFile); + bool unregisterDocumentation(const QString &namespaceName); + QUrl findFile(const QUrl &url) const; + QByteArray fileData(const QUrl &url) const; + QList documentsForIdentifier(const QString &id) const; + QString error() const; + + QHelpFilterEngine *filterEngine() const; + + /* + * To be called after assistant has finished looking for new documentation. + * This will mainly cause the search index to be updated, if necessary. + */ + void initialDocSetupDone(); + + const QStringList qtDocInfo(const QString &component) const; + void setQtDocInfo(const QString &component, const QStringList &doc); + + const QString homePage() const; + void setHomePage(const QString &page); + const QString defaultHomePage() const; + void setDefaultHomePage(const QString &page); + + int lastTabPage() const; + void setLastTabPage(int lastPage); + + // TODO: Don't allow last pages and zoom factors to be set in isolation + // Perhaps also fill up missing elements automatically or assert. + const QStringList lastShownPages() const; + void setLastShownPages(const QStringList &lastShownPages); + const QStringList lastZoomFactors() const; + void setLastZoomFactors(const QStringList &lastZoomFactors); + + const QString cacheDir() const; + bool cacheDirIsRelativeToCollection() const; + void setCacheDir(const QString &cacheDir, bool relativeToCollection); + + bool filterFunctionalityEnabled() const; + void setFilterFunctionalityEnabled(bool enabled); + + bool filterToolbarVisible() const; + void setFilterToolbarVisible(bool visible); + + bool addressBarEnabled() const; + void setAddressBarEnabled(bool enabled); + + bool addressBarVisible() const; + void setAddressBarVisible(bool visible); + + bool documentationManagerEnabled() const; + void setDocumentationManagerEnabled(bool enabled); + + const QByteArray aboutMenuTexts() const; + void setAboutMenuTexts(const QByteArray &texts); + const QByteArray aboutTexts() const; + void setAboutTexts(const QByteArray &texts); + const QByteArray aboutIcon() const; + void setAboutIcon(const QByteArray &icon); + const QByteArray aboutImages() const; + void setAboutImages(const QByteArray &images); + + const QString windowTitle() const; + void setWindowTitle(const QString &windowTitle); + + const QByteArray applicationIcon() const; + void setApplicationIcon(const QByteArray &icon); + + const QByteArray mainWindow() const; + void setMainWindow(const QByteArray &mainWindow); + const QByteArray mainWindowGeometry() const; + void setMainWindowGeometry(const QByteArray &geometry); + + const QByteArray bookmarks() const; + void setBookmarks(const QByteArray &bookmarks); + + int startOption() const; + void setStartOption(int option); + + bool hasFontSettings() const; + bool usesAppFont() const; + void setUseAppFont(bool useAppFont); + bool usesBrowserFont() const; + void setUseBrowserFont(bool useBrowserFont); + const QFont appFont() const; + void setAppFont(const QFont &font); + QFontDatabase::WritingSystem appWritingSystem() const; + void setAppWritingSystem(QFontDatabase::WritingSystem system); + const QFont browserFont() const; + void setBrowserFont(const QFont &font); + QFontDatabase::WritingSystem browserWritingSystem() const; + void setBrowserWritingSystem(QFontDatabase::WritingSystem system); + + bool showTabs() const; + void setShowTabs(bool show); + + bool fullTextSearchFallbackEnabled() const; + + const QByteArray topicChooserGeometry() const; + void setTopicChooserGeometry(const QByteArray &geometry); + + QHelpEngineCore *helpEngine() const; + +signals: + + // For asynchronous doc updates triggered by external actions. + void documentationRemoved(const QString &namespaceName); + void documentationUpdated(const QString &namespaceName); + + // Forwarded from QHelpEngineCore. + void setupFinished(); + +private: + HelpEngineWrapper(const QString &collectionFile); + ~HelpEngineWrapper(); + + static HelpEngineWrapper *helpEngineWrapper; + + HelpEngineWrapperPrivate *d; +}; + +QT_END_NAMESPACE + +#endif // HELPENGINEWRAPPER_H diff --git a/src/assistant/assistant/helpviewer.cpp b/src/assistant/assistant/helpviewer.cpp new file mode 100644 index 0000000..af91db3 --- /dev/null +++ b/src/assistant/assistant/helpviewer.cpp @@ -0,0 +1,419 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "helpviewer.h" +#include "helpviewerimpl.h" + +#include "helpenginewrapper.h" +#include "tracer.h" + +#include +#include +#include + +#include +#if QT_CONFIG(clipboard) +#include +#endif +#include +#include + +#include +#include + +#include + +#include + +QT_BEGIN_NAMESPACE + +const int kMaxHistoryItems = 20; + +struct ExtensionMap { + const char *extension; + const char *mimeType; +} extensionMap[] = { + { ".bmp", "image/bmp" }, + { ".css", "text/css" }, + { ".gif", "image/gif" }, + { ".html", "text/html" }, + { ".htm", "text/html" }, + { ".ico", "image/x-icon" }, + { ".jpeg", "image/jpeg" }, + { ".jpg", "image/jpeg" }, + { ".js", "application/x-javascript" }, + { ".mng", "video/x-mng" }, + { ".pbm", "image/x-portable-bitmap" }, + { ".pgm", "image/x-portable-graymap" }, + { ".pdf", nullptr }, + { ".png", "image/png" }, + { ".ppm", "image/x-portable-pixmap" }, + { ".rss", "application/rss+xml" }, + { ".svg", "image/svg+xml" }, + { ".svgz", "image/svg+xml" }, + { ".text", "text/plain" }, + { ".tif", "image/tiff" }, + { ".tiff", "image/tiff" }, + { ".txt", "text/plain" }, + { ".xbm", "image/x-xbitmap" }, + { ".xml", "text/xml" }, + { ".xpm", "image/x-xpm" }, + { ".xsl", "text/xsl" }, + { ".xhtml", "application/xhtml+xml" }, + { ".wml", "text/vnd.wap.wml" }, + { ".wmlc", "application/vnd.wap.wmlc" }, + { "about:blank", nullptr }, + { nullptr, nullptr } +}; + +static QByteArray getData(const QUrl &url) +{ + // TODO: this is just a hack for Qt documentation + // which decides to use a simpler CSS if the viewer does not have JavaScript + // which was a hack to decide if we are viewing in QTextBrowser or QtWebEngine et al + QUrl actualUrl = url; + QString path = url.path(QUrl::FullyEncoded); + static const char simpleCss[] = "/offline-simple.css"; + if (path.endsWith(simpleCss)) { + path.replace(simpleCss, "/offline.css"); + actualUrl.setPath(path); + } + + if (actualUrl.isValid()) + return HelpEngineWrapper::instance().fileData(actualUrl); + + const bool isAbout = (actualUrl.toString() == QLatin1String("about:blank")); + return isAbout ? HelpViewerImpl::AboutBlank.toUtf8() + : HelpViewerImpl::PageNotFoundMessage.arg(url.toString()).toUtf8(); +} + +class HelpViewerPrivate +{ +public: + struct HistoryItem + { + QUrl url; + QString title; + int vscroll; + }; + HistoryItem currentHistoryItem() const; + void setSourceInternal(const QUrl &url, int *vscroll = nullptr, bool reload = false); + void incrementZoom(int steps); + void applyZoom(int percentage); + + HelpViewer *q = nullptr; + QLiteHtmlWidget *m_viewer = nullptr; + std::vector m_backItems; + std::vector m_forwardItems; + int m_fontZoom = 100; // zoom percentage +}; + +HelpViewerPrivate::HistoryItem HelpViewerPrivate::currentHistoryItem() const +{ + return { m_viewer->url(), m_viewer->title(), m_viewer->verticalScrollBar()->value() }; +} + +void HelpViewerPrivate::setSourceInternal(const QUrl &url, int *vscroll, bool reload) +{ + QGuiApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); + + const bool isHelp = (url.toString() == QLatin1String("help")); + const QUrl resolvedUrl = (isHelp ? HelpViewerImpl::LocalHelpFile + : HelpEngineWrapper::instance().findFile(url)); + + QUrl currentUrlWithoutFragment = m_viewer->url(); + currentUrlWithoutFragment.setFragment({}); + QUrl newUrlWithoutFragment = resolvedUrl; + newUrlWithoutFragment.setFragment({}); + + m_viewer->setUrl(resolvedUrl); + if (currentUrlWithoutFragment != newUrlWithoutFragment || reload) + m_viewer->setHtml(QString::fromUtf8(getData(resolvedUrl))); + if (vscroll) + m_viewer->verticalScrollBar()->setValue(*vscroll); + else + m_viewer->scrollToAnchor(resolvedUrl.fragment(QUrl::FullyEncoded)); + + QGuiApplication::restoreOverrideCursor(); + + emit q->sourceChanged(q->source()); + emit q->loadFinished(); + emit q->titleChanged(); +} + +void HelpViewerPrivate::incrementZoom(int steps) +{ + const int incrementPercentage = 10 * steps; // 10 percent increase by single step + const int previousZoom = m_fontZoom; + applyZoom(previousZoom + incrementPercentage); +} + +void HelpViewerPrivate::applyZoom(int percentage) +{ + const int newZoom = qBound(10, percentage, 300); + if (newZoom == m_fontZoom) + return; + m_fontZoom = newZoom; + m_viewer->setZoomFactor(newZoom / 100.0); +} + +HelpViewer::HelpViewer(qreal zoom, QWidget *parent) + : QWidget(parent) + , d(new HelpViewerPrivate) +{ + auto layout = new QVBoxLayout; + d->q = this; + d->m_viewer = new QLiteHtmlWidget(this); + d->m_viewer->setResourceHandler([](const QUrl &url) { return getData(url); }); + d->m_viewer->viewport()->installEventFilter(this); + const int zoomPercentage = zoom == 0 ? 100 : zoom * 100; + d->applyZoom(zoomPercentage); + connect(d->m_viewer, &QLiteHtmlWidget::linkClicked, this, &HelpViewer::setSource); + connect(d->m_viewer, &QLiteHtmlWidget::linkHighlighted, this, &HelpViewer::highlighted); +#if QT_CONFIG(clipboard) + connect(d->m_viewer, &QLiteHtmlWidget::copyAvailable, this, &HelpViewer::copyAvailable); +#endif + setLayout(layout); + layout->setContentsMargins(0, 0, 0, 0); + layout->addWidget(d->m_viewer, 10); + + // Make docs' contents visible in dark theme + QPalette p = palette(); + p.setColor(QPalette::Inactive, QPalette::Highlight, + p.color(QPalette::Active, QPalette::Highlight)); + p.setColor(QPalette::Inactive, QPalette::HighlightedText, + p.color(QPalette::Active, QPalette::HighlightedText)); + p.setColor(QPalette::Base, Qt::white); + p.setColor(QPalette::Text, Qt::black); + setPalette(p); +} + +HelpViewer::~HelpViewer() +{ + delete d; +} + +QFont HelpViewer::viewerFont() const +{ + return d->m_viewer->defaultFont(); +} + +void HelpViewer::setViewerFont(const QFont &font) +{ + d->m_viewer->setDefaultFont(font); +} + +void HelpViewer::scaleUp() +{ + d->incrementZoom(1); +} + +void HelpViewer::scaleDown() +{ + d->incrementZoom(-1); +} + +void HelpViewer::resetScale() +{ + d->applyZoom(100); +} + +qreal HelpViewer::scale() const +{ + return d->m_viewer->zoomFactor(); +} + +QString HelpViewer::title() const +{ + return d->m_viewer->title(); +} + +QUrl HelpViewer::source() const +{ + return d->m_viewer->url(); +} + +void HelpViewer::reload() +{ + doSetSource(source(), true); +} + +void HelpViewer::setSource(const QUrl &url) +{ + doSetSource(url, false); +} + +void HelpViewer::doSetSource(const QUrl &url, bool reload) +{ + if (launchWithExternalApp(url)) + return; + + d->m_forwardItems.clear(); + emit forwardAvailable(false); + if (d->m_viewer->url().isValid()) { + d->m_backItems.push_back(d->currentHistoryItem()); + while (d->m_backItems.size() > kMaxHistoryItems) // this should trigger only once anyhow + d->m_backItems.erase(d->m_backItems.begin()); + emit backwardAvailable(true); + } + + d->setSourceInternal(url, nullptr, reload); +} + +void HelpViewer::print(QPagedPaintDevice *printer) +{ + Q_UNUSED(printer); + // TODO: implement me +} + +QString HelpViewer::selectedText() const +{ + return d->m_viewer->selectedText(); +} + +bool HelpViewer::isForwardAvailable() const +{ + return !d->m_forwardItems.empty(); +} + +bool HelpViewer::isBackwardAvailable() const +{ + return !d->m_backItems.empty(); +} + +static QTextDocument::FindFlags textDocumentFlagsForFindFlags(HelpViewer::FindFlags flags) +{ + QTextDocument::FindFlags textDocFlags; + if (flags & HelpViewer::FindBackward) + textDocFlags |= QTextDocument::FindBackward; + if (flags & HelpViewer::FindCaseSensitively) + textDocFlags |= QTextDocument::FindCaseSensitively; + return textDocFlags; +} + +bool HelpViewer::findText(const QString &text, FindFlags flags, bool incremental, bool fromSearch) +{ + Q_UNUSED(fromSearch); + return d->m_viewer->findText(text, textDocumentFlagsForFindFlags(flags), incremental); +} + +#if QT_CONFIG(clipboard) +void HelpViewer::copy() +{ + QGuiApplication::clipboard()->setText(selectedText()); +} +#endif + +void HelpViewer::home() +{ + setSource(HelpEngineWrapper::instance().homePage()); +} + +void HelpViewer::forward() +{ + HelpViewerPrivate::HistoryItem nextItem = d->currentHistoryItem(); + if (d->m_forwardItems.empty()) + return; + d->m_backItems.push_back(nextItem); + nextItem = d->m_forwardItems.front(); + d->m_forwardItems.erase(d->m_forwardItems.begin()); + + emit backwardAvailable(isBackwardAvailable()); + emit forwardAvailable(isForwardAvailable()); + d->setSourceInternal(nextItem.url, &nextItem.vscroll); +} + +void HelpViewer::backward() +{ + HelpViewerPrivate::HistoryItem previousItem = d->currentHistoryItem(); + if (d->m_backItems.empty()) + return; + d->m_forwardItems.insert(d->m_forwardItems.begin(), previousItem); + previousItem = d->m_backItems.back(); + d->m_backItems.pop_back(); + + emit backwardAvailable(isBackwardAvailable()); + emit forwardAvailable(isForwardAvailable()); + d->setSourceInternal(previousItem.url, &previousItem.vscroll); +} + +bool HelpViewer::eventFilter(QObject *src, QEvent *event) +{ + if (event->type() == QEvent::Wheel) { + auto we = static_cast(event); + if (we->modifiers() == Qt::ControlModifier) { + we->accept(); + const int deltaY = we->angleDelta().y(); + if (deltaY != 0) + d->incrementZoom(deltaY / 120); + return true; + } + } + return QWidget::eventFilter(src, event); +} + +bool HelpViewer::isLocalUrl(const QUrl &url) +{ + TRACE_OBJ + const QString &scheme = url.scheme(); + return scheme.isEmpty() + || scheme == QLatin1String("file") + || scheme == QLatin1String("qrc") + || scheme == QLatin1String("data") + || scheme == QLatin1String("qthelp") + || scheme == QLatin1String("about"); +} + +bool HelpViewer::canOpenPage(const QString &path) +{ + TRACE_OBJ + return !mimeFromUrl(QUrl::fromLocalFile(path)).isEmpty(); +} + +QString HelpViewer::mimeFromUrl(const QUrl &url) +{ + TRACE_OBJ + const QString &path = url.path(); + const int index = path.lastIndexOf(QLatin1Char('.')); + const QByteArray &ext = path.mid(index).toUtf8().toLower(); + + const ExtensionMap *e = extensionMap; + while (e->extension) { + if (ext == e->extension) + return QLatin1String(e->mimeType); + ++e; + } + return QLatin1String("application/octet-stream"); +} + +bool HelpViewer::launchWithExternalApp(const QUrl &url) +{ + TRACE_OBJ + if (isLocalUrl(url)) { + const HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); + const QUrl &resolvedUrl = helpEngine.findFile(url); + if (!resolvedUrl.isValid()) + return false; + + const QString& path = resolvedUrl.toLocalFile(); + if (!canOpenPage(path)) { + QTemporaryFile tmpTmpFile; + if (!tmpTmpFile.open()) + return false; + + const QString &extension = QFileInfo(path).completeSuffix(); + QFile actualTmpFile(tmpTmpFile.fileName() % QLatin1String(".") + % extension); + if (!actualTmpFile.open(QIODevice::ReadWrite | QIODevice::Truncate)) + return false; + + actualTmpFile.write(helpEngine.fileData(resolvedUrl)); + actualTmpFile.close(); + return QDesktopServices::openUrl(QUrl::fromLocalFile(actualTmpFile.fileName())); + } + return false; + } + return QDesktopServices::openUrl(url); +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/helpviewer.h b/src/assistant/assistant/helpviewer.h new file mode 100644 index 0000000..b926385 --- /dev/null +++ b/src/assistant/assistant/helpviewer.h @@ -0,0 +1,89 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef HELPVIEWER_H +#define HELPVIEWER_H + +#include +#include + +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class HelpViewerPrivate; + +class HelpViewer : public QWidget +{ + Q_OBJECT +public: + enum FindFlag { + FindBackward = 0x01, + FindCaseSensitively = 0x02 + }; + Q_DECLARE_FLAGS(FindFlags, FindFlag) + + HelpViewer(qreal zoom, QWidget *parent = nullptr); + ~HelpViewer() override; + + QFont viewerFont() const; + void setViewerFont(const QFont &font); + + void scaleUp(); + void scaleDown(); + + void resetScale(); + qreal scale() const; + + QString title() const; + + QUrl source() const; + void reload(); + void setSource(const QUrl &url); + + void print(QPagedPaintDevice *printer); + + QString selectedText() const; + bool isForwardAvailable() const; + bool isBackwardAvailable() const; + + bool findText(const QString &text, FindFlags flags, bool incremental, + bool fromSearch); + + static bool isLocalUrl(const QUrl &url); + static bool canOpenPage(const QString &url); + static QString mimeFromUrl(const QUrl &url); + static bool launchWithExternalApp(const QUrl &url); + + // implementation detail, not a part of the interface + bool eventFilter(QObject *src, QEvent *event) override; + +public slots: +#if QT_CONFIG(clipboard) + void copy(); +#endif + void home(); + void forward(); + void backward(); + +signals: + void titleChanged(); + void copyAvailable(bool yes); + void sourceChanged(const QUrl &url); + void forwardAvailable(bool enabled); + void backwardAvailable(bool enabled); + void highlighted(const QUrl &link); + void printRequested(); + void loadFinished(); +private: + void doSetSource(const QUrl &url, bool reload); + + HelpViewerPrivate *d; +}; + +QT_END_NAMESPACE + +#endif // HELPVIEWER_H diff --git a/src/assistant/assistant/helpviewerimpl.cpp b/src/assistant/assistant/helpviewerimpl.cpp new file mode 100644 index 0000000..3bbab51 --- /dev/null +++ b/src/assistant/assistant/helpviewerimpl.cpp @@ -0,0 +1,69 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "helpviewerimpl.h" +#include "helpviewerimpl_p.h" + +#include "helpenginewrapper.h" +#include "tracer.h" + +#include + +#include + +QT_BEGIN_NAMESPACE + +const QString HelpViewerImpl::AboutBlank = + QCoreApplication::translate("HelpViewer", "about:blank"); + +const QString HelpViewerImpl::LocalHelpFile = QLatin1String("qthelp://" + "org.qt-project.qtassistant.%1%2%3/qtassistant/assistant-quick-guide.html") + .arg(QString::number(QT_VERSION_MAJOR), + QString::number(QT_VERSION_MINOR), + QString::number(QT_VERSION_PATCH)); + +const QString HelpViewerImpl::PageNotFoundMessage = + QCoreApplication::translate("HelpViewer", "Error 404...


The page could not be found.


'%1'" + "

"); + +HelpViewerImpl::~HelpViewerImpl() +{ + TRACE_OBJ + delete d; +} + +// -- public slots + +void HelpViewerImpl::home() +{ + TRACE_OBJ + setSource(HelpEngineWrapper::instance().homePage()); +} + +// -- private slots + +void HelpViewerImpl::setLoadFinished() +{ + emit sourceChanged(source()); +} + +// -- private + +bool HelpViewerImpl::handleForwardBackwardMouseButtons(QMouseEvent *event) +{ + TRACE_OBJ + if (event->button() == Qt::XButton1) { + backward(); + return true; + } + + if (event->button() == Qt::XButton2) { + forward(); + return true; + } + + return false; +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/helpviewerimpl.h b/src/assistant/assistant/helpviewerimpl.h new file mode 100644 index 0000000..5bf2f92 --- /dev/null +++ b/src/assistant/assistant/helpviewerimpl.h @@ -0,0 +1,111 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef HELPVIEWERIMPL_H +#define HELPVIEWERIMPL_H + +#include +#include +#include + +#include + +#if defined(BROWSER_QTWEBKIT) +# include +#elif defined(BROWSER_QTEXTBROWSER) +# include +#endif + +#include "helpviewer.h" + +QT_BEGIN_NAMESPACE + +#if defined(BROWSER_QTWEBKIT) +#define TEXTBROWSER_OVERRIDE +class HelpViewerImpl : public QWebView +#elif defined(BROWSER_QTEXTBROWSER) +#define TEXTBROWSER_OVERRIDE override +class HelpViewerImpl : public QTextBrowser +#endif +{ + Q_OBJECT + class HelpViewerImplPrivate; + +public: + HelpViewerImpl(qreal zoom, QWidget *parent = nullptr); + ~HelpViewerImpl() override; + + QFont viewerFont() const; + void setViewerFont(const QFont &font); + + void scaleUp(); + void scaleDown(); + + void resetScale(); + qreal scale() const; + + QString title() const; + + QUrl source() const; + void doSetSource(const QUrl &url, QTextDocument::ResourceType type) TEXTBROWSER_OVERRIDE; + + QString selectedText() const; + bool isForwardAvailable() const; + bool isBackwardAvailable() const; + + bool findText(const QString &text, HelpViewer::FindFlags flags, bool incremental, + bool fromSearch); + + static const QString AboutBlank; + static const QString LocalHelpFile; + static const QString PageNotFoundMessage; + +public slots: +#if QT_CONFIG(clipboard) + void copy(); +#endif + void home() TEXTBROWSER_OVERRIDE; + + void forward() TEXTBROWSER_OVERRIDE; + void backward() TEXTBROWSER_OVERRIDE; + +signals: + void titleChanged(); +#if !defined(BROWSER_QTEXTBROWSER) + // Provide signals present in QTextBrowser, QTextEdit for browsers that do not inherit QTextBrowser + void copyAvailable(bool yes); + void sourceChanged(const QUrl &url); + void forwardAvailable(bool enabled); + void backwardAvailable(bool enabled); + void highlighted(const QUrl &link); + void printRequested(); +#elif !defined(BROWSER_QTWEBKIT) + // Provide signals present in QWebView for browsers that do not inherit QWebView + void loadFinished(bool finished); +#endif + +protected: + void keyPressEvent(QKeyEvent *e) override; + void wheelEvent(QWheelEvent *event) override; + void mousePressEvent(QMouseEvent *event) override; + void mouseReleaseEvent(QMouseEvent *event) override; + void resizeEvent(QResizeEvent *e) override; + +private slots: + void actionChanged(); + void setLoadFinished(); + +private: + bool eventFilter(QObject *obj, QEvent *event) override; + void contextMenuEvent(QContextMenuEvent *event) override; + QVariant loadResource(int type, const QUrl &name) TEXTBROWSER_OVERRIDE; + bool handleForwardBackwardMouseButtons(QMouseEvent *e); + void scrollToTextPosition(int position); + +private: + HelpViewerImplPrivate *d; +}; + +QT_END_NAMESPACE + +#endif // HELPVIEWERIMPL_H diff --git a/src/assistant/assistant/helpviewerimpl_p.h b/src/assistant/assistant/helpviewerimpl_p.h new file mode 100644 index 0000000..c05a96a --- /dev/null +++ b/src/assistant/assistant/helpviewerimpl_p.h @@ -0,0 +1,96 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef HELPVIEWERIMPLPRIVATE_H +#define HELPVIEWERIMPLPRIVATE_H + +#include "centralwidget.h" +#include "helpviewer.h" +#include "openpagesmanager.h" + +#include +#if defined(BROWSER_QTEXTBROWSER) +# include +#elif defined(BROWSER_QTWEBKIT) +# include +# include +#endif // BROWSER_QTWEBKIT + +QT_BEGIN_NAMESPACE + +class HelpViewerImpl::HelpViewerImplPrivate : public QObject +{ + Q_OBJECT + +public: +#if defined(BROWSER_QTEXTBROWSER) + HelpViewerImplPrivate(int zoom) + : zoomCount(zoom) + { } +#elif defined(BROWSER_QTWEBKIT) + HelpViewerImplPrivate() + { + // The web uses 96dpi by default on the web to preserve the font size across platforms, but + // since we control the content for the documentation, we want the system DPI to be used. + // - OS X reports 72dpi but doesn't allow changing the DPI, ignore anything below a 1.0 ratio to handle this. + // - On Windows and Linux don't zoom the default web 96dpi below a 1.25 ratio to avoid + // filtered images in the doc unless the font readability difference is considerable. + webDpiRatio = QGuiApplication::primaryScreen()->logicalDotsPerInch() / 96.; + if (webDpiRatio < 1.25) + webDpiRatio = 1.0; + } +#endif // BROWSER_QTWEBKIT + +#if defined(BROWSER_QTEXTBROWSER) + bool hasAnchorAt(QTextBrowser *browser, const QPoint& pos) + { + lastAnchor = browser->anchorAt(pos); + if (lastAnchor.isEmpty()) + return false; + + lastAnchor = browser->source().resolved(lastAnchor).toString(); + if (lastAnchor.at(0) == QLatin1Char('#')) { + QString src = browser->source().toString(); + int hsh = src.indexOf(QLatin1Char('#')); + lastAnchor = (hsh >= 0 ? src.left(hsh) : src) + lastAnchor; + } + return true; + } + +public slots: + void openLink() + { + doOpenLink(false); + } + + void openLinkInNewPage() + { + doOpenLink(true); + } + +public: + QString lastAnchor; + int zoomCount; + bool forceFont = false; + +private: + + void doOpenLink(bool newPage) + { + if (lastAnchor.isEmpty()) + return; + if (newPage) + OpenPagesManager::instance()->createPage(lastAnchor); + else + CentralWidget::instance()->setSource(lastAnchor); + lastAnchor.clear(); + } + +#elif defined(BROWSER_QTWEBKIT) + qreal webDpiRatio; +#endif // BROWSER_QTWEBKIT +}; + +QT_END_NAMESPACE + +#endif // HELPVIEWERIMPLPRIVATE_H diff --git a/src/assistant/assistant/helpviewerimpl_qtb.cpp b/src/assistant/assistant/helpviewerimpl_qtb.cpp new file mode 100644 index 0000000..0d0d14a --- /dev/null +++ b/src/assistant/assistant/helpviewerimpl_qtb.cpp @@ -0,0 +1,373 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "helpviewerimpl.h" +#include "helpviewerimpl_p.h" + +#include "globalactions.h" +#include "helpenginewrapper.h" +#include "openpagesmanager.h" +#include "tracer.h" + +#include + +#include +#include +#include +#if QT_CONFIG(clipboard) +#include +#endif +#include + +QT_BEGIN_NAMESPACE + +HelpViewerImpl::HelpViewerImpl(qreal zoom, QWidget *parent) + : QTextBrowser(parent) + , d(new HelpViewerImplPrivate(zoom)) +{ + TRACE_OBJ + QPalette p = palette(); + p.setColor(QPalette::Inactive, QPalette::Highlight, + p.color(QPalette::Active, QPalette::Highlight)); + p.setColor(QPalette::Inactive, QPalette::HighlightedText, + p.color(QPalette::Active, QPalette::HighlightedText)); + setPalette(p); + + installEventFilter(this); + document()->setDocumentMargin(8); + + QFont font = viewerFont(); + font.setPointSize(int(font.pointSize() + zoom)); + setViewerFont(font); + + connect(this, &QTextBrowser::sourceChanged, this, &HelpViewerImpl::titleChanged); + connect(this, &HelpViewerImpl::loadFinished, this, &HelpViewerImpl::setLoadFinished); +} + +QFont HelpViewerImpl::viewerFont() const +{ + TRACE_OBJ + if (HelpEngineWrapper::instance().usesBrowserFont()) + return HelpEngineWrapper::instance().browserFont(); + return qApp->font(); +} + +void HelpViewerImpl::setViewerFont(const QFont &newFont) +{ + TRACE_OBJ + if (font() != newFont) { + d->forceFont = true; + setFont(newFont); + d->forceFont = false; + } +} + +void HelpViewerImpl::scaleUp() +{ + TRACE_OBJ + if (d->zoomCount < 10) { + d->zoomCount++; + d->forceFont = true; + zoomIn(); + d->forceFont = false; + } +} + +void HelpViewerImpl::scaleDown() +{ + TRACE_OBJ + if (d->zoomCount > -5) { + d->zoomCount--; + d->forceFont = true; + zoomOut(); + d->forceFont = false; + } +} + +void HelpViewerImpl::resetScale() +{ + TRACE_OBJ + if (d->zoomCount != 0) { + d->forceFont = true; + zoomOut(d->zoomCount); + d->forceFont = false; + } + d->zoomCount = 0; +} + +qreal HelpViewerImpl::scale() const +{ + TRACE_OBJ + return d->zoomCount; +} + +QString HelpViewerImpl::title() const +{ + TRACE_OBJ + return documentTitle(); +} + +QUrl HelpViewerImpl::source() const +{ + TRACE_OBJ + return QTextBrowser::source(); +} + +void HelpViewerImpl::doSetSource(const QUrl &url, QTextDocument::ResourceType type) +{ + TRACE_OBJ + Q_UNUSED(type); + if (HelpViewer::launchWithExternalApp(url)) + return; + + bool helpOrAbout = (url.toString() == QLatin1String("help")); + const QUrl resolvedUrl = (helpOrAbout ? LocalHelpFile : HelpEngineWrapper::instance().findFile(url)); + + QTextBrowser::doSetSource(resolvedUrl, type); + + if (!resolvedUrl.isValid()) { + helpOrAbout = (url.toString() == QLatin1String("about:blank")); + setHtml(helpOrAbout ? AboutBlank : PageNotFoundMessage.arg(url.toString())); + } + emit loadFinished(true); +} + +QString HelpViewerImpl::selectedText() const +{ + TRACE_OBJ + return textCursor().selectedText(); +} + +bool HelpViewerImpl::isForwardAvailable() const +{ + TRACE_OBJ + return QTextBrowser::isForwardAvailable(); +} + +bool HelpViewerImpl::isBackwardAvailable() const +{ + TRACE_OBJ + return QTextBrowser::isBackwardAvailable(); +} + +bool HelpViewerImpl::findText(const QString &text, HelpViewer::FindFlags flags, bool incremental, + bool fromSearch) +{ + TRACE_OBJ + QTextDocument *doc = document(); + QTextCursor cursor = textCursor(); + if (!doc || cursor.isNull()) + return false; + + const int position = cursor.selectionStart(); + if (incremental) + cursor.setPosition(position); + + QTextDocument::FindFlags textDocFlags; + if (flags & HelpViewer::FindBackward) + textDocFlags |= QTextDocument::FindBackward; + if (flags & HelpViewer::FindCaseSensitively) + textDocFlags |= QTextDocument::FindCaseSensitively; + + QTextCursor found = doc->find(text, cursor, textDocFlags); + if (found.isNull()) { + if ((flags & HelpViewer::FindBackward) == 0) + cursor.movePosition(QTextCursor::Start); + else + cursor.movePosition(QTextCursor::End); + found = doc->find(text, cursor, textDocFlags); + } + + if (fromSearch) { + cursor.beginEditBlock(); + viewport()->setUpdatesEnabled(false); + + QTextCharFormat marker; + marker.setForeground(Qt::red); + cursor.movePosition(QTextCursor::Start); + setTextCursor(cursor); + + while (find(text)) { + QTextCursor hit = textCursor(); + hit.mergeCharFormat(marker); + } + + viewport()->setUpdatesEnabled(true); + cursor.endEditBlock(); + } + + bool cursorIsNull = found.isNull(); + if (cursorIsNull) { + found = textCursor(); + found.setPosition(position); + } + setTextCursor(found); + return !cursorIsNull; +} + +// -- public slots + +#if QT_CONFIG(clipboard) +void HelpViewerImpl::copy() +{ + TRACE_OBJ + QTextBrowser::copy(); +} +#endif + +void HelpViewerImpl::forward() +{ + TRACE_OBJ + QTextBrowser::forward(); +} + +void HelpViewerImpl::backward() +{ + TRACE_OBJ + QTextBrowser::backward(); +} + +// -- protected + +void HelpViewerImpl::keyPressEvent(QKeyEvent *e) +{ + TRACE_OBJ + if ((e->key() == Qt::Key_Home && e->modifiers() != Qt::NoModifier) + || (e->key() == Qt::Key_End && e->modifiers() != Qt::NoModifier)) { + QKeyEvent* event = new QKeyEvent(e->type(), e->key(), Qt::NoModifier, + e->text(), e->isAutoRepeat(), e->count()); + e = event; + } + QTextBrowser::keyPressEvent(e); +} + +void HelpViewerImpl::wheelEvent(QWheelEvent *e) +{ + TRACE_OBJ + if (e->modifiers() == Qt::ControlModifier) { + e->accept(); + e->angleDelta().y() > 0 ? scaleUp() : scaleDown(); + } else { + QTextBrowser::wheelEvent(e); + } +} + +void HelpViewerImpl::mousePressEvent(QMouseEvent *e) +{ + TRACE_OBJ +#ifdef Q_OS_LINUX + if (handleForwardBackwardMouseButtons(e)) + return; +#endif + + QTextBrowser::mousePressEvent(e); +} + +void HelpViewerImpl::mouseReleaseEvent(QMouseEvent *e) +{ + TRACE_OBJ +#ifndef Q_OS_LINUX + if (handleForwardBackwardMouseButtons(e)) + return; +#endif + + bool controlPressed = e->modifiers() & Qt::ControlModifier; + if ((controlPressed && d->hasAnchorAt(this, e->pos())) || + (e->button() == Qt::MiddleButton && d->hasAnchorAt(this, e->pos()))) { + d->openLinkInNewPage(); + return; + } + + QTextBrowser::mouseReleaseEvent(e); +} + + +void HelpViewerImpl::resizeEvent(QResizeEvent *e) +{ + const int topTextPosition = cursorForPosition({width() / 2, 0}).position(); + QTextBrowser::resizeEvent(e); + scrollToTextPosition(topTextPosition); +} + +// -- private slots + +void HelpViewerImpl::actionChanged() +{ + // stub + TRACE_OBJ +} + +// -- private + +bool HelpViewerImpl::eventFilter(QObject *obj, QEvent *event) +{ + TRACE_OBJ + if (event->type() == QEvent::FontChange && !d->forceFont) + return true; + return QTextBrowser::eventFilter(obj, event); +} + +void HelpViewerImpl::contextMenuEvent(QContextMenuEvent *event) +{ + TRACE_OBJ + + QMenu menu(QString(), nullptr); + QUrl link; +#if QT_CONFIG(clipboard) + QAction *copyAnchorAction = nullptr; +#endif + if (d->hasAnchorAt(this, event->pos())) { + link = anchorAt(event->pos()); + if (link.isRelative()) + link = source().resolved(link); + menu.addAction(tr("Open Link"), d, &HelpViewerImplPrivate::openLink); + menu.addAction(tr("Open Link in New Tab\tCtrl+LMB"), d, &HelpViewerImplPrivate::openLinkInNewPage); + +#if QT_CONFIG(clipboard) + if (!link.isEmpty() && link.isValid()) + copyAnchorAction = menu.addAction(tr("Copy &Link Location")); +#endif + } else if (!selectedText().isEmpty()) { +#if QT_CONFIG(clipboard) + menu.addAction(tr("Copy"), this, &HelpViewerImpl::copy); +#endif + } else { + menu.addAction(tr("Reload"), this, &HelpViewerImpl::reload); + } + +#if QT_CONFIG(clipboard) + if (copyAnchorAction == menu.exec(event->globalPos())) + QApplication::clipboard()->setText(link.toString()); +#endif +} + +QVariant HelpViewerImpl::loadResource(int type, const QUrl &name) +{ + TRACE_OBJ + QByteArray ba; + if (type < 4) { + const QUrl url = HelpEngineWrapper::instance().findFile(name); + ba = HelpEngineWrapper::instance().fileData(url); + if (url.toString().endsWith(QLatin1String(".svg"), Qt::CaseInsensitive)) { + QImage image; + image.loadFromData(ba, "svg"); + if (!image.isNull()) + return image; + } + } + return ba; +} + + +void HelpViewerImpl::scrollToTextPosition(int position) +{ + QTextCursor tc(document()); + tc.setPosition(position); + const int dy = cursorRect(tc).top(); + if (verticalScrollBar()) { + verticalScrollBar()->setValue( + std::min(verticalScrollBar()->value() + dy, verticalScrollBar()->maximum())); + } +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/helpviewerimpl_qwv.cpp b/src/assistant/assistant/helpviewerimpl_qwv.cpp new file mode 100644 index 0000000..7056610 --- /dev/null +++ b/src/assistant/assistant/helpviewerimpl_qwv.cpp @@ -0,0 +1,370 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "helpviewerimpl.h" +#include "helpviewerimpl_p.h" + +#include "centralwidget.h" +#include "helpenginewrapper.h" +#include "helpbrowsersupport.h" +#include "openpagesmanager.h" +#include "tracer.h" + +#include +#include +#include +#include + +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +// -- HelpPage + +class HelpPage : public QWebPage +{ +public: + HelpPage(QObject *parent); + +protected: + virtual QWebPage *createWindow(QWebPage::WebWindowType); + virtual void triggerAction(WebAction action, bool checked = false); + + virtual bool acceptNavigationRequest(QWebFrame *frame, + const QNetworkRequest &request, NavigationType type); + +private: + bool closeNewTabIfNeeded; + + friend class HelpViewerImpl; + QUrl m_loadingUrl; + Qt::MouseButtons m_pressedButtons; + Qt::KeyboardModifiers m_keyboardModifiers; +}; + +HelpPage::HelpPage(QObject *parent) + : QWebPage(parent) + , closeNewTabIfNeeded(false) + , m_pressedButtons(Qt::NoButton) + , m_keyboardModifiers(Qt::NoModifier) +{ + TRACE_OBJ +} + +QWebPage *HelpPage::createWindow(QWebPage::WebWindowType) +{ + TRACE_OBJ + HelpPage *newPage = static_cast(OpenPagesManager::instance() + ->createBlankPage()->page()); + newPage->closeNewTabIfNeeded = closeNewTabIfNeeded; + closeNewTabIfNeeded = false; + return newPage; +} + +void HelpPage::triggerAction(WebAction action, bool checked) +{ + TRACE_OBJ + switch (action) { + case OpenLinkInNewWindow: + closeNewTabIfNeeded = true; + Q_FALLTHROUGH(); + default: + QWebPage::triggerAction(action, checked); + break; + } + +#if QT_CONFIG(clipboard) + if (action == CopyLinkToClipboard || action == CopyImageUrlToClipboard) { + const QString link = QApplication::clipboard()->text(); + QApplication::clipboard()->setText(HelpEngineWrapper::instance().findFile(link).toString()); + } +#endif +} + +bool HelpPage::acceptNavigationRequest(QWebFrame *, + const QNetworkRequest &request, QWebPage::NavigationType type) +{ + TRACE_OBJ + const bool closeNewTab = closeNewTabIfNeeded; + closeNewTabIfNeeded = false; + + const QUrl &url = request.url(); + if (HelpViewer::launchWithExternalApp(url)) { + if (closeNewTab) + QMetaObject::invokeMethod(OpenPagesManager::instance(), "closeCurrentPage"); + return false; + } + + if (type == QWebPage::NavigationTypeLinkClicked + && (m_keyboardModifiers & Qt::ControlModifier + || m_pressedButtons == Qt::MiddleButton)) { + m_pressedButtons = Qt::NoButton; + m_keyboardModifiers = Qt::NoModifier; + OpenPagesManager::instance()->createPage(url); + return false; + } + + m_loadingUrl = url; // because of async page loading, we will hit some kind + // of race condition while using a remote command, like a combination of + // SetSource; SyncContent. SetSource would be called and SyncContents shortly + // afterwards, but the page might not have finished loading and the old url + // would be returned. + return true; +} + +// -- HelpViewerImpl + +HelpViewerImpl::HelpViewerImpl(qreal zoom, QWidget *parent) + : QWebView(parent) + , d(new HelpViewerImplPrivate) +{ + TRACE_OBJ + setAcceptDrops(false); + settings()->setAttribute(QWebSettings::JavaEnabled, false); + settings()->setAttribute(QWebSettings::PluginsEnabled, false); + + setPage(new HelpPage(this)); + page()->setNetworkAccessManager(HelpBrowserSupport::createNetworkAccessManager(this)); + + QAction* action = pageAction(QWebPage::OpenLinkInNewWindow); + action->setText(tr("Open Link in New Page")); + + pageAction(QWebPage::DownloadLinkToDisk)->setVisible(false); + pageAction(QWebPage::DownloadImageToDisk)->setVisible(false); + pageAction(QWebPage::OpenImageInNewWindow)->setVisible(false); + + connect(pageAction(QWebPage::Copy), SIGNAL(changed()), this, + SLOT(actionChanged())); + connect(pageAction(QWebPage::Back), SIGNAL(changed()), this, + SLOT(actionChanged())); + connect(pageAction(QWebPage::Forward), SIGNAL(changed()), this, + SLOT(actionChanged())); + connect(page(), &QWebPage::linkHovered, this, + [this] (const QString &link, const QString &, const QString &) { + emit this->highlighted(QUrl(link)); + }); + connect(this, SIGNAL(urlChanged(QUrl)), this, SIGNAL(sourceChanged(QUrl))); + connect(this, SIGNAL(loadStarted()), this, SLOT(setLoadStarted())); + connect(this, SIGNAL(loadFinished(bool)), this, SLOT(setLoadFinished(bool))); + connect(this, SIGNAL(titleChanged(QString)), this, SIGNAL(titleChanged())); + connect(page(), SIGNAL(printRequested(QWebFrame*)), this, SIGNAL(printRequested())); + + setFont(viewerFont()); + setZoomFactor(d->webDpiRatio * (zoom == 0.0 ? 1.0 : zoom)); +} + +QFont HelpViewerImpl::viewerFont() const +{ + TRACE_OBJ + if (HelpEngineWrapper::instance().usesBrowserFont()) + return HelpEngineWrapper::instance().browserFont(); + + QWebSettings *webSettings = QWebSettings::globalSettings(); + return QFont(webSettings->fontFamily(QWebSettings::StandardFont), + webSettings->fontSize(QWebSettings::DefaultFontSize)); +} + +void HelpViewerImpl::setViewerFont(const QFont &font) +{ + TRACE_OBJ + QWebSettings *webSettings = settings(); + webSettings->setFontFamily(QWebSettings::StandardFont, font.family()); + webSettings->setFontSize(QWebSettings::DefaultFontSize, font.pointSize()); +} + +void HelpViewerImpl::scaleUp() +{ + TRACE_OBJ + setZoomFactor(zoomFactor() + 0.1); +} + +void HelpViewerImpl::scaleDown() +{ + TRACE_OBJ + setZoomFactor(qMax(0.0, zoomFactor() - 0.1)); +} + +void HelpViewerImpl::resetScale() +{ + TRACE_OBJ + setZoomFactor(d->webDpiRatio); +} + +qreal HelpViewerImpl::scale() const +{ + TRACE_OBJ + return zoomFactor() / d->webDpiRatio; +} + +QString HelpViewerImpl::title() const +{ + TRACE_OBJ + return QWebView::title(); +} + +void HelpViewerImpl::setTitle(const QString &title) +{ + TRACE_OBJ + Q_UNUSED(title); +} + +QUrl HelpViewerImpl::source() const +{ + TRACE_OBJ + HelpPage *currentPage = static_cast (page()); + if (currentPage && !d->m_loadFinished) { + // see HelpPage::acceptNavigationRequest(...) + return currentPage->m_loadingUrl; + } + return url(); +} + +void HelpViewerImpl::setSource(const QUrl &url) +{ + TRACE_OBJ + load(url.toString() == QLatin1String("help") ? LocalHelpFile : url); +} + +QString HelpViewerImpl::selectedText() const +{ + TRACE_OBJ + return QWebView::selectedText(); +} + +bool HelpViewerImpl::isForwardAvailable() const +{ + TRACE_OBJ + return pageAction(QWebPage::Forward)->isEnabled(); +} + +bool HelpViewerImpl::isBackwardAvailable() const +{ + TRACE_OBJ + return pageAction(QWebPage::Back)->isEnabled(); +} + +bool HelpViewerImpl::findText(const QString &text, HelpViewer::FindFlags flags, bool incremental, + bool fromSearch) +{ + TRACE_OBJ + Q_UNUSED(incremental); Q_UNUSED(fromSearch); + QWebPage::FindFlags options = QWebPage::FindWrapsAroundDocument; + if (flags & HelpViewer::FindBackward) + options |= QWebPage::FindBackward; + if (flags & HelpViewer::FindCaseSensitively) + options |= QWebPage::FindCaseSensitively; + + bool found = QWebView::findText(text, options); + options = QWebPage::HighlightAllOccurrences; + QWebView::findText(QString(), options); // clear first + QWebView::findText(text, options); // force highlighting of all other matches + return found; +} + +// -- public slots + +#if QT_CONFIG(clipboard) +void HelpViewerImpl::copy() +{ + TRACE_OBJ + triggerPageAction(QWebPage::Copy); +} +#endif + +void HelpViewerImpl::forward() +{ + TRACE_OBJ + QWebView::forward(); +} + +void HelpViewerImpl::backward() +{ + TRACE_OBJ + back(); +} + +// -- protected + +void HelpViewerImpl::keyPressEvent(QKeyEvent *e) +{ + TRACE_OBJ + // TODO: remove this once we support multiple keysequences per command +#if QT_CONFIG(clipboard) + if (e->key() == Qt::Key_Insert && e->modifiers() == Qt::CTRL) { + if (!selectedText().isEmpty()) + copy(); + } +#endif + QWebView::keyPressEvent(e); +} + +void HelpViewerImpl::wheelEvent(QWheelEvent *event) +{ + TRACE_OBJ + if (event->modifiers()& Qt::ControlModifier) { + event->accept(); + event->delta() > 0 ? scaleUp() : scaleDown(); + } else { + QWebView::wheelEvent(event); + } +} + +void HelpViewerImpl::mousePressEvent(QMouseEvent *event) +{ + TRACE_OBJ +#ifdef Q_OS_LINUX + if (handleForwardBackwardMouseButtons(event)) + return; +#endif + + if (HelpPage *currentPage = static_cast (page())) { + currentPage->m_pressedButtons = event->buttons(); + currentPage->m_keyboardModifiers = event->modifiers(); + } + + QWebView::mousePressEvent(event); +} + +void HelpViewerImpl::mouseReleaseEvent(QMouseEvent *event) +{ + TRACE_OBJ +#ifndef Q_OS_LINUX + if (handleForwardBackwardMouseButtons(event)) + return; +#endif + + QWebView::mouseReleaseEvent(event); +} + +// -- private slots + +void HelpViewerImpl::actionChanged() +{ + TRACE_OBJ + QAction *a = qobject_cast(sender()); + if (a == pageAction(QWebPage::Copy)) + emit copyAvailable(a->isEnabled()); + else if (a == pageAction(QWebPage::Back)) + emit backwardAvailable(a->isEnabled()); + else if (a == pageAction(QWebPage::Forward)) + emit forwardAvailable(a->isEnabled()); +} + +// -- private + +bool HelpViewerImpl::eventFilter(QObject *obj, QEvent *event) +{ + TRACE_OBJ + return QWebView::eventFilter(obj, event); +} + +void HelpViewerImpl::contextMenuEvent(QContextMenuEvent *event) +{ + TRACE_OBJ + QWebView::contextMenuEvent(event); +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/images/assistant-128.png b/src/assistant/assistant/images/assistant-128.png new file mode 100644 index 0000000000000000000000000000000000000000..62c66ed8f5d0466b73d2c3ab84ac46b3554cb87b GIT binary patch literal 4118 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 literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/assistant.png b/src/assistant/assistant/images/assistant.png new file mode 100644 index 0000000000000000000000000000000000000000..6f124afb68b5a30ff47dccc5928e58808cc00aa1 GIT binary patch literal 586 zcmV-Q0=4~#P)nalm5tSwlG>Y`+@zf4q@mrZq~5Ej>9DEbu&U^>tl_e)>9nuo zwzcNFy6wTe?!&<8#m4N*#_-F??aj;a&&~4D(ec#M@zvAx*VXmd+4I}m_1)a{-`)1$ z;P&F-_vGXF<#tKW1ONa48gx=lQviT~gM{em`1tz!`}_O*{r&y@{{H^{{{H^8sglV6 z007QOL_t(I%VS^|Mu15JDIVnuI!9UIP#`5GY!d0AX&&W@Q-PFql#QTq zD3T-46ezfd8Au8EAvpp~fofoYnv}Fdl%*sN1$q%tU|`RwB7s$bb(EK_t*uLhuaXp( zxCEvGdAA5dAf@OXq79_@xz*7XfSn*ECF>Mr3g*kOv!Z(w9WWD6z{r4K0bHJeko+(J Y0F(7f`b+svTL1t607*qoM6N<$f-O-P<^TWy literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/bookmark.png b/src/assistant/assistant/images/bookmark.png new file mode 100644 index 0000000000000000000000000000000000000000..57e57e343ba5e5d710fe01b1720d06aacf97863d GIT binary patch literal 1266 zcmV9LGP;bIv_?=gzz9Hg=ornwyDknlIqOG7U@{NwlUSE{H~u{$pfNP+;XBL4Opa zMSp1Z&nk^dH;sB$B=92T7F%78$72U-7F9OjK{~fq-u%k2VfeHgdniaGA(?~`V}>gs5=G_0;CjVJeJH4!rdbjjz%j==~g5>+3f5+ z_mX8>1sRZr41`4vN$yZmf?pa*t z^z^vR|2{xP^c6~4o;RK4ti$d-h7dQ-$;7setbQ&USXiA}(NrUq<0z8 zX`FJKy8!MayZ7F8I_<0n7Okag@0(OS-9czY9n$_50Ac8quPjC@D`)V_@6_&#^LBiF z=Gdj&0Jv92cbmJ$t+t(A8{KPPK11rCcFc;!^nU&Uk(UL*RrO$}@jpBlB@LoqZRh7d zA52aO4&|Mx7t1I3Xw`EBpfufqaGKuUslWCUOnr=h{%o*;d56Ka;Q z>M8u#)RTIn{?cbVdUGcrLDxWe0gw`VBrw z#iJ2Y)!QhWyKwZQRw<+=FrV2(3=A-+X9e`lZ1faoTaFRUr@0A0Qmv`EuUkZaaKXuG_sN& zp5t+rcL2pWNg%u(fo0jGrQm+bvTScNpp;5~(%52K$`&3o@f4(?YnHNA+5-TkrFjEe c0F!ane_O^9CT!(x-T(jq07*qoM6N<$f&(L63;+NC literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/closebutton.png b/src/assistant/assistant/images/closebutton.png new file mode 100644 index 0000000000000000000000000000000000000000..c978cf51aaaf35cf4bf3939f3ba84eabce4837e8 GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X4tcsbhE&{2`t$$4J+o>fLX@$qy77icq|D82#~o@UI%FGnFq~Btbdcdaa=qb)lAid10!D#+w<1rL zDfjt~$HiDfH1;xhQs(E8f(+8UPL^fe26Q#y3@m>q6Nw5LgI ja}!UN`EZ9rAc4W4K;+!fY<(x7Zx}pX{an^LB{Ts5`G;qN literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/darkclosebutton.png b/src/assistant/assistant/images/darkclosebutton.png new file mode 100644 index 0000000000000000000000000000000000000000..147a954bea1b8f787341a145861ac200bbb23f2b GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf63O!vMLp07OXCxfpmt3*TVOt}o zs}pBvW6t4QZAvPtg1pkwK7qa(88>*sg&0$|n{QaSn{gS7tJKwr3aXO>mtL$j6x7(e zq>*{LxnrBYa}oC}rWtoxS9o0j${b;0)%2jm&8H3-zI#tFG0dx&l_O^R R;|S1l22WQ%mvv4FO#q9hI5+?R literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/mac/addtab.png b/src/assistant/assistant/images/mac/addtab.png new file mode 100644 index 0000000000000000000000000000000000000000..20928fb402aab20c838fca4dae2e9c1db2c54373 GIT binary patch literal 469 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf_5hy{*Z=?jtE;Q)=;&BlTH4v$ z+1uL#*}A&A4h{~Ej*i;e+Q!Dlc6N3yF0McT6t}Xn0*ZThco-QOnVXxtySsaOdg|-z z12sB1IeB<^dU$%8nVETcc?ARnL`Fse&G+;31F8uM3i9#s@%8luni&`vsHUa{RO9dO z4>ZKW!otSJ251Y=5Qx1lE-oP
m=+Kue>eqhn%XQc_Y$h0zd zv@G^}^vs0uM)=2?=VyNY)?8=S@N!}tt6}iRMUO=eSShUw+`_gYuqoRqm*I>{!9DpI z{J)D8(iqy@T&)uQN|u}vaLAUd^Dy$>)qYy6?pNK6lbfbQzW5%vF=nwme{Kx-)^8d6 gZl60Y`{y%j_;1m)-KBXCflg=eboFyt=akR{0MYZR8~^|S literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/mac/book.png b/src/assistant/assistant/images/mac/book.png new file mode 100644 index 0000000000000000000000000000000000000000..7a3204c8704510001cda048891b43202e5608353 GIT binary patch literal 1477 zcmV;$1v>hPP)q2?EG7l|u?uv&+wJb`%<(@bC-nrT*^<=oB)^{1 z>DfHbod5agGR`?3r!+if8CXFv5@c8L-~>47Kbrw2#B}*WeqtN(4)H3{LFhC(Y1&>BSQ#PVA+&!!%6|q(~%E z3t%l_%2GJ8tsa0px&U;0`Ac*nmP)18_4oH5OeT|Ux~@YN{mx{--Ng4qg>bwAsK)KC z@%i)TkM#ETZgm_7+~Ket8*bmWZIntS6pKYnPfr^?Jv}}WmeTd>*N;4-F0Rfz$8jK6qo_8Mh>g=R=FIdw-XGpnPj2%)!Om3Mw`#l?p7&qPH)j zSeVCLE{B){!I zF}C`%xAyF)R2+mmwn5#pV6x#5b#q)CQ6f~8TxWsSZVJNi-s?NN$*ak$1mP#5W{YJr zXpt5u2d7sMQHJGSWHmK4aLg!54nwjn+6kc1D?lXdXK@QYL=zhxI4}4^J%;7WG))9z z36!}HHHH%h5cN6-RvCqU3PvzC??#9}eTUC2BhkBb1b5XE-XYZ_qKR=w+~257Q! z*_he54rkAv6*Z#}i^w}c^vjlog+2KaIp;8R1AfylrkxPmk6L$}psTA3 zfu{9zB+tYioPpKp(V?Ijs)6(O$6^72b8zJ(6Ozvi3Sv1N`Bj^dFBDOC`!}&VGzRFJ z1|M~pu7PVniCPOlk)DkWg~0Mzl!}F*>!}97_$)`|ejYl@V+jd^fB}RIhJXgJ*_#NF z%bb-*!3O3l0Of+t+_AE7vUMd3i=cE>1B|Xt?YcENoryt;bMaxOo(Y=9m`?}p-}%eb zi?i@ejKi{loCR2B9U^PimZTkL%6fsEJh$)Hfkac|U8H{)RRjF``L`GTC+ng~{6s*s zgdD3A?9j`*j*R?xrBP%5hTHtiv*TZUci}7L|GqL&k!?w0$-hk!ql@)bA!*V$Myw$= z5h-Fj(Mud4j=r!xb@|O#_KY7oxOaT_bE(S!J|uP%&l5X|t;Ewr7m*;sgpbfvKLd}h zIb!(APrr;Sw_1j{M>s3>&B&3{XUQqlHz@z>mK-KRBoWvLtZ=lRZS(>W>m{$M=TbV^m_8m@IP6;?+E3M^W>=l4} f29d2aSA~B7Fld^U-BB|&00000NkvXXu0mjfat*vm literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/mac/closetab.png b/src/assistant/assistant/images/mac/closetab.png new file mode 100644 index 0000000000000000000000000000000000000000..ab9d669eeebed9718363bd06ba84fdfd9e7cd6b5 GIT binary patch literal 516 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf)c~Im*Z=?jtE;Q)=;&BlTH4uz z0FbS#tLxz4;OOY6t*vcrY;0#|=i=((>goy*VC*;Rym}W@bPVXt_v{4bWI$Utd2zKcFE%#ZggFv9Yla9z1yT z=+WcHkDoq$`uzEGpmovF(ca$PK*OD#o#W!-l9G~KTwJoUva++Yi;Iif+uLW(oH={; z>^XDh+`D%V=rEugfYybCgoK8MIyyQW>XKdu^q_o6kY6x^2?(SEK?4XJ0D-GluU>l# z0v|tqT5?z%sC2)li(`m{WbVQ1Vh0^WST8Itzqt7R8J}4qF1|`02mjX#o&J=O|6qPh ztW^KfDn9$C2OYoKd^ON`yn53GBWDif%VMH6PulHvw?8kgNdITRzaVjwbgtfX-n%ny zGF%9px6S#suI0Djmkcuuyx+tsmFw%6F&c<|%X}`hbN6K3WemISa9w+1v4v0P9_xiG z^5I>frpsPC=QC;a^n{j}#2?Q{?cw^dLN8eNq0PlhsiN_wkryqmi|%ZjpS0V4_V*~& bKcCs&oRdi2E+elG^a_KgtDnm{r-UW|i^$5o literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/mac/editcopy.png b/src/assistant/assistant/images/mac/editcopy.png new file mode 100644 index 0000000000000000000000000000000000000000..f551364464a7f4500a2660fd3aa450e79010b0cb GIT binary patch literal 1468 zcmV;t1w;CYP)j91nuo^rMU``FpK}lmcH2BoZ zAH4JCyEWmjwMzgT#=uOCdmd7JuO$v)s8lK_84mKr3f?+?`0VR1?tg<)*HQ}J{^;_d zx+S0Y_4P-WQtN}){+tE#xOPNB3Z5T~fVOJdJdnQKmA@NUp8wZ z?$zp{)J%XNrjyRSus42A?Cl?jb<@afrs%r1WnkxaM7vZ3@+)At< zl`TV!sF2PwGTtu5AKvyjs4rA-qt%${9h(@D41&{(T zn8XDH>P|Q8whCx0La*w<^E@zO22eD33b<_!Q`>H{03sKo>$;F2@wvzODg1sK81Se7 zXg2VlTtfnRF4nRvL9>8>%_G3Q_jpaTF#^JSA{Ha<@i)NsIHARWyv9?(=O$}&1Ssr8 zEDDn5bPZisMnMBy1?bt#Jx4g$#%n0TPNX!_qa+0JbW~kLfJ9nCPGg4pF{+ML3+gaHLO^`>>3d5AaWOXXLDedCV3tU)P&1)oPTCjX*K5}0@QqH zO(G~76n^TCB#t^`Ik$*k#>bF(lmH~zwB+suqqLR=5F{VyIR3p>h-svrPjk~WiIfCT zL!y!I&5m8e$d!l4mh?p>q)stJ7Fjj8$jsFE%#H5~03raG4_Dc!$cT(gi@c~ zLseB0#6L51ows7ID$$1^8eBO$E%%%;5Jcm#~)CE0Jxx)4}dz+2FRW35VI&O1b5c ztKVJ_qymyagMj8jXkHb6&l~<30XPL<7Qj^iH-Gr@Oj@d$Ao7XPguGq^8idrf;(q`V WtAfH(WC6_p0000TU8fuOnJz9Z;7>&l9T#6`) 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 literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/mac/next.png b/src/assistant/assistant/images/mac/next.png new file mode 100644 index 0000000000000000000000000000000000000000..a585cab80c1435972d12fc8e4eabb631a116101f GIT binary patch literal 1310 zcma)4X;6~~5Dg%T)Qd9$R-hn=L5fhWihvMK6@dUzTMJf8y(!REKnFiFaw7t{B5HkXuoebvA_CZiws;@&-$dk8lW%nTu1kM|c^mq~ z5pR?4W^!v@4_Y1hUc!7nna3x&jii5kR%NrSu$HV9$vmSoSbMns?88JA$!{fvV$v_} zkaN(E0s)y?M*6ZceWFt9L<2&}pl?jNjceF(A?XpZOV~E(y)lJu_ep7kRwb)wB3A`} zStshR7fap4cN$qb>^;)3hE2HmeNo>g6^f*8%pD8NmhjHVjOljl-9^rRTjm*CRkg^B z=yvtuLG21RCvfc{k{i)G2LD_nRw1PkiKmdE%ZseTB$sTlHhtE;8DA05nZUmyaD87Kq798&c_h;0}&@&2=0{5oS zJ&INZu8c!9g+@7^zQD{2@CP8jjYA?#K7&ew+;+%rL;VyZ_c8GlqG6mFf~`AV-~Pb2 zF_A2qB3)N!mVuGJrSa^As}1KQQ7iox%-1vez!XZ7@!28erw=$I$=M8mK83z}()R-RKpl@PlFv}}GxoukWdtV)A zM&0#CYjwxgJB3M+N{PE6OaDRtuIG*lO@gcB-+O~i9j!BqS1hJmi_T~g;@E5!>)M4z zs+eKY#d$n7snIYr491Zi`_=_zWX|SsntfKfx*iytUNgPe;d52Hr1S5nw6xD|l?vs> z6RVtrjOG5{Wvc#5WAJz`p3Xh7MYdP^(y7U*f`*}Tm7gRdb)#;huf5=qaYf5kW%Tr= zhuJQ}{mwF}bl7_QJhh(O3?d*t$=uvDBYuDA+~}p`h}g<8IXjfO`}vIC4>m(*^HVQb zXm*EG)buVgv64IO>l=_ui%RI*AC$(6JIakCBJP%y@f?zqT?Q`wDmV1vRK^8HhFlIC zD)Dk>tahwmk4i&+DPSG7+CR%Z*Wkydnig?aNY>hIrDfb|{kDdS_H-+A{fK2RU*0tB zYaKB%Hy@R@>)sFZFf%jru$>qB(M6}G=H?YmQ908am;sWsloSc$S)O2ysqblJ0Kw;1 c={cR&`R7T_c+c>)8tpgH!h<83qQFGX|LB5QfdBvi literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/mac/previous.png b/src/assistant/assistant/images/mac/previous.png new file mode 100644 index 0000000000000000000000000000000000000000..612fb34dced693312ee764ee325acaea71c45766 GIT binary patch literal 1080 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 RY-0cb002ovPDHLkV1oVh`pp0U literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/mac/resetzoom.png b/src/assistant/assistant/images/mac/resetzoom.png new file mode 100644 index 0000000000000000000000000000000000000000..759b38296822035df02c13f7ffd9af933409833a GIT binary patch literal 1567 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 literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/mac/zoomin.png b/src/assistant/assistant/images/mac/zoomin.png new file mode 100644 index 0000000000000000000000000000000000000000..d46f5aff0d9810d21bc98be02776e843b2db7ee9 GIT binary patch literal 1696 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 IM6N<$f`v>W)&Kwi literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/win/addtab.png b/src/assistant/assistant/images/win/addtab.png new file mode 100644 index 0000000000000000000000000000000000000000..4bb0feb92de9f88761f560e604240427f9d773d5 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}a)3{W>;M1%8M00S5s+cleN3I3E;hErz1@4~{}g2n?Z4LdlsNbIbM*R8c~WkF&G&X`Zg79C zkd^n+vs1&0mWjJqMz%A&c%zcclxlvSamW2Nrxwh$XKAq5b6Jw-knk+&2*xmlIo1d2 z+L%rpWia6AdseIwd+CZJNNHUCL|*bkSK|t+Pw-z^1@61g@yekOHXmP{IVCrZ3~xFKL|H+A zMtt!i1LCtzY03%^;M)_3=izMWrSIj}cD_0A)LVmV6Hih{ektE;XMr+phobIC8|Ca;!UL1ZCYk*l*=IX8JlzW(Nj%q`?)B@-7HKcW#ZVg^7-q* z5AV3hp2wDTJxiN4Gn9PDXBWxm=E!BPlUtZ!K6!;p7tWDOCs|2L$YL&;B+#6}u-E|% zHZ)L*XfZnl#86cb5frtE4=@rBO@amIPew8*%?~e`jCnc?`mE%*sV7JhPEB&(XiW$+rAwD+it>f972wZ zW4TziO>GW#t%h6|fbsEhcJKa}g9k^Lo}OmIzyOK$UBn(9!m_%Ecdm)_#DarBOTbXo zZp(_2@nWPFgiYKN}l6eSKk(tyLeN z+rSqjWMU3I(*1m@oQPsrL^}%1%qD*rJ)fPhn$Swn0KzR=qc5jen40AxaOU=j0BeB& zAT*M#>sdY2@4j!Ef!NqoZu00K)eFFHz$L)oP8!Gn+57(JE2T`JA8>)oA~MZ=c;J5( bng{G}W!lqy1LmiU00000NkvXXu0mjf$HfGj literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/win/closetab.png b/src/assistant/assistant/images/win/closetab.png new file mode 100644 index 0000000000000000000000000000000000000000..ef9e02086c67814fd00c89620fd0d981b997e6cc GIT binary patch literal 375 zcmV--0f_#IP)fruJ3jc8<|8pe&b0zCL@6z2E5pzd+(iAlUs$!iqI4S^6p4AC9Nf@vzUPSy(P~ z1SuhEk+Uxp0002ovPDHLkV1ikVxH|v< literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/win/editcopy.png b/src/assistant/assistant/images/win/editcopy.png new file mode 100644 index 0000000000000000000000000000000000000000..1121b47d8b6b48f6cdf525851e7c0f502454ffe1 GIT binary patch literal 1325 zcmV+|1=9M7P)+{buk{F=nCJX#i^AQGtBfP^U9E=s!&EKn3+*9AyOC5y5_m4HQB2~pH` zRYX%2)m58>DgqW&sAx;EBU4=37{7w!SM2eOJs!`@eVlXtjqY3tTS5?(-{yaHb@l)B zec!pdSBVIB!=;~|e%P7xymRJ$5osgh_&4efy`JyCUMhx9Kk}ogMRI&{UihAR)H(VP z5`ixu00_b{5e5q-zVY>M|NPMBA38(Y-oZLchI61bL7|V$#mUE~-@NcRpbiK;|6O(N zfk%J%Y@t+fHjUDudrucpC_qYs_XMTNy?z?C^q*foM`|MO`|`smOlCq5Y$|AffYRZk z1m#2g^824X`-5laF9IMU{OT;%tWD%U5hqqQHn+rzNOfaXUit9}xpwhevNrpY)K=e+ z>e6d6H~pftTia5-{gJHQcvaqe>5RPb)EA!+5j21}j7vL!fJ7h$Fxhq7s2$=XbQ*apq!syTR7h7DJ;ak=_$L@YoY5qR0x4qnI>JyURTfv?kuG)9hFQ(Bzig%{x2T0Vw))rZsUuJTqc?}RB zayzmI$t>XKE_%9=#B-p^;FY>ji9xH7Anaju4o)p z9%uqB5oz!1paas%Pl^wu;12>?@7Wcg0d(Zx zhlqm$W(R^Xh!-Io1+@po6A*q0JdbvDCs~`i(%Gx6@WB#qEmxCq5xK#C!6ygR1K}{F z4Jh9Og<%N$=~Oqu`pG7hW&{7(U;2z<{$co^Ef>^0+f z`TE<9*>|q)G;S}O%acqlZ1T6YZ9d*=aWjvj1$6F8Kzppmtr|VSaptG4)aU>DhsN&h zS#$oPdv2-51h5X&^WrRbO)e0I{N~r^&-Nf3pIBgF>R(LU+~oac!W>Y~iu;rt_-#>2 jRe%!E1{&Go|C3Ju!Z7S4^>URZ00000NkvXXu0mjfFDrHZ literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/win/find.png b/src/assistant/assistant/images/win/find.png new file mode 100644 index 0000000000000000000000000000000000000000..6ea35e930d2f298790f19ce5e90cb006f925950f GIT binary patch literal 1944 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 Oxk5v@!FK{vM1KR8n#>9S literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/win/previous.png b/src/assistant/assistant/images/win/previous.png new file mode 100644 index 0000000000000000000000000000000000000000..0780bc23dd90aa90276b7fb9c7b3ac66dd47d701 GIT binary patch literal 898 zcmV-|1AY97P)c2lV=3YBRkqxxVMa%Q@+3*It9(8@r(B&pozCk>dB#bIx;~_Zc7}{7vA$ z6x>LJB>-SI;{sVc?71Efw{E9+s6@fwLz1~OCXgjSOi4UE(!DAfDa{DzjtGPkBv?u~ z*esy%sFFB%JltL}I@VRi$}jl$?DT_V3il#r+a#dyLlj;))F@%FDIFPwgq5fH>vs4; zDuu7MNnlxd6(Utf%mrITTD|Up))) zIaTt~AF(coo`oW|okD%bO=DgZv{3kV!fi?c&3Rd$QvMZtiV&52#0D1%qVRe!Q@fn- zG*h<VQ8iBU4;9T0`XB0UONejFCB0QT*)y|GM|cA)a*t4;DPwok)RfJY({(+g7|(nV&^_YZ7S-!%6>~= zPt4B?a*c*nZp-Q?JA}2IzPn!&%b4-RlsR_S4#DR|w478{ws{|H_1Gib3 zLJ*Hj2Ba(w&}#d)A)`IRmS*w$Xlgp8u}&Ik+&oQDEKd{72booyJVCM`LkI;l^D2gu zd`m`#D!P*$qzhOBS*|>Yc5?=y3lGBSw*sribTUc$LCC*y9MtUhD%0plHCui$h&##W z>Dd;-lUPP9vihJ+)~@UbkZ_XW{(FYIxuLy+4dVjtUF0~`-C*6VWT_-=KV(wx8_Lo* zYPWhrB7Ns=^V@V{C4^t_dJxek-_ja~8N1OeBkaVDBC(j;(CMzuKfA~&)FQL{=l?2x Y0Ke*zApqF`eEV2><{9 literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/win/print.png b/src/assistant/assistant/images/win/print.png new file mode 100644 index 0000000000000000000000000000000000000000..ba7c02dc18d3145ffc2565afd7761cf8d3bbea99 GIT binary patch literal 1456 zcmV;h1yA~kP)b-8&)Yht(3npj! zhVZz-1RFN&M_Jjs*iyCsr1Br})rl5`9!vdS1b~`S#iy$JW0wVxgL2xnlvejVftS)` zTKUc6;s?zyOrQ~b4PSpzcWVZ4(}_)5%DYZrOq#!QQ`PI0w4^^aL2|-VFePLo-nasN z*IK{-{nt6Te1OXfI6O;fodf8H!d2_Ev=sjnEGa1o(b3Tl5_n}VWUm)KAEByLKX9faxzp;q-{ z>lTYhucS2H_>FX@YA5Z$@Dy-s3>f$m7#f)`>;2jfo|YtOx5wjoB=}+neBJL?ffbTv zfBCMO^w=tAkqc_N@rAcvg)IH?>4}DuF+}ni$veda50xlz zt)=B6k$96%pJo?^z%^$>&$TW{BVO2LH-dO3l7yfjEpFY8fW?x5LqQUtv$GSD+YMuEJR-uvpwVhzFlgX$`>|^E zYT=ym@o{8iWMoD}L`)w#bf|zJuiZyLz(v{F*tvNb6ir(H{*zI;Y z9>eg^5T>j%h>M9sFx0ezpyPT40fGFLmzP(>a-2DHMgV4IWg#UcMF21vcf&dl5fBrz zG=bHeW$;rtmDJc;eGYPwgH7zbKMpsuC1_lPi z@L49UR*NulRBmoAmM>q9=*Va|Jr1axufdtDLX&dtewzjd2S>6L9I>&nsHv&J;NT#- zySvfQ&>$+0i;EL!GMT`|Fahh&UG(()f>RBr@KQ+y;*yQ9OE&*P2Z|sd879u3KaVwQ z)+{oor>6@bzSi8_LNaL(85t?&Fg-nqt5>fIx!k-*$N*KZR3b4kQMhl}GK-Ps6CzB* zn~Z%;>pIfBv97Kzk%t}FfNaML7cK~Cbh;26Ir0e&+$Dycl9Gyqghb@$=cA&cf|Y<@ z@gpxc&)(P9_dG$|6d*jrdnBtZDk@T1T3QxAlQa*dz5Sxn)^#{D?mf0*?u}E%yICkwE#w=FOWGvZK<`(V-kXctBaZ_E}}e zj#}mD(JPA0HV@p`*r<>h=zE7BDc_+q-}kl)5Cpb=AlNAs>*>{SgEkw#4y}~mQNCv~ zrMGY2{-#1Zm|q8tl+_CrKNyc9V3*tznV810(ObefUr=KNDeN(*ygw7St@o4KG#Yl*=aaWttW8qnEgBAePYusBkfjQLUK z*ESZNQaeg3M5%-3A{vmk(w1InXKhO(=rD7bfn}E%vnsF8lidAmi^l!go18TF?R}ne zpYxt`FNgDgUW))yg+j4gDwTfA<#NA->z#lyfDEt%zUF&C;N?) zX6v~GOhc?T+kKTvWr4b)xsWVES@6lR`Ifyk4?fuQb)?{sIkvuqdbGL2Ni-d&@CqtV2mz6!7y@NzPOPeGa~JW$#0 zx{;iNZ3C$YmQ%O8_x8}iP$)#STJ1E{HvsqmUNQnbSn&zEMN)f$e*0)=e=36a`zJ20 z>-udV5{V$e6R1B15CG;UBlyhc^G%@@6<--gmY(>vPjKqSpuqOmpzu877IreO?DNbu zk)3f$2mkIYa8BB5T(RMBI84-PHBN8lUcHQ6@9f(8|O-)Ti zEEe}e{nm76umt0e2}NhLboa(9TCaq2T86J?nZ~`D=1IS>W6GURO;Fgpiw-?>I-NwR zRK_zhGR{E#%5*M5|H?4_m{1%YeU4T{x8Q-I<|s=b98F;Jif!9w<#PE9)O7(cY?5?o z#w4!6_+vsbL^usv5#53Zio_@j+!L3{WK3aUAt_lQnE8DDJNKb>7n^8KswwcDQiSox zgkp%$=V(QA3mzzH4zir)@pzt9?`A!&S(`(C+)+SkH;Kp5jdLXtvGK2BLv)O_Vl{i9 zAHBrkxL0N_WGX*=i!^?mM@&^K$o{R%$L2~hkA1f+X5ArReJ)_HabE%?1FN&&V05bm zKFNW zMUr-v==HI+`EO$L?SR)_^fz3@%A)=+nkQXP0rWafTE>Nr&;S4c07*qoM6N<$f(f4} Ay8r+H literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/win/synctoc.png b/src/assistant/assistant/images/win/synctoc.png new file mode 100644 index 0000000000000000000000000000000000000000..da301bc59997c41db412bcc476afd63fdcf7af89 GIT binary patch literal 1235 zcmV;^1T6cBP)1vJX3njr^nz{ag-cLcFF+}grns{;X}m2osfrC6H73T5D{-SM-MC=I#)Z+9 zCZK47Bv#QNgepj*HBi!~LP!BA6k1MC&p9(^=D#?doHVEDX?c>#WWGthXWs8i<`>2o zD)I8Zffk_MvaPK(>(jfOnEjY#iIzk%mY$o*dikuk_nX5@cx~;*B(a~U73rSG`)`}$?y(ka_QsEYJ@}ul$D&jl>mR1IZW~Xu z4X`=e2^g--{uO=HDgsJ7&=i9LuAiVGv4tHCy-|vxvCp|U^BYdW#+hxOxn2OMI;nfdCBJ7>1{gaBA{vgt4iwZl-AR z_%a5>D+!_mk-(Q8F*`xRsiG)7Zp=>*PYYCFQI5u-9nE0pM|8IJa`5yZx7A!_f!50f z2E&)<4zQ4)4<&hY(ESJS=eIShl`%3k64 z_#uQ%v=<;+etZ31!ha&3EO0$Dj#PC3Ym7({EzF?Vux=||o1Tgioxd`KS9Gyrf>M8K zVomJZ{UHFuliv|27p2l`3zU)ss)#lUtrc1KE;XqJ-g)vM9TR&Pn?6O(&(IN$<>~Ej zlaALilbz!5=qCiYNFA&qh<0G1r9di))|%`0CiwpEUiv!rGw}HP^ggmLy2=^9d5+J{ zyhlOZi}s_mS}lPnB?zJvS_n=|et|J?^uni%{`V{08=s}4xtr=l9hdKna_Qz7hOd5$ zWgCPoK!Gu<2v{1CKx>H+0)Zexz~t;%Chwjl`Y9TL5C&lZ0t`{}2%!~LC4nR3o{&yT zYk@Ml)K{!L04xxg@=_!%fn`kP1hHaOPiv<6chAHf?akDQgfB{;hhaGw!Ab-GqL5tB zTF;6Q6GDl_2f~9t1@ued4k|4-hBccAG-a5T$D9EWLP#B$>7ipMKMo}YU?z09OM-HQ x5DriU!~p?VW%n3h1ETD*SdIc*AQMXR{{voRmD`$tY=8g&002ovPDHLkV1la-K^Oo4 literal 0 HcmV?d00001 diff --git a/src/assistant/assistant/images/win/zoomin.png b/src/assistant/assistant/images/win/zoomin.png new file mode 100644 index 0000000000000000000000000000000000000000..2e586fc7bfb6216aec1be411603315d1d0e129d7 GIT binary patch literal 1208 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 +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +IndexWindow::IndexWindow(QWidget *parent) + : QWidget(parent) + , m_searchLineEdit(new QLineEdit) + , m_indexWidget(HelpEngineWrapper::instance().indexWidget()) +{ + TRACE_OBJ + QVBoxLayout *layout = new QVBoxLayout(this); + QLabel *l = new QLabel(tr("&Look for:")); + layout->addWidget(l); + + l->setBuddy(m_searchLineEdit); + m_searchLineEdit->setClearButtonEnabled(true); + connect(m_searchLineEdit, &QLineEdit::textChanged, + this, &IndexWindow::filterIndices); + m_searchLineEdit->installEventFilter(this); + layout->setContentsMargins(4, 4, 4, 4); + layout->addWidget(m_searchLineEdit); + + HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); + m_indexWidget->installEventFilter(this); + connect(helpEngine.indexModel(), &QHelpIndexModel::indexCreationStarted, + this, &IndexWindow::disableSearchLineEdit); + connect(helpEngine.indexModel(), &QHelpIndexModel::indexCreated, + this, &IndexWindow::enableSearchLineEdit); + connect(m_indexWidget, &QHelpIndexWidget::documentActivated, + this, [this](const QHelpLink &link) { + emit linkActivated(link.url); + }); + connect(m_indexWidget, &QHelpIndexWidget::documentsActivated, + this, &IndexWindow::documentsActivated); + connect(m_searchLineEdit, &QLineEdit::returnPressed, + m_indexWidget, &QHelpIndexWidget::activateCurrentItem); + layout->addWidget(m_indexWidget); + + m_indexWidget->viewport()->installEventFilter(this); +} + +IndexWindow::~IndexWindow() +{ + TRACE_OBJ +} + +void IndexWindow::filterIndices(const QString &filter) +{ + TRACE_OBJ + if (filter.contains(QLatin1Char('*'))) + m_indexWidget->filterIndices(filter, filter); + else + m_indexWidget->filterIndices(filter, QString()); +} + +bool IndexWindow::eventFilter(QObject *obj, QEvent *e) +{ + TRACE_OBJ + if (obj == m_searchLineEdit && e->type() == QEvent::KeyPress) { + QKeyEvent *ke = static_cast(e); + QModelIndex idx = m_indexWidget->currentIndex(); + switch (ke->key()) { + case Qt::Key_Up: + idx = m_indexWidget->model()->index(idx.row()-1, + idx.column(), idx.parent()); + if (idx.isValid()) { + m_indexWidget->setCurrentIndex(idx); + return true; + } + break; + case Qt::Key_Down: + idx = m_indexWidget->model()->index(idx.row() + 1, + idx.column(), idx.parent()); + if (idx.isValid()) { + m_indexWidget->setCurrentIndex(idx); + return true; + } + break; + case Qt::Key_Escape: + emit escapePressed(); + return true; + default: ; // stop complaining + } + } else if (obj == m_indexWidget && e->type() == QEvent::ContextMenu) { + QContextMenuEvent *ctxtEvent = static_cast(e); + QModelIndex idx = m_indexWidget->indexAt(ctxtEvent->pos()); + if (idx.isValid()) { + QMenu menu; + QAction *curTab = menu.addAction(tr("Open Link")); + QAction *newTab = menu.addAction(tr("Open Link in New Tab")); + menu.move(m_indexWidget->mapToGlobal(ctxtEvent->pos())); + + QAction *action = menu.exec(); + if (curTab == action) + m_indexWidget->activateCurrentItem(); + else if (newTab == action) { + open(m_indexWidget, idx); + } + } + } else if (m_indexWidget && obj == m_indexWidget->viewport() + && e->type() == QEvent::MouseButtonRelease) { + QMouseEvent *mouseEvent = static_cast(e); + QModelIndex idx = m_indexWidget->indexAt(mouseEvent->pos()); + if (idx.isValid()) { + Qt::MouseButtons button = mouseEvent->button(); + if (((button == Qt::LeftButton) && (mouseEvent->modifiers() & Qt::ControlModifier)) + || (button == Qt::MiddleButton)) { + open(m_indexWidget, idx); + } + } + } +#ifdef Q_OS_MAC + else if (obj == m_indexWidget && e->type() == QEvent::KeyPress) { + QKeyEvent *ke = static_cast(e); + if (ke->key() == Qt::Key_Return || ke->key() == Qt::Key_Enter) + m_indexWidget->activateCurrentItem(); + } +#endif + return QWidget::eventFilter(obj, e); +} + +void IndexWindow::enableSearchLineEdit() +{ + TRACE_OBJ + m_searchLineEdit->setDisabled(false); + filterIndices(m_searchLineEdit->text()); +} + +void IndexWindow::disableSearchLineEdit() +{ + TRACE_OBJ + m_searchLineEdit->setDisabled(true); +} + +void IndexWindow::setSearchLineEditText(const QString &text) +{ + TRACE_OBJ + m_searchLineEdit->setText(text); +} + +void IndexWindow::focusInEvent(QFocusEvent *e) +{ + TRACE_OBJ + if (e->reason() != Qt::MouseFocusReason) { + m_searchLineEdit->selectAll(); + m_searchLineEdit->setFocus(); + } +} + +void IndexWindow::open(QHelpIndexWidget* indexWidget, const QModelIndex &index) +{ + TRACE_OBJ + QHelpIndexModel *model = qobject_cast(indexWidget->model()); + if (model) { + const QString keyword = model->data(index, Qt::DisplayRole).toString(); + const QList docs = model->helpEngine()->documentsForKeyword(keyword); + + QUrl url; + if (docs.size() > 1) { + TopicChooser tc(this, keyword, docs); + if (tc.exec() == QDialog::Accepted) + url = tc.link(); + } else if (!docs.isEmpty()) { + url = docs.first().url; + } else { + return; + } + + if (!HelpViewer::canOpenPage(url.path())) + CentralWidget::instance()->setSource(url); + else + OpenPagesManager::instance()->createPage(url); + } +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/indexwindow.h b/src/assistant/assistant/indexwindow.h new file mode 100644 index 0000000..dab8e7a --- /dev/null +++ b/src/assistant/assistant/indexwindow.h @@ -0,0 +1,53 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef INDEXWINDOW_H +#define INDEXWINDOW_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QHelpIndexWidget; +class QModelIndex; +struct QHelpLink; + +class IndexWindow : public QWidget +{ + Q_OBJECT + Q_MOC_INCLUDE() + +public: + IndexWindow(QWidget *parent = nullptr); + ~IndexWindow() override; + + void setSearchLineEditText(const QString &text); + QString searchLineEditText() const + { + return m_searchLineEdit->text(); + } + +signals: + void linkActivated(const QUrl &link); + void documentsActivated(const QList &documents, const QString &keyword); + void escapePressed(); + +private slots: + void filterIndices(const QString &filter); + void enableSearchLineEdit(); + void disableSearchLineEdit(); + +private: + bool eventFilter(QObject *obj, QEvent *e) override; + void focusInEvent(QFocusEvent *e) override; + void open(QHelpIndexWidget *indexWidget, const QModelIndex &index); + + QLineEdit *m_searchLineEdit; + QHelpIndexWidget *m_indexWidget; +}; + +QT_END_NAMESPACE + +#endif // INDEXWINDOW_H diff --git a/src/assistant/assistant/main.cpp b/src/assistant/assistant/main.cpp new file mode 100644 index 0000000..b104d75 --- /dev/null +++ b/src/assistant/assistant/main.cpp @@ -0,0 +1,381 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "tracer.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include + +#if defined(BROWSER_QTWEBKIT) +#include +#include +#endif + +#include "../shared/collectionconfiguration.h" +#include "helpenginewrapper.h" +#include "mainwindow.h" +#include "cmdlineparser.h" + +// #define TRACING_REQUESTED + +QT_USE_NAMESPACE + +namespace { + +void +updateLastPagesOnUnregister(QHelpEngineCore& helpEngine, const QString& nsName) +{ + TRACE_OBJ + int lastPage = CollectionConfiguration::lastTabPage(helpEngine); + QStringList currentPages = CollectionConfiguration::lastShownPages(helpEngine); + if (!currentPages.isEmpty()) { + QStringList zoomList = CollectionConfiguration::lastZoomFactors(helpEngine); + while (zoomList.size() < currentPages.size()) + zoomList.append(CollectionConfiguration::DefaultZoomFactor); + + for (int i = currentPages.size(); --i >= 0;) { + if (QUrl(currentPages.at(i)).host() == nsName) { + zoomList.removeAt(i); + currentPages.removeAt(i); + lastPage = (lastPage == (i + 1)) ? 1 : lastPage; + } + } + + CollectionConfiguration::setLastShownPages(helpEngine, currentPages); + CollectionConfiguration::setLastTabPage(helpEngine, lastPage); + CollectionConfiguration::setLastZoomFactors(helpEngine, zoomList); + } +} + +void stripNonexistingDocs(QHelpEngineCore& collection) +{ + TRACE_OBJ + const QStringList &namespaces = collection.registeredDocumentations(); + for (const QString &ns : namespaces) { + QFileInfo fi(collection.documentationFileName(ns)); + if (!fi.exists() || !fi.isFile()) + collection.unregisterDocumentation(ns); + } +} + +QString indexFilesFolder(const QString &collectionFile) +{ + TRACE_OBJ + QString indexFilesFolder = QLatin1String(".fulltextsearch"); + if (!collectionFile.isEmpty()) { + QFileInfo fi(collectionFile); + indexFilesFolder = QLatin1Char('.') + + fi.fileName().left(fi.fileName().lastIndexOf(QLatin1String(".qhc"))); + } + return indexFilesFolder; +} + +/* + * Returns the expected absolute file path of the cached collection file + * correspondinging to the given collection's file. + * It may or may not exist yet. + */ +QString constructCachedCollectionFilePath(const QHelpEngineCore &collection) +{ + TRACE_OBJ + const QString &filePath = collection.collectionFile(); + const QString &fileName = QFileInfo(filePath).fileName(); + const QString &cacheDir = CollectionConfiguration::cacheDir(collection); + const QString &dir = !cacheDir.isEmpty() + && CollectionConfiguration::cacheDirIsRelativeToCollection(collection) + ? QFileInfo(filePath).dir().absolutePath() + + QDir::separator() + cacheDir + : MainWindow::collectionFileDirectory(false, cacheDir); + return dir + QDir::separator() + fileName; +} + +bool synchronizeDocs(QHelpEngineCore &collection, + QHelpEngineCore &cachedCollection, + CmdLineParser &cmd) +{ + TRACE_OBJ + const QDateTime &lastCollectionRegisterTime = + CollectionConfiguration::lastRegisterTime(collection); + if (!lastCollectionRegisterTime.isValid() || lastCollectionRegisterTime + < CollectionConfiguration::lastRegisterTime(cachedCollection)) + return true; + + const QStringList &docs = collection.registeredDocumentations(); + const QStringList &cachedDocs = cachedCollection.registeredDocumentations(); + + /* + * Ensure that the cached collection contains all docs that + * the collection contains. + */ + for (const QString &doc : docs) { + if (!cachedDocs.contains(doc)) { + const QString &docFile = collection.documentationFileName(doc); + if (!cachedCollection.registerDocumentation(docFile)) { + cmd.showMessage(QCoreApplication::translate("Assistant", + "Error registering documentation file '%1': %2"). + arg(docFile).arg(cachedCollection.error()), true); + return false; + } + } + } + + CollectionConfiguration::updateLastRegisterTime(cachedCollection); + + return true; +} + +bool removeSearchIndex(const QString &collectionFile) +{ + TRACE_OBJ + QString path = QFileInfo(collectionFile).path(); + path += QLatin1Char('/') + indexFilesFolder(collectionFile); + + QDir dir(path); + if (!dir.exists()) + return false; + + const QStringList &list = dir.entryList(QDir::Files | QDir::Hidden); + for (const QString &item : list) + dir.remove(item); + return true; +} + +QCoreApplication* createApplication(int &argc, char *argv[]) +{ + TRACE_OBJ +#ifndef Q_OS_WIN + // Look for arguments that imply command-line mode. + const char * cmdModeArgs[] = { + "-help", "-register", "-unregister", "-remove-search-index", + "-rebuild-search-index" + }; + for (int i = 1; i < argc; ++i) { + for (size_t j = 0; j < sizeof cmdModeArgs/sizeof *cmdModeArgs; ++j) { + if (strcmp(argv[i], cmdModeArgs[j]) == 0) + return new QCoreApplication(argc, argv); + } + } +#endif + QApplication *app = new QApplication(argc, argv); + app->connect(app, &QGuiApplication::lastWindowClosed, + &QCoreApplication::quit); + return app; +} + +bool registerDocumentation(QHelpEngineCore &collection, CmdLineParser &cmd, + bool printSuccess) +{ + TRACE_OBJ + if (!collection.registerDocumentation(cmd.helpFile())) { + cmd.showMessage(QCoreApplication::translate("Assistant", + "Could not register documentation file\n%1\n\nReason:\n%2") + .arg(cmd.helpFile()).arg(collection.error()), true); + return false; + } + if (printSuccess) + cmd.showMessage(QCoreApplication::translate("Assistant", + "Documentation successfully registered."), + false); + CollectionConfiguration::updateLastRegisterTime(collection); + return true; +} + +bool unregisterDocumentation(QHelpEngineCore &collection, + const QString &namespaceName, CmdLineParser &cmd, bool printSuccess) +{ + TRACE_OBJ + if (!collection.unregisterDocumentation(namespaceName)) { + cmd.showMessage(QCoreApplication::translate("Assistant", + "Could not unregister documentation" + " file\n%1\n\nReason:\n%2"). + arg(cmd.helpFile()).arg(collection.error()), true); + return false; + } + updateLastPagesOnUnregister(collection, namespaceName); + if (printSuccess) + cmd.showMessage(QCoreApplication::translate("Assistant", + "Documentation successfully unregistered."), + false); + return true; +} + +void setupTranslation(const QString &fileName, const QString &dir) +{ + QTranslator *translator = new QTranslator(QCoreApplication::instance()); + if (translator->load(QLocale(), fileName, QLatin1String("_"), dir)) + QCoreApplication::installTranslator(translator); +} + +void setupTranslations() +{ + TRACE_OBJ + const QString &resourceDir + = QLibraryInfo::path(QLibraryInfo::TranslationsPath); + setupTranslation(QLatin1String("assistant"), resourceDir); + setupTranslation(QLatin1String("qt"), resourceDir); + setupTranslation(QLatin1String("qt_help"), resourceDir); +} + +} // Anonymous namespace. + +enum ExitStatus { + ExitSuccess = 0, + ExitFailure, + NoExit +}; + +static ExitStatus preliminarySetup(CmdLineParser *cmd) +{ + /* + * Create the collection objects that we need. We always have the + * cached collection file. Depending on whether the user specified + * one, we also may have an input collection file. + */ + const QString collectionFile = cmd->collectionFile(); + const bool collectionFileGiven = !collectionFile.isEmpty(); + QScopedPointer collection; + if (collectionFileGiven) { + collection.reset(new QHelpEngineCore(collectionFile)); + if (!collection->setupData()) { + cmd->showMessage(QCoreApplication::translate("Assistant", + "Error reading collection file '%1': %2.") + .arg(collectionFile).arg(collection->error()), true); + return ExitFailure; + } + } + const QString &cachedCollectionFile = collectionFileGiven + ? constructCachedCollectionFilePath(*collection) + : MainWindow::defaultHelpCollectionFileName(); + if (collectionFileGiven && !QFileInfo(cachedCollectionFile).exists() + && !collection->copyCollectionFile(cachedCollectionFile)) { + cmd->showMessage(QCoreApplication::translate("Assistant", + "Error creating collection file '%1': %2.") + .arg(cachedCollectionFile).arg(collection->error()), true); + return ExitFailure; + } + QHelpEngineCore cachedCollection(cachedCollectionFile); + if (!cachedCollection.setupData()) { + cmd->showMessage(QCoreApplication::translate("Assistant", + "Error reading collection file '%1': %2.") + .arg(cachedCollectionFile) + .arg(cachedCollection.error()), true); + return ExitFailure; + } + + stripNonexistingDocs(cachedCollection); + if (collectionFileGiven) { + if (CollectionConfiguration::isNewer(*collection, cachedCollection)) + CollectionConfiguration::copyConfiguration(*collection, + cachedCollection); + if (!synchronizeDocs(*collection, cachedCollection, *cmd)) + return ExitFailure; + } + + if (cmd->registerRequest() != CmdLineParser::None) { + const QStringList &cachedDocs = + cachedCollection.registeredDocumentations(); + const QString &namespaceName = + QHelpEngineCore::namespaceName(cmd->helpFile()); + if (cmd->registerRequest() == CmdLineParser::Register) { + if (collectionFileGiven + && !registerDocumentation(*collection, *cmd, true)) + return ExitFailure; + if (!cachedDocs.contains(namespaceName) + && !registerDocumentation(cachedCollection, *cmd, !collectionFileGiven)) + return ExitFailure; + return ExitSuccess; + } + if (cmd->registerRequest() == CmdLineParser::Unregister) { + if (collectionFileGiven + && !unregisterDocumentation(*collection, namespaceName, *cmd, true)) + return ExitFailure; + if (cachedDocs.contains(namespaceName) + && !unregisterDocumentation(cachedCollection, namespaceName, + *cmd, !collectionFileGiven)) + return ExitFailure; + return ExitSuccess; + } + } + + if (cmd->removeSearchIndex()) { + return removeSearchIndex(cachedCollectionFile) + ? ExitSuccess : ExitFailure; + } + + if (!QSqlDatabase::isDriverAvailable(QLatin1String("QSQLITE"))) { + cmd->showMessage(QCoreApplication::translate("Assistant", + "Cannot load sqlite database driver!"), + true); + return ExitFailure; + } + + if (!cmd->currentFilter().isEmpty()) { + if (collectionFileGiven) + collection->setCurrentFilter(cmd->currentFilter()); + cachedCollection.setCurrentFilter(cmd->currentFilter()); + } + + if (collectionFileGiven) + cmd->setCollectionFile(cachedCollectionFile); + + return NoExit; +} + +int main(int argc, char *argv[]) +{ + TRACE_OBJ + QScopedPointer a(createApplication(argc, argv)); +#if QT_CONFIG(library) + a->addLibraryPath(a->applicationDirPath() + QLatin1String("/plugins")); +#endif + setupTranslations(); + +#if defined(BROWSER_QTWEBKIT) + if (qobject_cast(a.data())) { + QFont f; + f.setStyleHint(QFont::SansSerif); + QWebSettings::globalSettings()->setFontFamily(QWebSettings::StandardFont, f.defaultFamily()); + } +#endif // BROWSER_QTWEBKIT + + // Parse arguments. + CmdLineParser cmd(a->arguments()); + CmdLineParser::Result res = cmd.parse(); + if (res == CmdLineParser::Help) + return 0; + else if (res == CmdLineParser::Error) + return -1; + + const ExitStatus status = preliminarySetup(&cmd); + switch (status) { + case ExitFailure: return EXIT_FAILURE; + case ExitSuccess: return EXIT_SUCCESS; + default: break; + } + + MainWindow *w = new MainWindow(&cmd); + w->show(); + + /* + * We need to be careful here: The main window has to be deleted before + * the help engine wrapper, which has to be deleted before the + * QApplication. + */ + const int retval = a->exec(); + delete w; + HelpEngineWrapper::removeInstance(); + return retval; +} diff --git a/src/assistant/assistant/mainwindow.cpp b/src/assistant/assistant/mainwindow.cpp new file mode 100644 index 0000000..a6fbe81 --- /dev/null +++ b/src/assistant/assistant/mainwindow.cpp @@ -0,0 +1,1153 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "mainwindow.h" + +#include "aboutdialog.h" +#include "bookmarkmanager.h" +#include "centralwidget.h" +#include "cmdlineparser.h" +#include "contentwindow.h" +#include "globalactions.h" +#include "helpenginewrapper.h" +#include "indexwindow.h" +#include "openpagesmanager.h" +#include "preferencesdialog.h" +#include "qtdocinstaller.h" +#include "remotecontrol.h" +#include "searchwidget.h" +#include "topicchooser.h" +#include "tracer.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +enum { warnAboutMissingModules = 0 }; + +MainWindow::MainWindow(CmdLineParser *cmdLine, QWidget *parent) + : QMainWindow(parent) + , m_cmdLine(cmdLine) +{ + TRACE_OBJ + + setToolButtonStyle(Qt::ToolButtonFollowStyle); + setDockOptions(dockOptions() | AllowNestedDocks); + + QString collectionFile; + if (usesDefaultCollection()) { + MainWindow::collectionFileDirectory(true); + collectionFile = MainWindow::defaultHelpCollectionFileName(); + } else { + collectionFile = cmdLine->collectionFile(); + } + HelpEngineWrapper &helpEngineWrapper = + HelpEngineWrapper::instance(collectionFile); + BookmarkManager *bookMarkManager = BookmarkManager::instance(); + + if (!initHelpDB(!cmdLine->collectionFileGiven())) { + qDebug("Fatal error: Help engine initialization failed. " + "Error message was: %s\nAssistant will now exit.", + qPrintable(HelpEngineWrapper::instance().error())); + std::exit(1); + } + + m_centralWidget = new CentralWidget(this); + setCentralWidget(m_centralWidget); + + m_indexWindow = new IndexWindow(this); + QDockWidget *indexDock = new QDockWidget(tr("Index"), this); + indexDock->setObjectName(QLatin1String("IndexWindow")); + indexDock->setWidget(m_indexWindow); + addDockWidget(Qt::LeftDockWidgetArea, indexDock); + + m_contentWindow = new ContentWindow; + QDockWidget *contentDock = new QDockWidget(tr("Contents"), this); + contentDock->setObjectName(QLatin1String("ContentWindow")); + contentDock->setWidget(m_contentWindow); + addDockWidget(Qt::LeftDockWidgetArea, contentDock); + + m_searchWindow = new SearchWidget(helpEngineWrapper.searchEngine()); + m_searchWindow->setFont(!helpEngineWrapper.usesBrowserFont() ? qApp->font() + : helpEngineWrapper.browserFont()); + QDockWidget *searchDock = new QDockWidget(tr("Search"), this); + searchDock->setObjectName(QLatin1String("SearchWindow")); + searchDock->setWidget(m_searchWindow); + addDockWidget(Qt::LeftDockWidgetArea, searchDock); + + QDockWidget *bookmarkDock = new QDockWidget(tr("Bookmarks"), this); + bookmarkDock->setObjectName(QLatin1String("BookmarkWindow")); + bookmarkDock->setWidget(m_bookmarkWidget + = bookMarkManager->bookmarkDockWidget()); + addDockWidget(Qt::LeftDockWidgetArea, bookmarkDock); + + QDockWidget *openPagesDock = new QDockWidget(tr("Open Pages"), this); + openPagesDock->setObjectName(QLatin1String("Open Pages")); + OpenPagesManager *openPagesManager + = OpenPagesManager::createInstance(this, usesDefaultCollection(), m_cmdLine->url()); + openPagesDock->setWidget(openPagesManager->openPagesWidget()); + addDockWidget(Qt::LeftDockWidgetArea, openPagesDock); + + connect(m_centralWidget, &CentralWidget::addBookmark, + bookMarkManager, &BookmarkManager::addBookmark); + connect(bookMarkManager, &BookmarkManager::escapePressed, + this, &MainWindow::activateCurrentCentralWidgetTab); + connect(bookMarkManager, &BookmarkManager::setSource, + m_centralWidget, &CentralWidget::setSource); + connect(bookMarkManager, &BookmarkManager::setSourceInNewTab, + openPagesManager, [openPagesManager](const QUrl &url){ openPagesManager->createPage(url); }); + + QHelpSearchEngine *searchEngine = helpEngineWrapper.searchEngine(); + connect(searchEngine, &QHelpSearchEngine::indexingStarted, + this, &MainWindow::indexingStarted); + connect(searchEngine, &QHelpSearchEngine::indexingFinished, + this, &MainWindow::indexingFinished); + + QString defWindowTitle = tr("Qt Assistant"); + setWindowTitle(defWindowTitle); + + setupActions(); + statusBar()->show(); + m_centralWidget->connectTabBar(); + + setupFilterToolbar(); + setupAddressToolbar(); + + const QString windowTitle = helpEngineWrapper.windowTitle(); + setWindowTitle(windowTitle.isEmpty() ? defWindowTitle : windowTitle); + QByteArray iconArray = helpEngineWrapper.applicationIcon(); + if (iconArray.size() > 0) { + QBuffer buffer(&iconArray); + QImageReader reader(&buffer); + QIcon appIcon; + do { + QPixmap pix; + pix.convertFromImage(reader.read()); + appIcon.addPixmap(pix); + } while (reader.jumpToNextImage()); + qApp->setWindowIcon(appIcon); + } +#if !defined(Q_OS_OSX) && !defined(Q_OS_WIN) + else { + QIcon appIcon(QLatin1String(":/qt-project.org/assistant/images/assistant-128.png")); + qApp->setWindowIcon(appIcon); + } +#endif + + QToolBar *toolBar = addToolBar(tr("Bookmark Toolbar")); + toolBar->setObjectName(QLatin1String("Bookmark Toolbar")); + bookMarkManager->setBookmarksToolbar(toolBar); + + toolBar->hide(); + toolBarMenu()->addAction(toolBar->toggleViewAction()); + + QByteArray ba(helpEngineWrapper.mainWindow()); + if (!ba.isEmpty()) + restoreState(ba); + + ba = helpEngineWrapper.mainWindowGeometry(); + if (!ba.isEmpty()) { + restoreGeometry(ba); + } else { + tabifyDockWidget(contentDock, indexDock); + tabifyDockWidget(indexDock, bookmarkDock); + tabifyDockWidget(bookmarkDock, searchDock); + contentDock->raise(); + const QRect screen = QGuiApplication::primaryScreen()->geometry(); + resize(4*screen.width()/5, 4*screen.height()/5); + + adjustSize(); // make sure we won't start outside of the screen + move(screen.center() - rect().center()); + } + + if (!helpEngineWrapper.hasFontSettings()) { + helpEngineWrapper.setUseAppFont(false); + helpEngineWrapper.setUseBrowserFont(false); + helpEngineWrapper.setAppFont(qApp->font()); + helpEngineWrapper.setAppWritingSystem(QFontDatabase::Latin); + helpEngineWrapper.setBrowserFont(qApp->font()); + helpEngineWrapper.setBrowserWritingSystem(QFontDatabase::Latin); + } else { + updateApplicationFont(); + } + + updateAboutMenuText(); + + QTimer::singleShot(0, this, &MainWindow::insertLastPages); + if (m_cmdLine->enableRemoteControl()) + (void)new RemoteControl(this); + + if (m_cmdLine->contents() == CmdLineParser::Show) + showContents(); + else if (m_cmdLine->contents() == CmdLineParser::Hide) + hideContents(); + + if (m_cmdLine->index() == CmdLineParser::Show) + showIndex(); + else if (m_cmdLine->index() == CmdLineParser::Hide) + hideIndex(); + + if (m_cmdLine->bookmarks() == CmdLineParser::Show) + showBookmarksDockWidget(); + else if (m_cmdLine->bookmarks() == CmdLineParser::Hide) + hideBookmarksDockWidget(); + + if (m_cmdLine->search() == CmdLineParser::Show) + showSearch(); + else if (m_cmdLine->search() == CmdLineParser::Hide) + hideSearch(); + + if (m_cmdLine->contents() == CmdLineParser::Activate) + showContents(); + else if (m_cmdLine->index() == CmdLineParser::Activate) + showIndex(); + else if (m_cmdLine->bookmarks() == CmdLineParser::Activate) + showBookmarksDockWidget(); + + if (!m_cmdLine->currentFilter().isEmpty()) { + const QString &curFilter = m_cmdLine->currentFilter(); + if (helpEngineWrapper.filterEngine()->filters().contains(curFilter)) + helpEngineWrapper.filterEngine()->setActiveFilter(curFilter); + } + + if (usesDefaultCollection()) + QTimer::singleShot(0, this, &MainWindow::lookForNewQtDocumentation); + else + checkInitState(); + + connect(&helpEngineWrapper, &HelpEngineWrapper::documentationRemoved, + this, &MainWindow::documentationRemoved); + connect(&helpEngineWrapper, &HelpEngineWrapper::documentationUpdated, + this, &MainWindow::documentationUpdated); + + setTabPosition(Qt::AllDockWidgetAreas, QTabWidget::North); + GlobalActions::instance()->updateActions(); + if (helpEngineWrapper.addressBarEnabled()) + showNewAddress(); +} + +MainWindow::~MainWindow() +{ + TRACE_OBJ + delete m_qtDocInstaller; +} + +bool MainWindow::usesDefaultCollection() const +{ + TRACE_OBJ + return m_cmdLine->collectionFile().isEmpty(); +} + +void MainWindow::closeEvent(QCloseEvent *e) +{ + TRACE_OBJ + BookmarkManager::destroy(); + HelpEngineWrapper::instance().setMainWindow(saveState()); + HelpEngineWrapper::instance().setMainWindowGeometry(saveGeometry()); + QMainWindow::closeEvent(e); +} + +bool MainWindow::initHelpDB(bool registerInternalDoc) +{ + TRACE_OBJ + HelpEngineWrapper &helpEngineWrapper = HelpEngineWrapper::instance(); + if (!helpEngineWrapper.setupData()) + return false; + + if (!registerInternalDoc && helpEngineWrapper.defaultHomePage() == QLatin1String("help")) + helpEngineWrapper.setDefaultHomePage(QLatin1String("about:blank")); + + return true; +} + +static const char *docs[] = { + "assistant", "designer", "linguist", // Qt 4 + "qmake", + "qt", + "qtqmake", + "activeqt", + "qtandroidextras", + "qtassistant", + "qtbluetooth", + "qtconcurrent", + "qtconnectivity", + "qtcore", + "qtdbus", + "qtdesigner", + "qtdoc", + "qtenginio", + "qtgraphicaleffects", + "qtgui", + "qthelp", + "qtimageformats", + "qtlinguist", + "qtlocation", + "qtmacextras", + "qtmultimedia", + "qtmultimediawidgets", + "qtnfc", + "qtnetwork", + "qtopengl", + "qtpositioning", + "qtprintsupport", + "qtqml", + "qtquick", + "qtscript", + "qtscripttools", + "qtsensors", + "qtsql", + "qtsvg", + "qttestlib", + "qtuitools", + "qtwebkit", + "qtwebkitexamples", + "qtwidgets", + "qtxml", + "qtxmlpatterns", + "qdoc", + "qtx11extras", + "qtserialport", + "qtquickcontrols", + "qtquickcontrolsstyles", + "qtquickdialogs", + "qtquicklayouts", + "qtwebsockets", + "qtwinextras" +}; + +static QStringList newQtDocumentation() +{ + QStringList result; + const QDir docDirectory(QLibraryInfo::path(QLibraryInfo::DocumentationPath)); + const QFileInfoList entries = docDirectory.entryInfoList(QStringList(QStringLiteral("*.qch")), + QDir::Files, QDir::Name); + if (!entries.isEmpty()) { + result.reserve(entries.size()); + for (const QFileInfo &fi : entries) + result.append(fi.baseName()); + return result; + } + if (warnAboutMissingModules) + qWarning() << "No documentation found in " << QDir::toNativeSeparators(docDirectory.absolutePath()); + const int docCount = int(sizeof(docs) / sizeof(docs[0])); + result.reserve(docCount); + for (int d = 0; d < docCount; ++d) + result.append(QLatin1String(docs[d])); + return result; +} + +void MainWindow::lookForNewQtDocumentation() +{ + TRACE_OBJ + HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); + + const QStringList &docs = newQtDocumentation(); + const int docCount = docs.size(); + QList qtDocInfos; + qtDocInfos.reserve(docCount); + for (const QString &doc : docs) { + const QtDocInstaller::DocInfo docInfo(doc, helpEngine.qtDocInfo(doc)); + qtDocInfos.append(docInfo); + if (warnAboutMissingModules && (docInfo.second.isEmpty() || docInfo.second.first().isEmpty())) + qWarning() << "No documentation found for " << doc; + } + + m_qtDocInstaller = new QtDocInstaller(qtDocInfos); + connect(m_qtDocInstaller, &QtDocInstaller::docsInstalled, + this, &MainWindow::qtDocumentationInstalled); + connect(m_qtDocInstaller, &QtDocInstaller::qchFileNotFound, + this, &MainWindow::resetQtDocInfo); + connect(m_qtDocInstaller, &QtDocInstaller::registerDocumentation, + this, &MainWindow::registerDocumentation); + if (helpEngine.qtDocInfo(QLatin1String("qt")).size() != 2) + statusBar()->showMessage(tr("Looking for Qt Documentation...")); + m_qtDocInstaller->installDocs(); +} + +void MainWindow::qtDocumentationInstalled() +{ + TRACE_OBJ + OpenPagesManager::instance()->resetHelpPage(); + statusBar()->clearMessage(); + checkInitState(); +} + +void MainWindow::checkInitState() +{ + TRACE_OBJ + if (!m_cmdLine->enableRemoteControl()) { + HelpEngineWrapper::instance().initialDocSetupDone(); + return; + } + + HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); + if (helpEngine.contentModel()->isCreatingContents() + || helpEngine.indexModel()->isCreatingIndex()) { + if (!m_connectedInitSignals) { + connect(helpEngine.contentModel(), &QHelpContentModel::contentsCreated, + this, &MainWindow::checkInitState); + connect(helpEngine.indexModel(), &QHelpIndexModel::indexCreated, + this, &MainWindow::checkInitState); + m_connectedInitSignals = true; + } + } else { + if (m_connectedInitSignals) { + disconnect(helpEngine.contentModel(), nullptr, this, nullptr); + disconnect(helpEngine.indexModel(), nullptr, this, nullptr); + } + HelpEngineWrapper::instance().initialDocSetupDone(); + emit initDone(); + } +} + +void MainWindow::insertLastPages() +{ + TRACE_OBJ + if (m_cmdLine->search() == CmdLineParser::Activate) + showSearch(); +} + +void MainWindow::setupActions() +{ + TRACE_OBJ + QString resourcePath = QLatin1String(":/qt-project.org/assistant/images/"); +#ifdef Q_OS_MAC + setUnifiedTitleAndToolBarOnMac(true); + resourcePath.append(QLatin1String("mac")); +#else + resourcePath.append(QLatin1String("win")); +#endif + + QMenu *menu = menuBar()->addMenu(tr("&File")); + OpenPagesManager *const openPages = OpenPagesManager::instance(); + m_newTabAction = menu->addAction(tr("New &Tab"), + openPages, &OpenPagesManager::createBlankPage); + m_newTabAction->setShortcut(QKeySequence::AddTab); + m_closeTabAction = menu->addAction(tr("&Close Tab"), + openPages, &OpenPagesManager::closeCurrentPage); + m_closeTabAction->setShortcuts(QKeySequence::Close); + m_closeTabAction->setEnabled(openPages->pageCount() > 1); + connect(openPages, &OpenPagesManager::pageClosed, + this, &MainWindow::handlePageCountChanged); + connect(openPages, &OpenPagesManager::pageAdded, + this, &MainWindow::handlePageCountChanged); + + menu->addSeparator(); + + m_pageSetupAction = menu->addAction(tr("Page Set&up..."), + m_centralWidget, &CentralWidget::pageSetup); + m_printPreviewAction = menu->addAction(tr("Print Preview..."), + m_centralWidget, &CentralWidget::printPreview); + + GlobalActions *globalActions = GlobalActions::instance(this); + menu->addAction(globalActions->printAction()); + menu->addSeparator(); + + QIcon appExitIcon = QIcon::fromTheme("application-exit"); + QAction *tmp; +#ifdef Q_OS_WIN + tmp = menu->addAction(appExitIcon, tr("E&xit"), + this, &QWidget::close); + tmp->setShortcut(QKeySequence(tr("CTRL+Q"))); +#else + tmp = menu->addAction(appExitIcon, tr("&Quit"), + this, &QWidget::close); + tmp->setShortcut(QKeySequence::Quit); +#endif + tmp->setMenuRole(QAction::QuitRole); + + menu = menuBar()->addMenu(tr("&Edit")); +#if QT_CONFIG(clipboard) + menu->addAction(globalActions->copyAction()); +#endif + menu->addAction(globalActions->findAction()); + + QAction *findNextAction = menu->addAction(tr("Find &Next"), + m_centralWidget, &CentralWidget::findNext); + findNextAction->setShortcuts(QKeySequence::FindNext); + + QAction *findPreviousAction = menu->addAction(tr("Find &Previous"), + m_centralWidget, &CentralWidget::findPrevious); + findPreviousAction->setShortcuts(QKeySequence::FindPrevious); + + menu->addSeparator(); + tmp = menu->addAction(tr("Preferences..."), + this, &MainWindow::showPreferences); + tmp->setMenuRole(QAction::PreferencesRole); + + m_viewMenu = menuBar()->addMenu(tr("&View")); + m_viewMenu->addAction(globalActions->zoomInAction()); + m_viewMenu->addAction(globalActions->zoomOutAction()); + + m_resetZoomAction = m_viewMenu->addAction(tr("Normal &Size"), + m_centralWidget, &CentralWidget::resetZoom); + m_resetZoomAction->setPriority(QAction::LowPriority); + m_resetZoomAction->setIcon(QIcon(resourcePath + QLatin1String("/resetzoom.png"))); + m_resetZoomAction->setShortcut(tr("Ctrl+0")); + + m_viewMenu->addSeparator(); + + m_viewMenu->addAction(tr("Contents"), QKeySequence(tr("ALT+C")), + this, &MainWindow::showContents); + m_viewMenu->addAction(tr("Index"), QKeySequence(tr("ALT+I")), + this, &MainWindow::showIndex); + m_viewMenu->addAction(tr("Bookmarks"), QKeySequence(tr("ALT+O")), + this, &MainWindow::showBookmarksDockWidget); + m_viewMenu->addAction(tr("Search"), QKeySequence(tr("ALT+S")), + this, &MainWindow::showSearch); + m_viewMenu->addAction(tr("Open Pages"), QKeySequence(tr("ALT+P")), + this, &MainWindow::showOpenPages); + + menu = menuBar()->addMenu(tr("&Go")); + menu->addAction(globalActions->homeAction()); + menu->addAction(globalActions->backAction()); + menu->addAction(globalActions->nextAction()); + + m_syncAction = menu->addAction(tr("Sync with Table of Contents"), + this, &MainWindow::syncContents); + m_syncAction->setIconText(tr("Sync")); + m_syncAction->setIcon(QIcon(resourcePath + QLatin1String("/synctoc.png"))); + + menu->addSeparator(); + + tmp = menu->addAction(tr("Next Page"), + openPages, &OpenPagesManager::nextPage); + tmp->setShortcuts(QList() << QKeySequence(tr("Ctrl+Alt+Right")) + << QKeySequence(Qt::CTRL | Qt::Key_PageDown)); + + tmp = menu->addAction(tr("Previous Page"), + openPages, &OpenPagesManager::previousPage); + tmp->setShortcuts(QList() << QKeySequence(tr("Ctrl+Alt+Left")) + << QKeySequence(Qt::CTRL | Qt::Key_PageUp)); + + const Qt::Modifier modifier = +#ifdef Q_OS_MAC + Qt::ALT; +#else + Qt::CTRL; +#endif + + QShortcut *sct = new QShortcut(QKeySequence(modifier | Qt::Key_Tab), this); + connect(sct, &QShortcut::activated, + openPages, &OpenPagesManager::nextPageWithSwitcher); + sct = new QShortcut(QKeySequence(modifier | Qt::SHIFT | Qt::Key_Tab), this); + connect(sct, &QShortcut::activated, + openPages, &OpenPagesManager::previousPageWithSwitcher); + + BookmarkManager::instance()->setBookmarksMenu(menuBar()->addMenu(tr("&Bookmarks"))); + + menu = menuBar()->addMenu(tr("&Help")); + m_aboutAction = menu->addAction(tr("About..."), + this, &MainWindow::showAboutDialog); + m_aboutAction->setMenuRole(QAction::AboutRole); + +#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) + m_resetZoomAction->setIcon(QIcon::fromTheme("zoom-original" , m_resetZoomAction->icon())); + m_syncAction->setIcon(QIcon::fromTheme("view-refresh" , m_syncAction->icon())); +#endif + + QToolBar *navigationBar = addToolBar(tr("Navigation Toolbar")); + navigationBar->setObjectName(QLatin1String("NavigationToolBar")); + navigationBar->addAction(globalActions->backAction()); + navigationBar->addAction(globalActions->nextAction()); + navigationBar->addAction(globalActions->homeAction()); + navigationBar->addAction(m_syncAction); + navigationBar->addSeparator(); +#if QT_CONFIG(clipboard) + navigationBar->addAction(globalActions->copyAction()); +#endif + navigationBar->addAction(globalActions->printAction()); + navigationBar->addAction(globalActions->findAction()); + navigationBar->addSeparator(); + navigationBar->addAction(globalActions->zoomInAction()); + navigationBar->addAction(globalActions->zoomOutAction()); + navigationBar->addAction(m_resetZoomAction); + +#if defined(Q_OS_MAC) + QMenu *windowMenu = new QMenu(tr("&Window"), this); + menuBar()->insertMenu(menu->menuAction(), windowMenu); + windowMenu->addAction(tr("Zoom"), + this, &QWidget::showMaximized); + windowMenu->addAction(tr("Minimize"), QKeySequence(tr("Ctrl+M")), + this, &QWidget::showMinimized); +#endif + + // content viewer connections +#if QT_CONFIG(clipboard) + connect(m_centralWidget, &CentralWidget::copyAvailable, + globalActions, &GlobalActions::setCopyAvailable); +#endif + connect(m_centralWidget, &CentralWidget::currentViewerChanged, + globalActions, &GlobalActions::updateActions); + connect(m_centralWidget, &CentralWidget::forwardAvailable, + globalActions, &GlobalActions::updateActions); + connect(m_centralWidget, &CentralWidget::backwardAvailable, + globalActions, &GlobalActions::updateActions); + connect(m_centralWidget, &CentralWidget::highlighted, + this, [this](const QUrl &link) { statusBar()->showMessage(link.toString());} ); + + // index window + connect(m_indexWindow, &IndexWindow::linkActivated, + m_centralWidget, &CentralWidget::setSource); + connect(m_indexWindow, &IndexWindow::documentsActivated, + this, &MainWindow::showTopicChooser); + connect(m_indexWindow, &IndexWindow::escapePressed, + this, &MainWindow::activateCurrentCentralWidgetTab); + + // content window + connect(m_contentWindow, &ContentWindow::linkActivated, + m_centralWidget, &CentralWidget::setSource); + connect(m_contentWindow, &ContentWindow::escapePressed, + this, &MainWindow::activateCurrentCentralWidgetTab); + + // search window + connect(m_searchWindow, &SearchWidget::requestShowLink, + CentralWidget::instance(), &CentralWidget::setSourceFromSearch); + connect(m_searchWindow, &SearchWidget::requestShowLinkInNewTab, + OpenPagesManager::instance(), &OpenPagesManager::createNewPageFromSearch); + +#if defined(QT_NO_PRINTER) + m_pageSetupAction->setVisible(false); + m_printPreviewAction->setVisible(false); + globalActions->printAction()->setVisible(false); +#endif +} + +QMenu *MainWindow::toolBarMenu() +{ + TRACE_OBJ + if (!m_toolBarMenu) { + m_viewMenu->addSeparator(); + m_toolBarMenu = m_viewMenu->addMenu(tr("Toolbars")); + } + return m_toolBarMenu; +} + +void MainWindow::setupFilterToolbar() +{ + TRACE_OBJ + HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); + if (!helpEngine.filterFunctionalityEnabled()) + return; + + m_filterCombo = new QComboBox(this); + m_filterCombo->setMinimumWidth(QFontMetrics(QFont()). + horizontalAdvance(QLatin1String("MakeTheComboBoxWidthEnough"))); + + QToolBar *filterToolBar = addToolBar(tr("Filter Toolbar")); + filterToolBar->setObjectName(QLatin1String("FilterToolBar")); + filterToolBar->addWidget(new QLabel(tr("Filtered by:").append(QLatin1Char(' ')), + this)); + filterToolBar->addWidget(m_filterCombo); + + if (!helpEngine.filterToolbarVisible()) + filterToolBar->hide(); + toolBarMenu()->addAction(filterToolBar->toggleViewAction()); + + connect(&helpEngine, &HelpEngineWrapper::setupFinished, + this, &MainWindow::setupFilterCombo, Qt::QueuedConnection); + connect(m_filterCombo, &QComboBox::activated, + this, &MainWindow::filterDocumentation); + connect(helpEngine.filterEngine(), &QHelpFilterEngine::filterActivated, + this, &MainWindow::currentFilterChanged); + + setupFilterCombo(); +} + +void MainWindow::setupAddressToolbar() +{ + TRACE_OBJ + HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); + if (!helpEngine.addressBarEnabled()) + return; + + m_addressLineEdit = new QLineEdit(this); + QToolBar *addressToolBar = addToolBar(tr("Address Toolbar")); + addressToolBar->setObjectName(QLatin1String("AddressToolBar")); + insertToolBarBreak(addressToolBar); + + addressToolBar->addWidget(new QLabel(tr("Address:").append(QChar::Space), + this)); + addressToolBar->addWidget(m_addressLineEdit); + + if (!helpEngine.addressBarVisible()) + addressToolBar->hide(); + toolBarMenu()->addAction(addressToolBar->toggleViewAction()); + + // address lineedit + connect(m_addressLineEdit, &QLineEdit::returnPressed, + this, &MainWindow::gotoAddress); + connect(m_centralWidget, &CentralWidget::currentViewerChanged, + this, QOverload<>::of(&MainWindow::showNewAddress)); + connect(m_centralWidget, &CentralWidget::sourceChanged, + this, QOverload<>::of(&MainWindow::showNewAddress)); +} + +void MainWindow::updateAboutMenuText() +{ + TRACE_OBJ + QByteArray ba = HelpEngineWrapper::instance().aboutMenuTexts(); + if (ba.size() > 0) { + QString lang; + QString str; + QString trStr; + QString currentLang = QLocale::system().name(); + int i = currentLang.indexOf(QLatin1Char('_')); + if (i > -1) + currentLang = currentLang.left(i); + QDataStream s(&ba, QIODevice::ReadOnly); + while (!s.atEnd()) { + s >> lang; + s >> str; + if (lang == QLatin1String("default") && trStr.isEmpty()) { + trStr = str; + } else if (lang == currentLang) { + trStr = str; + break; + } + } + if (!trStr.isEmpty()) + m_aboutAction->setText(trStr); + } +} + +void MainWindow::showNewAddress() +{ + TRACE_OBJ + showNewAddress(m_centralWidget->currentSource()); +} + +void MainWindow::showNewAddress(const QUrl &url) +{ + TRACE_OBJ + m_addressLineEdit->setText(url.toString()); +} + +void MainWindow::gotoAddress() +{ + TRACE_OBJ + m_centralWidget->setSource(m_addressLineEdit->text()); +} + +void MainWindow::showTopicChooser(const QList &documents, + const QString &keyword) +{ + TRACE_OBJ + TopicChooser tc(this, keyword, documents); + if (tc.exec() == QDialog::Accepted) { + m_centralWidget->setSource(tc.link()); + } +} + +void MainWindow::showPreferences() +{ + TRACE_OBJ + PreferencesDialog dia(this); + connect(&dia, &PreferencesDialog::updateApplicationFont, + this, &MainWindow::updateApplicationFont); + connect(&dia, &PreferencesDialog::updateBrowserFont, + m_centralWidget, &CentralWidget::updateBrowserFont); + connect(&dia, &PreferencesDialog::updateUserInterface, + m_centralWidget, &CentralWidget::updateUserInterface); + dia.exec(); +} + +void MainWindow::syncContents() +{ + TRACE_OBJ + qApp->setOverrideCursor(QCursor(Qt::WaitCursor)); + const QUrl url = m_centralWidget->currentSource(); + showContents(); + if (!m_contentWindow->syncToContent(url)) + statusBar()->showMessage( + tr("Could not find the associated content item."), 3000); + qApp->restoreOverrideCursor(); +} + +void MainWindow::showAboutDialog() +{ + TRACE_OBJ + HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); + QByteArray contents; + QByteArray ba = helpEngine.aboutTexts(); + if (!ba.isEmpty()) { + QString lang; + QByteArray cba; + QString currentLang = QLocale::system().name(); + int i = currentLang.indexOf(QLatin1Char('_')); + if (i > -1) + currentLang = currentLang.left(i); + QDataStream s(&ba, QIODevice::ReadOnly); + while (!s.atEnd()) { + s >> lang; + s >> cba; + if (lang == QLatin1String("default") && contents.isEmpty()) { + contents = cba; + } else if (lang == currentLang) { + contents = cba; + break; + } + } + } + + AboutDialog aboutDia(this); + + QByteArray iconArray; + if (!contents.isEmpty()) { + iconArray = helpEngine.aboutIcon(); + QByteArray resources = helpEngine.aboutImages(); + QPixmap pix; + pix.loadFromData(iconArray); + aboutDia.setText(QString::fromUtf8(contents), resources); + if (!pix.isNull()) + aboutDia.setPixmap(pix); + aboutDia.setWindowTitle(aboutDia.documentTitle()); + } else { + QByteArray resources; +#if defined(BROWSER_QTWEBKIT) + const QString browser = QStringLiteral("Qt WebKit"); +#else + const QString browser = QStringLiteral("QTextBrowser"); +#endif + aboutDia.setText(tr("
" + "

%1

" + "

Version %2

" + "

Browser: %3

" + "

Copyright (C) %4 The Qt Company Ltd.

") + .arg(tr("Qt Assistant"), QLatin1String(QT_VERSION_STR), browser, QStringLiteral("2022")), + resources); + QLatin1String path(":/qt-project.org/assistant/images/assistant-128.png"); + aboutDia.setPixmap(QString(path)); + } + if (aboutDia.windowTitle().isEmpty()) + aboutDia.setWindowTitle(tr("About %1").arg(windowTitle())); + aboutDia.exec(); +} + +void MainWindow::setContentsVisible(bool visible) +{ + TRACE_OBJ + if (visible) + showContents(); + else + hideContents(); +} + +void MainWindow::showContents() +{ + TRACE_OBJ + activateDockWidget(m_contentWindow); +} + +void MainWindow::hideContents() +{ + TRACE_OBJ + m_contentWindow->parentWidget()->hide(); +} + +void MainWindow::setIndexVisible(bool visible) +{ + TRACE_OBJ + if (visible) + showIndex(); + else + hideIndex(); +} + +void MainWindow::showIndex() +{ + TRACE_OBJ + activateDockWidget(m_indexWindow); +} + +void MainWindow::hideIndex() +{ + TRACE_OBJ + m_indexWindow->parentWidget()->hide(); +} + +void MainWindow::setBookmarksVisible(bool visible) +{ + TRACE_OBJ + if (visible) + showBookmarksDockWidget(); + else + hideBookmarksDockWidget(); +} + +void MainWindow::showBookmarksDockWidget() +{ + TRACE_OBJ + activateDockWidget(m_bookmarkWidget); +} + +void MainWindow::hideBookmarksDockWidget() +{ + TRACE_OBJ + m_bookmarkWidget->parentWidget()->hide(); +} + +void MainWindow::setSearchVisible(bool visible) +{ + TRACE_OBJ + if (visible) + showSearch(); + else + hideSearch(); +} + +void MainWindow::showSearch() +{ + TRACE_OBJ + activateDockWidget(m_searchWindow); +} + +void MainWindow::showOpenPages() +{ + TRACE_OBJ + activateDockWidget(OpenPagesManager::instance()->openPagesWidget()); +} + +void MainWindow::hideSearch() +{ + TRACE_OBJ + m_searchWindow->parentWidget()->hide(); +} + +void MainWindow::activateDockWidget(QWidget *w) +{ + TRACE_OBJ + w->parentWidget()->show(); + w->parentWidget()->raise(); + w->setFocus(); +} + +void MainWindow::setIndexString(const QString &str) +{ + TRACE_OBJ + m_indexWindow->setSearchLineEditText(str); +} + +void MainWindow::activateCurrentBrowser() +{ + TRACE_OBJ + CentralWidget::instance()->activateTab(); +} + +void MainWindow::activateCurrentCentralWidgetTab() +{ + TRACE_OBJ + m_centralWidget->activateTab(); +} + +void MainWindow::updateApplicationFont() +{ + TRACE_OBJ + HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); + QFont font = qApp->font(); + if (helpEngine.usesAppFont()) + font = helpEngine.appFont(); + + const QWidgetList &widgets = QApplication::allWidgets(); + for (QWidget *widget : widgets) + widget->setFont(font); +} + +void MainWindow::setupFilterCombo() +{ + TRACE_OBJ + HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); + const QString currentFilter = helpEngine.filterEngine()->activeFilter(); + m_filterCombo->clear(); + m_filterCombo->addItem(tr("Unfiltered")); + const QStringList allFilters = helpEngine.filterEngine()->filters(); + if (!allFilters.isEmpty()) + m_filterCombo->insertSeparator(1); + for (const QString &filter : allFilters) + m_filterCombo->addItem(filter, filter); + + int idx = m_filterCombo->findData(currentFilter); + if (idx < 0) + idx = 0; + m_filterCombo->setCurrentIndex(idx); +} + +void MainWindow::filterDocumentation(int filterIndex) +{ + TRACE_OBJ + + const QString filter = m_filterCombo->itemData(filterIndex).toString(); + HelpEngineWrapper::instance().filterEngine()->setActiveFilter(filter); +} + +void MainWindow::expandTOC(int depth) +{ + TRACE_OBJ + Q_ASSERT(depth >= -1); + m_contentWindow->expandToDepth(depth); +} + +void MainWindow::indexingStarted() +{ + TRACE_OBJ + if (!m_progressWidget) { + m_progressWidget = new QWidget(); + QLayout* hlayout = new QHBoxLayout(m_progressWidget); + + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum); + + QLabel *label = new QLabel(tr("Updating search index")); + label->setSizePolicy(sizePolicy); + hlayout->addWidget(label); + + QProgressBar *progressBar = new QProgressBar(); + progressBar->setRange(0, 0); + progressBar->setTextVisible(false); + progressBar->setSizePolicy(sizePolicy); + + hlayout->setSpacing(6); + hlayout->setContentsMargins(QMargins()); + hlayout->addWidget(progressBar); + + statusBar()->addPermanentWidget(m_progressWidget); + } +} + +void MainWindow::indexingFinished() +{ + TRACE_OBJ + statusBar()->removeWidget(m_progressWidget); + delete m_progressWidget; + m_progressWidget = nullptr; +} + +QString MainWindow::collectionFileDirectory(bool createDir, const QString &cacheDir) +{ + TRACE_OBJ + QString collectionPath = + QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation); + if (collectionPath.isEmpty()) { + if (cacheDir.isEmpty()) + collectionPath = QDir::homePath() + QDir::separator() + + QLatin1String(".assistant"); + else + collectionPath = QDir::homePath() + QLatin1String("/.") + cacheDir; + } else { + if (cacheDir.isEmpty()) + collectionPath = collectionPath + QLatin1String("/QtProject/Assistant"); + else + collectionPath = collectionPath + QDir::separator() + cacheDir; + } + if (createDir) { + QDir dir; + if (!dir.exists(collectionPath)) + dir.mkpath(collectionPath); + } + return collectionPath; +} + +QString MainWindow::defaultHelpCollectionFileName() +{ + TRACE_OBJ + // forces creation of the default collection file path + return collectionFileDirectory(true) + QDir::separator() + + QString(QLatin1String("qthelpcollection_%1.qhc")). + arg(QLatin1String(QT_VERSION_STR)); +} + +void MainWindow::currentFilterChanged(const QString &filter) +{ + TRACE_OBJ + int index = m_filterCombo->findData(filter); + if (index < 0) + index = 0; + m_filterCombo->setCurrentIndex(index); +} + +void MainWindow::documentationRemoved(const QString &namespaceName) +{ + TRACE_OBJ + OpenPagesManager::instance()->closePages(namespaceName); +} + +void MainWindow::documentationUpdated(const QString &namespaceName) +{ + TRACE_OBJ + OpenPagesManager::instance()->reloadPages(namespaceName); +} + +void MainWindow::resetQtDocInfo(const QString &component) +{ + TRACE_OBJ + HelpEngineWrapper::instance().setQtDocInfo(component, + QStringList(QDateTime().toString(Qt::ISODate))); +} + +void MainWindow::registerDocumentation(const QString &component, + const QString &absFileName) +{ + TRACE_OBJ + QString ns = QHelpEngineCore::namespaceName(absFileName); + if (ns.isEmpty()) + return; + + HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); + if (helpEngine.registeredDocumentations().contains(ns)) + helpEngine.unregisterDocumentation(ns); + if (!helpEngine.registerDocumentation(absFileName)) { + QMessageBox::warning(this, tr("Qt Assistant"), + tr("Could not register file '%1': %2"). + arg(absFileName).arg(helpEngine.error())); + } else { + QStringList docInfo; + docInfo << QFileInfo(absFileName).lastModified().toString(Qt::ISODate) + << absFileName; + helpEngine.setQtDocInfo(component, docInfo); + } +} + +void MainWindow::handlePageCountChanged() +{ + m_closeTabAction->setEnabled(OpenPagesManager::instance()->pageCount() > 1); +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/mainwindow.h b/src/assistant/assistant/mainwindow.h new file mode 100644 index 0000000..9629af5 --- /dev/null +++ b/src/assistant/assistant/mainwindow.h @@ -0,0 +1,131 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QAction; +class QComboBox; +class QLineEdit; +class QMenu; + +class CentralWidget; +class CmdLineParser; +class ContentWindow; +class IndexWindow; +class QtDocInstaller; +class SearchWidget; +struct QHelpLink; + +class MainWindow : public QMainWindow +{ + Q_OBJECT + Q_MOC_INCLUDE() + +public: + explicit MainWindow(CmdLineParser *cmdLine, QWidget *parent = nullptr); + ~MainWindow() override; + + static void activateCurrentBrowser(); + static QString collectionFileDirectory(bool createDir = false, + const QString &cacheDir = QString()); + static QString defaultHelpCollectionFileName(); + +public: + void setIndexString(const QString &str); + void expandTOC(int depth); + bool usesDefaultCollection() const; + +signals: + void initDone(); + +public slots: + void setContentsVisible(bool visible); + void setIndexVisible(bool visible); + void setBookmarksVisible(bool visible); + void setSearchVisible(bool visible); + void syncContents(); + void activateCurrentCentralWidgetTab(); + void currentFilterChanged(const QString &filter); + +private slots: + void showContents(); + void showIndex(); + void showSearch(); + void showOpenPages(); + void insertLastPages(); + void gotoAddress(); + void showPreferences(); + void showNewAddress(); + void showAboutDialog(); + void showNewAddress(const QUrl &url); + void showTopicChooser(const QList &documents, const QString &keyword); + void updateApplicationFont(); + void filterDocumentation(int filterIndex); + void setupFilterCombo(); + void lookForNewQtDocumentation(); + void indexingStarted(); + void indexingFinished(); + void qtDocumentationInstalled(); + void registerDocumentation(const QString &component, + const QString &absFileName); + void resetQtDocInfo(const QString &component); + void checkInitState(); + void documentationRemoved(const QString &namespaceName); + void documentationUpdated(const QString &namespaceName); + +private: + bool initHelpDB(bool registerInternalDoc); + void setupActions(); + void closeEvent(QCloseEvent *e) override; + void activateDockWidget(QWidget *w); + void updateAboutMenuText(); + void setupFilterToolbar(); + void setupAddressToolbar(); + QMenu *toolBarMenu(); + void hideContents(); + void hideIndex(); + void hideSearch(); + +private slots: + void showBookmarksDockWidget(); + void hideBookmarksDockWidget(); + void handlePageCountChanged(); + +private: + QWidget *m_bookmarkWidget = nullptr; + CentralWidget *m_centralWidget; + IndexWindow *m_indexWindow; + ContentWindow *m_contentWindow; + SearchWidget *m_searchWindow; + QLineEdit *m_addressLineEdit; + QComboBox *m_filterCombo = nullptr; + + QAction *m_syncAction; + QAction *m_printPreviewAction; + QAction *m_pageSetupAction; + QAction *m_resetZoomAction; + QAction *m_aboutAction; + QAction *m_closeTabAction; + QAction *m_newTabAction; + + QMenu *m_viewMenu; + QMenu *m_toolBarMenu = nullptr; + + CmdLineParser *m_cmdLine; + + QWidget *m_progressWidget = nullptr; + QtDocInstaller *m_qtDocInstaller = nullptr; + + bool m_connectedInitSignals = false; +}; + +QT_END_NAMESPACE + +#endif // MAINWINDOW_H diff --git a/src/assistant/assistant/openpagesmanager.cpp b/src/assistant/assistant/openpagesmanager.cpp new file mode 100644 index 0000000..ca66bdd --- /dev/null +++ b/src/assistant/assistant/openpagesmanager.cpp @@ -0,0 +1,352 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "openpagesmanager.h" + +#include "centralwidget.h" +#include "helpenginewrapper.h" +#include "helpviewer.h" +#include "openpagesmodel.h" +#include "openpagesswitcher.h" +#include "openpageswidget.h" +#include "tracer.h" +#include "../shared/collectionconfiguration.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +OpenPagesManager *OpenPagesManager::m_instance = nullptr; + +OpenPagesManager *OpenPagesManager::createInstance(QObject *parent, + bool defaultCollection, const QUrl &cmdLineUrl) +{ + TRACE_OBJ + Q_ASSERT(!m_instance); + m_instance = new OpenPagesManager(parent, defaultCollection, cmdLineUrl); + return m_instance; +} + +OpenPagesManager *OpenPagesManager::instance() +{ + TRACE_OBJ + Q_ASSERT(m_instance); + return m_instance; +} + +OpenPagesManager::OpenPagesManager(QObject *parent, bool defaultCollection, + const QUrl &cmdLineUrl) + : QObject(parent) + , m_model(new OpenPagesModel(this)) +{ + TRACE_OBJ + m_openPagesWidget = new OpenPagesWidget(m_model); + m_openPagesWidget->setFrameStyle(QFrame::NoFrame); + connect(m_openPagesWidget, &OpenPagesWidget::setCurrentPage, + this, QOverload::of(&OpenPagesManager::setCurrentPage)); + connect(m_openPagesWidget, &OpenPagesWidget::closePage, + this, QOverload::of(&OpenPagesManager::closePage)); + connect(m_openPagesWidget, &OpenPagesWidget::closePagesExcept, + this, &OpenPagesManager::closePagesExcept); + + m_openPagesSwitcher = new OpenPagesSwitcher(m_model); + connect(m_openPagesSwitcher, &OpenPagesSwitcher::closePage, + this, QOverload::of(&OpenPagesManager::closePage)); + connect(m_openPagesSwitcher, &OpenPagesSwitcher::setCurrentPage, + this, QOverload::of(&OpenPagesManager::setCurrentPage)); + + setupInitialPages(defaultCollection, cmdLineUrl); +} + +OpenPagesManager ::~OpenPagesManager() +{ + TRACE_OBJ + m_instance = nullptr; + delete m_openPagesSwitcher; +} + +int OpenPagesManager::pageCount() const +{ + TRACE_OBJ + return m_model->rowCount(); +} + +void OpenPagesManager::setupInitialPages(bool defaultCollection, + const QUrl &cmdLineUrl) +{ + TRACE_OBJ + if (cmdLineUrl.isValid()) { + createPage(cmdLineUrl); + return; + } + + HelpEngineWrapper &helpEngine = HelpEngineWrapper::instance(); + int initialPage = 0; + switch (helpEngine.startOption()) { + case ShowHomePage: + m_model->addPage(helpEngine.homePage()); + break; + case ShowBlankPage: + m_model->addPage(QUrl(QLatin1String("about:blank"))); + break; + case ShowLastPages: { + const QStringList &lastShownPageList = helpEngine.lastShownPages(); + const int pageCount = lastShownPageList.size(); + if (pageCount == 0) { + if (defaultCollection) + m_helpPageViewer = m_model->addPage(QUrl(QLatin1String("help"))); + else + m_model->addPage(QUrl(QLatin1String("about:blank"))); + } else { + QStringList zoomFactors = helpEngine.lastZoomFactors(); + while (zoomFactors.size() < pageCount) + zoomFactors.append(CollectionConfiguration::DefaultZoomFactor); + initialPage = helpEngine.lastTabPage(); + if (initialPage >= pageCount) { + qWarning("Initial page set to %d, maximum possible value is %d", + initialPage, pageCount - 1); + initialPage = 0; + } + for (int curPage = 0; curPage < pageCount; ++curPage) { + const QString &curFile = lastShownPageList.at(curPage); + if (helpEngine.findFile(curFile).isValid() + || curFile == QLatin1String("about:blank")) { + m_model->addPage(curFile, zoomFactors.at(curPage).toFloat()); + } else if (curPage <= initialPage && initialPage > 0) + --initialPage; + } + } + break; + } + default: + Q_ASSERT(0); + } + + if (m_model->rowCount() == 0) + m_model->addPage(helpEngine.homePage()); + for (int i = 0; i < m_model->rowCount(); ++i) + CentralWidget::instance()->addPage(m_model->pageAt(i)); + setCurrentPage((initialPage >= m_model->rowCount()) + ? m_model->rowCount() - 1 : initialPage); + m_openPagesSwitcher->selectCurrentPage(); +} + +HelpViewer *OpenPagesManager::createBlankPage() +{ + TRACE_OBJ + return createPage(QUrl(QLatin1String("about:blank"))); +} + +void OpenPagesManager::closeCurrentPage() +{ + TRACE_OBJ + Q_ASSERT(m_model->rowCount() > 1); + const QModelIndexList selectedIndexes + = m_openPagesWidget->selectionModel()->selectedRows(); + if (selectedIndexes.isEmpty()) + return; + Q_ASSERT(selectedIndexes.size() == 1); + removePage(selectedIndexes.first().row()); +} + +HelpViewer *OpenPagesManager::createPage(const QUrl &url, bool fromSearch) +{ + TRACE_OBJ + if (HelpViewer::launchWithExternalApp(url)) + return nullptr; + + emit aboutToAddPage(); + + m_model->addPage(url); + const int index = m_model->rowCount() - 1; + HelpViewer * const page = m_model->pageAt(index); + CentralWidget::instance()->addPage(page, fromSearch); + setCurrentPage(index); + + emit pageAdded(index); + return page; +} + +HelpViewer *OpenPagesManager::createNewPageFromSearch(const QUrl &url) +{ + TRACE_OBJ + return createPage(url, true); +} + +void OpenPagesManager::closePage(HelpViewer *viewer) +{ + TRACE_OBJ + for (int i = 0; i < m_model->rowCount(); ++i) { + if (m_model->pageAt(i) == viewer) { + removePage(i); + break; + } + } +} + +void OpenPagesManager::closePage(const QModelIndex &index) +{ + TRACE_OBJ + if (index.isValid()) + removePage(index.row()); +} + +void OpenPagesManager::closePages(const QString &nameSpace) +{ + TRACE_OBJ + closeOrReloadPages(nameSpace, false); +} + +void OpenPagesManager::reloadPages(const QString &nameSpace) +{ + TRACE_OBJ + closeOrReloadPages(nameSpace, true); + m_openPagesWidget->selectCurrentPage(); +} + +void OpenPagesManager::closeOrReloadPages(const QString &nameSpace, bool tryReload) +{ + TRACE_OBJ + for (int i = m_model->rowCount() - 1; i >= 0; --i) { + HelpViewer *page = m_model->pageAt(i); + if (page->source().host() != nameSpace) + continue; + if (tryReload && HelpEngineWrapper::instance().findFile(page->source()).isValid()) + page->reload(); + else if (m_model->rowCount() == 1) + page->setSource(QUrl(QLatin1String("about:blank"))); + else + removePage(i); + } +} + +bool OpenPagesManager::pagesOpenForNamespace(const QString &nameSpace) const +{ + TRACE_OBJ + for (int i = 0; i < m_model->rowCount(); ++i) + if (m_model->pageAt(i)->source().host() == nameSpace) + return true; + return false; +} + +void OpenPagesManager::setCurrentPage(const QModelIndex &index) +{ + TRACE_OBJ + if (index.isValid()) + setCurrentPage(index.row()); +} + +void OpenPagesManager::setCurrentPage(int index) +{ + TRACE_OBJ + setCurrentPage(m_model->pageAt(index)); +} + +void OpenPagesManager::resetHelpPage() +{ + if (m_helpPageViewer) + m_helpPageViewer->reload(); +} + +void OpenPagesManager::setCurrentPage(HelpViewer *page) +{ + TRACE_OBJ + CentralWidget::instance()->setCurrentPage(page); + m_openPagesWidget->selectCurrentPage(); +} + +void OpenPagesManager::removePage(int index) +{ + TRACE_OBJ + emit aboutToClosePage(index); + + CentralWidget::instance()->removePage(index); + m_model->removePage(index); + m_openPagesWidget->selectCurrentPage(); + + emit pageClosed(); +} + + +void OpenPagesManager::closePagesExcept(const QModelIndex &index) +{ + TRACE_OBJ + if (!index.isValid()) + return; + + int i = 0; + HelpViewer *viewer = m_model->pageAt(index.row()); + while (m_model->rowCount() > 1) { + if (m_model->pageAt(i) != viewer) + removePage(i); + else + ++i; + } +} + +QAbstractItemView *OpenPagesManager::openPagesWidget() const +{ + TRACE_OBJ + return m_openPagesWidget; +} + +void OpenPagesManager::nextPage() +{ + TRACE_OBJ + nextOrPreviousPage(1); +} + +void OpenPagesManager::nextPageWithSwitcher() +{ + TRACE_OBJ + if (!m_openPagesSwitcher->isVisible()) { + m_openPagesSwitcher->selectCurrentPage(); + m_openPagesSwitcher->gotoNextPage(); + showSwitcherOrSelectPage(); + } else { + m_openPagesSwitcher->gotoNextPage(); + } +} + +void OpenPagesManager::previousPage() +{ + TRACE_OBJ + nextOrPreviousPage(-1); +} + +void OpenPagesManager::previousPageWithSwitcher() +{ + TRACE_OBJ + if (!m_openPagesSwitcher->isVisible()) { + m_openPagesSwitcher->selectCurrentPage(); + m_openPagesSwitcher->gotoPreviousPage(); + showSwitcherOrSelectPage(); + } else { + m_openPagesSwitcher->gotoPreviousPage(); + } +} + +void OpenPagesManager::nextOrPreviousPage(int offset) +{ + TRACE_OBJ + setCurrentPage((CentralWidget::instance()->currentIndex() + offset + + m_model->rowCount()) % m_model->rowCount()); +} + +void OpenPagesManager::showSwitcherOrSelectPage() const +{ + TRACE_OBJ + if (QApplication::keyboardModifiers() != Qt::NoModifier) { + const int width = CentralWidget::instance()->width(); + const int height = CentralWidget::instance()->height(); + const QPoint p(CentralWidget::instance()->mapToGlobal(QPoint(0, 0))); + m_openPagesSwitcher->move((width - m_openPagesSwitcher->width()) / 2 + p.x(), + (height - m_openPagesSwitcher->height()) / 2 + p.y()); + m_openPagesSwitcher->setVisible(true); + } else { + m_openPagesSwitcher->selectAndHide(); + } +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/openpagesmanager.h b/src/assistant/assistant/openpagesmanager.h new file mode 100644 index 0000000..f61bf0c --- /dev/null +++ b/src/assistant/assistant/openpagesmanager.h @@ -0,0 +1,89 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef OPENPAGESMANAGER_H +#define OPENPAGESMANAGER_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QAbstractItemView; +class QModelIndex; +class QUrl; + +class HelpViewer; +class OpenPagesModel; +class OpenPagesSwitcher; +class OpenPagesWidget; + +class OpenPagesManager : public QObject +{ + Q_OBJECT +public: + static OpenPagesManager *createInstance(QObject *parent, + bool defaultCollection, const QUrl &cmdLineUrl); + static OpenPagesManager *instance(); + + bool pagesOpenForNamespace(const QString &nameSpace) const; + void closePages(const QString &nameSpace); + void reloadPages(const QString &nameSpace); + + QAbstractItemView* openPagesWidget() const; + + int pageCount() const; + void setCurrentPage(int index); + + void resetHelpPage(); + +public slots: + HelpViewer *createPage(const QUrl &url, bool fromSearch = false); + HelpViewer *createNewPageFromSearch(const QUrl &url); + HelpViewer *createBlankPage(); + void closeCurrentPage(); + + void nextPage(); + void nextPageWithSwitcher(); + void previousPage(); + void previousPageWithSwitcher(); + + void closePage(HelpViewer *page); + void setCurrentPage(HelpViewer *page); + +signals: + void aboutToAddPage(); + void pageAdded(int index); + + void pageClosed(); + void aboutToClosePage(int index); + +private slots: + void setCurrentPage(const QModelIndex &index); + void closePage(const QModelIndex &index); + void closePagesExcept(const QModelIndex &index); + +private: + OpenPagesManager(QObject *parent, bool defaultCollection, + const QUrl &cmdLineUrl); + ~OpenPagesManager(); + + void setupInitialPages(bool defaultCollection, const QUrl &cmdLineUrl); + void closeOrReloadPages(const QString &nameSpace, bool tryReload); + void removePage(int index); + + void nextOrPreviousPage(int offset); + void showSwitcherOrSelectPage() const; + + OpenPagesModel *m_model; + OpenPagesWidget *m_openPagesWidget = nullptr; + OpenPagesSwitcher *m_openPagesSwitcher = nullptr; + + QPointer m_helpPageViewer; + + static OpenPagesManager *m_instance; +}; + +QT_END_NAMESPACE + +#endif // OPENPAGESMANAGER_H diff --git a/src/assistant/assistant/openpagesmodel.cpp b/src/assistant/assistant/openpagesmodel.cpp new file mode 100644 index 0000000..edc03d7 --- /dev/null +++ b/src/assistant/assistant/openpagesmodel.cpp @@ -0,0 +1,83 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "openpagesmodel.h" + +#include "helpenginewrapper.h" +#include "helpviewer.h" +#include "tracer.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +OpenPagesModel::OpenPagesModel(QObject *parent) : QAbstractTableModel(parent) +{ + TRACE_OBJ +} + +int OpenPagesModel::rowCount(const QModelIndex &parent) const +{ + TRACE_OBJ + return parent.isValid() ? 0 : m_pages.size(); +} + +int OpenPagesModel::columnCount(const QModelIndex &/*parent*/) const +{ + TRACE_OBJ + return 2; +} + +QVariant OpenPagesModel::data(const QModelIndex &index, int role) const +{ + TRACE_OBJ + if (!index.isValid() || index.row() >= rowCount() || index.column() > 0 + || role != Qt::DisplayRole) + return QVariant(); + QString title = m_pages.at(index.row())->title(); + title.replace(QLatin1Char('&'), QLatin1String("&&")); + return title.isEmpty() ? QLatin1String("(Untitled)") : title; +} + +HelpViewer *OpenPagesModel::addPage(const QUrl &url, qreal zoom) +{ + TRACE_OBJ + beginInsertRows(QModelIndex(), rowCount(), rowCount()); + HelpViewer *page = new HelpViewer(zoom); + connect(page, &HelpViewer::titleChanged, + this, &OpenPagesModel::handleTitleChanged); + m_pages << page; + endInsertRows(); + page->setSource(url); + return page; +} + +void OpenPagesModel::removePage(int index) +{ + TRACE_OBJ + Q_ASSERT(index >= 0 && index < rowCount()); + beginRemoveRows(QModelIndex(), index, index); + HelpViewer *page = m_pages.at(index); + m_pages.removeAt(index); + endRemoveRows(); + page->deleteLater(); +} + +HelpViewer *OpenPagesModel::pageAt(int index) const +{ + TRACE_OBJ + Q_ASSERT(index >= 0 && index < rowCount()); + return m_pages.at(index); +} + +void OpenPagesModel::handleTitleChanged() +{ + TRACE_OBJ + HelpViewer *page = static_cast(sender()); + const int row = m_pages.indexOf(page); + Q_ASSERT(row != -1 ); + const QModelIndex &item = index(row, 0); + emit dataChanged(item, item); +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/openpagesmodel.h b/src/assistant/assistant/openpagesmodel.h new file mode 100644 index 0000000..3e184bf --- /dev/null +++ b/src/assistant/assistant/openpagesmodel.h @@ -0,0 +1,42 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef OPENPAGESMODEL_H +#define OPENPAGESMODEL_H + +#include "openpagesmanager.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +class HelpViewer; +class QUrl; + +class OpenPagesModel : public QAbstractTableModel +{ + Q_OBJECT + friend class OpenPagesManager; +public: + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + int columnCount(const QModelIndex &parent = QModelIndex()) const override; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + + HelpViewer *addPage(const QUrl &url, qreal zoom = 0); + void removePage(int index); + HelpViewer *pageAt(int index) const; + +private slots: + void handleTitleChanged(); + +private: + OpenPagesModel(QObject *parent); + +private: + QList m_pages; +}; + +QT_END_NAMESPACE + +#endif // OPENPAGESMODEL_H diff --git a/src/assistant/assistant/openpagesswitcher.cpp b/src/assistant/assistant/openpagesswitcher.cpp new file mode 100644 index 0000000..c5d97bd --- /dev/null +++ b/src/assistant/assistant/openpagesswitcher.cpp @@ -0,0 +1,156 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "openpagesswitcher.h" + +#include "centralwidget.h" +#include "openpagesmodel.h" +#include "openpageswidget.h" +#include "tracer.h" + +#include + +#include +#include + +QT_BEGIN_NAMESPACE + +const int gWidth = 300; +const int gHeight = 200; + +OpenPagesSwitcher::OpenPagesSwitcher(OpenPagesModel *model) + : QFrame(nullptr, Qt::Popup) + , m_openPagesModel(model) +{ + TRACE_OBJ + resize(gWidth, gHeight); + + m_openPagesWidget = new OpenPagesWidget(m_openPagesModel); + + // We disable the frame on this list view and use a QFrame around it instead. + // This improves the look with QGTKStyle. +#ifndef Q_OS_MAC + setFrameStyle(m_openPagesWidget->frameStyle()); +#endif + m_openPagesWidget->setFrameStyle(QFrame::NoFrame); + + m_openPagesWidget->allowContextMenu(false); + m_openPagesWidget->installEventFilter(this); + + QVBoxLayout *layout = new QVBoxLayout(this); + layout->setContentsMargins(QMargins()); + layout->addWidget(m_openPagesWidget); + + connect(m_openPagesWidget, &OpenPagesWidget::closePage, + this, &OpenPagesSwitcher::closePage); + connect(m_openPagesWidget, &OpenPagesWidget::setCurrentPage, + this, &OpenPagesSwitcher::setCurrentPage); +} + +OpenPagesSwitcher::~OpenPagesSwitcher() +{ + TRACE_OBJ +} + +void OpenPagesSwitcher::gotoNextPage() +{ + TRACE_OBJ + selectPageUpDown(1); +} + +void OpenPagesSwitcher::gotoPreviousPage() +{ + TRACE_OBJ + selectPageUpDown(-1); +} + +void OpenPagesSwitcher::selectAndHide() +{ + TRACE_OBJ + setVisible(false); + emit setCurrentPage(m_openPagesWidget->currentIndex()); +} + +void OpenPagesSwitcher::selectCurrentPage() +{ + TRACE_OBJ + m_openPagesWidget->selectCurrentPage(); +} + +void OpenPagesSwitcher::setVisible(bool visible) +{ + TRACE_OBJ + QWidget::setVisible(visible); + if (visible) + setFocus(); +} + +void OpenPagesSwitcher::focusInEvent(QFocusEvent *event) +{ + TRACE_OBJ + Q_UNUSED(event); + m_openPagesWidget->setFocus(); +} + +bool OpenPagesSwitcher::eventFilter(QObject *object, QEvent *event) +{ + TRACE_OBJ + if (object == m_openPagesWidget) { + if (event->type() == QEvent::KeyPress) { + QKeyEvent *ke = static_cast(event); + if (ke->key() == Qt::Key_Escape) { + setVisible(false); + return true; + } + + const int key = ke->key(); + if (key == Qt::Key_Return || key == Qt::Key_Enter || key == Qt::Key_Space) { + emit setCurrentPage(m_openPagesWidget->currentIndex()); + return true; + } + + Qt::KeyboardModifier modifier = Qt::ControlModifier; +#ifdef Q_OS_MAC + modifier = Qt::AltModifier; +#endif + if (key == Qt::Key_Backtab + && (ke->modifiers() == (modifier | Qt::ShiftModifier))) + gotoPreviousPage(); + else if (key == Qt::Key_Tab && (ke->modifiers() == modifier)) + gotoNextPage(); + } else if (event->type() == QEvent::KeyRelease) { + QKeyEvent *ke = static_cast(event); + if (ke->modifiers() == 0 + /*HACK this is to overcome some event inconsistencies between platforms*/ + || (ke->modifiers() == Qt::AltModifier + && (ke->key() == Qt::Key_Alt || ke->key() == -1))) { + selectAndHide(); + } + } + } + return QWidget::eventFilter(object, event); +} + +void OpenPagesSwitcher::selectPageUpDown(int summand) +{ + TRACE_OBJ + const int pageCount = m_openPagesModel->rowCount(); + if (pageCount < 2) + return; + + const QModelIndexList &list = m_openPagesWidget->selectionModel()->selectedIndexes(); + if (list.isEmpty()) + return; + + QModelIndex index = list.first(); + if (!index.isValid()) + return; + + index = m_openPagesModel->index((index.row() + summand + pageCount) % pageCount, 0); + if (index.isValid()) { + m_openPagesWidget->setCurrentIndex(index); + m_openPagesWidget->scrollTo(index, QAbstractItemView::PositionAtCenter); + } +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/openpagesswitcher.h b/src/assistant/assistant/openpagesswitcher.h new file mode 100644 index 0000000..b904bcc --- /dev/null +++ b/src/assistant/assistant/openpagesswitcher.h @@ -0,0 +1,47 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef OPENPAGESSWITCHER_H +#define OPENPAGESSWITCHER_H + +#include + +QT_BEGIN_NAMESPACE + +class OpenPagesModel; +class OpenPagesWidget; +class QModelIndex; + +class OpenPagesSwitcher : public QFrame +{ + Q_OBJECT + +public: + OpenPagesSwitcher(OpenPagesModel *model); + ~OpenPagesSwitcher() override; + + void gotoNextPage(); + void gotoPreviousPage(); + + void selectAndHide(); + void selectCurrentPage(); + + void setVisible(bool visible) override; + void focusInEvent(QFocusEvent *event) override; + bool eventFilter(QObject *object, QEvent *event) override; + +signals: + void closePage(const QModelIndex &index); + void setCurrentPage(const QModelIndex &index); + +private: + void selectPageUpDown(int summand); + +private: + OpenPagesModel *m_openPagesModel; + OpenPagesWidget *m_openPagesWidget; +}; + +QT_END_NAMESPACE + +#endif // OPENPAGESSWITCHER_H diff --git a/src/assistant/assistant/openpageswidget.cpp b/src/assistant/assistant/openpageswidget.cpp new file mode 100644 index 0000000..937e55b --- /dev/null +++ b/src/assistant/assistant/openpageswidget.cpp @@ -0,0 +1,198 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "openpageswidget.h" + +#include "centralwidget.h" +#include "openpagesmodel.h" +#include "tracer.h" + +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +OpenPagesDelegate::OpenPagesDelegate(QObject *parent) + : QStyledItemDelegate(parent) +{ + TRACE_OBJ +} + +void OpenPagesDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, + const QModelIndex &index) const +{ + TRACE_OBJ + if (option.state & QStyle::State_MouseOver) { +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED + if ((QApplication::mouseButtons() & Qt::LeftButton) == 0) + pressedIndex = QModelIndex(); +QT_WARNING_POP + QBrush brush = option.palette.alternateBase(); + if (index == pressedIndex) + brush = option.palette.dark(); + painter->fillRect(option.rect, brush); + } + + QStyledItemDelegate::paint(painter, option, index); + + if (index.column() == 1 && index.model()->rowCount() > 1 + && option.state & QStyle::State_MouseOver) { + QIcon icon((option.state & QStyle::State_Selected) + ? ":/qt-project.org/assistant/images/closebutton.png" + : ":/qt-project.org/assistant/images/darkclosebutton.png"); + + const QRect iconRect(option.rect.right() - option.rect.height(), + option.rect.top(), option.rect.height(), option.rect.height()); + icon.paint(painter, iconRect, Qt::AlignRight | Qt::AlignVCenter); + } +} + +// -- OpenPagesWidget + +OpenPagesWidget::OpenPagesWidget(OpenPagesModel *model) + : m_allowContextMenu(true) +{ + TRACE_OBJ + setModel(model); + setIndentation(0); + setItemDelegate((m_delegate = new OpenPagesDelegate(this))); + + setTextElideMode(Qt::ElideMiddle); + setAttribute(Qt::WA_MacShowFocusRect, false); + + viewport()->setAttribute(Qt::WA_Hover); + setSelectionBehavior(QAbstractItemView::SelectRows); + setSelectionMode(QAbstractItemView::SingleSelection); + + header()->hide(); + header()->setStretchLastSection(false); + header()->setSectionResizeMode(0, QHeaderView::Stretch); + header()->setSectionResizeMode(1, QHeaderView::Fixed); + header()->resizeSection(1, 18); + + installEventFilter(this); + setUniformRowHeights(true); + setContextMenuPolicy(Qt::CustomContextMenu); + + connect(this, &QAbstractItemView::clicked, + this, &OpenPagesWidget::handleClicked); + connect(this, &QAbstractItemView::pressed, + this, &OpenPagesWidget::handlePressed); + connect(this, &QWidget::customContextMenuRequested, + this, &OpenPagesWidget::contextMenuRequested); +} + +OpenPagesWidget::~OpenPagesWidget() +{ + TRACE_OBJ +} + +void OpenPagesWidget::selectCurrentPage() +{ + TRACE_OBJ + const QModelIndex ¤t = + model()->index(CentralWidget::instance()->currentIndex(), 0); + + QItemSelectionModel * const selModel = selectionModel(); + selModel->select(current, + QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); + selModel->clearSelection(); + + setCurrentIndex(current); + scrollTo(currentIndex()); +} + +void OpenPagesWidget::allowContextMenu(bool ok) +{ + TRACE_OBJ + m_allowContextMenu = ok; +} + +void OpenPagesWidget::contextMenuRequested(QPoint pos) +{ + TRACE_OBJ + QModelIndex index = indexAt(pos); + if (!index.isValid() || !m_allowContextMenu) + return; + + if (index.column() == 1) + index = index.sibling(index.row(), 0); + QMenu contextMenu; + QAction *closeEditor = contextMenu.addAction(tr("Close %1").arg(index.data() + .toString())); + QAction *closeOtherEditors = contextMenu.addAction(tr("Close All Except %1") + .arg(index.data().toString())); + + if (model()->rowCount() == 1) { + closeEditor->setEnabled(false); + closeOtherEditors->setEnabled(false); + } + + QAction *action = contextMenu.exec(mapToGlobal(pos)); + if (action == closeEditor) + emit closePage(index); + else if (action == closeOtherEditors) + emit closePagesExcept(index); +} + +void OpenPagesWidget::handlePressed(const QModelIndex &index) +{ + TRACE_OBJ + if (index.column() == 0) + emit setCurrentPage(index); + + if (index.column() == 1) + m_delegate->pressedIndex = index; +} + +void OpenPagesWidget::handleClicked(const QModelIndex &index) +{ + TRACE_OBJ + // implemented here to handle the funky close button and to work around a + // bug in item views where the delegate wouldn't get the QStyle::State_MouseOver + if (index.column() == 1) { + if (model()->rowCount() > 1) + emit closePage(index); + + QWidget *vp = viewport(); + const QPoint &cursorPos = QCursor::pos(); + QMouseEvent e(QEvent::MouseMove, vp->mapFromGlobal(cursorPos), cursorPos, + Qt::NoButton, {}, {}); + QCoreApplication::sendEvent(vp, &e); + } +} + +bool OpenPagesWidget::eventFilter(QObject *obj, QEvent *event) +{ + TRACE_OBJ + if (obj != this) + return QWidget::eventFilter(obj, event); + + if (event->type() == QEvent::KeyPress) { + QKeyEvent *ke = static_cast(event); + if (currentIndex().isValid() && ke->modifiers() == 0) { + const int key = ke->key(); + if (key == Qt::Key_Return || key == Qt::Key_Enter + || key == Qt::Key_Space) { + emit setCurrentPage(currentIndex()); + } else if ((key == Qt::Key_Delete || key == Qt::Key_Backspace) + && model()->rowCount() > 1) { + emit closePage(currentIndex()); + } + } + } else if (event->type() == QEvent::KeyRelease) { + QKeyEvent *ke = static_cast(event); + if (ke->modifiers() == 0 + && (ke->key() == Qt::Key_Up || ke->key() == Qt::Key_Down)) { + emit setCurrentPage(currentIndex()); + } + } + return QWidget::eventFilter(obj, event); +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/openpageswidget.h b/src/assistant/assistant/openpageswidget.h new file mode 100644 index 0000000..6cb27b6 --- /dev/null +++ b/src/assistant/assistant/openpageswidget.h @@ -0,0 +1,54 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef OPENPAGESWIDGET_H +#define OPENPAGESWIDGET_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class OpenPagesModel; + +class OpenPagesDelegate : public QStyledItemDelegate +{ + Q_OBJECT +public: + explicit OpenPagesDelegate(QObject *parent = nullptr); + void paint(QPainter *painter, const QStyleOptionViewItem &option, + const QModelIndex &index) const override; + + mutable QModelIndex pressedIndex; +}; + +class OpenPagesWidget : public QTreeView +{ + Q_OBJECT +public: + OpenPagesWidget(OpenPagesModel *model); + ~OpenPagesWidget() override; + + void selectCurrentPage(); + void allowContextMenu(bool ok); + +signals: + void setCurrentPage(const QModelIndex &index); + void closePage(const QModelIndex &index); + void closePagesExcept(const QModelIndex &index); + +private slots: + void contextMenuRequested(QPoint pos); + void handlePressed(const QModelIndex &index); + void handleClicked(const QModelIndex &index); + +private: + bool eventFilter(QObject *obj, QEvent *event) override; + + bool m_allowContextMenu; + OpenPagesDelegate *m_delegate; +}; + +QT_END_NAMESPACE + +#endif // OPENPAGESWIDGET_H diff --git a/src/assistant/assistant/preferencesdialog.cpp b/src/assistant/assistant/preferencesdialog.cpp new file mode 100644 index 0000000..22d7a9e --- /dev/null +++ b/src/assistant/assistant/preferencesdialog.cpp @@ -0,0 +1,250 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "preferencesdialog.h" + +#include "centralwidget.h" +#include "fontpanel.h" +#include "helpenginewrapper.h" +#include "openpagesmanager.h" +#include "helpdocsettingswidget.h" + +#include + +#include + +#include +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +PreferencesDialog::PreferencesDialog(QWidget *parent) + : QDialog(parent) + , m_appFontChanged(false) + , m_browserFontChanged(false) + , helpEngine(HelpEngineWrapper::instance()) + , m_hideFiltersTab(!helpEngine.filterFunctionalityEnabled()) + , m_hideDocsTab(!helpEngine.documentationManagerEnabled()) +{ + m_ui.setupUi(this); + + connect(m_ui.buttonBox->button(QDialogButtonBox::Ok), &QAbstractButton::clicked, + this, &PreferencesDialog::okClicked); + connect(m_ui.buttonBox->button(QDialogButtonBox::Apply), &QAbstractButton::clicked, + this, &PreferencesDialog::applyClicked); + connect(m_ui.buttonBox->button(QDialogButtonBox::Cancel), &QAbstractButton::clicked, + this, &QDialog::reject); + + m_docSettings = HelpDocSettings::readSettings(helpEngine.helpEngine()); + + if (m_hideDocsTab) { + m_ui.tabWidget->removeTab(m_ui.tabWidget->indexOf(m_ui.docsTab)); + } else { + connect(m_ui.docSettingsWidget, &HelpDocSettingsWidget::docSettingsChanged, + [this](const HelpDocSettings &settings) { + m_docSettings = settings; + if (m_hideFiltersTab) + return; + + m_ui.filterSettingsWidget->setAvailableComponents(m_docSettings.components()); + m_ui.filterSettingsWidget->setAvailableVersions(m_docSettings.versions()); + }); + + m_ui.docSettingsWidget->setDocSettings(m_docSettings); + } + + if (m_hideFiltersTab) { + m_ui.tabWidget->removeTab(m_ui.tabWidget->indexOf(m_ui.filtersTab)); + } else { + m_ui.filterSettingsWidget->setAvailableComponents(m_docSettings.components()); + m_ui.filterSettingsWidget->setAvailableVersions(m_docSettings.versions()); + m_ui.filterSettingsWidget->readSettings(helpEngine.filterEngine()); + } + + updateFontSettingsPage(); + updateOptionsPage(); + + if (helpEngine.usesAppFont()) + setFont(helpEngine.appFont()); +} + +void PreferencesDialog::okClicked() +{ + applyChanges(); + accept(); +} + +void PreferencesDialog::applyClicked() +{ + applyChanges(); + + m_docSettings = HelpDocSettings::readSettings(helpEngine.helpEngine()); + + if (!m_hideDocsTab) + m_ui.docSettingsWidget->setDocSettings(m_docSettings); + if (!m_hideFiltersTab) { + m_ui.filterSettingsWidget->setAvailableComponents(m_docSettings.components()); + m_ui.filterSettingsWidget->setAvailableVersions(m_docSettings.versions()); + m_ui.filterSettingsWidget->readSettings(helpEngine.filterEngine()); + } +} + +void PreferencesDialog::applyChanges() +{ + bool changed = false; + if (!m_hideDocsTab) + changed = HelpDocSettings::applySettings(helpEngine.helpEngine(), m_docSettings); + if (!m_hideFiltersTab) + changed = changed || m_ui.filterSettingsWidget->applySettings(helpEngine.filterEngine()); + + if (changed) { + // In order to update the filtercombobox and indexwidget + // according to the new filter configuration. + helpEngine.setupData(); + } + + helpEngine.setShowTabs(m_ui.showTabs->isChecked()); + if (m_showTabs != m_ui.showTabs->isChecked()) + emit updateUserInterface(); + + if (m_appFontChanged) { + helpEngine.setAppFont(m_appFontPanel->selectedFont()); + helpEngine.setUseAppFont(m_appFontPanel->isChecked()); + helpEngine.setAppWritingSystem(m_appFontPanel->writingSystem()); + emit updateApplicationFont(); + m_appFontChanged = false; + } + + if (m_browserFontChanged) { + helpEngine.setBrowserFont(m_browserFontPanel->selectedFont()); + helpEngine.setUseBrowserFont(m_browserFontPanel->isChecked()); + helpEngine.setBrowserWritingSystem(m_browserFontPanel->writingSystem()); + emit updateBrowserFont(); + m_browserFontChanged = false; + } + + QString homePage = m_ui.homePageLineEdit->text(); + if (homePage.isEmpty()) + homePage = QLatin1String("help"); + helpEngine.setHomePage(homePage); + + const int option = m_ui.helpStartComboBox->currentIndex(); + helpEngine.setStartOption(option); +} + +void PreferencesDialog::updateFontSettingsPage() +{ + m_browserFontPanel = new FontPanel(this); + m_browserFontPanel->setCheckable(true); + m_ui.stackedWidget_2->insertWidget(0, m_browserFontPanel); + + m_appFontPanel = new FontPanel(this); + m_appFontPanel->setCheckable(true); + m_ui.stackedWidget_2->insertWidget(1, m_appFontPanel); + + m_ui.stackedWidget_2->setCurrentIndex(0); + + const QString customSettings(tr("Use custom settings")); + m_appFontPanel->setTitle(customSettings); + + QFont font = helpEngine.appFont(); + m_appFontPanel->setSelectedFont(font); + + QFontDatabase::WritingSystem system = helpEngine.appWritingSystem(); + m_appFontPanel->setWritingSystem(system); + + m_appFontPanel->setChecked(helpEngine.usesAppFont()); + + m_browserFontPanel->setTitle(customSettings); + + font = helpEngine.browserFont(); + m_browserFontPanel->setSelectedFont(font); + + system = helpEngine.browserWritingSystem(); + m_browserFontPanel->setWritingSystem(system); + + m_browserFontPanel->setChecked(helpEngine.usesBrowserFont()); + + connect(m_appFontPanel, &QGroupBox::toggled, + this, &PreferencesDialog::appFontSettingToggled); + connect(m_browserFontPanel, &QGroupBox::toggled, + this, &PreferencesDialog::browserFontSettingToggled); + + const QList &appCombos = m_appFontPanel->findChildren(); + for (QComboBox* box : appCombos) { + connect(box, &QComboBox::currentIndexChanged, + this, &PreferencesDialog::appFontSettingChanged); + } + + const QList &browserCombos = m_browserFontPanel->findChildren(); + for (QComboBox* box : browserCombos) { + connect(box, &QComboBox::currentIndexChanged, + this, &PreferencesDialog::browserFontSettingChanged); + } +} + +void PreferencesDialog::appFontSettingToggled(bool on) +{ + Q_UNUSED(on); + m_appFontChanged = true; +} + +void PreferencesDialog::appFontSettingChanged(int index) +{ + Q_UNUSED(index); + m_appFontChanged = true; +} + +void PreferencesDialog::browserFontSettingToggled(bool on) +{ + Q_UNUSED(on); + m_browserFontChanged = true; +} + +void PreferencesDialog::browserFontSettingChanged(int index) +{ + Q_UNUSED(index); + m_browserFontChanged = true; +} + +void PreferencesDialog::updateOptionsPage() +{ + m_ui.homePageLineEdit->setText(helpEngine.homePage()); + + int option = helpEngine.startOption(); + m_ui.helpStartComboBox->setCurrentIndex(option); + + m_showTabs = helpEngine.showTabs(); + m_ui.showTabs->setChecked(m_showTabs); + + connect(m_ui.blankPageButton, &QAbstractButton::clicked, + this, &PreferencesDialog::setBlankPage); + connect(m_ui.currentPageButton, &QAbstractButton::clicked, + this, &PreferencesDialog::setCurrentPage); + connect(m_ui.defaultPageButton, &QAbstractButton::clicked, + this, &PreferencesDialog::setDefaultPage); +} + +void PreferencesDialog::setBlankPage() +{ + m_ui.homePageLineEdit->setText(QLatin1String("about:blank")); +} + +void PreferencesDialog::setCurrentPage() +{ + QString homepage = CentralWidget::instance()->currentSource().toString(); + if (homepage.isEmpty()) + homepage = QLatin1String("help"); + + m_ui.homePageLineEdit->setText(homepage); +} + +void PreferencesDialog::setDefaultPage() +{ + m_ui.homePageLineEdit->setText(helpEngine.defaultHomePage()); +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/preferencesdialog.h b/src/assistant/assistant/preferencesdialog.h new file mode 100644 index 0000000..9a1d2d3 --- /dev/null +++ b/src/assistant/assistant/preferencesdialog.h @@ -0,0 +1,64 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef PREFERENCESDIALOG_H +#define PREFERENCESDIALOG_H + +#include +#include +#include +#include "ui_preferencesdialog.h" +#include "helpdocsettings.h" + +QT_BEGIN_NAMESPACE + +class FontPanel; +class HelpEngineWrapper; +class QFileSystemWatcher; + +class PreferencesDialog : public QDialog +{ + Q_OBJECT + +public: + PreferencesDialog(QWidget *parent = nullptr); + +private slots: + void okClicked(); + void applyClicked(); + void applyChanges(); + void appFontSettingToggled(bool on); + void appFontSettingChanged(int index); + void browserFontSettingToggled(bool on); + void browserFontSettingChanged(int index); + + void setBlankPage(); + void setCurrentPage(); + void setDefaultPage(); + +signals: + void updateBrowserFont(); + void updateApplicationFont(); + void updateUserInterface(); + +private: + void updateFontSettingsPage(); + void updateOptionsPage(); + + Ui::PreferencesDialogClass m_ui; + + HelpDocSettings m_docSettings; + + FontPanel *m_appFontPanel; + FontPanel *m_browserFontPanel; + bool m_appFontChanged; + bool m_browserFontChanged; + HelpEngineWrapper &helpEngine; + const bool m_hideFiltersTab; + const bool m_hideDocsTab; + bool m_showTabs; +}; + +QT_END_NAMESPACE + +#endif // SETTINGSDIALOG_H diff --git a/src/assistant/assistant/preferencesdialog.ui b/src/assistant/assistant/preferencesdialog.ui new file mode 100644 index 0000000..2d1c480 --- /dev/null +++ b/src/assistant/assistant/preferencesdialog.ui @@ -0,0 +1,314 @@ + + + PreferencesDialogClass + + + + 0 + 0 + 395 + 376 + + + + Preferences + + + + + + 2 + + + + Fonts + + + + + + + + + 0 + 0 + + + + Font settings: + + + + + + + + Browser + + + + + Application + + + + + + + + + + 0 + + + + + + + + + Filters + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + Documentation + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + Options + + + + + + + + + + + + + 0 + 0 + + + + On help start: + + + + + + + + 0 + 0 + + + + + Show my home page + + + + + Show a blank page + + + + + Show my tabs from last session + + + + + + + + Qt::Horizontal + + + + 54 + 20 + + + + + + + + + + + + + + + + + + + Homepage + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Current Page + + + + + + + Blank Page + + + + + + + Restore to default + + + + + + + + + + + + Appearance + + + + + + Show tabs for each individual page + + + + + + + + + + Qt::Vertical + + + + 20 + 72 + + + + + + + + + + + + QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + HelpDocSettingsWidget + QWidget +
helpdocsettingswidget.h
+ 1 +
+ + QHelpFilterSettingsWidget + QWidget +
qhelpfiltersettingswidget.h
+ 1 +
+
+ + + + comboBox + currentIndexChanged(int) + stackedWidget_2 + setCurrentIndex(int) + + + 375 + 32 + + + 347 + 125 + + + + +
diff --git a/src/assistant/assistant/qtdocinstaller.cpp b/src/assistant/assistant/qtdocinstaller.cpp new file mode 100644 index 0000000..1455426 --- /dev/null +++ b/src/assistant/assistant/qtdocinstaller.cpp @@ -0,0 +1,89 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "tracer.h" + +#include +#include +#include +#include +#include +#include "helpenginewrapper.h" +#include "qtdocinstaller.h" + +QT_BEGIN_NAMESPACE + +QtDocInstaller::QtDocInstaller(const QList &docInfos) + : m_abort(false), m_docInfos(docInfos) +{ + TRACE_OBJ +} + +QtDocInstaller::~QtDocInstaller() +{ + TRACE_OBJ + if (!isRunning()) + return; + m_mutex.lock(); + m_abort = true; + m_mutex.unlock(); + wait(); +} + +void QtDocInstaller::installDocs() +{ + TRACE_OBJ + start(LowPriority); +} + +void QtDocInstaller::run() +{ + TRACE_OBJ + m_qchDir.setPath(QLibraryInfo::path(QLibraryInfo::DocumentationPath)); + m_qchFiles = m_qchDir.entryList(QStringList() << QLatin1String("*.qch")); + + bool changes = false; + for (const DocInfo &docInfo : std::as_const(m_docInfos)) { + changes |= installDoc(docInfo); + m_mutex.lock(); + if (m_abort) { + m_mutex.unlock(); + return; + } + m_mutex.unlock(); + } + emit docsInstalled(changes); +} + +bool QtDocInstaller::installDoc(const DocInfo &docInfo) +{ + TRACE_OBJ + const QString &component = docInfo.first; + const QStringList &info = docInfo.second; + QDateTime dt; + if (!info.isEmpty() && !info.first().isEmpty()) + dt = QDateTime::fromString(info.first(), Qt::ISODate); + + QString qchFile; + if (info.size() == 2) + qchFile = info.last(); + + if (m_qchFiles.isEmpty()) { + emit qchFileNotFound(component); + return false; + } + for (const QString &f : std::as_const(m_qchFiles)) { + if (f.startsWith(component)) { + QFileInfo fi(m_qchDir.absolutePath() + QDir::separator() + f); + if (dt.isValid() && fi.lastModified().toSecsSinceEpoch() == dt.toSecsSinceEpoch() + && qchFile == fi.absoluteFilePath()) + return false; + emit registerDocumentation(component, fi.absoluteFilePath()); + return true; + } + } + + emit qchFileNotFound(component); + return false; +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/qtdocinstaller.h b/src/assistant/assistant/qtdocinstaller.h new file mode 100644 index 0000000..932c077 --- /dev/null +++ b/src/assistant/assistant/qtdocinstaller.h @@ -0,0 +1,46 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef QTDOCINSTALLER +#define QTDOCINSTALLER + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class HelpEngineWrapper; + +class QtDocInstaller : public QThread +{ + Q_OBJECT + +public: + typedef QPair DocInfo; + QtDocInstaller(const QList &docInfos); + ~QtDocInstaller() override; + void installDocs(); + +signals: + void qchFileNotFound(const QString &component); + void registerDocumentation(const QString &component, + const QString &absFileName); + void docsInstalled(bool newDocsInstalled); + +private: + void run() override; + bool installDoc(const DocInfo &docInfo); + + bool m_abort; + QMutex m_mutex; + QStringList m_qchFiles; + QDir m_qchDir; + QList m_docInfos; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/assistant/assistant/remotecontrol.cpp b/src/assistant/assistant/remotecontrol.cpp new file mode 100644 index 0000000..cb32ad0 --- /dev/null +++ b/src/assistant/assistant/remotecontrol.cpp @@ -0,0 +1,273 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "remotecontrol.h" + +#include "centralwidget.h" +#include "helpenginewrapper.h" +#include "mainwindow.h" +#include "openpagesmanager.h" +#include "tracer.h" + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include + +#ifdef Q_OS_WIN +# include "stdinlistener_win.h" +#else +# include "stdinlistener.h" +#endif + +QT_BEGIN_NAMESPACE + +RemoteControl::RemoteControl(MainWindow *mainWindow) + : QObject(mainWindow) + , m_mainWindow(mainWindow) + , helpEngine(HelpEngineWrapper::instance()) +{ + TRACE_OBJ + connect(m_mainWindow, &MainWindow::initDone, + this, &RemoteControl::applyCache); + + StdInListener *l = new StdInListener(this); + connect(l, &StdInListener::receivedCommand, + this, &RemoteControl::handleCommandString); + l->start(); +} + +void RemoteControl::handleCommandString(const QString &cmdString) +{ + TRACE_OBJ + const QStringList &commands = cmdString.split(QLatin1Char(';')); + for (const QString &command : commands) { + QString cmd, arg; + splitInputString(command, cmd, arg); + + if (m_debug) + QMessageBox::information(nullptr, tr("Debugging Remote Control"), + tr("Received Command: %1 %2").arg(cmd).arg(arg)); + + if (cmd == QLatin1String("debug")) + handleDebugCommand(arg); + else if (cmd == QLatin1String("show")) + handleShowOrHideCommand(arg, true); + else if (cmd == QLatin1String("hide")) + handleShowOrHideCommand(arg, false); + else if (cmd == QLatin1String("setsource")) + handleSetSourceCommand(arg); + else if (cmd == QLatin1String("synccontents")) + handleSyncContentsCommand(); + else if (cmd == QLatin1String("activatekeyword")) + handleActivateKeywordCommand(arg); + else if (cmd == QLatin1String("activateidentifier")) + handleActivateIdentifierCommand(arg); + else if (cmd == QLatin1String("expandtoc")) + handleExpandTocCommand(arg); + else if (cmd == QLatin1String("setcurrentfilter")) + handleSetCurrentFilterCommand(arg); + else if (cmd == QLatin1String("register")) + handleRegisterCommand(arg); + else if (cmd == QLatin1String("unregister")) + handleUnregisterCommand(arg); + else + break; + } + m_mainWindow->raise(); + m_mainWindow->activateWindow(); +} + +void RemoteControl::splitInputString(const QString &input, QString &cmd, + QString &arg) +{ + TRACE_OBJ + QString cmdLine = input.trimmed(); + int i = cmdLine.indexOf(QLatin1Char(' ')); + cmd = cmdLine.left(i); + arg = cmdLine.mid(i + 1); + cmd = cmd.toLower(); +} + +void RemoteControl::handleDebugCommand(const QString &arg) +{ + TRACE_OBJ + m_debug = arg == QLatin1String("on"); +} + +void RemoteControl::handleShowOrHideCommand(const QString &arg, bool show) +{ + TRACE_OBJ + if (arg.toLower() == QLatin1String("contents")) + m_mainWindow->setContentsVisible(show); + else if (arg.toLower() == QLatin1String("index")) + m_mainWindow->setIndexVisible(show); + else if (arg.toLower() == QLatin1String("bookmarks")) + m_mainWindow->setBookmarksVisible(show); + else if (arg.toLower() == QLatin1String("search")) + m_mainWindow->setSearchVisible(show); +} + +void RemoteControl::handleSetSourceCommand(const QString &arg) +{ + TRACE_OBJ + QUrl url(arg); + if (url.isValid()) { + if (url.isRelative()) + url = CentralWidget::instance()->currentSource().resolved(url); + if (m_caching) { + clearCache(); + m_setSource = url; + } else { + CentralWidget::instance()->setSource(url); + } + } +} + +void RemoteControl::handleSyncContentsCommand() +{ + TRACE_OBJ + if (m_caching) + m_syncContents = true; + else + m_mainWindow->syncContents(); +} + +void RemoteControl::handleActivateKeywordCommand(const QString &arg) +{ + TRACE_OBJ + if (m_caching) { + clearCache(); + m_activateKeyword = arg; + } else { + m_mainWindow->setIndexString(arg); + if (!arg.isEmpty()) { + if (!helpEngine.indexWidget()->currentIndex().isValid() + && helpEngine.fullTextSearchFallbackEnabled()) { + if (QHelpSearchEngine *se = helpEngine.searchEngine()) { + m_mainWindow->setSearchVisible(true); + if (QHelpSearchQueryWidget *w = se->queryWidget()) { + w->collapseExtendedSearch(); + w->setSearchInput(arg); + se->search(arg); + } + } + } else { + m_mainWindow->setIndexVisible(true); + helpEngine.indexWidget()->activateCurrentItem(); + } + } + } +} + +void RemoteControl::handleActivateIdentifierCommand(const QString &arg) +{ + TRACE_OBJ + if (m_caching) { + clearCache(); + m_activateIdentifier = arg; + } else { + const auto docs = helpEngine.documentsForIdentifier(arg); + if (!docs.isEmpty()) + CentralWidget::instance()->setSource(docs.first().url); + } +} + +void RemoteControl::handleExpandTocCommand(const QString &arg) +{ + TRACE_OBJ + bool ok = false; + int depth = -2; + if (!arg.isEmpty()) + depth = arg.toInt(&ok); + if (!ok || depth < -2) + depth = -2; + + if (m_caching) + m_expandTOC = depth; + else if (depth != -2) + m_mainWindow->expandTOC(depth); +} + +void RemoteControl::handleSetCurrentFilterCommand(const QString &arg) +{ + TRACE_OBJ + if (helpEngine.filterEngine()->filters().contains(arg)) { + if (m_caching) { + clearCache(); + m_currentFilter = arg; + } else { + helpEngine.filterEngine()->setActiveFilter(arg); + } + } +} + +void RemoteControl::handleRegisterCommand(const QString &arg) +{ + TRACE_OBJ + const QString &absFileName = QFileInfo(arg).absoluteFilePath(); + if (helpEngine.registeredDocumentations(). + contains(QHelpEngineCore::namespaceName(absFileName))) + return; + if (helpEngine.registerDocumentation(absFileName)) + helpEngine.setupData(); +} + +void RemoteControl::handleUnregisterCommand(const QString &arg) +{ + TRACE_OBJ + const QString &absFileName = QFileInfo(arg).absoluteFilePath(); + const QString &ns = QHelpEngineCore::namespaceName(absFileName); + if (helpEngine.registeredDocumentations().contains(ns)) { + OpenPagesManager::instance()->closePages(ns); + if (helpEngine.unregisterDocumentation(ns)) + helpEngine.setupData(); + } +} + +void RemoteControl::applyCache() +{ + TRACE_OBJ + if (m_setSource.isValid()) { + CentralWidget::instance()->setSource(m_setSource); + } else if (!m_activateKeyword.isEmpty()) { + m_mainWindow->setIndexString(m_activateKeyword); + helpEngine.indexWidget()->activateCurrentItem(); + } else if (!m_activateIdentifier.isEmpty()) { + const auto docs = + helpEngine.documentsForIdentifier(m_activateIdentifier); + if (!docs.isEmpty()) + CentralWidget::instance()->setSource(docs.first().url); + } else if (!m_currentFilter.isEmpty()) { + helpEngine.filterEngine()->setActiveFilter(m_currentFilter); + } + + if (m_syncContents) + m_mainWindow->syncContents(); + + Q_ASSERT(m_expandTOC >= -2); + if (m_expandTOC != -2) + m_mainWindow->expandTOC(m_expandTOC); + + m_caching = false; +} + +void RemoteControl::clearCache() +{ + TRACE_OBJ + m_currentFilter.clear(); + m_setSource.clear(); + m_syncContents = false; + m_activateKeyword.clear(); + m_activateIdentifier.clear(); +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/remotecontrol.h b/src/assistant/assistant/remotecontrol.h new file mode 100644 index 0000000..6b566a7 --- /dev/null +++ b/src/assistant/assistant/remotecontrol.h @@ -0,0 +1,57 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef REMOTECONTROL_H +#define REMOTECONTROL_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class HelpEngineWrapper; +class MainWindow; + +class RemoteControl : public QObject +{ + Q_OBJECT + +public: + RemoteControl(MainWindow *mainWindow); + +private slots: + void handleCommandString(const QString &cmdString); + void applyCache(); + +private: + void clearCache(); + void splitInputString(const QString &input, QString &cmd, QString &arg); + void handleDebugCommand(const QString &arg); + void handleShowOrHideCommand(const QString &arg, bool show); + void handleSetSourceCommand(const QString &arg); + void handleSyncContentsCommand(); + void handleActivateKeywordCommand(const QString &arg); + void handleActivateIdentifierCommand(const QString &arg); + void handleExpandTocCommand(const QString &arg); + void handleSetCurrentFilterCommand(const QString &arg); + void handleRegisterCommand(const QString &arg); + void handleUnregisterCommand(const QString &arg); + +private: + MainWindow *m_mainWindow; + QUrl m_setSource; + QString m_activateKeyword; + QString m_activateIdentifier; + QString m_currentFilter; + HelpEngineWrapper &helpEngine; + int m_expandTOC = -2; + bool m_debug = false; + + bool m_caching = true; + bool m_syncContents = false; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/assistant/assistant/searchwidget.cpp b/src/assistant/assistant/searchwidget.cpp new file mode 100644 index 0000000..3c62fe7 --- /dev/null +++ b/src/assistant/assistant/searchwidget.cpp @@ -0,0 +1,208 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "tracer.h" + +#include "mainwindow.h" +#include "searchwidget.h" + +#include +#include +#include +#include + +#include +#include +#include +#if QT_CONFIG(clipboard) +#include +#endif +#include +#include + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +SearchWidget::SearchWidget(QHelpSearchEngine *engine, QWidget *parent) + : QWidget(parent) + , zoomCount(0) + , searchEngine(engine) +{ + TRACE_OBJ + QVBoxLayout *vLayout = new QVBoxLayout(this); + + resultWidget = searchEngine->resultWidget(); + QHelpSearchQueryWidget *queryWidget = searchEngine->queryWidget(); + + vLayout->addWidget(queryWidget); + vLayout->addWidget(resultWidget); + + setFocusProxy(queryWidget); + + connect(queryWidget, &QHelpSearchQueryWidget::search, + this, &SearchWidget::search); + connect(resultWidget, &QHelpSearchResultWidget::requestShowLink, + this, &SearchWidget::requestShowLink); + + connect(searchEngine, &QHelpSearchEngine::searchingStarted, + this, &SearchWidget::searchingStarted); + connect(searchEngine, &QHelpSearchEngine::searchingFinished, + this, &SearchWidget::searchingFinished); + + QTextBrowser* browser = resultWidget->findChild(); + if (browser) + browser->viewport()->installEventFilter(this); +} + +SearchWidget::~SearchWidget() +{ + TRACE_OBJ + // nothing todo +} + +void SearchWidget::zoomIn() +{ + TRACE_OBJ + QTextBrowser* browser = resultWidget->findChild(); + if (browser && zoomCount != 10) { + zoomCount++; + browser->zoomIn(); + } +} + +void SearchWidget::zoomOut() +{ + TRACE_OBJ + QTextBrowser* browser = resultWidget->findChild(); + if (browser && zoomCount != -5) { + zoomCount--; + browser->zoomOut(); + } +} + +void SearchWidget::resetZoom() +{ + TRACE_OBJ + if (zoomCount == 0) + return; + + QTextBrowser* browser = resultWidget->findChild(); + if (browser) { + browser->zoomOut(zoomCount); + zoomCount = 0; + } +} + +void SearchWidget::search() const +{ + TRACE_OBJ + searchEngine->search(searchEngine->queryWidget()->searchInput()); +} + +void SearchWidget::searchingStarted() +{ + TRACE_OBJ + qApp->setOverrideCursor(QCursor(Qt::WaitCursor)); +} + +void SearchWidget::searchingFinished(int searchResultCount) +{ + TRACE_OBJ + Q_UNUSED(searchResultCount); + qApp->restoreOverrideCursor(); +} + +bool SearchWidget::eventFilter(QObject* o, QEvent *e) +{ + TRACE_OBJ + QTextBrowser* browser = resultWidget->findChild(); + if (browser && o == browser->viewport() + && e->type() == QEvent::MouseButtonRelease){ + QMouseEvent *me = static_cast(e); + QUrl link = resultWidget->linkAt(me->pos()); + if (!link.isEmpty() || link.isValid()) { + bool controlPressed = me->modifiers() & Qt::ControlModifier; + if ((me->button() == Qt::LeftButton && controlPressed) + || (me->button() == Qt::MiddleButton)) { + emit requestShowLinkInNewTab(link); + } + } + } + return QWidget::eventFilter(o,e); +} + +void SearchWidget::keyPressEvent(QKeyEvent *keyEvent) +{ + TRACE_OBJ + if (keyEvent->key() == Qt::Key_Escape) + MainWindow::activateCurrentBrowser(); + else + keyEvent->ignore(); +} + +void SearchWidget::contextMenuEvent(QContextMenuEvent *contextMenuEvent) +{ + TRACE_OBJ + QMenu menu; + QPoint point = contextMenuEvent->globalPos(); + + QTextBrowser* browser = resultWidget->findChild(); + if (!browser) + return; + + point = browser->mapFromGlobal(point); + if (!browser->rect().contains(point, true)) + return; + + QUrl link = browser->anchorAt(point); + + QKeySequence keySeq; +#if QT_CONFIG(clipboard) + keySeq = QKeySequence::Copy; + QAction *copyAction = menu.addAction(tr("&Copy") + QLatin1Char('\t') + + keySeq.toString(QKeySequence::NativeText)); + copyAction->setEnabled(QTextCursor(browser->textCursor()).hasSelection()); + + QAction *copyAnchorAction = menu.addAction(tr("Copy &Link Location")); + copyAnchorAction->setEnabled(!link.isEmpty() && link.isValid()); +#endif + + keySeq = QKeySequence(Qt::CTRL); + QAction *newTabAction = menu.addAction(tr("Open Link in New Tab") + + QLatin1Char('\t') + keySeq.toString(QKeySequence::NativeText) + + QLatin1String("LMB")); + newTabAction->setEnabled(!link.isEmpty() && link.isValid()); + + menu.addSeparator(); + + keySeq = QKeySequence::SelectAll; + QAction *selectAllAction = menu.addAction(tr("Select All") + + QLatin1Char('\t') + keySeq.toString(QKeySequence::NativeText)); + + QAction *usedAction = menu.exec(mapToGlobal(contextMenuEvent->pos())); +#if QT_CONFIG(clipboard) + if (usedAction == copyAction) { + QTextCursor cursor = browser->textCursor(); + if (!cursor.isNull() && cursor.hasSelection()) { + QString selectedText = cursor.selectedText(); + QMimeData *data = new QMimeData(); + data->setText(selectedText); + QApplication::clipboard()->setMimeData(data); + } + } + else if (usedAction == copyAnchorAction) { + QApplication::clipboard()->setText(link.toString()); + } + else +#endif + if (usedAction == newTabAction) { + emit requestShowLinkInNewTab(link); + } + else if (usedAction == selectAllAction) { + browser->selectAll(); + } +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/searchwidget.h b/src/assistant/assistant/searchwidget.h new file mode 100644 index 0000000..11df479 --- /dev/null +++ b/src/assistant/assistant/searchwidget.h @@ -0,0 +1,52 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef SEARCHWIDGET_H +#define SEARCHWIDGET_H + +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class QMouseEvent; +class QHelpSearchEngine; +class QHelpSearchResultWidget; + +class SearchWidget : public QWidget +{ + Q_OBJECT + +public: + explicit SearchWidget(QHelpSearchEngine *engine, QWidget *parent = nullptr); + ~SearchWidget() override; + + void zoomIn(); + void zoomOut(); + void resetZoom(); + +signals: + void requestShowLink(const QUrl &url); + void requestShowLinkInNewTab(const QUrl &url); + +private slots: + void search() const; + void searchingStarted(); + void searchingFinished(int searchResultCount); + +private: + bool eventFilter(QObject* o, QEvent *e) override; + void keyPressEvent(QKeyEvent *keyEvent) override; + void contextMenuEvent(QContextMenuEvent *contextMenuEvent) override; + +private: + int zoomCount; + QHelpSearchEngine *searchEngine; + QHelpSearchResultWidget *resultWidget; +}; + +QT_END_NAMESPACE + +#endif // SEARCHWIDGET_H diff --git a/src/assistant/assistant/stdinlistener.cpp b/src/assistant/assistant/stdinlistener.cpp new file mode 100644 index 0000000..40cc555 --- /dev/null +++ b/src/assistant/assistant/stdinlistener.cpp @@ -0,0 +1,50 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "stdinlistener.h" + +#include "tracer.h" + +#include + +QT_BEGIN_NAMESPACE + +StdInListener::StdInListener(QObject *parent) + : QSocketNotifier(fileno(stdin), QSocketNotifier::Read, parent) +{ + TRACE_OBJ + connect(this, &QSocketNotifier::activated, + this, &StdInListener::receivedData); +} + +StdInListener::~StdInListener() +{ + TRACE_OBJ +} + +void StdInListener::start() +{ + setEnabled(true); +} + +void StdInListener::receivedData() +{ + TRACE_OBJ + QByteArray ba; + while (true) { + const int c = getc(stdin); + if (c == EOF) { + setEnabled(false); + break; + } + if (c == '\0') + break; + if (c) + ba.append(char(c)); + if (c == '\n') + break; + } + emit receivedCommand(QString::fromLocal8Bit(ba)); +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/stdinlistener.h b/src/assistant/assistant/stdinlistener.h new file mode 100644 index 0000000..b175a59 --- /dev/null +++ b/src/assistant/assistant/stdinlistener.h @@ -0,0 +1,31 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef STDINLISTENER_H +#define STDINLISTENER_H + +#include + +QT_BEGIN_NAMESPACE + +class StdInListener : public QSocketNotifier +{ + Q_OBJECT + +public: + StdInListener(QObject *parent); + ~StdInListener(); + +public slots: + void start(); + +signals: + void receivedCommand(const QString &cmd); + +private slots: + void receivedData(); +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/assistant/assistant/stdinlistener_win.cpp b/src/assistant/assistant/stdinlistener_win.cpp new file mode 100644 index 0000000..f7bb746 --- /dev/null +++ b/src/assistant/assistant/stdinlistener_win.cpp @@ -0,0 +1,48 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "stdinlistener_win.h" + +#include "tracer.h" + +QT_BEGIN_NAMESPACE + +StdInListener::StdInListener(QObject *parent) + : QThread(parent) +{ + TRACE_OBJ +} + +StdInListener::~StdInListener() +{ + TRACE_OBJ + terminate(); + wait(); +} + +void StdInListener::run() +{ + TRACE_OBJ + bool ok = true; + char chBuf[4096]; + DWORD dwRead; + HANDLE hStdinDup; + + const HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE); + if (hStdin == INVALID_HANDLE_VALUE) + return; + + DuplicateHandle(GetCurrentProcess(), hStdin, + GetCurrentProcess(), &hStdinDup, + 0, false, DUPLICATE_SAME_ACCESS); + + CloseHandle(hStdin); + + while (ok) { + ok = ReadFile(hStdinDup, chBuf, sizeof(chBuf), &dwRead, NULL); + if (ok && dwRead != 0) + emit receivedCommand(QString::fromLocal8Bit(chBuf, dwRead)); + } +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/stdinlistener_win.h b/src/assistant/assistant/stdinlistener_win.h new file mode 100644 index 0000000..0ddf572 --- /dev/null +++ b/src/assistant/assistant/stdinlistener_win.h @@ -0,0 +1,30 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef STDINLISTENER_WIN_H +#define STDINLISTENER_WIN_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class StdInListener : public QThread +{ + Q_OBJECT + +public: + StdInListener(QObject *parent); + ~StdInListener(); + +signals: + void receivedCommand(const QString &cmd); + +private: + void run() override; + bool ok; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/assistant/assistant/topicchooser.cpp b/src/assistant/assistant/topicchooser.cpp new file mode 100644 index 0000000..8553823 --- /dev/null +++ b/src/assistant/assistant/topicchooser.cpp @@ -0,0 +1,117 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "tracer.h" + +#include "topicchooser.h" +#include "helpenginewrapper.h" + +#include +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +TopicChooser::TopicChooser(QWidget *parent, const QString &keyword, const QList &docs) + : QDialog(parent) + , m_filterModel(new QSortFilterProxyModel(this)) +{ + TRACE_OBJ + ui.setupUi(this); + + setFocusProxy(ui.lineEdit); + ui.lineEdit->installEventFilter(this); + ui.lineEdit->setPlaceholderText(tr("Filter")); + ui.label->setText(tr("Choose a topic for %1:").arg(keyword)); + + QStandardItemModel *model = new QStandardItemModel(this); + m_filterModel->setSourceModel(model); + m_filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive); + + for (const auto &doc : docs) { + m_links.append(doc.url); + QStandardItem *item = new QStandardItem(doc.title); + item->setToolTip(doc.url.toString()); + model->appendRow(item); + } + + ui.listWidget->setModel(m_filterModel); + ui.listWidget->setUniformItemSizes(true); + ui.listWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); + + if (m_filterModel->rowCount() != 0) + ui.listWidget->setCurrentIndex(m_filterModel->index(0, 0)); + + connect(ui.buttonCancel, &QAbstractButton::clicked, + this, &QDialog::reject); + connect(ui.buttonDisplay, &QAbstractButton::clicked, + this, &TopicChooser::acceptDialog); + connect(ui.lineEdit, &QLineEdit::textChanged, + this, &TopicChooser::setFilter); + connect(ui.listWidget, &QAbstractItemView::activated, + this, &TopicChooser::activated); + + const QByteArray ba = HelpEngineWrapper::instance().topicChooserGeometry(); + if (!ba.isEmpty()) + restoreGeometry(ba); +} + +TopicChooser::~TopicChooser() +{ + HelpEngineWrapper::instance().setTopicChooserGeometry(saveGeometry()); +} + +QUrl TopicChooser::link() const +{ + TRACE_OBJ + if (m_activedIndex.isValid()) + return m_links.at(m_filterModel->mapToSource(m_activedIndex).row()); + return QUrl(); +} + +void TopicChooser::acceptDialog() +{ + TRACE_OBJ + m_activedIndex = ui.listWidget->currentIndex(); + accept(); +} + +void TopicChooser::setFilter(const QString &pattern) +{ + TRACE_OBJ + m_filterModel->setFilterFixedString(pattern); + if (m_filterModel->rowCount() != 0 && !ui.listWidget->currentIndex().isValid()) + ui.listWidget->setCurrentIndex(m_filterModel->index(0, 0)); +} + +void TopicChooser::activated(const QModelIndex &index) +{ + TRACE_OBJ + m_activedIndex = index; + accept(); +} + +bool TopicChooser::eventFilter(QObject *object, QEvent *event) +{ + TRACE_OBJ + if (object == ui.lineEdit && event->type() == QEvent::KeyPress) { + QKeyEvent *keyEvent = static_cast(event); + switch (keyEvent->key()) { + case Qt::Key_Up: + case Qt::Key_Down: + case Qt::Key_PageUp: + case Qt::Key_PageDown: + QCoreApplication::sendEvent(ui.listWidget, event); + break; + } + } else if (ui.lineEdit && event->type() == QEvent::FocusIn + && static_cast(event)->reason() != Qt::MouseFocusReason) { + ui.lineEdit->selectAll(); + ui.lineEdit->setFocus(); + } + return QDialog::eventFilter(object, event); +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/topicchooser.h b/src/assistant/assistant/topicchooser.h new file mode 100644 index 0000000..ea8b08e --- /dev/null +++ b/src/assistant/assistant/topicchooser.h @@ -0,0 +1,44 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef TOPICCHOOSER_H +#define TOPICCHOOSER_H + +#include "ui_topicchooser.h" + +#include + +QT_BEGIN_NAMESPACE + +class QSortFilterProxyModel; +struct QHelpLink; + +class TopicChooser : public QDialog +{ + Q_OBJECT + +public: + TopicChooser(QWidget *parent, const QString &keyword, const QList &docs); + ~TopicChooser() override; + + QUrl link() const; + +private slots: + void acceptDialog(); + void setFilter(const QString &pattern); + void activated(const QModelIndex &index); + +private: + bool eventFilter(QObject *object, QEvent *event) override; + +private: + Ui::TopicChooser ui; + QList m_links; + + QModelIndex m_activedIndex; + QSortFilterProxyModel *m_filterModel; +}; + +QT_END_NAMESPACE + +#endif // TOPICCHOOSER_H diff --git a/src/assistant/assistant/topicchooser.ui b/src/assistant/assistant/topicchooser.ui new file mode 100644 index 0000000..b28a5e7 --- /dev/null +++ b/src/assistant/assistant/topicchooser.ui @@ -0,0 +1,111 @@ + + + TopicChooser + + + TopicChooser + + + + 0 + 0 + 391 + 223 + + + + Choose Topic + + + true + + + + unnamed + + + 11 + + + 6 + + + + + label + + + &Topics + + + listWidget + + + + + + + + + + + + + unnamed + + + 0 + + + 6 + + + + + + 20 + 20 + + + + Expanding + + + Horizontal + + + + + + + buttonDisplay + + + &Display + + + true + + + true + + + + + + + buttonCancel + + + &Close + + + true + + + + + + + + diff --git a/src/assistant/assistant/tracer.h b/src/assistant/assistant/tracer.h new file mode 100644 index 0000000..03d8725 --- /dev/null +++ b/src/assistant/assistant/tracer.h @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef TRACER_H +#define TRACER_H + +#include + +QT_BEGIN_NAMESPACE + +class Tracer +{ +public: + Tracer(const char *func) : m_func(func) + { + qDebug("Entering function %s.", m_func); + } + + ~Tracer() + { + qDebug("Leaving function %s.", m_func); + } + +private: + const char * const m_func; +}; + +QT_END_NAMESPACE + +// #define TRACING_REQUESTED +#ifdef TRACING_REQUESTED +#define TRACE_OBJ Tracer traceObj__(Q_FUNC_INFO); +#else +#define TRACE_OBJ +#endif + +#endif // TRACER_H diff --git a/src/assistant/assistant/xbelsupport.cpp b/src/assistant/assistant/xbelsupport.cpp new file mode 100644 index 0000000..671575e --- /dev/null +++ b/src/assistant/assistant/xbelsupport.cpp @@ -0,0 +1,195 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "tracer.h" + +#include "xbelsupport.h" + +#include "bookmarkitem.h" +#include "bookmarkmodel.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +struct Bookmark { + QString title; + QString url; + bool folded; +}; + +XbelWriter::XbelWriter(BookmarkModel *model) + : QXmlStreamWriter() + , bookmarkModel(model) +{ + TRACE_OBJ + setAutoFormatting(true); +} + +void XbelWriter::writeToFile(QIODevice *device) +{ + TRACE_OBJ + setDevice(device); + + writeStartDocument(); + writeDTD(QLatin1String("")); + writeStartElement(QLatin1String("xbel")); + writeAttribute(QLatin1String("version"), QLatin1String("1.0")); + + const QModelIndex root; + for (int i = 0; i < bookmarkModel->rowCount(root); ++i) + writeData(bookmarkModel->index(i, 0, root)); + writeEndDocument(); +} + +void XbelWriter::writeData(const QModelIndex &index) +{ + TRACE_OBJ + if (index.isValid()) { + Bookmark entry; + entry.title = index.data().toString(); + entry.url = index.data(UserRoleUrl).toString(); + + if (index.data(UserRoleFolder).toBool()) { + writeStartElement(QLatin1String("folder")); + entry.folded = !index.data(UserRoleExpanded).toBool(); + writeAttribute(QLatin1String("folded"), entry.folded + ? QLatin1String("yes") : QLatin1String("no")); + writeTextElement(QLatin1String("title"), entry.title); + + for (int i = 0; i < bookmarkModel->rowCount(index); ++i) + writeData(bookmarkModel->index(i, 0 , index)); + writeEndElement(); + } else { + writeStartElement(QLatin1String("bookmark")); + writeAttribute(QLatin1String("href"), entry.url); + writeTextElement(QLatin1String("title"), entry.title); + writeEndElement(); + } + } +} + +// -- XbelReader + +XbelReader::XbelReader(BookmarkModel *model) + : QXmlStreamReader() + , bookmarkModel(model) +{ + TRACE_OBJ +} + +bool XbelReader::readFromFile(QIODevice *device) +{ + TRACE_OBJ + setDevice(device); + + while (!atEnd()) { + readNext(); + + if (isStartElement()) { + if (name() == QLatin1String("xbel") + && attributes().value(QLatin1String("version")) + == QLatin1String("1.0")) { + const QModelIndex root; + parents.append(bookmarkModel->addItem(root, true)); + readXBEL(); + bookmarkModel->setData(parents.first(), + QDate::currentDate().toString(Qt::ISODate), Qt::EditRole); + } else { + raiseError(QLatin1String("The file is not an XBEL version 1.0 file.")); + } + } + } + + return !error(); +} + +void XbelReader::readXBEL() +{ + TRACE_OBJ + while (!atEnd()) { + readNext(); + + if (isEndElement()) + break; + + if (isStartElement()) { + if (name() == QLatin1String("folder")) + readFolder(); + else if (name() == QLatin1String("bookmark")) + readBookmark(); + else + readUnknownElement(); + } + } +} + +void XbelReader::readFolder() +{ + TRACE_OBJ + parents.append(bookmarkModel->addItem(parents.last(), true)); + bookmarkModel->setData(parents.last(), + attributes().value(QLatin1String("folded")) == QLatin1String("no"), + UserRoleExpanded); + + while (!atEnd()) { + readNext(); + + if (isEndElement()) + break; + + if (isStartElement()) { + if (name() == QLatin1String("title")) { + bookmarkModel->setData(parents.last(), readElementText(), + Qt::EditRole); + } else if (name() == QLatin1String("folder")) + readFolder(); + else if (name() == QLatin1String("bookmark")) + readBookmark(); + else + readUnknownElement(); + } + } + + parents.removeLast(); +} + +void XbelReader::readBookmark() +{ + TRACE_OBJ + const QModelIndex &index = bookmarkModel->addItem(parents.last(), false); + if (BookmarkItem* item = bookmarkModel->itemFromIndex(index)) { + item->setData(UserRoleUrl, attributes().value(QLatin1String("href")) + .toString()); + } + + while (!atEnd()) { + readNext(); + + if (isEndElement()) + break; + + if (isStartElement()) { + if (name() == QLatin1String("title")) + bookmarkModel->setData(index, readElementText(), Qt::EditRole); + else + readUnknownElement(); + } + } +} + +void XbelReader::readUnknownElement() +{ + TRACE_OBJ + while (!atEnd()) { + readNext(); + + if (isEndElement()) + break; + + if (isStartElement()) + readUnknownElement(); + } +} + +QT_END_NAMESPACE diff --git a/src/assistant/assistant/xbelsupport.h b/src/assistant/assistant/xbelsupport.h new file mode 100644 index 0000000..2917922 --- /dev/null +++ b/src/assistant/assistant/xbelsupport.h @@ -0,0 +1,49 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef XBELSUPPORT_H +#define XBELSUPPORT_H + +#include +#include + +QT_FORWARD_DECLARE_CLASS(QIODevice) +QT_FORWARD_DECLARE_CLASS(QModelIndex) + +QT_BEGIN_NAMESPACE + +class BookmarkModel; + +class XbelWriter : public QXmlStreamWriter +{ +public: + XbelWriter(BookmarkModel *model); + void writeToFile(QIODevice *device); + +private: + void writeData(const QModelIndex &index); + +private: + BookmarkModel *bookmarkModel; +}; + +class XbelReader : public QXmlStreamReader +{ +public: + XbelReader(BookmarkModel *model); + bool readFromFile(QIODevice *device); + +private: + void readXBEL(); + void readFolder(); + void readBookmark(); + void readUnknownElement(); + +private: + BookmarkModel *bookmarkModel; + QList parents; +}; + +QT_END_NAMESPACE + +#endif // XBELSUPPORT_H diff --git a/src/assistant/help/CMakeLists.txt b/src/assistant/help/CMakeLists.txt new file mode 100644 index 0000000..f2673fb --- /dev/null +++ b/src/assistant/help/CMakeLists.txt @@ -0,0 +1,69 @@ +# Generated from help.pro. + +##################################################################### +## Help Module: +##################################################################### + +qt_internal_add_module(Help + SOURCES + qcompressedhelpinfo.cpp qcompressedhelpinfo.h + qfilternamedialog.cpp qfilternamedialog.ui qfilternamedialog_p.h + qhelp_global.cpp qhelp_global.h + qhelpcollectionhandler.cpp qhelpcollectionhandler_p.h + qhelpcontentwidget.cpp qhelpcontentwidget.h + qhelpdbreader.cpp qhelpdbreader_p.h + qhelpengine.cpp qhelpengine.h qhelpengine_p.h + qhelpenginecore.cpp qhelpenginecore.h + qhelpfilterdata.cpp qhelpfilterdata.h + qhelpfilterengine.cpp qhelpfilterengine.h + qhelpfiltersettings.cpp qhelpfiltersettings_p.h + qhelpfiltersettingswidget.cpp qhelpfiltersettingswidget.h qhelpfiltersettingswidget.ui + qhelpindexwidget.cpp qhelpindexwidget.h + qhelplink.cpp qhelplink.h + qhelpsearchengine.cpp qhelpsearchengine.h + qhelpsearchindexreader.cpp qhelpsearchindexreader_p.h + qhelpsearchindexreader_default.cpp qhelpsearchindexreader_default_p.h + qhelpsearchindexwriter_default.cpp qhelpsearchindexwriter_default_p.h + qhelpsearchquerywidget.cpp qhelpsearchquerywidget.h + qhelpsearchresultwidget.cpp qhelpsearchresultwidget.h + qoptionswidget.cpp qoptionswidget_p.h + DEFINES + # -QT_ASCII_CAST_WARNINGS # special case remove + QHELP_LIB + LIBRARIES + Qt::CorePrivate + Qt::Network + PUBLIC_LIBRARIES + Qt::Core + Qt::Gui + Qt::Sql + Qt::Widgets + PRIVATE_MODULE_INTERFACE + Qt::CorePrivate + ENABLE_AUTOGEN_TOOLS + uic +) + +# Resources: +set(helpsystem_resource_files + "images/1leftarrow.png" + "images/1rightarrow.png" + "images/3leftarrow.png" + "images/3rightarrow.png" + "images/mac/minus.png" + "images/mac/plus.png" + "images/win/minus.png" + "images/win/plus.png" +) + +qt_internal_add_resource(Help "helpsystem" + PREFIX + "/qt-project.org/assistant" + FILES + ${helpsystem_resource_files} +) + +qt_internal_add_docs(Help + doc/qthelp.qdocconf +) + diff --git a/src/assistant/help/doc/qthelp.qdocconf b/src/assistant/help/doc/qthelp.qdocconf new file mode 100644 index 0000000..9471222 --- /dev/null +++ b/src/assistant/help/doc/qthelp.qdocconf @@ -0,0 +1,40 @@ +include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) +include($QT_INSTALL_DOCS/config/exampleurl-qttools.qdocconf) + +project = QtHelp +description = Qt Help Reference Documentation +version = $QT_VERSION + +examplesinstallpath = help + +qhp.projects = QtHelp + +qhp.QtHelp.file = qthelp.qhp +qhp.QtHelp.namespace = org.qt-project.qthelp.$QT_VERSION_TAG +qhp.QtHelp.virtualFolder = qthelp +qhp.QtHelp.indexTitle = Qt Help +qhp.QtHelp.indexRoot = + +qhp.QtHelp.subprojects = classes +qhp.QtHelp.subprojects.classes.title = C++ Classes +qhp.QtHelp.subprojects.classes.indexTitle = Qt Help C++ Classes +qhp.QtHelp.subprojects.classes.selectors = class fake:headerfile +qhp.QtHelp.subprojects.classes.sortPages = true + +language = Cpp + +depends += qtdoc qtcore qtwidgets qmake + +headerdirs += .. + +sourcedirs += .. + +exampledirs = ../../../../examples/help \ + snippets + +imagedirs = images + +navigation.landingpage = "Qt Help" +navigation.cppclassespage = "Qt Help C++ Classes" + +warninglimit = 0 diff --git a/src/assistant/help/doc/snippets/doc_src_qthelp.cpp b/src/assistant/help/doc/snippets/doc_src_qthelp.cpp new file mode 100644 index 0000000..7498c22 --- /dev/null +++ b/src/assistant/help/doc/snippets/doc_src_qthelp.cpp @@ -0,0 +1,22 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +//! [6] +QHelpEngineCore helpEngine("mycollection.qhc"); +... + +// get all file references for the identifier +QList links = + helpEngine.documentsForIdentifier(QLatin1String("MyDialog::ChangeButton")); + +// If help is available for this keyword, get the help data +// of the first file reference. +if (links.count()) { + QByteArray helpData = helpEngine->fileData(links.constBegin()->url); + // show the documentation to the user + if (!helpData.isEmpty()) + displayHelp(helpData); +} +//! [6] + + diff --git a/src/assistant/help/doc/snippets/doc_src_qthelp.qdoc b/src/assistant/help/doc/snippets/doc_src_qthelp.qdoc new file mode 100644 index 0000000..605e57b --- /dev/null +++ b/src/assistant/help/doc/snippets/doc_src_qthelp.qdoc @@ -0,0 +1,138 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +//! [1] +QT += help +//! [1] + + +//! [2] +qhelpgenerator doc.qhp -o doc.qch +//! [2] + + +//! [3] + + + + + doc.qch + + + +//! [3] + + +//! [4] +qhelpgenerator mycollection.qhcp -o mycollection.qhc +//! [4] + + +//! [5] +... + + + + doc.qhp + doc.qch + + + + doc.qch + + +... +//! [5] + + +//! [7] + + + mycompany.com.myapplication.1.0 + doc + + myapp + 1.0 + + + myapp + 1.0 + +
+
+
+
+
+ + + + + + + + classic.css + *.html + + + +//! [7] + + +//! [8] +... +doc +... +//! [8] + + +//! [9] +... + + myapp + 1.0 + +... +//! [9] + + +//! [10] +... + + myapp + 1.0 +... +//! [10] + + +//! [11] +... + +
+
+
+
+
+ +... +//! [11] + + +//! [12] +... + + + + + +... +//! [12] + + +//! [13] +... + + classic.css + *.html + +... +//! [13] diff --git a/src/assistant/help/doc/src/qthelp-examples.qdoc b/src/assistant/help/doc/src/qthelp-examples.qdoc new file mode 100644 index 0000000..e2191bb --- /dev/null +++ b/src/assistant/help/doc/src/qthelp-examples.qdoc @@ -0,0 +1,23 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \group examples-qthelp + \ingroup all-examples + \title Qt Help Examples + \brief Adding context-sensitive help to Qt applications. + + The Qt help system includes tools for generating and viewing Qt help files. + In addition, it provides classes for accessing help contents programatically + to be able to integrate online help into Qt applications. + + The following example illustrates how to add context-sensitive help to + applications. + +*/ + +/* + \list + \li \l{contextsensitivehelp}{Context-Sensitive Help} + \endlist +*/ diff --git a/src/assistant/help/doc/src/qthelp-index.qdoc b/src/assistant/help/doc/src/qthelp-index.qdoc new file mode 100644 index 0000000..f97ed41 --- /dev/null +++ b/src/assistant/help/doc/src/qthelp-index.qdoc @@ -0,0 +1,41 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \page qthelp-index.html + \title Qt Help + + \brief The QtHelp module provides classes for integrating + online documentation in applications. + + \section1 Getting Started + + To link against the Qt Help module, add this line to the project file: + + \snippet doc_src_qthelp.qdoc 1 + + \section1 Articles and Guides + + The classes and tools supplied with Qt to enable developers to include + online help and documentation in their applications are described in + more detail in \l{The Qt Help Framework}. + + \section1 API Reference + + These are links to the API reference material: + + \list + \li \l{Qt Help C++ Classes}{C++ Classes} + \endlist + + \section1 License Information + + Qt Help is available under commercial licenses from \l{The Qt Company}. + In addition, it is available under free software licenses. Since Qt 5.4, + these free software licenses are + \l{GNU Lesser General Public License, version 3}, or + the \l{GNU General Public License, version 2}. + See \l{Qt Licensing} for further details. + + \generatelist{groupsbymodule attributions-qthelp} +*/ diff --git a/src/assistant/help/doc/src/qthelp-module.qdoc b/src/assistant/help/doc/src/qthelp-module.qdoc new file mode 100644 index 0000000..3308b95 --- /dev/null +++ b/src/assistant/help/doc/src/qthelp-module.qdoc @@ -0,0 +1,23 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \module QtHelp + \title Qt Help C++ Classes + \ingroup modules + \qtcmakepackage Help + \qtvariable help + + \brief Provides classes for integrating online documentation in + applications. + + The classes and tools supplied with Qt to enable developers to include + online help and documentation in their applications are described in + more detail in \l{The Qt Help Framework} overview document. + + To link against the module, add this line to your \l qmake \c + .pro file: + + \snippet doc_src_qthelp.qdoc 1 + +*/ diff --git a/src/assistant/help/doc/src/qthelp.qdoc b/src/assistant/help/doc/src/qthelp.qdoc new file mode 100644 index 0000000..2c010b8 --- /dev/null +++ b/src/assistant/help/doc/src/qthelp.qdoc @@ -0,0 +1,284 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \group helpsystem + \title Help System + \ingroup groups + + \brief Classes used to provide online-help for applications. + + \keyword help system + + These classes provide online-help for your application, + with three levels of detail: + + \list 1 + \li Tool Tips and Status Bar message - flyweight help, extremely brief, + entirely integrated in the user interface, requiring little + or no user interaction to invoke. + \li What's This? - lightweight, but can be + a three-paragraph explanation. + \li Online Help - can encompass any amount of information, + but is typically slower to call up, somewhat separated + from the user's work, and often users feel that using online + help is a digression from their real task. + \endlist + +*/ + +/*! + \page qthelp-framework.html + \title The Qt Help Framework + \brief Integrating Documentation in Applications + \ingroup frameworks-technologies + + \section1 Overview + The Qt help system includes tools for generating and viewing + Qt help files. In addition, it provides classes for accessing + help contents programmatically to be able to integrate online + help into Qt applications. + + The actual help data, meaning the table of contents, index + keywords, or HTML documents, is contained in Qt compressed help + files. So, one such a help file represents usually one manual + or documentation set. Since most products are more comprehensive + and consist of a number of tools, one manual is rarely enough. + Instead, more manuals, which should be accessible at the same + time, exist. Ideally, it should also be possible to reference + certain points of interest of one manual to another. + Therefore, the Qt help system operates on help collection files, + which include any number of compressed help files. + + However, having collection files to merge many documentation + sets may lead to some problems. For example, one index keyword + may be defined in different documentation sets. So, when only seeing + a keyword in the index and activating it, you cannot be sure that + the expected documentation will be shown. Therefore, the Qt + help system offers the possibility to filter the help contents + after certain attributes. This requires, however, that the + attributes have been assigned to the help contents before the + generation of the compressed help file. + + As already mentioned, the Qt compressed help file contains all + data, so there is no need any longer to ship all the single HTML + files. Instead, only the compressed help file and, optionally, the + collection file have to be distributed. The collection file is + optional since any existing collection file, for example from an older + release, could be used. + + So, in general, there are four files interacting with the help + system, two used for generating Qt help and two meant for + distribution: + + \table + \header + \li Name + \li Extension + \li Brief Description + \row + \li \l {Qt Help Project} + \li .qhp + \li Contains the table of contents, indices, and references to the + actual documentation files (*.html). It also defines a unique + namespace for the documentation. This file is passed to the help + generator for creating a compressed help file. + + \row + \li Qt Compressed Help + \li .qch + \li Contains all the information specified in the help project file + along with all the compressed documentation files. + + \row + \li \l {Qt Help Collection Project} + \li .qhcp + \li An XML file that contains references to the compressed help + files that should be included in the help collection. This file + can be passed to the help generator for creating a help collection + file. + + \row + \li Qt Help Collection + \li .qhc + \li The help collection file that QHelpEngine operates on. It can + contain references to any number of compressed help files as + well as additional information. + \endtable + + \section1 Generating Qt Help + + Building help files for the Qt help system assumes that the HTML + documentation files already exist. + + Once the HTML documents are in place, a \l {Qt Help Project} file, with + an extension of \c .qhp, has to be created. After specifying all the relevant + information in this file, it needs to be compiled by calling: + + \snippet doc_src_qthelp.qdoc 2 + + The file \e doc.qch contains all the HTML files in compressed + form along with the table of contents and index keywords. To + test if the generated file is correct, open Qt Assistant and + install the file in \uicontrol Settings > \uicontrol Documentation. + + For the standard Qt source build, the .qhp file is generated and placed + in the same directory as the HTML pages. + + \target Qt Help Collection Project + \section2 Creating a Qt Help Collection + + The first step is to create a Qt Help Collection Project file. + Since a Qt help collection stores primarily references to + compressed help files, the project \e mycollection.qhcp file + looks unsurprisingly simple: + + \snippet doc_src_qthelp.qdoc 3 + + For actually creating the collection file call: + + \snippet doc_src_qthelp.qdoc 4 + + To generate both the compressed help and the collection file in one go, + modify the help collection project file so that it instructs the help + generator to create the compressed help first: + + \snippet doc_src_qthelp.qdoc 5 + + Of course, it is possible to specify more than one file in the + \c generate or \c register section, so any number of compressed + help files can be generated and registered in one go. + + \section1 Using QHelpEngine API + + QHelpEngine allows embedding the help contents directly in an + application. + + Instead of showing the help in an external application such as a + web browser, it is also possible to embed the online help in + the application. The contents can then be retrieved via the + QHelpEngine class and can be displayed in nearly any form. + Showing the help in a QTextBrowser is probably the most common way, but + embedding it in What's This help is also perfectly possible. + + Retrieving help data from the file engine does not involve a + lot of code. The first step is to create an instance of the + help engine. Then we ask the engine for the links assigned to + the identifier, in this case \c MyDialog::ChangeButton. If a link + was found, meaning at least one help document exists on this topic, + we get the actual help contents by calling QHelpEngineCore::fileData() and + display the document to the user. + + \snippet doc_src_qthelp.cpp 6 + + For further information on how to use the API, have a look at + the QHelpEngine class reference. +*/ + +/*! + \page qthelpproject.html + \title Qt Help Project + + A Qt help project collects all data necessary to generate a + compressed help file. Along with the actual help data, like + the table of contents, index keywords and help documents, it + contains some extra information like a namespace to identify + the help file. One help project stands for one documentation set, + for example the \l{qmake Manual}. + + \section1 Qt Help Project File Format + + The file format is XML-based. For a better understanding of + the format we will discuss the following example: + + \snippet doc_src_qthelp.qdoc 7 + + \section2 Namespace + + To enable the QHelpEngine to retrieve the proper documentation to + a given link, every documentation set has to have a unique + identifier. A unique identifier also makes it possible for the + help collection to keep track of a documentation set without relying + on its file name. The Qt help system uses a namespace as identifier + which is defined by the mandatory namespace tags. In the example + above, the namespace is "mycompany.com.myapplication.1.0". + + \target Virtual Folders + \section2 Virtual Folders + + Having a namespace for every documentation set naturally means that + the documentation sets are quite separated. From the help engine's + point of view, this is beneficial. However, from the writer's view + it is often desirable to cross reference certain topics from one + manual to another without having to specify absolute links. To + solve this problem, the help system introduced the concept of + virtual folders. + + A virtual folder will become the root directory of all files + referenced in a compressed help file. When two documentation sets + share the same virtual folder, they can use relative paths when + defining hyperlinks pointing to each other. If a file is contained + in both documentation sets, the one from the current set has + precedence over the other. + + \snippet doc_src_qthelp.qdoc 8 + + The above example specifies \e doc as virtual folder. If another + manual specifies the same folder, for example for a small helper + tool \e {My Application}, it is sufficient to write + \e {doc.html#section1} to reference the first section in the + \e {My Application} manual. + + The virtual folder tag is mandatory and the folder name must not + contain any slashes (/). + + \target Filter Section + \section2 Filter Section + + A filter section contains the actual documentation. A Qt help project + file may contain more than one filter section. Every filter section + consists of the table of contents, the keywords, and the files list. + In theory all parts are optional but not specifying anything there will + result in an empty documentation set. + + \section3 Table of Contents + + \snippet doc_src_qthelp.qdoc 11 + + One section tag represents one item in the table of contents. The + sections can be nested to any degree, but from a user's perspective + it should not be more than four or five levels. A section is defined + by its title and reference. The reference, like all file references in a Qt + help project, are relative to the help project file itself. + \note The referenced files must be in the same directory as the help + project file (or in a subdirectory). An absolute file path is not supported + either. + + \section3 Keywords + + \snippet doc_src_qthelp.qdoc 12 + + The keyword section lists all keywords of this filter section. A + keyword consists basically of a name and a file reference. If the + attribute \e name is used, the keyword specified there will appear in the + visible index. That is, it will be accessible through the QHelpIndexModel + class. If \e id is used, the keyword does not appear in the index and is + only accessible via \l QHelpEngineCore::documentsForIdentifier(). \e name + and \e id can be specified at the same time. + + \section3 Files + + \snippet doc_src_qthelp.qdoc 13 + + Finally, the actual documentation files have to be listed. Make sure + that all files necessary to display the help are mentioned. That is, + stylesheets or similar files need to be listed as well. The files, like all + file references in a Qt help project, are relative to the help project file + itself. As the example shows, files (but not directories) can also be + specified as patterns using wildcards. All listed files will be compressed + and written to the Qt compressed help file. So, in the end, one single Qt + help file contains all documentation files along with the contents and + indices. \note The referenced files must be inside the same directory + as the help project file (or in a subdirectory). An absolute file path + is not supported either. +*/ diff --git a/src/assistant/help/images/1leftarrow.png b/src/assistant/help/images/1leftarrow.png new file mode 100644 index 0000000000000000000000000000000000000000..bd1a5a2499af38761bd8db135b4c0ea537789bb5 GIT binary patch literal 669 zcmeAS@N?(olHy`uVBq!ia0vp^0w65F1|^Y9 z4OYz%b8PKlAcrl<+uh|q7;r{>zr(=5_{-D9F~s9|a>4?k58u9h;^J^vesi7E3kFM$ zy+6cS%r>{IT)gS1&l-VS6ZoCZ-{o0of2aAv|NqV}g2Xn-HarWi$FbGJSt_*tP;dx)$nsaKWpZQ~+Khi}F$ z_x3QoN?ze?cii!@nYhzxx%R9a#j}hXZ(or4AYse3U<-qKi{E|zh3hMwP4_ilC|}4X z;`r3{oq#y2A%CE3!2W&*rIw3a7p~k9WbGA7<@l@5<|N;IEZ4v!x1cD&T)j>HDkJY_ z&S}gUsxg*ZIDA_#Xd5YfDbLlo%W_sUp!8YaieHQWEw);)ao(Y(4(3_D%~uvaWxA61 z-)EuXRyn8bpPaar)I-=!js~sPXuG7eP+(Vqk;&Q{jXKdWqb_sJ0ICNGToB{rVFL2kcg7t z{Irtt#G+INhKgI-`uf*TpE<4P=cnUw^|ZbhJA>H`wg`dXQ!zl*44$rjF6*2UngG*7 B3pfA( literal 0 HcmV?d00001 diff --git a/src/assistant/help/images/1rightarrow.png b/src/assistant/help/images/1rightarrow.png new file mode 100644 index 0000000000000000000000000000000000000000..0c0c44ae6ffdf8c7cf75664b16388bf18fc8f699 GIT binary patch literal 706 zcmV;z0zLhSP)8wDn%-V5Q7wjD2g_vcv)zpEfSh3Fi-uuuk#)M6HdKO1IRJutVe~sron3TC{ zsr1E|n(&#nct0L!4V|!ZpwvoiQK_b$s&_i^%}Fd#z_`KX|24PD`%wX!(BTNTg=P@@ z4$P=lN&B>;e{e1vyXr9hiS-Ansdu9SXzLxnBMV@ebPO9u(LZROE}v85eAYxwxV;Y- z(=h+xzm*`q7Ee{-uoe!+;^Yl%y^d+V&=TnQ^%N_>87wGYdBNC3Jgn0)(5!iFI<9KY zp52(PCbcK5)`ZfdCt2)QfC=;WtQ4IV^^9L#zR-X#%J7hC91|DzqA~|`-&BBZ9kWY# zSqsc4KtRWANcYF_fNsXoh;K%7Lf2WdS-$C zUX8yH<(HA=5!KGCdmuj<*BAV+*YRK7E!{y~a)){V001I-R9JLVZ)S9NVRB^v0C?If oFE7{2%*!rLPAo{(%P&d?05;eLSP)anTmS$707*qoM6N<$g03ApKmY&$ literal 0 HcmV?d00001 diff --git a/src/assistant/help/images/3leftarrow.png b/src/assistant/help/images/3leftarrow.png new file mode 100644 index 0000000000000000000000000000000000000000..8d38b0f5782eb432de9890e0c4a7c806290697ca GIT binary patch literal 832 zcmV-G1Hb%)+51es$zUMqI zM`Da~AtWi;LM_Z|Q~#gok8{QpCGHV&TkN`OVCgCBsD<`urUA(VYP4|U8Q7W&t>@AN z$g7~|1#CC`EkN~zEWSlo^5 z5??M_`d)H{?Ne-5n{Y$u3H;IzZ&t!Bw5m0Z)KjFR0Vf_qmyZID#{&)o%n!=n%X-$! zJ_xtd%MGkv*%bA2GczgHxiZ`^Os{(PNto@8ujW54PThG5SOfcdD4;75FlD}1J}v9n z9X2VPP9HB}4a$aS9R<*h_m{w(HkegC&j8wv{ub!IKmq>56c~AhFv)t%z1z;3dA_*f z`btv}zztIt_?h;zBM8@a(ty>er(nf(_+}D%D(C_7)9(T-!ZBsQ7_<#aR9@Nu2WsHV zU0PfR;i*?J@0}{3kOJrd`qxo_vcPS)s0~(ahTa+Y(+!`6p!i6;q5zH?D1Z*8toHwO z5b5ZZ+BuzkbP`7B;2ENGA>^Wf4hrz816EVO2nDRq@F{oBVVdk&U8qP1g(jo~yOqnIVFuxNOppX1b1l}m3z+a0_93kvr>Fx650 zumAu6B6?I2D?NY%?PN(TTo*alb-Q_5Tb0000< KMNUMnLSTY|=Wf0L literal 0 HcmV?d00001 diff --git a/src/assistant/help/images/3rightarrow.png b/src/assistant/help/images/3rightarrow.png new file mode 100644 index 0000000000000000000000000000000000000000..c2faf501ccf7bd265ef8d99367a6eba02839701e GIT binary patch literal 820 zcmV-41Izr0P)HqSe~k;sVXVg)9sH$yEN zO$sl}iy)>K%^-s6YD$!*7EVO_Fhkizk+2XlANC+t-&Hf2DD53F)iIZ-?O99yS1?FGnx?_JED12h|9CTV> zeQlfo>F?pI8W;@1w*#3N8qDTn7b9)9>Nb==(oZ+;8fu|dx zH%pkPT(K-}7aD3;^h=p^MWo1U_UGg!w|p1%M`?WiC)UCztx&It*X`lYYk9>=xHmkj z5Fi*7dDNif2ZPi_3({q87HQO^WJCvO=dQ1Y163S=V!yGv85Z7z&KCH!63$yh8C58z zj%Kn6gSvLT&_$HOD=?}Gzlwbh*s>39uK&-g_*t9)+UtDd-Gd!F;qD%8 zx~zZu7-@{Kdj{GHe+P(toHRV4rg3FI$2&ekLm)K%3p`CV)wnDoDgXcgB6?I2D?NY%?PN(TTo*alb-Q_5Tb00008XoPuMz?Y|Rw{0vjgv+B!ch zy;dm_ut20@$;9K+a_T>ye{*<+*6l4ly3tG?44ev#Dh)O)`svI2yTab}@8^|GHkfho zNeOTfAYE#xV zTYdQ2V(!{EY<(cpv1OlC|Mk$nFJwxr5_&M{ssYb!Y!6iMT-Lnu z^%LX6O%qa2gs^lmow~IC?DKoCclAn#7p^FN%^<|Ei6_mNUm#sTTOc~pY5nu>t=(d~ zq~A~M3_fyFjkTusWO04OyzP?5OwSte2Tr^2{`Z+?r;S>P_p|Ifa>5t{+wz6q>78?A zjm)yTU*U1P=G*Jdx;OcCUKB)#cx$;a{ezuM^;+MJ)Bq-|n aKk(|Y38wz&&UFFC3WKMspUXO@geCxP=D{TZ literal 0 HcmV?d00001 diff --git a/src/assistant/help/images/mac/plus.png b/src/assistant/help/images/mac/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..1ee45423e3958221bd545ee6f122d989302cab3f GIT binary patch literal 810 zcmV+_1J(SAP)B<|3F)+>u<}zfuZe7)NT=Ybf%p@9RIu@KocNNrs{{OFYs@fvL zX^u9hJWdQiy;9GCE&}Y4r^W#*azk#i!X z0tQeD-}3nENIJp}&;hlob6(uM5O*#)UjX|Y5+K#c2tsS zZMN$5yBRrqOa_ap_a;nIVsn9|z+v%N9CfB%If8gRp1^qXR>?32 z*3w6Ivpw-?m;j)qg+kXMEtJw|G)lG5(gLLcMIhjghO{k_bu#)CdcjL^)(HV4rIl#l9 z`bJLq*V>D~Rp82RirDxVP5}7Rn~Yjj!U$|-YlH0pxKM8{H$~096rTrE8Kjh7nlCq5 ziUE@h66K&=O}1m34oT2-J2r6&15LJLTiV(KGC9`_1Eo1-3Ch!yU=dz^csbc-8xNq17Gynhq07*qoM6N<$f^&^p>Hq)$ literal 0 HcmV?d00001 diff --git a/src/assistant/help/images/win/minus.png b/src/assistant/help/images/win/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..c0dc274bb4fe04dab9220c9ce39fd3be89d08712 GIT binary patch literal 429 zcmV;e0aE^nP)<@ELK+5mf)&HQGufU<-T zBC6sBQo0Xen_HG(wsrovyXEZt)A|7JAZq=LG0fYAshlbGju?6^H$ z#q(M~k{(Y_p6_Q@bMy9cg{q}Civ;D|6cXpd;j(ejj!kV}hyJi>_p9gx{<*+6 XZ_4%z@%F;;00000NkvXXu0mjf6#2YG literal 0 HcmV?d00001 diff --git a/src/assistant/help/images/win/plus.png b/src/assistant/help/images/win/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..ecf0589415464d3a432931d311c32550a53dae8d GIT binary patch literal 709 zcmV;$0y_PPP)g)r>qUh;|~v(@^U5(^ERwC$Wgg^wRYFo4c>EYN#})l#)s+lz`Uq(7pmE4yTs= z$A8!jT{g?FZ1_#K{1zSCp<_C9vJUOdc2h*;aEV;V_>!-aX@ZdyqxEuF$*_^dM)lR< zaO$~lW_jno^TX{!&cE(qMrKZWP-sCK4ltzHkYOalh{0hn7##h{V~?pkZ_97&>H!>g zPB`)`9v-Q*qS8Pmfqc}bBDSLd-Hfb=R)cuIN$5N!K8n4F7w^#3-ZgN*? z{A}?2(K8e|fmF(=;jifD5*f0llI(UO r(pvkt);u!M&-s-o&^cYW>~G6o+k}(Vi#=;y00000NkvXXu0mjfTZTZ= literal 0 HcmV?d00001 diff --git a/src/assistant/help/qcompressedhelpinfo.cpp b/src/assistant/help/qcompressedhelpinfo.cpp new file mode 100644 index 0000000..97184ac --- /dev/null +++ b/src/assistant/help/qcompressedhelpinfo.cpp @@ -0,0 +1,148 @@ +// Copyright (C) 2019 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qcompressedhelpinfo.h" + +#include "qhelpdbreader_p.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +class QCompressedHelpInfoPrivate : public QSharedData +{ +public: + QCompressedHelpInfoPrivate() = default; + QCompressedHelpInfoPrivate(const QCompressedHelpInfoPrivate &other) + : QSharedData(other) + , m_namespaceName(other.m_namespaceName) + , m_component(other.m_component) + , m_version(other.m_version) + , m_isNull(other.m_isNull) + { } + ~QCompressedHelpInfoPrivate() = default; + + QString m_namespaceName; + QString m_component; + QVersionNumber m_version; + bool m_isNull = true; +}; + +/*! + \class QCompressedHelpInfo + \since 5.13 + \inmodule QtHelp + \brief The QCompressedHelpInfo class provides access to + the details about a compressed help file. + + The detailed information about the compressed + help file can be fetched by calling the fromCompressedHelpFile() + static method, providing the path to the compressed + help file. + + The class provides access to various information about a compressed help file. + The namespace associated with the given compressed help file is + namespaceName(), the associated component name is component() + and version() provides version information. + + \sa QHelpFilterEngine +*/ + +/*! + Constructs empty information about a compressed help file. +*/ +QCompressedHelpInfo::QCompressedHelpInfo() + : d(new QCompressedHelpInfoPrivate) +{ +} + +/*! + Constructs a copy of \a other. +*/ +QCompressedHelpInfo::QCompressedHelpInfo(const QCompressedHelpInfo &) = default; + +/*! + Move-constructs a QCompressedHelpInfo instance, + making it point to the same object that \a other was pointing to, + so that it contains the information the \a other used to contain. +*/ +QCompressedHelpInfo::QCompressedHelpInfo(QCompressedHelpInfo &&) = default; + +/*! + Destroys the QCompressedHelpInfo. +*/ +QCompressedHelpInfo::~QCompressedHelpInfo() = default; + +/*! + Makes this QHelpCollectionDetails into a copy of \a other, so the two + are identical, and returns a reference to this QHelpCollectionDetails. +*/ +QCompressedHelpInfo &QCompressedHelpInfo::operator=(const QCompressedHelpInfo &) = default; + +/*! + Move-assigns \a other to this QCompressedHelpInfo instance. +*/ +QCompressedHelpInfo &QCompressedHelpInfo::operator=(QCompressedHelpInfo &&) = default; + +/*! + \fn void QCompressedHelpInfo::swap(QCompressedHelpInfo &other) + + Swaps the compressed help file \a other with this compressed help file. This + operation is very fast and never fails. +*/ + +/*! + Returns the namespace name of the compressed help file. +*/ +QString QCompressedHelpInfo::namespaceName() const +{ + return d->m_namespaceName; +} + +/*! + Returns the component of the compressed help file. +*/ +QString QCompressedHelpInfo::component() const +{ + return d->m_component; +} + +/*! + Returns the version of the compressed help file. +*/ +QVersionNumber QCompressedHelpInfo::version() const +{ + return d->m_version; +} + +/*! + Returns \c true if the info is invalid, otherwise returns + \c false. +*/ +bool QCompressedHelpInfo::isNull() const +{ + return d->m_isNull; +} + +/*! + Returns the QCompressedHelpInfo instance for the + \a documentationFileName of the existing qch file. +*/ +QCompressedHelpInfo QCompressedHelpInfo::fromCompressedHelpFile(const QString &documentationFileName) +{ + QHelpDBReader reader(documentationFileName, + QHelpGlobal::uniquifyConnectionName(QLatin1String("GetCompressedHelpInfo"), + QThread::currentThread()), nullptr); + if (reader.init()) { + QCompressedHelpInfo info; + info.d->m_namespaceName = reader.namespaceName(); + info.d->m_component = reader.virtualFolder(); + info.d->m_version = QVersionNumber::fromString(reader.version()); + info.d->m_isNull = false; + return info; + } + return QCompressedHelpInfo(); +} + +QT_END_NAMESPACE diff --git a/src/assistant/help/qcompressedhelpinfo.h b/src/assistant/help/qcompressedhelpinfo.h new file mode 100644 index 0000000..18f2a89 --- /dev/null +++ b/src/assistant/help/qcompressedhelpinfo.h @@ -0,0 +1,43 @@ +// Copyright (C) 2019 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QCOMPRESSEDHELPINFO_H +#define QCOMPRESSEDHELPINFO_H + +#include + +#include + +QT_BEGIN_NAMESPACE + +class QVersionNumber; +class QCompressedHelpInfoPrivate; + +class QHELP_EXPORT QCompressedHelpInfo final +{ +public: + QCompressedHelpInfo(); + QCompressedHelpInfo(const QCompressedHelpInfo &other); + QCompressedHelpInfo(QCompressedHelpInfo &&other); + ~QCompressedHelpInfo(); + + QCompressedHelpInfo &operator=(const QCompressedHelpInfo &other); + QCompressedHelpInfo &operator=(QCompressedHelpInfo &&other); + + void swap(QCompressedHelpInfo &other) Q_DECL_NOTHROW + { d.swap(other.d); } + + QString namespaceName() const; + QString component() const; + QVersionNumber version() const; + bool isNull() const; + + static QCompressedHelpInfo fromCompressedHelpFile(const QString &documentationFileName); + +private: + QSharedDataPointer d; +}; + +QT_END_NAMESPACE + +#endif // QHELPCOLLECTIONDETAILS_H diff --git a/src/assistant/help/qfilternamedialog.cpp b/src/assistant/help/qfilternamedialog.cpp new file mode 100644 index 0000000..c64a37d --- /dev/null +++ b/src/assistant/help/qfilternamedialog.cpp @@ -0,0 +1,40 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include + +#include "qfilternamedialog_p.h" + +QT_BEGIN_NAMESPACE + +QFilterNameDialog::QFilterNameDialog(QWidget *parent) + : QDialog(parent) +{ + m_ui.setupUi(this); + connect(m_ui.buttonBox->button(QDialogButtonBox::Ok), &QAbstractButton::clicked, + this, &QDialog::accept); + connect(m_ui.buttonBox->button(QDialogButtonBox::Cancel), &QAbstractButton::clicked, + this, &QDialog::reject); + connect(m_ui.lineEdit, &QLineEdit::textChanged, + this, &QFilterNameDialog::updateOkButton); + m_ui.buttonBox->button(QDialogButtonBox::Ok)->setDisabled(true); +} + +void QFilterNameDialog::setFilterName(const QString &filter) +{ + m_ui.lineEdit->setText(filter); + m_ui.lineEdit->selectAll(); +} + +QString QFilterNameDialog::filterName() const +{ + return m_ui.lineEdit->text(); +} + +void QFilterNameDialog::updateOkButton() +{ + m_ui.buttonBox->button(QDialogButtonBox::Ok) + ->setDisabled(m_ui.lineEdit->text().isEmpty()); +} + +QT_END_NAMESPACE diff --git a/src/assistant/help/qfilternamedialog.ui b/src/assistant/help/qfilternamedialog.ui new file mode 100644 index 0000000..1da584a --- /dev/null +++ b/src/assistant/help/qfilternamedialog.ui @@ -0,0 +1,55 @@ + + + FilterNameDialogClass + + + + 0 + 0 + 312 + 77 + + + + Add Filter + + + + + + Filter Name: + + + + + + + + + + Qt::Vertical + + + + 20 + 1 + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + diff --git a/src/assistant/help/qfilternamedialog_p.h b/src/assistant/help/qfilternamedialog_p.h new file mode 100644 index 0000000..9836066 --- /dev/null +++ b/src/assistant/help/qfilternamedialog_p.h @@ -0,0 +1,42 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef QFILTERNAMEDIALOG_H +#define QFILTERNAMEDIALOG_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of the help generator tools. This header file may change from version +// to version without notice, or even be removed. +// +// We mean it. +// + +#include +#include "ui_qfilternamedialog.h" + +QT_BEGIN_NAMESPACE + +class QFilterNameDialog : public QDialog +{ + Q_OBJECT + +public: + QFilterNameDialog(QWidget *parent = nullptr); + + void setFilterName(const QString &filter); + QString filterName() const; + +private slots: + void updateOkButton(); + +private: + Ui::FilterNameDialogClass m_ui; +}; + +QT_END_NAMESPACE + +#endif // QFILTERNAMEDIALOG_H diff --git a/src/assistant/help/qhelp_global.cpp b/src/assistant/help/qhelp_global.cpp new file mode 100644 index 0000000..585f99a --- /dev/null +++ b/src/assistant/help/qhelp_global.cpp @@ -0,0 +1,39 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include +#include +#include +#include +#include + +#include "qhelp_global.h" + +QString QHelpGlobal::uniquifyConnectionName(const QString &name, void *pointer) +{ + static QMutex mutex; + QMutexLocker locker(&mutex); + + static QHash idHash; + + return QString::fromLatin1("%1-%2-%3"). + arg(name).arg(quintptr(pointer)).arg(++idHash[name]); +} + +QString QHelpGlobal::documentTitle(const QString &content) +{ + QString title = QCoreApplication::translate("QHelp", "Untitled"); + if (!content.isEmpty()) { + const int start = content.indexOf(QLatin1String(""), 0, Qt::CaseInsensitive) + 7; + const int end = content.indexOf(QLatin1String(""), 0, Qt::CaseInsensitive); + if ((end - start) > 0) { + title = content.mid(start, end - start); + if (Qt::mightBeRichText(title) || title.contains(QLatin1Char('&'))) { + QTextDocument doc; + doc.setHtml(title); + title = doc.toPlainText(); + } + } + } + return title; +} diff --git a/src/assistant/help/qhelp_global.h b/src/assistant/help/qhelp_global.h new file mode 100644 index 0000000..6a6fc51 --- /dev/null +++ b/src/assistant/help/qhelp_global.h @@ -0,0 +1,30 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELP_GLOBAL_H +#define QHELP_GLOBAL_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE + + +#ifdef QT_STATIC +# define QHELP_EXPORT +#elif defined(QHELP_LIB) +# define QHELP_EXPORT Q_DECL_EXPORT +#else +# define QHELP_EXPORT Q_DECL_IMPORT +#endif + +class QHELP_EXPORT QHelpGlobal { +public: + static QString uniquifyConnectionName(const QString &name, void *pointer); + static QString documentTitle(const QString &content); +}; + +QT_END_NAMESPACE + +#endif // QHELP_GLOBAL_H diff --git a/src/assistant/help/qhelpcollectionhandler.cpp b/src/assistant/help/qhelpcollectionhandler.cpp new file mode 100644 index 0000000..ef20113 --- /dev/null +++ b/src/assistant/help/qhelpcollectionhandler.cpp @@ -0,0 +1,2497 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpcollectionhandler_p.h" +#include "qhelp_global.h" +#include "qhelpdbreader_p.h" +#include "qhelpfilterdata.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +QT_BEGIN_NAMESPACE + +class Transaction +{ +public: + Transaction(const QString &connectionName) + : m_db(QSqlDatabase::database(connectionName)), + m_inTransaction(m_db.driver()->hasFeature(QSqlDriver::Transactions)) + { + if (m_inTransaction) + m_inTransaction = m_db.transaction(); + } + + ~Transaction() + { + if (m_inTransaction) + m_db.rollback(); + } + + void commit() + { + if (!m_inTransaction) + return; + + m_db.commit(); + m_inTransaction = false; + } + +private: + QSqlDatabase m_db; + bool m_inTransaction; +}; + +QHelpCollectionHandler::QHelpCollectionHandler(const QString &collectionFile, QObject *parent) + : QObject(parent) + , m_collectionFile(collectionFile) +{ + const QFileInfo fi(m_collectionFile); + if (!fi.isAbsolute()) + m_collectionFile = fi.absoluteFilePath(); +} + +QHelpCollectionHandler::~QHelpCollectionHandler() +{ + closeDB(); +} + +bool QHelpCollectionHandler::isDBOpened() const +{ + if (m_query) + return true; + emit error(tr("The collection file \"%1\" is not set up yet."). + arg(m_collectionFile)); + return false; +} + +void QHelpCollectionHandler::closeDB() +{ + if (!m_query) + return; + + delete m_query; + m_query = nullptr; + QSqlDatabase::removeDatabase(m_connectionName); + m_connectionName = QString(); +} + +QString QHelpCollectionHandler::collectionFile() const +{ + return m_collectionFile; +} + +bool QHelpCollectionHandler::openCollectionFile() +{ + if (m_query) + return true; + + m_connectionName = QHelpGlobal::uniquifyConnectionName( + QLatin1String("QHelpCollectionHandler"), this); + { + QSqlDatabase db = QSqlDatabase::addDatabase(QLatin1String("QSQLITE"), + m_connectionName); + if (db.driver() + && db.driver()->lastError().type() == QSqlError::ConnectionError) { + emit error(tr("Cannot load sqlite database driver.")); + return false; + } + + db.setDatabaseName(collectionFile()); + if (db.open()) + m_query = new QSqlQuery(db); + + if (!m_query) { + QSqlDatabase::removeDatabase(m_connectionName); + emit error(tr("Cannot open collection file: %1").arg(collectionFile())); + return false; + } + } + + if (m_readOnly) + return true; + + m_query->exec(QLatin1String("PRAGMA synchronous=OFF")); + m_query->exec(QLatin1String("PRAGMA cache_size=3000")); + + m_query->exec(QLatin1String("SELECT COUNT(*) FROM sqlite_master WHERE TYPE=\'table\' " + "AND Name=\'NamespaceTable\'")); + m_query->next(); + + const bool tablesExist = m_query->value(0).toInt() > 0; + if (!tablesExist) { + if (!createTables(m_query)) { + closeDB(); + emit error(tr("Cannot create tables in file %1.").arg(collectionFile())); + return false; + } + } + + bool indexAndNamespaceFilterTablesMissing = false; + + const QStringList newTables = { + QLatin1String("IndexTable"), + QLatin1String("FileNameTable"), + QLatin1String("ContentsTable"), + QLatin1String("FileFilterTable"), + QLatin1String("IndexFilterTable"), + QLatin1String("ContentsFilterTable"), + QLatin1String("FileAttributeSetTable"), + QLatin1String("OptimizedFilterTable"), + QLatin1String("TimeStampTable"), + QLatin1String("VersionTable"), + QLatin1String("Filter"), + QLatin1String("ComponentTable"), + QLatin1String("ComponentMapping"), + QLatin1String("ComponentFilter"), + QLatin1String("VersionFilter") + }; + + QString queryString = QLatin1String("SELECT COUNT(*) " + "FROM sqlite_master " + "WHERE TYPE=\'table\'"); + queryString.append(QLatin1String(" AND (Name=\'")); + queryString.append(newTables.join(QLatin1String("\' OR Name=\'"))); + queryString.append(QLatin1String("\')")); + + m_query->exec(queryString); + m_query->next(); + if (m_query->value(0).toInt() != newTables.size()) { + if (!recreateIndexAndNamespaceFilterTables(m_query)) { + emit error(tr("Cannot create index tables in file %1.").arg(collectionFile())); + return false; + } + + // Old tables exist, index tables didn't, recreate index tables only in this case + indexAndNamespaceFilterTablesMissing = tablesExist; + } + + const FileInfoList &docList = registeredDocumentations(); + if (indexAndNamespaceFilterTablesMissing) { + for (const QHelpCollectionHandler::FileInfo &info : docList) { + if (!registerIndexAndNamespaceFilterTables(info.namespaceName, true)) { + emit error(tr("Cannot register index tables in file %1.").arg(collectionFile())); + return false; + } + } + return true; + } + + QList timeStamps; + m_query->exec(QLatin1String("SELECT NamespaceId, FolderId, FilePath, Size, TimeStamp " + "FROM TimeStampTable")); + while (m_query->next()) { + TimeStamp timeStamp; + timeStamp.namespaceId = m_query->value(0).toInt(); + timeStamp.folderId = m_query->value(1).toInt(); + timeStamp.fileName = m_query->value(2).toString(); + timeStamp.size = m_query->value(3).toInt(); + timeStamp.timeStamp = m_query->value(4).toString(); + timeStamps.append(timeStamp); + } + + QList toRemove; + for (const TimeStamp &timeStamp : timeStamps) { + if (!isTimeStampCorrect(timeStamp)) + toRemove.append(timeStamp); + } + + // TODO: we may optimize when toRemove.size() == timeStamps.size(). + // In this case we remove all records from tables. + Transaction transaction(m_connectionName); + for (const TimeStamp &timeStamp : toRemove) { + if (!unregisterIndexTable(timeStamp.namespaceId, timeStamp.folderId)) { + emit error(tr("Cannot unregister index tables in file %1.").arg(collectionFile())); + return false; + } + } + transaction.commit(); + + for (const QHelpCollectionHandler::FileInfo &info : docList) { + if (!hasTimeStampInfo(info.namespaceName) + && !registerIndexAndNamespaceFilterTables(info.namespaceName)) { + // we may have a doc registered without a timestamp + // and the doc may be missing currently + unregisterDocumentation(info.namespaceName); + } + } + + return true; +} + +QString QHelpCollectionHandler::absoluteDocPath(const QString &fileName) const +{ + const QFileInfo fi(collectionFile()); + return QDir::isAbsolutePath(fileName) + ? fileName + : QFileInfo(fi.absolutePath() + QLatin1Char('/') + fileName) + .absoluteFilePath(); +} + +bool QHelpCollectionHandler::isTimeStampCorrect(const TimeStamp &timeStamp) const +{ + const QFileInfo fi(absoluteDocPath(timeStamp.fileName)); + + if (!fi.exists()) + return false; + + if (fi.size() != timeStamp.size) + return false; + + if (fi.lastModified().toString(Qt::ISODate) != timeStamp.timeStamp) + return false; + + m_query->prepare(QLatin1String("SELECT FilePath " + "FROM NamespaceTable " + "WHERE Id = ?")); + m_query->bindValue(0, timeStamp.namespaceId); + if (!m_query->exec() || !m_query->next()) + return false; + + const QString oldFileName = m_query->value(0).toString(); + m_query->clear(); + if (oldFileName != timeStamp.fileName) + return false; + + return true; +} + +bool QHelpCollectionHandler::hasTimeStampInfo(const QString &nameSpace) const +{ + m_query->prepare(QLatin1String("SELECT " + "TimeStampTable.NamespaceId " + "FROM " + "NamespaceTable, " + "TimeStampTable " + "WHERE NamespaceTable.Id = TimeStampTable.NamespaceId " + "AND NamespaceTable.Name = ? LIMIT 1")); + m_query->bindValue(0, nameSpace); + if (!m_query->exec()) + return false; + + if (!m_query->next()) + return false; + + m_query->clear(); + return true; +} + +void QHelpCollectionHandler::scheduleVacuum() +{ + if (m_vacuumScheduled) + return; + + m_vacuumScheduled = true; + QTimer::singleShot(0, this, &QHelpCollectionHandler::execVacuum); +} + +void QHelpCollectionHandler::execVacuum() +{ + if (!m_query) + return; + + m_query->exec(QLatin1String("VACUUM")); + m_vacuumScheduled = false; +} + +bool QHelpCollectionHandler::copyCollectionFile(const QString &fileName) +{ + if (!m_query) + return false; + + const QFileInfo fi(fileName); + if (fi.exists()) { + emit error(tr("The collection file \"%1\" already exists."). + arg(fileName)); + return false; + } + + if (!fi.absoluteDir().exists() && !QDir().mkpath(fi.absolutePath())) { + emit error(tr("Cannot create directory: %1").arg(fi.absolutePath())); + return false; + } + + const QString &colFile = fi.absoluteFilePath(); + const QString &connectionName = QHelpGlobal::uniquifyConnectionName( + QLatin1String("QHelpCollectionHandlerCopy"), this); + QSqlQuery *copyQuery = nullptr; + bool openingOk = true; + { + QSqlDatabase db = QSqlDatabase::addDatabase(QLatin1String("QSQLITE"), connectionName); + db.setDatabaseName(colFile); + openingOk = db.open(); + if (openingOk) + copyQuery = new QSqlQuery(db); + } + + if (!openingOk) { + emit error(tr("Cannot open collection file: %1").arg(colFile)); + return false; + } + + copyQuery->exec(QLatin1String("PRAGMA synchronous=OFF")); + copyQuery->exec(QLatin1String("PRAGMA cache_size=3000")); + + if (!createTables(copyQuery) || !recreateIndexAndNamespaceFilterTables(copyQuery)) { + emit error(tr("Cannot copy collection file: %1").arg(colFile)); + delete copyQuery; + return false; + } + + const QString &oldBaseDir = QFileInfo(collectionFile()).absolutePath(); + const QFileInfo newColFi(colFile); + m_query->exec(QLatin1String("SELECT Name, FilePath FROM NamespaceTable")); + while (m_query->next()) { + copyQuery->prepare(QLatin1String("INSERT INTO NamespaceTable VALUES(NULL, ?, ?)")); + copyQuery->bindValue(0, m_query->value(0).toString()); + QString oldFilePath = m_query->value(1).toString(); + if (!QDir::isAbsolutePath(oldFilePath)) + oldFilePath = oldBaseDir + QLatin1Char('/') + oldFilePath; + copyQuery->bindValue(1, newColFi.absoluteDir().relativeFilePath(oldFilePath)); + copyQuery->exec(); + } + + m_query->exec(QLatin1String("SELECT NamespaceId, Name FROM FolderTable")); + while (m_query->next()) { + copyQuery->prepare(QLatin1String("INSERT INTO FolderTable VALUES(NULL, ?, ?)")); + copyQuery->bindValue(0, m_query->value(0).toString()); + copyQuery->bindValue(1, m_query->value(1).toString()); + copyQuery->exec(); + } + + m_query->exec(QLatin1String("SELECT Name FROM FilterAttributeTable")); + while (m_query->next()) { + copyQuery->prepare(QLatin1String("INSERT INTO FilterAttributeTable VALUES(NULL, ?)")); + copyQuery->bindValue(0, m_query->value(0).toString()); + copyQuery->exec(); + } + + m_query->exec(QLatin1String("SELECT Name FROM FilterNameTable")); + while (m_query->next()) { + copyQuery->prepare(QLatin1String("INSERT INTO FilterNameTable VALUES(NULL, ?)")); + copyQuery->bindValue(0, m_query->value(0).toString()); + copyQuery->exec(); + } + + m_query->exec(QLatin1String("SELECT NameId, FilterAttributeId FROM FilterTable")); + while (m_query->next()) { + copyQuery->prepare(QLatin1String("INSERT INTO FilterTable VALUES(?, ?)")); + copyQuery->bindValue(0, m_query->value(0).toInt()); + copyQuery->bindValue(1, m_query->value(1).toInt()); + copyQuery->exec(); + } + + m_query->exec(QLatin1String("SELECT Key, Value FROM SettingsTable")); + while (m_query->next()) { + if (m_query->value(0).toString() == QLatin1String("FTS5IndexedNamespaces")) + continue; + copyQuery->prepare(QLatin1String("INSERT INTO SettingsTable VALUES(?, ?)")); + copyQuery->bindValue(0, m_query->value(0).toString()); + copyQuery->bindValue(1, m_query->value(1)); + copyQuery->exec(); + } + + copyQuery->clear(); + delete copyQuery; + QSqlDatabase::removeDatabase(connectionName); + return true; +} + +bool QHelpCollectionHandler::createTables(QSqlQuery *query) +{ + const QStringList tables = QStringList() + << QLatin1String("CREATE TABLE NamespaceTable (" + "Id INTEGER PRIMARY KEY, " + "Name TEXT, " + "FilePath TEXT )") + << QLatin1String("CREATE TABLE FolderTable (" + "Id INTEGER PRIMARY KEY, " + "NamespaceId INTEGER, " + "Name TEXT )") + << QLatin1String("CREATE TABLE FilterAttributeTable (" + "Id INTEGER PRIMARY KEY, " + "Name TEXT )") + << QLatin1String("CREATE TABLE FilterNameTable (" + "Id INTEGER PRIMARY KEY, " + "Name TEXT )") + << QLatin1String("CREATE TABLE FilterTable (" + "NameId INTEGER, " + "FilterAttributeId INTEGER )") + << QLatin1String("CREATE TABLE SettingsTable (" + "Key TEXT PRIMARY KEY, " + "Value BLOB )"); + + for (const QString &q : tables) { + if (!query->exec(q)) + return false; + } + return true; +} + +bool QHelpCollectionHandler::recreateIndexAndNamespaceFilterTables(QSqlQuery *query) +{ + const QStringList tables = QStringList() + << QLatin1String("DROP TABLE IF EXISTS FileNameTable") + << QLatin1String("DROP TABLE IF EXISTS IndexTable") + << QLatin1String("DROP TABLE IF EXISTS ContentsTable") + << QLatin1String("DROP TABLE IF EXISTS FileFilterTable") // legacy + << QLatin1String("DROP TABLE IF EXISTS IndexFilterTable") // legacy + << QLatin1String("DROP TABLE IF EXISTS ContentsFilterTable") // legacy + << QLatin1String("DROP TABLE IF EXISTS FileAttributeSetTable") // legacy + << QLatin1String("DROP TABLE IF EXISTS OptimizedFilterTable") // legacy + << QLatin1String("DROP TABLE IF EXISTS TimeStampTable") + << QLatin1String("DROP TABLE IF EXISTS VersionTable") + << QLatin1String("DROP TABLE IF EXISTS Filter") + << QLatin1String("DROP TABLE IF EXISTS ComponentTable") + << QLatin1String("DROP TABLE IF EXISTS ComponentMapping") + << QLatin1String("DROP TABLE IF EXISTS ComponentFilter") + << QLatin1String("DROP TABLE IF EXISTS VersionFilter") + << QLatin1String("CREATE TABLE FileNameTable (" + "FolderId INTEGER, " + "Name TEXT, " + "FileId INTEGER PRIMARY KEY, " + "Title TEXT)") + << QLatin1String("CREATE TABLE IndexTable (" + "Id INTEGER PRIMARY KEY, " + "Name TEXT, " + "Identifier TEXT, " + "NamespaceId INTEGER, " + "FileId INTEGER, " + "Anchor TEXT)") + << QLatin1String("CREATE TABLE ContentsTable (" + "Id INTEGER PRIMARY KEY, " + "NamespaceId INTEGER, " + "Data BLOB)") + << QLatin1String("CREATE TABLE FileFilterTable (" + "FilterAttributeId INTEGER, " + "FileId INTEGER)") + << QLatin1String("CREATE TABLE IndexFilterTable (" + "FilterAttributeId INTEGER, " + "IndexId INTEGER)") + << QLatin1String("CREATE TABLE ContentsFilterTable (" + "FilterAttributeId INTEGER, " + "ContentsId INTEGER )") + << QLatin1String("CREATE TABLE FileAttributeSetTable (" + "NamespaceId INTEGER, " + "FilterAttributeSetId INTEGER, " + "FilterAttributeId INTEGER)") + << QLatin1String("CREATE TABLE OptimizedFilterTable (" + "NamespaceId INTEGER, " + "FilterAttributeId INTEGER)") + << QLatin1String("CREATE TABLE TimeStampTable (" + "NamespaceId INTEGER, " + "FolderId INTEGER, " + "FilePath TEXT, " + "Size INTEGER, " + "TimeStamp TEXT)") + << QLatin1String("CREATE TABLE VersionTable (" + "NamespaceId INTEGER, " + "Version TEXT)") + << QLatin1String("CREATE TABLE Filter (" + "FilterId INTEGER PRIMARY KEY, " + "Name TEXT)") + << QLatin1String("CREATE TABLE ComponentTable (" + "ComponentId INTEGER PRIMARY KEY, " + "Name TEXT)") + << QLatin1String("CREATE TABLE ComponentMapping (" + "ComponentId INTEGER, " + "NamespaceId INTEGER)") + << QLatin1String("CREATE TABLE ComponentFilter (" + "ComponentName TEXT, " + "FilterId INTEGER)") + << QLatin1String("CREATE TABLE VersionFilter (" + "Version TEXT, " + "FilterId INTEGER)"); + + for (const QString &q : tables) { + if (!query->exec(q)) + return false; + } + return true; +} + +QStringList QHelpCollectionHandler::customFilters() const +{ + QStringList list; + if (m_query) { + m_query->exec(QLatin1String("SELECT Name FROM FilterNameTable")); + while (m_query->next()) + list.append(m_query->value(0).toString()); + } + return list; +} + + +QStringList QHelpCollectionHandler::filters() const +{ + QStringList list; + if (m_query) { + m_query->exec(QLatin1String("SELECT Name FROM Filter ORDER BY Name")); + while (m_query->next()) + list.append(m_query->value(0).toString()); + } + return list; +} + +QStringList QHelpCollectionHandler::availableComponents() const +{ + QStringList list; + if (m_query) { + m_query->exec(QLatin1String("SELECT DISTINCT Name FROM ComponentTable ORDER BY Name")); + while (m_query->next()) + list.append(m_query->value(0).toString()); + } + return list; +} + +QList QHelpCollectionHandler::availableVersions() const +{ + QList list; + if (m_query) { + m_query->exec(QLatin1String("SELECT DISTINCT Version FROM VersionTable ORDER BY Version")); + while (m_query->next()) + list.append(QVersionNumber::fromString(m_query->value(0).toString())); + } + return list; +} + +QMap QHelpCollectionHandler::namespaceToComponent() const +{ + QMap result; + if (m_query) { + m_query->exec(QLatin1String("SELECT " + "NamespaceTable.Name, " + "ComponentTable.Name " + "FROM NamespaceTable, " + "ComponentTable, " + "ComponentMapping " + "WHERE NamespaceTable.Id = ComponentMapping.NamespaceId " + "AND ComponentMapping.ComponentId = ComponentTable.ComponentId")); + while (m_query->next()) + result.insert(m_query->value(0).toString(), m_query->value(1).toString()); + } + return result; +} + +QMap QHelpCollectionHandler::namespaceToVersion() const +{ + QMap result; + if (m_query) { + m_query->exec(QLatin1String("SELECT " + "NamespaceTable.Name, " + "VersionTable.Version " + "FROM NamespaceTable, " + "VersionTable " + "WHERE NamespaceTable.Id = VersionTable.NamespaceId")); + while (m_query->next()) { + result.insert(m_query->value(0).toString(), + QVersionNumber::fromString(m_query->value(1).toString())); + } + } + return result; +} + +QHelpFilterData QHelpCollectionHandler::filterData(const QString &filterName) const +{ + QStringList components; + QList versions; + if (m_query) { + m_query->prepare(QLatin1String("SELECT ComponentFilter.ComponentName " + "FROM ComponentFilter, Filter " + "WHERE ComponentFilter.FilterId = Filter.FilterId " + "AND Filter.Name = ? " + "ORDER BY ComponentFilter.ComponentName")); + m_query->bindValue(0, filterName); + m_query->exec(); + while (m_query->next()) + components.append(m_query->value(0).toString()); + + m_query->prepare(QLatin1String("SELECT VersionFilter.Version " + "FROM VersionFilter, Filter " + "WHERE VersionFilter.FilterId = Filter.FilterId " + "AND Filter.Name = ? " + "ORDER BY VersionFilter.Version")); + m_query->bindValue(0, filterName); + m_query->exec(); + while (m_query->next()) + versions.append(QVersionNumber::fromString(m_query->value(0).toString())); + + } + QHelpFilterData data; + data.setComponents(components); + data.setVersions(versions); + return data; +} + +bool QHelpCollectionHandler::setFilterData(const QString &filterName, + const QHelpFilterData &filterData) +{ + if (!removeFilter(filterName)) + return false; + + m_query->prepare(QLatin1String("INSERT INTO Filter " + "VALUES (NULL, ?)")); + m_query->bindValue(0, filterName); + if (!m_query->exec()) + return false; + + const int filterId = m_query->lastInsertId().toInt(); + + QVariantList componentList; + QVariantList versionList; + QVariantList filterIdList; + + for (const QString &component : filterData.components()) { + componentList.append(component); + filterIdList.append(filterId); + } + + m_query->prepare(QLatin1String("INSERT INTO ComponentFilter " + "VALUES (?, ?)")); + m_query->addBindValue(componentList); + m_query->addBindValue(filterIdList); + if (!m_query->execBatch()) + return false; + + filterIdList.clear(); + for (const QVersionNumber &version : filterData.versions()) { + versionList.append(version.isNull() ? QString() : version.toString()); + filterIdList.append(filterId); + } + + m_query->prepare(QLatin1String("INSERT INTO VersionFilter " + "VALUES (?, ?)")); + m_query->addBindValue(versionList); + m_query->addBindValue(filterIdList); + if (!m_query->execBatch()) + return false; + + return true; +} + +bool QHelpCollectionHandler::removeFilter(const QString &filterName) +{ + m_query->prepare(QLatin1String("SELECT FilterId " + "FROM Filter " + "WHERE Name = ?")); + m_query->bindValue(0, filterName); + if (!m_query->exec()) + return false; + + if (!m_query->next()) + return true; // no filter in DB + + const int filterId = m_query->value(0).toInt(); + + m_query->prepare(QLatin1String("DELETE FROM Filter " + "WHERE Filter.Name = ?")); + m_query->bindValue(0, filterName); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("DELETE FROM ComponentFilter " + "WHERE ComponentFilter.FilterId = ?")); + m_query->bindValue(0, filterId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("DELETE FROM VersionFilter " + "WHERE VersionFilter.FilterId = ?")); + m_query->bindValue(0, filterId); + if (!m_query->exec()) + return false; + + return true; +} + +bool QHelpCollectionHandler::removeCustomFilter(const QString &filterName) +{ + if (!isDBOpened() || filterName.isEmpty()) + return false; + + int filterNameId = -1; + m_query->prepare(QLatin1String("SELECT Id FROM FilterNameTable WHERE Name=?")); + m_query->bindValue(0, filterName); + m_query->exec(); + if (m_query->next()) + filterNameId = m_query->value(0).toInt(); + + if (filterNameId < 0) { + emit error(tr("Unknown filter \"%1\".").arg(filterName)); + return false; + } + + m_query->prepare(QLatin1String("DELETE FROM FilterTable WHERE NameId=?")); + m_query->bindValue(0, filterNameId); + m_query->exec(); + + m_query->prepare(QLatin1String("DELETE FROM FilterNameTable WHERE Id=?")); + m_query->bindValue(0, filterNameId); + m_query->exec(); + + return true; +} + +bool QHelpCollectionHandler::addCustomFilter(const QString &filterName, + const QStringList &attributes) +{ + if (!isDBOpened() || filterName.isEmpty()) + return false; + + int nameId = -1; + m_query->prepare(QLatin1String("SELECT Id FROM FilterNameTable WHERE Name=?")); + m_query->bindValue(0, filterName); + m_query->exec(); + if (m_query->next()) + nameId = m_query->value(0).toInt(); + + m_query->exec(QLatin1String("SELECT Id, Name FROM FilterAttributeTable")); + QStringList idsToInsert = attributes; + QMap attributeMap; + while (m_query->next()) { + // all old attributes + const QString attributeName = m_query->value(1).toString(); + attributeMap.insert(attributeName, m_query->value(0).toInt()); + if (idsToInsert.contains(attributeName)) + idsToInsert.removeAll(attributeName); + } + + for (const QString &id : std::as_const(idsToInsert)) { + m_query->prepare(QLatin1String("INSERT INTO FilterAttributeTable VALUES(NULL, ?)")); + m_query->bindValue(0, id); + m_query->exec(); + attributeMap.insert(id, m_query->lastInsertId().toInt()); + } + + if (nameId < 0) { + m_query->prepare(QLatin1String("INSERT INTO FilterNameTable VALUES(NULL, ?)")); + m_query->bindValue(0, filterName); + if (m_query->exec()) + nameId = m_query->lastInsertId().toInt(); + } + + if (nameId < 0) { + emit error(tr("Cannot register filter %1.").arg(filterName)); + return false; + } + + m_query->prepare(QLatin1String("DELETE FROM FilterTable WHERE NameId=?")); + m_query->bindValue(0, nameId); + m_query->exec(); + + for (const QString &att : attributes) { + m_query->prepare(QLatin1String("INSERT INTO FilterTable VALUES(?, ?)")); + m_query->bindValue(0, nameId); + m_query->bindValue(1, attributeMap[att]); + if (!m_query->exec()) + return false; + } + return true; +} + +QHelpCollectionHandler::FileInfo QHelpCollectionHandler::registeredDocumentation( + const QString &namespaceName) const +{ + FileInfo fileInfo; + + if (!m_query) + return fileInfo; + + m_query->prepare(QLatin1String("SELECT " + "NamespaceTable.Name, " + "NamespaceTable.FilePath, " + "FolderTable.Name " + "FROM " + "NamespaceTable, " + "FolderTable " + "WHERE NamespaceTable.Id = FolderTable.NamespaceId " + "AND NamespaceTable.Name = ? LIMIT 1")); + m_query->bindValue(0, namespaceName); + if (!m_query->exec() || !m_query->next()) + return fileInfo; + + fileInfo.namespaceName = m_query->value(0).toString(); + fileInfo.fileName = m_query->value(1).toString(); + fileInfo.folderName = m_query->value(2).toString(); + + m_query->clear(); + + return fileInfo; +} + +QHelpCollectionHandler::FileInfoList QHelpCollectionHandler::registeredDocumentations() const +{ + FileInfoList list; + if (!m_query) + return list; + + m_query->exec(QLatin1String("SELECT " + "NamespaceTable.Name, " + "NamespaceTable.FilePath, " + "FolderTable.Name " + "FROM " + "NamespaceTable, " + "FolderTable " + "WHERE NamespaceTable.Id = FolderTable.NamespaceId")); + + while (m_query->next()) { + FileInfo fileInfo; + fileInfo.namespaceName = m_query->value(0).toString(); + fileInfo.fileName = m_query->value(1).toString(); + fileInfo.folderName = m_query->value(2).toString(); + list.append(fileInfo); + } + + return list; +} + +bool QHelpCollectionHandler::registerDocumentation(const QString &fileName) +{ + if (!isDBOpened()) + return false; + + QHelpDBReader reader(fileName, QHelpGlobal::uniquifyConnectionName( + QLatin1String("QHelpCollectionHandler"), this), nullptr); + if (!reader.init()) { + emit error(tr("Cannot open documentation file %1.").arg(fileName)); + return false; + } + + const QString &ns = reader.namespaceName(); + if (ns.isEmpty()) { + emit error(tr("Invalid documentation file \"%1\".").arg(fileName)); + return false; + } + + const int nsId = registerNamespace(ns, fileName); + if (nsId < 1) + return false; + + const int vfId = registerVirtualFolder(reader.virtualFolder(), nsId); + if (vfId < 1) + return false; + + registerVersion(reader.version(), nsId); + registerFilterAttributes(reader.filterAttributeSets(), nsId); // qset, what happens when removing documentation? + for (const QString &filterName : reader.customFilters()) + addCustomFilter(filterName, reader.filterAttributes(filterName)); + + if (!registerIndexTable(reader.indexTable(), nsId, vfId, registeredDocumentation(ns).fileName)) + return false; + + return true; +} + +bool QHelpCollectionHandler::unregisterDocumentation(const QString &namespaceName) +{ + if (!isDBOpened()) + return false; + + m_query->prepare(QLatin1String("SELECT Id FROM NamespaceTable WHERE Name = ?")); + m_query->bindValue(0, namespaceName); + m_query->exec(); + + if (!m_query->next()) { + emit error(tr("The namespace %1 was not registered.").arg(namespaceName)); + return false; + } + + const int nsId = m_query->value(0).toInt(); + + m_query->prepare(QLatin1String("DELETE FROM NamespaceTable WHERE Id = ?")); + m_query->bindValue(0, nsId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("SELECT Id FROM FolderTable WHERE NamespaceId = ?")); + m_query->bindValue(0, nsId); + m_query->exec(); + + if (!m_query->next()) { + emit error(tr("The namespace %1 was not registered.").arg(namespaceName)); + return false; + } + + const int vfId = m_query->value(0).toInt(); + + m_query->prepare(QLatin1String("DELETE FROM NamespaceTable WHERE Id = ?")); + m_query->bindValue(0, nsId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("DELETE FROM FolderTable WHERE NamespaceId = ?")); + m_query->bindValue(0, nsId); + if (!m_query->exec()) + return false; + + if (!unregisterIndexTable(nsId, vfId)) + return false; + + scheduleVacuum(); + + return true; +} + +static QHelpCollectionHandler::FileInfo extractFileInfo(const QUrl &url) +{ + QHelpCollectionHandler::FileInfo fileInfo; + + if (!url.isValid() || url.toString().count(QLatin1Char('/')) < 4 + || url.scheme() != QLatin1String("qthelp")) { + return fileInfo; + } + + fileInfo.namespaceName = url.authority(); + fileInfo.fileName = url.path(); + if (fileInfo.fileName.startsWith(QLatin1Char('/'))) + fileInfo.fileName = fileInfo.fileName.mid(1); + fileInfo.folderName = fileInfo.fileName.mid(0, fileInfo.fileName.indexOf(QLatin1Char('/'), 1)); + fileInfo.fileName.remove(0, fileInfo.folderName.size() + 1); + + return fileInfo; +} + +bool QHelpCollectionHandler::fileExists(const QUrl &url) const +{ + if (!isDBOpened()) + return false; + + const FileInfo fileInfo = extractFileInfo(url); + if (fileInfo.namespaceName.isEmpty()) + return false; + + m_query->prepare(QLatin1String("SELECT COUNT (DISTINCT NamespaceTable.Id) " + "FROM " + "FileNameTable, " + "NamespaceTable, " + "FolderTable " + "WHERE FolderTable.Name = ? " + "AND FileNameTable.Name = ? " + "AND FileNameTable.FolderId = FolderTable.Id " + "AND FolderTable.NamespaceId = NamespaceTable.Id")); + m_query->bindValue(0, fileInfo.folderName); + m_query->bindValue(1, fileInfo.fileName); + if (!m_query->exec() || !m_query->next()) + return false; + + const int count = m_query->value(0).toInt(); + m_query->clear(); + + return count; +} + +static QString prepareFilterQuery(const QString &filterName) +{ + if (filterName.isEmpty()) + return QString(); + + return QString::fromLatin1(" AND EXISTS(SELECT * FROM Filter WHERE Filter.Name = ?) " + "AND (" + "(NOT EXISTS(" // 1. filter by component + "SELECT * FROM " + "ComponentFilter, " + "Filter " + "WHERE ComponentFilter.FilterId = Filter.FilterId " + "AND Filter.Name = ?) " + "OR NamespaceTable.Id IN (" + "SELECT " + "NamespaceTable.Id " + "FROM " + "NamespaceTable, " + "ComponentTable, " + "ComponentMapping, " + "ComponentFilter, " + "Filter " + "WHERE ComponentMapping.NamespaceId = NamespaceTable.Id " + "AND ComponentTable.ComponentId = ComponentMapping.ComponentId " + "AND ((ComponentTable.Name = ComponentFilter.ComponentName) " + "OR (ComponentTable.Name IS NULL AND ComponentFilter.ComponentName IS NULL)) " + "AND ComponentFilter.FilterId = Filter.FilterId " + "AND Filter.Name = ?))" + " AND " + "(NOT EXISTS(" // 2. filter by version + "SELECT * FROM " + "VersionFilter, " + "Filter " + "WHERE VersionFilter.FilterId = Filter.FilterId " + "AND Filter.Name = ?) " + "OR NamespaceTable.Id IN (" + "SELECT " + "NamespaceTable.Id " + "FROM " + "NamespaceTable, " + "VersionFilter, " + "VersionTable, " + "Filter " + "WHERE VersionFilter.FilterId = Filter.FilterId " + "AND ((VersionFilter.Version = VersionTable.Version) " + "OR (VersionFilter.Version IS NULL AND VersionTable.Version IS NULL)) " + "AND VersionTable.NamespaceId = NamespaceTable.Id " + "AND Filter.Name = ?))" + ")"); +} + +static void bindFilterQuery(QSqlQuery *query, int bindStart, const QString &filterName) +{ + if (filterName.isEmpty()) + return; + + query->bindValue(bindStart, filterName); + query->bindValue(bindStart + 1, filterName); + query->bindValue(bindStart + 2, filterName); + query->bindValue(bindStart + 3, filterName); + query->bindValue(bindStart + 4, filterName); +} + +static QString prepareFilterQuery(int attributesCount, + const QString &idTableName, + const QString &idColumnName, + const QString &filterTableName, + const QString &filterColumnName) +{ + if (!attributesCount) + return QString(); + + QString filterQuery = QString::fromLatin1(" AND (%1.%2 IN (").arg(idTableName, idColumnName); + + const QString filterQueryTemplate = QString::fromLatin1( + "SELECT %1.%2 " + "FROM %1, FilterAttributeTable " + "WHERE %1.FilterAttributeId = FilterAttributeTable.Id " + "AND FilterAttributeTable.Name = ?") + .arg(filterTableName, filterColumnName); + + for (int i = 0; i < attributesCount; ++i) { + if (i > 0) + filterQuery.append(QLatin1String(" INTERSECT ")); + filterQuery.append(filterQueryTemplate); + } + + filterQuery.append(QLatin1String(") OR NamespaceTable.Id IN (")); + + const QString optimizedFilterQueryTemplate = QLatin1String( + "SELECT OptimizedFilterTable.NamespaceId " + "FROM OptimizedFilterTable, FilterAttributeTable " + "WHERE OptimizedFilterTable.FilterAttributeId = FilterAttributeTable.Id " + "AND FilterAttributeTable.Name = ?"); + + for (int i = 0; i < attributesCount; ++i) { + if (i > 0) + filterQuery.append(QLatin1String(" INTERSECT ")); + filterQuery.append(optimizedFilterQueryTemplate); + } + + filterQuery.append(QLatin1String("))")); + + return filterQuery; +} + +void bindFilterQuery(QSqlQuery *query, int startingBindPos, const QStringList &filterAttributes) +{ + for (int i = 0; i < 2; ++i) { + for (int j = 0; j < filterAttributes.size(); j++) { + query->bindValue(i * filterAttributes.size() + j + startingBindPos, + filterAttributes.at(j)); + } + } +} + +QString QHelpCollectionHandler::namespaceForFile(const QUrl &url, + const QStringList &filterAttributes) const +{ + if (!isDBOpened()) + return QString(); + + const FileInfo fileInfo = extractFileInfo(url); + if (fileInfo.namespaceName.isEmpty()) + return QString(); + + const QString filterlessQuery = QLatin1String( + "SELECT DISTINCT " + "NamespaceTable.Name " + "FROM " + "FileNameTable, " + "NamespaceTable, " + "FolderTable " + "WHERE FolderTable.Name = ? " + "AND FileNameTable.Name = ? " + "AND FileNameTable.FolderId = FolderTable.Id " + "AND FolderTable.NamespaceId = NamespaceTable.Id"); + + const QString filterQuery = filterlessQuery + + prepareFilterQuery(filterAttributes.size(), + QLatin1String("FileNameTable"), + QLatin1String("FileId"), + QLatin1String("FileFilterTable"), + QLatin1String("FileId")); + + m_query->prepare(filterQuery); + m_query->bindValue(0, fileInfo.folderName); + m_query->bindValue(1, fileInfo.fileName); + bindFilterQuery(m_query, 2, filterAttributes); + + if (!m_query->exec()) + return QString(); + + QList namespaceList; + while (m_query->next()) + namespaceList.append(m_query->value(0).toString()); + + if (namespaceList.isEmpty()) + return QString(); + + if (namespaceList.contains(fileInfo.namespaceName)) + return fileInfo.namespaceName; + + const QString originalVersion = namespaceVersion(fileInfo.namespaceName); + + for (const QString &ns : namespaceList) { + const QString nsVersion = namespaceVersion(ns); + if (originalVersion == nsVersion) + return ns; + } + + // TODO: still, we may like to return the ns for the highest available version + return namespaceList.first(); +} + +QString QHelpCollectionHandler::namespaceForFile(const QUrl &url, + const QString &filterName) const +{ + if (!isDBOpened()) + return QString(); + + const FileInfo fileInfo = extractFileInfo(url); + if (fileInfo.namespaceName.isEmpty()) + return QString(); + + const QString filterlessQuery = QLatin1String( + "SELECT DISTINCT " + "NamespaceTable.Name " + "FROM " + "FileNameTable, " + "NamespaceTable, " + "FolderTable " + "WHERE FolderTable.Name = ? " + "AND FileNameTable.Name = ? " + "AND FileNameTable.FolderId = FolderTable.Id " + "AND FolderTable.NamespaceId = NamespaceTable.Id"); + + const QString filterQuery = filterlessQuery + + prepareFilterQuery(filterName); + + m_query->prepare(filterQuery); + m_query->bindValue(0, fileInfo.folderName); + m_query->bindValue(1, fileInfo.fileName); + bindFilterQuery(m_query, 2, filterName); + + if (!m_query->exec()) + return QString(); + + QList namespaceList; + while (m_query->next()) + namespaceList.append(m_query->value(0).toString()); + + if (namespaceList.isEmpty()) + return QString(); + + if (namespaceList.contains(fileInfo.namespaceName)) + return fileInfo.namespaceName; + + const QString originalVersion = namespaceVersion(fileInfo.namespaceName); + + for (const QString &ns : namespaceList) { + const QString nsVersion = namespaceVersion(ns); + if (originalVersion == nsVersion) + return ns; + } + + // TODO: still, we may like to return the ns for the highest available version + return namespaceList.first(); +} + +QStringList QHelpCollectionHandler::files(const QString &namespaceName, + const QStringList &filterAttributes, + const QString &extensionFilter) const +{ + if (!isDBOpened()) + return QStringList(); + + const QString extensionQuery = extensionFilter.isEmpty() + ? QString() : QLatin1String(" AND FileNameTable.Name LIKE ?"); + const QString filterlessQuery = QLatin1String( + "SELECT " + "FolderTable.Name, " + "FileNameTable.Name " + "FROM " + "FileNameTable, " + "FolderTable, " + "NamespaceTable " + "WHERE FileNameTable.FolderId = FolderTable.Id " + "AND FolderTable.NamespaceId = NamespaceTable.Id " + "AND NamespaceTable.Name = ?") + extensionQuery; + + const QString filterQuery = filterlessQuery + + prepareFilterQuery(filterAttributes.size(), + QLatin1String("FileNameTable"), + QLatin1String("FileId"), + QLatin1String("FileFilterTable"), + QLatin1String("FileId")); + + m_query->prepare(filterQuery); + m_query->bindValue(0, namespaceName); + int bindCount = 1; + if (!extensionFilter.isEmpty()) { + m_query->bindValue(bindCount, QString::fromLatin1("%.%1").arg(extensionFilter)); + ++bindCount; + } + bindFilterQuery(m_query, bindCount, filterAttributes); + + if (!m_query->exec()) + return QStringList(); + + QStringList fileNames; + while (m_query->next()) { + fileNames.append(m_query->value(0).toString() + + QLatin1Char('/') + + m_query->value(1).toString()); + } + + return fileNames; +} + +QStringList QHelpCollectionHandler::files(const QString &namespaceName, + const QString &filterName, + const QString &extensionFilter) const +{ + if (!isDBOpened()) + return QStringList(); + + const QString extensionQuery = extensionFilter.isEmpty() + ? QString() : QLatin1String(" AND FileNameTable.Name LIKE ?"); + const QString filterlessQuery = QLatin1String( + "SELECT " + "FolderTable.Name, " + "FileNameTable.Name " + "FROM " + "FileNameTable, " + "FolderTable, " + "NamespaceTable " + "WHERE FileNameTable.FolderId = FolderTable.Id " + "AND FolderTable.NamespaceId = NamespaceTable.Id " + "AND NamespaceTable.Name = ?") + extensionQuery; + + const QString filterQuery = filterlessQuery + + prepareFilterQuery(filterName); + + m_query->prepare(filterQuery); + m_query->bindValue(0, namespaceName); + int bindCount = 1; + if (!extensionFilter.isEmpty()) { + m_query->bindValue(bindCount, QString::fromLatin1("%.%1").arg(extensionFilter)); + ++bindCount; + } + + bindFilterQuery(m_query, bindCount, filterName); + + if (!m_query->exec()) + return QStringList(); + + QStringList fileNames; + while (m_query->next()) { + fileNames.append(m_query->value(0).toString() + + QLatin1Char('/') + + m_query->value(1).toString()); + } + + return fileNames; +} + +QUrl QHelpCollectionHandler::findFile(const QUrl &url, const QStringList &filterAttributes) const +{ + if (!isDBOpened()) + return QUrl(); + + const QString namespaceName = namespaceForFile(url, filterAttributes); + if (namespaceName.isEmpty()) + return QUrl(); + + QUrl result = url; + result.setAuthority(namespaceName); + return result; +} + +QUrl QHelpCollectionHandler::findFile(const QUrl &url, const QString &filterName) const +{ + if (!isDBOpened()) + return QUrl(); + + const QString namespaceName = namespaceForFile(url, filterName); + if (namespaceName.isEmpty()) + return QUrl(); + + QUrl result = url; + result.setAuthority(namespaceName); + return result; +} + +QByteArray QHelpCollectionHandler::fileData(const QUrl &url) const +{ + if (!isDBOpened()) + return QByteArray(); + + const QString namespaceName = namespaceForFile(url, QString()); + if (namespaceName.isEmpty()) + return QByteArray(); + + const FileInfo fileInfo = extractFileInfo(url); + + const FileInfo docInfo = registeredDocumentation(namespaceName); + const QString absFileName = absoluteDocPath(docInfo.fileName); + + QHelpDBReader reader(absFileName, QHelpGlobal::uniquifyConnectionName( + docInfo.fileName, const_cast(this)), nullptr); + if (!reader.init()) + return QByteArray(); + + return reader.fileData(fileInfo.folderName, fileInfo.fileName); +} + +QStringList QHelpCollectionHandler::indicesForFilter(const QStringList &filterAttributes) const +{ + QStringList indices; + + if (!isDBOpened()) + return indices; + + const QString filterlessQuery = QString::fromLatin1( + "SELECT DISTINCT " + "IndexTable.Name " + "FROM " + "IndexTable, " + "FileNameTable, " + "FolderTable, " + "NamespaceTable " + "WHERE IndexTable.FileId = FileNameTable.FileId " + "AND FileNameTable.FolderId = FolderTable.Id " + "AND IndexTable.NamespaceId = NamespaceTable.Id"); + + const QString filterQuery = filterlessQuery + + prepareFilterQuery(filterAttributes.size(), + QLatin1String("IndexTable"), + QLatin1String("Id"), + QLatin1String("IndexFilterTable"), + QLatin1String("IndexId")) + + QLatin1String(" ORDER BY LOWER(IndexTable.Name), IndexTable.Name"); + // this doesn't work: ASC COLLATE NOCASE + + m_query->prepare(filterQuery); + bindFilterQuery(m_query, 0, filterAttributes); + + m_query->exec(); + + while (m_query->next()) + indices.append(m_query->value(0).toString()); + + return indices; +} + + +QStringList QHelpCollectionHandler::indicesForFilter(const QString &filterName) const +{ + QStringList indices; + + if (!isDBOpened()) + return indices; + + const QString filterlessQuery = QString::fromLatin1( + "SELECT DISTINCT " + "IndexTable.Name " + "FROM " + "IndexTable, " + "FileNameTable, " + "FolderTable, " + "NamespaceTable " + "WHERE IndexTable.FileId = FileNameTable.FileId " + "AND FileNameTable.FolderId = FolderTable.Id " + "AND IndexTable.NamespaceId = NamespaceTable.Id"); + + const QString filterQuery = filterlessQuery + + prepareFilterQuery(filterName) + + QLatin1String(" ORDER BY LOWER(IndexTable.Name), IndexTable.Name"); + + m_query->prepare(filterQuery); + bindFilterQuery(m_query, 0, filterName); + + m_query->exec(); + + while (m_query->next()) + indices.append(m_query->value(0).toString()); + + return indices; +} + +static QString getTitle(const QByteArray &contents) +{ + if (!contents.size()) + return QString(); + + int depth = 0; + QString link; + QString title; + + QDataStream s(contents); + s >> depth; + s >> link; + s >> title; + + return title; +} + +QList QHelpCollectionHandler::contentsForFilter( + const QStringList &filterAttributes) const +{ + if (!isDBOpened()) + return QList(); + + const QString filterlessQuery = QString::fromLatin1( + "SELECT DISTINCT " + "NamespaceTable.Name, " + "FolderTable.Name, " + "ContentsTable.Data, " + "VersionTable.Version " + "FROM " + "FolderTable, " + "NamespaceTable, " + "ContentsTable, " + "VersionTable " + "WHERE ContentsTable.NamespaceId = NamespaceTable.Id " + "AND NamespaceTable.Id = FolderTable.NamespaceId " + "AND ContentsTable.NamespaceId = NamespaceTable.Id " + "AND VersionTable.NamespaceId = NamespaceTable.Id"); + + const QString filterQuery = filterlessQuery + + prepareFilterQuery(filterAttributes.size(), + QLatin1String("ContentsTable"), + QLatin1String("Id"), + QLatin1String("ContentsFilterTable"), + QLatin1String("ContentsId")); + + m_query->prepare(filterQuery); + bindFilterQuery(m_query, 0, filterAttributes); + + m_query->exec(); + + QMap> contentsMap; + + while (m_query->next()) { + const QString namespaceName = m_query->value(0).toString(); + const QByteArray contents = m_query->value(2).toByteArray(); + const QString versionString = m_query->value(3).toString(); + + const QString title = getTitle(contents); + const QVersionNumber version = QVersionNumber::fromString(versionString); + // get existing or insert a new one otherwise + ContentsData &contentsData = contentsMap[title][version]; + contentsData.namespaceName = namespaceName; + contentsData.folderName = m_query->value(1).toString(); + contentsData.contentsList.append(contents); + } + + QList result; + for (const auto &versionContents : std::as_const(contentsMap)) { + // insert items in the reverse order of version number + const auto itBegin = versionContents.constBegin(); + auto it = versionContents.constEnd(); + while (it != itBegin) { + --it; + result.append(it.value()); + } + } + + return result; +} + +QList QHelpCollectionHandler::contentsForFilter(const QString &filterName) const +{ + if (!isDBOpened()) + return QList(); + + const QString filterlessQuery = QString::fromLatin1( + "SELECT DISTINCT " + "NamespaceTable.Name, " + "FolderTable.Name, " + "ContentsTable.Data, " + "VersionTable.Version " + "FROM " + "FolderTable, " + "NamespaceTable, " + "ContentsTable, " + "VersionTable " + "WHERE ContentsTable.NamespaceId = NamespaceTable.Id " + "AND NamespaceTable.Id = FolderTable.NamespaceId " + "AND ContentsTable.NamespaceId = NamespaceTable.Id " + "AND VersionTable.NamespaceId = NamespaceTable.Id"); + + const QString filterQuery = filterlessQuery + + prepareFilterQuery(filterName); + + m_query->prepare(filterQuery); + bindFilterQuery(m_query, 0, filterName); + + m_query->exec(); + + QMap> contentsMap; + + while (m_query->next()) { + const QString namespaceName = m_query->value(0).toString(); + const QByteArray contents = m_query->value(2).toByteArray(); + const QString versionString = m_query->value(3).toString(); + + const QString title = getTitle(contents); + const QVersionNumber version = QVersionNumber::fromString(versionString); + // get existing or insert a new one otherwise + ContentsData &contentsData = contentsMap[title][version]; + contentsData.namespaceName = namespaceName; + contentsData.folderName = m_query->value(1).toString(); + contentsData.contentsList.append(contents); + } + + QList result; + for (const auto &versionContents : std::as_const(contentsMap)) { + // insert items in the reverse order of version number + const auto itBegin = versionContents.constBegin(); + auto it = versionContents.constEnd(); + while (it != itBegin) { + --it; + result.append(it.value()); + } + } + + return result; +} + +bool QHelpCollectionHandler::removeCustomValue(const QString &key) +{ + if (!isDBOpened()) + return false; + + m_query->prepare(QLatin1String("DELETE FROM SettingsTable WHERE Key=?")); + m_query->bindValue(0, key); + return m_query->exec(); +} + +QVariant QHelpCollectionHandler::customValue(const QString &key, + const QVariant &defaultValue) const +{ + if (!m_query) + return defaultValue; + + m_query->prepare(QLatin1String("SELECT COUNT(Key) FROM SettingsTable WHERE Key=?")); + m_query->bindValue(0, key); + if (!m_query->exec() || !m_query->next() || !m_query->value(0).toInt()) { + m_query->clear(); + return defaultValue; + } + + m_query->clear(); + m_query->prepare(QLatin1String("SELECT Value FROM SettingsTable WHERE Key=?")); + m_query->bindValue(0, key); + if (m_query->exec() && m_query->next()) { + const QVariant &value = m_query->value(0); + m_query->clear(); + return value; + } + + return defaultValue; +} + +bool QHelpCollectionHandler::setCustomValue(const QString &key, + const QVariant &value) +{ + if (!isDBOpened()) + return false; + + m_query->prepare(QLatin1String("SELECT Value FROM SettingsTable WHERE Key=?")); + m_query->bindValue(0, key); + m_query->exec(); + if (m_query->next()) { + m_query->prepare(QLatin1String("UPDATE SettingsTable SET Value=? where Key=?")); + m_query->bindValue(0, value); + m_query->bindValue(1, key); + } else { + m_query->prepare(QLatin1String("INSERT INTO SettingsTable VALUES(?, ?)")); + m_query->bindValue(0, key); + m_query->bindValue(1, value); + } + return m_query->exec(); +} + +bool QHelpCollectionHandler::registerFilterAttributes(const QList &attributeSets, + int nsId) +{ + if (!isDBOpened()) + return false; + + m_query->exec(QLatin1String("SELECT Name FROM FilterAttributeTable")); + QSet atts; + while (m_query->next()) + atts.insert(m_query->value(0).toString()); + + for (const QStringList &attributeSet : attributeSets) { + for (const QString &attribute : attributeSet) { + if (!atts.contains(attribute)) { + m_query->prepare(QLatin1String("INSERT INTO FilterAttributeTable VALUES(NULL, ?)")); + m_query->bindValue(0, attribute); + m_query->exec(); + } + } + } + return registerFileAttributeSets(attributeSets, nsId); +} + +bool QHelpCollectionHandler::registerFileAttributeSets(const QList &attributeSets, + int nsId) +{ + if (!isDBOpened()) + return false; + + if (attributeSets.isEmpty()) + return true; + + QVariantList nsIds; + QVariantList attributeSetIds; + QVariantList filterAttributeIds; + + if (!m_query->exec(QLatin1String("SELECT MAX(FilterAttributeSetId) FROM FileAttributeSetTable")) + || !m_query->next()) { + return false; + } + + int attributeSetId = m_query->value(0).toInt(); + + for (const QStringList &attributeSet : attributeSets) { + ++attributeSetId; + + for (const QString &attribute : attributeSet) { + + m_query->prepare(QLatin1String("SELECT Id FROM FilterAttributeTable WHERE Name=?")); + m_query->bindValue(0, attribute); + + if (!m_query->exec() || !m_query->next()) + return false; + + nsIds.append(nsId); + attributeSetIds.append(attributeSetId); + filterAttributeIds.append(m_query->value(0).toInt()); + } + } + + m_query->prepare(QLatin1String("INSERT INTO FileAttributeSetTable " + "(NamespaceId, FilterAttributeSetId, FilterAttributeId) " + "VALUES(?, ?, ?)")); + m_query->addBindValue(nsIds); + m_query->addBindValue(attributeSetIds); + m_query->addBindValue(filterAttributeIds); + return m_query->execBatch(); +} + +QStringList QHelpCollectionHandler::filterAttributes() const +{ + QStringList list; + if (m_query) { + m_query->exec(QLatin1String("SELECT Name FROM FilterAttributeTable")); + while (m_query->next()) + list.append(m_query->value(0).toString()); + } + return list; +} + +QStringList QHelpCollectionHandler::filterAttributes(const QString &filterName) const +{ + QStringList list; + if (m_query) { + m_query->prepare(QLatin1String( + "SELECT " + "FilterAttributeTable.Name " + "FROM " + "FilterAttributeTable, " + "FilterTable, " + "FilterNameTable " + "WHERE FilterAttributeTable.Id = FilterTable.FilterAttributeId " + "AND FilterTable.NameId = FilterNameTable.Id " + "AND FilterNameTable.Name=?")); + m_query->bindValue(0, filterName); + m_query->exec(); + while (m_query->next()) + list.append(m_query->value(0).toString()); + } + return list; +} + +QList QHelpCollectionHandler::filterAttributeSets(const QString &namespaceName) const +{ + QList result; + if (!isDBOpened()) + return result; + + m_query->prepare(QLatin1String( + "SELECT " + "FileAttributeSetTable.FilterAttributeSetId, " + "FilterAttributeTable.Name " + "FROM " + "FileAttributeSetTable, " + "FilterAttributeTable, " + "NamespaceTable " + "WHERE FileAttributeSetTable.FilterAttributeId = FilterAttributeTable.Id " + "AND FileAttributeSetTable.NamespaceId = NamespaceTable.Id " + "AND NamespaceTable.Name = ? " + "ORDER BY FileAttributeSetTable.FilterAttributeSetId")); + m_query->bindValue(0, namespaceName); + m_query->exec(); + int oldId = -1; + while (m_query->next()) { + const int id = m_query->value(0).toInt(); + if (id != oldId) { + result.append(QStringList()); + oldId = id; + } + result.last().append(m_query->value(1).toString()); + } + + if (result.isEmpty()) + result.append(QStringList()); + + return result; +} + +QString QHelpCollectionHandler::namespaceVersion(const QString &namespaceName) const +{ + if (!m_query) + return QString(); + + m_query->prepare(QLatin1String("SELECT " + "VersionTable.Version " + "FROM " + "NamespaceTable, " + "VersionTable " + "WHERE NamespaceTable.Name = ? " + "AND NamespaceTable.Id = VersionTable.NamespaceId")); + m_query->bindValue(0, namespaceName); + if (!m_query->exec() || !m_query->next()) + return QString(); + + const QString ret = m_query->value(0).toString(); + m_query->clear(); + + return ret; +} + +int QHelpCollectionHandler::registerNamespace(const QString &nspace, const QString &fileName) +{ + const int errorValue = -1; + if (!m_query) + return errorValue; + + m_query->prepare(QLatin1String("SELECT COUNT(Id) FROM NamespaceTable WHERE Name=?")); + m_query->bindValue(0, nspace); + m_query->exec(); + while (m_query->next()) { + if (m_query->value(0).toInt() > 0) { + emit error(tr("Namespace %1 already exists.").arg(nspace)); + return errorValue; + } + } + + QFileInfo fi(m_collectionFile); + m_query->prepare(QLatin1String("INSERT INTO NamespaceTable VALUES(NULL, ?, ?)")); + m_query->bindValue(0, nspace); + m_query->bindValue(1, fi.absoluteDir().relativeFilePath(fileName)); + int namespaceId = errorValue; + if (m_query->exec()) { + namespaceId = m_query->lastInsertId().toInt(); + m_query->clear(); + } + if (namespaceId < 1) { + emit error(tr("Cannot register namespace \"%1\".").arg(nspace)); + return errorValue; + } + return namespaceId; +} + +int QHelpCollectionHandler::registerVirtualFolder(const QString &folderName, int namespaceId) +{ + if (!m_query) + return false; + + m_query->prepare(QLatin1String("INSERT INTO FolderTable VALUES(NULL, ?, ?)")); + m_query->bindValue(0, namespaceId); + m_query->bindValue(1, folderName); + + int virtualId = -1; + if (m_query->exec()) { + virtualId = m_query->lastInsertId().toInt(); + m_query->clear(); + } + if (virtualId < 1) { + emit error(tr("Cannot register virtual folder '%1'.").arg(folderName)); + return -1; + } + + if (registerComponent(folderName, namespaceId) < 0) + return -1; + + return virtualId; +} + +int QHelpCollectionHandler::registerComponent(const QString &componentName, int namespaceId) +{ + m_query->prepare(QLatin1String("SELECT ComponentId FROM ComponentTable WHERE Name = ?")); + m_query->bindValue(0, componentName); + if (!m_query->exec()) + return -1; + + if (!m_query->next()) { + m_query->prepare(QLatin1String("INSERT INTO ComponentTable VALUES(NULL, ?)")); + m_query->bindValue(0, componentName); + if (!m_query->exec()) + return -1; + + m_query->prepare(QLatin1String("SELECT ComponentId FROM ComponentTable WHERE Name = ?")); + m_query->bindValue(0, componentName); + if (!m_query->exec() || !m_query->next()) + return -1; + } + + const int componentId = m_query->value(0).toInt(); + + m_query->prepare(QLatin1String("INSERT INTO ComponentMapping VALUES(?, ?)")); + m_query->bindValue(0, componentId); + m_query->bindValue(1, namespaceId); + if (!m_query->exec()) + return -1; + + return componentId; +} + +bool QHelpCollectionHandler::registerVersion(const QString &version, int namespaceId) +{ + if (!m_query) + return false; + + m_query->prepare(QLatin1String("INSERT INTO VersionTable " + "(NamespaceId, Version) " + "VALUES(?, ?)")); + m_query->addBindValue(namespaceId); + m_query->addBindValue(version); + return m_query->exec(); +} + +bool QHelpCollectionHandler::registerIndexAndNamespaceFilterTables( + const QString &nameSpace, bool createDefaultVersionFilter) +{ + if (!isDBOpened()) + return false; + + m_query->prepare(QLatin1String("SELECT Id, FilePath FROM NamespaceTable WHERE Name=?")); + m_query->bindValue(0, nameSpace); + m_query->exec(); + if (!m_query->next()) + return false; + + const int nsId = m_query->value(0).toInt(); + const QString fileName = m_query->value(1).toString(); + + m_query->prepare(QLatin1String("SELECT Id, Name FROM FolderTable WHERE NamespaceId=?")); + m_query->bindValue(0, nsId); + m_query->exec(); + if (!m_query->next()) + return false; + + const int vfId = m_query->value(0).toInt(); + const QString vfName = m_query->value(1).toString(); + + const QString absFileName = absoluteDocPath(fileName); + QHelpDBReader reader(absFileName, QHelpGlobal::uniquifyConnectionName( + fileName, this), this); + if (!reader.init()) + return false; + + registerComponent(vfName, nsId); + registerVersion(reader.version(), nsId); + if (!registerFileAttributeSets(reader.filterAttributeSets(), nsId)) + return false; + + if (!registerIndexTable(reader.indexTable(), nsId, vfId, fileName)) + return false; + + if (createDefaultVersionFilter) + createVersionFilter(reader.version()); + + return true; +} + +void QHelpCollectionHandler::createVersionFilter(const QString &version) +{ + if (version.isEmpty()) + return; + + const QVersionNumber versionNumber = QVersionNumber::fromString(version); + if (versionNumber.isNull()) + return; + + const QString filterName = tr("Version %1").arg(version); + if (filters().contains(filterName)) + return; + + QHelpFilterData filterData; + filterData.setVersions(QList() << versionNumber); + setFilterData(filterName, filterData); +} + +bool QHelpCollectionHandler::registerIndexTable(const QHelpDBReader::IndexTable &indexTable, + int nsId, int vfId, const QString &fileName) +{ + Transaction transaction(m_connectionName); + + QMap filterAttributeToNewFileId; + + QVariantList fileFolderIds; + QVariantList fileNames; + QVariantList fileTitles; + const int fileSize = indexTable.fileItems.size(); + fileFolderIds.reserve(fileSize); + fileNames.reserve(fileSize); + fileTitles.reserve(fileSize); + + if (!m_query->exec(QLatin1String("SELECT MAX(FileId) FROM FileNameTable")) || !m_query->next()) + return false; + + const int maxFileId = m_query->value(0).toInt(); + + int newFileId = 0; + for (const QHelpDBReader::FileItem &item : indexTable.fileItems) { + fileFolderIds.append(vfId); + fileNames.append(item.name); + fileTitles.append(item.title); + + for (const QString &filterAttribute : item.filterAttributes) + filterAttributeToNewFileId[filterAttribute].append(maxFileId + newFileId + 1); + ++newFileId; + } + + m_query->prepare(QLatin1String("INSERT INTO FileNameTable VALUES(?, ?, NULL, ?)")); + m_query->addBindValue(fileFolderIds); + m_query->addBindValue(fileNames); + m_query->addBindValue(fileTitles); + if (!m_query->execBatch()) + return false; + + for (auto it = filterAttributeToNewFileId.cbegin(), + end = filterAttributeToNewFileId.cend(); it != end; ++it) { + const QString filterAttribute = it.key(); + m_query->prepare(QLatin1String("SELECT Id From FilterAttributeTable WHERE Name = ?")); + m_query->bindValue(0, filterAttribute); + if (!m_query->exec() || !m_query->next()) + return false; + + const int attributeId = m_query->value(0).toInt(); + + QVariantList attributeIds; + for (int i = 0; i < it.value().size(); i++) + attributeIds.append(attributeId); + + m_query->prepare(QLatin1String("INSERT INTO FileFilterTable VALUES(?, ?)")); + m_query->addBindValue(attributeIds); + m_query->addBindValue(it.value()); + if (!m_query->execBatch()) + return false; + } + + QMap filterAttributeToNewIndexId; + + if (!m_query->exec(QLatin1String("SELECT MAX(Id) FROM IndexTable")) || !m_query->next()) + return false; + + const int maxIndexId = m_query->value(0).toInt(); + int newIndexId = 0; + + QVariantList indexNames; + QVariantList indexIdentifiers; + QVariantList indexNamespaceIds; + QVariantList indexFileIds; + QVariantList indexAnchors; + const int indexSize = indexTable.indexItems.size(); + indexNames.reserve(indexSize); + indexIdentifiers.reserve(indexSize); + indexNamespaceIds.reserve(indexSize); + indexFileIds.reserve(indexSize); + indexAnchors.reserve(indexSize); + + for (const QHelpDBReader::IndexItem &item : indexTable.indexItems) { + indexNames.append(item.name); + indexIdentifiers.append(item.identifier); + indexNamespaceIds.append(nsId); + indexFileIds.append(maxFileId + item.fileId + 1); + indexAnchors.append(item.anchor); + + for (const QString &filterAttribute : item.filterAttributes) + filterAttributeToNewIndexId[filterAttribute].append(maxIndexId + newIndexId + 1); + ++newIndexId; + } + + m_query->prepare(QLatin1String("INSERT INTO IndexTable VALUES(NULL, ?, ?, ?, ?, ?)")); + m_query->addBindValue(indexNames); + m_query->addBindValue(indexIdentifiers); + m_query->addBindValue(indexNamespaceIds); + m_query->addBindValue(indexFileIds); + m_query->addBindValue(indexAnchors); + if (!m_query->execBatch()) + return false; + + for (auto it = filterAttributeToNewIndexId.cbegin(), + end = filterAttributeToNewIndexId.cend(); it != end; ++it) { + const QString filterAttribute = it.key(); + m_query->prepare(QLatin1String("SELECT Id From FilterAttributeTable WHERE Name = ?")); + m_query->bindValue(0, filterAttribute); + if (!m_query->exec() || !m_query->next()) + return false; + + const int attributeId = m_query->value(0).toInt(); + + QVariantList attributeIds; + for (int i = 0; i < it.value().size(); i++) + attributeIds.append(attributeId); + + m_query->prepare(QLatin1String("INSERT INTO IndexFilterTable VALUES(?, ?)")); + m_query->addBindValue(attributeIds); + m_query->addBindValue(it.value()); + if (!m_query->execBatch()) + return false; + } + + QMap filterAttributeToNewContentsId; + + QVariantList contentsNsIds; + QVariantList contentsData; + const int contentsSize = indexTable.contentsItems.size(); + contentsNsIds.reserve(contentsSize); + contentsData.reserve(contentsSize); + + if (!m_query->exec(QLatin1String("SELECT MAX(Id) FROM ContentsTable")) || !m_query->next()) + return false; + + const int maxContentsId = m_query->value(0).toInt(); + + int newContentsId = 0; + for (const QHelpDBReader::ContentsItem &item : indexTable.contentsItems) { + contentsNsIds.append(nsId); + contentsData.append(item.data); + + for (const QString &filterAttribute : item.filterAttributes) { + filterAttributeToNewContentsId[filterAttribute] + .append(maxContentsId + newContentsId + 1); + } + ++newContentsId; + } + + m_query->prepare(QLatin1String("INSERT INTO ContentsTable VALUES(NULL, ?, ?)")); + m_query->addBindValue(contentsNsIds); + m_query->addBindValue(contentsData); + if (!m_query->execBatch()) + return false; + + for (auto it = filterAttributeToNewContentsId.cbegin(), + end = filterAttributeToNewContentsId.cend(); it != end; ++it) { + const QString filterAttribute = it.key(); + m_query->prepare(QLatin1String("SELECT Id From FilterAttributeTable WHERE Name = ?")); + m_query->bindValue(0, filterAttribute); + if (!m_query->exec() || !m_query->next()) + return false; + + const int attributeId = m_query->value(0).toInt(); + + QVariantList attributeIds; + for (int i = 0; i < it.value().size(); i++) + attributeIds.append(attributeId); + + m_query->prepare(QLatin1String("INSERT INTO ContentsFilterTable VALUES(?, ?)")); + m_query->addBindValue(attributeIds); + m_query->addBindValue(it.value()); + if (!m_query->execBatch()) + return false; + } + + QVariantList filterNsIds; + QVariantList filterAttributeIds; + for (const QString &filterAttribute : indexTable.usedFilterAttributes) { + filterNsIds.append(nsId); + + m_query->prepare(QLatin1String("SELECT Id From FilterAttributeTable WHERE Name = ?")); + m_query->bindValue(0, filterAttribute); + if (!m_query->exec() || !m_query->next()) + return false; + + filterAttributeIds.append(m_query->value(0).toInt()); + } + + m_query->prepare(QLatin1String("INSERT INTO OptimizedFilterTable " + "(NamespaceId, FilterAttributeId) VALUES(?, ?)")); + m_query->addBindValue(filterNsIds); + m_query->addBindValue(filterAttributeIds); + if (!m_query->execBatch()) + return false; + + m_query->prepare(QLatin1String("INSERT INTO TimeStampTable " + "(NamespaceId, FolderId, FilePath, Size, TimeStamp) " + "VALUES(?, ?, ?, ?, ?)")); + m_query->addBindValue(nsId); + m_query->addBindValue(vfId); + m_query->addBindValue(fileName); + const QFileInfo fi(absoluteDocPath(fileName)); + m_query->addBindValue(fi.size()); + QDateTime lastModified = fi.lastModified(); + if (qEnvironmentVariableIsSet("SOURCE_DATE_EPOCH")) { + const QString sourceDateEpochStr = qEnvironmentVariable("SOURCE_DATE_EPOCH"); + bool ok; + const qlonglong sourceDateEpoch = sourceDateEpochStr.toLongLong(&ok); + if (ok && sourceDateEpoch < lastModified.toSecsSinceEpoch()) + lastModified.setSecsSinceEpoch(sourceDateEpoch); + } + m_query->addBindValue(lastModified.toString(Qt::ISODate)); + if (!m_query->exec()) + return false; + + transaction.commit(); + return true; +} + +bool QHelpCollectionHandler::unregisterIndexTable(int nsId, int vfId) +{ + m_query->prepare(QLatin1String("DELETE FROM IndexFilterTable WHERE IndexId IN " + "(SELECT Id FROM IndexTable WHERE NamespaceId = ?)")); + m_query->bindValue(0, nsId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("DELETE FROM IndexTable WHERE NamespaceId = ?")); + m_query->bindValue(0, nsId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("DELETE FROM FileFilterTable WHERE FileId IN " + "(SELECT FileId FROM FileNameTable WHERE FolderId = ?)")); + m_query->bindValue(0, vfId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("DELETE FROM FileNameTable WHERE FolderId = ?")); + m_query->bindValue(0, vfId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("DELETE FROM ContentsFilterTable WHERE ContentsId IN " + "(SELECT Id FROM ContentsTable WHERE NamespaceId = ?)")); + m_query->bindValue(0, nsId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("DELETE FROM ContentsTable WHERE NamespaceId = ?")); + m_query->bindValue(0, nsId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("DELETE FROM FileAttributeSetTable WHERE NamespaceId = ?")); + m_query->bindValue(0, nsId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("DELETE FROM OptimizedFilterTable WHERE NamespaceId = ?")); + m_query->bindValue(0, nsId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("DELETE FROM TimeStampTable WHERE NamespaceId = ?")); + m_query->bindValue(0, nsId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("DELETE FROM VersionTable WHERE NamespaceId = ?")); + m_query->bindValue(0, nsId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("SELECT ComponentId FROM ComponentMapping WHERE NamespaceId = ?")); + m_query->bindValue(0, nsId); + if (!m_query->exec()) + return false; + + if (!m_query->next()) + return false; + + const int componentId = m_query->value(0).toInt(); + + m_query->prepare(QLatin1String("DELETE FROM ComponentMapping WHERE NamespaceId = ?")); + m_query->bindValue(0, nsId); + if (!m_query->exec()) + return false; + + m_query->prepare(QLatin1String("SELECT ComponentId FROM ComponentMapping WHERE ComponentId = ?")); + m_query->bindValue(0, componentId); + if (!m_query->exec()) + return false; + + if (!m_query->next()) { // no more namespaces refer to the componentId + m_query->prepare(QLatin1String("DELETE FROM ComponentTable WHERE ComponentId = ?")); + m_query->bindValue(0, componentId); + if (!m_query->exec()) + return false; + } + + return true; +} + +static QUrl buildQUrl(const QString &ns, const QString &folder, + const QString &relFileName, const QString &anchor) +{ + QUrl url; + url.setScheme(QLatin1String("qthelp")); + url.setAuthority(ns); + url.setPath(QLatin1Char('/') + folder + QLatin1Char('/') + relFileName); + url.setFragment(anchor); + return url; +} + +QMultiMap QHelpCollectionHandler::linksForIdentifier( + const QString &id, + const QStringList &filterAttributes) const +{ + return linksForField(QLatin1String("Identifier"), id, filterAttributes); +} + +QMultiMap QHelpCollectionHandler::linksForKeyword( + const QString &keyword, + const QStringList &filterAttributes) const +{ + return linksForField(QLatin1String("Name"), keyword, filterAttributes); +} + +QList QHelpCollectionHandler::documentsForIdentifier( + const QString &id, + const QStringList &filterAttributes) const +{ + return documentsForField(QLatin1String("Identifier"), id, filterAttributes); +} + +QList QHelpCollectionHandler::documentsForKeyword( + const QString &keyword, + const QStringList &filterAttributes) const +{ + return documentsForField(QLatin1String("Name"), keyword, filterAttributes); +} + +QMultiMap QHelpCollectionHandler::linksForField( + const QString &fieldName, + const QString &fieldValue, + const QStringList &filterAttributes) const +{ + QMultiMap linkMap; + const auto documents = documentsForField(fieldName, fieldValue, filterAttributes); + for (const auto &document : documents) + linkMap.insert(document.title, document.url); + + return linkMap; +} + +QList QHelpCollectionHandler::documentsForField( + const QString &fieldName, + const QString &fieldValue, + const QStringList &filterAttributes) const +{ + QList docList; + + if (!isDBOpened()) + return docList; + + const QString filterlessQuery = QString::fromLatin1( + "SELECT " + "FileNameTable.Title, " + "NamespaceTable.Name, " + "FolderTable.Name, " + "FileNameTable.Name, " + "IndexTable.Anchor " + "FROM " + "IndexTable, " + "FileNameTable, " + "FolderTable, " + "NamespaceTable " + "WHERE IndexTable.FileId = FileNameTable.FileId " + "AND FileNameTable.FolderId = FolderTable.Id " + "AND IndexTable.NamespaceId = NamespaceTable.Id " + "AND IndexTable.%1 = ?").arg(fieldName); + + const QString filterQuery = filterlessQuery + + prepareFilterQuery(filterAttributes.size(), + QLatin1String("IndexTable"), + QLatin1String("Id"), + QLatin1String("IndexFilterTable"), + QLatin1String("IndexId")); + + m_query->prepare(filterQuery); + m_query->bindValue(0, fieldValue); + bindFilterQuery(m_query, 1, filterAttributes); + + m_query->exec(); + + while (m_query->next()) { + QString title = m_query->value(0).toString(); + if (title.isEmpty()) // generate a title + corresponding path + title = fieldValue + QLatin1String(" : ") + m_query->value(3).toString(); + + const QUrl url = buildQUrl(m_query->value(1).toString(), + m_query->value(2).toString(), + m_query->value(3).toString(), + m_query->value(4).toString()); + docList.append(QHelpLink {url, title}); + } + return docList; +} + +QMultiMap QHelpCollectionHandler::linksForIdentifier( + const QString &id, + const QString &filterName) const +{ + return linksForField(QLatin1String("Identifier"), id, filterName); +} + +QMultiMap QHelpCollectionHandler::linksForKeyword( + const QString &keyword, + const QString &filterName) const +{ + return linksForField(QLatin1String("Name"), keyword, filterName); +} + +QList QHelpCollectionHandler::documentsForIdentifier( + const QString &id, + const QString &filterName) const +{ + return documentsForField(QLatin1String("Identifier"), id, filterName); +} + +QList QHelpCollectionHandler::documentsForKeyword( + const QString &keyword, + const QString &filterName) const +{ + return documentsForField(QLatin1String("Name"), keyword, filterName); +} + +QMultiMap QHelpCollectionHandler::linksForField( + const QString &fieldName, + const QString &fieldValue, + const QString &filterName) const +{ + QMultiMap linkMap; + const auto documents = documentsForField(fieldName, fieldValue, filterName); + for (const auto &document : documents) + linkMap.insert(document.title, document.url); + + return linkMap; +} + +QList QHelpCollectionHandler::documentsForField( + const QString &fieldName, + const QString &fieldValue, + const QString &filterName) const +{ + QList docList; + + if (!isDBOpened()) + return docList; + + const QString filterlessQuery = QString::fromLatin1( + "SELECT " + "FileNameTable.Title, " + "NamespaceTable.Name, " + "FolderTable.Name, " + "FileNameTable.Name, " + "IndexTable.Anchor " + "FROM " + "IndexTable, " + "FileNameTable, " + "FolderTable, " + "NamespaceTable " + "WHERE IndexTable.FileId = FileNameTable.FileId " + "AND FileNameTable.FolderId = FolderTable.Id " + "AND IndexTable.NamespaceId = NamespaceTable.Id " + "AND IndexTable.%1 = ?").arg(fieldName); + + const QString filterQuery = filterlessQuery + + prepareFilterQuery(filterName) + + QLatin1String(" ORDER BY LOWER(FileNameTable.Title), FileNameTable.Title"); + + m_query->prepare(filterQuery); + m_query->bindValue(0, fieldValue); + bindFilterQuery(m_query, 1, filterName); + + m_query->exec(); + + while (m_query->next()) { + QString title = m_query->value(0).toString(); + if (title.isEmpty()) // generate a title + corresponding path + title = fieldValue + QLatin1String(" : ") + m_query->value(3).toString(); + + const QUrl url = buildQUrl(m_query->value(1).toString(), + m_query->value(2).toString(), + m_query->value(3).toString(), + m_query->value(4).toString()); + docList.append(QHelpLink {url, title}); + } + return docList; +} + +QStringList QHelpCollectionHandler::namespacesForFilter(const QString &filterName) const +{ + QStringList namespaceList; + + if (!isDBOpened()) + return namespaceList; + + const QString filterlessQuery = QString::fromLatin1( + "SELECT " + "NamespaceTable.Name " + "FROM " + "NamespaceTable " + "WHERE TRUE"); + + const QString filterQuery = filterlessQuery + + prepareFilterQuery(filterName); + + m_query->prepare(filterQuery); + bindFilterQuery(m_query, 0, filterName); + + m_query->exec(); + + while (m_query->next()) + namespaceList.append(m_query->value(0).toString()); + + return namespaceList; +} + +void QHelpCollectionHandler::setReadOnly(bool readOnly) +{ + m_readOnly = readOnly; +} + +QT_END_NAMESPACE diff --git a/src/assistant/help/qhelpcollectionhandler_p.h b/src/assistant/help/qhelpcollectionhandler_p.h new file mode 100644 index 0000000..5e01f6e --- /dev/null +++ b/src/assistant/help/qhelpcollectionhandler_p.h @@ -0,0 +1,229 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPCOLLECTIONHANDLER_H +#define QHELPCOLLECTIONHANDLER_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of the help generator tools. This header file may change from version +// to version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include + +#include + +#include "qhelpdbreader_p.h" +#include "qhelplink.h" + +QT_BEGIN_NAMESPACE + +class QVersionNumber; +class QHelpFilterData; + +class QHelpCollectionHandler : public QObject +{ + Q_OBJECT + +public: + struct FileInfo + { + QString fileName; + QString folderName; + QString namespaceName; + }; + typedef QList FileInfoList; + + struct TimeStamp + { + int namespaceId = -1; + int folderId = -1; + QString fileName; + int size = 0; + QString timeStamp; + }; + + struct ContentsData + { + QString namespaceName; + QString folderName; + QList contentsList; + }; + + explicit QHelpCollectionHandler(const QString &collectionFile, + QObject *parent = nullptr); + ~QHelpCollectionHandler(); + + QString collectionFile() const; + + bool openCollectionFile(); + bool copyCollectionFile(const QString &fileName); + + // *** Legacy block start *** + // legacy API since Qt 5.13 + + // use filters() instead + QStringList customFilters() const; + + // use QHelpFilterEngine::removeFilter() instead + bool removeCustomFilter(const QString &filterName); + + // use QHelpFilterEngine::setFilterData() instead + bool addCustomFilter(const QString &filterName, + const QStringList &attributes); + + // use files(const QString &, const QString &, const QString &) instead + QStringList files(const QString &namespaceName, + const QStringList &filterAttributes, + const QString &extensionFilter) const; + + // use namespaceForFile(const QUrl &, const QString &) instead + QString namespaceForFile(const QUrl &url, + const QStringList &filterAttributes) const; + + // use findFile(const QUrl &, const QString &) instead + QUrl findFile(const QUrl &url, + const QStringList &filterAttributes) const; + + // use indicesForFilter(const QString &) instead + QStringList indicesForFilter(const QStringList &filterAttributes) const; + + // use contentsForFilter(const QString &) instead + QList contentsForFilter(const QStringList &filterAttributes) const; + + // use QHelpFilterEngine::activeFilter() and filterData(const QString &) instead; + QStringList filterAttributes() const; + + // use filterData(const QString &) instead + QStringList filterAttributes(const QString &filterName) const; + + // use filterData(const QString &) instead + QList filterAttributeSets(const QString &namespaceName) const; + + // use linksForIdentifier(const QString &, const QString &) instead + QMultiMap linksForIdentifier(const QString &id, + const QStringList &filterAttributes) const; + + // use linksForKeyword(const QString &, const QString &) instead + QMultiMap linksForKeyword(const QString &keyword, + const QStringList &filterAttributes) const; + + // use documentsForIdentifier instead + QMultiMap linksForIdentifier(const QString &id, const QString &filterName) const; + + // use documentsForKeyword instead + QMultiMap linksForKeyword(const QString &keyword, + const QString &filterName) const; + // *** Legacy block end *** + + QStringList filters() const; + + QStringList availableComponents() const; + QList availableVersions() const; + QMap namespaceToComponent() const; + QMap namespaceToVersion() const; + QHelpFilterData filterData(const QString &filterName) const; + bool setFilterData(const QString &filterName, const QHelpFilterData &filterData); + bool removeFilter(const QString &filterName); + + + FileInfo registeredDocumentation(const QString &namespaceName) const; + FileInfoList registeredDocumentations() const; + bool registerDocumentation(const QString &fileName); + bool unregisterDocumentation(const QString &namespaceName); + + + bool fileExists(const QUrl &url) const; + QStringList files(const QString &namespaceName, + const QString &filterName, + const QString &extensionFilter) const; + QString namespaceForFile(const QUrl &url, + const QString &filterName) const; + QUrl findFile(const QUrl &url, + const QString &filterName) const; + QByteArray fileData(const QUrl &url) const; + + + QStringList indicesForFilter(const QString &filterName) const; + QList contentsForFilter(const QString &filterName) const; + + bool removeCustomValue(const QString &key); + QVariant customValue(const QString &key, const QVariant &defaultValue) const; + bool setCustomValue(const QString &key, const QVariant &value); + + + int registerNamespace(const QString &nspace, const QString &fileName); + int registerVirtualFolder(const QString &folderName, int namespaceId); + int registerComponent(const QString &componentName, int namespaceId); + bool registerVersion(const QString &version, int namespaceId); + + QList documentsForIdentifier(const QString &id, + const QString &filterName) const; + QList documentsForKeyword(const QString &keyword, + const QString &filterName) const; + QList documentsForIdentifier(const QString &id, + const QStringList &filterAttributes) const; + QList documentsForKeyword(const QString &keyword, + const QStringList &filterAttributes) const; + + QStringList namespacesForFilter(const QString &filterName) const; + + void setReadOnly(bool readOnly); + +signals: + void error(const QString &msg) const; + +private: + // legacy stuff + QMultiMap linksForField(const QString &fieldName, + const QString &fieldValue, + const QStringList &filterAttributes) const; + QList documentsForField(const QString &fieldName, + const QString &fieldValue, + const QStringList &filterAttributes) const; + + QString namespaceVersion(const QString &namespaceName) const; + QMultiMap linksForField(const QString &fieldName, const QString &fieldValue, + const QString &filterName) const; + QList documentsForField(const QString &fieldName, + const QString &fieldValue, + const QString &filterName) const; + + bool isDBOpened() const; + bool createTables(QSqlQuery *query); + void closeDB(); + bool recreateIndexAndNamespaceFilterTables(QSqlQuery *query); + bool registerIndexAndNamespaceFilterTables(const QString &nameSpace, + bool createDefaultVersionFilter = false); + void createVersionFilter(const QString &version); + bool registerFilterAttributes(const QList &attributeSets, int nsId); + bool registerFileAttributeSets(const QList &attributeSets, int nsId); + bool registerIndexTable(const QHelpDBReader::IndexTable &indexTable, + int nsId, int vfId, const QString &fileName); + bool unregisterIndexTable(int nsId, int vfId); + QString absoluteDocPath(const QString &fileName) const; + bool isTimeStampCorrect(const TimeStamp &timeStamp) const; + bool hasTimeStampInfo(const QString &nameSpace) const; + void scheduleVacuum(); + void execVacuum(); + + QString m_collectionFile; + QString m_connectionName; + QSqlQuery *m_query = nullptr; + bool m_vacuumScheduled = false; + bool m_readOnly = true; +}; + +QT_END_NAMESPACE + +#endif //QHELPCOLLECTIONHANDLER_H diff --git a/src/assistant/help/qhelpcontentwidget.cpp b/src/assistant/help/qhelpcontentwidget.cpp new file mode 100644 index 0000000..18be277 --- /dev/null +++ b/src/assistant/help/qhelpcontentwidget.cpp @@ -0,0 +1,564 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpcontentwidget.h" +#include "qhelpenginecore.h" +#include "qhelpengine_p.h" +#include "qhelpcollectionhandler_p.h" + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QHelpContentItemPrivate +{ +public: + QHelpContentItemPrivate(const QString &t, const QUrl &l, QHelpContentItem *p) + : parent(p), + title(t), + link(l) + { + } + + void appendChild(QHelpContentItem *item) { childItems.append(item); } + + QList childItems; + QHelpContentItem *parent; + QString title; + QUrl link; +}; + +class QHelpContentProvider : public QThread +{ + Q_OBJECT +public: + QHelpContentProvider(QHelpEnginePrivate *helpEngine); + ~QHelpContentProvider() override; + void collectContents(const QString &customFilterName); + void stopCollecting(); + QHelpContentItem *takeContentItem(); + +private: + void run() override; + + QHelpEnginePrivate *m_helpEngine; + QString m_currentFilter; + QStringList m_filterAttributes; + QString m_collectionFile; + QHelpContentItem *m_rootItem = nullptr; + QMutex m_mutex; + bool m_usesFilterEngine = false; + bool m_abort = false; +}; + +class QHelpContentModelPrivate +{ +public: + QHelpContentItem *rootItem = nullptr; + QHelpContentProvider *qhelpContentProvider; +}; + + + +/*! + \class QHelpContentItem + \inmodule QtHelp + \brief The QHelpContentItem class provides an item for use with QHelpContentModel. + \since 4.4 +*/ + +QHelpContentItem::QHelpContentItem(const QString &name, const QUrl &link, QHelpContentItem *parent) +{ + d = new QHelpContentItemPrivate(name, link, parent); +} + +/*! + Destroys the help content item. +*/ +QHelpContentItem::~QHelpContentItem() +{ + qDeleteAll(d->childItems); + delete d; +} + +/*! + Returns the child of the content item in the give \a row. + + \sa parent() +*/ +QHelpContentItem *QHelpContentItem::child(int row) const +{ + return d->childItems.value(row); +} + +/*! + Returns the number of child items. +*/ +int QHelpContentItem::childCount() const +{ + return d->childItems.size(); +} + +/*! + Returns the row of this item from its parents view. +*/ +int QHelpContentItem::row() const +{ + if (d->parent) + return d->parent->d->childItems.indexOf(const_cast(this)); + return 0; +} + +/*! + Returns the title of the content item. +*/ +QString QHelpContentItem::title() const +{ + return d->title; +} + +/*! + Returns the URL of this content item. +*/ +QUrl QHelpContentItem::url() const +{ + return d->link; +} + +/*! + Returns the parent content item. +*/ +QHelpContentItem *QHelpContentItem::parent() const +{ + return d->parent; +} + +/*! + Returns the position of a given \a child. +*/ +int QHelpContentItem::childPosition(QHelpContentItem *child) const +{ + return d->childItems.indexOf(child); +} + + + +QHelpContentProvider::QHelpContentProvider(QHelpEnginePrivate *helpEngine) + : QThread(helpEngine) +{ + m_helpEngine = helpEngine; +} + +QHelpContentProvider::~QHelpContentProvider() +{ + stopCollecting(); +} + +void QHelpContentProvider::collectContents(const QString &customFilterName) +{ + m_mutex.lock(); + m_currentFilter = customFilterName; + m_filterAttributes = m_helpEngine->q->filterAttributes(customFilterName); + m_collectionFile = m_helpEngine->collectionHandler->collectionFile(); + m_usesFilterEngine = m_helpEngine->usesFilterEngine; + m_mutex.unlock(); + + if (isRunning()) + stopCollecting(); + start(LowPriority); +} + +void QHelpContentProvider::stopCollecting() +{ + if (isRunning()) { + m_mutex.lock(); + m_abort = true; + m_mutex.unlock(); + wait(); + // we need to force-set m_abort to false, because the thread might either have + // finished between the isRunning() check and the "m_abort = true" above, or the + // isRunning() check might already happen after the "m_abort = false" in the run() method, + // either way never resetting m_abort to false from within the run() method + m_abort = false; + } + delete m_rootItem; + m_rootItem = nullptr; +} + +QHelpContentItem *QHelpContentProvider::takeContentItem() +{ + QMutexLocker locker(&m_mutex); + QHelpContentItem *content = m_rootItem; + m_rootItem = nullptr; + return content; +} + +// TODO: this is a copy from helpcollectionhandler, make it common +static QUrl buildQUrl(const QString &ns, const QString &folder, + const QString &relFileName, const QString &anchor) +{ + QUrl url; + url.setScheme(QLatin1String("qthelp")); + url.setAuthority(ns); + url.setPath(QLatin1Char('/') + folder + QLatin1Char('/') + relFileName); + url.setFragment(anchor); + return url; +} + +static QUrl constructUrl(const QString &namespaceName, + const QString &folderName, + const QString &relativePath) +{ + const int idx = relativePath.indexOf(QLatin1Char('#')); + const QString &rp = idx < 0 ? relativePath : relativePath.left(idx); + const QString anchor = idx < 0 ? QString() : relativePath.mid(idx + 1); + return buildQUrl(namespaceName, folderName, rp, anchor); +} + +void QHelpContentProvider::run() +{ + m_mutex.lock(); + const QString currentFilter = m_currentFilter; + const QStringList attributes = m_filterAttributes; + const QString collectionFile = m_collectionFile; + const bool usesFilterEngine = m_usesFilterEngine; + delete m_rootItem; + m_rootItem = nullptr; + m_mutex.unlock(); + + if (collectionFile.isEmpty()) + return; + + QHelpCollectionHandler collectionHandler(collectionFile); + if (!collectionHandler.openCollectionFile()) + return; + + QString title; + QString link; + int depth = 0; + QHelpContentItem *item = nullptr; + QHelpContentItem * const rootItem = new QHelpContentItem(QString(), QString(), nullptr); + + const QList result = usesFilterEngine + ? collectionHandler.contentsForFilter(currentFilter) + : collectionHandler.contentsForFilter(attributes); + + for (const auto &contentsData : result) { + m_mutex.lock(); + if (m_abort) { + delete rootItem; + m_abort = false; + m_mutex.unlock(); + return; + } + m_mutex.unlock(); + + const QString namespaceName = contentsData.namespaceName; + const QString folderName = contentsData.folderName; + for (const QByteArray &contents : contentsData.contentsList) { + if (contents.size() < 1) + continue; + + int _depth = 0; + bool _root = false; + QStack stack; + + QDataStream s(contents); + for (;;) { + s >> depth; + s >> link; + s >> title; + if (title.isEmpty()) + break; + const QUrl url = constructUrl(namespaceName, folderName, link); +CHECK_DEPTH: + if (depth == 0) { + m_mutex.lock(); + item = new QHelpContentItem(title, url, rootItem); + rootItem->d->appendChild(item); + m_mutex.unlock(); + stack.push(item); + _depth = 1; + _root = true; + } else { + if (depth > _depth && _root) { + _depth = depth; + stack.push(item); + } + if (depth == _depth) { + item = new QHelpContentItem(title, url, stack.top()); + stack.top()->d->appendChild(item); + } else if (depth < _depth) { + stack.pop(); + --_depth; + goto CHECK_DEPTH; + } + } + } + } + } + + m_mutex.lock(); + m_rootItem = rootItem; + m_abort = false; + m_mutex.unlock(); +} + +/*! + \class QHelpContentModel + \inmodule QtHelp + \brief The QHelpContentModel class provides a model that supplies content to views. + \since 4.4 +*/ + +/*! + \fn void QHelpContentModel::contentsCreationStarted() + + This signal is emitted when the creation of the contents has + started. The current contents are invalid from this point on + until the signal contentsCreated() is emitted. + + \sa isCreatingContents() +*/ + +/*! + \fn void QHelpContentModel::contentsCreated() + + This signal is emitted when the contents have been created. +*/ + +QHelpContentModel::QHelpContentModel(QHelpEnginePrivate *helpEngine) + : QAbstractItemModel(helpEngine) +{ + d = new QHelpContentModelPrivate(); + d->qhelpContentProvider = new QHelpContentProvider(helpEngine); + + connect(d->qhelpContentProvider, &QThread::finished, + this, &QHelpContentModel::insertContents); +} + +/*! + Destroys the help content model. +*/ +QHelpContentModel::~QHelpContentModel() +{ + delete d->rootItem; + delete d; +} + +/*! + Creates new contents by querying the help system + for contents specified for the \a customFilterName. +*/ +void QHelpContentModel::createContents(const QString &customFilterName) +{ + const bool running = d->qhelpContentProvider->isRunning(); + d->qhelpContentProvider->collectContents(customFilterName); + if (running) + return; + + if (d->rootItem) { + beginResetModel(); + delete d->rootItem; + d->rootItem = nullptr; + endResetModel(); + } + emit contentsCreationStarted(); +} + +void QHelpContentModel::insertContents() +{ + if (d->qhelpContentProvider->isRunning()) + return; + + QHelpContentItem * const newRootItem = d->qhelpContentProvider->takeContentItem(); + if (!newRootItem) + return; + beginResetModel(); + delete d->rootItem; + d->rootItem = newRootItem; + endResetModel(); + emit contentsCreated(); +} + +/*! + Returns true if the contents are currently rebuilt, otherwise + false. +*/ +bool QHelpContentModel::isCreatingContents() const +{ + return d->qhelpContentProvider->isRunning(); +} + +/*! + Returns the help content item at the model index position + \a index. +*/ +QHelpContentItem *QHelpContentModel::contentItemAt(const QModelIndex &index) const +{ + if (index.isValid()) + return static_cast(index.internalPointer()); + else + return d->rootItem; +} + +/*! + Returns the index of the item in the model specified by + the given \a row, \a column and \a parent index. +*/ +QModelIndex QHelpContentModel::index(int row, int column, const QModelIndex &parent) const +{ + if (!d->rootItem) + return QModelIndex(); + + QHelpContentItem *parentItem = contentItemAt(parent); + QHelpContentItem *item = parentItem->child(row); + if (!item) + return QModelIndex(); + return createIndex(row, column, item); +} + +/*! + Returns the parent of the model item with the given + \a index, or QModelIndex() if it has no parent. +*/ +QModelIndex QHelpContentModel::parent(const QModelIndex &index) const +{ + QHelpContentItem *item = contentItemAt(index); + if (!item) + return QModelIndex(); + + QHelpContentItem *parentItem = static_cast(item->parent()); + if (!parentItem) + return QModelIndex(); + + QHelpContentItem *grandparentItem = static_cast(parentItem->parent()); + if (!grandparentItem) + return QModelIndex(); + + int row = grandparentItem->childPosition(parentItem); + return createIndex(row, index.column(), parentItem); +} + +/*! + Returns the number of rows under the given \a parent. +*/ +int QHelpContentModel::rowCount(const QModelIndex &parent) const +{ + QHelpContentItem *parentItem = contentItemAt(parent); + if (!parentItem) + return 0; + return parentItem->childCount(); +} + +/*! + Returns the number of columns under the given \a parent. Currently returns always 1. +*/ +int QHelpContentModel::columnCount(const QModelIndex &parent) const +{ + Q_UNUSED(parent); + + return 1; +} + +/*! + Returns the data stored under the given \a role for + the item referred to by the \a index. +*/ +QVariant QHelpContentModel::data(const QModelIndex &index, int role) const +{ + if (role != Qt::DisplayRole) + return QVariant(); + + QHelpContentItem *item = contentItemAt(index); + if (!item) + return QVariant(); + return item->title(); +} + + + +/*! + \class QHelpContentWidget + \inmodule QtHelp + \brief The QHelpContentWidget class provides a tree view for displaying help content model items. + \since 4.4 +*/ + +/*! + \fn void QHelpContentWidget::linkActivated(const QUrl &link) + + This signal is emitted when a content item is activated and + its associated \a link should be shown. +*/ + +QHelpContentWidget::QHelpContentWidget() + : QTreeView(nullptr) +{ + header()->hide(); + setUniformRowHeights(true); + connect(this, &QAbstractItemView::activated, + this, &QHelpContentWidget::showLink); +} + +/*! + Returns the index of the content item with the \a link. + An invalid index is returned if no such an item exists. +*/ +QModelIndex QHelpContentWidget::indexOf(const QUrl &link) +{ + QHelpContentModel *contentModel = qobject_cast(model()); + if (!contentModel || link.scheme() != QLatin1String("qthelp")) + return QModelIndex(); + + m_syncIndex = QModelIndex(); + for (int i = 0; i < contentModel->rowCount(); ++i) { + QHelpContentItem *itm = contentModel->contentItemAt(contentModel->index(i, 0)); + if (itm && itm->url().host() == link.host()) { + if (searchContentItem(contentModel, contentModel->index(i, 0), QDir::cleanPath(link.path()))) + return m_syncIndex; + } + } + return QModelIndex(); +} + +bool QHelpContentWidget::searchContentItem(QHelpContentModel *model, const QModelIndex &parent, + const QString &cleanPath) +{ + QHelpContentItem *parentItem = model->contentItemAt(parent); + if (!parentItem) + return false; + + if (QDir::cleanPath(parentItem->url().path()) == cleanPath) { + m_syncIndex = parent; + return true; + } + + for (int i = 0; i < parentItem->childCount(); ++i) { + if (searchContentItem(model, model->index(i, 0, parent), cleanPath)) + return true; + } + return false; +} + +void QHelpContentWidget::showLink(const QModelIndex &index) +{ + QHelpContentModel *contentModel = qobject_cast(model()); + if (!contentModel) + return; + + QHelpContentItem *item = contentModel->contentItemAt(index); + if (!item) + return; + QUrl url = item->url(); + if (url.isValid()) + emit linkActivated(url); +} + +QT_END_NAMESPACE + +#include "qhelpcontentwidget.moc" diff --git a/src/assistant/help/qhelpcontentwidget.h b/src/assistant/help/qhelpcontentwidget.h new file mode 100644 index 0000000..186aba9 --- /dev/null +++ b/src/assistant/help/qhelpcontentwidget.h @@ -0,0 +1,100 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPCONTENTWIDGET_H +#define QHELPCONTENTWIDGET_H + +#include + +#include +#include +#include + +QT_BEGIN_NAMESPACE + + +class QHelpEnginePrivate; +class QHelpContentItemPrivate; +class QHelpContentModelPrivate; +class QHelpEngine; +class QHelpContentProvider; + +class QHELP_EXPORT QHelpContentItem +{ +public: + ~QHelpContentItem(); + + QHelpContentItem *child(int row) const; + int childCount() const; + QString title() const; + QUrl url() const; + int row() const; + QHelpContentItem *parent() const; + int childPosition(QHelpContentItem *child) const; + +private: + QHelpContentItem(const QString &name, const QUrl &link, + QHelpContentItem *parent = nullptr); + + QHelpContentItemPrivate *d; + friend class QHelpContentProvider; +}; + +class QHELP_EXPORT QHelpContentModel : public QAbstractItemModel +{ + Q_OBJECT + +public: + ~QHelpContentModel() override; + + void createContents(const QString &customFilterName); + QHelpContentItem *contentItemAt(const QModelIndex &index) const; + + QVariant data(const QModelIndex &index, int role) const override; + QModelIndex index(int row, int column, + const QModelIndex &parent = QModelIndex()) const override; + QModelIndex parent(const QModelIndex &index) const override; + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + int columnCount(const QModelIndex &parent = QModelIndex()) const override; + bool isCreatingContents() const; + +Q_SIGNALS: + void contentsCreationStarted(); + void contentsCreated(); + +private Q_SLOTS: + void insertContents(); + +private: + QHelpContentModel(QHelpEnginePrivate *helpEngine); + QHelpContentModelPrivate *d; + friend class QHelpEnginePrivate; +}; + +class QHELP_EXPORT QHelpContentWidget : public QTreeView +{ + Q_OBJECT + +public: + QModelIndex indexOf(const QUrl &link); + +Q_SIGNALS: + void linkActivated(const QUrl &link); + +private Q_SLOTS: + void showLink(const QModelIndex &index); + +private: + bool searchContentItem(QHelpContentModel *model, + const QModelIndex &parent, const QString &path); + QModelIndex m_syncIndex; + +private: + QHelpContentWidget(); + friend class QHelpEngine; +}; + +QT_END_NAMESPACE + +#endif + diff --git a/src/assistant/help/qhelpdbreader.cpp b/src/assistant/help/qhelpdbreader.cpp new file mode 100644 index 0000000..bf42bba --- /dev/null +++ b/src/assistant/help/qhelpdbreader.cpp @@ -0,0 +1,525 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpdbreader_p.h" +#include "qhelp_global.h" + +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QHelpDBReader::QHelpDBReader(const QString &dbName) + : QObject(nullptr), + m_dbName(dbName), + m_uniqueId(QHelpGlobal::uniquifyConnectionName(QLatin1String("QHelpDBReader"), + this)) +{ +} + +QHelpDBReader::QHelpDBReader(const QString &dbName, const QString &uniqueId, + QObject *parent) + : QObject(parent), + m_dbName(dbName), + m_uniqueId(uniqueId) +{ +} + +QHelpDBReader::~QHelpDBReader() +{ + if (m_initDone) { + delete m_query; + QSqlDatabase::removeDatabase(m_uniqueId); + } +} + +bool QHelpDBReader::init() +{ + if (m_initDone) + return true; + + if (!QFile::exists(m_dbName)) + return false; + + if (!initDB()) { + QSqlDatabase::removeDatabase(m_uniqueId); + return false; + } + + m_initDone = true; + m_query = new QSqlQuery(QSqlDatabase::database(m_uniqueId)); + + return true; +} + +bool QHelpDBReader::initDB() +{ + QSqlDatabase db = QSqlDatabase::addDatabase(QLatin1String("QSQLITE"), m_uniqueId); + db.setConnectOptions(QLatin1String("QSQLITE_OPEN_READONLY")); + db.setDatabaseName(m_dbName); + if (!db.open()) { + /*: The placeholders are: %1 - The name of the database which cannot be opened + %2 - The unique id for the connection + %3 - The actual error string */ + m_error = tr("Cannot open database \"%1\" \"%2\": %3").arg(m_dbName, m_uniqueId, db.lastError().text()); + return false; + } + return true; +} + +QString QHelpDBReader::namespaceName() const +{ + if (!m_namespace.isEmpty()) + return m_namespace; + if (m_query) { + m_query->exec(QLatin1String("SELECT Name FROM NamespaceTable")); + if (m_query->next()) + m_namespace = m_query->value(0).toString(); + } + return m_namespace; +} + +QString QHelpDBReader::virtualFolder() const +{ + if (m_query) { + m_query->exec(QLatin1String("SELECT Name FROM FolderTable WHERE Id=1")); + if (m_query->next()) + return m_query->value(0).toString(); + } + return QString(); +} + +QString QHelpDBReader::version() const +{ + const QString versionString = metaData(QLatin1String("version")).toString(); + if (versionString.isEmpty()) + return qtVersionHeuristic(); + return versionString; +} + +QString QHelpDBReader::qtVersionHeuristic() const +{ + const QString nameSpace = namespaceName(); + if (!nameSpace.startsWith(QLatin1String("org.qt-project."))) + return QString(); + + // We take the namespace tail, starting from the last letter in namespace name. + // We drop any non digit characters. + const QChar dot(QLatin1Char('.')); + QString tail; + for (int i = nameSpace.size(); i > 0; --i) { + const QChar c = nameSpace.at(i - 1); + if (c.isDigit() || c == dot) + tail.prepend(c); + + if (c.isLetter()) + break; + } + + if (!tail.startsWith(dot) && tail.count(dot) == 1) { + // The org.qt-project.qtquickcontrols2.5120 case, + // tail = 2.5120 here. We need to cut "2." here. + const int dotIndex = tail.indexOf(dot); + if (dotIndex > 0) + tail = tail.mid(dotIndex); + } + + // Drop beginning dots + while (tail.startsWith(dot)) + tail = tail.mid(1); + + // Drop ending dots + while (tail.endsWith(dot)) + tail.chop(1); + + if (tail.count(dot) == 0) { + if (tail.size() > 5) + return tail; + + // When we have 3 digits, we split it like: ABC -> A.B.C + // When we have 4 digits, we split it like: ABCD -> A.BC.D + // When we have 5 digits, we split it like: ABCDE -> A.BC.DE + const int major = tail.left(1).toInt(); + const int minor = tail.size() == 3 + ? tail.mid(1, 1).toInt() : tail.mid(1, 2).toInt(); + const int patch = tail.size() == 5 + ? tail.right(2).toInt() : tail.right(1).toInt(); + + return QString::fromUtf8("%1.%2.%3").arg(major).arg(minor).arg(patch); + } + + return tail; +} + +static bool isAttributeUsed(QSqlQuery *query, const QString &tableName, int attributeId) +{ + query->prepare(QString::fromLatin1("SELECT FilterAttributeId " + "FROM %1 " + "WHERE FilterAttributeId = ? " + "LIMIT 1").arg(tableName)); + query->bindValue(0, attributeId); + query->exec(); + return query->next(); // if we got a result it means it was used +} + +static int filterDataCount(QSqlQuery *query, const QString &tableName) +{ + query->exec(QString::fromLatin1("SELECT COUNT(*) FROM" + "(SELECT DISTINCT * FROM %1)").arg(tableName)); + query->next(); + return query->value(0).toInt(); +} + +QHelpDBReader::IndexTable QHelpDBReader::indexTable() const +{ + IndexTable table; + if (!m_query) + return table; + + QMap attributeIds; + m_query->exec(QLatin1String("SELECT DISTINCT Id, Name FROM FilterAttributeTable ORDER BY Id")); + while (m_query->next()) + attributeIds.insert(m_query->value(0).toInt(), m_query->value(1).toString()); + + // Maybe some are unused and specified erroneously in the named filter only, + // like it was in case of qtlocation.qch <= qt 5.9 + QList usedAttributeIds; + for (auto it = attributeIds.cbegin(), end = attributeIds.cend(); it != end; ++it) { + const int attributeId = it.key(); + if (isAttributeUsed(m_query, QLatin1String("IndexFilterTable"), attributeId) + || isAttributeUsed(m_query, QLatin1String("ContentsFilterTable"), attributeId) + || isAttributeUsed(m_query, QLatin1String("FileFilterTable"), attributeId)) { + usedAttributeIds.append(attributeId); + } + } + + bool legacy = false; + m_query->exec(QLatin1String("SELECT * FROM pragma_table_info('IndexTable') " + "WHERE name='ContextName'")); + if (m_query->next()) + legacy = true; + + const QString identifierColumnName = legacy + ? QLatin1String("ContextName") + : QLatin1String("Identifier"); + + const int usedAttributeCount = usedAttributeIds.size(); + + QMap idToIndexItem; + + m_query->exec(QString::fromLatin1("SELECT Name, %1, FileId, Anchor, Id " + "FROM IndexTable " + "ORDER BY Id").arg(identifierColumnName)); + while (m_query->next()) { + IndexItem indexItem; + indexItem.name = m_query->value(0).toString(); + indexItem.identifier = m_query->value(1).toString(); + indexItem.fileId = m_query->value(2).toInt(); + indexItem.anchor = m_query->value(3).toString(); + const int indexId = m_query->value(4).toInt(); + + idToIndexItem.insert(indexId, indexItem); + } + + QMap idToFileItem; + QMap originalFileIdToNewFileId; + + int filesCount = 0; + m_query->exec(QLatin1String("SELECT " + "FileNameTable.FileId, " + "FileNameTable.Name, " + "FileNameTable.Title " + "FROM FileNameTable, FolderTable " + "WHERE FileNameTable.FolderId = FolderTable.Id " + "ORDER BY FileId")); + while (m_query->next()) { + const int fileId = m_query->value(0).toInt(); + FileItem fileItem; + fileItem.name = m_query->value(1).toString(); + fileItem.title = m_query->value(2).toString(); + + idToFileItem.insert(fileId, fileItem); + originalFileIdToNewFileId.insert(fileId, filesCount); + ++filesCount; + } + + QMap idToContentsItem; + + m_query->exec(QLatin1String("SELECT Data, Id " + "FROM ContentsTable " + "ORDER BY Id")); + while (m_query->next()) { + ContentsItem contentsItem; + contentsItem.data = m_query->value(0).toByteArray(); + const int contentsId = m_query->value(1).toInt(); + + idToContentsItem.insert(contentsId, contentsItem); + } + + bool optimized = true; + + if (usedAttributeCount) { + // May optimize only when all usedAttributes are attached to every + // index and file. It means the number of rows in the + // IndexTable multiplied by number of used attributes + // must equal the number of rows inside IndexFilterTable + // (yes, we have a combinatorial explosion of data in IndexFilterTable, + // which we want to optimize). The same with FileNameTable and + // FileFilterTable. + + const bool mayOptimizeIndexTable + = filterDataCount(m_query, QLatin1String("IndexFilterTable")) + == idToIndexItem.size() * usedAttributeCount; + const bool mayOptimizeFileTable + = filterDataCount(m_query, QLatin1String("FileFilterTable")) + == idToFileItem.size() * usedAttributeCount; + const bool mayOptimizeContentsTable + = filterDataCount(m_query, QLatin1String("ContentsFilterTable")) + == idToContentsItem.size() * usedAttributeCount; + optimized = mayOptimizeIndexTable && mayOptimizeFileTable && mayOptimizeContentsTable; + + if (!optimized) { + m_query->exec(QLatin1String( + "SELECT " + "IndexFilterTable.IndexId, " + "FilterAttributeTable.Name " + "FROM " + "IndexFilterTable, " + "FilterAttributeTable " + "WHERE " + "IndexFilterTable.FilterAttributeId = FilterAttributeTable.Id")); + while (m_query->next()) { + const int indexId = m_query->value(0).toInt(); + auto it = idToIndexItem.find(indexId); + if (it != idToIndexItem.end()) + it.value().filterAttributes.append(m_query->value(1).toString()); + } + + m_query->exec(QLatin1String( + "SELECT " + "FileFilterTable.FileId, " + "FilterAttributeTable.Name " + "FROM " + "FileFilterTable, " + "FilterAttributeTable " + "WHERE " + "FileFilterTable.FilterAttributeId = FilterAttributeTable.Id")); + while (m_query->next()) { + const int fileId = m_query->value(0).toInt(); + auto it = idToFileItem.find(fileId); + if (it != idToFileItem.end()) + it.value().filterAttributes.append(m_query->value(1).toString()); + } + + m_query->exec(QLatin1String( + "SELECT " + "ContentsFilterTable.ContentsId, " + "FilterAttributeTable.Name " + "FROM " + "ContentsFilterTable, " + "FilterAttributeTable " + "WHERE " + "ContentsFilterTable.FilterAttributeId = FilterAttributeTable.Id")); + while (m_query->next()) { + const int contentsId = m_query->value(0).toInt(); + auto it = idToContentsItem.find(contentsId); + if (it != idToContentsItem.end()) + it.value().filterAttributes.append(m_query->value(1).toString()); + } + } + } + + // reindex fileId references + for (auto it = idToIndexItem.cbegin(), end = idToIndexItem.cend(); it != end; ++it) { + IndexItem item = it.value(); + item.fileId = originalFileIdToNewFileId.value(item.fileId); + table.indexItems.append(item); + } + + table.fileItems = idToFileItem.values(); + table.contentsItems = idToContentsItem.values(); + + if (optimized) { + for (int attributeId : usedAttributeIds) + table.usedFilterAttributes.append(attributeIds.value(attributeId)); + } + + return table; +} + +QList QHelpDBReader::filterAttributeSets() const +{ + QList result; + if (m_query) { + m_query->exec(QLatin1String( + "SELECT " + "FileAttributeSetTable.Id, " + "FilterAttributeTable.Name " + "FROM " + "FileAttributeSetTable, " + "FilterAttributeTable " + "WHERE FileAttributeSetTable.FilterAttributeId = FilterAttributeTable.Id " + "ORDER BY FileAttributeSetTable.Id")); + int oldId = -1; + while (m_query->next()) { + const int id = m_query->value(0).toInt(); + if (id != oldId) { + result.append(QStringList()); + oldId = id; + } + result.last().append(m_query->value(1).toString()); + } + } + return result; +} + +QByteArray QHelpDBReader::fileData(const QString &virtualFolder, + const QString &filePath) const +{ + QByteArray ba; + if (virtualFolder.isEmpty() || filePath.isEmpty() || !m_query) + return ba; + + namespaceName(); + m_query->prepare(QLatin1String( + "SELECT " + "FileDataTable.Data " + "FROM " + "FileDataTable, " + "FileNameTable, " + "FolderTable, " + "NamespaceTable " + "WHERE FileDataTable.Id = FileNameTable.FileId " + "AND (FileNameTable.Name = ? OR FileNameTable.Name = ?) " + "AND FileNameTable.FolderId = FolderTable.Id " + "AND FolderTable.Name = ? " + "AND FolderTable.NamespaceId = NamespaceTable.Id " + "AND NamespaceTable.Name = ?")); + m_query->bindValue(0, filePath); + m_query->bindValue(1, QString(QLatin1String("./") + filePath)); + m_query->bindValue(2, virtualFolder); + m_query->bindValue(3, m_namespace); + m_query->exec(); + if (m_query->next() && m_query->isValid()) + ba = qUncompress(m_query->value(0).toByteArray()); + return ba; +} + +QStringList QHelpDBReader::customFilters() const +{ + QStringList lst; + if (m_query) { + m_query->exec(QLatin1String("SELECT Name FROM FilterNameTable")); + while (m_query->next()) + lst.append(m_query->value(0).toString()); + } + return lst; +} + +QStringList QHelpDBReader::filterAttributes(const QString &filterName) const +{ + QStringList lst; + if (m_query) { + if (filterName.isEmpty()) { + m_query->prepare(QLatin1String("SELECT Name FROM FilterAttributeTable")); + } else { + m_query->prepare(QLatin1String( + "SELECT " + "FilterAttributeTable.Name " + "FROM " + "FilterAttributeTable, " + "FilterTable, " + "FilterNameTable " + "WHERE FilterNameTable.Name = ? " + "AND FilterNameTable.Id = FilterTable.NameId " + "AND FilterTable.FilterAttributeId = FilterAttributeTable.Id")); + m_query->bindValue(0, filterName); + } + m_query->exec(); + while (m_query->next()) + lst.append(m_query->value(0).toString()); + } + return lst; +} + +QMultiMap QHelpDBReader::filesData(const QStringList &filterAttributes, + const QString &extensionFilter) const +{ + QMultiMap result; + if (!m_query) + return result; + + QString query; + QString extension; + if (!extensionFilter.isEmpty()) + extension = QString(QLatin1String("AND FileNameTable.Name " + "LIKE \'%.%1\'")).arg(extensionFilter); + + if (filterAttributes.isEmpty()) { + query = QString(QLatin1String("SELECT " + "FileNameTable.Name, " + "FileDataTable.Data " + "FROM " + "FolderTable, " + "FileNameTable, " + "FileDataTable " + "WHERE FileDataTable.Id = FileNameTable.FileId " + "AND FileNameTable.FolderId = FolderTable.Id %1")) + .arg(extension); + } else { + for (int i = 0; i < filterAttributes.size(); ++i) { + if (i > 0) + query.append(QLatin1String(" INTERSECT ")); + query.append(QString(QLatin1String( + "SELECT " + "FileNameTable.Name, " + "FileDataTable.Data " + "FROM " + "FolderTable, " + "FileNameTable, " + "FileDataTable, " + "FileFilterTable, " + "FilterAttributeTable " + "WHERE FileDataTable.Id = FileNameTable.FileId " + "AND FileNameTable.FolderId = FolderTable.Id " + "AND FileNameTable.FileId = FileFilterTable.FileId " + "AND FileFilterTable.FilterAttributeId = FilterAttributeTable.Id " + "AND FilterAttributeTable.Name = \'%1\' %2")) + .arg(quote(filterAttributes.at(i))) + .arg(extension)); + } + } + m_query->exec(query); + while (m_query->next()) + result.insert(m_query->value(0).toString(), qUncompress(m_query->value(1).toByteArray())); + + return result; +} + +QVariant QHelpDBReader::metaData(const QString &name) const +{ + QVariant v; + if (!m_query) + return v; + + m_query->prepare(QLatin1String("SELECT COUNT(Value), Value FROM MetaDataTable " + "WHERE Name=?")); + m_query->bindValue(0, name); + if (m_query->exec() && m_query->next() + && m_query->value(0).toInt() == 1) + v = m_query->value(1); + return v; +} + +QString QHelpDBReader::quote(const QString &string) const +{ + QString s = string; + s.replace(QLatin1Char('\''), QLatin1String("\'\'")); + return s; +} + +QT_END_NAMESPACE diff --git a/src/assistant/help/qhelpdbreader_p.h b/src/assistant/help/qhelpdbreader_p.h new file mode 100644 index 0000000..22ea615 --- /dev/null +++ b/src/assistant/help/qhelpdbreader_p.h @@ -0,0 +1,107 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPDBREADER_H +#define QHELPDBREADER_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of the help generator tools. This header file may change from version +// to version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QSqlQuery; + +class QHelpDBReader : public QObject +{ + Q_OBJECT + +public: + class IndexItem + { + public: + IndexItem() = default; + QString name; + QString identifier; + int fileId = 0; + QString anchor; + QStringList filterAttributes; + }; + + class FileItem + { + public: + FileItem() = default; + QString name; + QString title; + QStringList filterAttributes; + }; + + class ContentsItem + { + public: + ContentsItem() = default; + QByteArray data; + QStringList filterAttributes; + }; + + class IndexTable + { + public: + QList indexItems; + QList fileItems; + QList contentsItems; + QStringList usedFilterAttributes; + }; + + QHelpDBReader(const QString &dbName); + QHelpDBReader(const QString &dbName, const QString &uniqueId, + QObject *parent); + ~QHelpDBReader(); + + bool init(); + + QString namespaceName() const; + QString virtualFolder() const; + QString version() const; + IndexTable indexTable() const; + QList filterAttributeSets() const; + QMultiMap filesData(const QStringList &filterAttributes, + const QString &extensionFilter = QString()) const; + QByteArray fileData(const QString &virtualFolder, + const QString &filePath) const; + + QStringList customFilters() const; + QStringList filterAttributes(const QString &filterName = QString()) const; + + QVariant metaData(const QString &name) const; + +private: + QString quote(const QString &string) const; + bool initDB(); + QString qtVersionHeuristic() const; + + bool m_initDone = false; + QString m_dbName; + QString m_uniqueId; + QString m_error; + QSqlQuery *m_query = nullptr; + mutable QString m_namespace; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/assistant/help/qhelpengine.cpp b/src/assistant/help/qhelpengine.cpp new file mode 100644 index 0000000..c912205 --- /dev/null +++ b/src/assistant/help/qhelpengine.cpp @@ -0,0 +1,175 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpengine.h" +#include "qhelpengine_p.h" +#include "qhelpdbreader_p.h" +#include "qhelpcontentwidget.h" +#include "qhelpindexwidget.h" +#include "qhelpsearchengine.h" +#include "qhelpcollectionhandler_p.h" +#include "qhelpfilterengine.h" + +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +void QHelpEnginePrivate::init(const QString &collectionFile, + QHelpEngineCore *helpEngineCore) +{ + QHelpEngineCorePrivate::init(collectionFile, helpEngineCore); + + if (!contentModel) + contentModel = new QHelpContentModel(this); + if (!indexModel) + indexModel = new QHelpIndexModel(this); + + connect(helpEngineCore, &QHelpEngineCore::setupFinished, + this, &QHelpEnginePrivate::scheduleApplyCurrentFilter); + connect(helpEngineCore, &QHelpEngineCore::currentFilterChanged, + this, &QHelpEnginePrivate::scheduleApplyCurrentFilter); + connect(helpEngineCore->filterEngine(), &QHelpFilterEngine::filterActivated, + this, &QHelpEnginePrivate::scheduleApplyCurrentFilter); +} + +void QHelpEnginePrivate::scheduleApplyCurrentFilter() +{ + if (!error.isEmpty()) + return; + + if (m_isApplyCurrentFilterScheduled) + return; + + m_isApplyCurrentFilterScheduled = true; + QTimer::singleShot(0, this, &QHelpEnginePrivate::applyCurrentFilter); +} + +void QHelpEnginePrivate::applyCurrentFilter() +{ + m_isApplyCurrentFilterScheduled = false; + const QString filter = usesFilterEngine + ? q->filterEngine()->activeFilter() + : currentFilter; + contentModel->createContents(filter); + indexModel->createIndex(filter); +} + +void QHelpEnginePrivate::setContentsWidgetBusy() +{ +#if QT_CONFIG(cursor) + contentWidget->setCursor(Qt::WaitCursor); +#endif +} + +void QHelpEnginePrivate::unsetContentsWidgetBusy() +{ +#if QT_CONFIG(cursor) + contentWidget->unsetCursor(); +#endif +} + +void QHelpEnginePrivate::setIndexWidgetBusy() +{ +#if QT_CONFIG(cursor) + indexWidget->setCursor(Qt::WaitCursor); +#endif +} + +void QHelpEnginePrivate::unsetIndexWidgetBusy() +{ +#if QT_CONFIG(cursor) + indexWidget->unsetCursor(); +#endif +} + +/*! + \class QHelpEngine + \since 4.4 + \inmodule QtHelp + \brief The QHelpEngine class provides access to contents and + indices of the help engine. +*/ + +/*! + Constructs a new help engine with the given \a parent. The help + engine uses the information stored in the \a collectionFile for + providing help. If the collection file does not already exist, + it will be created. +*/ +QHelpEngine::QHelpEngine(const QString &collectionFile, QObject *parent) + : QHelpEngineCore(d = new QHelpEnginePrivate(), parent) +{ + d->init(collectionFile, this); +} + +/*! + Destroys the help engine object. +*/ +QHelpEngine::~QHelpEngine() +{ +} + +/*! + Returns the content model. +*/ +QHelpContentModel *QHelpEngine::contentModel() const +{ + return d->contentModel; +} + +/*! + Returns the index model. +*/ +QHelpIndexModel *QHelpEngine::indexModel() const +{ + return d->indexModel; +} + +/*! + Returns the content widget. +*/ +QHelpContentWidget *QHelpEngine::contentWidget() +{ + if (!d->contentWidget) { + d->contentWidget = new QHelpContentWidget(); + d->contentWidget->setModel(d->contentModel); + connect(d->contentModel, &QHelpContentModel::contentsCreationStarted, + d, &QHelpEnginePrivate::setContentsWidgetBusy); + connect(d->contentModel, &QHelpContentModel::contentsCreated, + d, &QHelpEnginePrivate::unsetContentsWidgetBusy); + } + return d->contentWidget; +} + +/*! + Returns the index widget. +*/ +QHelpIndexWidget *QHelpEngine::indexWidget() +{ + if (!d->indexWidget) { + d->indexWidget = new QHelpIndexWidget(); + d->indexWidget->setModel(d->indexModel); + connect(d->indexModel, &QHelpIndexModel::indexCreationStarted, + d, &QHelpEnginePrivate::setIndexWidgetBusy); + connect(d->indexModel, &QHelpIndexModel::indexCreated, + d, &QHelpEnginePrivate::unsetIndexWidgetBusy); + } + return d->indexWidget; +} + +/*! + Returns the default search engine. +*/ +QHelpSearchEngine* QHelpEngine::searchEngine() +{ + if (!d->searchEngine) + d->searchEngine = new QHelpSearchEngine(this, this); + return d->searchEngine; +} + +QT_END_NAMESPACE diff --git a/src/assistant/help/qhelpengine.h b/src/assistant/help/qhelpengine.h new file mode 100644 index 0000000..6522949 --- /dev/null +++ b/src/assistant/help/qhelpengine.h @@ -0,0 +1,43 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPENGINE_H +#define QHELPENGINE_H + +#include + +QT_BEGIN_NAMESPACE + + +class QHelpContentModel; +class QHelpContentWidget; +class QHelpIndexModel; +class QHelpIndexWidget; +class QHelpEnginePrivate; +class QHelpSearchEngine; + +class QHELP_EXPORT QHelpEngine : public QHelpEngineCore +{ + Q_OBJECT + +public: + explicit QHelpEngine(const QString &collectionFile, QObject *parent = nullptr); + ~QHelpEngine(); + + QHelpContentModel *contentModel() const; + QHelpIndexModel *indexModel() const; + + QHelpContentWidget *contentWidget(); + QHelpIndexWidget *indexWidget(); + + QHelpSearchEngine *searchEngine(); + +private: + QHelpEnginePrivate *d; + + friend class HelpEngineWrapper; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/assistant/help/qhelpengine_p.h b/src/assistant/help/qhelpengine_p.h new file mode 100644 index 0000000..21fe30c --- /dev/null +++ b/src/assistant/help/qhelpengine_p.h @@ -0,0 +1,103 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPENGINE_P_H +#define QHELPENGINE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of the help generator tools. This header file may change from version +// to version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QSqlQuery; + +class QHelpEngineCore; +class QHelpDBReader; +class QHelpContentModel; +class QHelpContentWidget; +class QHelpIndexModel; +class QHelpIndexWidget; +class QHelpSearchEngine; +class QHelpCollectionHandler; +class QHelpFilterEngine; + +class QHelpEngineCorePrivate : public QObject +{ + Q_OBJECT + +public: + virtual ~QHelpEngineCorePrivate(); + + virtual void init(const QString &collectionFile, + QHelpEngineCore *helpEngineCore); + + bool setup(); + + QHelpCollectionHandler *collectionHandler = nullptr; + QHelpFilterEngine *filterEngine = nullptr; + QString currentFilter; + QString error; + bool needsSetup = true; + bool autoSaveFilter = true; + bool usesFilterEngine = false; + bool readOnly = true; + +protected: + QHelpEngineCore *q; + +private slots: + void errorReceived(const QString &msg); +}; + +class QHelpEnginePrivate : public QHelpEngineCorePrivate +{ + Q_OBJECT + +public: + void init(const QString &collectionFile, + QHelpEngineCore *helpEngineCore) override; + + QHelpContentModel *contentModel = nullptr; + QHelpContentWidget *contentWidget = nullptr; + + QHelpIndexModel *indexModel = nullptr; + QHelpIndexWidget *indexWidget = nullptr; + + QHelpSearchEngine *searchEngine = nullptr; + + friend class QHelpContentProvider; + friend class QHelpContentModel; + friend class QHelpIndexProvider; + friend class QHelpIndexModel; + +public slots: + void setContentsWidgetBusy(); + void unsetContentsWidgetBusy(); + void setIndexWidgetBusy(); + void unsetIndexWidgetBusy(); + +private slots: + void scheduleApplyCurrentFilter(); + void applyCurrentFilter(); + +private: + bool m_isApplyCurrentFilterScheduled = false; + +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/assistant/help/qhelpenginecore.cpp b/src/assistant/help/qhelpenginecore.cpp new file mode 100644 index 0000000..5d05e07 --- /dev/null +++ b/src/assistant/help/qhelpenginecore.cpp @@ -0,0 +1,786 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpenginecore.h" +#include "qhelpengine_p.h" +#include "qhelpdbreader_p.h" +#include "qhelpcollectionhandler_p.h" +#include "qhelpfilterengine.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +void QHelpEngineCorePrivate::init(const QString &collectionFile, + QHelpEngineCore *helpEngineCore) +{ + q = helpEngineCore; + collectionHandler = new QHelpCollectionHandler(collectionFile, helpEngineCore); + connect(collectionHandler, &QHelpCollectionHandler::error, + this, &QHelpEngineCorePrivate::errorReceived); + filterEngine->setCollectionHandler(collectionHandler); + needsSetup = true; +} + +QHelpEngineCorePrivate::~QHelpEngineCorePrivate() +{ + delete collectionHandler; +} + +bool QHelpEngineCorePrivate::setup() +{ + error.clear(); + if (!needsSetup) + return true; + + needsSetup = false; + emit q->setupStarted(); + + const QVariant readOnlyVariant = q->property("_q_readonly"); + const bool readOnly = readOnlyVariant.isValid() + ? readOnlyVariant.toBool() : q->isReadOnly(); + collectionHandler->setReadOnly(readOnly); + const bool opened = collectionHandler->openCollectionFile(); + if (opened) + q->currentFilter(); + + emit q->setupFinished(); + + return opened; +} + +void QHelpEngineCorePrivate::errorReceived(const QString &msg) +{ + error = msg; +} + +/*! + \class QHelpEngineCore + \since 4.4 + \inmodule QtHelp + \brief The QHelpEngineCore class provides the core functionality + of the help system. + + Before the help engine can be used, it must be initialized by + calling setupData(). At the beginning of the setup process the + signal setupStarted() is emitted. From this point on until + the signal setupFinished() is emitted, is the help data in an + undefined meaning unusable state. + + The core help engine can be used to perform different tasks. + By calling documentsForIdentifier() the engine returns + URLs specifying the file locations inside the help system. The + actual file data can then be retrieved by calling fileData(). + + The help engine can contain any number of custom filters. + The management of the filters, including adding new filters, + changing filter definitions, or removing existing filters, + is done through the QHelpFilterEngine class, which can be accessed + by the filterEngine() method. + + \note QHelpFilterEngine replaces the older filter API that is + deprecated since Qt 5.13. Call setUsesFilterEngine() with \c true to + enable the new functionality. + + The core help engine has two modes: + \list + \li Read-only mode, where the help collection file is not changed + unless explicitly requested. This also works if the + collection file is in a read-only location, + and is the default. + \li Fully writable mode, which requires the help collection + file to be writable. + \endlist + The mode can be changed by calling setReadOnly() method, prior to + calling setupData(). + + The help engine also offers the possibility to set and read values + in a persistent way comparable to ini files or Windows registry + entries. For more information see setValue() or value(). + + This class does not offer any GUI components or functionality for + indices or contents. If you need one of those use QHelpEngine + instead. +*/ + +/*! + \fn void QHelpEngineCore::setupStarted() + + This signal is emitted when setup is started. +*/ + +/*! + \fn void QHelpEngineCore::setupFinished() + + This signal is emitted when the setup is complete. +*/ + +/*! + \fn void QHelpEngineCore::readersAboutToBeInvalidated() + \deprecated +*/ + +/*! + \fn void QHelpEngineCore::currentFilterChanged(const QString &newFilter) + \deprecated + + QHelpFilterEngine::filterActivated() should be used instead. + + This signal is emitted when the current filter is changed to + \a newFilter. +*/ + +/*! + \fn void QHelpEngineCore::warning(const QString &msg) + + This signal is emitted when a non critical error occurs. + The warning message is stored in \a msg. +*/ + +/*! + Constructs a new core help engine with a \a parent. The help engine + uses the information stored in the \a collectionFile to provide help. + If the collection file does not exist yet, it'll be created. +*/ +QHelpEngineCore::QHelpEngineCore(const QString &collectionFile, QObject *parent) + : QObject(parent) +{ + d = new QHelpEngineCorePrivate(); + d->filterEngine = new QHelpFilterEngine(this); + d->init(collectionFile, this); +} + +/*! + \internal +*/ +QHelpEngineCore::QHelpEngineCore(QHelpEngineCorePrivate *helpEngineCorePrivate, + QObject *parent) + : QObject(parent) +{ + d = helpEngineCorePrivate; + d->filterEngine = new QHelpFilterEngine(this); +} + +/*! + Destructs the help engine. +*/ +QHelpEngineCore::~QHelpEngineCore() +{ + delete d; +} + +/*! + \property QHelpEngineCore::collectionFile + \brief the absolute file name of the collection file currently used. + \since 4.5 + + Setting this property leaves the help engine in an invalid state. It is + important to invoke setupData() or any getter function in order to setup + the help engine again. +*/ +QString QHelpEngineCore::collectionFile() const +{ + return d->collectionHandler->collectionFile(); +} + +void QHelpEngineCore::setCollectionFile(const QString &fileName) +{ + if (fileName == collectionFile()) + return; + + if (d->collectionHandler) { + delete d->collectionHandler; + d->collectionHandler = nullptr; + } + d->init(fileName, this); + d->needsSetup = true; +} + +/*! + \property QHelpEngineCore::readOnly + \brief whether the help engine is read-only. + \since 6.0 + + In read-only mode, the user can use the help engine + with a collection file installed in a read-only location. + In this case, some functionality won't be accessible, + like registering additional documentation, filter editing, + or any action that would require changes to the + collection file. Setting it to \c false enables the full + functionality of the help engine. + + By default, this property is \c true. +*/ +bool QHelpEngineCore::isReadOnly() const +{ + return d->readOnly; +} + +void QHelpEngineCore::setReadOnly(bool enable) +{ + d->readOnly = enable; +} + +/*! + \since 5.13 + + Returns the filter engine associated with this help engine. + The filter engine allows for adding, changing, and removing existing + filters for this help engine. To use the engine you also have to call + \l setUsesFilterEngine() set to \c true. +*/ +QHelpFilterEngine *QHelpEngineCore::filterEngine() const +{ + return d->filterEngine; +} + +/*! + Sets up the help engine by processing the information found + in the collection file and returns true if successful; otherwise + returns false. + + By calling the function, the help + engine is forced to initialize itself immediately. Most of + the times, this function does not have to be called + explicitly because getter functions which depend on a correctly + set up help engine do that themselves. + + \note \c{qsqlite4.dll} needs to be deployed with the application as the + help system uses the sqlite driver when loading help collections. +*/ +bool QHelpEngineCore::setupData() +{ + d->needsSetup = true; + return d->setup(); +} + +/*! + Creates the file \a fileName and copies all contents from + the current collection file into the newly created file, + and returns true if successful; otherwise returns false. + + The copying process makes sure that file references to Qt + Collection files (\c{.qch}) files are updated accordingly. +*/ +bool QHelpEngineCore::copyCollectionFile(const QString &fileName) +{ + if (!d->setup()) + return false; + return d->collectionHandler->copyCollectionFile(fileName); +} + +/*! + Returns the namespace name defined for the Qt compressed help file (.qch) + specified by its \a documentationFileName. If the file is not valid, an + empty string is returned. + + \sa documentationFileName() +*/ +QString QHelpEngineCore::namespaceName(const QString &documentationFileName) +{ + QHelpDBReader reader(documentationFileName, + QHelpGlobal::uniquifyConnectionName(QLatin1String("GetNamespaceName"), + QThread::currentThread()), nullptr); + if (reader.init()) + return reader.namespaceName(); + return QString(); +} + +/*! + Registers the Qt compressed help file (.qch) contained in the file + \a documentationFileName. One compressed help file, uniquely + identified by its namespace can only be registered once. + True is returned if the registration was successful, otherwise + false. + + \sa unregisterDocumentation(), error() +*/ +bool QHelpEngineCore::registerDocumentation(const QString &documentationFileName) +{ + d->error.clear(); + d->needsSetup = true; + return d->collectionHandler->registerDocumentation(documentationFileName); +} + +/*! + Unregisters the Qt compressed help file (.qch) identified by its + \a namespaceName from the help collection. Returns true + on success, otherwise false. + + \sa registerDocumentation(), error() +*/ +bool QHelpEngineCore::unregisterDocumentation(const QString &namespaceName) +{ + d->error.clear(); + d->needsSetup = true; + return d->collectionHandler->unregisterDocumentation(namespaceName); +} + +/*! + Returns the absolute file name of the Qt compressed help file (.qch) + identified by the \a namespaceName. If there is no Qt compressed help file + with the specified namespace registered, an empty string is returned. + + \sa namespaceName() +*/ +QString QHelpEngineCore::documentationFileName(const QString &namespaceName) +{ + if (!d->setup()) + return QString(); + + const QHelpCollectionHandler::FileInfo fileInfo = + d->collectionHandler->registeredDocumentation(namespaceName); + + if (fileInfo.namespaceName.isEmpty()) + return QString(); + + if (QDir::isAbsolutePath(fileInfo.fileName)) + return fileInfo.fileName; + + return QFileInfo(QFileInfo(d->collectionHandler->collectionFile()).absolutePath() + + QLatin1Char('/') + fileInfo.fileName).absoluteFilePath(); +} + +/*! + Returns a list of all registered Qt compressed help files of the current collection file. + The returned names are the namespaces of the registered Qt compressed help files (.qch). +*/ +QStringList QHelpEngineCore::registeredDocumentations() const +{ + QStringList list; + if (!d->setup()) + return list; + const QHelpCollectionHandler::FileInfoList &docList + = d->collectionHandler->registeredDocumentations(); + for (const QHelpCollectionHandler::FileInfo &info : docList) + list.append(info.namespaceName); + return list; +} + +/*! + \deprecated + + QHelpFilterEngine::filters() should be used instead. + + Returns a list of custom filters. + + \sa addCustomFilter(), removeCustomFilter() +*/ +QStringList QHelpEngineCore::customFilters() const +{ + if (!d->setup()) + return QStringList(); + return d->collectionHandler->customFilters(); +} + +/*! + \deprecated + + QHelpFilterEngine::setFilterData() should be used instead. + + Adds the new custom filter \a filterName. The filter attributes + are specified by \a attributes. If the filter already exists, + its attribute set is replaced. The function returns true if + the operation succeeded, otherwise it returns false. + + \sa customFilters(), removeCustomFilter() +*/ +bool QHelpEngineCore::addCustomFilter(const QString &filterName, + const QStringList &attributes) +{ + d->error.clear(); + d->needsSetup = true; + return d->collectionHandler->addCustomFilter(filterName, attributes); +} + +/*! + \deprecated + + QHelpFilterEngine::removeFilter() should be used instead. + + Returns true if the filter \a filterName was removed successfully, + otherwise false. + + \sa addCustomFilter(), customFilters() +*/ +bool QHelpEngineCore::removeCustomFilter(const QString &filterName) +{ + d->error.clear(); + d->needsSetup = true; + return d->collectionHandler->removeCustomFilter(filterName); +} + +/*! + \deprecated + + QHelpFilterEngine::availableComponents() should be used instead. + + Returns a list of all defined filter attributes. +*/ +QStringList QHelpEngineCore::filterAttributes() const +{ + if (!d->setup()) + return QStringList(); + return d->collectionHandler->filterAttributes(); +} + +/*! + \deprecated + + QHelpFilterEngine::filterData() should be used instead. + + Returns a list of filter attributes used by the custom + filter \a filterName. +*/ +QStringList QHelpEngineCore::filterAttributes(const QString &filterName) const +{ + if (!d->setup()) + return QStringList(); + return d->collectionHandler->filterAttributes(filterName); +} + +/*! + \deprecated + \property QHelpEngineCore::currentFilter + \brief the name of the custom filter currently applied. + \since 4.5 + + QHelpFilterEngine::activeFilter() should be used instead. + + Setting this property will save the new custom filter permanently in the + help collection file. To set a custom filter without saving it + permanently, disable the auto save filter mode. + + \sa autoSaveFilter() +*/ +QString QHelpEngineCore::currentFilter() const +{ + if (!d->setup()) + return QString(); + + if (d->currentFilter.isEmpty()) { + const QString &filter = + d->collectionHandler->customValue(QLatin1String("CurrentFilter"), + QString()).toString(); + if (!filter.isEmpty() + && d->collectionHandler->customFilters().contains(filter)) + d->currentFilter = filter; + } + return d->currentFilter; +} + +void QHelpEngineCore::setCurrentFilter(const QString &filterName) +{ + if (!d->setup() || filterName == d->currentFilter) + return; + d->currentFilter = filterName; + if (d->autoSaveFilter) { + d->collectionHandler->setCustomValue(QLatin1String("CurrentFilter"), + d->currentFilter); + } + emit currentFilterChanged(d->currentFilter); +} + +/*! + \deprecated + + QHelpFilterEngine::filterData() should be used instead. + + Returns a list of filter attributes for the different filter sections + defined in the Qt compressed help file with the given namespace + \a namespaceName. +*/ +QList QHelpEngineCore::filterAttributeSets(const QString &namespaceName) const +{ + if (!d->setup()) + return QList(); + + return d->collectionHandler->filterAttributeSets(namespaceName); +} + +/*! + \deprecated + + files() should be used instead. + + Returns a list of files contained in the Qt compressed help file \a + namespaceName. The files can be filtered by \a filterAttributes as + well as by their extension \a extensionFilter (e.g. 'html'). +*/ +QList QHelpEngineCore::files(const QString namespaceName, + const QStringList &filterAttributes, + const QString &extensionFilter) +{ + QList res; + if (!d->setup()) + return res; + + QUrl url; + url.setScheme(QLatin1String("qthelp")); + url.setAuthority(namespaceName); + + const QStringList &files = d->collectionHandler->files( + namespaceName, filterAttributes, extensionFilter); + for (const QString &file : files) { + url.setPath(QLatin1String("/") + file); + res.append(url); + } + return res; +} + +/*! + Returns a list of files contained in the Qt compressed help file + for \a namespaceName. The files can be filtered by \a filterName as + well as by their extension \a extensionFilter (for example, 'html'). +*/ +QList QHelpEngineCore::files(const QString namespaceName, + const QString &filterName, + const QString &extensionFilter) +{ + QList res; + if (!d->setup()) + return res; + + QUrl url; + url.setScheme(QLatin1String("qthelp")); + url.setAuthority(namespaceName); + + const QStringList &files = d->collectionHandler->files( + namespaceName, filterName, extensionFilter); + for (const QString &file : files) { + url.setPath(QLatin1String("/") + file); + res.append(url); + } + return res; +} + +/*! + Returns the corrected URL for the \a url that may refer to + a different namespace defined by the virtual folder defined + as a part of the \a url. If the virtual folder matches the namespace + of the \a url, the method just checks if the file exists and returns + the same \a url. When the virtual folder doesn't match the namespace + of the \a url, it tries to find the best matching namespace according + to the active filter. When the namespace is found, it returns the + corrected URL if the file exists, otherwise it returns an invalid URL. +*/ +QUrl QHelpEngineCore::findFile(const QUrl &url) const +{ + if (!d->setup()) + return url; + + QUrl result = d->usesFilterEngine + ? d->collectionHandler->findFile(url, d->filterEngine->activeFilter()) + : d->collectionHandler->findFile(url, filterAttributes(currentFilter())); // obsolete + if (!result.isEmpty()) + return result; + + result = d->usesFilterEngine + ? d->collectionHandler->findFile(url, QString()) + : d->collectionHandler->findFile(url, QStringList()); // obsolete + if (!result.isEmpty()) + return result; + + return url; +} + +/*! + Returns the data of the file specified by \a url. If the + file does not exist, an empty QByteArray is returned. + + \sa findFile() +*/ +QByteArray QHelpEngineCore::fileData(const QUrl &url) const +{ + if (!d->setup()) + return QByteArray(); + + return d->collectionHandler->fileData(url); +} + +/*! + \since 5.15 + + Returns a list of all the document links found for the \a id. + The returned list contents depend on the current filter, and therefore only the keywords + registered for the current filter will be returned. +*/ +QList QHelpEngineCore::documentsForIdentifier(const QString &id) const +{ + return documentsForIdentifier(id, d->usesFilterEngine + ? d->filterEngine->activeFilter() + : d->currentFilter); +} + +/*! + \since 5.15 + + Returns a list of the document links found for the \a id, filtered by \a filterName. + The returned list contents depend on the passed filter, and therefore only the keywords + registered for this filter will be returned. If you want to get all results unfiltered, + pass empty string as \a filterName. +*/ +QList QHelpEngineCore::documentsForIdentifier(const QString &id, const QString &filterName) const +{ + if (!d->setup()) + return QList(); + + if (d->usesFilterEngine) + return d->collectionHandler->documentsForIdentifier(id, filterName); + + return d->collectionHandler->documentsForIdentifier(id, filterAttributes(filterName)); +} + +/*! + \since 5.15 + + Returns a list of all the document links found for the \a keyword. + The returned list contents depend on the current filter, and therefore only the keywords + registered for the current filter will be returned. +*/ +QList QHelpEngineCore::documentsForKeyword(const QString &keyword) const +{ + return documentsForKeyword(keyword, d->usesFilterEngine + ? d->filterEngine->activeFilter() + : d->currentFilter); +} + +/*! + \since 5.15 + + Returns a list of the document links found for the \a keyword, filtered by \a filterName. + The returned list contents depend on the passed filter, and therefore only the keywords + registered for this filter will be returned. If you want to get all results unfiltered, + pass empty string as \a filterName. +*/ +QList QHelpEngineCore::documentsForKeyword(const QString &keyword, const QString &filterName) const +{ + if (!d->setup()) + return QList(); + + if (d->usesFilterEngine) + return d->collectionHandler->documentsForKeyword(keyword, filterName); + + return d->collectionHandler->documentsForKeyword(keyword, filterAttributes(filterName)); +} + +/*! + Removes the \a key from the settings section in the + collection file. Returns true if the value was removed + successfully, otherwise false. + + \sa customValue(), setCustomValue() +*/ +bool QHelpEngineCore::removeCustomValue(const QString &key) +{ + d->error.clear(); + return d->collectionHandler->removeCustomValue(key); +} + +/*! + Returns the value assigned to the \a key. If the requested + key does not exist, the specified \a defaultValue is + returned. + + \sa setCustomValue(), removeCustomValue() +*/ +QVariant QHelpEngineCore::customValue(const QString &key, const QVariant &defaultValue) const +{ + if (!d->setup()) + return QVariant(); + return d->collectionHandler->customValue(key, defaultValue); +} + +/*! + Save the \a value under the \a key. If the key already exist, + the value will be overwritten. Returns true if the value was + saved successfully, otherwise false. + + \sa customValue(), removeCustomValue() +*/ +bool QHelpEngineCore::setCustomValue(const QString &key, const QVariant &value) +{ + d->error.clear(); + return d->collectionHandler->setCustomValue(key, value); +} + +/*! + Returns the meta data for the Qt compressed help file \a + documentationFileName. If there is no data available for + \a name, an invalid QVariant() is returned. The meta + data is defined when creating the Qt compressed help file and + cannot be modified later. Common meta data includes e.g. + the author of the documentation. +*/ +QVariant QHelpEngineCore::metaData(const QString &documentationFileName, + const QString &name) +{ + QHelpDBReader reader(documentationFileName, QLatin1String("GetMetaData"), nullptr); + + if (reader.init()) + return reader.metaData(name); + return QVariant(); +} + +/*! + Returns a description of the last error that occurred. +*/ +QString QHelpEngineCore::error() const +{ + return d->error; +} + +/*! + \property QHelpEngineCore::autoSaveFilter + \brief whether QHelpEngineCore is in auto save filter mode or not. + \since 4.5 + + If QHelpEngineCore is in auto save filter mode, the current filter is + automatically saved when it is changed by the QHelpFilterEngine::setActiveFilter() + function. The filter is saved persistently in the help collection file. + + By default, this mode is on. +*/ +void QHelpEngineCore::setAutoSaveFilter(bool save) +{ + d->autoSaveFilter = save; +} + +bool QHelpEngineCore::autoSaveFilter() const +{ + return d->autoSaveFilter; +} + +/*! + \since 5.13 + + Enables or disables the new filter engine functionality + inside the help engine, according to the passed \a uses parameter. + + \sa filterEngine() +*/ +void QHelpEngineCore::setUsesFilterEngine(bool uses) +{ + d->usesFilterEngine = uses; +} + +/*! + \since 5.13 + + Returns whether the help engine uses the new filter functionality. + + \sa filterEngine() +*/ +bool QHelpEngineCore::usesFilterEngine() const +{ + return d->usesFilterEngine; +} + +QT_END_NAMESPACE diff --git a/src/assistant/help/qhelpenginecore.h b/src/assistant/help/qhelpenginecore.h new file mode 100644 index 0000000..b2cf19a --- /dev/null +++ b/src/assistant/help/qhelpenginecore.h @@ -0,0 +1,118 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPENGINECORE_H +#define QHELPENGINECORE_H + +#include + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QHelpEngineCorePrivate; +class QHelpFilterEngine; +struct QHelpLink; + +class QHELP_EXPORT QHelpEngineCore : public QObject +{ + Q_OBJECT + Q_PROPERTY(bool autoSaveFilter READ autoSaveFilter WRITE setAutoSaveFilter) + Q_PROPERTY(QString collectionFile READ collectionFile WRITE setCollectionFile) + Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) +#if QT_DEPRECATED_SINCE(5, 15) + Q_PROPERTY(QString currentFilter READ currentFilter WRITE setCurrentFilter) +#endif + +public: + explicit QHelpEngineCore(const QString &collectionFile, QObject *parent = nullptr); + virtual ~QHelpEngineCore(); + + bool isReadOnly() const; + void setReadOnly(bool enable); + + QHelpFilterEngine *filterEngine() const; + + bool setupData(); + + QString collectionFile() const; + void setCollectionFile(const QString &fileName); + + bool copyCollectionFile(const QString &fileName); + + static QString namespaceName(const QString &documentationFileName); + bool registerDocumentation(const QString &documentationFileName); + bool unregisterDocumentation(const QString &namespaceName); + QString documentationFileName(const QString &namespaceName); + QStringList registeredDocumentations() const; + QByteArray fileData(const QUrl &url) const; + +#if QT_DEPRECATED_SINCE(5,13) + QStringList customFilters() const; + bool removeCustomFilter(const QString &filterName); + bool addCustomFilter(const QString &filterName, + const QStringList &attributes); + + QStringList filterAttributes() const; + QStringList filterAttributes(const QString &filterName) const; + + QString currentFilter() const; + void setCurrentFilter(const QString &filterName); + + QList filterAttributeSets(const QString &namespaceName) const; + QList files(const QString namespaceName, + const QStringList &filterAttributes, + const QString &extensionFilter = QString()); +#endif + + QList files(const QString namespaceName, + const QString &filterName, + const QString &extensionFilter = QString()); + QUrl findFile(const QUrl &url) const; + + QList documentsForIdentifier(const QString &id) const; + QList documentsForIdentifier(const QString &id, const QString &filterName) const; + QList documentsForKeyword(const QString &keyword) const; + QList documentsForKeyword(const QString &keyword, const QString &filterName) const; + + bool removeCustomValue(const QString &key); + QVariant customValue(const QString &key, + const QVariant &defaultValue = QVariant()) const; + bool setCustomValue(const QString &key, const QVariant &value); + + static QVariant metaData(const QString &documentationFileName, + const QString &name); + + QString error() const; + + void setAutoSaveFilter(bool save); + bool autoSaveFilter() const; + + void setUsesFilterEngine(bool uses); + bool usesFilterEngine() const; + +Q_SIGNALS: + void setupStarted(); + void setupFinished(); + void warning(const QString &msg); + +#if QT_DEPRECATED_SINCE(5,13) + void currentFilterChanged(const QString &newFilter); + void readersAboutToBeInvalidated(); +#endif + +protected: + QHelpEngineCore(QHelpEngineCorePrivate *helpEngineCorePrivate, + QObject *parent); + +private: + QHelpEngineCorePrivate *d; + friend class QHelpEngineCorePrivate; +}; + +QT_END_NAMESPACE + +#endif // QHELPENGINECORE_H diff --git a/src/assistant/help/qhelpfilterdata.cpp b/src/assistant/help/qhelpfilterdata.cpp new file mode 100644 index 0000000..962708a --- /dev/null +++ b/src/assistant/help/qhelpfilterdata.cpp @@ -0,0 +1,124 @@ +// Copyright (C) 2018 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpfilterdata.h" +#include + +QT_BEGIN_NAMESPACE + +class QHelpFilterDataPrivate : public QSharedData +{ +public: + QHelpFilterDataPrivate() = default; + QHelpFilterDataPrivate(const QHelpFilterDataPrivate &other) + : QSharedData(other) + , m_components(other.m_components) + , m_versions(other.m_versions) + { } + ~QHelpFilterDataPrivate() = default; + + QStringList m_components; + QList m_versions; +}; + +/*! + \class QHelpFilterData + \since 5.13 + \inmodule QtHelp + \brief The QHelpFilterData class provides details for the filters + used by QHelpFilterEngine. + + By using setComponents() you may constrain the search results to + documents that belong only to components specified on the given list. + By using setVersions() you may constrain the search results to + documents that belong only to versions specified on the given list. + + \sa QHelpFilterEngine +*/ + +/*! + Constructs the empty filter. +*/ +QHelpFilterData::QHelpFilterData() + : d(new QHelpFilterDataPrivate) +{ +} + +/*! + Constructs a copy of \a other. +*/ +QHelpFilterData::QHelpFilterData(const QHelpFilterData &) = default; + +/*! + Move-constructs a QHelpFilterData instance, making it point at the same object that \a other was pointing to. +*/ +QHelpFilterData::QHelpFilterData(QHelpFilterData &&) = default; + +/*! + Destroys the filter. +*/ +QHelpFilterData::~QHelpFilterData() = default; + +/*! + Assigns \a other to this filter and returns a reference to this filter. +*/ +QHelpFilterData &QHelpFilterData::operator=(const QHelpFilterData &) = default; + + +/*! + Move-assigns \a other to this QHelpFilterData instance. +*/ +QHelpFilterData &QHelpFilterData::operator=(QHelpFilterData &&) = default; + +/*! + \fn void QHelpFilterData::swap(QHelpFilterData &other) + + Swaps the filter \a other with this filter. This + operation is very fast and never fails. +*/ + +bool QHelpFilterData::operator==(const QHelpFilterData &other) const +{ + return (d->m_components == other.d->m_components && + d->m_versions == other.d->m_versions); +} + +/*! + Specifies the component list that is used for filtering + the search results. Only results from components in the list + \a components shall be returned. +*/ +void QHelpFilterData::setComponents(const QStringList &components) +{ + d->m_components = components; +} + +/*! + Specifies the version list that is used for filtering + the search results. Only results from versions in the list + \a versions shall be returned. +*/ +void QHelpFilterData::setVersions(const QList &versions) +{ + d->m_versions = versions; +} + +/*! + Returns the component list that is used for filtering + the search results. +*/ +QStringList QHelpFilterData::components() const +{ + return d->m_components; +} + +/*! + Returns the version list that is used for filtering + the search results. +*/ +QList QHelpFilterData::versions() const +{ + return d->m_versions; +} + +QT_END_NAMESPACE diff --git a/src/assistant/help/qhelpfilterdata.h b/src/assistant/help/qhelpfilterdata.h new file mode 100644 index 0000000..c3bd66d --- /dev/null +++ b/src/assistant/help/qhelpfilterdata.h @@ -0,0 +1,42 @@ +// Copyright (C) 2018 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPFILTERDATA_H +#define QHELPFILTERDATA_H + +#include + +#include + +QT_BEGIN_NAMESPACE + +class QVersionNumber; +class QHelpFilterDataPrivate; + +class QHELP_EXPORT QHelpFilterData final +{ +public: + QHelpFilterData(); + QHelpFilterData(const QHelpFilterData &other); + QHelpFilterData(QHelpFilterData &&other); + ~QHelpFilterData(); + + QHelpFilterData &operator=(const QHelpFilterData &other); + QHelpFilterData &operator=(QHelpFilterData &&other); + bool operator==(const QHelpFilterData &other) const; + + void swap(QHelpFilterData &other) Q_DECL_NOTHROW + { d.swap(other.d); } + + void setComponents(const QStringList &components); + void setVersions(const QList &versions); + + QStringList components() const; + QList versions() const; +private: + QSharedDataPointer d; +}; + +QT_END_NAMESPACE + +#endif // QHELPFILTERDATA_H diff --git a/src/assistant/help/qhelpfilterengine.cpp b/src/assistant/help/qhelpfilterengine.cpp new file mode 100644 index 0000000..596a671 --- /dev/null +++ b/src/assistant/help/qhelpfilterengine.cpp @@ -0,0 +1,300 @@ +// Copyright (C) 2018 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpfilterengine.h" +#include "qhelpenginecore.h" +#include "qhelpfilterdata.h" +#include "qhelpdbreader_p.h" +#include "qhelpcollectionhandler_p.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +static const char ActiveFilter[] = "activeFilter"; + +class QHelpFilterEnginePrivate +{ +public: + bool setup(); + + QHelpFilterEngine *q = nullptr; + QHelpEngineCore *m_helpEngine = nullptr; + QHelpCollectionHandler *m_collectionHandler = nullptr; + QString m_currentFilter; + bool m_needsSetup = true; +}; + +bool QHelpFilterEnginePrivate::setup() +{ + if (!m_collectionHandler) + return false; + + if (!m_needsSetup) + return true; + + // Prevent endless loop when connected to setupFinished() signal + // and using from there QHelpFilterEngine, causing setup() to be + // called in turn. + m_needsSetup = false; + + if (!m_helpEngine->setupData()) { + m_needsSetup = true; + return false; + } + + const QString filter = m_collectionHandler->customValue( + QLatin1String(ActiveFilter), QString()).toString(); + if (!filter.isEmpty() && m_collectionHandler->filters().contains(filter)) + m_currentFilter = filter; + + emit q->filterActivated(m_currentFilter); + return true; +} + +////////////// + +/*! + \class QHelpFilterEngine + \since 5.13 + \inmodule QtHelp + \brief The QHelpFilterEngine class provides a filtered view of the + help contents. + + The filter engine allows the management of filters associated with + a QHelpEngineCore instance. The help engine internally creates an + instance of the filter engine, which can be accessed by calling + QHelpEngineCore::filterEngine(). Therefore, the public constructor + of this class is disabled. + + The filters are identified by a filter name string. Filter details are + described by the \l QHelpFilterData class. + + The filter engine allows for adding new filters and changing the existing + filters' data through the setFilterData() method. An existing filter can + be removed through the removeFilter() method. + + Out of the registered filters one can be marked as the active one. + The active filter will be used by the associated help engine for returning + filtered results of many different functions, such as content, index, or + search results. If no filter is marked active, the help engine returns the + full results list available. + + The active filter is returned by activeFilter() and it can be changed by + setActiveFilter(). + + \sa QHelpEngineCore +*/ + +/*! + \fn void QHelpFilterEngine::filterActivated(const QString &newFilter) + + This signal is emitted when the active filter is set. \a newFilter + specifies the name of the filter. + + \sa setActiveFilter() +*/ + +/*! + \internal + Constructs the filter engine for \a helpEngine. +*/ +QHelpFilterEngine::QHelpFilterEngine(QHelpEngineCore *helpEngine) + : QObject(helpEngine), + d(new QHelpFilterEnginePrivate) +{ + d->q = this; + d->m_helpEngine = helpEngine; +} + +/*! + \internal + Destroys the existing filter engine. +*/ +QHelpFilterEngine::~QHelpFilterEngine() +{ + delete d; +} + +/*! + \internal + Sets the \a collectionHandler to be used for this filter engine. +*/ +void QHelpFilterEngine::setCollectionHandler(QHelpCollectionHandler *collectionHandler) +{ + d->m_collectionHandler = collectionHandler; + d->m_currentFilter = QString(); + d->m_needsSetup = true; +} + +/*! + Returns the map of all the available namespaces as keys + together with their associated components as values. +*/ +QMap QHelpFilterEngine::namespaceToComponent() const +{ + if (!d->setup()) + return QMap(); + return d->m_collectionHandler->namespaceToComponent(); +} + +/*! + Returns the map of all the available namespaces as keys + together with their associated versions as values. +*/ +QMap QHelpFilterEngine::namespaceToVersion() const +{ + if (!d->setup()) + return QMap(); + + return d->m_collectionHandler->namespaceToVersion(); +} + +/*! + Returns the list of all filter names defined inside the filter engine. +*/ +QStringList QHelpFilterEngine::filters() const +{ + if (!d->setup()) + return QStringList(); + return d->m_collectionHandler->filters(); +} + +/*! + Returns the list of all available components defined in all + registered documentation files. +*/ +QStringList QHelpFilterEngine::availableComponents() const +{ + if (!d->setup()) + return QStringList(); + return d->m_collectionHandler->availableComponents(); +} + +/*! + \since 5.15 + + Returns the list of all available versions defined in all + registered documentation files. +*/ +QList QHelpFilterEngine::availableVersions() const +{ + if (!d->setup()) + return QList(); + return d->m_collectionHandler->availableVersions(); +} + +/*! + Returns the filter details associated with \a filterName. +*/ +QHelpFilterData QHelpFilterEngine::filterData(const QString &filterName) const +{ + if (!d->setup()) + return QHelpFilterData(); + return d->m_collectionHandler->filterData(filterName); +} + +/*! + Changes the existing filter details of the filter identified by + \a filterName to \a filterData. If the filter does not exist, a + new filter is created. + + Returns \c true if setting the filter succeeded, otherwise returns \c false. +*/ +bool QHelpFilterEngine::setFilterData(const QString &filterName, const QHelpFilterData &filterData) +{ + if (!d->setup()) + return false; + return d->m_collectionHandler->setFilterData(filterName, filterData); +} + +/*! + Removes the filter identified by \a filterName. + + Returns \c true if removing the filter succeeded, otherwise returns + \c false. +*/ +bool QHelpFilterEngine::removeFilter(const QString &filterName) +{ + if (!d->setup()) + return false; + return d->m_collectionHandler->removeFilter(filterName); +} + +/*! + Returns the name of the currently active filter. +*/ +QString QHelpFilterEngine::activeFilter() const +{ + if (!d->setup()) + return QString(); + return d->m_currentFilter; +} + +/*! + Changes the currently active filter to \a filterName. + + Returns \c true if changing the filter succeeded, otherwise + returns \c false. +*/ +bool QHelpFilterEngine::setActiveFilter(const QString &filterName) +{ + if (!d->setup()) + return false; + + if (filterName == d->m_currentFilter) + return true; + + if (!filterName.isEmpty() && !d->m_collectionHandler->filters().contains(filterName)) + return false; + + d->m_currentFilter = filterName; + d->m_collectionHandler->setCustomValue(QLatin1String(ActiveFilter), + d->m_currentFilter); + + emit filterActivated(d->m_currentFilter); + + return true; +} + +/*! + Returns the list of all registered documentation namespaces that match + the filter identified by \a filterName. +*/ +QStringList QHelpFilterEngine::namespacesForFilter(const QString &filterName) const +{ + if (!d->setup()) + return QStringList(); + return d->m_collectionHandler->namespacesForFilter(filterName); +} + +/*! + \since 5.15 + + Returns a sorted list of available indices. + The returned list contents depend on the active filter, and therefore only + the indices registered for the active filter will be returned. +*/ +QStringList QHelpFilterEngine::indices() const +{ + return indices(activeFilter()); +} + +/*! + \since 5.15 + + Returns a sorted list of available indices, filtered by \a filterName. + The returned list contents depend on the passed filter, and therefore only + the indices registered for this filter will be returned. + If you want to get all available indices unfiltered, + pass empty string as \a filterName. +*/ +QStringList QHelpFilterEngine::indices(const QString &filterName) const +{ + if (!d->setup()) + return QStringList(); + return d->m_collectionHandler->indicesForFilter(filterName); +} + +QT_END_NAMESPACE diff --git a/src/assistant/help/qhelpfilterengine.h b/src/assistant/help/qhelpfilterengine.h new file mode 100644 index 0000000..5a2bf26 --- /dev/null +++ b/src/assistant/help/qhelpfilterengine.h @@ -0,0 +1,64 @@ +// Copyright (C) 2018 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPFILTERENGINE_H +#define QHELPFILTERENGINE_H + +#include + +#include + +QT_BEGIN_NAMESPACE + +template +class QMap; +class QVersionNumber; + +class QHelpCollectionHandler; +class QHelpEngineCore; +class QHelpFilterData; +class QHelpFilterEnginePrivate; + +class QHELP_EXPORT QHelpFilterEngine : public QObject +{ + Q_OBJECT +public: + QMap namespaceToComponent() const; + QMap namespaceToVersion() const; + + QStringList filters() const; + + QString activeFilter() const; + bool setActiveFilter(const QString &filterName); + + QStringList availableComponents() const; + QList availableVersions() const; + + QHelpFilterData filterData(const QString &filterName) const; + bool setFilterData(const QString &filterName, const QHelpFilterData &filterData); + + bool removeFilter(const QString &filterName); + + QStringList namespacesForFilter(const QString &filterName) const; + + QStringList indices() const; + QStringList indices(const QString &filterName) const; + +Q_SIGNALS: + void filterActivated(const QString &newFilter); + +protected: + explicit QHelpFilterEngine(QHelpEngineCore *helpEngine); + virtual ~QHelpFilterEngine(); + +private: + void setCollectionHandler(QHelpCollectionHandler *collectionHandler); + + QHelpFilterEnginePrivate *d; + friend class QHelpEngineCore; + friend class QHelpEngineCorePrivate; +}; + +QT_END_NAMESPACE + +#endif // QHELPFILTERENGINE_H diff --git a/src/assistant/help/qhelpfiltersettings.cpp b/src/assistant/help/qhelpfiltersettings.cpp new file mode 100644 index 0000000..de8f975 --- /dev/null +++ b/src/assistant/help/qhelpfiltersettings.cpp @@ -0,0 +1,134 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpfiltersettings_p.h" +#include "qhelpfilterdata.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +class QHelpFilterSettingsPrivate : public QSharedData +{ +public: + QHelpFilterSettingsPrivate() = default; + QHelpFilterSettingsPrivate(const QHelpFilterSettingsPrivate &other) = default; + ~QHelpFilterSettingsPrivate() = default; + + QMap m_filterToData; + QString m_currentFilter; +}; + +QHelpFilterSettings::QHelpFilterSettings() + : d(new QHelpFilterSettingsPrivate) +{ +} + +QHelpFilterSettings::QHelpFilterSettings(const QHelpFilterSettings &) = default; + +QHelpFilterSettings::QHelpFilterSettings(QHelpFilterSettings &&) = default; + +QHelpFilterSettings::~QHelpFilterSettings() = default; + +QHelpFilterSettings &QHelpFilterSettings::operator=(const QHelpFilterSettings &) = default; + +QHelpFilterSettings &QHelpFilterSettings::operator=(QHelpFilterSettings &&) = default; + +void QHelpFilterSettings::setFilter(const QString &filterName, + const QHelpFilterData &filterData) +{ + d->m_filterToData.insert(filterName, filterData); +} + +void QHelpFilterSettings::removeFilter(const QString &filterName) +{ + d->m_filterToData.remove(filterName); +} + +QStringList QHelpFilterSettings::filterNames() const +{ + return d->m_filterToData.keys(); +} + +QHelpFilterData QHelpFilterSettings::filterData(const QString &filterName) const +{ + return d->m_filterToData.value(filterName); +} + +QMap QHelpFilterSettings::filters() const +{ + return d->m_filterToData; +} + +void QHelpFilterSettings::setCurrentFilter(const QString &filterName) +{ + d->m_currentFilter = filterName; +} + +QString QHelpFilterSettings::currentFilter() const +{ + return d->m_currentFilter; +} + +QHelpFilterSettings QHelpFilterSettings::readSettings(const QHelpFilterEngine *filterEngine) +{ + QHelpFilterSettings filterSettings; + + const QStringList allFilters = filterEngine->filters(); + for (const QString &filter : allFilters) + filterSettings.setFilter(filter, filterEngine->filterData(filter)); + + filterSettings.setCurrentFilter(filterEngine->activeFilter()); + + return filterSettings; +} + +static QMap subtract(const QMap &minuend, + const QMap &subtrahend) +{ + QMap result = minuend; + + for (auto itSubtrahend = subtrahend.cbegin(); itSubtrahend != subtrahend.cend(); ++itSubtrahend) { + auto itResult = result.find(itSubtrahend.key()); + if (itResult != result.end() && itSubtrahend.value() == itResult.value()) + result.erase(itResult); + } + + return result; +} + +bool QHelpFilterSettings::applySettings(QHelpFilterEngine *filterEngine, + const QHelpFilterSettings &settings) +{ + bool changed = false; + const QHelpFilterSettings oldSettings = readSettings(filterEngine); + + const QMap filtersToRemove = subtract( + oldSettings.filters(), + settings.filters()); + const QMap filtersToAdd = subtract( + settings.filters(), + oldSettings.filters()); + + const QString ¤tFilter = filterEngine->activeFilter(); + + for (const QString &filter : filtersToRemove.keys()) { + filterEngine->removeFilter(filter); + if (currentFilter == filter && !filtersToAdd.contains(filter)) + filterEngine->setActiveFilter(QString()); + changed = true; + } + + for (auto it = filtersToAdd.cbegin(); it != filtersToAdd.cend(); ++it) { + filterEngine->setFilterData(it.key(), it.value()); + changed = true; + } + + if (changed) + filterEngine->setActiveFilter(settings.currentFilter()); + + return changed; +} + +QT_END_NAMESPACE diff --git a/src/assistant/help/qhelpfiltersettings_p.h b/src/assistant/help/qhelpfiltersettings_p.h new file mode 100644 index 0000000..8714e96 --- /dev/null +++ b/src/assistant/help/qhelpfiltersettings_p.h @@ -0,0 +1,60 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPFILTERSETTINGS_H +#define QHELPFILTERSETTINGS_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of the help generator tools. This header file may change from version +// to version without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +template +class QMap; +class QHelpFilterData; +class QHelpFilterEngine; +class QHelpFilterSettingsPrivate; + +class QHelpFilterSettings final +{ +public: + QHelpFilterSettings(); + QHelpFilterSettings(const QHelpFilterSettings &other); + QHelpFilterSettings(QHelpFilterSettings &&other); + ~QHelpFilterSettings(); + + QHelpFilterSettings &operator=(const QHelpFilterSettings &other); + QHelpFilterSettings &operator=(QHelpFilterSettings &&other); + + void swap(QHelpFilterSettings &other) noexcept + { d.swap(other.d); } + + void setFilter(const QString &filterName, const QHelpFilterData &filterData); + void removeFilter(const QString &filterName); + QStringList filterNames() const; + QHelpFilterData filterData(const QString &filterName) const; + QMap filters() const; + + void setCurrentFilter(const QString &filterName); + QString currentFilter() const; + + static QHelpFilterSettings readSettings(const QHelpFilterEngine *filterEngine); + static bool applySettings(QHelpFilterEngine *filterEngine, const QHelpFilterSettings &settings); + +private: + QSharedDataPointer d; +}; + +QT_END_NAMESPACE + +#endif // QHELPFILTERSETTINGS_H diff --git a/src/assistant/help/qhelpfiltersettingswidget.cpp b/src/assistant/help/qhelpfiltersettingswidget.cpp new file mode 100644 index 0000000..ee1bc93 --- /dev/null +++ b/src/assistant/help/qhelpfiltersettingswidget.cpp @@ -0,0 +1,388 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpfilterdata.h" +#include "qhelpfiltersettings_p.h" +#include "qhelpfiltersettingswidget.h" +#include "ui_qhelpfiltersettingswidget.h" +#include "qfilternamedialog_p.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +static QStringList versionsToStringList(const QList &versions) +{ + QStringList versionList; + for (const QVersionNumber &version : versions) + versionList.append(version.isNull() ? QString() : version.toString()); + return versionList; +} + +static QList stringListToVersions(const QStringList &versionList) +{ + QList versions; + for (const QString &versionString : versionList) + versions.append(QVersionNumber::fromString(versionString)); + return versions; +} + +class QHelpFilterSettingsWidgetPrivate +{ + QHelpFilterSettingsWidget *q_ptr; + Q_DECLARE_PUBLIC(QHelpFilterSettingsWidget) +public: + QHelpFilterSettingsWidgetPrivate() = default; + + QHelpFilterSettings filterSettings() const; + void setFilterSettings(const QHelpFilterSettings &settings); + + void updateCurrentFilter(); + void componentsChanged(const QStringList &components); + void versionsChanged(const QStringList &versions); + void addFilterClicked(); + void renameFilterClicked(); + void removeFilterClicked(); + void addFilter(const QString &filterName, + const QHelpFilterData &filterData = QHelpFilterData()); + void removeFilter(const QString &filterName); + QString getUniqueFilterName(const QString &windowTitle, + const QString &initialFilterName); + QString suggestedNewFilterName(const QString &initialFilterName) const; + + QMap m_filterToItem; + QHash m_itemToFilter; + + Ui::QHelpFilterSettingsWidget m_ui; + QStringList m_components; + QList m_versions; + QHelpFilterSettings m_filterSettings; +}; + +void QHelpFilterSettingsWidgetPrivate::setFilterSettings(const QHelpFilterSettings &settings) +{ + QString currentFilter = m_itemToFilter.value(m_ui.filterWidget->currentItem()); + if (currentFilter.isEmpty()) { + if (!m_filterSettings.currentFilter().isEmpty()) + currentFilter = m_filterSettings.currentFilter(); + else + currentFilter = settings.currentFilter(); + } + + m_filterSettings = settings; + + m_ui.filterWidget->clear(); + m_ui.componentWidget->clear(); + m_ui.versionWidget->clear(); + m_itemToFilter.clear(); + m_filterToItem.clear(); + + for (const QString &filterName : m_filterSettings.filterNames()) { + QListWidgetItem *item = new QListWidgetItem(filterName); + m_ui.filterWidget->addItem(item); + m_itemToFilter.insert(item, filterName); + m_filterToItem.insert(filterName, item); + if (filterName == currentFilter) + m_ui.filterWidget->setCurrentItem(item); + } + + if (!m_ui.filterWidget->currentItem() && !m_filterToItem.isEmpty()) + m_ui.filterWidget->setCurrentItem(m_filterToItem.first()); + + updateCurrentFilter(); +} + +QHelpFilterSettings QHelpFilterSettingsWidgetPrivate::filterSettings() const +{ + return m_filterSettings; +} + +void QHelpFilterSettingsWidgetPrivate::updateCurrentFilter() +{ + const QString ¤tFilter = m_itemToFilter.value(m_ui.filterWidget->currentItem()); + + const bool filterSelected = !currentFilter.isEmpty(); + m_ui.componentWidget->setEnabled(filterSelected); + m_ui.versionWidget->setEnabled(filterSelected); + m_ui.renameButton->setEnabled(filterSelected); + m_ui.removeButton->setEnabled(filterSelected); + + m_ui.componentWidget->setOptions(m_components, + m_filterSettings.filterData(currentFilter).components()); + m_ui.versionWidget->setOptions(versionsToStringList(m_versions), + versionsToStringList(m_filterSettings.filterData(currentFilter).versions())); +} + +void QHelpFilterSettingsWidgetPrivate::componentsChanged(const QStringList &components) +{ + const QString ¤tFilter = m_itemToFilter.value(m_ui.filterWidget->currentItem()); + if (currentFilter.isEmpty()) + return; + + QHelpFilterData filterData = m_filterSettings.filterData(currentFilter); + filterData.setComponents(components); + m_filterSettings.setFilter(currentFilter, filterData); +} + +void QHelpFilterSettingsWidgetPrivate::versionsChanged(const QStringList &versions) +{ + const QString ¤tFilter = m_itemToFilter.value(m_ui.filterWidget->currentItem()); + if (currentFilter.isEmpty()) + return; + + QHelpFilterData filterData = m_filterSettings.filterData(currentFilter); + filterData.setVersions(stringListToVersions(versions)); + m_filterSettings.setFilter(currentFilter, filterData); +} + +void QHelpFilterSettingsWidgetPrivate::addFilterClicked() +{ + const QString newFilterName = getUniqueFilterName(QHelpFilterSettingsWidget::tr("Add Filter"), + suggestedNewFilterName(QHelpFilterSettingsWidget::tr("New Filter"))); + if (newFilterName.isEmpty()) + return; + + addFilter(newFilterName); +} + +void QHelpFilterSettingsWidgetPrivate::renameFilterClicked() +{ + const QString ¤tFilter = m_itemToFilter.value(m_ui.filterWidget->currentItem()); + if (currentFilter.isEmpty()) + return; + + const QString newFilterName = getUniqueFilterName(QHelpFilterSettingsWidget::tr("Rename Filter"), currentFilter); + if (newFilterName.isEmpty()) + return; + + const QHelpFilterData oldFilterData = m_filterSettings.filterData(currentFilter); + removeFilter(currentFilter); + addFilter(newFilterName, oldFilterData); + + if (m_filterSettings.currentFilter() == currentFilter) + m_filterSettings.setCurrentFilter(newFilterName); +} + +void QHelpFilterSettingsWidgetPrivate::removeFilterClicked() +{ + Q_Q(QHelpFilterSettingsWidget); + + const QString ¤tFilter = m_itemToFilter.value(m_ui.filterWidget->currentItem()); + if (currentFilter.isEmpty()) + return; + + if (QMessageBox::question(q, QHelpFilterSettingsWidget::tr("Remove Filter"), + QHelpFilterSettingsWidget::tr("Are you sure you want to remove the \"%1\" filter?") + .arg(currentFilter), + QMessageBox::Yes | QMessageBox::No) + != QMessageBox::Yes) { + return; + } + + removeFilter(currentFilter); + + if (m_filterSettings.currentFilter() == currentFilter) + m_filterSettings.setCurrentFilter(QString()); +} + +void QHelpFilterSettingsWidgetPrivate::addFilter(const QString &filterName, + const QHelpFilterData &filterData) +{ + QListWidgetItem *item = new QListWidgetItem(filterName); + m_filterSettings.setFilter(filterName, filterData); + m_filterToItem.insert(filterName, item); + m_itemToFilter.insert(item, filterName); + m_ui.filterWidget->insertItem(m_filterToItem.keys().indexOf(filterName), item); + + m_ui.filterWidget->setCurrentItem(item); + updateCurrentFilter(); +} + +void QHelpFilterSettingsWidgetPrivate::removeFilter(const QString &filterName) +{ + QListWidgetItem *item = m_filterToItem.value(filterName); + m_itemToFilter.remove(item); + m_filterToItem.remove(filterName); + delete item; + + m_filterSettings.removeFilter(filterName); +} + +QString QHelpFilterSettingsWidgetPrivate::getUniqueFilterName(const QString &windowTitle, + const QString &initialFilterName) +{ + Q_Q(QHelpFilterSettingsWidget); + + QString newFilterName = initialFilterName; + while (1) { + QFilterNameDialog dialog(q); + dialog.setWindowTitle(windowTitle); + dialog.setFilterName(newFilterName); + if (dialog.exec() == QDialog::Rejected) + return QString(); + + newFilterName = dialog.filterName(); + if (!m_filterToItem.contains(newFilterName)) + break; + + if (QMessageBox::warning(q, QHelpFilterSettingsWidget::tr("Filter Exists"), + QHelpFilterSettingsWidget::tr("The filter \"%1\" already exists.") + .arg(newFilterName), + QMessageBox::Retry | QMessageBox::Cancel) + == QMessageBox::Cancel) { + return QString(); + } + } + + return newFilterName; +} + +QString QHelpFilterSettingsWidgetPrivate::suggestedNewFilterName(const QString &initialFilterName) const +{ + QString newFilterName = initialFilterName; + + int counter = 1; + while (m_filterToItem.contains(newFilterName)) { + newFilterName = initialFilterName + QLatin1Char(' ') + + QString::number(++counter); + } + + return newFilterName; +} + +/*! + \class QHelpFilterSettingsWidget + \inmodule QtHelp + \since 5.15 + \brief The QHelpFilterSettingsWidget class provides a widget that allows + for creating, editing and removing filters. + + The instance of QHelpFilterSettingsWidget may be a part of + a preferences dialog. Before showing the dialog, \l setAvailableComponents() + and \l setAvailableVersions() should be called, otherwise the filter + settings widget will only offer a creation of empty filters, + which wouldn't be useful. In addition, \l readSettings should also + be called to fill up the filter settings widget with the list of filters + already stored in the filter engine. The creation of new filters, + modifications to existing filters and removal of unneeded filters are + handled by the widget automatically. If you want to store the current + state of the widget and apply it to the filter engine e.g. after + the user clicked the apply button - call \l applySettings(). +*/ + +/*! + Constructs a filter settings widget with \a parent as parent widget. +*/ +QHelpFilterSettingsWidget::QHelpFilterSettingsWidget(QWidget *parent) + : QWidget(parent) + , d_ptr(new QHelpFilterSettingsWidgetPrivate()) +{ + Q_D(QHelpFilterSettingsWidget); + d->q_ptr = this; + d->m_ui.setupUi(this); + + // TODO: make resources configurable + QString resourcePath = QLatin1String(":/qt-project.org/assistant/images/"); +#ifdef Q_OS_MACOS + resourcePath.append(QLatin1String("mac")); +#else + resourcePath.append(QLatin1String("win")); +#endif + d->m_ui.addButton->setIcon(QIcon(resourcePath + QLatin1String("/plus.png"))); + d->m_ui.removeButton->setIcon(QIcon(resourcePath + QLatin1String("/minus.png"))); + + connect(d->m_ui.componentWidget, &QOptionsWidget::optionSelectionChanged, + [this](const QStringList &options) { + Q_D(QHelpFilterSettingsWidget); + d->componentsChanged(options); + }); + connect(d->m_ui.versionWidget, &QOptionsWidget::optionSelectionChanged, + [this](const QStringList &options) { + Q_D(QHelpFilterSettingsWidget); + d->versionsChanged(options); + }); + connect(d->m_ui.filterWidget, &QListWidget::currentItemChanged, + this, [this](QListWidgetItem *) { + Q_D(QHelpFilterSettingsWidget); + d->updateCurrentFilter(); + }); + connect(d->m_ui.filterWidget, &QListWidget::itemDoubleClicked, + [this](QListWidgetItem *) { + Q_D(QHelpFilterSettingsWidget); + d->renameFilterClicked(); + }); + + // TODO: repeat these actions on context menu + connect(d->m_ui.addButton, &QAbstractButton::clicked, + [this]() { + Q_D(QHelpFilterSettingsWidget); + d->addFilterClicked(); + }); + connect(d->m_ui.renameButton, &QAbstractButton::clicked, + [this]() { + Q_D(QHelpFilterSettingsWidget); + d->renameFilterClicked(); + }); + connect(d->m_ui.removeButton, &QAbstractButton::clicked, + [this]() { + Q_D(QHelpFilterSettingsWidget); + d->removeFilterClicked(); + }); + + d->m_ui.componentWidget->setNoOptionText(tr("No Component")); + d->m_ui.componentWidget->setInvalidOptionText(tr("Invalid Component")); + d->m_ui.versionWidget->setNoOptionText(tr("No Version")); + d->m_ui.versionWidget->setInvalidOptionText(tr("Invalid Version")); +} + +/*! + Destroys the filter settings widget. +*/ +QHelpFilterSettingsWidget::~QHelpFilterSettingsWidget() = default; + +/*! + Sets the list of all available components to \a components. + \sa QHelpFilterEngine::availableComponents() +*/ +void QHelpFilterSettingsWidget::setAvailableComponents(const QStringList &components) +{ + Q_D(QHelpFilterSettingsWidget); + d->m_components = components; + d->updateCurrentFilter(); +} + +/*! + Sets the list of all available version numbers to \a versions. + \sa QHelpFilterEngine::availableVersions() +*/ +void QHelpFilterSettingsWidget::setAvailableVersions(const QList &versions) +{ + Q_D(QHelpFilterSettingsWidget); + d->m_versions = versions; + d->updateCurrentFilter(); +} + +/*! + Reads the filter settings stored inside \a filterEngine and sets up + this filter settings widget accordingly. +*/ +void QHelpFilterSettingsWidget::readSettings(const QHelpFilterEngine *filterEngine) +{ + Q_D(QHelpFilterSettingsWidget); + const QHelpFilterSettings settings = QHelpFilterSettings::readSettings(filterEngine); + d->setFilterSettings(settings); +} + +/*! + Writes the filter settings, currently presented in this filter settings + widget, to the \a filterEngine. The old settings stored in the filter + engine will be overwritten. Returns \c true on success. +*/ +bool QHelpFilterSettingsWidget::applySettings(QHelpFilterEngine *filterEngine) const +{ + Q_D(const QHelpFilterSettingsWidget); + return QHelpFilterSettings::applySettings(filterEngine, d->filterSettings()); +} + +QT_END_NAMESPACE diff --git a/src/assistant/help/qhelpfiltersettingswidget.h b/src/assistant/help/qhelpfiltersettingswidget.h new file mode 100644 index 0000000..db6c446 --- /dev/null +++ b/src/assistant/help/qhelpfiltersettingswidget.h @@ -0,0 +1,41 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPFILTERSETTINGSWIDGET_H +#define QHELPFILTERSETTINGSWIDGET_H + +#include + +#include + +QT_BEGIN_NAMESPACE + +class QVersionNumber; + +class QHelpFilterEngine; +class QHelpFilterSettingsWidgetPrivate; + +class QHELP_EXPORT QHelpFilterSettingsWidget : public QWidget +{ + Q_OBJECT +public: + explicit QHelpFilterSettingsWidget(QWidget *parent = nullptr); + + ~QHelpFilterSettingsWidget(); + + void setAvailableComponents(const QStringList &components); + void setAvailableVersions(const QList &versions); + + // TODO: filterEngine may be moved to c'tor or to setFilterEngine() setter + void readSettings(const QHelpFilterEngine *filterEngine); + bool applySettings(QHelpFilterEngine *filterEngine) const; + +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QHelpFilterSettingsWidget) + Q_DISABLE_COPY_MOVE(QHelpFilterSettingsWidget) +}; + +QT_END_NAMESPACE + +#endif // QHELPFILTERSETTINGSWIDGET_H diff --git a/src/assistant/help/qhelpfiltersettingswidget.ui b/src/assistant/help/qhelpfiltersettingswidget.ui new file mode 100644 index 0000000..7e16e3f --- /dev/null +++ b/src/assistant/help/qhelpfiltersettingswidget.ui @@ -0,0 +1,83 @@ + + + QHelpFilterSettingsWidget + + + + 0 + 0 + 347 + 127 + + + + Form + + + + + + Filter + + + + + + + QFrame::NoFrame + + + Components + + + + + + + Versions + + + + + + + + + + + + + + + + Add... + + + + + + + Rename... + + + + + + + Remove + + + + + + + + QOptionsWidget + QWidget +
qoptionswidget_p.h
+ 1 +
+
+ + +
diff --git a/src/assistant/help/qhelpindexwidget.cpp b/src/assistant/help/qhelpindexwidget.cpp new file mode 100644 index 0000000..40bf92d --- /dev/null +++ b/src/assistant/help/qhelpindexwidget.cpp @@ -0,0 +1,378 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpindexwidget.h" +#include "qhelpenginecore.h" +#include "qhelpengine_p.h" +#include "qhelpdbreader_p.h" +#include "qhelpcollectionhandler_p.h" + +#include +#include +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class QHelpIndexProvider : public QThread +{ +public: + QHelpIndexProvider(QHelpEnginePrivate *helpEngine); + ~QHelpIndexProvider() override; + void collectIndices(const QString &customFilterName); + void stopCollecting(); + QStringList indices() const; + +private: + void run() override; + + QHelpEnginePrivate *m_helpEngine; + QString m_currentFilter; + QStringList m_filterAttributes; + QStringList m_indices; + mutable QMutex m_mutex; +}; + +class QHelpIndexModelPrivate +{ +public: + QHelpIndexModelPrivate(QHelpEnginePrivate *hE) + : helpEngine(hE), + indexProvider(new QHelpIndexProvider(helpEngine)) + { + } + + QHelpEnginePrivate *helpEngine; + QHelpIndexProvider *indexProvider; + QStringList indices; +}; + +QHelpIndexProvider::QHelpIndexProvider(QHelpEnginePrivate *helpEngine) + : QThread(helpEngine), + m_helpEngine(helpEngine) +{ +} + +QHelpIndexProvider::~QHelpIndexProvider() +{ + stopCollecting(); +} + +void QHelpIndexProvider::collectIndices(const QString &customFilterName) +{ + m_mutex.lock(); + m_currentFilter = customFilterName; + m_filterAttributes = m_helpEngine->q->filterAttributes(customFilterName); + m_mutex.unlock(); + + if (isRunning()) + stopCollecting(); + start(LowPriority); +} + +void QHelpIndexProvider::stopCollecting() +{ + if (!isRunning()) + return; + wait(); +} + +QStringList QHelpIndexProvider::indices() const +{ + QMutexLocker lck(&m_mutex); + return m_indices; +} + +void QHelpIndexProvider::run() +{ + m_mutex.lock(); + const QString currentFilter = m_currentFilter; + const QStringList attributes = m_filterAttributes; + const QString collectionFile = m_helpEngine->collectionHandler->collectionFile(); + m_indices = QStringList(); + m_mutex.unlock(); + + if (collectionFile.isEmpty()) + return; + + QHelpCollectionHandler collectionHandler(collectionFile); + if (!collectionHandler.openCollectionFile()) + return; + + const QStringList result = m_helpEngine->usesFilterEngine + ? collectionHandler.indicesForFilter(currentFilter) + : collectionHandler.indicesForFilter(attributes); + + m_mutex.lock(); + m_indices = result; + m_mutex.unlock(); +} + +/*! + \class QHelpIndexModel + \since 4.4 + \inmodule QtHelp + \brief The QHelpIndexModel class provides a model that + supplies index keywords to views. + + +*/ + +/*! + \fn void QHelpIndexModel::indexCreationStarted() + + This signal is emitted when the creation of a new index + has started. The current index is invalid from this + point on until the signal indexCreated() is emitted. + + \sa isCreatingIndex() +*/ + +/*! + \fn void QHelpIndexModel::indexCreated() + + This signal is emitted when the index has been created. +*/ + +QHelpIndexModel::QHelpIndexModel(QHelpEnginePrivate *helpEngine) + : QStringListModel(helpEngine) +{ + d = new QHelpIndexModelPrivate(helpEngine); + + connect(d->indexProvider, &QThread::finished, + this, &QHelpIndexModel::insertIndices); +} + +QHelpIndexModel::~QHelpIndexModel() +{ + delete d; +} + +/*! + Creates a new index by querying the help system for + keywords for the specified \a customFilterName. +*/ +void QHelpIndexModel::createIndex(const QString &customFilterName) +{ + const bool running = d->indexProvider->isRunning(); + d->indexProvider->collectIndices(customFilterName); + if (running) + return; + + d->indices = QStringList(); + filter(QString()); + emit indexCreationStarted(); +} + +void QHelpIndexModel::insertIndices() +{ + if (d->indexProvider->isRunning()) + return; + + d->indices = d->indexProvider->indices(); + filter(QString()); + emit indexCreated(); +} + +/*! + Returns true if the index is currently built up, otherwise + false. +*/ +bool QHelpIndexModel::isCreatingIndex() const +{ + return d->indexProvider->isRunning(); +} + +/*! + \since 5.15 + + Returns the associated help engine that manages this model. +*/ +QHelpEngineCore *QHelpIndexModel::helpEngine() const +{ + return d->helpEngine->q; +} + +/*! + Filters the indices and returns the model index of the best + matching keyword. In a first step, only the keywords containing + \a filter are kept in the model's index list. Analogously, if + \a wildcard is not empty, only the keywords matched are left + in the index list. In a second step, the best match is + determined and its index model returned. When specifying a + wildcard expression, the \a filter string is used to + search for the best match. +*/ +QModelIndex QHelpIndexModel::filter(const QString &filter, const QString &wildcard) +{ + if (filter.isEmpty()) { + setStringList(d->indices); + return index(-1, 0, QModelIndex()); + } + + QStringList lst; + int goodMatch = -1; + int perfectMatch = -1; + + if (!wildcard.isEmpty()) { + auto re = QRegularExpression::wildcardToRegularExpression(wildcard, + QRegularExpression::UnanchoredWildcardConversion); + const QRegularExpression regExp(re, QRegularExpression::CaseInsensitiveOption); + for (const QString &index : std::as_const(d->indices)) { + if (index.contains(regExp)) { + lst.append(index); + if (perfectMatch == -1 && index.startsWith(filter, Qt::CaseInsensitive)) { + if (goodMatch == -1) + goodMatch = lst.size() - 1; + if (filter.size() == index.size()){ + perfectMatch = lst.size() - 1; + } + } else if (perfectMatch > -1 && index == filter) { + perfectMatch = lst.size() - 1; + } + } + } + } else { + for (const QString &index : std::as_const(d->indices)) { + if (index.contains(filter, Qt::CaseInsensitive)) { + lst.append(index); + if (perfectMatch == -1 && index.startsWith(filter, Qt::CaseInsensitive)) { + if (goodMatch == -1) + goodMatch = lst.size() - 1; + if (filter.size() == index.size()){ + perfectMatch = lst.size() - 1; + } + } else if (perfectMatch > -1 && index == filter) { + perfectMatch = lst.size() - 1; + } + } + } + + } + + if (perfectMatch == -1) + perfectMatch = qMax(0, goodMatch); + + setStringList(lst); + return index(perfectMatch, 0, QModelIndex()); +} + + + +/*! + \class QHelpIndexWidget + \inmodule QtHelp + \since 4.4 + \brief The QHelpIndexWidget class provides a list view + displaying the QHelpIndexModel. +*/ + +/*! + \fn void QHelpIndexWidget::linkActivated(const QUrl &link, + const QString &keyword) + + \deprecated + + Use documentActivated() instead. + + This signal is emitted when an item is activated and its + associated \a link should be shown. To know where the link + belongs to, the \a keyword is given as a second parameter. +*/ + +/*! + \fn void QHelpIndexWidget::documentActivated(const QHelpLink &document, + const QString &keyword) + + \since 5.15 + + This signal is emitted when an item is activated and its + associated \a document should be shown. To know where the link + belongs to, the \a keyword is given as a second parameter. +*/ + +/*! + \fn void QHelpIndexWidget::documentsActivated(const QList &documents, + const QString &keyword) + + \since 5.15 + + This signal is emitted when the item representing the \a keyword + is activated and the item has more than one document associated. + The \a documents consist of the document titles and their URLs. +*/ + +QHelpIndexWidget::QHelpIndexWidget() + : QListView(nullptr) +{ + setEditTriggers(QAbstractItemView::NoEditTriggers); + setUniformItemSizes(true); + connect(this, &QAbstractItemView::activated, + this, &QHelpIndexWidget::showLink); +} + +void QHelpIndexWidget::showLink(const QModelIndex &index) +{ + if (!index.isValid()) + return; + + QHelpIndexModel *indexModel = qobject_cast(model()); + if (!indexModel) + return; + + const QVariant &v = indexModel->data(index, Qt::DisplayRole); + const QString name = v.isValid() ? v.toString() : QString(); + + const QList &docs = indexModel->helpEngine()->documentsForKeyword(name); + if (docs.size() > 1) { + emit documentsActivated(docs, name); +#if QT_DEPRECATED_SINCE(5, 15) + QT_WARNING_PUSH + QT_WARNING_DISABLE_DEPRECATED + QMultiMap links; + for (const auto &doc : docs) + links.insert(doc.title, doc.url); + emit linksActivated(links, name); + QT_WARNING_POP +#endif + } else if (!docs.isEmpty()) { + emit documentActivated(docs.first(), name); +#if QT_DEPRECATED_SINCE(5, 15) + QT_WARNING_PUSH + QT_WARNING_DISABLE_DEPRECATED + emit linkActivated(docs.first().url, name); + QT_WARNING_POP +#endif + } +} + +/*! + Activates the current item which will result eventually in + the emitting of a linkActivated() or linksActivated() + signal. +*/ +void QHelpIndexWidget::activateCurrentItem() +{ + showLink(currentIndex()); +} + +/*! + Filters the indices according to \a filter or \a wildcard. + The item with the best match is set as current item. + + \sa QHelpIndexModel::filter() +*/ +void QHelpIndexWidget::filterIndices(const QString &filter, const QString &wildcard) +{ + QHelpIndexModel *indexModel = qobject_cast(model()); + if (!indexModel) + return; + const QModelIndex &idx = indexModel->filter(filter, wildcard); + if (idx.isValid()) + setCurrentIndex(idx); +} + +QT_END_NAMESPACE diff --git a/src/assistant/help/qhelpindexwidget.h b/src/assistant/help/qhelpindexwidget.h new file mode 100644 index 0000000..adc57a4 --- /dev/null +++ b/src/assistant/help/qhelpindexwidget.h @@ -0,0 +1,80 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPINDEXWIDGET_H +#define QHELPINDEXWIDGET_H + +#include + +#include +#include +#include + +QT_BEGIN_NAMESPACE + + +class QHelpEnginePrivate; +class QHelpEngineCore; +class QHelpIndexModelPrivate; +struct QHelpLink; + +class QHELP_EXPORT QHelpIndexModel : public QStringListModel +{ + Q_OBJECT + +public: + void createIndex(const QString &customFilterName); + QModelIndex filter(const QString &filter, + const QString &wildcard = QString()); + + bool isCreatingIndex() const; + QHelpEngineCore *helpEngine() const; + +Q_SIGNALS: + void indexCreationStarted(); + void indexCreated(); + +private Q_SLOTS: + void insertIndices(); + +private: + QHelpIndexModel(QHelpEnginePrivate *helpEngine); + ~QHelpIndexModel(); + + QHelpIndexModelPrivate *d; + friend class QHelpEnginePrivate; +}; + +class QHELP_EXPORT QHelpIndexWidget : public QListView +{ + Q_OBJECT + Q_MOC_INCLUDE() + +Q_SIGNALS: +#if QT_DEPRECATED_SINCE(5, 15) + QT_DEPRECATED_X("Use documentActivated() instead") + void linkActivated(const QUrl &link, const QString &keyword); + QT_DEPRECATED_X("Use documentsActivated() instead") + void linksActivated(const QMultiMap &links, const QString &keyword); +#endif + void documentActivated(const QHelpLink &document, + const QString &keyword); + void documentsActivated(const QList &documents, + const QString &keyword); + +public Q_SLOTS: + void filterIndices(const QString &filter, + const QString &wildcard = QString()); + void activateCurrentItem(); + +private Q_SLOTS: + void showLink(const QModelIndex &index); + +private: + QHelpIndexWidget(); + friend class QHelpEngine; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/assistant/help/qhelplink.cpp b/src/assistant/help/qhelplink.cpp new file mode 100644 index 0000000..91c1f4f --- /dev/null +++ b/src/assistant/help/qhelplink.cpp @@ -0,0 +1,24 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelplink.h" + +/*! + \class QHelpLink + \since 5.15 + \inmodule QtHelp + \brief The QHelpLink struct provides the data associated with a help link. + + The QHelpLink object is a data object that describes a link to a documentation file. + The description of the help link contains the document title and URL of the document. + \sa QHelpEngineCore +*/ + +/*! + \variable QHelpLink::url + \brief The target url of the link. +*/ +/*! + \variable QHelpLink::title + \brief The title of the link. +*/ diff --git a/src/assistant/help/qhelplink.h b/src/assistant/help/qhelplink.h new file mode 100644 index 0000000..15b64ce --- /dev/null +++ b/src/assistant/help/qhelplink.h @@ -0,0 +1,21 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPLINK_H +#define QHELPLINK_H + +#include + +#include + +QT_BEGIN_NAMESPACE + +struct QHELP_EXPORT QHelpLink final +{ + QUrl url; + QString title; +}; + +QT_END_NAMESPACE + +#endif // QHELPLINK_H diff --git a/src/assistant/help/qhelpsearchengine.cpp b/src/assistant/help/qhelpsearchengine.cpp new file mode 100644 index 0000000..9483a1b --- /dev/null +++ b/src/assistant/help/qhelpsearchengine.cpp @@ -0,0 +1,566 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpenginecore.h" +#include "qhelpsearchengine.h" +#include "qhelpsearchquerywidget.h" +#include "qhelpsearchresultwidget.h" + +#include "qhelpsearchindexreader_p.h" +#include "qhelpsearchindexreader_default_p.h" +#include "qhelpsearchindexwriter_default_p.h" + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +using namespace fulltextsearch::qt; + +class QHelpSearchResultData : public QSharedData +{ +public: + QUrl m_url; + QString m_title; + QString m_snippet; +}; + +/*! + \class QHelpSearchResult + \since 5.9 + \inmodule QtHelp + \brief The QHelpSearchResult class provides the data associated with the + search result. + + The QHelpSearchResult object is a data object that describes a single search result. + The vector of search result objects is returned by QHelpSearchEngine::searchResults(). + The description of the search result contains the document title and URL + that the search input matched. It also contains the snippet from + the document content containing the best match of the search input. + \sa QHelpSearchEngine +*/ + +/*! + Constructs a new empty QHelpSearchResult. +*/ +QHelpSearchResult::QHelpSearchResult() + : d(new QHelpSearchResultData) +{ +} + +/*! + Constructs a copy of \a other. +*/ +QHelpSearchResult::QHelpSearchResult(const QHelpSearchResult &other) + : d(other.d) +{ +} + +/*! + Constructs the search result containing \a url, \a title and \a snippet + as the description of the result. +*/ +QHelpSearchResult::QHelpSearchResult(const QUrl &url, const QString &title, const QString &snippet) + : d(new QHelpSearchResultData) +{ + d->m_url = url; + d->m_title = title; + d->m_snippet = snippet; +} + +/*! + Destroys the search result. +*/ +QHelpSearchResult::~QHelpSearchResult() +{ +} + +/*! + Assigns \a other to this search result and returns a reference to this search result. +*/ +QHelpSearchResult &QHelpSearchResult::operator=(const QHelpSearchResult &other) +{ + d = other.d; + return *this; +} + +/*! + Returns the document title of the search result. +*/ +QString QHelpSearchResult::title() const +{ + return d->m_title; +} + +/*! + Returns the document URL of the search result. +*/ +QUrl QHelpSearchResult::url() const +{ + return d->m_url; +} + +/*! + Returns the document snippet containing the search phrase of the search result. +*/ +QString QHelpSearchResult::snippet() const +{ + return d->m_snippet; +} + + +class QHelpSearchEnginePrivate : public QObject +{ + Q_OBJECT + +signals: + void indexingStarted(); + void indexingFinished(); + + void searchingStarted(); + void searchingFinished(int searchResultCount); + +private: + QHelpSearchEnginePrivate(QHelpEngineCore *helpEngine) + : helpEngine(helpEngine) + { + } + + ~QHelpSearchEnginePrivate() + { + delete indexReader; + delete indexWriter; + } + + int searchResultCount() const + { + return indexReader ? indexReader->searchResultCount() : 0; + } + + QList searchResults(int start, int end) const + { + return indexReader ? + indexReader->searchResults(start, end) : + QList(); + } + + void updateIndex(bool reindex = false) + { + if (helpEngine.isNull()) + return; + + if (!QFile::exists(QFileInfo(helpEngine->collectionFile()).path())) + return; + + if (!indexWriter) { + indexWriter = new QHelpSearchIndexWriter(); + + connect(indexWriter, &QHelpSearchIndexWriter::indexingStarted, + this, &QHelpSearchEnginePrivate::indexingStarted); + connect(indexWriter, &QHelpSearchIndexWriter::indexingFinished, + this, &QHelpSearchEnginePrivate::indexingFinished); + } + + indexWriter->cancelIndexing(); + indexWriter->updateIndex(helpEngine->collectionFile(), + indexFilesFolder(), reindex); + } + + void cancelIndexing() + { + if (indexWriter) + indexWriter->cancelIndexing(); + } + + void search(const QString &searchInput) + { + if (helpEngine.isNull()) + return; + + if (!QFile::exists(QFileInfo(helpEngine->collectionFile()).path())) + return; + + if (!indexReader) { + indexReader = new QHelpSearchIndexReaderDefault(); + connect(indexReader, &fulltextsearch::QHelpSearchIndexReader::searchingStarted, + this, &QHelpSearchEnginePrivate::searchingStarted); + connect(indexReader, &fulltextsearch::QHelpSearchIndexReader::searchingFinished, + this, &QHelpSearchEnginePrivate::searchingFinished); + } + + m_searchInput = searchInput; + indexReader->cancelSearching(); + indexReader->search(helpEngine->collectionFile(), indexFilesFolder(), + searchInput, helpEngine->usesFilterEngine()); + } + + void cancelSearching() + { + if (indexReader) + indexReader->cancelSearching(); + } + + QString indexFilesFolder() const + { + QString indexFilesFolder = QLatin1String(".fulltextsearch"); + if (helpEngine && !helpEngine->collectionFile().isEmpty()) { + QFileInfo fi(helpEngine->collectionFile()); + indexFilesFolder = fi.absolutePath() + QDir::separator() + + QLatin1Char('.') + + fi.fileName().left(fi.fileName().lastIndexOf(QLatin1String(".qhc"))); + } + return indexFilesFolder; + } + +private: + friend class QHelpSearchEngine; + + bool m_isIndexingScheduled = false; + + QHelpSearchQueryWidget *queryWidget = nullptr; + QHelpSearchResultWidget *resultWidget = nullptr; + + fulltextsearch::QHelpSearchIndexReader *indexReader = nullptr; + QHelpSearchIndexWriter *indexWriter = nullptr; + + QPointer helpEngine; + + QString m_searchInput; +}; + +/*! + \class QHelpSearchQuery + \deprecated + \since 4.4 + \inmodule QtHelp + \brief The QHelpSearchQuery class contains the field name and the associated + search term. + + The QHelpSearchQuery class contains the field name and the associated search + term. Depending on the field the search term might get split up into separate + terms to be parsed differently by the search engine. + + \note This class has been deprecated in favor of QString. + + \sa QHelpSearchQueryWidget +*/ + +/*! + \fn QHelpSearchQuery::QHelpSearchQuery() + + Constructs a new empty QHelpSearchQuery. +*/ + +/*! + \fn QHelpSearchQuery::QHelpSearchQuery(FieldName field, const QStringList &wordList) + + Constructs a new QHelpSearchQuery and initializes it with the given \a field and \a wordList. +*/ + +/*! + \enum QHelpSearchQuery::FieldName + This enum type specifies the field names that are handled by the search engine. + + \value DEFAULT the default field provided by the search widget, several terms should be + split and stored in the word list except search terms enclosed in quotes. + \value FUZZY \deprecated Terms should be split in separate + words and passed to the search engine. + \value WITHOUT \deprecated Terms should be split in separate + words and passed to the search engine. + \value PHRASE \deprecated Terms should not be split in separate words. + \value ALL \deprecated Terms should be split in separate + words and passed to the search engine + \value ATLEAST \deprecated Terms should be split in separate + words and passed to the search engine +*/ + +/*! + \class QHelpSearchEngine + \since 4.4 + \inmodule QtHelp + \brief The QHelpSearchEngine class provides access to widgets reusable + to integrate fulltext search as well as to index and search documentation. + + Before the search engine can be used, one has to instantiate at least a + QHelpEngineCore object that needs to be passed to the search engines constructor. + This is required as the search engine needs to be connected to the help + engines setupFinished() signal to know when it can start to index documentation. + + After starting the indexing process the signal indexingStarted() is emitted and + on the end of the indexing process the indexingFinished() is emitted. To stop + the indexing one can call cancelIndexing(). + + When the indexing process has finished, the search engine can be used to + search through the index for a given term using the search() function. When + the search input is passed to the search engine, the searchingStarted() + signal is emitted. When the search finishes, the searchingFinished() signal + is emitted. The search process can be stopped by calling cancelSearching(). + + If the search succeeds, searchingFinished() is called with the search result + count to fetch the search results from the search engine. Calling the + searchResults() function with a range returns a list of QHelpSearchResult + objects within the range. The results consist of the document title and URL, + as well as a snippet from the document that contains the best match for the + search input. + + To display the given search results use the QHelpSearchResultWidget or build up your own one if you need + more advanced functionality. Note that the QHelpSearchResultWidget can not be instantiated + directly, you must retrieve the widget from the search engine in use as all connections will be + established for you by the widget itself. +*/ + +/*! + \fn void QHelpSearchEngine::indexingStarted() + + This signal is emitted when indexing process is started. +*/ + +/*! + \fn void QHelpSearchEngine::indexingFinished() + + This signal is emitted when the indexing process is complete. +*/ + +/*! + \fn void QHelpSearchEngine::searchingStarted() + + This signal is emitted when the search process is started. +*/ + +/*! + \fn void QHelpSearchEngine::searchingFinished(int searchResultCount) + + This signal is emitted when the search process is complete. + The search result count is stored in \a searchResultCount. +*/ + +/*! + Constructs a new search engine with the given \a parent. The search engine + uses the given \a helpEngine to access the documentation that needs to be indexed. + The QHelpEngine's setupFinished() signal is automatically connected to the + QHelpSearchEngine's indexing function, so that new documentation will be indexed + after the signal is emitted. +*/ +QHelpSearchEngine::QHelpSearchEngine(QHelpEngineCore *helpEngine, QObject *parent) + : QObject(parent) +{ + d = new QHelpSearchEnginePrivate(helpEngine); + + connect(helpEngine, &QHelpEngineCore::setupFinished, + this, &QHelpSearchEngine::scheduleIndexDocumentation); + + connect(d, &QHelpSearchEnginePrivate::indexingStarted, + this, &QHelpSearchEngine::indexingStarted); + connect(d, &QHelpSearchEnginePrivate::indexingFinished, + this, &QHelpSearchEngine::indexingFinished); + connect(d, &QHelpSearchEnginePrivate::searchingStarted, + this, &QHelpSearchEngine::searchingStarted); + connect(d, &QHelpSearchEnginePrivate::searchingFinished, + this, &QHelpSearchEngine::searchingFinished); +} + +/*! + Destructs the search engine. +*/ +QHelpSearchEngine::~QHelpSearchEngine() +{ + delete d; +} + +/*! + Returns a widget to use as input widget. Depending on your search engine + configuration you will get a different widget with more or less subwidgets. +*/ +QHelpSearchQueryWidget* QHelpSearchEngine::queryWidget() +{ + if (!d->queryWidget) + d->queryWidget = new QHelpSearchQueryWidget(); + + return d->queryWidget; +} + +/*! + Returns a widget that can hold and display the search results. +*/ +QHelpSearchResultWidget* QHelpSearchEngine::resultWidget() +{ + if (!d->resultWidget) + d->resultWidget = new QHelpSearchResultWidget(this); + + return d->resultWidget; +} + +#if QT_DEPRECATED_SINCE(5, 9) +/*! + \deprecated + Use searchResultCount() instead. +*/ +int QHelpSearchEngine::hitsCount() const +{ + return d->searchResultCount(); +} + +/*! + \since 4.6 + \deprecated + Use searchResultCount() instead. +*/ +int QHelpSearchEngine::hitCount() const +{ + return d->searchResultCount(); +} +#endif // QT_DEPRECATED_SINCE(5, 9) + +/*! + \since 5.9 + Returns the number of results the search engine found. +*/ +int QHelpSearchEngine::searchResultCount() const +{ + return d->searchResultCount(); +} + +#if QT_DEPRECATED_SINCE(5, 9) +/*! + \typedef QHelpSearchEngine::SearchHit + \deprecated + + Use QHelpSearchResult instead. + + Typedef for QPair. + The values of that pair are the documentation file path and the page title. + + \sa hits() +*/ + +/*! + \deprecated + Use searchResults() instead. +*/ +QList QHelpSearchEngine::hits(int start, int end) const +{ + QList hits; + for (const QHelpSearchResult &result : searchResults(start, end)) + hits.append(qMakePair(result.url().toString(), result.title())); + return hits; +} +#endif // QT_DEPRECATED_SINCE(5, 9) + +/*! + \since 5.9 + Returns a list of search results within the range from the index + specified by \a start to the index specified by \a end. +*/ +QList QHelpSearchEngine::searchResults(int start, int end) const +{ + return d->searchResults(start, end); +} + +/*! + \since 5.9 + Returns the phrase that was last searched for. +*/ +QString QHelpSearchEngine::searchInput() const +{ + return d->m_searchInput; +} + +#if QT_DEPRECATED_SINCE(5, 9) +/*! + \deprecated + \since 4.5 + Use searchInput() instead. +*/ +QList QHelpSearchEngine::query() const +{ + return QList() << QHelpSearchQuery(QHelpSearchQuery::DEFAULT, + d->m_searchInput.split(QChar::Space)); +} +#endif // QT_DEPRECATED_SINCE(5, 9) + +/*! + Forces the search engine to reindex all documentation files. +*/ +void QHelpSearchEngine::reindexDocumentation() +{ + d->updateIndex(true); +} + +/*! + Stops the indexing process. +*/ +void QHelpSearchEngine::cancelIndexing() +{ + d->cancelIndexing(); +} + +/*! + Stops the search process. +*/ +void QHelpSearchEngine::cancelSearching() +{ + d->cancelSearching(); +} + +/*! + \since 5.9 + Starts the search process using the given search phrase \a searchInput. + + The phrase may consist of several words. By default, the search engine returns + the list of documents that contain all the specified words. + The phrase may contain any combination of the logical operators AND, OR, and + NOT. The operator must be written in all capital letters, otherwise it will + be considered a part of the search phrase. + + If double quotation marks are used to group the words, + the search engine will search for an exact match of the quoted phrase. + + For more information about the text query syntax, + see \l {https://sqlite.org/fts5.html#full_text_query_syntax} + {SQLite FTS5 Extension}. +*/ +void QHelpSearchEngine::search(const QString &searchInput) +{ + d->search(searchInput); +} + +#if QT_DEPRECATED_SINCE(5, 9) +/*! + \deprecated + Use search(const QString &searchInput) instead. +*/ +void QHelpSearchEngine::search(const QList &queryList) +{ + if (queryList.isEmpty()) + return; + + d->search(queryList.first().wordList.join(QChar::Space)); +} +#endif // QT_DEPRECATED_SINCE(5, 9) + +/*! + \internal +*/ +void QHelpSearchEngine::scheduleIndexDocumentation() +{ + if (d->m_isIndexingScheduled) + return; + + d->m_isIndexingScheduled = true; + QTimer::singleShot(0, this, &QHelpSearchEngine::indexDocumentation); +} + +void QHelpSearchEngine::indexDocumentation() +{ + d->m_isIndexingScheduled = false; + d->updateIndex(); +} + +QT_END_NAMESPACE + +#include "qhelpsearchengine.moc" diff --git a/src/assistant/help/qhelpsearchengine.h b/src/assistant/help/qhelpsearchengine.h new file mode 100644 index 0000000..b421c95 --- /dev/null +++ b/src/assistant/help/qhelpsearchengine.h @@ -0,0 +1,109 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPSEARCHENGINE_H +#define QHELPSEARCHENGINE_H + +#include + +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QHelpEngineCore; +class QHelpSearchQueryWidget; +class QHelpSearchEnginePrivate; +class QHelpSearchResultData; +class QHelpSearchResultWidget; + +class QHELP_EXPORT QHelpSearchQuery +{ +public: + enum FieldName { DEFAULT = 0, FUZZY, WITHOUT, PHRASE, ALL, ATLEAST }; + + QHelpSearchQuery() + : fieldName(DEFAULT) { wordList.clear(); } + QHelpSearchQuery(FieldName field, const QStringList &wordList_) + : fieldName(field), wordList(wordList_) {} + + FieldName fieldName; + QStringList wordList; +}; + +class QHELP_EXPORT QHelpSearchResult +{ +public: + QHelpSearchResult(); + QHelpSearchResult(const QHelpSearchResult &other); + QHelpSearchResult(const QUrl &url, const QString &title, const QString &snippet); + ~QHelpSearchResult(); + + QHelpSearchResult &operator=(const QHelpSearchResult &other); + + QString title() const; + QUrl url() const; + QString snippet() const; + +private: + QSharedDataPointer d; +}; + +class QHELP_EXPORT QHelpSearchEngine : public QObject +{ + Q_OBJECT + +public: + explicit QHelpSearchEngine(QHelpEngineCore *helpEngine, QObject *parent = nullptr); + ~QHelpSearchEngine(); + + QHelpSearchQueryWidget* queryWidget(); + QHelpSearchResultWidget* resultWidget(); + +#if QT_DEPRECATED_SINCE(5, 9) + typedef QPair SearchHit; + + QT_DEPRECATED int hitsCount() const; + QT_DEPRECATED int hitCount() const; + QT_DEPRECATED QList hits(int start, int end) const; + QT_DEPRECATED QList query() const; +#endif + + int searchResultCount() const; + QList searchResults(int start, int end) const; + QString searchInput() const; + +public Q_SLOTS: + void reindexDocumentation(); + void cancelIndexing(); + +#if QT_DEPRECATED_SINCE(5, 9) + QT_DEPRECATED void search(const QList &queryList); +#endif + + void search(const QString &searchInput); + void cancelSearching(); + + void scheduleIndexDocumentation(); + +Q_SIGNALS: + void indexingStarted(); + void indexingFinished(); + + void searchingStarted(); + void searchingFinished(int searchResultCount); + +private Q_SLOTS: + void indexDocumentation(); + +private: + QHelpSearchEnginePrivate *d; +}; + +QT_END_NAMESPACE + +#endif // QHELPSEARCHENGINE_H diff --git a/src/assistant/help/qhelpsearchindexreader.cpp b/src/assistant/help/qhelpsearchindexreader.cpp new file mode 100644 index 0000000..6a67f75 --- /dev/null +++ b/src/assistant/help/qhelpsearchindexreader.cpp @@ -0,0 +1,53 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpsearchindexreader_p.h" + +QT_BEGIN_NAMESPACE + +namespace fulltextsearch { + +QHelpSearchIndexReader::~QHelpSearchIndexReader() +{ + cancelSearching(); + wait(); +} + +void QHelpSearchIndexReader::cancelSearching() +{ + QMutexLocker lock(&m_mutex); + m_cancel = true; +} + +void QHelpSearchIndexReader::search(const QString &collectionFile, const QString &indexFilesFolder, + const QString &searchInput, bool usesFilterEngine) +{ + wait(); + + m_searchResults.clear(); + m_cancel = false; + m_searchInput = searchInput; + m_collectionFile = collectionFile; + m_indexFilesFolder = indexFilesFolder; + m_usesFilterEngine = usesFilterEngine; + + start(QThread::NormalPriority); +} + +int QHelpSearchIndexReader::searchResultCount() const +{ + QMutexLocker lock(&m_mutex); + return m_searchResults.size(); +} + +QList QHelpSearchIndexReader::searchResults(int start, + int end) const +{ + QMutexLocker lock(&m_mutex); + return m_searchResults.mid(start, end - start); +} + + +} // namespace fulltextsearch + +QT_END_NAMESPACE diff --git a/src/assistant/help/qhelpsearchindexreader_default.cpp b/src/assistant/help/qhelpsearchindexreader_default.cpp new file mode 100644 index 0000000..67fd369 --- /dev/null +++ b/src/assistant/help/qhelpsearchindexreader_default.cpp @@ -0,0 +1,251 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpenginecore.h" +#include "qhelpfilterengine.h" +#include "qhelpsearchindexreader_default_p.h" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +namespace fulltextsearch { +namespace qt { + +void Reader::setIndexPath(const QString &path) +{ + m_indexPath = path; + m_namespaceAttributes.clear(); + m_filterEngineNamespaceList.clear(); + m_useFilterEngine = false; +} + +void Reader::addNamespaceAttributes(const QString &namespaceName, const QStringList &attributes) +{ + m_namespaceAttributes.insert(namespaceName, attributes); +} + +void Reader::setFilterEngineNamespaceList(const QStringList &namespaceList) +{ + m_useFilterEngine = true; + m_filterEngineNamespaceList = namespaceList; +} + +static QString namespacePlaceholders(const QMultiMap &namespaces) +{ + QString placeholders; + const auto &namespaceList = namespaces.uniqueKeys(); + bool firstNS = true; + for (const QString &ns : namespaceList) { + if (firstNS) + firstNS = false; + else + placeholders += QLatin1String(" OR "); + placeholders += QLatin1String("(namespace = ?"); + + const QList &attributeSets = namespaces.values(ns); + bool firstAS = true; + for (const QStringList &attributeSet : attributeSets) { + if (!attributeSet.isEmpty()) { + if (firstAS) { + firstAS = false; + placeholders += QLatin1String(" AND ("); + } else { + placeholders += QLatin1String(" OR "); + } + placeholders += QLatin1String("attributes = ?"); + } + } + if (!firstAS) + placeholders += QLatin1Char(')'); // close "AND (" + placeholders += QLatin1Char(')'); + } + return placeholders; +} + +static void bindNamespacesAndAttributes(QSqlQuery *query, const QMultiMap &namespaces) +{ + const auto &namespaceList = namespaces.uniqueKeys(); + for (const QString &ns : namespaceList) { + query->addBindValue(ns); + + const QList &attributeSets = namespaces.values(ns); + for (const QStringList &attributeSet : attributeSets) { + if (!attributeSet.isEmpty()) + query->addBindValue(attributeSet.join(QLatin1Char('|'))); + } + } +} + +static QString namespacePlaceholders(const QStringList &namespaceList) +{ + QString placeholders; + bool firstNS = true; + for (int i = namespaceList.size(); i; --i) { + if (firstNS) + firstNS = false; + else + placeholders += QLatin1String(" OR "); + placeholders += QLatin1String("namespace = ?"); + } + return placeholders; +} + +static void bindNamespacesAndAttributes(QSqlQuery *query, const QStringList &namespaceList) +{ + for (const QString &ns : namespaceList) + query->addBindValue(ns); +} + +QList Reader::queryTable(const QSqlDatabase &db, + const QString &tableName, + const QString &searchInput) const +{ + const QString nsPlaceholders = m_useFilterEngine + ? namespacePlaceholders(m_filterEngineNamespaceList) + : namespacePlaceholders(m_namespaceAttributes); + QSqlQuery query(db); + query.prepare(QLatin1String("SELECT url, title, snippet(") + tableName + + QLatin1String(", -1, '', '', '...', '10') FROM ") + tableName + + QLatin1String(" WHERE (") + nsPlaceholders + + QLatin1String(") AND ") + tableName + + QLatin1String(" MATCH ? ORDER BY rank")); + m_useFilterEngine + ? bindNamespacesAndAttributes(&query, m_filterEngineNamespaceList) + : bindNamespacesAndAttributes(&query, m_namespaceAttributes); + query.addBindValue(searchInput); + query.exec(); + + QList results; + + while (query.next()) { + const QString &url = query.value(QLatin1String("url")).toString(); + const QString &title = query.value(QLatin1String("title")).toString(); + const QString &snippet = query.value(2).toString(); + results.append(QHelpSearchResult(url, title, snippet)); + } + + return results; +} + +void Reader::searchInDB(const QString &searchInput) +{ + const QString &uniqueId = QHelpGlobal::uniquifyConnectionName(QLatin1String("QHelpReader"), this); + { + QSqlDatabase db = QSqlDatabase::addDatabase(QLatin1String("QSQLITE"), uniqueId); + db.setConnectOptions(QLatin1String("QSQLITE_OPEN_READONLY")); + db.setDatabaseName(m_indexPath + QLatin1String("/fts")); + + if (db.open()) { + const QList titleResults = queryTable(db, + QLatin1String("titles"), searchInput); + const QList contentResults = queryTable(db, + QLatin1String("contents"), searchInput); + + // merge results form title and contents searches + m_searchResults = QList(); + + QSet urls; + + for (const QHelpSearchResult &result : titleResults) { + const QUrl &url = result.url(); + if (!urls.contains(url)) { + urls.insert(url); + m_searchResults.append(result); + } + } + + for (const QHelpSearchResult &result : contentResults) { + const QUrl &url = result.url(); + if (!urls.contains(url)) { + urls.insert(url); + m_searchResults.append(result); + } + } + } + } + QSqlDatabase::removeDatabase(uniqueId); +} + +QList Reader::searchResults() const +{ + return m_searchResults; +} + +static bool attributesMatchFilter(const QStringList &attributes, + const QStringList &filter) +{ + for (const QString &attribute : filter) { + if (!attributes.contains(attribute, Qt::CaseInsensitive)) + return false; + } + + return true; +} + +void QHelpSearchIndexReaderDefault::run() +{ + QMutexLocker lock(&m_mutex); + + if (m_cancel) + return; + + const QString searchInput = m_searchInput; + const QString collectionFile = m_collectionFile; + const QString indexPath = m_indexFilesFolder; + const bool usesFilterEngine = m_usesFilterEngine; + + lock.unlock(); + + QHelpEngineCore engine(collectionFile, nullptr); + if (!engine.setupData()) + return; + + emit searchingStarted(); + + // setup the reader + m_reader.setIndexPath(indexPath); + + if (usesFilterEngine) { + m_reader.setFilterEngineNamespaceList( + engine.filterEngine()->namespacesForFilter( + engine.filterEngine()->activeFilter())); + } else { + const QStringList ®isteredDocs = engine.registeredDocumentations(); + const QStringList ¤tFilter = engine.filterAttributes(engine.currentFilter()); + + for (const QString &namespaceName : registeredDocs) { + const QList &attributeSets = + engine.filterAttributeSets(namespaceName); + + for (const QStringList &attributes : attributeSets) { + if (attributesMatchFilter(attributes, currentFilter)) { + m_reader.addNamespaceAttributes(namespaceName, attributes); + } + } + } + } + + lock.relock(); + if (m_cancel) { + emit searchingFinished(0); // TODO: check this, speed issue while locking??? + return; + } + lock.unlock(); + + m_searchResults.clear(); + m_reader.searchInDB(searchInput); // TODO: should this be interruptible as well ??? + + lock.relock(); + m_searchResults = m_reader.searchResults(); + lock.unlock(); + + emit searchingFinished(m_searchResults.size()); +} + +} // namespace std +} // namespace fulltextsearch + +QT_END_NAMESPACE diff --git a/src/assistant/help/qhelpsearchindexreader_default_p.h b/src/assistant/help/qhelpsearchindexreader_default_p.h new file mode 100644 index 0000000..b91b8be --- /dev/null +++ b/src/assistant/help/qhelpsearchindexreader_default_p.h @@ -0,0 +1,66 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPSEARCHINDEXREADERDEFAULT_H +#define QHELPSEARCHINDEXREADERDEFAULT_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of the help generator tools. This header file may change from version +// to version without notice, or even be removed. +// +// We mean it. +// + +#include "qhelpsearchindexreader_p.h" + +QT_FORWARD_DECLARE_CLASS(QSqlDatabase) + +QT_BEGIN_NAMESPACE + +namespace fulltextsearch { +namespace qt { + +class Reader +{ +public: + void setIndexPath(const QString &path); + void addNamespaceAttributes(const QString &namespaceName, const QStringList &attributes); + void setFilterEngineNamespaceList(const QStringList &namespaceList); + + void searchInDB(const QString &term); + QList searchResults() const; + +private: + QList queryTable(const QSqlDatabase &db, + const QString &tableName, + const QString &searchInput) const; + + QMultiMap m_namespaceAttributes; + QStringList m_filterEngineNamespaceList; + QList m_searchResults; + QString m_indexPath; + bool m_useFilterEngine = false; +}; + + +class QHelpSearchIndexReaderDefault : public QHelpSearchIndexReader +{ + Q_OBJECT + +private: + void run() override; + +private: + Reader m_reader; +}; + +} // namespace std +} // namespace fulltextsearch + +QT_END_NAMESPACE + +#endif // QHELPSEARCHINDEXREADERDEFAULT_H diff --git a/src/assistant/help/qhelpsearchindexreader_p.h b/src/assistant/help/qhelpsearchindexreader_p.h new file mode 100644 index 0000000..fb098e7 --- /dev/null +++ b/src/assistant/help/qhelpsearchindexreader_p.h @@ -0,0 +1,66 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPSEARCHINDEXREADER_H +#define QHELPSEARCHINDEXREADER_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of the help generator tools. This header file may change from version +// to version without notice, or even be removed. +// +// We mean it. +// + +#include "qhelpsearchengine.h" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QHelpEngineCore; + +namespace fulltextsearch { + +class QHelpSearchIndexReader : public QThread +{ + Q_OBJECT + +public: + ~QHelpSearchIndexReader() override; + + void cancelSearching(); + void search(const QString &collectionFile, + const QString &indexFilesFolder, + const QString &searchInput, + bool usesFilterEngine = false); + int searchResultCount() const; + QList searchResults(int start, int end) const; + +signals: + void searchingStarted(); + void searchingFinished(int searchResultCount); + +protected: + mutable QMutex m_mutex; + QList m_searchResults; + bool m_cancel = false; + QString m_collectionFile; + QString m_searchInput; + QString m_indexFilesFolder; + bool m_usesFilterEngine = false; + +private: + void run() override = 0; +}; + +} // namespace fulltextsearch + +QT_END_NAMESPACE + +#endif // QHELPSEARCHINDEXREADER_H diff --git a/src/assistant/help/qhelpsearchindexwriter_default.cpp b/src/assistant/help/qhelpsearchindexwriter_default.cpp new file mode 100644 index 0000000..70a6ccd --- /dev/null +++ b/src/assistant/help/qhelpsearchindexwriter_default.cpp @@ -0,0 +1,507 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpsearchindexwriter_default_p.h" +#include "qhelp_global.h" +#include "qhelpenginecore.h" +#include "qhelpdbreader_p.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +namespace fulltextsearch { +namespace qt { + +const char FTS_DB_NAME[] = "fts"; + +Writer::Writer(const QString &path) + : m_dbDir(path) +{ + clearLegacyIndex(); + QDir().mkpath(m_dbDir); + m_uniqueId = QHelpGlobal::uniquifyConnectionName(QLatin1String("QHelpWriter"), this); + m_db = new QSqlDatabase(); + *m_db = QSqlDatabase::addDatabase(QLatin1String("QSQLITE"), m_uniqueId); + const QString dbPath = m_dbDir + QLatin1Char('/') + QLatin1String(FTS_DB_NAME); + m_db->setDatabaseName(dbPath); + if (!m_db->open()) { + const QString &error = QHelpSearchIndexWriter::tr("Cannot open database \"%1\" using connection \"%2\": %3") + .arg(dbPath, m_uniqueId, m_db->lastError().text()); + qWarning("%s", qUtf8Printable(error)); + delete m_db; + m_db = nullptr; + QSqlDatabase::removeDatabase(m_uniqueId); + m_uniqueId = QString(); + } else { + startTransaction(); + } +} + +bool Writer::tryInit(bool reindex) +{ + if (!m_db) + return true; + + QSqlQuery query(*m_db); + // HACK: we try to perform any modifying command just to check if + // we don't get SQLITE_BUSY code (SQLITE_BUSY is defined to 5 in sqlite driver) + if (!query.exec(QLatin1String("CREATE TABLE foo ();"))) { + if (query.lastError().nativeErrorCode() == QLatin1String("5")) // db is locked + return false; + } + // HACK: clear what we have created + query.exec(QLatin1String("DROP TABLE foo;")); + + init(reindex); + return true; +} + +bool Writer::hasDB() +{ + if (!m_db) + return false; + + QSqlQuery query(*m_db); + + query.prepare(QLatin1String("SELECT id FROM info LIMIT 1")); + query.exec(); + + return query.next(); +} + +void Writer::clearLegacyIndex() +{ + // Clear old legacy clucene index. + // More important in case of Creator, since + // the index folder is common for all Creator versions + QDir dir(m_dbDir); + if (!dir.exists()) + return; + + const QStringList &list = dir.entryList(QDir::Files | QDir::Hidden); + if (!list.contains(QLatin1String(FTS_DB_NAME))) { + for (const QString &item : list) + dir.remove(item); + } +} + +void Writer::init(bool reindex) +{ + if (!m_db) + return; + + QSqlQuery query(*m_db); + + if (reindex && hasDB()) { + m_needOptimize = true; + + query.exec(QLatin1String("DROP TABLE titles;")); + query.exec(QLatin1String("DROP TABLE contents;")); + query.exec(QLatin1String("DROP TABLE info;")); + } + + query.exec(QLatin1String("CREATE TABLE info (id INTEGER PRIMARY KEY, namespace, attributes, url, title, data);")); + + query.exec(QLatin1String("CREATE VIRTUAL TABLE titles USING fts5(" + "namespace UNINDEXED, attributes UNINDEXED, " + "url UNINDEXED, title, " + "tokenize = 'porter unicode61', content = 'info', content_rowid='id');")); + query.exec(QLatin1String("CREATE TRIGGER titles_insert AFTER INSERT ON info BEGIN " + "INSERT INTO titles(rowid, namespace, attributes, url, title) " + "VALUES(new.id, new.namespace, new.attributes, new.url, new.title); " + "END;")); + query.exec(QLatin1String("CREATE TRIGGER titles_delete AFTER DELETE ON info BEGIN " + "INSERT INTO titles(titles, rowid, namespace, attributes, url, title) " + "VALUES('delete', old.id, old.namespace, old.attributes, old.url, old.title); " + "END;")); + query.exec(QLatin1String("CREATE TRIGGER titles_update AFTER UPDATE ON info BEGIN " + "INSERT INTO titles(titles, rowid, namespace, attributes, url, title) " + "VALUES('delete', old.id, old.namespace, old.attributes, old.url, old.title); " + "INSERT INTO titles(rowid, namespace, attributes, url, title) " + "VALUES(new.id, new.namespace, new.attributes, new.url, new.title); " + "END;")); + + query.exec(QLatin1String("CREATE VIRTUAL TABLE contents USING fts5(" + "namespace UNINDEXED, attributes UNINDEXED, " + "url UNINDEXED, title, data, " + "tokenize = 'porter unicode61', content = 'info', content_rowid='id');")); + query.exec(QLatin1String("CREATE TRIGGER contents_insert AFTER INSERT ON info BEGIN " + "INSERT INTO contents(rowid, namespace, attributes, url, title, data) " + "VALUES(new.id, new.namespace, new.attributes, new.url, new.title, new.data); " + "END;")); + query.exec(QLatin1String("CREATE TRIGGER contents_delete AFTER DELETE ON info BEGIN " + "INSERT INTO contents(contents, rowid, namespace, attributes, url, title, data) " + "VALUES('delete', old.id, old.namespace, old.attributes, old.url, old.title, old.data); " + "END;")); + query.exec(QLatin1String("CREATE TRIGGER contents_update AFTER UPDATE ON info BEGIN " + "INSERT INTO contents(contents, rowid, namespace, attributes, url, title, data) " + "VALUES('delete', old.id, old.namespace, old.attributes, old.url, old.title, old.data); " + "INSERT INTO contents(rowid, namespace, attributes, url, title, data) " + "VALUES(new.id, new.namespace, new.attributes, new.url, new.title, new.data); " + "END;")); +} + +Writer::~Writer() +{ + if (m_db) { + m_db->close(); + delete m_db; + } + + if (!m_uniqueId.isEmpty()) + QSqlDatabase::removeDatabase(m_uniqueId); +} + +void Writer::flush() +{ + if (!m_db) + return; + + QSqlQuery query(*m_db); + + query.prepare(QLatin1String("INSERT INTO info (namespace, attributes, url, title, data) VALUES (?, ?, ?, ?, ?)")); + query.addBindValue(m_namespaces); + query.addBindValue(m_attributes); + query.addBindValue(m_urls); + query.addBindValue(m_titles); + query.addBindValue(m_contents); + query.execBatch(); + + m_namespaces = QVariantList(); + m_attributes = QVariantList(); + m_urls = QVariantList(); + m_titles = QVariantList(); + m_contents = QVariantList(); +} + +void Writer::removeNamespace(const QString &namespaceName) +{ + if (!m_db) + return; + + if (!hasNamespace(namespaceName)) + return; // no data to delete + + m_needOptimize = true; + + QSqlQuery query(*m_db); + + query.prepare(QLatin1String("DELETE FROM info WHERE namespace = ?")); + query.addBindValue(namespaceName); + query.exec(); +} + +bool Writer::hasNamespace(const QString &namespaceName) +{ + if (!m_db) + return false; + + QSqlQuery query(*m_db); + + query.prepare(QLatin1String("SELECT id FROM info WHERE namespace = ? LIMIT 1")); + query.addBindValue(namespaceName); + query.exec(); + + return query.next(); +} + +void Writer::insertDoc(const QString &namespaceName, + const QString &attributes, + const QString &url, + const QString &title, + const QString &contents) +{ + m_namespaces.append(namespaceName); + m_attributes.append(attributes); + m_urls.append(url); + m_titles.append(title); + m_contents.append(contents); +} + +void Writer::startTransaction() +{ + if (!m_db) + return; + + m_needOptimize = false; + if (m_db && m_db->driver()->hasFeature(QSqlDriver::Transactions)) + m_db->transaction(); +} + +void Writer::endTransaction() +{ + if (!m_db) + return; + + QSqlQuery query(*m_db); + + if (m_needOptimize) { + query.exec(QLatin1String("INSERT INTO titles(titles) VALUES('rebuild')")); + query.exec(QLatin1String("INSERT INTO contents(contents) VALUES('rebuild')")); + } + + if (m_db && m_db->driver()->hasFeature(QSqlDriver::Transactions)) + m_db->commit(); + + if (m_needOptimize) + query.exec(QLatin1String("VACUUM")); +} + +QHelpSearchIndexWriter::QHelpSearchIndexWriter() + : QThread() + , m_cancel(false) +{ +} + +QHelpSearchIndexWriter::~QHelpSearchIndexWriter() +{ + m_mutex.lock(); + this->m_cancel = true; + m_mutex.unlock(); + + wait(); +} + +void QHelpSearchIndexWriter::cancelIndexing() +{ + QMutexLocker lock(&m_mutex); + m_cancel = true; +} + +void QHelpSearchIndexWriter::updateIndex(const QString &collectionFile, + const QString &indexFilesFolder, + bool reindex) +{ + wait(); + QMutexLocker lock(&m_mutex); + + m_cancel = false; + m_reindex = reindex; + m_collectionFile = collectionFile; + m_indexFilesFolder = indexFilesFolder; + + lock.unlock(); + + start(QThread::LowestPriority); +} + +static const char IndexedNamespacesKey[] = "FTS5IndexedNamespaces"; + +static QMap readIndexMap(const QHelpEngineCore &engine) +{ + QMap indexMap; + QDataStream dataStream(engine.customValue( + QLatin1String(IndexedNamespacesKey)).toByteArray()); + dataStream >> indexMap; + return indexMap; +} + +static bool writeIndexMap(QHelpEngineCore *engine, + const QMap &indexMap) +{ + QByteArray data; + + QDataStream dataStream(&data, QIODevice::ReadWrite); + dataStream << indexMap; + + return engine->setCustomValue( + QLatin1String(IndexedNamespacesKey), data); +} + +static bool clearIndexMap(QHelpEngineCore *engine) +{ + return engine->removeCustomValue(QLatin1String(IndexedNamespacesKey)); +} + +void QHelpSearchIndexWriter::run() +{ + QMutexLocker lock(&m_mutex); + + if (m_cancel) + return; + + const bool reindex(m_reindex); + const QString collectionFile(m_collectionFile); + const QString indexPath(m_indexFilesFolder); + + lock.unlock(); + + QHelpEngineCore engine(collectionFile, nullptr); + if (!engine.setupData()) + return; + + if (reindex) + clearIndexMap(&engine); + + emit indexingStarted(); + + Writer writer(indexPath); + + while (!writer.tryInit(reindex)) + sleep(1); + + const QStringList ®isteredDocs = engine.registeredDocumentations(); + QMap indexMap = readIndexMap(engine); + + if (!reindex) { + for (const QString &namespaceName : registeredDocs) { + if (indexMap.contains(namespaceName)) { + const QString path = engine.documentationFileName(namespaceName); + if (indexMap.value(namespaceName) < QFileInfo(path).lastModified()) { + // Remove some outdated indexed stuff + indexMap.remove(namespaceName); + writer.removeNamespace(namespaceName); + } else if (!writer.hasNamespace(namespaceName)) { + // No data in fts db for namespace. + // The namespace could have been removed from fts db + // or the whole fts db have been removed + // without removing it from indexMap. + indexMap.remove(namespaceName); + } + } else { + // Needed in case namespaceName was removed from indexMap + // without removing it from fts db. + // May happen when e.g. qch file was removed manually + // without removing fts db. + writer.removeNamespace(namespaceName); + } + // TODO: we may also detect if there are any other data + // and remove it + } + } else { + indexMap.clear(); + } + + for (const QString &namespaceName : indexMap.keys()) { + if (!registeredDocs.contains(namespaceName)) { + indexMap.remove(namespaceName); + writer.removeNamespace(namespaceName); + } + } + + for (const QString &namespaceName : registeredDocs) { + lock.relock(); + if (m_cancel) { + // store what we have done so far + writeIndexMap(&engine, indexMap); + writer.endTransaction(); + emit indexingFinished(); + return; + } + lock.unlock(); + + // if indexed, continue + if (indexMap.contains(namespaceName)) + continue; + + const QString fileName = engine.documentationFileName(namespaceName); + QHelpDBReader reader(fileName, QHelpGlobal::uniquifyConnectionName( + fileName, this), nullptr); + if (!reader.init()) + continue; + + const QString virtualFolder = reader.virtualFolder(); + + const QList &attributeSets = + engine.filterAttributeSets(namespaceName); + + for (const QStringList &attributes : attributeSets) { + const QString &attributesString = attributes.join(QLatin1Char('|')); + + const QMultiMap htmlFiles = + reader.filesData(attributes, QLatin1String("html")); + const QMultiMap htmFiles = + reader.filesData(attributes, QLatin1String("htm")); + const QMultiMap txtFiles = + reader.filesData(attributes, QLatin1String("txt")); + + QMultiMap files = htmlFiles; + files.unite(htmFiles); + files.unite(txtFiles); + + for (auto it = files.cbegin(), end = files.cend(); it != end ; ++it) { + lock.relock(); + if (m_cancel) { + // store what we have done so far + writeIndexMap(&engine, indexMap); + writer.endTransaction(); + emit indexingFinished(); + return; + } + lock.unlock(); + + const QString &file = it.key(); + const QByteArray &data = it.value(); + + if (data.isEmpty()) + continue; + + QUrl url; + url.setScheme(QLatin1String("qthelp")); + url.setAuthority(namespaceName); + url.setPath(QLatin1Char('/') + virtualFolder + QLatin1Char('/') + file); + + if (url.hasFragment()) + url.setFragment(QString()); + + const QString &fullFileName = url.toString(); + if (!fullFileName.endsWith(QLatin1String(".html")) + && !fullFileName.endsWith(QLatin1String(".htm")) + && !fullFileName.endsWith(QLatin1String(".txt"))) { + continue; + } + + QTextStream s(data); + auto encoding = QStringDecoder::encodingForHtml(data); + if (encoding) + s.setEncoding(*encoding); + + const QString &text = s.readAll(); + if (text.isEmpty()) + continue; + + QString title; + QString contents; + if (fullFileName.endsWith(QLatin1String(".txt"))) { + title = fullFileName.mid(fullFileName.lastIndexOf(QLatin1Char('/')) + 1); + contents = text.toHtmlEscaped(); + } else { + QTextDocument doc; + doc.setHtml(text); + + title = doc.metaInformation(QTextDocument::DocumentTitle).toHtmlEscaped(); + contents = doc.toPlainText().toHtmlEscaped(); + } + + writer.insertDoc(namespaceName, attributesString, fullFileName, title, contents); + } + } + writer.flush(); + const QString &path = engine.documentationFileName(namespaceName); + indexMap.insert(namespaceName, QFileInfo(path).lastModified()); + } + + writeIndexMap(&engine, indexMap); + + writer.endTransaction(); + emit indexingFinished(); +} + +} // namespace std +} // namespace fulltextsearch + +QT_END_NAMESPACE diff --git a/src/assistant/help/qhelpsearchindexwriter_default_p.h b/src/assistant/help/qhelpsearchindexwriter_default_p.h new file mode 100644 index 0000000..0278d72 --- /dev/null +++ b/src/assistant/help/qhelpsearchindexwriter_default_p.h @@ -0,0 +1,97 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPSEARCHINDEXWRITERDEFAULT_H +#define QHELPSEARCHINDEXWRITERDEFAULT_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of the help generator tools. This header file may change from version +// to version without notice, or even be removed. +// +// We mean it. +// + +#include +#include + +QT_FORWARD_DECLARE_CLASS(QSqlDatabase) + +QT_BEGIN_NAMESPACE + +namespace fulltextsearch { +namespace qt { + +class Writer +{ +public: + Writer(const QString &path); + ~Writer(); + + bool tryInit(bool reindex); + void flush(); + + void removeNamespace(const QString &namespaceName); + bool hasNamespace(const QString &namespaceName); + void insertDoc(const QString &namespaceName, + const QString &attributes, + const QString &url, + const QString &title, + const QString &contents); + void startTransaction(); + void endTransaction(); +private: + void init(bool reindex); + bool hasDB(); + void clearLegacyIndex(); + + const QString m_dbDir; + QString m_uniqueId; + + bool m_needOptimize = false; + QSqlDatabase *m_db = nullptr; + QVariantList m_namespaces; + QVariantList m_attributes; + QVariantList m_urls; + QVariantList m_titles; + QVariantList m_contents; +}; + + +class QHelpSearchIndexWriter : public QThread +{ + Q_OBJECT + +public: + QHelpSearchIndexWriter(); + ~QHelpSearchIndexWriter() override; + + void cancelIndexing(); + void updateIndex(const QString &collectionFile, + const QString &indexFilesFolder, bool reindex); + +signals: + void indexingStarted(); + void indexingFinished(); + +private: + void run() override; + +private: + QMutex m_mutex; + + bool m_cancel; + bool m_reindex; + QString m_collectionFile; + QString m_indexFilesFolder; +}; + +} // namespace std +} // namespace fulltextsearch + +QT_END_NAMESPACE + +#endif // QHELPSEARCHINDEXWRITERDEFAULT_H diff --git a/src/assistant/help/qhelpsearchquerywidget.cpp b/src/assistant/help/qhelpsearchquerywidget.cpp new file mode 100644 index 0000000..4602d47 --- /dev/null +++ b/src/assistant/help/qhelpsearchquerywidget.cpp @@ -0,0 +1,357 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpsearchquerywidget.h" + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QHelpSearchQueryWidgetPrivate : public QObject +{ + Q_OBJECT + +private: + struct QueryHistory { + explicit QueryHistory() : curQuery(-1) {} + QStringList queries; + int curQuery; + }; + + class CompleterModel : public QAbstractListModel + { + public: + explicit CompleterModel(QObject *parent) + : QAbstractListModel(parent) {} + + int rowCount(const QModelIndex &parent = QModelIndex()) const override + { + return parent.isValid() ? 0 : termList.size(); + } + + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override + { + if (!index.isValid() || index.row() >= termList.size()|| + (role != Qt::EditRole && role != Qt::DisplayRole)) + return QVariant(); + return termList.at(index.row()); + } + + void addTerm(const QString &term) + { + if (!termList.contains(term)) { + beginResetModel(); + termList.append(term); + endResetModel(); + } + } + + private: + QStringList termList; + }; + + QHelpSearchQueryWidgetPrivate() + : QObject() + , m_searchCompleter(new CompleterModel(this), this) + { + } + + ~QHelpSearchQueryWidgetPrivate() override + { + // nothing todo + } + + void retranslate() + { + m_searchLabel->setText(QHelpSearchQueryWidget::tr("Search for:")); + m_searchButton->setText(QHelpSearchQueryWidget::tr("Search")); +#if QT_CONFIG(tooltip) + m_prevQueryButton->setToolTip(QHelpSearchQueryWidget::tr("Previous search")); + m_nextQueryButton->setToolTip(QHelpSearchQueryWidget::tr("Next search")); +#endif + } + + void saveQuery(const QString &query) + { + // We only add the query to the list if it is different from the last one. + if (!m_queries.queries.isEmpty() && m_queries.queries.last() == query) + return; + + m_queries.queries.append(query); + static_cast(m_searchCompleter.model())->addTerm(query); + } + + void nextOrPrevQuery(int maxOrMinIndex, int addend, QToolButton *thisButton, + QToolButton *otherButton) + { + m_lineEdit->clear(); + + // Otherwise, the respective button would be disabled. + Q_ASSERT(m_queries.curQuery != maxOrMinIndex); + + m_queries.curQuery = qBound(0, m_queries.curQuery + addend, m_queries.queries.size() - 1); + const QString &query = m_queries.queries.at(m_queries.curQuery); + m_lineEdit->setText(query); + + if (m_queries.curQuery == maxOrMinIndex) + thisButton->setEnabled(false); + otherButton->setEnabled(true); + } + + void enableOrDisableToolButtons() + { + m_prevQueryButton->setEnabled(m_queries.curQuery > 0); + m_nextQueryButton->setEnabled(m_queries.curQuery + < m_queries.queries.size() - 1); + } + +private slots: + bool eventFilter(QObject *ob, QEvent *event) override + { + if (event->type() == QEvent::KeyPress) { + QKeyEvent *const keyEvent = static_cast(event); + if (keyEvent->key() == Qt::Key_Down) { + if (m_queries.curQuery + 1 < m_queries.queries.size()) + nextQuery(); + return true; + } + if (keyEvent->key() == Qt::Key_Up) { + if (m_queries.curQuery > 0) + prevQuery(); + return true; + } + + } + return QObject::eventFilter(ob, event); + } + + void searchRequested() + { + saveQuery(m_lineEdit->text()); + m_queries.curQuery = m_queries.queries.size() - 1; + if (m_queries.curQuery > 0) + m_prevQueryButton->setEnabled(true); + m_nextQueryButton->setEnabled(false); + } + + void nextQuery() + { + nextOrPrevQuery(m_queries.queries.size() - 1, 1, m_nextQueryButton, + m_prevQueryButton); + } + + void prevQuery() + { + nextOrPrevQuery(0, -1, m_prevQueryButton, m_nextQueryButton); + } + +private: + friend class QHelpSearchQueryWidget; + + QLabel *m_searchLabel = nullptr; + QPushButton *m_searchButton = nullptr; + QLineEdit *m_lineEdit = nullptr; + QToolButton *m_nextQueryButton = nullptr; + QToolButton *m_prevQueryButton = nullptr; + QueryHistory m_queries; + QCompleter m_searchCompleter; + bool m_compactMode = false; +}; + +/*! + \class QHelpSearchQueryWidget + \since 4.4 + \inmodule QtHelp + \brief The QHelpSearchQueryWidget class provides a simple line edit or + an advanced widget to enable the user to input a search term in a + standardized input mask. +*/ + +/*! + \fn void QHelpSearchQueryWidget::search() + + This signal is emitted when a the user has the search button invoked. + After receiving the signal you can ask the QHelpSearchQueryWidget for the + search input that you may pass to the QHelpSearchEngine::search() function. +*/ + +/*! + Constructs a new search query widget with the given \a parent. +*/ +QHelpSearchQueryWidget::QHelpSearchQueryWidget(QWidget *parent) + : QWidget(parent) +{ + d = new QHelpSearchQueryWidgetPrivate(); + + QVBoxLayout *vLayout = new QVBoxLayout(this); + vLayout->setContentsMargins(QMargins()); + + QHBoxLayout* hBoxLayout = new QHBoxLayout(); + d->m_searchLabel = new QLabel(this); + d->m_lineEdit = new QLineEdit(this); + d->m_lineEdit->setClearButtonEnabled(true); + d->m_lineEdit->setCompleter(&d->m_searchCompleter); + d->m_lineEdit->installEventFilter(d); + d->m_prevQueryButton = new QToolButton(this); + d->m_prevQueryButton->setArrowType(Qt::LeftArrow); + d->m_prevQueryButton->setEnabled(false); + d->m_nextQueryButton = new QToolButton(this); + d->m_nextQueryButton->setArrowType(Qt::RightArrow); + d->m_nextQueryButton->setEnabled(false); + d->m_searchButton = new QPushButton(this); + hBoxLayout->addWidget(d->m_searchLabel); + hBoxLayout->addWidget(d->m_lineEdit); + hBoxLayout->addWidget(d->m_prevQueryButton); + hBoxLayout->addWidget(d->m_nextQueryButton); + hBoxLayout->addWidget(d->m_searchButton); + + vLayout->addLayout(hBoxLayout); + + connect(d->m_prevQueryButton, &QAbstractButton::clicked, + d, &QHelpSearchQueryWidgetPrivate::prevQuery); + connect(d->m_nextQueryButton, &QAbstractButton::clicked, + d, &QHelpSearchQueryWidgetPrivate::nextQuery); + connect(d->m_searchButton, &QAbstractButton::clicked, + this, &QHelpSearchQueryWidget::search); + connect(d->m_lineEdit, &QLineEdit::returnPressed, + this, &QHelpSearchQueryWidget::search); + + d->retranslate(); + connect(this, &QHelpSearchQueryWidget::search, + d, &QHelpSearchQueryWidgetPrivate::searchRequested); + setCompactMode(true); +} + +/*! + Destroys the search query widget. +*/ +QHelpSearchQueryWidget::~QHelpSearchQueryWidget() +{ + delete d; +} + +/*! + Expands the search query widget so that the extended search fields are shown. +*/ +void QHelpSearchQueryWidget::expandExtendedSearch() +{ + // TODO: no extended search anymore, deprecate it? +} + +/*! + Collapses the search query widget so that only the default search field is + shown. +*/ +void QHelpSearchQueryWidget::collapseExtendedSearch() +{ + // TODO: no extended search anymore, deprecate it? +} + +#if QT_DEPRECATED_SINCE(5, 9) +/*! + \deprecated + + Use searchInput() instead. +*/ +QList QHelpSearchQueryWidget::query() const +{ + return QList() << QHelpSearchQuery(QHelpSearchQuery::DEFAULT, + searchInput().split(QChar::Space, Qt::SkipEmptyParts)); +} + +/*! + \deprecated + + Use setSearchInput() instead. +*/ +void QHelpSearchQueryWidget::setQuery(const QList &queryList) +{ + if (queryList.isEmpty()) + return; + + setSearchInput(queryList.first().wordList.join(QChar::Space)); +} +#endif // QT_DEPRECATED_SINCE(5, 9) + +/*! + \since 5.9 + + Returns a search phrase to use in combination with the + QHelpSearchEngine::search(const QString &searchInput) function. +*/ +QString QHelpSearchQueryWidget::searchInput() const +{ + if (d->m_queries.queries.isEmpty()) + return QString(); + return d->m_queries.queries.last(); +} + +/*! + \since 5.9 + + Sets the QHelpSearchQueryWidget input field to the value specified by + \a searchInput. + + \note The QHelpSearchEngine::search(const QString &searchInput) function has + to be called to perform the actual search. +*/ +void QHelpSearchQueryWidget::setSearchInput(const QString &searchInput) +{ + d->m_lineEdit->clear(); + + d->m_lineEdit->setText(searchInput); + + d->searchRequested(); +} + +bool QHelpSearchQueryWidget::isCompactMode() const +{ + return d->m_compactMode; +} + +void QHelpSearchQueryWidget::setCompactMode(bool on) +{ + if (d->m_compactMode != on) { + d->m_compactMode = on; + d->m_prevQueryButton->setVisible(!on); + d->m_nextQueryButton->setVisible(!on); + d->m_searchLabel->setVisible(!on); + } +} + +/*! + \reimp +*/ +void QHelpSearchQueryWidget::focusInEvent(QFocusEvent *focusEvent) +{ + if (focusEvent->reason() != Qt::MouseFocusReason) { + d->m_lineEdit->selectAll(); + d->m_lineEdit->setFocus(); + } +} + +/*! + \reimp +*/ +void QHelpSearchQueryWidget::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + d->retranslate(); + else + QWidget::changeEvent(event); +} + +QT_END_NAMESPACE + +#include "qhelpsearchquerywidget.moc" diff --git a/src/assistant/help/qhelpsearchquerywidget.h b/src/assistant/help/qhelpsearchquerywidget.h new file mode 100644 index 0000000..a4dbc57 --- /dev/null +++ b/src/assistant/help/qhelpsearchquerywidget.h @@ -0,0 +1,57 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPSEARCHQUERYWIDGET_H +#define QHELPSEARCHQUERYWIDGET_H + +#include +#include + +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + + +class QFocusEvent; +class QHelpSearchQueryWidgetPrivate; + +class QHELP_EXPORT QHelpSearchQueryWidget : public QWidget +{ + Q_OBJECT + +public: + explicit QHelpSearchQueryWidget(QWidget *parent = nullptr); + ~QHelpSearchQueryWidget() override; + + void expandExtendedSearch(); + void collapseExtendedSearch(); + +#if QT_DEPRECATED_SINCE(5, 9) + QT_DEPRECATED QList query() const; + QT_DEPRECATED void setQuery(const QList &queryList); +#endif + + QString searchInput() const; + void setSearchInput(const QString &searchInput); + + bool isCompactMode() const; + Q_SLOT void setCompactMode(bool on); + +Q_SIGNALS: + void search(); + +private: + void focusInEvent(QFocusEvent *focusEvent) override; + void changeEvent(QEvent *event) override; + +private: + QHelpSearchQueryWidgetPrivate *d; +}; + +QT_END_NAMESPACE + +#endif // QHELPSEARCHQUERYWIDGET_H diff --git a/src/assistant/help/qhelpsearchresultwidget.cpp b/src/assistant/help/qhelpsearchresultwidget.cpp new file mode 100644 index 0000000..246f8fe --- /dev/null +++ b/src/assistant/help/qhelpsearchresultwidget.cpp @@ -0,0 +1,312 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpsearchresultwidget.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QResultWidget : public QTextBrowser +{ + Q_OBJECT + Q_PROPERTY(QColor linkColor READ linkColor WRITE setLinkColor) + +public: + QResultWidget(QWidget *parent = nullptr) + : QTextBrowser(parent) + { + connect(this, &QTextBrowser::anchorClicked, + this, &QResultWidget::requestShowLink); + setContextMenuPolicy(Qt::NoContextMenu); + setLinkColor(palette().color(QPalette::Link)); + } + + QColor linkColor() const { return m_linkColor; } + void setLinkColor(const QColor &color) + { + m_linkColor = color; + const QString sheet = QString::fromLatin1("a { text-decoration: underline; color: %1 }").arg(m_linkColor.name()); + document()->setDefaultStyleSheet(sheet); + } + + void showResultPage(const QList &results, bool isIndexing) + { + QString htmlFile; + QTextStream str(&htmlFile); + str << "" << tr("Search Results") << ""; + + const int count = results.size(); + if (count != 0) { + if (isIndexing) { + str << "
" << tr("Note:") + << " " + << tr("The search results may not be complete since the " + "documentation is still being indexed.") + << "

"; + } + + for (const QHelpSearchResult &result : results) { + str << "
" + "
" << result.snippet() << "
"; + } + } else { + str << "


" + << tr("Your search did not match any documents.") + << "

"; + if (isIndexing) { + str << "

" + << tr("(The reason for this might be that the documentation " + "is still being indexed.)") << "

"; + } + } + + str << ""; + + setHtml(htmlFile); + } + +signals: + void requestShowLink(const QUrl &url); + +private slots: + void doSetSource(const QUrl & /*name*/, QTextDocument::ResourceType /*type*/) override {} + +private: + QColor m_linkColor; +}; + + +class QHelpSearchResultWidgetPrivate : public QObject +{ + Q_OBJECT + +private slots: + void showFirstResultPage() + { + if (!searchEngine.isNull()) + resultFirstToShow = 0; + updateHitRange(); + } + + void showLastResultPage() + { + if (!searchEngine.isNull()) + resultFirstToShow = (searchEngine->searchResultCount() - 1) / ResultsRange * ResultsRange; + updateHitRange(); + } + + void showPreviousResultPage() + { + if (!searchEngine.isNull()) { + resultFirstToShow -= ResultsRange; + if (resultFirstToShow < 0) + resultFirstToShow = 0; + } + updateHitRange(); + } + + void showNextResultPage() + { + if (!searchEngine.isNull() + && resultFirstToShow + ResultsRange < searchEngine->searchResultCount()) { + resultFirstToShow += ResultsRange; + } + updateHitRange(); + } + + void indexingStarted() + { + isIndexing = true; + } + + void indexingFinished() + { + isIndexing = false; + } + +private: + QHelpSearchResultWidgetPrivate(QHelpSearchEngine *engine) + : QObject() + , searchEngine(engine) + { + connect(searchEngine.data(), &QHelpSearchEngine::indexingStarted, + this, &QHelpSearchResultWidgetPrivate::indexingStarted); + connect(searchEngine.data(), &QHelpSearchEngine::indexingFinished, + this, &QHelpSearchResultWidgetPrivate::indexingFinished); + } + + ~QHelpSearchResultWidgetPrivate() + { + delete searchEngine; + } + + QToolButton* setupToolButton(const QString &iconPath) + { + QToolButton *button = new QToolButton(); + button->setEnabled(false); + button->setAutoRaise(true); + button->setIcon(QIcon(iconPath)); + button->setIconSize(QSize(12, 12)); + button->setMaximumSize(QSize(16, 16)); + + return button; + } + + void updateHitRange() + { + int last = 0; + int first = 0; + int count = 0; + + if (!searchEngine.isNull()) { + count = searchEngine->searchResultCount(); + if (count > 0) { + last = qMin(resultFirstToShow + ResultsRange, count); + first = resultFirstToShow + 1; + } + resultTextBrowser->showResultPage(searchEngine->searchResults(resultFirstToShow, + last), isIndexing); + } + + hitsLabel->setText(QHelpSearchResultWidget::tr("%1 - %2 of %n Hits", nullptr, count).arg(first).arg(last)); + firstResultPage->setEnabled(resultFirstToShow); + previousResultPage->setEnabled(resultFirstToShow); + lastResultPage->setEnabled(count - last); + nextResultPage->setEnabled(count - last); + } + +private: + friend class QHelpSearchResultWidget; + + QPointer searchEngine; + + QResultWidget *resultTextBrowser = nullptr; + + static const int ResultsRange = 20; + + QToolButton *firstResultPage = nullptr; + QToolButton *previousResultPage = nullptr; + QToolButton *nextResultPage = nullptr; + QToolButton *lastResultPage = nullptr; + QLabel *hitsLabel = nullptr; + int resultFirstToShow = 0; + bool isIndexing = false; +}; + +/*! + \class QHelpSearchResultWidget + \since 4.4 + \inmodule QtHelp + \brief The QHelpSearchResultWidget class provides a text browser to display + search results. +*/ + +/*! + \fn void QHelpSearchResultWidget::requestShowLink(const QUrl &link) + + This signal is emitted when a item is activated and its associated + \a link should be shown. +*/ + +QHelpSearchResultWidget::QHelpSearchResultWidget(QHelpSearchEngine *engine) + : QWidget(0) + , d(new QHelpSearchResultWidgetPrivate(engine)) +{ + QVBoxLayout *vLayout = new QVBoxLayout(this); + vLayout->setContentsMargins(QMargins()); + vLayout->setSpacing(0); + + QHBoxLayout *hBoxLayout = new QHBoxLayout(); +#ifndef Q_OS_MAC + hBoxLayout->setContentsMargins(QMargins()); + hBoxLayout->setSpacing(0); +#endif + hBoxLayout->addWidget(d->firstResultPage = d->setupToolButton( + QString::fromUtf8(":/qt-project.org/assistant/images/3leftarrow.png"))); + + hBoxLayout->addWidget(d->previousResultPage = d->setupToolButton( + QString::fromUtf8(":/qt-project.org/assistant/images/1leftarrow.png"))); + + d->hitsLabel = new QLabel(tr("0 - 0 of 0 Hits"), this); + hBoxLayout->addWidget(d->hitsLabel); + d->hitsLabel->setAlignment(Qt::AlignCenter); + d->hitsLabel->setMinimumSize(QSize(150, d->hitsLabel->height())); + + hBoxLayout->addWidget(d->nextResultPage = d->setupToolButton( + QString::fromUtf8(":/qt-project.org/assistant/images/1rightarrow.png"))); + + hBoxLayout->addWidget(d->lastResultPage = d->setupToolButton( + QString::fromUtf8(":/qt-project.org/assistant/images/3rightarrow.png"))); + + QSpacerItem *spacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + hBoxLayout->addItem(spacer); + + vLayout->addLayout(hBoxLayout); + + d->resultTextBrowser = new QResultWidget(this); + vLayout->addWidget(d->resultTextBrowser); + + connect(d->resultTextBrowser, &QResultWidget::requestShowLink, + this, &QHelpSearchResultWidget::requestShowLink); + + connect(d->nextResultPage, &QAbstractButton::clicked, + d, &QHelpSearchResultWidgetPrivate::showNextResultPage); + connect(d->lastResultPage, &QAbstractButton::clicked, + d, &QHelpSearchResultWidgetPrivate::showLastResultPage); + connect(d->firstResultPage, &QAbstractButton::clicked, + d, &QHelpSearchResultWidgetPrivate::showFirstResultPage); + connect(d->previousResultPage, &QAbstractButton::clicked, + d, &QHelpSearchResultWidgetPrivate::showPreviousResultPage); + + connect(engine, &QHelpSearchEngine::searchingFinished, + d, &QHelpSearchResultWidgetPrivate::showFirstResultPage); +} + +/*! \reimp +*/ +void QHelpSearchResultWidget::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::LanguageChange) + d->updateHitRange(); +} + +/*! + Destroys the search result widget. +*/ +QHelpSearchResultWidget::~QHelpSearchResultWidget() +{ + delete d; +} + +/*! + Returns a reference of the URL that the item at \a point owns, or an + empty URL if no item exists at that point. +*/ +QUrl QHelpSearchResultWidget::linkAt(const QPoint &point) +{ + if (d->resultTextBrowser) + return d->resultTextBrowser->anchorAt(point); + return QUrl(); +} + +QT_END_NAMESPACE + +#include "qhelpsearchresultwidget.moc" diff --git a/src/assistant/help/qhelpsearchresultwidget.h b/src/assistant/help/qhelpsearchresultwidget.h new file mode 100644 index 0000000..8e3bd58 --- /dev/null +++ b/src/assistant/help/qhelpsearchresultwidget.h @@ -0,0 +1,41 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPSEARCHRESULTWIDGET_H +#define QHELPSEARCHRESULTWIDGET_H + +#include +#include + +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class QHelpSearchResultWidgetPrivate; + +class QHELP_EXPORT QHelpSearchResultWidget : public QWidget +{ + Q_OBJECT + +public: + ~QHelpSearchResultWidget() override; + QUrl linkAt(const QPoint &point); + +Q_SIGNALS: + void requestShowLink(const QUrl &url); + +private: + friend class QHelpSearchEngine; + + QHelpSearchResultWidgetPrivate *d; + QHelpSearchResultWidget(QHelpSearchEngine *engine); + void changeEvent(QEvent *event) override; +}; + +QT_END_NAMESPACE + +#endif // QHELPSEARCHRESULTWIDGET_H diff --git a/src/assistant/help/qoptionswidget.cpp b/src/assistant/help/qoptionswidget.cpp new file mode 100644 index 0000000..01abbfd --- /dev/null +++ b/src/assistant/help/qoptionswidget.cpp @@ -0,0 +1,204 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "qoptionswidget_p.h" + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class ListWidgetDelegate : public QItemDelegate +{ +public: + ListWidgetDelegate(QWidget *w) : QItemDelegate(w), m_widget(w) {} + + static bool isSeparator(const QModelIndex &index) { + return index.data(Qt::AccessibleDescriptionRole).toString() == QLatin1String("separator"); + } + static void setSeparator(QListWidgetItem *item) { + item->setData(Qt::AccessibleDescriptionRole, QString::fromLatin1("separator")); + item->setFlags(item->flags() & ~(Qt::ItemIsSelectable|Qt::ItemIsEnabled)); + } + +protected: + void paint(QPainter *painter, + const QStyleOptionViewItem &option, + const QModelIndex &index) const override { + if (isSeparator(index)) { + QRect rect = option.rect; + if (const QAbstractItemView *view = qobject_cast(option.widget)) + rect.setWidth(view->viewport()->width()); + QStyleOption opt; + opt.rect = rect; + m_widget->style()->drawPrimitive(QStyle::PE_IndicatorToolBarSeparator, &opt, painter, m_widget); + } else { + QItemDelegate::paint(painter, option, index); + } + } + + QSize sizeHint(const QStyleOptionViewItem &option, + const QModelIndex &index) const override { + if (isSeparator(index)) { + int pm = m_widget->style()->pixelMetric(QStyle::PM_DefaultFrameWidth, nullptr, m_widget); + return QSize(pm, pm); + } + return QItemDelegate::sizeHint(option, index); + } +private: + QWidget *m_widget; +}; + +static QStringList subtract(const QStringList &minuend, const QStringList &subtrahend) +{ + QStringList result = minuend; + for (const QString &str : subtrahend) + result.removeOne(str); + return result; +} + +QOptionsWidget::QOptionsWidget(QWidget *parent) + : QWidget(parent) + , m_noOptionText(tr("No Option")) + , m_invalidOptionText(tr("Invalid Option")) +{ + m_listWidget = new QListWidget(this); + m_listWidget->setItemDelegate(new ListWidgetDelegate(m_listWidget)); + QVBoxLayout *layout = new QVBoxLayout(this); + layout->addWidget(m_listWidget); + layout->setContentsMargins(QMargins()); + + connect(m_listWidget, &QListWidget::itemChanged, this, &QOptionsWidget::itemChanged); +} + +void QOptionsWidget::clear() +{ + setOptions(QStringList(), QStringList()); +} + +void QOptionsWidget::setOptions(const QStringList &validOptions, + const QStringList &selectedOptions) +{ + m_listWidget->clear(); + m_optionToItem.clear(); + m_itemToOption.clear(); + + m_validOptions = validOptions; + m_validOptions.removeDuplicates(); + std::sort(m_validOptions.begin(), m_validOptions.end()); + + m_selectedOptions = selectedOptions; + m_selectedOptions.removeDuplicates(); + std::sort(m_selectedOptions.begin(), m_selectedOptions.end()); + + m_invalidOptions = subtract(m_selectedOptions, m_validOptions); + const QStringList validSelectedOptions = subtract(m_selectedOptions, m_invalidOptions); + const QStringList validUnselectedOptions = subtract(m_validOptions, m_selectedOptions); + + for (const QString &option : validSelectedOptions) + appendItem(option, true, true); + + for (const QString &option : m_invalidOptions) + appendItem(option, false, true); + + if ((validSelectedOptions.size() + m_invalidOptions.size()) + && validUnselectedOptions.size()) { + appendSeparator(); + } + + for (const QString &option : validUnselectedOptions) { + appendItem(option, true, false); + if (option.isEmpty() && validUnselectedOptions.size() > 1) // special No Option item + appendSeparator(); + } +} + +QStringList QOptionsWidget::validOptions() const +{ + return m_validOptions; +} + +QStringList QOptionsWidget::selectedOptions() const +{ + return m_selectedOptions; +} + +void QOptionsWidget::setNoOptionText(const QString &text) +{ + if (m_noOptionText == text) + return; + + m_noOptionText = text; + + // update GUI + const auto itEnd = m_optionToItem.constEnd(); + for (auto it = m_optionToItem.constBegin(); it != itEnd; ++it) { + const QString optionName = it.key(); + if (optionName.isEmpty()) + it.value()->setText(optionText(optionName, m_validOptions.contains(optionName))); + } +} + +void QOptionsWidget::setInvalidOptionText(const QString &text) +{ + if (m_invalidOptionText == text) + return; + + m_invalidOptionText = text; + + // update GUI + for (const QString &option : m_invalidOptions) + m_optionToItem.value(option)->setText(optionText(option, false)); +} + +QString QOptionsWidget::optionText(const QString &optionName, bool valid) const +{ + QString text = optionName; + if (optionName.isEmpty()) + text = QLatin1Char('[') + m_noOptionText + QLatin1Char(']'); + if (!valid) + text += QLatin1String("\t[") + m_invalidOptionText + QLatin1Char(']'); + return text; +} + +QListWidgetItem *QOptionsWidget::appendItem(const QString &optionName, bool valid, bool selected) +{ + QListWidgetItem *optionItem = new QListWidgetItem(optionText(optionName, valid), m_listWidget); + optionItem->setCheckState(selected ? Qt::Checked : Qt::Unchecked); + m_listWidget->insertItem(m_listWidget->count(), optionItem); + m_optionToItem[optionName] = optionItem; + m_itemToOption[optionItem] = optionName; + return optionItem; +} + +void QOptionsWidget::appendSeparator() +{ + QListWidgetItem *separatorItem = new QListWidgetItem(m_listWidget); + ListWidgetDelegate::setSeparator(separatorItem); + m_listWidget->insertItem(m_listWidget->count(), separatorItem); +} + +void QOptionsWidget::itemChanged(QListWidgetItem *item) +{ + const auto it = m_itemToOption.constFind(item); + if (it == m_itemToOption.constEnd()) + return; + + const QString option = *it; + + if (item->checkState() == Qt::Checked && !m_selectedOptions.contains(option)) { + m_selectedOptions.append(option); + std::sort(m_selectedOptions.begin(), m_selectedOptions.end()); + } else if (item->checkState() == Qt::Unchecked && m_selectedOptions.contains(option)) { + m_selectedOptions.removeOne(option); + } else { + return; + } + + emit optionSelectionChanged(m_selectedOptions); +} + + +QT_END_NAMESPACE diff --git a/src/assistant/help/qoptionswidget_p.h b/src/assistant/help/qoptionswidget_p.h new file mode 100644 index 0000000..e466b46 --- /dev/null +++ b/src/assistant/help/qoptionswidget_p.h @@ -0,0 +1,62 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef QOPTIONSWIDGET_H +#define QOPTIONSWIDGET_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of the help generator tools. This header file may change from version +// to version without notice, or even be removed. +// +// We mean it. +// + +#include +#include + +QT_BEGIN_NAMESPACE + +class QListWidget; +class QListWidgetItem; + +class QOptionsWidget : public QWidget +{ + Q_OBJECT +public: + QOptionsWidget(QWidget *parent = nullptr); + + void clear(); + void setOptions(const QStringList &validOptions, + const QStringList &selectedOptions); + QStringList validOptions() const; + QStringList selectedOptions() const; + + void setNoOptionText(const QString &text); + void setInvalidOptionText(const QString &text); + +signals: + void optionSelectionChanged(const QStringList &options); + +private: + QString optionText(const QString &optionName, bool valid) const; + QListWidgetItem *appendItem(const QString &optionName, bool valid, bool selected); + void appendSeparator(); + void itemChanged(QListWidgetItem *item); + + QListWidget *m_listWidget = nullptr; + QString m_noOptionText; + QString m_invalidOptionText; + QStringList m_validOptions; + QStringList m_invalidOptions; + QStringList m_selectedOptions; + QMap m_optionToItem; + QMap m_itemToOption; +}; + +QT_END_NAMESPACE + +#endif // OPTIONSWIDGET_H diff --git a/src/assistant/qhelpgenerator/CMakeLists.txt b/src/assistant/qhelpgenerator/CMakeLists.txt new file mode 100644 index 0000000..7e14487 --- /dev/null +++ b/src/assistant/qhelpgenerator/CMakeLists.txt @@ -0,0 +1,62 @@ +# Generated from qhelpgenerator.pro. + +##################################################################### +## qhelpgenerator Tool: +##################################################################### + +qt_get_tool_target_name(target_name qhelpgenerator) +qt_internal_add_tool(${target_name} + TARGET_DESCRIPTION "Qt Compressed Help File Generator" + TOOLS_TARGET Tools # special case + INSTALL_DIR "${INSTALL_LIBEXECDIR}" + SOURCES + ../shared/collectionconfiguration.cpp ../shared/collectionconfiguration.h + collectionconfigreader.cpp collectionconfigreader.h + helpgenerator.cpp helpgenerator.h + main.cpp + qhelpdatainterface.cpp qhelpdatainterface_p.h + qhelpprojectdata.cpp qhelpprojectdata_p.h + PUBLIC_LIBRARIES + Qt::Gui + Qt::HelpPrivate + Qt::Network +) +qt_internal_return_unless_building_tools() + +if(NOT QT_BUILD_SHARED_LIBS) + set(needed_plugins + QMinimalIntegrationPlugin + QSQLiteDriverPlugin + ) + list(TRANSFORM needed_plugins PREPEND Qt:: OUTPUT_VARIABLE needed_plugin_targets) + if(QT_SUPERBUILD) + # In a top-level build, qt_import_plugins() is a no-op because + # __qt_internal_add_static_plugins_once() is not called. + # So we need to initialize and link the plugin manually. + set(out_file_path "${CMAKE_CURRENT_BINARY_DIR}/${target_name}_plugin_imports_custom.cpp") + + # Create a string with the necessary Q_IMPORT_PLUGIN(...) statements. + list(TRANSFORM needed_plugins PREPEND "Q_IMPORT_PLUGIN(" OUTPUT_VARIABLE import_plugin_code) + list(TRANSFORM import_plugin_code APPEND ")") + list(JOIN import_plugin_code "\n" import_plugin_code) + + file(GENERATE OUTPUT "${out_file_path}" CONTENT +"// This file is auto-generated. Do not edit. +#include + +${import_plugin_code} +") + + # CMake versions earlier than 3.18.0 can't find the generated file for some reason, + # failing at generation phase. + # Explicitly marking the file as GENERATED fixes the issue. + set_source_files_properties("${out_file_path}" PROPERTIES GENERATED TRUE) + + target_sources(${target_name} PRIVATE "${out_file_path}") + target_link_libraries(${target_name} PRIVATE ${needed_plugin_targets}) + else() + qt_import_plugins(${target_name} + INCLUDE ${needed_plugin_targets} + ) + endif() +endif() diff --git a/src/assistant/qhelpgenerator/collectionconfigreader.cpp b/src/assistant/qhelpgenerator/collectionconfigreader.cpp new file mode 100644 index 0000000..44abd9e --- /dev/null +++ b/src/assistant/qhelpgenerator/collectionconfigreader.cpp @@ -0,0 +1,222 @@ +// Copyright (C) 2018 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "collectionconfigreader.h" + +#include + +class QCG { + Q_DECLARE_TR_FUNCTIONS(QCollectionGenerator) +}; + +void CollectionConfigReader::raiseErrorWithLine() +{ + raiseError(QCG::tr("Unknown token at line %1.").arg(lineNumber())); +} + +void CollectionConfigReader::readData(const QByteArray &contents) +{ + m_enableFilterFunctionality = true; + m_hideFilterFunctionality = true; + m_enableAddressBar = true; + m_hideAddressBar = true; + m_enableDocumentationManager = true; + m_enableFullTextSearchFallback = false; + + addData(contents); + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("QHelpCollectionProject") + && attributes().value(QLatin1String("version")) == QLatin1String("1.0")) + readConfig(); + else + raiseError(QCG::tr("Unknown token at line %1. " + "Expected \"QtHelpCollectionProject\".") + .arg(lineNumber())); + } + } +} + +void CollectionConfigReader::readConfig() +{ + bool ok = false; + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("assistant")) + readAssistantSettings(); + else if (name() == QLatin1String("docFiles")) + readDocFiles(); + else + raiseErrorWithLine(); + } else if (isEndElement() && name() == QLatin1String("QHelpCollectionProject")) { + ok = true; + } + } + if (!ok && !hasError()) + raiseError(QCG::tr("Missing end tags.")); +} + +void CollectionConfigReader::readAssistantSettings() +{ + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("title")) { + m_title = readElementText(); + } else if (name() == QLatin1String("homePage")) { + m_homePage = readElementText(); + } else if (name() == QLatin1String("startPage")) { + m_startPage = readElementText(); + } else if (name() == QLatin1String("currentFilter")) { + m_currentFilter = readElementText(); + } else if (name() == QLatin1String("applicationIcon")) { + m_applicationIcon = readElementText(); + } else if (name() == QLatin1String("enableFilterFunctionality")) { + if (attributes().value(QLatin1String("visible")) == QLatin1String("true")) + m_hideFilterFunctionality = false; + if (readElementText() == QLatin1String("false")) + m_enableFilterFunctionality = false; + } else if (name() == QLatin1String("enableDocumentationManager")) { + if (readElementText() == QLatin1String("false")) + m_enableDocumentationManager = false; + } else if (name() == QLatin1String("enableAddressBar")) { + if (attributes().value(QLatin1String("visible")) == QLatin1String("true")) + m_hideAddressBar = false; + if (readElementText() == QLatin1String("false")) + m_enableAddressBar = false; + } else if (name() == QLatin1String("aboutMenuText")) { + readMenuTexts(); + } else if (name() == QLatin1String("aboutDialog")) { + readAboutDialog(); + } else if (name() == u"cacheDirectory") { + m_cacheDirRelativeToCollection = + attributes().value(QLatin1String("base")) + == QLatin1String("collection"); + m_cacheDirectory = readElementText(); + } else if (name() == QLatin1String("enableFullTextSearchFallback")) { + if (readElementText() == QLatin1String("true")) + m_enableFullTextSearchFallback = true; + } else { + raiseErrorWithLine(); + } + } else if (isEndElement() && name() == QLatin1String("assistant")) { + break; + } + } +} + +void CollectionConfigReader::readMenuTexts() +{ + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("text")) { + QString lang = attributes().value(QLatin1String("language")).toString(); + if (lang.isEmpty()) + lang = QLatin1String("default"); + m_aboutMenuTexts.insert(lang, readElementText()); + } else { + raiseErrorWithLine(); + } + } else if (isEndElement() && name() == QLatin1String("aboutMenuText")) { + break; + } + } +} + +void CollectionConfigReader::readAboutDialog() +{ + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("file")) { + QString lang = attributes().value(QLatin1String("language")).toString(); + if (lang.isEmpty()) + lang = QLatin1String("default"); + m_aboutTextFiles.insert(lang, readElementText()); + } else if (name() == QLatin1String("icon")) { + m_aboutIcon = readElementText(); + } else { + raiseErrorWithLine(); + } + } else if (isEndElement() && name() == QLatin1String("aboutDialog")) { + break; + } + } +} + +void CollectionConfigReader::readDocFiles() +{ + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("generate")) { + readGenerate(); + } else if (name() == QLatin1String("register")) { + readRegister(); + } else { + raiseErrorWithLine(); + } + } else if (isEndElement() && name() == QLatin1String("docFiles")) { + break; + } + } +} + +void CollectionConfigReader::readGenerate() +{ + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("file")) + readFiles(); + else + raiseErrorWithLine(); + } else if (isEndElement() && name() == QLatin1String("generate")) { + break; + } + } +} + +void CollectionConfigReader::readFiles() +{ + QString input; + QString output; + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("input")) + input = readElementText(); + else if (name() == QLatin1String("output")) + output = readElementText(); + else + raiseErrorWithLine(); + } else if (isEndElement() && name() == QLatin1String("file")) { + break; + } + } + if (input.isEmpty() || output.isEmpty()) { + raiseError(QCG::tr("Missing input or output file for help file generation.")); + return; + } + m_filesToGenerate.insert(input, output); +} + +void CollectionConfigReader::readRegister() +{ + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("file")) + m_filesToRegister.append(readElementText()); + else + raiseErrorWithLine(); + } else if (isEndElement() && name() == QLatin1String("register")) { + break; + } + } +} + + diff --git a/src/assistant/qhelpgenerator/collectionconfigreader.h b/src/assistant/qhelpgenerator/collectionconfigreader.h new file mode 100644 index 0000000..78047a5 --- /dev/null +++ b/src/assistant/qhelpgenerator/collectionconfigreader.h @@ -0,0 +1,81 @@ +// Copyright (C) 2018 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef COLLECTIONCONFIGREADER_H +#define COLLECTIONCONFIGREADER_H + +#include +#include +#include + +QT_USE_NAMESPACE + +class CollectionConfigReader : public QXmlStreamReader +{ +public: + void readData(const QByteArray &contents); + + QString title() const { return m_title; } + QString homePage() const { return m_homePage; } + QString startPage() const { return m_startPage; } + QString applicationIcon() const { return m_applicationIcon; } + QString currentFilter() const { return m_currentFilter; } + bool enableFilterFunctionality() const + { return m_enableFilterFunctionality; } + bool hideFilterFunctionality() const + { return m_hideFilterFunctionality; } + bool enableAddressBar() const { return m_enableAddressBar; } + bool hideAddressBar() const { return m_hideAddressBar; } + bool enableDocumentationManager() const + { return m_enableDocumentationManager; } + + QMap aboutMenuTexts() const + { return m_aboutMenuTexts; } + QString aboutIcon() const { return m_aboutIcon; } + QMap aboutTextFiles() const + { return m_aboutTextFiles; } + + QMap filesToGenerate() const + { return m_filesToGenerate; } + + QStringList filesToRegister() const { return m_filesToRegister; } + + QString cacheDirectory() const { return m_cacheDirectory; } + bool cacheDirRelativeToCollection() const { return m_cacheDirRelativeToCollection; } + + bool fullTextSearchFallbackEnabled() const { + return m_enableFullTextSearchFallback; + } + +private: + void raiseErrorWithLine(); + void readConfig(); + void readAssistantSettings(); + void readMenuTexts(); + void readAboutDialog(); + void readDocFiles(); + void readGenerate(); + void readFiles(); + void readRegister(); + + QMap m_aboutMenuTexts; + QMap m_aboutTextFiles; + QMap m_filesToGenerate; + QStringList m_filesToRegister; + QString m_title; + QString m_homePage; + QString m_startPage; + QString m_applicationIcon; + QString m_currentFilter; + QString m_aboutIcon; + QString m_cacheDirectory; + bool m_enableFilterFunctionality; + bool m_hideFilterFunctionality; + bool m_enableAddressBar; + bool m_hideAddressBar; + bool m_enableDocumentationManager; + bool m_cacheDirRelativeToCollection; + bool m_enableFullTextSearchFallback; +}; + +#endif diff --git a/src/assistant/qhelpgenerator/helpgenerator.cpp b/src/assistant/qhelpgenerator/helpgenerator.cpp new file mode 100644 index 0000000..199b98f --- /dev/null +++ b/src/assistant/qhelpgenerator/helpgenerator.cpp @@ -0,0 +1,849 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "helpgenerator.h" +#include "qhelpprojectdata_p.h" +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class HelpGeneratorPrivate : public QObject +{ + Q_OBJECT + +public: + HelpGeneratorPrivate(QObject *parent = nullptr) : QObject(parent) {} + + bool generate(QHelpProjectData *helpData, + const QString &outputFileName); + bool checkLinks(const QHelpProjectData &helpData); + QString error() const; + +Q_SIGNALS: + void statusChanged(const QString &msg); + void progressChanged(double progress); + void warning(const QString &msg); + +private: + struct FileNameTableData + { + QString name; + int fileId; + QString title; + }; + + void writeTree(QDataStream &s, QHelpDataContentItem *item, int depth); + bool createTables(); + bool insertFileNotFoundFile(); + bool registerCustomFilter(const QString &filterName, + const QStringList &filterAttribs, bool forceUpdate = false); + bool registerVirtualFolder(const QString &folderName, const QString &ns); + bool insertFilterAttributes(const QStringList &attributes); + bool insertKeywords(const QList &keywords, + const QStringList &filterAttributes); + bool insertFiles(const QStringList &files, const QString &rootPath, + const QStringList &filterAttributes); + bool insertContents(const QByteArray &ba, + const QStringList &filterAttributes); + bool insertMetaData(const QMap &metaData); + void cleanupDB(); + void setupProgress(QHelpProjectData *helpData); + void addProgress(double step); + + QString m_error; + QSqlQuery *m_query = nullptr; + + int m_namespaceId = -1; + int m_virtualFolderId = -1; + + QMap m_fileMap; + QMap > m_fileFilterMap; + + double m_progress; + double m_oldProgress; + double m_contentStep; + double m_fileStep; + double m_indexStep; +}; + +/*! + Takes the \a helpData and generates a new documentation + set from it. The Qt compressed help file is written to \a + outputFileName. Returns true on success, otherwise false. +*/ +bool HelpGeneratorPrivate::generate(QHelpProjectData *helpData, + const QString &outputFileName) +{ + emit progressChanged(0); + m_error.clear(); + if (!helpData || helpData->namespaceName().isEmpty()) { + m_error = tr("Invalid help data."); + return false; + } + + QString outFileName = outputFileName; + if (outFileName.isEmpty()) { + m_error = tr("No output file name specified."); + return false; + } + + QFileInfo fi(outFileName); + if (fi.exists()) { + if (!fi.dir().remove(fi.fileName())) { + m_error = tr("The file %1 cannot be overwritten.").arg(outFileName); + return false; + } + } + + setupProgress(helpData); + + emit statusChanged(tr("Building up file structure...")); + bool openingOk = true; + { + QSqlDatabase db = QSqlDatabase::addDatabase(QLatin1String("QSQLITE"), QLatin1String("builder")); + db.setDatabaseName(outFileName); + openingOk = db.open(); + if (openingOk) + m_query = new QSqlQuery(db); + } + + if (!openingOk) { + m_error = tr("Cannot open data base file %1.").arg(outFileName); + cleanupDB(); + return false; + } + + m_query->exec(QLatin1String("PRAGMA synchronous=OFF")); + m_query->exec(QLatin1String("PRAGMA cache_size=3000")); + + addProgress(1.0); + createTables(); + insertFileNotFoundFile(); + insertMetaData(helpData->metaData()); + + if (!registerVirtualFolder(helpData->virtualFolder(), helpData->namespaceName())) { + m_error = tr("Cannot register namespace \"%1\".").arg(helpData->namespaceName()); + cleanupDB(); + return false; + } + addProgress(1.0); + + emit statusChanged(tr("Insert custom filters...")); + for (const QHelpDataCustomFilter &f : helpData->customFilters()) { + if (!registerCustomFilter(f.name, f.filterAttributes, true)) { + cleanupDB(); + return false; + } + } + addProgress(1.0); + + int i = 1; + for (const QHelpDataFilterSection &fs : helpData->filterSections()) { + emit statusChanged(tr("Insert help data for filter section (%1 of %2)...") + .arg(i++).arg(helpData->filterSections().size())); + insertFilterAttributes(fs.filterAttributes()); + QByteArray ba; + QDataStream s(&ba, QIODevice::WriteOnly); + for (QHelpDataContentItem *itm : fs.contents()) + writeTree(s, itm, 0); + if (!insertFiles(fs.files(), helpData->rootPath(), fs.filterAttributes()) + || !insertContents(ba, fs.filterAttributes()) + || !insertKeywords(fs.indices(), fs.filterAttributes())) { + cleanupDB(); + return false; + } + } + + cleanupDB(); + emit progressChanged(100); + emit statusChanged(tr("Documentation successfully generated.")); + return true; +} + +void HelpGeneratorPrivate::setupProgress(QHelpProjectData *helpData) +{ + m_progress = 0; + m_oldProgress = 0; + + int numberOfFiles = 0; + int numberOfIndices = 0; + for (const QHelpDataFilterSection &fs : helpData->filterSections()) { + numberOfFiles += fs.files().size(); + numberOfIndices += fs.indices().size(); + } + // init 2% + // filters 1% + // contents 10% + // files 60% + // indices 27% + m_contentStep = 10.0 / qMax(helpData->customFilters().size(), 1); + m_fileStep = 60.0 / qMax(numberOfFiles, 1); + m_indexStep = 27.0 / qMax(numberOfIndices, 1); +} + +void HelpGeneratorPrivate::addProgress(double step) +{ + m_progress += step; + if ((m_progress - m_oldProgress) >= 1.0 && m_progress <= 100.0) { + m_oldProgress = m_progress; + emit progressChanged(qCeil(m_progress)); + } +} + +void HelpGeneratorPrivate::cleanupDB() +{ + if (m_query) { + m_query->clear(); + delete m_query; + m_query = nullptr; + } + QSqlDatabase::removeDatabase(QLatin1String("builder")); +} + +void HelpGeneratorPrivate::writeTree(QDataStream &s, QHelpDataContentItem *item, int depth) +{ + s << depth; + s << item->reference(); + s << item->title(); + for (QHelpDataContentItem *i : item->children()) + writeTree(s, i, depth + 1); +} + +/*! + Returns the last error message. +*/ +QString HelpGeneratorPrivate::error() const +{ + return m_error; +} + +bool HelpGeneratorPrivate::createTables() +{ + if (!m_query) + return false; + + m_query->exec(QLatin1String("SELECT COUNT(*) FROM sqlite_master WHERE TYPE=\'table\'" + "AND Name=\'NamespaceTable\'")); + m_query->next(); + if (m_query->value(0).toInt() > 0) { + m_error = tr("Some tables already exist."); + return false; + } + + const QStringList tables = QStringList() + << QLatin1String("CREATE TABLE NamespaceTable (" + "Id INTEGER PRIMARY KEY," + "Name TEXT )") + << QLatin1String("CREATE TABLE FilterAttributeTable (" + "Id INTEGER PRIMARY KEY, " + "Name TEXT )") + << QLatin1String("CREATE TABLE FilterNameTable (" + "Id INTEGER PRIMARY KEY, " + "Name TEXT )") + << QLatin1String("CREATE TABLE FilterTable (" + "NameId INTEGER, " + "FilterAttributeId INTEGER )") + << QLatin1String("CREATE TABLE IndexTable (" + "Id INTEGER PRIMARY KEY, " + "Name TEXT, " + "Identifier TEXT, " + "NamespaceId INTEGER, " + "FileId INTEGER, " + "Anchor TEXT )") + << QLatin1String("CREATE TABLE IndexFilterTable (" + "FilterAttributeId INTEGER, " + "IndexId INTEGER )") + << QLatin1String("CREATE TABLE ContentsTable (" + "Id INTEGER PRIMARY KEY, " + "NamespaceId INTEGER, " + "Data BLOB )") + << QLatin1String("CREATE TABLE ContentsFilterTable (" + "FilterAttributeId INTEGER, " + "ContentsId INTEGER )") + << QLatin1String("CREATE TABLE FileAttributeSetTable (" + "Id INTEGER, " + "FilterAttributeId INTEGER )") + << QLatin1String("CREATE TABLE FileDataTable (" + "Id INTEGER PRIMARY KEY, " + "Data BLOB )") + << QLatin1String("CREATE TABLE FileFilterTable (" + "FilterAttributeId INTEGER, " + "FileId INTEGER )") + << QLatin1String("CREATE TABLE FileNameTable (" + "FolderId INTEGER, " + "Name TEXT, " + "FileId INTEGER, " + "Title TEXT )") + << QLatin1String("CREATE TABLE FolderTable(" + "Id INTEGER PRIMARY KEY, " + "Name Text, " + "NamespaceID INTEGER )") + << QLatin1String("CREATE TABLE MetaDataTable(" + "Name Text, " + "Value BLOB )"); + + for (const QString &q : tables) { + if (!m_query->exec(q)) { + m_error = tr("Cannot create tables."); + return false; + } + } + + m_query->exec(QLatin1String("INSERT INTO MetaDataTable VALUES('qchVersion', '1.0')")); + + return true; +} + +bool HelpGeneratorPrivate::insertFileNotFoundFile() +{ + if (!m_query) + return false; + + m_query->exec(QLatin1String("SELECT id FROM FileNameTable WHERE Name=\'\'")); + if (m_query->next() && m_query->isValid()) + return true; + + m_query->prepare(QLatin1String("INSERT INTO FileDataTable VALUES (Null, ?)")); + m_query->bindValue(0, QByteArray()); + if (!m_query->exec()) + return false; + + const int fileId = m_query->lastInsertId().toInt(); + m_query->prepare(QLatin1String("INSERT INTO FileNameTable (FolderId, Name, FileId, Title) " + " VALUES (0, '', ?, '')")); + m_query->bindValue(0, fileId); + if (fileId > -1 && m_query->exec()) { + m_fileMap.insert(QString(), fileId); + return true; + } + return false; +} + +bool HelpGeneratorPrivate::registerVirtualFolder(const QString &folderName, const QString &ns) +{ + if (!m_query || folderName.isEmpty() || ns.isEmpty()) + return false; + + m_query->prepare(QLatin1String("SELECT Id FROM FolderTable WHERE Name=?")); + m_query->bindValue(0, folderName); + m_query->exec(); + m_query->next(); + if (m_query->isValid() && m_query->value(0).toInt() > 0) + return true; + + m_namespaceId = -1; + m_query->prepare(QLatin1String("SELECT Id FROM NamespaceTable WHERE Name=?")); + m_query->bindValue(0, ns); + m_query->exec(); + while (m_query->next()) { + m_namespaceId = m_query->value(0).toInt(); + break; + } + + if (m_namespaceId < 0) { + m_query->prepare(QLatin1String("INSERT INTO NamespaceTable VALUES(NULL, ?)")); + m_query->bindValue(0, ns); + if (m_query->exec()) + m_namespaceId = m_query->lastInsertId().toInt(); + } + + if (m_namespaceId > 0) { + m_query->prepare(QLatin1String("SELECT Id FROM FolderTable WHERE Name=?")); + m_query->bindValue(0, folderName); + m_query->exec(); + while (m_query->next()) + m_virtualFolderId = m_query->value(0).toInt(); + + if (m_virtualFolderId > 0) + return true; + + m_query->prepare(QLatin1String("INSERT INTO FolderTable (NamespaceId, Name) " + "VALUES (?, ?)")); + m_query->bindValue(0, m_namespaceId); + m_query->bindValue(1, folderName); + if (m_query->exec()) { + m_virtualFolderId = m_query->lastInsertId().toInt(); + return m_virtualFolderId > 0; + } + } + m_error = tr("Cannot register virtual folder."); + return false; +} + +bool HelpGeneratorPrivate::insertFiles(const QStringList &files, const QString &rootPath, + const QStringList &filterAttributes) +{ + if (!m_query) + return false; + + emit statusChanged(tr("Insert files...")); + QSet filterAtts; + for (const QString &filterAtt : filterAttributes) { + m_query->prepare(QLatin1String("SELECT Id FROM FilterAttributeTable " + "WHERE Name=?")); + m_query->bindValue(0, filterAtt); + m_query->exec(); + if (m_query->next()) + filterAtts.insert(m_query->value(0).toInt()); + } + + int filterSetId = -1; + m_query->exec(QLatin1String("SELECT MAX(Id) FROM FileAttributeSetTable")); + if (m_query->next()) + filterSetId = m_query->value(0).toInt(); + if (filterSetId < 0) + return false; + ++filterSetId; + for (int attId : std::as_const(filterAtts)) { + m_query->prepare(QLatin1String("INSERT INTO FileAttributeSetTable " + "VALUES(?, ?)")); + m_query->bindValue(0, filterSetId); + m_query->bindValue(1, attId); + m_query->exec(); + } + + int tableFileId = 1; + m_query->exec(QLatin1String("SELECT MAX(Id) FROM FileDataTable")); + if (m_query->next()) + tableFileId = m_query->value(0).toInt() + 1; + + QString title; + QString charSet; + QList fileDataList; + QMap > tmpFileFilterMap; + QList fileNameDataList; + + int i = 0; + for (const QString &file : files) { + const QString fileName = QDir::cleanPath(file); + + QFile fi(rootPath + QDir::separator() + fileName); + if (!fi.exists()) { + emit warning(tr("The file %1 does not exist, skipping it...") + .arg(QDir::cleanPath(rootPath + QDir::separator() + fileName))); + continue; + } + + if (!fi.open(QIODevice::ReadOnly)) { + emit warning(tr("Cannot open file %1, skipping it...") + .arg(QDir::cleanPath(rootPath + QDir::separator() + fileName))); + continue; + } + + QByteArray data = fi.readAll(); + if (fileName.endsWith(QLatin1String(".html")) + || fileName.endsWith(QLatin1String(".htm"))) { + auto encoding = QStringDecoder::encodingForHtml(data); + if (!encoding) + encoding = QStringDecoder::Utf8; + title = QHelpGlobal::documentTitle(QStringDecoder(*encoding)(data)); + } else { + title = fileName.mid(fileName.lastIndexOf(QLatin1Char('/')) + 1); + } + + int fileId = -1; + const auto &it = m_fileMap.constFind(fileName); + if (it == m_fileMap.cend()) { + fileDataList.append(qCompress(data)); + + FileNameTableData fileNameData; + fileNameData.name = fileName; + fileNameData.fileId = tableFileId; + fileNameData.title = title; + fileNameDataList.append(fileNameData); + + m_fileMap.insert(fileName, tableFileId); + m_fileFilterMap.insert(tableFileId, filterAtts); + tmpFileFilterMap.insert(tableFileId, filterAtts); + + ++tableFileId; + } else { + fileId = it.value(); + QSet &fileFilterSet = m_fileFilterMap[fileId]; + QSet &tmpFileFilterSet = tmpFileFilterMap[fileId]; + for (int filter : std::as_const(filterAtts)) { + if (!fileFilterSet.contains(filter) + && !tmpFileFilterSet.contains(filter)) { + fileFilterSet.insert(filter); + tmpFileFilterSet.insert(filter); + } + } + } + } + + if (!tmpFileFilterMap.isEmpty()) { + m_query->exec(QLatin1String("BEGIN")); + for (auto it = tmpFileFilterMap.cbegin(), end = tmpFileFilterMap.cend(); it != end; ++it) { + QList filterValues = it.value().values(); + std::sort(filterValues.begin(), filterValues.end()); + for (int fv : std::as_const(filterValues)) { + m_query->prepare(QLatin1String("INSERT INTO FileFilterTable " + "VALUES(?, ?)")); + m_query->bindValue(0, fv); + m_query->bindValue(1, it.key()); + m_query->exec(); + } + } + + for (const QByteArray &fileData : std::as_const(fileDataList)) { + m_query->prepare(QLatin1String("INSERT INTO FileDataTable VALUES " + "(Null, ?)")); + m_query->bindValue(0, fileData); + m_query->exec(); + if (++i % 20 == 0) + addProgress(m_fileStep * 20.0); + } + + for (const FileNameTableData &fnd : std::as_const(fileNameDataList)) { + m_query->prepare(QLatin1String("INSERT INTO FileNameTable " + "(FolderId, Name, FileId, Title) VALUES (?, ?, ?, ?)")); + m_query->bindValue(0, 1); + m_query->bindValue(1, fnd.name); + m_query->bindValue(2, fnd.fileId); + m_query->bindValue(3, fnd.title); + m_query->exec(); + } + m_query->exec(QLatin1String("COMMIT")); + } + + m_query->exec(QLatin1String("SELECT MAX(Id) FROM FileDataTable")); + if (m_query->next() + && m_query->value(0).toInt() == tableFileId - 1) { + addProgress(m_fileStep*(i % 20)); + return true; + } + return false; +} + +bool HelpGeneratorPrivate::registerCustomFilter(const QString &filterName, + const QStringList &filterAttribs, bool forceUpdate) +{ + if (!m_query) + return false; + + m_query->exec(QLatin1String("SELECT Id, Name FROM FilterAttributeTable")); + QStringList idsToInsert = filterAttribs; + QMap attributeMap; + while (m_query->next()) { + attributeMap.insert(m_query->value(1).toString(), + m_query->value(0).toInt()); + idsToInsert.removeAll(m_query->value(1).toString()); + } + + for (const QString &id : std::as_const(idsToInsert)) { + m_query->prepare(QLatin1String("INSERT INTO FilterAttributeTable VALUES(NULL, ?)")); + m_query->bindValue(0, id); + m_query->exec(); + attributeMap.insert(id, m_query->lastInsertId().toInt()); + } + + int nameId = -1; + m_query->prepare(QLatin1String("SELECT Id FROM FilterNameTable WHERE Name=?")); + m_query->bindValue(0, filterName); + m_query->exec(); + while (m_query->next()) { + nameId = m_query->value(0).toInt(); + break; + } + + if (nameId < 0) { + m_query->prepare(QLatin1String("INSERT INTO FilterNameTable VALUES(NULL, ?)")); + m_query->bindValue(0, filterName); + if (m_query->exec()) + nameId = m_query->lastInsertId().toInt(); + } else if (!forceUpdate) { + m_error = tr("The filter %1 is already registered.").arg(filterName); + return false; + } + + if (nameId < 0) { + m_error = tr("Cannot register filter %1.").arg(filterName); + return false; + } + + m_query->prepare(QLatin1String("DELETE FROM FilterTable WHERE NameId=?")); + m_query->bindValue(0, nameId); + m_query->exec(); + + for (const QString &att : filterAttribs) { + m_query->prepare(QLatin1String("INSERT INTO FilterTable VALUES(?, ?)")); + m_query->bindValue(0, nameId); + m_query->bindValue(1, attributeMap[att]); + if (!m_query->exec()) + return false; + } + return true; +} + +bool HelpGeneratorPrivate::insertKeywords(const QList &keywords, + const QStringList &filterAttributes) +{ + if (!m_query) + return false; + + emit statusChanged(tr("Insert indices...")); + int indexId = 1; + m_query->exec(QLatin1String("SELECT MAX(Id) FROM IndexTable")); + if (m_query->next()) + indexId = m_query->value(0).toInt() + 1; + + QList filterAtts; + for (const QString &filterAtt : filterAttributes) { + m_query->prepare(QLatin1String("SELECT Id FROM FilterAttributeTable WHERE Name=?")); + m_query->bindValue(0, filterAtt); + m_query->exec(); + if (m_query->next()) + filterAtts.append(m_query->value(0).toInt()); + } + + QList indexFilterTable; + + int i = 0; + m_query->exec(QLatin1String("BEGIN")); + QSet indices; + for (const QHelpDataIndexItem &itm : keywords) { + // Identical ids make no sense and just confuse the Assistant user, + // so we ignore all repetitions. + if (indices.contains(itm.identifier)) + continue; + + // Still empty ids should be ignored, as otherwise we will include only + // the first keyword with an empty id. + if (!itm.identifier.isEmpty()) + indices.insert(itm.identifier); + + const int pos = itm.reference.indexOf(QLatin1Char('#')); + const QString &fileName = itm.reference.left(pos); + const QString anchor = pos < 0 ? QString() : itm.reference.mid(pos + 1); + + const QString &fName = QDir::cleanPath(fileName); + + const auto &it = m_fileMap.constFind(fName); + const int fileId = it == m_fileMap.cend() ? 1 : it.value(); + + m_query->prepare(QLatin1String("INSERT INTO IndexTable (Name, Identifier, NamespaceId, FileId, Anchor) " + "VALUES(?, ?, ?, ?, ?)")); + m_query->bindValue(0, itm.name); + m_query->bindValue(1, itm.identifier); + m_query->bindValue(2, m_namespaceId); + m_query->bindValue(3, fileId); + m_query->bindValue(4, anchor); + m_query->exec(); + + indexFilterTable.append(indexId++); + if (++i % 100 == 0) + addProgress(m_indexStep * 100.0); + } + m_query->exec(QLatin1String("COMMIT")); + + m_query->exec(QLatin1String("BEGIN")); + for (int idx : std::as_const(indexFilterTable)) { + for (int a : std::as_const(filterAtts)) { + m_query->prepare(QLatin1String("INSERT INTO IndexFilterTable (FilterAttributeId, IndexId) " + "VALUES(?, ?)")); + m_query->bindValue(0, a); + m_query->bindValue(1, idx); + m_query->exec(); + } + } + m_query->exec(QLatin1String("COMMIT")); + + m_query->exec(QLatin1String("SELECT COUNT(Id) FROM IndexTable")); + if (m_query->next() && m_query->value(0).toInt() >= indices.size()) + return true; + return false; +} + +bool HelpGeneratorPrivate::insertContents(const QByteArray &ba, + const QStringList &filterAttributes) +{ + if (!m_query) + return false; + + emit statusChanged(tr("Insert contents...")); + m_query->prepare(QLatin1String("INSERT INTO ContentsTable (NamespaceId, Data) " + "VALUES(?, ?)")); + m_query->bindValue(0, m_namespaceId); + m_query->bindValue(1, ba); + m_query->exec(); + int contentId = m_query->lastInsertId().toInt(); + if (contentId < 1) { + m_error = tr("Cannot insert contents."); + return false; + } + + // associate the filter attributes + for (const QString &filterAtt : filterAttributes) { + m_query->prepare(QLatin1String("INSERT INTO ContentsFilterTable (FilterAttributeId, ContentsId) " + "SELECT Id, ? FROM FilterAttributeTable WHERE Name=?")); + m_query->bindValue(0, contentId); + m_query->bindValue(1, filterAtt); + m_query->exec(); + if (!m_query->isActive()) { + m_error = tr("Cannot register contents."); + return false; + } + } + addProgress(m_contentStep); + return true; +} + +bool HelpGeneratorPrivate::insertFilterAttributes(const QStringList &attributes) +{ + if (!m_query) + return false; + + m_query->exec(QLatin1String("SELECT Name FROM FilterAttributeTable")); + QSet atts; + while (m_query->next()) + atts.insert(m_query->value(0).toString()); + + for (const QString &s : attributes) { + if (!atts.contains(s)) { + m_query->prepare(QLatin1String("INSERT INTO FilterAttributeTable VALUES(NULL, ?)")); + m_query->bindValue(0, s); + m_query->exec(); + } + } + return true; +} + +bool HelpGeneratorPrivate::insertMetaData(const QMap &metaData) +{ + if (!m_query) + return false; + + for (auto it = metaData.cbegin(), end = metaData.cend(); it != end; ++it) { + m_query->prepare(QLatin1String("INSERT INTO MetaDataTable VALUES(?, ?)")); + m_query->bindValue(0, it.key()); + m_query->bindValue(1, it.value()); + m_query->exec(); + } + return true; +} + +bool HelpGeneratorPrivate::checkLinks(const QHelpProjectData &helpData) +{ + /* + * Step 1: Gather the canoncal file paths of all files in the project. + * We use a set, because there will be a lot of look-ups. + */ + QSet files; + for (const QHelpDataFilterSection &filterSection : helpData.filterSections()) { + for (const QString &file : filterSection.files()) { + const QFileInfo fileInfo(helpData.rootPath() + QDir::separator() + file); + const QString &canonicalFileName = fileInfo.canonicalFilePath(); + if (!fileInfo.exists()) + emit warning(tr("File \"%1\" does not exist.").arg(file)); + else + files.insert(canonicalFileName); + } + } + + /* + * Step 2: Check the hypertext and image references of all HTML files. + * Note that we don't parse the files, but simply grep for the + * respective HTML elements. Therefore. contents that are e.g. + * commented out can cause false warning. + */ + bool allLinksOk = true; + for (const QString &fileName : std::as_const(files)) { + if (!fileName.endsWith(QLatin1String("html")) + && !fileName.endsWith(QLatin1String("htm"))) + continue; + QFile htmlFile(fileName); + if (!htmlFile.open(QIODevice::ReadOnly)) { + emit warning(tr("File \"%1\" cannot be opened.").arg(fileName)); + continue; + } + const QRegularExpression linkPattern(QLatin1String("<(?:a href|img src)=\"?([^#\">]+)[#\">]")); + QByteArray data = htmlFile.readAll(); + auto encoding = QStringDecoder::encodingForHtml(data); + if (!encoding) + encoding = QStringDecoder::Utf8; + const QString &content = QStringDecoder(*encoding)(data); + QStringList invalidLinks; + QRegularExpressionMatch match; + int pos = 0; + while ((match = linkPattern.match(content, pos)).hasMatch()) { + pos = match.capturedEnd(); + const QString &linkedFileName = match.captured(1); + if (linkedFileName.contains(QLatin1String("://"))) + continue; + const QString &curDir = QFileInfo(fileName).dir().path(); + const QString &canonicalLinkedFileName = + QFileInfo(curDir + QDir::separator() + linkedFileName).canonicalFilePath(); + if (!files.contains(canonicalLinkedFileName) + && !invalidLinks.contains(canonicalLinkedFileName)) { + emit warning(tr("File \"%1\" contains an invalid link to file \"%2\""). + arg(fileName).arg(linkedFileName)); + allLinksOk = false; + invalidLinks.append(canonicalLinkedFileName); + } + } + } + + if (!allLinksOk) + m_error = tr("Invalid links in HTML files."); + return allLinksOk; +} + +////////////////////////////// + +HelpGenerator::HelpGenerator(bool silent) +{ + m_private = new HelpGeneratorPrivate(this); + if (!silent) { + connect(m_private, &HelpGeneratorPrivate::statusChanged, + this, &HelpGenerator::printStatus); + } + connect(m_private, &HelpGeneratorPrivate::warning, + this, &HelpGenerator::printWarning); +} + +bool HelpGenerator::generate(QHelpProjectData *helpData, + const QString &outputFileName) +{ + return m_private->generate(helpData, outputFileName); +} + +bool HelpGenerator::checkLinks(const QHelpProjectData &helpData) +{ + return m_private->checkLinks(helpData); +} + +QString HelpGenerator::error() const +{ + return m_private->error(); +} + +void HelpGenerator::printStatus(const QString &msg) +{ + puts(qPrintable(msg)); +} + +void HelpGenerator::printWarning(const QString &msg) +{ + puts(qPrintable(tr("Warning: %1").arg(msg))); +} + +QT_END_NAMESPACE + +#include "helpgenerator.moc" diff --git a/src/assistant/qhelpgenerator/helpgenerator.h b/src/assistant/qhelpgenerator/helpgenerator.h new file mode 100644 index 0000000..6948467 --- /dev/null +++ b/src/assistant/qhelpgenerator/helpgenerator.h @@ -0,0 +1,35 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef HELPGENERATOR_H +#define HELPGENERATOR_H + +#include + +QT_BEGIN_NAMESPACE + +class QHelpProjectData; +class HelpGeneratorPrivate; + +class HelpGenerator : public QObject +{ + Q_OBJECT + +public: + HelpGenerator(bool silent = false); + bool generate(QHelpProjectData *helpData, + const QString &outputFileName); + bool checkLinks(const QHelpProjectData &helpData); + QString error() const; + +private slots: + void printStatus(const QString &msg); + void printWarning(const QString &msg); + +private: + HelpGeneratorPrivate *m_private; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/assistant/qhelpgenerator/main.cpp b/src/assistant/qhelpgenerator/main.cpp new file mode 100644 index 0000000..cad0095 --- /dev/null +++ b/src/assistant/qhelpgenerator/main.cpp @@ -0,0 +1,385 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "../shared/collectionconfiguration.h" +#include "helpgenerator.h" +#include "collectionconfigreader.h" +#include "qhelpprojectdata_p.h" + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + + +QT_USE_NAMESPACE + +class QHG { + Q_DECLARE_TR_FUNCTIONS(QHelpGenerator) +}; + +static const char QHP[] = "qhp"; +static const char QCH[] = "qch"; + +static const char QHCP[] = "qhcp"; +static const char QHC[] = "qhc"; + +namespace { + QString absoluteFilePath(const QString &basePath, const QString &fileName) + { + return QDir(basePath).absoluteFilePath(fileName); + } +} + +int generateCollectionFile(const QByteArray &data, const QString &basePath, const QString outputFile) +{ + fputs(qPrintable(QHG::tr("Reading collection config file...\n")), stdout); + CollectionConfigReader config; + config.readData(data); + if (config.hasError()) { + fputs(qPrintable(QHG::tr("Collection config file error: %1\n") + .arg(config.errorString())), stderr); + return 1; + } + + const QMap &filesToGenerate = config.filesToGenerate(); + for (auto it = filesToGenerate.cbegin(), end = filesToGenerate.cend(); it != end; ++it) { + fputs(qPrintable(QHG::tr("Generating help for %1...\n").arg(it.key())), stdout); + QHelpProjectData helpData; + if (!helpData.readData(absoluteFilePath(basePath, it.key()))) { + fprintf(stderr, "%s\n", qPrintable(helpData.errorMessage())); + return 1; + } + + HelpGenerator helpGenerator; + if (!helpGenerator.generate(&helpData, absoluteFilePath(basePath, it.value()))) { + fprintf(stderr, "%s\n", qPrintable(helpGenerator.error())); + return 1; + } + } + + fputs(qPrintable(QHG::tr("Creating collection file...\n")), stdout); + + QFileInfo colFi(outputFile); + if (colFi.exists()) { + if (!colFi.dir().remove(colFi.fileName())) { + fputs(qPrintable(QHG::tr("The file %1 cannot be overwritten.\n") + .arg(outputFile)), stderr); + return 1; + } + } + + QHelpEngineCore helpEngine(outputFile); + helpEngine.setReadOnly(false); + if (!helpEngine.setupData()) { + fprintf(stderr, "%s\n", qPrintable(helpEngine.error())); + return 1; + } + + for (const QString &file : config.filesToRegister()) { + if (!helpEngine.registerDocumentation(absoluteFilePath(basePath, file))) { + fprintf(stderr, "%s\n", qPrintable(helpEngine.error())); + return 1; + } + } + if (!config.filesToRegister().isEmpty()) { + if (Q_UNLIKELY(qEnvironmentVariableIsSet("SOURCE_DATE_EPOCH"))) { + QDateTime dt; + dt.setSecsSinceEpoch(qEnvironmentVariableIntValue("SOURCE_DATE_EPOCH")); + CollectionConfiguration::updateLastRegisterTime(helpEngine, dt); + } else { + CollectionConfiguration::updateLastRegisterTime(helpEngine); + } + } + + if (!config.title().isEmpty()) + CollectionConfiguration::setWindowTitle(helpEngine, config.title()); + + if (!config.homePage().isEmpty()) { + CollectionConfiguration::setDefaultHomePage(helpEngine, + config.homePage()); + } + + if (!config.startPage().isEmpty()) { + CollectionConfiguration::setLastShownPages(helpEngine, + QStringList(config.startPage())); + } + + if (!config.currentFilter().isEmpty()) { + helpEngine.setCurrentFilter(config.currentFilter()); + } + + if (!config.cacheDirectory().isEmpty()) { + CollectionConfiguration::setCacheDir(helpEngine, config.cacheDirectory(), + config.cacheDirRelativeToCollection()); + } + + CollectionConfiguration::setFilterFunctionalityEnabled(helpEngine, + config.enableFilterFunctionality()); + CollectionConfiguration::setFilterToolbarVisible(helpEngine, + !config.hideFilterFunctionality()); + CollectionConfiguration::setDocumentationManagerEnabled(helpEngine, + config.enableDocumentationManager()); + CollectionConfiguration::setAddressBarEnabled(helpEngine, + config.enableAddressBar()); + CollectionConfiguration::setAddressBarVisible(helpEngine, + !config.hideAddressBar()); + uint time = QDateTime::currentMSecsSinceEpoch() / 1000; + if (Q_UNLIKELY(qEnvironmentVariableIsSet("SOURCE_DATE_EPOCH"))) + time = qEnvironmentVariableIntValue("SOURCE_DATE_EPOCH"); + CollectionConfiguration::setCreationTime(helpEngine, time); + CollectionConfiguration::setFullTextSearchFallbackEnabled(helpEngine, + config.fullTextSearchFallbackEnabled()); + + if (!config.applicationIcon().isEmpty()) { + QFile icon(absoluteFilePath(basePath, config.applicationIcon())); + if (!icon.open(QIODevice::ReadOnly)) { + fputs(qPrintable(QHG::tr("Cannot open %1.\n").arg(icon.fileName())), stderr); + return 1; + } + CollectionConfiguration::setApplicationIcon(helpEngine, icon.readAll()); + } + + if (config.aboutMenuTexts().size()) { + QByteArray ba; + QDataStream s(&ba, QIODevice::WriteOnly); + const QMap &aboutMenuTexts = config.aboutMenuTexts(); + for (auto it = aboutMenuTexts.cbegin(), end = aboutMenuTexts.cend(); it != end; ++it) + s << it.key() << it.value(); + CollectionConfiguration::setAboutMenuTexts(helpEngine, ba); + } + + if (!config.aboutIcon().isEmpty()) { + QFile icon(absoluteFilePath(basePath, config.aboutIcon())); + if (!icon.open(QIODevice::ReadOnly)) { + fputs(qPrintable(QHG::tr("Cannot open %1.\n").arg(icon.fileName())), stderr); + return 1; + } + CollectionConfiguration::setAboutIcon(helpEngine, icon.readAll()); + } + + if (config.aboutTextFiles().size()) { + QByteArray ba; + QDataStream s(&ba, QIODevice::WriteOnly); + QMap imgData; + + QRegularExpression srcRegExp(QLatin1String("src=(\"(.+)\"|([^\"\\s]+)).*>"), QRegularExpression::InvertedGreedinessOption); + QRegularExpression imgRegExp(QLatin1String("(]+>)"), QRegularExpression::InvertedGreedinessOption); + + const QMap &aboutMenuTexts = config.aboutTextFiles(); + for (auto it = aboutMenuTexts.cbegin(), end = aboutMenuTexts.cend(); it != end; ++it) { + s << it.key(); + QFileInfo fi(absoluteFilePath(basePath, it.value())); + QFile f(fi.absoluteFilePath()); + if (!f.open(QIODevice::ReadOnly)) { + fputs(qPrintable(QHG::tr("Cannot open %1.\n").arg(f.fileName())), stderr); + return 1; + } + QByteArray data = f.readAll(); + s << data; + + QString contents = QString::fromUtf8(data); + int pos = 0; + QRegularExpressionMatch match; + while ((match = imgRegExp.match(contents, pos)).hasMatch()) { + QString imgTag = match.captured(1); + pos = match.capturedEnd(); + + if ((match = srcRegExp.match(imgTag)).hasMatch()) { + QString src = match.captured(2); + if (src.isEmpty()) + src = match.captured(3); + + QFile img(fi.absolutePath() + QDir::separator() + src); + if (img.open(QIODevice::ReadOnly)) { + if (!imgData.contains(src)) + imgData.insert(src, img.readAll()); + } else { + fputs(qPrintable(QHG::tr("Cannot open referenced image file %1.\n") + .arg(img.fileName())), stderr); + } + } + } + } + CollectionConfiguration::setAboutTexts(helpEngine, ba); + if (imgData.size()) { + QByteArray imageData; + QBuffer buffer(&imageData); + buffer.open(QIODevice::WriteOnly); + QDataStream out(&buffer); + out << imgData; + CollectionConfiguration::setAboutImages(helpEngine, imageData); + } + } + return 0; +} + +int main(int argc, char *argv[]) +{ + QString error; + QString outputFile; + QString inputFile; + QString basePath; + bool showHelp = false; + bool showVersion = false; + bool checkLinks = false; + bool silent = false; + + // don't require a window manager even though we're a QGuiApplication + qputenv("QT_QPA_PLATFORM", QByteArrayLiteral("minimal")); + + QGuiApplication app(argc, argv); +#ifndef Q_OS_WIN32 + QTranslator translator; + QTranslator qtTranslator; + QTranslator qt_helpTranslator; + QString sysLocale = QLocale::system().name(); + QString resourceDir = QLibraryInfo::path(QLibraryInfo::TranslationsPath); + if (translator.load(QLatin1String("assistant_") + sysLocale, resourceDir) + && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir) + && qt_helpTranslator.load(QLatin1String("qt_help_") + sysLocale, resourceDir)) { + app.installTranslator(&translator); + app.installTranslator(&qtTranslator); + app.installTranslator(&qt_helpTranslator); + } +#endif // Q_OS_WIN32 + + for (int i = 1; i < argc; ++i) { + const QString arg = QString::fromLocal8Bit(argv[i]); + if (arg == QLatin1String("-o")) { + if (++i < argc) { + QFileInfo fi(QString::fromLocal8Bit(argv[i])); + outputFile = fi.absoluteFilePath(); + } else { + error = QHG::tr("Missing output file name."); + } + } else if (arg == QLatin1String("-v")) { + showVersion = true; + } else if (arg == QLatin1String("-h")) { + showHelp = true; + } else if (arg == QLatin1String("-c")) { + checkLinks = true; + } else if (arg == QLatin1String("-s")) { + silent = true; + } else { + const QFileInfo fi(arg); + inputFile = fi.absoluteFilePath(); + basePath = fi.absolutePath(); + } + } + + if (showVersion) { + fputs(qPrintable(QHG::tr("Qt Help Generator version 1.0 (Qt %1)\n") + .arg(QT_VERSION_STR)), stdout); + return 0; + } + + enum InputType { + InputQhp, + InputQhcp, + InputUnknown + }; + + InputType inputType = InputUnknown; + + if (!showHelp) { + if (inputFile.isEmpty()) { + error = QHG::tr("Missing input file name."); + } else { + const QFileInfo fi(inputFile); + if (fi.suffix() == QHP) + inputType = InputQhp; + else if (fi.suffix() == QHCP) + inputType = InputQhcp; + + if (inputType == InputUnknown) + error = QHG::tr("Unknown input file type."); + } + } + + const QString help = QHG::tr("\nUsage:\n\n" + "qhelpgenerator [options]\n\n" + " -o Generates a Qt compressed help\n" + " called (*.qch) for the\n" + " Qt help project (*.qhp).\n" + " Generates a Qt help collection\n" + " called (*.qhc) for the\n" + " Qt help collection project (*.qhcp).\n" + " If this option is not specified\n" + " a default name will be used\n" + " (*.qch for *.qhp and *.qhc for *.qhcp).\n" + " -c Checks whether all links in HTML files\n" + " point to files in this help project.\n" + " -s Suppresses status messages.\n" + " -v Displays the version of \n" + " qhelpgenerator.\n\n"); + + if (showHelp) { + fputs(qPrintable(help), stdout); + return 0; + } else if (!error.isEmpty()) { + fprintf(stderr, "%s\n\n%s", qPrintable(error), qPrintable(help)); + return 1; + } + + // detect input file type (qhp or qhcp) + + QFile file(inputFile); + if (!file.open(QIODevice::ReadOnly)) { + fputs(qPrintable(QHG::tr("Could not open %1.\n").arg(inputFile)), stderr); + return 1; + } + + const QString outputExtension = inputType == InputQhp ? QCH : QHC; + + if (outputFile.isEmpty()) { + if (inputType == InputQhcp || !checkLinks) { + QFileInfo fi(inputFile); + outputFile = basePath + QDir::separator() + + fi.baseName() + QLatin1Char('.') + outputExtension; + } + } else { + // check if the output dir exists -- create if it doesn't + QFileInfo fi(outputFile); + QDir parentDir = fi.dir(); + if (!parentDir.exists()) { + if (!parentDir.mkpath(QLatin1String("."))) { + fputs(qPrintable(QHG::tr("Could not create output directory: %1\n") + .arg(parentDir.path())), stderr); + } + } + } + + if (inputType == InputQhp) { + QHelpProjectData *helpData = new QHelpProjectData(); + if (!helpData->readData(inputFile)) { + fprintf(stderr, "%s\n", qPrintable(helpData->errorMessage())); + return 1; + } + + HelpGenerator generator(silent); + bool success = true; + if (checkLinks) + success = generator.checkLinks(*helpData); + if (success && !outputFile.isEmpty()) + success = generator.generate(helpData, outputFile); + delete helpData; + if (!success) { + fprintf(stderr, "%s\n", qPrintable(generator.error())); + return 1; + } + } else { + const QByteArray data = file.readAll(); + return generateCollectionFile(data, basePath, outputFile); + + } + + return 0; +} diff --git a/src/assistant/qhelpgenerator/qhelpdatainterface.cpp b/src/assistant/qhelpgenerator/qhelpdatainterface.cpp new file mode 100644 index 0000000..fa09096 --- /dev/null +++ b/src/assistant/qhelpgenerator/qhelpdatainterface.cpp @@ -0,0 +1,232 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpdatainterface_p.h" + +QT_BEGIN_NAMESPACE + +/*! + \internal + \class QHelpDataContentItem + \since 4.4 + \brief The QHelpDataContentItem class provides an item which represents + a topic or section of the contents. + + Every item holds several pieces of information, most notably the title + which can later be displayed in a contents overview. The reference is used + to store a relative file link to the corresponding section in the + documentation. +*/ + +/*! + Constructs a new content item with \a parent as parent item. + The constucted item has the title \a title and links to the + location specified by \a reference. +*/ +QHelpDataContentItem::QHelpDataContentItem(QHelpDataContentItem *parent, + const QString &title, const QString &reference) + : m_title(title), m_reference(reference) +{ + if (parent) + parent->m_children.append(this); +} + +/*! + Destructs the item and its children. +*/ +QHelpDataContentItem::~QHelpDataContentItem() +{ + qDeleteAll(m_children); +} + +/*! + Returns the title of the item. +*/ +QString QHelpDataContentItem::title() const +{ + return m_title; +} + +/*! + Returns the file reference of the item. +*/ +QString QHelpDataContentItem::reference() const +{ + return m_reference; +} + +/*! + Returns a list of all its child items. +*/ +QList QHelpDataContentItem::children() const +{ + return m_children; +} + +bool QHelpDataIndexItem::operator==(const QHelpDataIndexItem &other) const +{ + return (other.name == name) && (other.reference == reference); +} + +/*! + \internal + \class QHelpDataFilterSection + \since 4.4 +*/ + +/*! + Constructs a help data filter section. +*/ +QHelpDataFilterSection::QHelpDataFilterSection() +{ + d = new QHelpDataFilterSectionData(); +} + +/*! + Adds the filter attribute \a filter to the filter attributes of + this section. +*/ +void QHelpDataFilterSection::addFilterAttribute(const QString &filter) +{ + d->filterAttributes.append(filter); +} + +/*! + Returns a list of all filter attributes defined for this section. +*/ +QStringList QHelpDataFilterSection::filterAttributes() const +{ + return d->filterAttributes; +} + +/*! + Adds the index item \a index to the list of indices. +*/ +void QHelpDataFilterSection::addIndex(const QHelpDataIndexItem &index) +{ + d->indices.append(index); +} + +/*! + Sets the filter sections list of indices to \a indices. +*/ +void QHelpDataFilterSection::setIndices(const QList &indices) +{ + d->indices = indices; +} + +/*! + Returns the list of indices. +*/ +QList QHelpDataFilterSection::indices() const +{ + return d->indices; +} + +/*! + Adds the top level content item \a content to the filter section. +*/ +void QHelpDataFilterSection::addContent(QHelpDataContentItem *content) +{ + d->contents.append(content); +} + +/*! + Sets the list of top level content items of the filter section to + \a contents. +*/ +void QHelpDataFilterSection::setContents(const QList &contents) +{ + qDeleteAll(d->contents); + d->contents = contents; +} + +/*! + Returns a list of top level content items. +*/ +QList QHelpDataFilterSection::contents() const +{ + return d->contents; +} + +/*! + Adds the file \a file to the filter section. +*/ +void QHelpDataFilterSection::addFile(const QString &file) +{ + d->files.append(file); +} + +/*! + Set the list of files to \a files. +*/ +void QHelpDataFilterSection::setFiles(const QStringList &files) +{ + d->files = files; +} + +/*! + Returns the list of files. +*/ +QStringList QHelpDataFilterSection::files() const +{ + return d->files; +} + +/*! + \internal + \class QHelpDataInterface + \since 4.4 +*/ + +/*! + \fn QHelpDataInterface::QHelpDataInterface() + + Constructs a new help data interface. +*/ + +/*! + \fn QHelpDataInterface::~QHelpDataInterface() + + Destroys the help data interface. +*/ + +/*! + \fn QString QHelpDataInterface::namespaceName() const = 0 + + Returns the namespace name of the help data set. +*/ + +/*! + \fn QString QHelpDataInterface::virtualFolder() const = 0 + + Returns the virtual folder of the help data set. +*/ + +/*! + \fn QList QHelpDataInterface::customFilters () const = 0 + + Returns a list of custom filters. Defining custom filters is optional. +*/ + +/*! + \fn QList QHelpDataInterface::filterSections() const = 0 + + Returns a list of filter sections. +*/ + +/*! + \fn QMap QHelpDataInterface::metaData() const = 0 + + Returns a map of meta data. A meta data item can hold almost any data + and is identified by its name. +*/ + +/*! + \fn QString QHelpDataInterface::rootPath() const = 0 + + Returns the root file path of the documentation data. All referenced file + path or links of content items are relative to this path. +*/ + +QT_END_NAMESPACE diff --git a/src/assistant/qhelpgenerator/qhelpdatainterface_p.h b/src/assistant/qhelpgenerator/qhelpdatainterface_p.h new file mode 100644 index 0000000..1c8dd4f --- /dev/null +++ b/src/assistant/qhelpgenerator/qhelpdatainterface_p.h @@ -0,0 +1,98 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPDATAINTERFACE_H +#define QHELPDATAINTERFACE_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of the help generator tools. This header file may change from version +// to version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QHelpDataContentItem +{ +public: + QHelpDataContentItem(QHelpDataContentItem *parent, const QString &title, + const QString &reference); + ~QHelpDataContentItem(); + + QString title() const; + QString reference() const; + QList children() const; + +private: + QString m_title; + QString m_reference; + QList m_children; +}; + +struct QHelpDataIndexItem { + QHelpDataIndexItem() {} + QHelpDataIndexItem(const QString &n, const QString &id, const QString &r) + : name(n), identifier(id), reference(r) {} + + QString name; + QString identifier; + QString reference; + + bool operator==(const QHelpDataIndexItem & other) const; +}; + +class QHelpDataFilterSectionData : public QSharedData +{ +public: + ~QHelpDataFilterSectionData() + { + qDeleteAll(contents); + } + + QStringList filterAttributes; + QList indices; + QList contents; + QStringList files; +}; + +class QHelpDataFilterSection +{ +public: + QHelpDataFilterSection(); + + void addFilterAttribute(const QString &filter); + QStringList filterAttributes() const; + + void addIndex(const QHelpDataIndexItem &index); + void setIndices(const QList &indices); + QList indices() const; + + void addContent(QHelpDataContentItem *content); + void setContents(const QList &contents); + QList contents() const; + + void addFile(const QString &file); + void setFiles(const QStringList &files); + QStringList files() const; + +private: + QSharedDataPointer d; +}; + +struct QHelpDataCustomFilter { + QStringList filterAttributes; + QString name; +}; + +QT_END_NAMESPACE + +#endif // QHELPDATAINTERFACE_H diff --git a/src/assistant/qhelpgenerator/qhelpprojectdata.cpp b/src/assistant/qhelpgenerator/qhelpprojectdata.cpp new file mode 100644 index 0000000..77faa06 --- /dev/null +++ b/src/assistant/qhelpgenerator/qhelpprojectdata.cpp @@ -0,0 +1,432 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qhelpprojectdata_p.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QHelpProjectDataPrivate : public QXmlStreamReader +{ +public: + void readData(const QByteArray &contents); + + QString virtualFolder; + QString namespaceName; + QString fileName; + QString rootPath; + + QList customFilterList; + QList filterSectionList; + QMap metaData; + + QString errorMsg; + +private: + void readProject(); + void readCustomFilter(); + void readFilterSection(); + void readTOC(); + void readKeywords(); + void readFiles(); + void skipUnknownToken(); + void addMatchingFiles(const QString &pattern); + bool hasValidSyntax(const QString &nameSpace, const QString &vFolder) const; + + QMap dirEntriesCache; +}; + +void QHelpProjectDataPrivate::skipUnknownToken() +{ + const QString message = QCoreApplication::translate("QHelpProject", + "Skipping unknown token <%1> in file \"%2\".") + .arg(name()).arg(fileName) + QLatin1Char('\n'); + fputs(qPrintable(message), stdout); + + skipCurrentElement(); +} + +void QHelpProjectDataPrivate::readData(const QByteArray &contents) +{ + addData(contents); + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("QtHelpProject") + && attributes().value(QLatin1String("version")) + == QLatin1String("1.0")) { + readProject(); + } else { + raiseError(QCoreApplication::translate("QHelpProject", + "Unknown token. Expected \"QtHelpProject\".")); + } + } + } + + if (hasError()) { + raiseError(QCoreApplication::translate("QHelpProject", + "Error in line %1: %2").arg(lineNumber()) + .arg(errorString())); + } +} + +void QHelpProjectDataPrivate::readProject() +{ + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("virtualFolder")) { + virtualFolder = readElementText(); + if (!hasValidSyntax(QLatin1String("test"), virtualFolder)) + raiseError(QCoreApplication::translate("QHelpProject", + "Virtual folder has invalid syntax in file: \"%1\"").arg(fileName)); + } else if (name() == QLatin1String("namespace")) { + namespaceName = readElementText(); + if (!hasValidSyntax(namespaceName, QLatin1String("test"))) + raiseError(QCoreApplication::translate("QHelpProject", + "Namespace \"%1\" has invalid syntax in file: \"%2\"").arg(namespaceName, fileName)); + } else if (name() == QLatin1String("customFilter")) { + readCustomFilter(); + } else if (name() == QLatin1String("filterSection")) { + readFilterSection(); + } else if (name() == QLatin1String("metaData")) { + QString n = attributes().value(QLatin1String("name")).toString(); + if (!metaData.contains(n)) + metaData[n] + = attributes().value(QLatin1String("value")).toString(); + else + metaData.insert(n, attributes(). + value(QLatin1String("value")).toString()); + } else { + skipUnknownToken(); + } + } else if (isEndElement() && name() == QLatin1String("QtHelpProject")) { + if (namespaceName.isEmpty()) + raiseError(QCoreApplication::translate("QHelpProject", + "Missing namespace in QtHelpProject file: \"%1\"").arg(fileName)); + else if (virtualFolder.isEmpty()) + raiseError(QCoreApplication::translate("QHelpProject", + "Missing virtual folder in QtHelpProject file: \"%1\"").arg(fileName)); + break; + } + } +} + +void QHelpProjectDataPrivate::readCustomFilter() +{ + QHelpDataCustomFilter filter; + filter.name = attributes().value(QLatin1String("name")).toString(); + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("filterAttribute")) + filter.filterAttributes.append(readElementText()); + else + skipUnknownToken(); + } else if (isEndElement() && name() == QLatin1String("customFilter")) { + break; + } + } + customFilterList.append(filter); +} + +void QHelpProjectDataPrivate::readFilterSection() +{ + filterSectionList.append(QHelpDataFilterSection()); + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("filterAttribute")) + filterSectionList.last().addFilterAttribute(readElementText()); + else if (name() == QLatin1String("toc")) + readTOC(); + else if (name() == QLatin1String("keywords")) + readKeywords(); + else if (name() == QLatin1String("files")) + readFiles(); + else + skipUnknownToken(); + } else if (isEndElement() && name() == QLatin1String("filterSection")) { + break; + } + } +} + +void QHelpProjectDataPrivate::readTOC() +{ + QStack contentStack; + QHelpDataContentItem *itm = nullptr; + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("section")) { + const QString &title = attributes().value(QLatin1String("title")).toString(); + const QString &ref = attributes().value(QLatin1String("ref")).toString(); + if (contentStack.isEmpty()) { + itm = new QHelpDataContentItem(nullptr, title, ref); + filterSectionList.last().addContent(itm); + } else { + itm = new QHelpDataContentItem(contentStack.top(), title, ref); + } + contentStack.push(itm); + } else { + skipUnknownToken(); + } + } else if (isEndElement()) { + if (name() == QLatin1String("section")) { + contentStack.pop(); + continue; + } else if (name() == QLatin1String("toc") && contentStack.isEmpty()) { + return; + } else { + skipUnknownToken(); + } + } + } +} + +static inline QString msgMissingAttribute(const QString &fileName, qint64 lineNumber, const QString &name) +{ + QString result; + QTextStream str(&result); + str << QDir::toNativeSeparators(fileName) << ':' << lineNumber + << ": Missing attribute in ."; + return result; +} + +void QHelpProjectDataPrivate::readKeywords() +{ + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("keyword")) { + const QString &refAttribute = attributes().value(QStringLiteral("ref")).toString(); + const QString &nameAttribute = attributes().value(QStringLiteral("name")).toString(); + const QString &idAttribute = attributes().value(QStringLiteral("id")).toString(); + if (refAttribute.isEmpty() || (nameAttribute.isEmpty() && idAttribute.isEmpty())) { + qWarning("%s", qPrintable(msgMissingAttribute(fileName, lineNumber(), nameAttribute))); + continue; + } + filterSectionList.last() + .addIndex(QHelpDataIndexItem(nameAttribute, idAttribute, refAttribute)); + } else { + skipUnknownToken(); + } + } else if (isEndElement()) { + if (name() == QLatin1String("keyword")) + continue; + else if (name() == QLatin1String("keywords")) + return; + else + skipUnknownToken(); + } + } +} + +void QHelpProjectDataPrivate::readFiles() +{ + while (!atEnd()) { + readNext(); + if (isStartElement()) { + if (name() == QLatin1String("file")) + addMatchingFiles(readElementText()); + else + skipUnknownToken(); + } else if (isEndElement()) { + if (name() == QLatin1String("file")) + continue; + else if (name() == QLatin1String("files")) + return; + else + skipUnknownToken(); + } + } +} + +// Expand file pattern and add matches into list. If the pattern does not match +// any files, insert the pattern itself so the QHelpGenerator will emit a +// meaningful warning later. +void QHelpProjectDataPrivate::addMatchingFiles(const QString &pattern) +{ + // The pattern matching is expensive, so we skip it if no + // wildcard symbols occur in the string. + if (!pattern.contains(QLatin1Char('?')) && !pattern.contains(QLatin1Char('*')) + && !pattern.contains(QLatin1Char('[')) && !pattern.contains(QLatin1Char(']'))) { + filterSectionList.last().addFile(pattern); + return; + } + + const QFileInfo fileInfo(rootPath + QLatin1Char('/') + pattern); + const QDir &dir = fileInfo.dir(); + const QString &path = dir.canonicalPath(); + + // QDir::entryList() is expensive, so we cache the results. + const auto &it = dirEntriesCache.constFind(path); + const QStringList &entries = it != dirEntriesCache.cend() ? + it.value() : dir.entryList(QDir::Files); + if (it == dirEntriesCache.cend()) + dirEntriesCache.insert(path, entries); + + bool matchFound = false; +#ifdef Q_OS_WIN + auto cs = QRegularExpression::CaseInsensitiveOption; +#else + auto cs = QRegularExpression::NoPatternOption; +#endif + const QRegularExpression regExp(QRegularExpression::wildcardToRegularExpression(fileInfo.fileName()), cs); + for (const QString &file : entries) { + auto match = regExp.match(file); + if (match.hasMatch()) { + matchFound = true; + filterSectionList.last(). + addFile(QFileInfo(pattern).dir().path() + QLatin1Char('/') + file); + } + } + if (!matchFound) + filterSectionList.last().addFile(pattern); +} + +bool QHelpProjectDataPrivate::hasValidSyntax(const QString &nameSpace, + const QString &vFolder) const +{ + const QLatin1Char slash('/'); + if (nameSpace.contains(slash) || vFolder.contains(slash)) + return false; + QUrl url; + const QLatin1String scheme("qthelp"); + url.setScheme(scheme); + const QString &canonicalNamespace = nameSpace.toLower(); + url.setHost(canonicalNamespace); + url.setPath(slash + vFolder); + + const QString expectedUrl(scheme + QLatin1String("://") + + canonicalNamespace + slash + vFolder); + return url.isValid() && url.toString() == expectedUrl; +} + +/*! + \internal + \class QHelpProjectData + \since 4.4 + \brief The QHelpProjectData class stores all information found + in a Qt help project file. + + The structure is filled with data by calling readData(). The + specified file has to have the Qt help project file format in + order to be read successfully. Possible reading errors can be + retrieved by calling errorMessage(). +*/ + +/*! + Constructs a Qt help project data structure. +*/ +QHelpProjectData::QHelpProjectData() +{ + d = new QHelpProjectDataPrivate; +} + +/*! + Destroys the help project data. +*/ +QHelpProjectData::~QHelpProjectData() +{ + delete d; +} + +/*! + Reads the file \a fileName and stores the help data. The file has to + have the Qt help project file format. Returns true if the file + was successfully read, otherwise false. + + \sa errorMessage() +*/ +bool QHelpProjectData::readData(const QString &fileName) +{ + d->fileName = fileName; + d->rootPath = QFileInfo(fileName).absolutePath(); + QFile file(fileName); + if (!file.open(QIODevice::ReadOnly)) { + d->errorMsg = QCoreApplication::translate("QHelpProject", + "The input file %1 could not be opened.").arg(fileName); + return false; + } + + d->readData(file.readAll()); + return !d->hasError(); +} + +/*! + Returns an error message if the reading of the Qt help project + file failed. Otherwise, an empty QString is returned. + + \sa readData() +*/ +QString QHelpProjectData::errorMessage() const +{ + if (d->hasError()) + return d->errorString(); + return d->errorMsg; +} + +/*! + \internal +*/ +QString QHelpProjectData::namespaceName() const +{ + return d->namespaceName; +} + +/*! + \internal +*/ +QString QHelpProjectData::virtualFolder() const +{ + return d->virtualFolder; +} + +/*! + \internal +*/ +QList QHelpProjectData::customFilters() const +{ + return d->customFilterList; +} + +/*! + \internal +*/ +QList QHelpProjectData::filterSections() const +{ + return d->filterSectionList; +} + +/*! + \internal +*/ +QMap QHelpProjectData::metaData() const +{ + return d->metaData; +} + +/*! + \internal +*/ +QString QHelpProjectData::rootPath() const +{ + return d->rootPath; +} + +QT_END_NAMESPACE diff --git a/src/assistant/qhelpgenerator/qhelpprojectdata_p.h b/src/assistant/qhelpgenerator/qhelpprojectdata_p.h new file mode 100644 index 0000000..c50c1e9 --- /dev/null +++ b/src/assistant/qhelpgenerator/qhelpprojectdata_p.h @@ -0,0 +1,46 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QHELPPROJECTDATA_H +#define QHELPPROJECTDATA_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of the help generator tools. This header file may change from version +// to version without notice, or even be removed. +// +// We mean it. +// + +#include "qhelpdatainterface_p.h" + +QT_BEGIN_NAMESPACE + +class QHelpProjectDataPrivate; + +class QHelpProjectData +{ +public: + QHelpProjectData(); + ~QHelpProjectData(); + + bool readData(const QString &fileName); + QString errorMessage() const; + + QString namespaceName() const; + QString virtualFolder() const; + QList customFilters() const; + QList filterSections() const; + QMap metaData() const; + QString rootPath() const; + +private: + QHelpProjectDataPrivate *d; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/assistant/qlitehtml/.clang-format b/src/assistant/qlitehtml/.clang-format new file mode 100644 index 0000000..97f7f2b --- /dev/null +++ b/src/assistant/qlitehtml/.clang-format @@ -0,0 +1,117 @@ +# .clang-format for Qt Creator +# +# This is for clang-format >= 5.0. +# +# The configuration below follows the Qt Creator Coding Rules [1] as closely as +# possible. For documentation of the options, see [2]. +# +# Use ../../tests/manual/clang-format-for-qtc/test.cpp for documenting problems +# or testing changes. +# +# In case you update this configuration please also update the qtcStyle() in src\plugins\clangformat\clangformatutils.cpp +# +# [1] https://doc-snapshots.qt.io/qtcreator-extending/coding-style.html +# [2] https://clang.llvm.org/docs/ClangFormatStyleOptions.html +# +--- +Language: Cpp +AccessModifierOffset: -4 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlines: DontAlign +AlignOperands: true +AlignTrailingComments: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Inline +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: true +BinPackArguments: false +BinPackParameters: false +BraceWrapping: + AfterClass: true + AfterControlStatement: false + AfterEnum: false + AfterFunction: true + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: true + AfterUnion: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false + SplitEmptyFunction: false + SplitEmptyRecord: false + SplitEmptyNamespace: false +BreakBeforeBinaryOperators: All +BreakBeforeBraces: Custom +BreakBeforeInheritanceComma: false +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: false +BreakConstructorInitializers: BeforeComma +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: true +ColumnLimit: 100 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +ForEachMacros: + - forever # avoids { wrapped to next line + - foreach + - Q_FOREACH + - BOOST_FOREACH +IncludeCategories: + - Regex: '^ . + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/assistant/qlitehtml/LICENSES/GPL-3.0-only.txt b/src/assistant/qlitehtml/LICENSES/GPL-3.0-only.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/src/assistant/qlitehtml/LICENSES/GPL-3.0-only.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/src/assistant/qlitehtml/LICENSES/LicenseRef-Qt-Commercial.txt b/src/assistant/qlitehtml/LICENSES/LicenseRef-Qt-Commercial.txt new file mode 100644 index 0000000..825b1f3 --- /dev/null +++ b/src/assistant/qlitehtml/LICENSES/LicenseRef-Qt-Commercial.txt @@ -0,0 +1,8 @@ +Licensees holding valid commercial Qt licenses may use this software in +accordance with the the terms contained in a written agreement between +you and The Qt Company. Alternatively, the terms and conditions that were +accepted by the licensee when buying and/or downloading the +software do apply. + +For the latest licensing terms and conditions, see https://www.qt.io/terms-conditions. +For further information use the contact form at https://www.qt.io/contact-us. diff --git a/src/assistant/qlitehtml/LICENSES/MIT.txt b/src/assistant/qlitehtml/LICENSES/MIT.txt new file mode 100644 index 0000000..2071b23 --- /dev/null +++ b/src/assistant/qlitehtml/LICENSES/MIT.txt @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/assistant/qlitehtml/LICENSES/Qt-GPL-exception-1.0.txt b/src/assistant/qlitehtml/LICENSES/Qt-GPL-exception-1.0.txt new file mode 100644 index 0000000..d0322bf --- /dev/null +++ b/src/assistant/qlitehtml/LICENSES/Qt-GPL-exception-1.0.txt @@ -0,0 +1,22 @@ +The Qt Company GPL Exception 1.0 + +Exception 1: + +As a special exception you may create a larger work which contains the +output of this application and distribute that work under terms of your +choice, so long as the work is not otherwise derived from or based on +this application and so long as the work does not in itself generate +output that contains the output from this application in its original +or modified form. + +Exception 2: + +As a special exception, you have permission to combine this application +with Plugins licensed under the terms of your choice, to produce an +executable, and to copy and distribute the resulting executable under +the terms of your choice. However, the executable must be accompanied +by a prominent notice offering all users of the executable the entire +source code to this application, excluding the source code of the +independent modules, but including any changes you have made to this +application, under the terms of this license. + diff --git a/src/assistant/qlitehtml/README.md b/src/assistant/qlitehtml/README.md new file mode 100644 index 0000000..777f5bb --- /dev/null +++ b/src/assistant/qlitehtml/README.md @@ -0,0 +1,14 @@ +qlitehtml +========= + +A lightweight HTML viewer for Qt. + +This project provides + +* A QPainter based rendering backend for the lightweight HTML/CSS rendering + engine [litehtml]. +* A QWidget that uses the QPainter based backend and provides API for simply + setting the HTML text and a base URL plus hook that are used for requesting + referenced resources. + +[litehtml]: https://github.com/litehtml/litehtml diff --git a/src/assistant/qlitehtml/src/3rdparty/GUMBO-AUTHORS.txt b/src/assistant/qlitehtml/src/3rdparty/GUMBO-AUTHORS.txt new file mode 100644 index 0000000..54ec74b --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/GUMBO-AUTHORS.txt @@ -0,0 +1,2 @@ +Copyright 2010, 2011 Google Inc. +Copyright 2008-2009 Bjoern Hoehrmann \ No newline at end of file diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/.clang-format b/src/assistant/qlitehtml/src/3rdparty/litehtml/.clang-format new file mode 100644 index 0000000..e3967e6 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/.clang-format @@ -0,0 +1,3 @@ +# LLVM,Google,Chromium,Mozilla,WebKit,Microsoft +BasedOnStyle: Google +ColumnLimit: 1000 \ No newline at end of file diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/.github/workflows/cmake.yml b/src/assistant/qlitehtml/src/3rdparty/litehtml/.github/workflows/cmake.yml new file mode 100644 index 0000000..137cea8 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/.github/workflows/cmake.yml @@ -0,0 +1,38 @@ +name: CMake + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + # The CMake configure and build commands are platform agnostic and should work equally + # well on Windows or Mac. You can convert this to a matrix build if you need + # cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + - name: Test + working-directory: ${{github.workspace}}/build + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: ctest -C ${{env.BUILD_TYPE}} --rerun-failed --output-on-failure + diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/.gitignore b/src/assistant/qlitehtml/src/3rdparty/litehtml/.gitignore new file mode 100644 index 0000000..6b23dc5 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/.gitignore @@ -0,0 +1,183 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +cmake-build-*/ +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +x64/ +build/ +bld/ +[Bb]in/ +[Oo]bj/ +_build/ +_build32/ +_build64/ +*.inc + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* +[Tt]esting/ + +#NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding addin-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +_NCrunch_* +.*crunch*.local.xml + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml + +# NuGet Packages Directory +packages/ +## TODO: If the tool you use requires repositories.config uncomment the next line +#!packages/repositories.config + +# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets +# This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented) +!packages/build/ + +# Windows Azure Build Output +csx/ +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +.idea/ +.vs/ +.vscode/ +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/CMakeLists.txt b/src/assistant/qlitehtml/src/3rdparty/litehtml/CMakeLists.txt new file mode 100644 index 0000000..f09b694 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/CMakeLists.txt @@ -0,0 +1,255 @@ +cmake_minimum_required(VERSION 3.11) + +project(litehtml LANGUAGES C CXX) +include(CTest) +enable_testing() + +# Soname +# MAJOR is incremented when symbols are removed or changed in an incompatible way +# MINOR is incremented when new symbols are added +set(PROJECT_MAJOR 0) +set(PROJECT_MINOR 0) + +option(EXTERNAL_GUMBO "Link against external gumbo instead of shipping a bundled copy" OFF) +if(WIN32) + option(EXTERNAL_XXD "Use external xxd" OFF) +else() + option(EXTERNAL_XXD "Use external xxd" ON) +endif() + +if(NOT EXTERNAL_GUMBO) +add_subdirectory(src/gumbo) +endif() + +set(SOURCE_LITEHTML + src/background.cpp + src/box.cpp + src/codepoint.cpp + src/context.cpp + src/css_length.cpp + src/css_selector.cpp + src/document.cpp + src/el_anchor.cpp + src/el_base.cpp + src/el_before_after.cpp + src/el_body.cpp + src/el_break.cpp + src/el_cdata.cpp + src/el_comment.cpp + src/el_div.cpp + src/element.cpp + src/el_font.cpp + src/el_image.cpp + src/el_link.cpp + src/el_li.cpp + src/el_para.cpp + src/el_script.cpp + src/el_space.cpp + src/el_style.cpp + src/el_table.cpp + src/el_td.cpp + src/el_text.cpp + src/el_title.cpp + src/el_tr.cpp + src/html.cpp + src/html_tag.cpp + src/iterators.cpp + src/media_query.cpp + src/style.cpp + src/stylesheet.cpp + src/table.cpp + src/tstring_view.cpp + src/url.cpp + src/url_path.cpp + src/utf8_strings.cpp + src/web_color.cpp + src/num_cvt.cpp + src/strtod.cpp +) + +set(HEADER_LITEHTML + include/litehtml.h + include/litehtml/attributes.h + include/litehtml/background.h + include/litehtml/borders.h + include/litehtml/box.h + include/litehtml/codepoint.h + include/litehtml/context.h + include/litehtml/css_length.h + include/litehtml/css_margins.h + include/litehtml/css_offsets.h + include/litehtml/css_position.h + include/litehtml/css_selector.h + include/litehtml/document.h + include/litehtml/el_anchor.h + include/litehtml/el_base.h + include/litehtml/el_before_after.h + include/litehtml/el_body.h + include/litehtml/el_break.h + include/litehtml/el_cdata.h + include/litehtml/el_comment.h + include/litehtml/el_div.h + include/litehtml/el_font.h + include/litehtml/el_image.h + include/litehtml/el_link.h + include/litehtml/el_para.h + include/litehtml/el_script.h + include/litehtml/el_space.h + include/litehtml/el_style.h + include/litehtml/el_table.h + include/litehtml/el_td.h + include/litehtml/el_text.h + include/litehtml/el_title.h + include/litehtml/el_tr.h + include/litehtml/element.h + include/litehtml/html.h + include/litehtml/html_tag.h + include/litehtml/iterators.h + include/litehtml/media_query.h + include/litehtml/os_types.h + include/litehtml/style.h + include/litehtml/stylesheet.h + include/litehtml/table.h + include/litehtml/tstring_view.h + include/litehtml/types.h + include/litehtml/url.h + include/litehtml/url_path.h + include/litehtml/utf8_strings.h + include/litehtml/web_color.h + include/litehtml/num_cvt.h +) + +set(TEST_LITEHTML + containers/test/container_test.cpp + test/codepoint_test.cpp + test/contextTest.cpp + test/cssTest.cpp + test/documentTest.cpp + test/layoutGlobalTest.cpp + test/mediaQueryTest.cpp + test/tstring_view_test.cpp + test/url_test.cpp + test/url_path_test.cpp + test/webColorTest.cpp +) + +set(PROJECT_LIB_VERSION ${PROJECT_MAJOR}.${PROJECT_MINOR}.0) +set(PROJECT_SO_VERSION ${PROJECT_MAJOR}) + +add_library(${PROJECT_NAME} ${SOURCE_LITEHTML}) +set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_LIB_VERSION} SOVERSION ${PROJECT_SO_VERSION}) + +set_target_properties(${PROJECT_NAME} PROPERTIES + CXX_STANDARD 11 + C_STANDARD 99 + PUBLIC_HEADER "${HEADER_LITEHTML}" +) + +# Export litehtml includes. +target_include_directories(${PROJECT_NAME} PUBLIC + $ + $ + $) +target_include_directories(${PROJECT_NAME} PRIVATE include/${PROJECT_NAME}) + +option(LITEHTML_UTF8 "Build litehtml with UTF-8 text conversion functions." OFF) +if (LITEHTML_UTF8) + target_compile_definitions(${PROJECT_NAME} PUBLIC LITEHTML_UTF8) +endif() + +# Gumbo +target_link_libraries(${PROJECT_NAME} PUBLIC gumbo) + +# install and export +install(TARGETS ${PROJECT_NAME} + EXPORT litehtmlTargets + RUNTIME DESTINATION bin COMPONENT libraries + ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT libraries + LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT libraries + PUBLIC_HEADER DESTINATION include/litehtml +) +install(FILES cmake/litehtmlConfig.cmake DESTINATION lib${LIB_SUFFIX}/cmake/litehtml) +install(EXPORT litehtmlTargets FILE litehtmlTargets.cmake DESTINATION lib${LIB_SUFFIX}/cmake/litehtml) + +# Binary Master.css +if (NOT EXTERNAL_XXD) + add_executable(xxd xxd/xxd.c) + set(XXD_COMMAND $) +else() + find_program(XXD_COMMAND xxd) +endif() +if(WIN32) + file(TO_NATIVE_PATH ${XXD_COMMAND} XXD_COMMAND) + file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/include/master.css MASTER_FILE) + add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/src/master.css.inc + COMMAND type ${MASTER_FILE} | "${XXD_COMMAND}" -i > ${CMAKE_CURRENT_SOURCE_DIR}/src/master.css.inc) +else() + add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/src/master.css.inc + COMMAND cat ${CMAKE_CURRENT_SOURCE_DIR}/include/master.css | xxd -i > ${CMAKE_CURRENT_SOURCE_DIR}/src/master.css.inc) +endif() +set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/src/master.css.inc PROPERTIES GENERATED TRUE) + +# Tests + +if (BUILD_TESTING) + include(FetchContent) + FetchContent_Declare( + googletest + URL https://github.com/google/googletest/archive/609281088cfefc76f9d0ce82e1ff6c30cc3591e5.zip + ) + # For Windows: Prevent overriding the parent project's compiler/linker settings + set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + FetchContent_GetProperties(googletest) + if(NOT googletest_POPULATED) + FetchContent_Populate(googletest) + add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR}) + endif() + + enable_testing() + + set(TEST_NAME ${PROJECT_NAME}_tests) + + add_executable( + ${TEST_NAME} + ${TEST_LITEHTML} + ${CMAKE_CURRENT_SOURCE_DIR}/src/master.css.inc + ) + + set_target_properties(${TEST_NAME} PROPERTIES + CXX_STANDARD 11 + C_STANDARD 99 + PUBLIC_HEADER "${HEADER_LITEHTML}" + ) + + target_include_directories( + ${TEST_NAME} + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/containers + ) + + target_link_libraries( + ${TEST_NAME} + ${PROJECT_NAME} + gtest_main + ) + + include(GoogleTest) + gtest_discover_tests(${TEST_NAME}) +endif() + +# set(TEST_NAME ${PROJECT_NAME}_tests) +# add_executable(${TEST_NAME} ${TEST_LITEHTML} ${CMAKE_CURRENT_SOURCE_DIR}/src/master.css.inc) +# set_target_properties(${TEST_NAME} PROPERTIES +# CXX_STANDARD 11 +# C_STANDARD 99 +# PUBLIC_HEADER "${HEADER_LITEHTML}" +# ) +# target_include_directories(${TEST_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/containers) +# target_link_libraries(${TEST_NAME} PRIVATE ${PROJECT_NAME}) +# # tests +# add_test(NAME contextTest COMMAND ${TEST_NAME} 1) +# add_test(NAME cssTest COMMAND ${TEST_NAME} 2) +# add_test(NAME documentTest COMMAND ${TEST_NAME} 3) +# add_test(NAME layoutGlobalTest COMMAND ${TEST_NAME} 4) +# add_test(NAME mediaQueryTest COMMAND ${TEST_NAME} 5) +# add_test(NAME webColorTest COMMAND ${TEST_NAME} 6) +# endif() diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/LICENSE b/src/assistant/qlitehtml/src/3rdparty/litehtml/LICENSE new file mode 100644 index 0000000..601e1c7 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2013, Yuri Kobets (tordex) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/README.md b/src/assistant/qlitehtml/src/3rdparty/litehtml/README.md new file mode 100644 index 0000000..293f591 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/README.md @@ -0,0 +1,45 @@ +[![Travis Build Status](https://travis-ci.org/litehtml/litehtml.svg?branch=master)](https://travis-ci.org/litehtml/litehtml) + +# What is litehtml? + +**litehtml** is the lightweight HTML rendering engine with CSS2/CSS3 support. Note that **litehtml** itself does not draw any text, pictures or other graphics and that **litehtml** does not depend on any image/draw/font library. You are free to use any library to draw images, fonts and any other graphics. **litehtml** just parses HTML/CSS and places the HTML elements into the correct positions (renders HTML). To draw the HTML elements you have to implement the simple callback interface [document_container](https://github.com/litehtml/litehtml/wiki/document_container). This interface is really simple, check it out! The [document_container](https://github.com/litehtml/litehtml/wiki/document_container) implementation is required to render HTML correctly. + +# Where litehtml can be used + +**litehtml** can be used when you need to show HTML formatted text or even to create a mini-browser, but using it as a full-featured HTML engine is not recommended. Usually you don't need something like WebKit to show simple HTML tooltips or HTML-formatted text, **litehtml** is much better for these as it's more lightweight and easier to integrate into your application. + +## HTML Parser + +**litehtml** uses the [gumbo-parser](https://github.com/google/gumbo-parser) to parse HTML. Gumbo is an implementation of the HTML5 parsing algorithm implemented as a pure C99 library with no outside dependencies. It's designed to serve as a building block for other tools and libraries such as linters, validators, templating languages, and refactoring and analysis tools. + +## Compatibility + +**litehtml** is compatible with any platform suported by C++ and STL. For Windows MS Visual Studio 2013 is recommended. **litehtml** supports both UTF-8 and Unicode strings on Windows and UTF-8 strings on Linux and Haiku. + +## Support for HTML and CSS standards + +Unfortunately **litehtml** is not fully compatible with HTML/CSS standards. There is lots of work to do to make **litehtml** work as well as modern browsers. But **litehtml** supports most HTML tags and CSS properties. You can find the list of supported CSS properties in [this table](https://docs.google.com/spreadsheet/ccc?key=0AvHXl5n24PuhdHdELUdhaUl4OGlncXhDcDJuM1JpMnc&usp=sharing). For most simple usecases the HTML/CSS features supported by **litehtml** are enough. Right now **litehtml** supports even some pages with very complex HTML/CSS designs. As an example the pages created with [bootstrap framework](http://getbootstrap.com/) are usually well formatted by **litehtml**. + +## Testing litehtml + +You can [download the simple browser](http://www.litehtml.com/download.html) (**litebrowser**) to test the **litehtml** rendering engine. + +The litebrowser source codes are available on GitHub: + * [For Windows](https://github.com/litehtml/litebrowser) + * [For Linux](https://github.com/litehtml/litebrowser-linux) + * [For Haiku](https://github.com/adamfowleruk/litebrowser-haiku) + +## License + +**litehtml** is distributed under [New BSD License](https://opensource.org/licenses/BSD-3-Clause). +The **gumbo-parser** is disributed under [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) + +## Support litehtml project + +If you like the work **litehtml** is doing please consider a small donation: + +[ ![PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif) ](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=UHBQG6EAFCRBA) [ ![Patreon](https://img.shields.io/badge/patreon-Become%20a%20Patron!-red.png?style=for-the-badge&logo=patreon) ](https://www.patreon.com/tordex) + +Bitcoin: **1CS1174GVSLbP33TBp8RFwqPS6KmQK6kLY** + +![BitCoin](https://www.tordex.com/assets/images/litehtml-bitcoin.png) diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/cmake/litehtmlConfig.cmake b/src/assistant/qlitehtml/src/3rdparty/litehtml/cmake/litehtmlConfig.cmake new file mode 100644 index 0000000..5eedcf4 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/cmake/litehtmlConfig.cmake @@ -0,0 +1,3 @@ +include(CMakeFindDependencyMacro) +find_dependency(gumbo) +include(${CMAKE_CURRENT_LIST_DIR}/litehtmlTargets.cmake) diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_container.cpp b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_container.cpp new file mode 100644 index 0000000..18d6b6d --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_container.cpp @@ -0,0 +1,1027 @@ +#include "cairo_container.h" +#define _USE_MATH_DEFINES +#include +#include "cairo_font.h" +#include + +cairo_container::cairo_container(void) +{ + m_temp_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 2, 2); + m_temp_cr = cairo_create(m_temp_surface); + m_font_link = NULL; + CoCreateInstance(CLSID_CMultiLanguage, NULL, CLSCTX_ALL, IID_IMLangFontLink2, (void**) &m_font_link); + InitializeCriticalSection(&m_img_sync); +} + +cairo_container::~cairo_container(void) +{ + clear_images(); + if(m_font_link) + { + m_font_link->Release(); + } + cairo_surface_destroy(m_temp_surface); + cairo_destroy(m_temp_cr); + DeleteCriticalSection(&m_img_sync); +} + +litehtml::uint_ptr cairo_container::create_font( const litehtml::tchar_t* faceName, int size, int weight, litehtml::font_style italic, unsigned int decoration, litehtml::font_metrics* fm ) +{ + std::wstring fnt_name = L"sans-serif"; + + litehtml::string_vector fonts; + litehtml::split_string(faceName, fonts, _t(",")); + if(!fonts.empty()) + { + litehtml::trim(fonts[0]); +#ifdef LITEHTML_UTF8 + wchar_t* f = cairo_font::utf8_to_wchar(fonts[0].c_str()); + fnt_name = f; + delete f; +#else + fnt_name = fonts[0]; + if (fnt_name.front() == L'"' || fnt_name.front() == L'\'') + { + fnt_name.erase(0, 1); + } + if (fnt_name.back() == L'"' || fnt_name.back() == L'\'') + { + fnt_name.erase(fnt_name.length() - 1, 1); + } +#endif + } + + cairo_font* fnt = new cairo_font( m_font_link, + fnt_name.c_str(), + size, + weight, + (italic == litehtml::fontStyleItalic) ? TRUE : FALSE, + (decoration & litehtml::font_decoration_linethrough) ? TRUE : FALSE, + (decoration & litehtml::font_decoration_underline) ? TRUE : FALSE); + + cairo_save(m_temp_cr); + fnt->load_metrics(m_temp_cr); + + if(fm) + { + fm->ascent = fnt->metrics().ascent; + fm->descent = fnt->metrics().descent; + fm->height = fnt->metrics().height; + fm->x_height = fnt->metrics().x_height; + if(italic == litehtml::fontStyleItalic || decoration) + { + fm->draw_spaces = true; + } else + { + fm->draw_spaces = false; + } + } + + cairo_restore(m_temp_cr); + + return (litehtml::uint_ptr) fnt; +} + +void cairo_container::delete_font( litehtml::uint_ptr hFont ) +{ + cairo_font* fnt = (cairo_font*) hFont; + if(fnt) + { + delete fnt; + } +} + +int cairo_container::text_width( const litehtml::tchar_t* text, litehtml::uint_ptr hFont ) +{ + cairo_font* fnt = (cairo_font*) hFont; + + cairo_save(m_temp_cr); + int ret = fnt->text_width(m_temp_cr, text); + cairo_restore(m_temp_cr); + return ret; +} + +void cairo_container::draw_text( litehtml::uint_ptr hdc, const litehtml::tchar_t* text, litehtml::uint_ptr hFont, litehtml::web_color color, const litehtml::position& pos ) +{ + if(hFont) + { + cairo_font* fnt = (cairo_font*) hFont; + cairo_t* cr = (cairo_t*) hdc; + cairo_save(cr); + + apply_clip(cr); + + int x = pos.left(); + int y = pos.bottom() - fnt->metrics().descent; + + set_color(cr, color); + fnt->show_text(cr, x, y, text); + + cairo_restore(cr); + } +} + +int cairo_container::pt_to_px( int pt ) const +{ + HDC dc = GetDC(NULL); + int ret = MulDiv(pt, GetDeviceCaps(dc, LOGPIXELSY), 72); + ReleaseDC(NULL, dc); + return ret; +} + +int cairo_container::get_default_font_size() const +{ + return 16; +} + +void cairo_container::draw_list_marker( litehtml::uint_ptr hdc, const litehtml::list_marker& marker ) +{ + if(!marker.image.empty()) + { + std::wstring url; + t_make_url(marker.image.c_str(), marker.baseurl, url); + + lock_images_cache(); + images_map::iterator img_i = m_images.find(url.c_str()); + if(img_i != m_images.end()) + { + if(img_i->second) + { + draw_txdib((cairo_t*)hdc, img_i->second.get(), marker.pos.x, marker.pos.y, marker.pos.width, marker.pos.height); + } + } + unlock_images_cache(); + } else + { + switch(marker.marker_type) + { + case litehtml::list_style_type_circle: + { + draw_ellipse((cairo_t*) hdc, marker.pos.x, marker.pos.y, marker.pos.width, marker.pos.height, marker.color, 0.5); + } + break; + case litehtml::list_style_type_disc: + { + fill_ellipse((cairo_t*) hdc, marker.pos.x, marker.pos.y, marker.pos.width, marker.pos.height, marker.color); + } + break; + case litehtml::list_style_type_square: + if(hdc) + { + cairo_t* cr = (cairo_t*) hdc; + cairo_save(cr); + + cairo_new_path(cr); + cairo_rectangle(cr, marker.pos.x, marker.pos.y, marker.pos.width, marker.pos.height); + + set_color(cr, marker.color); + cairo_fill(cr); + cairo_restore(cr); + } + break; + } + } +} + +void cairo_container::load_image( const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, bool redraw_on_ready ) +{ + std::wstring url; + t_make_url(src, baseurl, url); + lock_images_cache(); + if(m_images.find(url.c_str()) == m_images.end()) + { + unlock_images_cache(); + image_ptr img = get_image(url.c_str(), redraw_on_ready); + lock_images_cache(); + m_images[url] = img; + unlock_images_cache(); + } else + { + unlock_images_cache(); + } + +} + +void cairo_container::get_image_size( const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, litehtml::size& sz ) +{ + std::wstring url; + t_make_url(src, baseurl, url); + + sz.width = 0; + sz.height = 0; + + lock_images_cache(); + images_map::iterator img = m_images.find(url.c_str()); + if(img != m_images.end()) + { + if(img->second) + { + sz.width = img->second->getWidth(); + sz.height = img->second->getHeight(); + } + } + unlock_images_cache(); +} + +void cairo_container::draw_image( litehtml::uint_ptr hdc, const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, const litehtml::position& pos ) +{ + cairo_t* cr = (cairo_t*) hdc; + cairo_save(cr); + apply_clip(cr); + + std::wstring url; + t_make_url(src, baseurl, url); + lock_images_cache(); + images_map::iterator img = m_images.find(url.c_str()); + if(img != m_images.end()) + { + if(img->second) + { + draw_txdib(cr, img->second.get(), pos.x, pos.y, pos.width, pos.height); + } + } + unlock_images_cache(); + cairo_restore(cr); +} + +void cairo_container::draw_background( litehtml::uint_ptr hdc, const litehtml::background_paint& bg ) +{ + cairo_t* cr = (cairo_t*) hdc; + cairo_save(cr); + apply_clip(cr); + + rounded_rectangle(cr, bg.border_box, bg.border_radius); + cairo_clip(cr); + + cairo_rectangle(cr, bg.clip_box.x, bg.clip_box.y, bg.clip_box.width, bg.clip_box.height); + cairo_clip(cr); + + if(bg.color.alpha) + { + set_color(cr, bg.color); + cairo_paint(cr); + } + + std::wstring url; + t_make_url(bg.image.c_str(), bg.baseurl.c_str(), url); + + lock_images_cache(); + images_map::iterator img_i = m_images.find(url.c_str()); + if(img_i != m_images.end() && img_i->second) + { + image_ptr bgbmp = img_i->second; + + image_ptr new_img; + if(bg.image_size.width != bgbmp->getWidth() || bg.image_size.height != bgbmp->getHeight()) + { + new_img = image_ptr(new CTxDIB); + bgbmp->resample(bg.image_size.width, bg.image_size.height, new_img.get()); + bgbmp = new_img; + } + + + cairo_surface_t* img = cairo_image_surface_create_for_data((unsigned char*) bgbmp->getBits(), CAIRO_FORMAT_ARGB32, bgbmp->getWidth(), bgbmp->getHeight(), bgbmp->getWidth() * 4); + cairo_pattern_t *pattern = cairo_pattern_create_for_surface(img); + cairo_matrix_t flib_m; + cairo_matrix_init(&flib_m, 1, 0, 0, -1, 0, 0); + cairo_matrix_translate(&flib_m, -bg.position_x, -bg.position_y); + cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT); + cairo_pattern_set_matrix (pattern, &flib_m); + + switch(bg.repeat) + { + case litehtml::background_repeat_no_repeat: + draw_txdib(cr, bgbmp.get(), bg.position_x, bg.position_y, bgbmp->getWidth(), bgbmp->getHeight()); + break; + + case litehtml::background_repeat_repeat_x: + cairo_set_source(cr, pattern); + cairo_rectangle(cr, bg.clip_box.left(), bg.position_y, bg.clip_box.width, bgbmp->getHeight()); + cairo_fill(cr); + break; + + case litehtml::background_repeat_repeat_y: + cairo_set_source(cr, pattern); + cairo_rectangle(cr, bg.position_x, bg.clip_box.top(), bgbmp->getWidth(), bg.clip_box.height); + cairo_fill(cr); + break; + + case litehtml::background_repeat_repeat: + cairo_set_source(cr, pattern); + cairo_rectangle(cr, bg.clip_box.left(), bg.clip_box.top(), bg.clip_box.width, bg.clip_box.height); + cairo_fill(cr); + break; + } + + cairo_pattern_destroy(pattern); + cairo_surface_destroy(img); + } + unlock_images_cache(); + cairo_restore(cr); +} + +bool cairo_container::add_path_arc(cairo_t* cr, double x, double y, double rx, double ry, double a1, double a2, bool neg) +{ + if(rx > 0 && ry > 0) + { + cairo_save(cr); + + cairo_translate(cr, x, y); + cairo_scale(cr, 1, ry / rx); + cairo_translate(cr, -x, -y); + + if(neg) + { + cairo_arc_negative(cr, x, y, rx, a1, a2); + } else + { + cairo_arc(cr, x, y, rx, a1, a2); + } + + cairo_restore(cr); + return true; + } + return false; +} + +void cairo_container::draw_borders( litehtml::uint_ptr hdc, const litehtml::borders& borders, const litehtml::position& draw_pos, bool root ) +{ + cairo_t* cr = (cairo_t*) hdc; + cairo_save(cr); + apply_clip(cr); + + cairo_new_path(cr); + + int bdr_top = 0; + int bdr_bottom = 0; + int bdr_left = 0; + int bdr_right = 0; + + if(borders.top.width != 0 && borders.top.style > litehtml::border_style_hidden) + { + bdr_top = (int) borders.top.width; + } + if(borders.bottom.width != 0 && borders.bottom.style > litehtml::border_style_hidden) + { + bdr_bottom = (int) borders.bottom.width; + } + if(borders.left.width != 0 && borders.left.style > litehtml::border_style_hidden) + { + bdr_left = (int) borders.left.width; + } + if(borders.right.width != 0 && borders.right.style > litehtml::border_style_hidden) + { + bdr_right = (int) borders.right.width; + } + + // draw right border + if (bdr_right) + { + set_color(cr, borders.right.color); + + double r_top = (double) borders.radius.top_right_x; + double r_bottom = (double) borders.radius.bottom_right_x; + + if(r_top) + { + double end_angle = 2.0 * M_PI; + double start_angle = end_angle - M_PI / 2.0 / ((double) bdr_top / (double) bdr_right + 0.5); + + if (!add_path_arc(cr, + draw_pos.right() - r_top, + draw_pos.top() + r_top, + r_top - bdr_right, + r_top - bdr_right + (bdr_right - bdr_top), + end_angle, + start_angle, true)) + { + cairo_move_to(cr, draw_pos.right() - bdr_right, draw_pos.top() + bdr_top); + } + + if (!add_path_arc(cr, + draw_pos.right() - r_top, + draw_pos.top() + r_top, + r_top, + r_top, + start_angle, + end_angle, false)) + { + cairo_line_to(cr, draw_pos.right(), draw_pos.top()); + } + } else + { + cairo_move_to(cr, draw_pos.right() - bdr_right, draw_pos.top() + bdr_top); + cairo_line_to(cr, draw_pos.right(), draw_pos.top()); + } + + if(r_bottom) + { + cairo_line_to(cr, draw_pos.right(), draw_pos.bottom() - r_bottom); + + double start_angle = 0; + double end_angle = start_angle + M_PI / 2.0 / ((double) bdr_bottom / (double) bdr_right + 0.5); + + if (!add_path_arc(cr, + draw_pos.right() - r_bottom, + draw_pos.bottom() - r_bottom, + r_bottom, + r_bottom, + start_angle, + end_angle, false)) + { + cairo_line_to(cr, draw_pos.right(), draw_pos.bottom()); + } + + if (!add_path_arc(cr, + draw_pos.right() - r_bottom, + draw_pos.bottom() - r_bottom, + r_bottom - bdr_right, + r_bottom - bdr_right + (bdr_right - bdr_bottom), + end_angle, + start_angle, true)) + { + cairo_line_to(cr, draw_pos.right() - bdr_right, draw_pos.bottom() - bdr_bottom); + } + } else + { + cairo_line_to(cr, draw_pos.right(), draw_pos.bottom()); + cairo_line_to(cr, draw_pos.right() - bdr_right, draw_pos.bottom() - bdr_bottom); + } + + cairo_fill(cr); + } + + // draw bottom border + if(bdr_bottom) + { + set_color(cr, borders.bottom.color); + + double r_left = borders.radius.bottom_left_x; + double r_right = borders.radius.bottom_right_x; + + if(r_left) + { + double start_angle = M_PI / 2.0; + double end_angle = start_angle + M_PI / 2.0 / ((double) bdr_left / (double) bdr_bottom + 0.5); + + if (!add_path_arc(cr, + draw_pos.left() + r_left, + draw_pos.bottom() - r_left, + r_left - bdr_bottom + (bdr_bottom - bdr_left), + r_left - bdr_bottom, + start_angle, + end_angle, false)) + { + cairo_move_to(cr, draw_pos.left() + bdr_left, draw_pos.bottom() - bdr_bottom); + } + + if (!add_path_arc(cr, + draw_pos.left() + r_left, + draw_pos.bottom() - r_left, + r_left, + r_left, + end_angle, + start_angle, true)) + { + cairo_line_to(cr, draw_pos.left(), draw_pos.bottom()); + } + } else + { + cairo_move_to(cr, draw_pos.left(), draw_pos.bottom()); + cairo_line_to(cr, draw_pos.left() + bdr_left, draw_pos.bottom() - bdr_bottom); + } + + if(r_right) + { + cairo_line_to(cr, draw_pos.right() - r_right, draw_pos.bottom()); + + double end_angle = M_PI / 2.0; + double start_angle = end_angle - M_PI / 2.0 / ((double) bdr_right / (double) bdr_bottom + 0.5); + + if (!add_path_arc(cr, + draw_pos.right() - r_right, + draw_pos.bottom() - r_right, + r_right, + r_right, + end_angle, + start_angle, true)) + { + cairo_line_to(cr, draw_pos.right(), draw_pos.bottom()); + } + + if (!add_path_arc(cr, + draw_pos.right() - r_right, + draw_pos.bottom() - r_right, + r_right - bdr_bottom + (bdr_bottom - bdr_right), + r_right - bdr_bottom, + start_angle, + end_angle, false)) + { + cairo_line_to(cr, draw_pos.right() - bdr_right, draw_pos.bottom() - bdr_bottom); + } + } else + { + cairo_line_to(cr, draw_pos.right() - bdr_right, draw_pos.bottom() - bdr_bottom); + cairo_line_to(cr, draw_pos.right(), draw_pos.bottom()); + } + + cairo_fill(cr); + } + + // draw top border + if(bdr_top) + { + set_color(cr, borders.top.color); + + double r_left = borders.radius.top_left_x; + double r_right = borders.radius.top_right_x; + + if(r_left) + { + double end_angle = M_PI * 3.0 / 2.0; + double start_angle = end_angle - M_PI / 2.0 / ((double) bdr_left / (double) bdr_top + 0.5); + + if (!add_path_arc(cr, + draw_pos.left() + r_left, + draw_pos.top() + r_left, + r_left, + r_left, + end_angle, + start_angle, true)) + { + cairo_move_to(cr, draw_pos.left(), draw_pos.top()); + } + + if (!add_path_arc(cr, + draw_pos.left() + r_left, + draw_pos.top() + r_left, + r_left - bdr_top + (bdr_top - bdr_left), + r_left - bdr_top, + start_angle, + end_angle, false)) + { + cairo_line_to(cr, draw_pos.left() + bdr_left, draw_pos.top() + bdr_top); + } + } else + { + cairo_move_to(cr, draw_pos.left(), draw_pos.top()); + cairo_line_to(cr, draw_pos.left() + bdr_left, draw_pos.top() + bdr_top); + } + + if(r_right) + { + cairo_line_to(cr, draw_pos.right() - r_right, draw_pos.top() + bdr_top); + + double start_angle = M_PI * 3.0 / 2.0; + double end_angle = start_angle + M_PI / 2.0 / ((double) bdr_right / (double) bdr_top + 0.5); + + if (!add_path_arc(cr, + draw_pos.right() - r_right, + draw_pos.top() + r_right, + r_right - bdr_top + (bdr_top - bdr_right), + r_right - bdr_top, + start_angle, + end_angle, false)) + { + cairo_line_to(cr, draw_pos.right() - bdr_right, draw_pos.top() + bdr_top); + } + + if (!add_path_arc(cr, + draw_pos.right() - r_right, + draw_pos.top() + r_right, + r_right, + r_right, + end_angle, + start_angle, true)) + { + cairo_line_to(cr, draw_pos.right(), draw_pos.top()); + } + } else + { + cairo_line_to(cr, draw_pos.right() - bdr_right, draw_pos.top() + bdr_top); + cairo_line_to(cr, draw_pos.right(), draw_pos.top()); + } + + cairo_fill(cr); + } + + // draw left border + if (bdr_left) + { + set_color(cr, borders.left.color); + + double r_top = borders.radius.top_left_x; + double r_bottom = borders.radius.bottom_left_x; + + if(r_top) + { + double start_angle = M_PI; + double end_angle = start_angle + M_PI / 2.0 / ((double) bdr_top / (double) bdr_left + 0.5); + + if (!add_path_arc(cr, + draw_pos.left() + r_top, + draw_pos.top() + r_top, + r_top - bdr_left, + r_top - bdr_left + (bdr_left - bdr_top), + start_angle, + end_angle, false)) + { + cairo_move_to(cr, draw_pos.left() + bdr_left, draw_pos.top() + bdr_top); + } + + if (!add_path_arc(cr, + draw_pos.left() + r_top, + draw_pos.top() + r_top, + r_top, + r_top, + end_angle, + start_angle, true)) + { + cairo_line_to(cr, draw_pos.left(), draw_pos.top()); + } + } else + { + cairo_move_to(cr, draw_pos.left() + bdr_left, draw_pos.top() + bdr_top); + cairo_line_to(cr, draw_pos.left(), draw_pos.top()); + } + + if(r_bottom) + { + cairo_line_to(cr, draw_pos.left(), draw_pos.bottom() - r_bottom); + + double end_angle = M_PI; + double start_angle = end_angle - M_PI / 2.0 / ((double) bdr_bottom / (double) bdr_left + 0.5); + + if (!add_path_arc(cr, + draw_pos.left() + r_bottom, + draw_pos.bottom() - r_bottom, + r_bottom, + r_bottom, + end_angle, + start_angle, true)) + { + cairo_line_to(cr, draw_pos.left(), draw_pos.bottom()); + } + + if (!add_path_arc(cr, + draw_pos.left() + r_bottom, + draw_pos.bottom() - r_bottom, + r_bottom - bdr_left, + r_bottom - bdr_left + (bdr_left - bdr_bottom), + start_angle, + end_angle, false)) + { + cairo_line_to(cr, draw_pos.left() + bdr_left, draw_pos.bottom() - bdr_bottom); + } + } else + { + cairo_line_to(cr, draw_pos.left(), draw_pos.bottom()); + cairo_line_to(cr, draw_pos.left() + bdr_left, draw_pos.bottom() - bdr_bottom); + } + + cairo_fill(cr); + } + cairo_restore(cr); +} + +void cairo_container::set_clip(const litehtml::position& pos, const litehtml::border_radiuses& bdr_radius, bool valid_x, bool valid_y) +{ + litehtml::position clip_pos = pos; + litehtml::position client_pos; + get_client_rect(client_pos); + if(!valid_x) + { + clip_pos.x = client_pos.x; + clip_pos.width = client_pos.width; + } + if(!valid_y) + { + clip_pos.y = client_pos.y; + clip_pos.height = client_pos.height; + } + m_clips.emplace_back(clip_pos, bdr_radius); +} + +void cairo_container::del_clip() +{ + if(!m_clips.empty()) + { + m_clips.pop_back(); + } +} + +void cairo_container::apply_clip( cairo_t* cr ) +{ + for(const auto& clip_box : m_clips) + { + rounded_rectangle(cr, clip_box.box, clip_box.radius); + cairo_clip(cr); + } +} + +void cairo_container::draw_ellipse( cairo_t* cr, int x, int y, int width, int height, const litehtml::web_color& color, double line_width ) +{ + if(!cr) return; + cairo_save(cr); + + apply_clip(cr); + + cairo_new_path(cr); + + cairo_translate (cr, x + width / 2.0, y + height / 2.0); + cairo_scale (cr, width / 2.0, height / 2.0); + cairo_arc (cr, 0, 0, 1, 0, 2 * M_PI); + + set_color(cr, color); + cairo_set_line_width(cr, line_width); + cairo_stroke(cr); + + cairo_restore(cr); +} + +void cairo_container::fill_ellipse( cairo_t* cr, int x, int y, int width, int height, const litehtml::web_color& color ) +{ + if(!cr) return; + cairo_save(cr); + + apply_clip(cr); + + cairo_new_path(cr); + + cairo_translate (cr, x + width / 2.0, y + height / 2.0); + cairo_scale (cr, width / 2.0, height / 2.0); + cairo_arc (cr, 0, 0, 1, 0, 2 * M_PI); + + set_color(cr, color); + cairo_fill(cr); + + cairo_restore(cr); +} + +void cairo_container::clear_images() +{ + lock_images_cache(); + m_images.clear(); + unlock_images_cache(); +} + +const litehtml::tchar_t* cairo_container::get_default_font_name() const +{ + return _t("Times New Roman"); +} + +void cairo_container::draw_txdib( cairo_t* cr, CTxDIB* bmp, int x, int y, int cx, int cy ) +{ + cairo_save(cr); + + cairo_matrix_t flib_m; + cairo_matrix_init(&flib_m, 1, 0, 0, -1, 0, 0); + + cairo_surface_t* img = NULL; + + CTxDIB rbmp; + + if(cx != bmp->getWidth() || cy != bmp->getHeight()) + { + bmp->resample(cx, cy, &rbmp); + img = cairo_image_surface_create_for_data((unsigned char*) rbmp.getBits(), CAIRO_FORMAT_ARGB32, rbmp.getWidth(), rbmp.getHeight(), rbmp.getWidth() * 4); + cairo_matrix_translate(&flib_m, 0, -rbmp.getHeight()); + cairo_matrix_translate(&flib_m, x, -y); + } else + { + img = cairo_image_surface_create_for_data((unsigned char*) bmp->getBits(), CAIRO_FORMAT_ARGB32, bmp->getWidth(), bmp->getHeight(), bmp->getWidth() * 4); + cairo_matrix_translate(&flib_m, 0, -bmp->getHeight()); + cairo_matrix_translate(&flib_m, x, -y); + } + + cairo_transform(cr, &flib_m); + cairo_set_source_surface(cr, img, 0, 0); + cairo_paint(cr); + + cairo_restore(cr); + cairo_surface_destroy(img); +} + +void cairo_container::rounded_rectangle(cairo_t* cr, const litehtml::position& pos, const litehtml::border_radiuses& radius) +{ + cairo_new_path(cr); + if(radius.top_left_x) + { + cairo_arc(cr, pos.left() + radius.top_left_x, pos.top() + radius.top_left_x, radius.top_left_x, M_PI, M_PI * 3.0 / 2.0); + } else + { + cairo_move_to(cr, pos.left(), pos.top()); + } + + cairo_line_to(cr, pos.right() - radius.top_right_x, pos.top()); + + if(radius.top_right_x) + { + cairo_arc(cr, pos.right() - radius.top_right_x, pos.top() + radius.top_right_x, radius.top_right_x, M_PI * 3.0 / 2.0, 2.0 * M_PI); + } + + cairo_line_to(cr, pos.right(), pos.bottom() - radius.bottom_right_x); + + if(radius.bottom_right_x) + { + cairo_arc(cr, pos.right() - radius.bottom_right_x, pos.bottom() - radius.bottom_right_x, radius.bottom_right_x, 0, M_PI / 2.0); + } + + cairo_line_to(cr, pos.left() - radius.bottom_left_x, pos.bottom()); + + if(radius.bottom_left_x) + { + cairo_arc(cr, pos.left() + radius.bottom_left_x, pos.bottom() - radius.bottom_left_x, radius.bottom_left_x, M_PI / 2.0, M_PI); + } +} + +void cairo_container::remove_image( std::wstring& url ) +{ + lock_images_cache(); + images_map::iterator i = m_images.find(url); + if(i != m_images.end()) + { + m_images.erase(i); + } + unlock_images_cache(); +} + +void cairo_container::add_image(std::wstring& url, image_ptr& img) +{ + lock_images_cache(); + images_map::iterator i = m_images.find(url); + if(i != m_images.end()) + { + if(img) + { + i->second = img; + } else + { + m_images.erase(i); + } + } + unlock_images_cache(); +} + +void cairo_container::lock_images_cache() +{ + EnterCriticalSection(&m_img_sync); +} + +void cairo_container::unlock_images_cache() +{ + LeaveCriticalSection(&m_img_sync); +} + +std::shared_ptr cairo_container::create_element(const litehtml::tchar_t* tag_name, const litehtml::string_map& attributes, const std::shared_ptr& doc) +{ + return 0; +} + +void cairo_container::get_media_features(litehtml::media_features& media) const +{ + litehtml::position client; + get_client_rect(client); + HDC hdc = GetDC(NULL); + + media.type = litehtml::media_type_screen; + media.width = client.width; + media.height = client.height; + media.color = 8; + media.monochrome = 0; + media.color_index = 256; + media.resolution = GetDeviceCaps(hdc, LOGPIXELSX); + media.device_width = GetDeviceCaps(hdc, HORZRES); + media.device_height = GetDeviceCaps(hdc, VERTRES); + + ReleaseDC(NULL, hdc); +} + +void cairo_container::get_language(litehtml::tstring& language, litehtml::tstring & culture) const +{ + language = _t("en"); + culture = _t(""); +} + +void cairo_container::make_url_utf8( const char* url, const char* basepath, std::wstring& out ) +{ + wchar_t* urlW = cairo_font::utf8_to_wchar(url); + wchar_t* basepathW = cairo_font::utf8_to_wchar(basepath); + make_url(urlW, basepathW, out); + + if(urlW) delete urlW; + if(basepathW) delete basepathW; +} + +void cairo_container::transform_text( litehtml::tstring& text, litehtml::text_transform tt ) +{ + if(text.empty()) return; + +#ifndef LITEHTML_UTF8 + switch(tt) + { + case litehtml::text_transform_capitalize: + if(!text.empty()) + { + text[0] = (WCHAR) CharUpper((LPWSTR) text[0]); + } + break; + case litehtml::text_transform_uppercase: + for(size_t i = 0; i < text.length(); i++) + { + text[i] = (WCHAR) CharUpper((LPWSTR) text[i]); + } + break; + case litehtml::text_transform_lowercase: + for(size_t i = 0; i < text.length(); i++) + { + text[i] = (WCHAR) CharLower((LPWSTR) text[i]); + } + break; + } +#else + LPWSTR txt = cairo_font::utf8_to_wchar(text.c_str()); + switch(tt) + { + case litehtml::text_transform_capitalize: + CharUpperBuff(txt, 1); + break; + case litehtml::text_transform_uppercase: + CharUpperBuff(txt, lstrlen(txt)); + break; + case litehtml::text_transform_lowercase: + CharLowerBuff(txt, lstrlen(txt)); + break; + } + LPSTR txtA = cairo_font::wchar_to_utf8(txt); + text = txtA; + delete txtA; + delete txt; +#endif +} + +void cairo_container::link(const std::shared_ptr& doc, const litehtml::element::ptr& el) +{ +} + +litehtml::tstring cairo_container::resolve_color(const litehtml::tstring& color) const +{ + struct custom_color + { + litehtml::tchar_t* name; + int color_index; + }; + + static custom_color colors[] = { + { _t("ActiveBorder"), COLOR_ACTIVEBORDER}, + { _t("ActiveCaption"), COLOR_ACTIVECAPTION}, + { _t("AppWorkspace"), COLOR_APPWORKSPACE }, + { _t("Background"), COLOR_BACKGROUND }, + { _t("ButtonFace"), COLOR_BTNFACE }, + { _t("ButtonHighlight"), COLOR_BTNHIGHLIGHT }, + { _t("ButtonShadow"), COLOR_BTNSHADOW }, + { _t("ButtonText"), COLOR_BTNTEXT }, + { _t("CaptionText"), COLOR_CAPTIONTEXT }, + { _t("GrayText"), COLOR_GRAYTEXT }, + { _t("Highlight"), COLOR_HIGHLIGHT }, + { _t("HighlightText"), COLOR_HIGHLIGHTTEXT }, + { _t("InactiveBorder"), COLOR_INACTIVEBORDER }, + { _t("InactiveCaption"), COLOR_INACTIVECAPTION }, + { _t("InactiveCaptionText"), COLOR_INACTIVECAPTIONTEXT }, + { _t("InfoBackground"), COLOR_INFOBK }, + { _t("InfoText"), COLOR_INFOTEXT }, + { _t("Menu"), COLOR_MENU }, + { _t("MenuText"), COLOR_MENUTEXT }, + { _t("Scrollbar"), COLOR_SCROLLBAR }, + { _t("ThreeDDarkShadow"), COLOR_3DDKSHADOW }, + { _t("ThreeDFace"), COLOR_3DFACE }, + { _t("ThreeDHighlight"), COLOR_3DHILIGHT }, + { _t("ThreeDLightShadow"), COLOR_3DLIGHT }, + { _t("ThreeDShadow"), COLOR_3DSHADOW }, + { _t("Window"), COLOR_WINDOW }, + { _t("WindowFrame"), COLOR_WINDOWFRAME }, + { _t("WindowText"), COLOR_WINDOWTEXT } + }; + + if (color == _t("Highlight")) + { + int iii = 0; + iii++; + } + + for (auto& clr : colors) + { + if (!litehtml::t_strcasecmp(clr.name, color.c_str())) + { + litehtml::tchar_t str_clr[20]; + DWORD rgb_color = GetSysColor(clr.color_index); +#ifdef LITEHTML_UTF8 + StringCchPrintfA(str_clr, 20, "#%02X%02X%02X", GetRValue(rgb_color), GetGValue(rgb_color), GetBValue(rgb_color)); +#else + StringCchPrintf(str_clr, 20, L"#%02X%02X%02X", GetRValue(rgb_color), GetGValue(rgb_color), GetBValue(rgb_color)); +#endif // LITEHTML_UTF8 + return std::move(litehtml::tstring(str_clr)); + } + } + return std::move(litehtml::tstring()); +} diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_container.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_container.h new file mode 100644 index 0000000..2012c46 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_container.h @@ -0,0 +1,110 @@ +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef LITEHTML_UTF8 +#define t_make_url make_url_utf8 +#else +#define t_make_url make_url +#endif + +struct cairo_clip_box +{ + typedef std::vector vector; + litehtml::position box; + litehtml::border_radiuses radius; + + cairo_clip_box(const litehtml::position& vBox, litehtml::border_radiuses vRad) + { + box = vBox; + radius = vRad; + } + + cairo_clip_box(const cairo_clip_box& val) + { + box = val.box; + radius = val.radius; + } + cairo_clip_box& operator=(const cairo_clip_box& val) + { + box = val.box; + radius = val.radius; + return *this; + } +}; + +class cairo_container : public litehtml::document_container +{ +public: + typedef std::shared_ptr image_ptr; + typedef std::map images_map; + +protected: + cairo_surface_t* m_temp_surface; + cairo_t* m_temp_cr; + images_map m_images; + cairo_clip_box::vector m_clips; + IMLangFontLink2* m_font_link; + CRITICAL_SECTION m_img_sync; +public: + cairo_container(void); + virtual ~cairo_container(void); + + virtual litehtml::uint_ptr create_font(const litehtml::tchar_t* faceName, int size, int weight, litehtml::font_style italic, unsigned int decoration, litehtml::font_metrics* fm) override; + virtual void delete_font(litehtml::uint_ptr hFont) override; + virtual int text_width(const litehtml::tchar_t* text, litehtml::uint_ptr hFont) override; + virtual void draw_text(litehtml::uint_ptr hdc, const litehtml::tchar_t* text, litehtml::uint_ptr hFont, litehtml::web_color color, const litehtml::position& pos) override; + + virtual int pt_to_px(int pt) const override; + virtual int get_default_font_size() const override; + virtual const litehtml::tchar_t* get_default_font_name() const override; + virtual void draw_list_marker(litehtml::uint_ptr hdc, const litehtml::list_marker& marker) override; + virtual void load_image(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, bool redraw_on_ready) override; + virtual void get_image_size(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, litehtml::size& sz) override; + virtual void draw_image(litehtml::uint_ptr hdc, const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, const litehtml::position& pos); + virtual void draw_background(litehtml::uint_ptr hdc, const litehtml::background_paint& bg) override; + virtual void draw_borders(litehtml::uint_ptr hdc, const litehtml::borders& borders, const litehtml::position& draw_pos, bool root) override; + + virtual void transform_text(litehtml::tstring& text, litehtml::text_transform tt) override; + virtual void set_clip(const litehtml::position& pos, const litehtml::border_radiuses& bdr_radius, bool valid_x, bool valid_y) override; + virtual void del_clip() override; + virtual std::shared_ptr create_element(const litehtml::tchar_t* tag_name, const litehtml::string_map& attributes, const std::shared_ptr& doc) override; + virtual void get_media_features(litehtml::media_features& media) const override; + virtual void get_language(litehtml::tstring& language, litehtml::tstring & culture) const override; + virtual void link(const std::shared_ptr& doc, const litehtml::element::ptr& el) override; + virtual litehtml::tstring resolve_color(const litehtml::tstring& color) const override; + + + virtual void make_url( LPCWSTR url, LPCWSTR basepath, std::wstring& out ) = 0; + virtual image_ptr get_image(LPCWSTR url, bool redraw_on_ready) = 0; + void clear_images(); + void add_image(std::wstring& url, image_ptr& img); + void remove_image(std::wstring& url); + void make_url_utf8( const char* url, const char* basepath, std::wstring& out ); + +protected: + virtual void draw_ellipse(cairo_t* cr, int x, int y, int width, int height, const litehtml::web_color& color, double line_width); + virtual void fill_ellipse(cairo_t* cr, int x, int y, int width, int height, const litehtml::web_color& color); + virtual void rounded_rectangle( cairo_t* cr, const litehtml::position &pos, const litehtml::border_radiuses &radius ); + + void set_color(cairo_t* cr, litehtml::web_color color) { cairo_set_source_rgba(cr, color.red / 255.0, color.green / 255.0, color.blue / 255.0, color.alpha / 255.0); } +private: + simpledib::dib* get_dib(litehtml::uint_ptr hdc) { return (simpledib::dib*) hdc; } + void apply_clip(cairo_t* cr); + bool add_path_arc(cairo_t* cr, double x, double y, double rx, double ry, double a1, double a2, bool neg); + + void draw_txdib(cairo_t* cr, CTxDIB* bmp, int x, int y, int cx, int cy); + void lock_images_cache(); + void unlock_images_cache(); +}; diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_font.cpp b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_font.cpp new file mode 100644 index 0000000..7a1bbe5 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_font.cpp @@ -0,0 +1,379 @@ +#include "cairo_font.h" + +cairo_font::cairo_font(IMLangFontLink2* fl, HFONT hFont, int size ) +{ + init(); + m_font_link = fl; + if(m_font_link) + { + m_font_link->AddRef(); + } + m_size = size; + set_font(hFont); +} + +cairo_font::cairo_font(IMLangFontLink2* fl, LPCWSTR facename, int size, int weight, BOOL italic, BOOL strikeout, BOOL underline ) +{ + init(); + m_size = size; + m_font_link = fl; + if(m_font_link) + { + m_font_link->AddRef(); + } + + LOGFONT lf; + ZeroMemory(&lf, sizeof(lf)); + if(!lstrcmpi(facename, L"monospace")) + { + wcscpy_s(lf.lfFaceName, LF_FACESIZE, L"Courier New"); + } else if(!lstrcmpi(facename, L"serif")) + { + wcscpy_s(lf.lfFaceName, LF_FACESIZE, L"Times New Roman"); + } else if(!lstrcmpi(facename, L"sans-serif")) + { + wcscpy_s(lf.lfFaceName, LF_FACESIZE, L"Arial"); + } else if(!lstrcmpi(facename, L"fantasy")) + { + wcscpy_s(lf.lfFaceName, LF_FACESIZE, L"Impact"); + } else if(!lstrcmpi(facename, L"cursive")) + { + wcscpy_s(lf.lfFaceName, LF_FACESIZE, L"Comic Sans MS"); + } else + { + wcscpy_s(lf.lfFaceName, LF_FACESIZE, facename); + } + + lf.lfHeight = -size; + lf.lfWeight = weight; + lf.lfItalic = italic; + lf.lfCharSet = DEFAULT_CHARSET; + lf.lfOutPrecision = OUT_DEFAULT_PRECIS; + lf.lfClipPrecision = CLIP_DEFAULT_PRECIS; + lf.lfQuality = DEFAULT_QUALITY; + lf.lfStrikeOut = strikeout; + lf.lfUnderline = underline; + + HFONT fnt = CreateFontIndirect(&lf); + set_font(fnt); +} + +cairo_font::~cairo_font() +{ + if(m_font_face) + { + cairo_font_face_destroy(m_font_face); + } + for(size_t i = 0; i < m_linked_fonts.size(); i++) + { + if(m_linked_fonts[i]->hFont) + { + m_font_link->ReleaseFont(m_linked_fonts[i]->hFont); + } + if(m_linked_fonts[i]->font_face) + { + cairo_font_face_destroy(m_linked_fonts[i]->font_face); + } + } + m_linked_fonts.clear(); + if(m_font_link) + { + m_font_link->AddRef(); + } + if(m_hFont) + { + DeleteObject(m_hFont); + } +} + +void cairo_font::show_text( cairo_t* cr, int x, int y, const litehtml::tchar_t* str ) +{ + lock(); + text_chunk::vector chunks; + split_text(str, chunks); + cairo_set_font_size(cr, m_size); + cairo_move_to(cr, x, y); + for(size_t i = 0; i < chunks.size(); i++) + { + if(chunks[i]->font) + { + cairo_set_font_face(cr, chunks[i]->font->font_face); + } else + { + cairo_set_font_face(cr, m_font_face); + } + cairo_show_text(cr, chunks[i]->text); + } + unlock(); + + if(m_bUnderline) + { + int tw = text_width(cr, chunks); + + lock(); + cairo_set_line_width(cr, 1); + cairo_move_to(cr, x, y + 1.5); + cairo_line_to(cr, x + tw, y + 1.5); + cairo_stroke(cr); + unlock(); + } + if(m_bStrikeOut) + { + int tw = text_width(cr, chunks); + + cairo_font_metrics fm; + get_metrics(cr, &fm); + + int ln_y = y - fm.x_height / 2; + + lock(); + cairo_set_line_width(cr, 1); + cairo_move_to(cr, x, (double) ln_y - 0.5); + cairo_line_to(cr, x + tw, (double) ln_y - 0.5); + cairo_stroke(cr); + unlock(); + } + + free_text_chunks(chunks); +} + +void cairo_font::split_text( const litehtml::tchar_t* src, text_chunk::vector& chunks ) +{ + wchar_t* str; +#ifdef LITEHTML_UTF8 + str = cairo_font::utf8_to_wchar(src); + wchar_t* str_start = str; +#else + str = (wchar_t*) src; +#endif + + int cch = lstrlen(str); + + HDC hdc = GetDC(NULL); + SelectObject(hdc, m_hFont); + HRESULT hr = S_OK; + while(cch > 0) + { + DWORD dwActualCodePages; + long cchActual; + if(m_font_link) + { + hr = m_font_link->GetStrCodePages(str, cch, m_font_code_pages, &dwActualCodePages, &cchActual); + } else + { + hr = S_FALSE; + } + + if(hr != S_OK) + { + break; + } + + text_chunk* chk = new text_chunk; + + int sz = WideCharToMultiByte(CP_UTF8, 0, str, cchActual, chk->text, 0, NULL, NULL) + 1; + chk->text = new CHAR[sz]; + sz = WideCharToMultiByte(CP_UTF8, 0, str, cchActual, chk->text, sz, NULL, NULL); + chk->text[sz] = 0; + chk->font = NULL; + + if(!(dwActualCodePages & m_font_code_pages)) + { + for(linked_font::vector::iterator i = m_linked_fonts.begin(); i != m_linked_fonts.end(); i++) + { + if((*i)->code_pages == dwActualCodePages) + { + chk->font = (*i); + break; + } + } + if(!chk->font) + { + linked_font* lkf = new linked_font; + lkf->code_pages = dwActualCodePages; + lkf->hFont = NULL; + m_font_link->MapFont(hdc, dwActualCodePages, 0, &lkf->hFont); + if (lkf->hFont) + { + lkf->font_face = create_font_face(lkf->hFont); + m_linked_fonts.push_back(lkf); + } + else + { + delete lkf; + lkf = NULL; + } + chk->font = lkf; + } + } + + chunks.push_back(chk); + + cch -= cchActual; + str += cchActual; + } + + if(hr != S_OK) + { + text_chunk* chk = new text_chunk; + + int sz = WideCharToMultiByte(CP_UTF8, 0, str, -1, chk->text, 0, NULL, NULL) + 1; + chk->text = new CHAR[sz]; + sz = WideCharToMultiByte(CP_UTF8, 0, str, -1, chk->text, sz, NULL, NULL); + chk->text[sz] = 0; + chk->font = NULL; + chunks.push_back(chk); + } + + ReleaseDC(NULL, hdc); + +#ifdef LITEHTML_UTF8 + delete str_start; +#endif +} + +void cairo_font::free_text_chunks( text_chunk::vector& chunks ) +{ + for(size_t i = 0; i < chunks.size(); i++) + { + delete chunks[i]; + } + chunks.clear(); +} + +cairo_font_face_t* cairo_font::create_font_face( HFONT fnt ) +{ + LOGFONT lf; + GetObject(fnt, sizeof(LOGFONT), &lf); + return cairo_win32_font_face_create_for_logfontw(&lf); +} + +int cairo_font::text_width( cairo_t* cr, const litehtml::tchar_t* str ) +{ + text_chunk::vector chunks; + split_text(str, chunks); + + int ret = text_width(cr, chunks); + + free_text_chunks(chunks); + + return (int) ret; +} + +int cairo_font::text_width( cairo_t* cr, text_chunk::vector& chunks ) +{ + lock(); + cairo_set_font_size(cr, m_size); + double ret = 0; + for(size_t i = 0; i < chunks.size(); i++) + { + if(chunks[i]->font) + { + cairo_set_font_face(cr, chunks[i]->font->font_face); + } else + { + cairo_set_font_face(cr, m_font_face); + } + cairo_text_extents_t ext; + cairo_text_extents(cr, chunks[i]->text, &ext); + ret += ext.x_advance; + } + unlock(); + + return (int) ret; +} + +void cairo_font::get_metrics(cairo_t* cr, cairo_font_metrics* fm ) +{ + lock(); + cairo_set_font_face(cr, m_font_face); + cairo_set_font_size(cr, m_size); + cairo_font_extents_t ext; + cairo_font_extents(cr, &ext); + + cairo_text_extents_t tex; + cairo_text_extents(cr, "x", &tex); + + fm->ascent = (int) ext.ascent; + fm->descent = (int) ext.descent; + fm->height = (int) (ext.ascent + ext.descent); + fm->x_height = (int) tex.height; + unlock(); +} + +void cairo_font::set_font( HFONT hFont ) +{ + clear(); + + m_hFont = hFont; + m_font_face = create_font_face(m_hFont); + m_font_code_pages = 0; + if(m_font_link) + { + HDC hdc = GetDC(NULL); + SelectObject(hdc, m_hFont); + m_font_link->GetFontCodePages(hdc, m_hFont, &m_font_code_pages); + ReleaseDC(NULL, hdc); + } + LOGFONT lf; + GetObject(m_hFont, sizeof(LOGFONT), &lf); + m_bUnderline = lf.lfUnderline; + m_bStrikeOut = lf.lfStrikeOut; +} + +void cairo_font::clear() +{ + if(m_font_face) + { + cairo_font_face_destroy(m_font_face); + m_font_face = NULL; + } + for(size_t i = 0; i < m_linked_fonts.size(); i++) + { + if(m_linked_fonts[i]->hFont && m_font_link) + { + m_font_link->ReleaseFont(m_linked_fonts[i]->hFont); + } + if(m_linked_fonts[i]->font_face) + { + cairo_font_face_destroy(m_linked_fonts[i]->font_face); + } + } + m_linked_fonts.clear(); + if(m_hFont) + { + DeleteObject(m_hFont); + m_hFont = NULL; + } +} + +void cairo_font::init() +{ + m_hFont = NULL; + m_font_face = NULL; + m_font_link = NULL; + m_font_code_pages = 0; + m_size = 0; + m_bUnderline = FALSE; + m_bStrikeOut = FALSE; +} + +wchar_t* cairo_font::utf8_to_wchar( const char* src ) +{ + if(!src) return NULL; + + int len = (int) strlen(src); + wchar_t* ret = new wchar_t[len + 1]; + MultiByteToWideChar(CP_UTF8, 0, src, -1, ret, len + 1); + return ret; +} + +char* cairo_font::wchar_to_utf8( const wchar_t* src ) +{ + if(!src) return NULL; + + int len = WideCharToMultiByte(CP_UTF8, 0, src, -1, NULL, 0, NULL, NULL); + char* ret = new char[len]; + WideCharToMultiByte(CP_UTF8, 0, src, -1, ret, len, NULL, NULL); + return ret; +} \ No newline at end of file diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_font.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_font.h new file mode 100644 index 0000000..a1fa212 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/cairo/cairo_font.h @@ -0,0 +1,117 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct linked_font +{ + typedef std::vector vector; + + DWORD code_pages; + HFONT hFont; + cairo_font_face_t* font_face; +}; + +struct text_chunk +{ + typedef std::vector vector; + + char* text; + linked_font* font; + + ~text_chunk() + { + if(text) + { + delete text; + } + } +}; + +struct cairo_font_metrics +{ + int height; + int ascent; + int descent; + int x_height; +}; + + +class cairo_font +{ + HFONT m_hFont; + cairo_font_face_t* m_font_face; + IMLangFontLink2* m_font_link; + DWORD m_font_code_pages; + linked_font::vector m_linked_fonts; + int m_size; + BOOL m_bUnderline; + BOOL m_bStrikeOut; + cairo_font_metrics m_metrics; +public: + // fonts are not thread safe :( + // you have to declare and initialize cairo_font::m_sync before the first using. + static CRITICAL_SECTION m_sync; + + cairo_font(IMLangFontLink2* fl, HFONT hFont, int size); + cairo_font(IMLangFontLink2* fl, LPCWSTR facename, int size, int weight, BOOL italic, BOOL strikeout, BOOL underline); + + void init(); + ~cairo_font(); + + void show_text(cairo_t* cr, int x, int y, const litehtml::tchar_t*); + int text_width(cairo_t* cr, const litehtml::tchar_t* str); + void load_metrics(cairo_t* cr); + cairo_font_metrics& metrics(); + static wchar_t* utf8_to_wchar(const char* src); + static char* wchar_to_utf8(const wchar_t* src); +private: + void split_text(const litehtml::tchar_t* str, text_chunk::vector& chunks); + void free_text_chunks(text_chunk::vector& chunks); + cairo_font_face_t* create_font_face(HFONT fnt); + void set_font(HFONT hFont); + void clear(); + int text_width(cairo_t* cr, text_chunk::vector& chunks); + void lock(); + void unlock(); + int round_d(double val); + void get_metrics(cairo_t* cr, cairo_font_metrics* fm); +}; + +inline void cairo_font::lock() +{ + EnterCriticalSection(&m_sync); +} + +inline void cairo_font::unlock() +{ + LeaveCriticalSection(&m_sync); +} + +inline int cairo_font::round_d(double val) +{ + int int_val = (int) val; + if(val - int_val >= 0.5) + { + int_val++; + } + return int_val; +} + +inline cairo_font_metrics& cairo_font::metrics() +{ + return m_metrics; +} + +inline void cairo_font::load_metrics(cairo_t* cr) +{ + get_metrics(cr, &m_metrics); +} diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/gdiplus/gdiplus_container.cpp b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/gdiplus/gdiplus_container.cpp new file mode 100644 index 0000000..d0c374e --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/gdiplus/gdiplus_container.cpp @@ -0,0 +1,198 @@ +#include "gdiplus_container.h" + +gdiplus_container::gdiplus_container(void) +{ +} + +gdiplus_container::~gdiplus_container(void) +{ +} + +void gdiplus_container::draw_ellipse( HDC hdc, int x, int y, int width, int height, const litehtml::web_color& color, int line_width ) +{ + Gdiplus::Graphics graphics(hdc); + Gdiplus::LinearGradientBrush* brush = NULL; + + graphics.SetCompositingQuality(Gdiplus::CompositingQualityHighQuality); + graphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias); + + Gdiplus::Pen pen( Gdiplus::Color(color.alpha, color.red, color.green, color.blue) ); + graphics.DrawEllipse(&pen, x, y, width, height); +} + +void gdiplus_container::fill_ellipse( HDC hdc, int x, int y, int width, int height, const litehtml::web_color& color ) +{ + Gdiplus::Graphics graphics(hdc); + + graphics.SetCompositingQuality(Gdiplus::CompositingQualityHighQuality); + graphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias); + + Gdiplus::SolidBrush brush( Gdiplus::Color(color.alpha, color.red, color.green, color.blue) ); + graphics.FillEllipse(&brush, x, y, width, height); +} + +void gdiplus_container::fill_rect( HDC hdc, int x, int y, int width, int height, const litehtml::web_color& color, const litehtml::css_border_radius& radius ) +{ + Gdiplus::Graphics graphics(hdc); + + Gdiplus::SolidBrush brush( Gdiplus::Color(color.alpha, color.red, color.green, color.blue) ); + graphics.FillRectangle(&brush, x, y, width, height); +} + +void gdiplus_container::get_img_size( litehtml::uint_ptr img, litehtml::size& sz ) +{ + Gdiplus::Bitmap* bmp = (Gdiplus::Bitmap*) img; + if(bmp) + { + sz.width = bmp->GetWidth(); + sz.height = bmp->GetHeight(); + } +} + +void gdiplus_container::draw_img(HDC hdc, litehtml::uint_ptr img, const litehtml::position& pos ) +{ + Gdiplus::Bitmap* bmp = (Gdiplus::Bitmap*) img; + if(bmp) + { + Gdiplus::Graphics graphics(hdc); + graphics.SetInterpolationMode(Gdiplus::InterpolationModeNearestNeighbor); + graphics.SetPixelOffsetMode(Gdiplus::PixelOffsetModeHalf); + graphics.DrawImage(bmp, pos.x, pos.y, pos.width, pos.height); + } +} + +void gdiplus_container::free_image( litehtml::uint_ptr img ) +{ + Gdiplus::Bitmap* bmp = (Gdiplus::Bitmap*) img; + if(bmp) + { + delete bmp; + } +} + +void gdiplus_container::draw_img_bg( HDC hdc, litehtml::uint_ptr img, const litehtml::position& draw_pos, const litehtml::position& pos, litehtml::background_repeat repeat, litehtml::background_attachment attachment ) +{ + Gdiplus::Bitmap* bgbmp = (Gdiplus::Bitmap*) img; + + int img_width = bgbmp->GetWidth(); + int img_height = bgbmp->GetHeight(); + + Gdiplus::Graphics graphics(hdc); + graphics.SetInterpolationMode(Gdiplus::InterpolationModeNearestNeighbor); + graphics.SetPixelOffsetMode(Gdiplus::PixelOffsetModeHalf); + + Gdiplus::Region reg(Gdiplus::Rect(draw_pos.left(), draw_pos.top(), draw_pos.width, draw_pos.height)); + graphics.SetClip(®); + + switch(repeat) + { + case litehtml::background_repeat_no_repeat: + { + graphics.DrawImage(bgbmp, pos.x, pos.y, bgbmp->GetWidth(), bgbmp->GetHeight()); + } + break; + case litehtml::background_repeat_repeat_x: + { + Gdiplus::CachedBitmap bmp(bgbmp, &graphics); + for(int x = pos.left(); x < pos.right(); x += bgbmp->GetWidth()) + { + graphics.DrawCachedBitmap(&bmp, x, pos.top()); + } + + for(int x = pos.left() - bgbmp->GetWidth(); x + (int) bgbmp->GetWidth() > draw_pos.left(); x -= bgbmp->GetWidth()) + { + graphics.DrawCachedBitmap(&bmp, x, pos.top()); + } + } + break; + case litehtml::background_repeat_repeat_y: + { + Gdiplus::CachedBitmap bmp(bgbmp, &graphics); + for(int y = pos.top(); y < pos.bottom(); y += bgbmp->GetHeight()) + { + graphics.DrawCachedBitmap(&bmp, pos.left(), y); + } + + for(int y = pos.top() - bgbmp->GetHeight(); y + (int) bgbmp->GetHeight() > draw_pos.top(); y -= bgbmp->GetHeight()) + { + graphics.DrawCachedBitmap(&bmp, pos.left(), y); + } + } + break; + case litehtml::background_repeat_repeat: + { + Gdiplus::CachedBitmap bmp(bgbmp, &graphics); + if(bgbmp->GetHeight() >= 0) + { + for(int x = pos.left(); x < pos.right(); x += bgbmp->GetWidth()) + { + for(int y = pos.top(); y < pos.bottom(); y += bgbmp->GetHeight()) + { + graphics.DrawCachedBitmap(&bmp, x, y); + } + } + } + } + break; + } +} + +void gdiplus_container::draw_borders( litehtml::uint_ptr hdc, const litehtml::css_borders& borders, const litehtml::position& draw_pos ) +{ + apply_clip((HDC) hdc); + + // draw left border + if(borders.left.width.val() != 0 && borders.left.style > litehtml::border_style_hidden) + { + HPEN pen = CreatePen(PS_SOLID, 1, RGB(borders.left.color.red, borders.left.color.green, borders.left.color.blue)); + HPEN oldPen = (HPEN) SelectObject((HDC) hdc, pen); + for(int x = 0; x < borders.left.width.val(); x++) + { + MoveToEx((HDC) hdc, draw_pos.left() + x, draw_pos.top(), NULL); + LineTo((HDC) hdc, draw_pos.left() + x, draw_pos.bottom()); + } + SelectObject((HDC) hdc, oldPen); + DeleteObject(pen); + } + // draw right border + if(borders.right.width.val() != 0 && borders.right.style > litehtml::border_style_hidden) + { + HPEN pen = CreatePen(PS_SOLID, 1, RGB(borders.right.color.red, borders.right.color.green, borders.right.color.blue)); + HPEN oldPen = (HPEN) SelectObject((HDC) hdc, pen); + for(int x = 0; x < borders.right.width.val(); x++) + { + MoveToEx((HDC) hdc, draw_pos.right() - x - 1, draw_pos.top(), NULL); + LineTo((HDC) hdc, draw_pos.right() - x - 1, draw_pos.bottom()); + } + SelectObject((HDC) hdc, oldPen); + DeleteObject(pen); + } + // draw top border + if(borders.top.width.val() != 0 && borders.top.style > litehtml::border_style_hidden) + { + HPEN pen = CreatePen(PS_SOLID, 1, RGB(borders.top.color.red, borders.top.color.green, borders.top.color.blue)); + HPEN oldPen = (HPEN) SelectObject((HDC) hdc, pen); + for(int y = 0; y < borders.top.width.val(); y++) + { + MoveToEx((HDC) hdc, draw_pos.left(), draw_pos.top() + y, NULL); + LineTo((HDC) hdc, draw_pos.right(), draw_pos.top() + y); + } + SelectObject((HDC) hdc, oldPen); + DeleteObject(pen); + } + // draw bottom border + if(borders.bottom.width.val() != 0 && borders.bottom.style > litehtml::border_style_hidden) + { + HPEN pen = CreatePen(PS_SOLID, 1, RGB(borders.bottom.color.red, borders.bottom.color.green, borders.bottom.color.blue)); + HPEN oldPen = (HPEN) SelectObject((HDC) hdc, pen); + for(int y = 0; y < borders.bottom.width.val(); y++) + { + MoveToEx((HDC) hdc, draw_pos.left(), draw_pos.bottom() - y - 1, NULL); + LineTo((HDC) hdc, draw_pos.right(), draw_pos.bottom() - y - 1); + } + SelectObject((HDC) hdc, oldPen); + DeleteObject(pen); + } + + release_clip((HDC) hdc); +} diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/gdiplus/gdiplus_container.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/gdiplus/gdiplus_container.h new file mode 100644 index 0000000..c6d607a --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/gdiplus/gdiplus_container.h @@ -0,0 +1,29 @@ +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "..\win32\win32_container.h" + +class gdiplus_container : public litehtml::win32_container +{ +public: + gdiplus_container(void); + virtual ~gdiplus_container(void); + +protected: + virtual void draw_ellipse(HDC hdc, int x, int y, int width, int height, const litehtml::web_color& color, int line_width); + virtual void fill_ellipse(HDC hdc, int x, int y, int width, int height, const litehtml::web_color& color); + virtual void fill_rect(HDC hdc, int x, int y, int width, int height, const litehtml::web_color& color, const litehtml::css_border_radius& radius); + virtual void get_img_size(litehtml::uint_ptr img, litehtml::size& sz); + virtual void draw_img(HDC hdc, litehtml::uint_ptr img, const litehtml::position& pos); + virtual void free_image(litehtml::uint_ptr img); + virtual void draw_img_bg(HDC hdc, litehtml::uint_ptr img, const litehtml::position& draw_pos, const litehtml::position& pos, litehtml::background_repeat repeat, litehtml::background_attachment attachment); + virtual void draw_borders(litehtml::uint_ptr hdc, const litehtml::css_borders& borders, const litehtml::position& draw_pos); +}; diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/haiku/container_haiku.cpp b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/haiku/container_haiku.cpp new file mode 100644 index 0000000..e919a6d --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/haiku/container_haiku.cpp @@ -0,0 +1,568 @@ +/* + * Copyright 2019-2020 Haiku Inc. + * All rights reserved. Distributed under the terms of the BSD 3-clause license. + * Constributors + * 2019-2020 Adam Fowler + */ +#include "container_haiku.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +LiteHtmlView::LiteHtmlView(BRect frame, const char *name) + : BView(frame, name, B_FOLLOW_ALL, B_WILL_DRAW), + fContext(NULL), + m_html(NULL), + m_images(), + m_base_url(), + m_url() +{ + + BRect bounds(Bounds()); + BPoint topLeft = bounds.LeftTop(); + std::cout << "Initial bounds: topLeft x: " << +topLeft.x << ", y: " + << +topLeft.y << ", width: " << +bounds.Width() << ", height: " + << +bounds.Height() << std::endl; + + SetDrawingMode(B_OP_OVER); + SetFont(be_plain_font); + + //FillRect(bounds,B_SOLID_LOW); + + //SetLowColor(B_DOCUMENT_PANEL_COLOR); + //FillRect(rect); +} + +LiteHtmlView::~LiteHtmlView() +{ +} + +void +LiteHtmlView::SetContext(litehtml::context* ctx) +{ + fContext = ctx; +} + +void +LiteHtmlView::RenderFile(const char* localFilePath) +{ + std::cout << "RenderFile" << std::endl; + //BUrlRequest req; + // assume a local file for now, that is HTML + std::ifstream t(localFilePath); + std::string html((std::istreambuf_iterator(t)), + std::istreambuf_iterator()); + + //std::cout << "HTML output:-" << std::endl << html << std::endl; + + // Get parent folder for the base url + std::cout << "Loaded from file: " << localFilePath << std::endl; + BPath htmlPath(localFilePath); + BPath dirPath; + htmlPath.GetParent(&dirPath); + std::cout << "parent path: " << dirPath.Path() << std::endl; + set_base_url(dirPath.Path()); + //std::cout << " base url now:" << m_base_url << std::endl; + + RenderHTML(html); +} + +void +LiteHtmlView::RenderHTML(const std::string& htmlText) +{ + std::cout << "RenderHTML" << std::endl; + + // now use this string + m_html = litehtml::document::createFromString( + htmlText.c_str(), this, fContext); + if (m_html) + { + std::cout << "Successfully read html" << std::endl; + // success + // post-parse render operations, if required. + Invalidate(); + } else { + std::cout << "Failed to read html" << std::endl; + } + // always fire the rendering complete message + std::cout << "Sending html rendered message: " << M_HTML_RENDERED << std::endl; +} + +void +LiteHtmlView::Draw(BRect b) +{ + std::cout << "DRAW CALLED" << std::endl; + + BRect bounds(Bounds()); + FillRect(bounds,B_SOLID_LOW); + + // b only part of the window, but we need to draw the whole lot + + if (NULL != m_html) { + BPoint leftTop = bounds.LeftTop(); + litehtml::position clip(leftTop.x,leftTop.y, + bounds.Width(),bounds.Height()); + m_html->render(bounds.Width()); + m_html->draw((litehtml::uint_ptr) this,0,0,&clip); + } + SendNotices(M_HTML_RENDERED,new BMessage(M_HTML_RENDERED)); +} + +void +LiteHtmlView::GetPreferredSize(float* width,float* height) +{ + if (NULL == m_html) + { + BRect bounds(Bounds()); + *width = bounds.Width(); + *height = bounds.Height(); + } else { + *width = m_html->width(); + *height = m_html->height(); + } +} + +litehtml::uint_ptr +LiteHtmlView::create_font( const litehtml::tchar_t* faceName, int size, + int weight, litehtml::font_style italic, unsigned int decoration, + litehtml::font_metrics* fm ) +{ + //std::cout << "create_font" << std::endl; + litehtml::string_vector fonts; + litehtml::split_string(faceName, fonts, ","); + litehtml::trim(fonts[0]); + + uint16 face = B_REGULAR_FACE; // default + if (italic == litehtml::fontStyleItalic) + { + face |= B_ITALIC_FACE; + } + if (decoration & litehtml::font_decoration_underline) + { + face |= B_UNDERSCORE_FACE; + } + if (decoration & litehtml::font_decoration_linethrough) + { + face |= B_STRIKEOUT_FACE; + } + // Note: LIGHT, HEAVY, CONDENSED not supported in BeOS R5 +#ifdef __HAIKU__ + if(weight >= 0 && weight < 150) face |= B_LIGHT_FACE; + else if(weight >= 150 && weight < 250) face |= B_LIGHT_FACE; + else if(weight >= 250 && weight < 350) face |= B_LIGHT_FACE; + //else if(weight >= 350 && weight < 450) face |= B_REGULAR_FACE; + //else if(weight >= 450 && weight < 550) face |= B_REGULAR_FACE; + else if(weight >= 550 && weight < 650) face |= B_CONDENSED_FACE; +#else + else if(weight >= 550 && weight < 650) face |= B_BOLD_FACE; +#endif + else if(weight >= 650 && weight < 750) face |= B_BOLD_FACE; +#ifndef __HAIKU__ + else if(weight >= 750 && weight < 850) face |= B_BOLD_FACE; + else if(weight >= 950) face |= B_BOLD_FACE; +#else + else if(weight >= 750 && weight < 850) face |= B_HEAVY_FACE; + else if(weight >= 950) face |= B_HEAVY_FACE; +#endif + + BFont* tempFont = new BFont(); + bool found = false; + for(litehtml::string_vector::iterator i = fonts.begin(); + i != fonts.end(); i++) + { + if (B_OK == tempFont->SetFamilyAndFace(i->c_str(),face)) + { + found = true; + break; + } + } + + if (!found) + { + // default to the Be plain font + tempFont = new BFont(be_plain_font); + if (weight >= 550) + { + tempFont = new BFont(be_bold_font); + } + tempFont->SetFace(face); // chooses closest + } + + tempFont->SetSize(size); + + font_height hgt; + tempFont->GetHeight(&hgt); + fm->ascent = hgt.ascent; + fm->descent = hgt.descent; + fm->height = (int) (hgt.ascent + hgt.descent); + fm->x_height = (int) hgt.leading; + + return (litehtml::uint_ptr) tempFont; +} + +void +LiteHtmlView::delete_font( litehtml::uint_ptr hFont ) +{ + std::cout << "delete_font" << std::endl; +} + +int +LiteHtmlView::text_width( const litehtml::tchar_t* text, + litehtml::uint_ptr hFont ) +{ + //std::cout << "text_width" << std::endl; + BFont* fnt = (BFont*)hFont; + int width = fnt->StringWidth(text); + //std::cout << " Width: " << +width << std::endl; + return width; +} + +void +LiteHtmlView::draw_text( litehtml::uint_ptr hdc, const litehtml::tchar_t* text, + litehtml::uint_ptr hFont, litehtml::web_color color, + const litehtml::position& pos ) +{ + //std::cout << "draw_text" << std::endl; + if (!text) return; + if (0 == strlen(text)) return; + BFont* fnt = (BFont*)hFont; + + //std::cout << " left: " << +pos.left() << ", top: " << +pos.top() << std::endl; + //std::cout << " RGBA: " << +color.red << "," << +color.green << "," << +color.blue << "," << +color.alpha << std::endl; + //std::cout << " Font size: " << +fnt->Size() << std::endl; + //std::cout << " Text: " << text << std::endl; + BRect bounds(Bounds()); + + //FillRect(bounds,B_SOLID_LOW); + + BPoint leftTop = bounds.LeftTop(); + //std::cout << " Bounds left: " << +leftTop.x << ", top: " << +leftTop.y << ", Width: " << +bounds.Width() << ", Height: " << +bounds.Height() << std::endl; + + font_height fh; + fnt->GetHeight(&fh); + int baseline = fh.ascent + fh.descent;// + 10; + int leftbase = 0; //10; + MovePenTo(pos.left() + leftbase,pos.top() + baseline);//leftTop.x,leftTop.y); + SetFont(fnt); + //SetFont(be_plain_font); + rgb_color clr = ui_color(B_DOCUMENT_TEXT_COLOR); + /* + rgb_color clr; + clr.blue = 40; + clr.red = 40; + clr.green = 40; + */ + + clr.red = color.red; + clr.green = color.green; + clr.blue = color.blue; + clr.alpha = color.alpha; + + //std::cout << " Final RGBA: " << +clr.red << "," << +clr.green << "," << +clr.blue << "," << +clr.alpha << std::endl; + SetHighColor(clr); + SetLowColor(ui_color(B_DOCUMENT_BACKGROUND_COLOR)); + BString mystr(""); + //mystr << "text: "; + mystr << text; + DrawString(mystr); +} + +int +LiteHtmlView::pt_to_px( int pt ) +{ + std::cout << "pt_to_px" << std::endl; + return (int) ((double) pt * 1.3333333333); +} + +int +LiteHtmlView::get_default_font_size() const +{ + //std::cout << "get_default_font_size" << std::endl; + return 12; +} + +const litehtml::tchar_t* +LiteHtmlView::get_default_font_name() const +{ + //std::cout << "get_default_font_name" << std::endl; + font_family fam; + font_style style; + be_plain_font->GetFamilyAndStyle(&fam,&style); + char* cp = strdup(fam); + return (litehtml::tchar_t*)cp; +} + +void +LiteHtmlView::draw_list_marker( litehtml::uint_ptr hdc, + const litehtml::list_marker& marker ) +{ + std::cout << "draw_list_marker" << std::endl; + if (!marker.image.empty()) + { + std::cout << " image marker" << std::endl; + } +} + +void +LiteHtmlView::load_image( const litehtml::tchar_t* src, + const litehtml::tchar_t* baseurl, bool redraw_on_ready ) +{ + std::cout << "load_image" << std::endl; + + std::string url; + make_url(src, baseurl, url); + if(m_images.find(url.c_str()) == m_images.end()) + { + BEntry entry(url.c_str(), true); + if (entry.Exists()) { + std::cout << " Loading bitmap from file" << std::endl; + BBitmap* img = BTranslationUtils::GetBitmap(url.c_str()); + m_images[url] = img; + } + } +} + +void +LiteHtmlView::make_url(const litehtml::tchar_t* url, + const litehtml::tchar_t* basepath, litehtml::tstring& out) +{ + std::cout << "make_url" << std::endl; + std::cout << " url: " << url << std::endl; + if(!basepath || (basepath && !basepath[0])) + { + if(!m_base_url.empty()) + { + //out = urljoin(m_base_url, std::string(url)); + std::string ns(m_base_url); + ns += "/"; + ns += url; + out = ns; + } else + { + out = url; + } + } else + { + std::cout << " basepath: " << basepath << std::endl; + //out = urljoin(std::string(basepath), std::string(url)); + std::string ns(basepath); + ns += "/"; + ns += url; + out = ns; + } + std::cout << " Output url: " << out << std::endl; +} + +void +LiteHtmlView::set_base_url(const litehtml::tchar_t* base_url) +{ + std::cout << "set_base_url" << std::endl; +/* + if(base_url) + { + m_base_url = urljoin(m_url, std::string(base_url)); + } else + { + */ + m_base_url = base_url; + std::cout << " base url set to: " << m_base_url << std::endl; + //} +} + + +void +LiteHtmlView::get_image_size( const litehtml::tchar_t* src, + const litehtml::tchar_t* baseurl, litehtml::size& sz ) +{ + std::cout << "get_image_size" << std::endl; + std::string url; + make_url(src,NULL,url); + const auto& miter(m_images.find(url.c_str())); + if (m_images.end() != miter) + { + BBitmap* img = (BBitmap*)miter->second; + BRect size = img->Bounds(); + sz.width = size.Width(); + sz.height = size.Height(); + std::cout << " width: " << +sz.width << ", height: " << +sz.height << std::endl; + } +} + +void +LiteHtmlView::draw_image( litehtml::uint_ptr hdc, const litehtml::tchar_t* src, + const litehtml::tchar_t* baseurl, const litehtml::position& pos ) +{ + std::string url; + make_url(src, baseurl, url); + const auto& img = m_images.find(url.c_str()); + if(img != m_images.end()) + { + if(img->second) + { + DrawBitmap(img->second,BPoint(pos.x,pos.y)); // TODO support scaling + //draw_txdib(cr, img->second.get(), pos.x, pos.y, pos.width, pos.height); + } + } +} + +void +LiteHtmlView::draw_background( litehtml::uint_ptr hdc, + const litehtml::background_paint& bg ) +{ + std::cout << "draw_background" << std::endl; + if (0 < bg.image.length()) + { + std::cout << " background includes an image!" << std::endl; + draw_image(hdc,bg.image.c_str(),m_base_url.c_str(),litehtml::position(bg.position_x,bg.position_y,bg.image_size.width,bg.image_size.height)); + } +} + +void +LiteHtmlView::draw_borders(litehtml::uint_ptr hdc, const litehtml::borders& borders, const litehtml::position& draw_pos, bool root) +{ + std::cout << "draw_borders" << std::endl; + int bdr_top = 0; + int bdr_bottom = 0; + int bdr_left = 0; + int bdr_right = 0; + + //std::cout << " uint ptr: " << +hdc << std::endl; + //std::cout << " this ptr: " << +this << std::endl; + + if(borders.top.width != 0 && borders.top.style > litehtml::border_style_hidden) + { + bdr_top = (int) borders.top.width; + std::cout << " Border top: " << bdr_right << std::endl; + } + if(borders.bottom.width != 0 && borders.bottom.style > litehtml::border_style_hidden) + { + bdr_bottom = (int) borders.bottom.width; + std::cout << " Border bottom: " << bdr_right << std::endl; + } + if(borders.left.width != 0 && borders.left.style > litehtml::border_style_hidden) + { + bdr_left = (int) borders.left.width; + std::cout << " Border left: " << bdr_right << std::endl; + } + if(borders.right.width != 0 && borders.right.style > litehtml::border_style_hidden) + { + bdr_right = (int) borders.right.width; + std::cout << " Border right: " << bdr_right << std::endl; + } + + + if (bdr_bottom) + { + // draw rectangle for now - no check for radius + StrokeRect( + BRect( + BPoint(draw_pos.left(), draw_pos.bottom()), + BPoint(draw_pos.left() + bdr_left, draw_pos.bottom() - bdr_bottom) + ) + ); + } +} + +void +LiteHtmlView::transform_text(litehtml::tstring& text, litehtml::text_transform tt) +{ + std::cout << "transform_text" << std::endl; +} + +void +LiteHtmlView::set_clip( const litehtml::position& pos, const litehtml::border_radiuses& bdr_radius, bool valid_x, bool valid_y ) +{ + std::cout << "set_clip" << std::endl; +} + +void +LiteHtmlView::del_clip() +{ + std::cout << "del_clip" << std::endl; +} + + + +std::shared_ptr +LiteHtmlView::create_element(const litehtml::tchar_t *tag_name, + const litehtml::string_map &attributes, + const std::shared_ptr &doc) +{ + //std::cout << "create_element" << std::endl; + return 0; +} + +void +LiteHtmlView::get_media_features(litehtml::media_features& media) const +{ + std::cout << "get_media_features" << std::endl; + litehtml::position client; + get_client_rect(client); + media.type = litehtml::media_type_screen; + media.width = client.width; + media.height = client.height; + BRect bounds(Bounds()); + media.device_width = bounds.Width(); + media.device_height = bounds.Height(); + media.color = 8; + media.monochrome = 0; + media.color_index = 256; + media.resolution = 96; +} + +void +LiteHtmlView::link(const std::shared_ptr &ptr, const litehtml::element::ptr& el) +{ + std::cout << "link" << std::endl; +} + +void +LiteHtmlView::set_caption(const char* caption) +{ + std::cout << "set_caption" << std::endl; +} + +void +LiteHtmlView::get_client_rect(litehtml::position& client) const +{ + //std::cout << "get_client_rect" << std::endl; + BRect bounds(Bounds()); + BPoint leftTop = bounds.LeftTop(); + client.width = bounds.Width(); + client.height = bounds.Height(); + client.x = leftTop.x; + client.y = leftTop.y; +} + +void +LiteHtmlView::on_anchor_click(const char* base, const litehtml::element::ptr& anchor) +{ + std::cout << "on_anchor_click" << std::endl; +} + +void +LiteHtmlView::set_cursor(const char* cursor) +{ + std::cout << "set_cursor" << std::endl; +} + +void +LiteHtmlView::import_css(litehtml::tstring& s1, const litehtml::tstring& s2, litehtml::tstring& s3) +{ + std::cout << "import_css" << std::endl; +} + +void +LiteHtmlView::get_language(litehtml::tstring& s1, litehtml::tstring& s2) const +{ + std::cout << "get_language" << std::endl; +} diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/haiku/container_haiku.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/haiku/container_haiku.h new file mode 100644 index 0000000..31d7f12 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/haiku/container_haiku.h @@ -0,0 +1,87 @@ +/* + * Copyright 2019-2020 Haiku Inc. + * All rights reserved. Distributed under the terms of the BSD 3-clause license. + * Constributors + * 2019-2020 Adam Fowler + */ +#ifndef LITEHTMLVIEW_H +#define LITEHTMLVIEW_H + +#include "../../include/litehtml.h" + +#include +#include + +#include + +class BBitmap; + + +enum { + M_HTML_RENDERED = 'hrnd' +}; + +class LiteHtmlView : public BView, public litehtml::document_container +{ +public: + //LiteHtmlView(BMessage *archive); + LiteHtmlView(BRect frame, const char *name); + //LiteHtmlView(const char *name, uint32 flags, BLayout *layout=NULL); + + virtual ~LiteHtmlView(); + + void SetContext(litehtml::context* ctx); + void RenderFile(const char* localFilePath); + void RenderHTML(const std::string& htmlText); + + + virtual litehtml::uint_ptr create_font(const litehtml::tchar_t* faceName, int size, int weight, litehtml::font_style italic, unsigned int decoration, litehtml::font_metrics* fm) override; + virtual void delete_font(litehtml::uint_ptr hFont) override; + virtual int text_width(const litehtml::tchar_t* text, litehtml::uint_ptr hFont) override; + virtual void draw_text(litehtml::uint_ptr hdc, const litehtml::tchar_t* text, litehtml::uint_ptr hFont, litehtml::web_color color, const litehtml::position& pos) override; + virtual int pt_to_px(int pt) override; + virtual int get_default_font_size() const override; + virtual const litehtml::tchar_t* get_default_font_name() const override; + virtual void load_image(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, bool redraw_on_ready) override; + virtual void get_image_size(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, litehtml::size& sz) override; + virtual void draw_background(litehtml::uint_ptr hdc, const litehtml::background_paint& bg) override; + virtual void draw_borders(litehtml::uint_ptr hdc, const litehtml::borders& borders, const litehtml::position& draw_pos, bool root) override; + virtual void draw_list_marker(litehtml::uint_ptr hdc, const litehtml::list_marker& marker) override; + virtual std::shared_ptr create_element(const litehtml::tchar_t *tag_name, + const litehtml::string_map &attributes, + const std::shared_ptr &doc) override; + virtual void get_media_features(litehtml::media_features& media) const override; + //virtual void get_language(litehtml::tstring& language, litehtml::tstring & culture) const override; + virtual void link(const std::shared_ptr &ptr, const litehtml::element::ptr& el) override; + + + virtual void transform_text(litehtml::tstring& text, litehtml::text_transform tt) override; + virtual void set_clip(const litehtml::position& pos, const litehtml::border_radiuses& bdr_radius, bool valid_x, bool valid_y) override; + virtual void del_clip() override; + + // unimplemented + virtual void set_caption(const char*); + virtual void get_client_rect(litehtml::position& client) const; + virtual void set_base_url(const char*); + virtual void on_anchor_click(const char*, const litehtml::element::ptr&); + virtual void set_cursor(const char*); + virtual void import_css(litehtml::tstring&, const litehtml::tstring&, litehtml::tstring&); + virtual void get_language(litehtml::tstring&, litehtml::tstring&) const; + + //BView + virtual void Draw(BRect updateRect) override; + virtual void GetPreferredSize(float* width, float* height) override; + +protected: + void make_url(const litehtml::tchar_t* url, const litehtml::tchar_t* basepath, litehtml::tstring& out); + virtual void draw_image( litehtml::uint_ptr hdc, const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, const litehtml::position& pos ); + +private: + litehtml::context* fContext; + litehtml::document::ptr m_html; + std::map m_images; + litehtml::tstring m_base_url; + litehtml::tstring m_url; +}; + +#endif diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/linux/container_linux.cpp b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/linux/container_linux.cpp new file mode 100644 index 0000000..c52e118 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/linux/container_linux.cpp @@ -0,0 +1,895 @@ +#include "container_linux.h" +#include + +#ifndef M_PI +# define M_PI 3.14159265358979323846 +#endif + +container_linux::container_linux() +{ + m_temp_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 2, 2); + m_temp_cr = cairo_create(m_temp_surface); +} + +container_linux::~container_linux() +{ + clear_images(); + cairo_surface_destroy(m_temp_surface); + cairo_destroy(m_temp_cr); +} + +litehtml::uint_ptr container_linux::create_font( const litehtml::tchar_t* faceName, int size, int weight, litehtml::font_style italic, unsigned int decoration, litehtml::font_metrics* fm ) +{ + PangoFontDescription *desc = pango_font_description_from_string (faceName); + pango_font_description_set_absolute_size(desc, size * PANGO_SCALE); + if(italic == litehtml::fontStyleItalic ) + { + pango_font_description_set_style(desc, PANGO_STYLE_ITALIC); + } else + { + pango_font_description_set_style(desc, PANGO_STYLE_NORMAL); + } + PangoWeight fnt_weight; + if(weight >= 0 && weight < 150) fnt_weight = PANGO_WEIGHT_THIN; + else if(weight >= 150 && weight < 250) fnt_weight = PANGO_WEIGHT_ULTRALIGHT; + else if(weight >= 250 && weight < 350) fnt_weight = PANGO_WEIGHT_LIGHT; + else if(weight >= 350 && weight < 450) fnt_weight = PANGO_WEIGHT_NORMAL; + else if(weight >= 450 && weight < 550) fnt_weight = PANGO_WEIGHT_MEDIUM; + else if(weight >= 550 && weight < 650) fnt_weight = PANGO_WEIGHT_SEMIBOLD; + else if(weight >= 650 && weight < 750) fnt_weight = PANGO_WEIGHT_BOLD; + else if(weight >= 750 && weight < 850) fnt_weight = PANGO_WEIGHT_ULTRABOLD; + else fnt_weight = PANGO_WEIGHT_HEAVY; + + pango_font_description_set_weight(desc, fnt_weight); + + cairo_font* ret = nullptr; + + if(fm) + { + cairo_save(m_temp_cr); + PangoLayout *layout = pango_cairo_create_layout(m_temp_cr); + PangoContext *context = pango_layout_get_context(layout); + PangoLanguage *language = pango_language_get_default(); + pango_layout_set_font_description(layout, desc); + PangoFontMetrics *metrics = pango_context_get_metrics(context, desc, language); + + fm->ascent = PANGO_PIXELS((double)pango_font_metrics_get_ascent(metrics)); + fm->descent = PANGO_PIXELS((double)pango_font_metrics_get_descent(metrics)); + fm->height = fm->ascent + fm->descent; + fm->x_height = fm->height; + + pango_layout_set_text(layout, "x", 1); + + int x_width, x_height; + pango_layout_get_pixel_size(layout, &x_width, &x_height); + + fm->x_height = x_height; + + cairo_restore(m_temp_cr); + + g_object_unref(layout); + pango_font_metrics_unref(metrics); + + ret = new cairo_font; + ret->font = desc; + ret->size = size; + ret->strikeout = (decoration & litehtml::font_decoration_linethrough) != 0; + ret->underline = (decoration & litehtml::font_decoration_underline) != 0; + ret->ascent = fm->ascent; + ret->descent = fm->descent; + + ret->underline_thickness = pango_font_metrics_get_underline_thickness(metrics); + ret->underline_position = -pango_font_metrics_get_underline_position(metrics); + pango_quantize_line_geometry(&ret->underline_thickness, &ret->underline_position); + ret->underline_thickness = PANGO_PIXELS(ret->underline_thickness); + ret->underline_position = -1;//PANGO_PIXELS(ret->underline_position); + + ret->strikethrough_thickness = pango_font_metrics_get_strikethrough_thickness(metrics); + ret->strikethrough_position = pango_font_metrics_get_strikethrough_position(metrics); + pango_quantize_line_geometry(&ret->strikethrough_thickness, &ret->strikethrough_position); + ret->strikethrough_thickness = PANGO_PIXELS(ret->strikethrough_thickness); + ret->strikethrough_position = PANGO_PIXELS(ret->strikethrough_position); + } + + return (litehtml::uint_ptr) ret; +} + +void container_linux::delete_font( litehtml::uint_ptr hFont ) +{ + auto* fnt = (cairo_font*) hFont; + if(fnt) + { + pango_font_description_free(fnt->font); + delete fnt; + } +} + +int container_linux::text_width( const litehtml::tchar_t* text, litehtml::uint_ptr hFont ) +{ + auto* fnt = (cairo_font*) hFont; + + cairo_save(m_temp_cr); + + PangoLayout *layout = pango_cairo_create_layout(m_temp_cr); + pango_layout_set_font_description(layout, fnt->font); + + pango_layout_set_text(layout, text, -1); + pango_cairo_update_layout (m_temp_cr, layout); + + int x_width, x_height; + pango_layout_get_pixel_size(layout, &x_width, &x_height); + + cairo_restore(m_temp_cr); + + return (int) x_width; +} + +void container_linux::draw_text( litehtml::uint_ptr hdc, const litehtml::tchar_t* text, litehtml::uint_ptr hFont, litehtml::web_color color, const litehtml::position& pos ) +{ + auto* fnt = (cairo_font*) hFont; + auto* cr = (cairo_t*) hdc; + cairo_save(cr); + + apply_clip(cr); + + set_color(cr, color); + + PangoLayout *layout = pango_cairo_create_layout(cr); + pango_layout_set_font_description (layout, fnt->font); + pango_layout_set_text (layout, text, -1); + + int baseline = PANGO_PIXELS(pango_layout_get_baseline(layout)); + + PangoRectangle ink_rect, logical_rect; + pango_layout_get_pixel_extents(layout, &ink_rect, &logical_rect); + + int text_baseline = pos.height - fnt->descent; + + int x = pos.left() + logical_rect.x; + int y = pos.top() + logical_rect.y + text_baseline - baseline; + + cairo_move_to(cr, x, y); + pango_cairo_update_layout (cr, layout); + pango_cairo_show_layout (cr, layout); + + int tw = 0; + + if(fnt->underline || fnt->strikeout) + { + tw = text_width(text, hFont); + } + + if(fnt->underline) + { + cairo_set_line_width(cr, fnt->underline_thickness); + cairo_move_to(cr, x, pos.top() + text_baseline - fnt->underline_position + 0.5); + cairo_line_to(cr, x + tw, pos.top() + text_baseline - fnt->underline_position + 0.5); + cairo_stroke(cr); + } + if(fnt->strikeout) + { + cairo_set_line_width(cr, fnt->strikethrough_thickness); + cairo_move_to(cr, x, pos.top() + text_baseline - fnt->strikethrough_position - 0.5); + cairo_line_to(cr, x + tw, pos.top() + text_baseline - fnt->strikethrough_position - 0.5); + cairo_stroke(cr); + } + + cairo_restore(cr); + + g_object_unref(layout); +} + +int container_linux::pt_to_px( int pt ) const +{ + GdkScreen* screen = gdk_screen_get_default(); + double dpi = gdk_screen_get_resolution(screen); + + return (int) ((double) pt * dpi / 72.0); +} + +int container_linux::get_default_font_size() const +{ + return pt_to_px(12); +} + +void container_linux::draw_list_marker( litehtml::uint_ptr hdc, const litehtml::list_marker& marker ) +{ + if(!marker.image.empty()) + { + /*litehtml::tstring url; + make_url(marker.image.c_str(), marker.baseurl, url); + + lock_images_cache(); + images_map::iterator img_i = m_images.find(url.c_str()); + if(img_i != m_images.end()) + { + if(img_i->second) + { + draw_txdib((cairo_t*) hdc, img_i->second, marker.pos.x, marker.pos.y, marker.pos.width, marker.pos.height); + } + } + unlock_images_cache();*/ + } else + { + switch(marker.marker_type) + { + case litehtml::list_style_type_circle: + { + draw_ellipse((cairo_t*) hdc, marker.pos.x, marker.pos.y, marker.pos.width, marker.pos.height, marker.color, 1); + } + break; + case litehtml::list_style_type_disc: + { + fill_ellipse((cairo_t*) hdc, marker.pos.x, marker.pos.y, marker.pos.width, marker.pos.height, marker.color); + } + break; + case litehtml::list_style_type_square: + if(hdc) + { + auto* cr = (cairo_t*) hdc; + cairo_save(cr); + + cairo_new_path(cr); + cairo_rectangle(cr, marker.pos.x, marker.pos.y, marker.pos.width, marker.pos.height); + + set_color(cr, marker.color); + cairo_fill(cr); + cairo_restore(cr); + } + break; + default: + /*do nothing*/ + break; + } + } +} + +void container_linux::load_image( const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, bool redraw_on_ready ) +{ + litehtml::tstring url; + make_url(src, baseurl, url); + if(m_images.find(url) == m_images.end()) + { + try + { + Glib::RefPtr img = get_image(url.c_str(), true); + if(img) + { + m_images[url.c_str()] = img; + } + } catch(...) + { + m_images[url.c_str()] = Glib::RefPtr(nullptr); + } + } +} + +void container_linux::get_image_size( const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, litehtml::size& sz ) +{ + litehtml::tstring url; + make_url(src, baseurl, url); + + auto img = m_images.find(url); + if(img != m_images.end()) + { + if(img->second) + { + sz.width = img->second->get_width(); + sz.height = img->second->get_height(); + } else + { + sz.width = 0; + sz.height = 0; + } + } else + { + sz.width = 0; + sz.height = 0; + } +} + +void container_linux::draw_background( litehtml::uint_ptr hdc, const litehtml::background_paint& bg ) +{ + auto* cr = (cairo_t*) hdc; + cairo_save(cr); + apply_clip(cr); + + rounded_rectangle(cr, bg.border_box, bg.border_radius); + cairo_clip(cr); + + cairo_rectangle(cr, bg.clip_box.x, bg.clip_box.y, bg.clip_box.width, bg.clip_box.height); + cairo_clip(cr); + + if(bg.color.alpha) + { + set_color(cr, bg.color); + cairo_paint(cr); + } + + litehtml::tstring url; + make_url(bg.image.c_str(), bg.baseurl.c_str(), url); + + //lock_images_cache(); + auto img_i = m_images.find(url); + if(img_i != m_images.end() && img_i->second) + { + Glib::RefPtr bgbmp = img_i->second; + + Glib::RefPtr new_img; + if(bg.image_size.width != bgbmp->get_width() || bg.image_size.height != bgbmp->get_height()) + { + new_img = bgbmp->scale_simple(bg.image_size.width, bg.image_size.height, Gdk::INTERP_BILINEAR); + bgbmp = new_img; + } + + cairo_surface_t* img = surface_from_pixbuf(bgbmp); + cairo_pattern_t *pattern = cairo_pattern_create_for_surface(img); + cairo_matrix_t flib_m; + cairo_matrix_init_identity(&flib_m); + cairo_matrix_translate(&flib_m, -bg.position_x, -bg.position_y); + cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT); + cairo_pattern_set_matrix (pattern, &flib_m); + + switch(bg.repeat) + { + case litehtml::background_repeat_no_repeat: + draw_pixbuf(cr, bgbmp, bg.position_x, bg.position_y, bgbmp->get_width(), bgbmp->get_height()); + break; + + case litehtml::background_repeat_repeat_x: + cairo_set_source(cr, pattern); + cairo_rectangle(cr, bg.clip_box.left(), bg.position_y, bg.clip_box.width, bgbmp->get_height()); + cairo_fill(cr); + break; + + case litehtml::background_repeat_repeat_y: + cairo_set_source(cr, pattern); + cairo_rectangle(cr, bg.position_x, bg.clip_box.top(), bgbmp->get_width(), bg.clip_box.height); + cairo_fill(cr); + break; + + case litehtml::background_repeat_repeat: + cairo_set_source(cr, pattern); + cairo_rectangle(cr, bg.clip_box.left(), bg.clip_box.top(), bg.clip_box.width, bg.clip_box.height); + cairo_fill(cr); + break; + } + + cairo_pattern_destroy(pattern); + cairo_surface_destroy(img); + + } +// unlock_images_cache(); + cairo_restore(cr); +} + +void container_linux::make_url(const litehtml::tchar_t* url, const litehtml::tchar_t* basepath, litehtml::tstring& out) +{ + out = url; +} + +void container_linux::add_path_arc(cairo_t* cr, double x, double y, double rx, double ry, double a1, double a2, bool neg) +{ + if(rx > 0 && ry > 0) + { + + cairo_save(cr); + + cairo_translate(cr, x, y); + cairo_scale(cr, 1, ry / rx); + cairo_translate(cr, -x, -y); + + if(neg) + { + cairo_arc_negative(cr, x, y, rx, a1, a2); + } else + { + cairo_arc(cr, x, y, rx, a1, a2); + } + + cairo_restore(cr); + } else + { + cairo_move_to(cr, x, y); + } +} + +void container_linux::draw_borders(litehtml::uint_ptr hdc, const litehtml::borders& borders, const litehtml::position& draw_pos, bool root) +{ + auto* cr = (cairo_t*) hdc; + cairo_save(cr); + apply_clip(cr); + + cairo_new_path(cr); + + int bdr_top = 0; + int bdr_bottom = 0; + int bdr_left = 0; + int bdr_right = 0; + + if(borders.top.width != 0 && borders.top.style > litehtml::border_style_hidden) + { + bdr_top = (int) borders.top.width; + } + if(borders.bottom.width != 0 && borders.bottom.style > litehtml::border_style_hidden) + { + bdr_bottom = (int) borders.bottom.width; + } + if(borders.left.width != 0 && borders.left.style > litehtml::border_style_hidden) + { + bdr_left = (int) borders.left.width; + } + if(borders.right.width != 0 && borders.right.style > litehtml::border_style_hidden) + { + bdr_right = (int) borders.right.width; + } + + // draw right border + if(bdr_right) + { + set_color(cr, borders.right.color); + + double r_top = borders.radius.top_right_x; + double r_bottom = borders.radius.bottom_right_x; + + if(r_top) + { + double end_angle = 2 * M_PI; + double start_angle = end_angle - M_PI / 2.0 / ((double) bdr_top / (double) bdr_right + 1); + + add_path_arc(cr, + draw_pos.right() - r_top, + draw_pos.top() + r_top, + r_top - bdr_right, + r_top - bdr_right + (bdr_right - bdr_top), + end_angle, + start_angle, true); + + add_path_arc(cr, + draw_pos.right() - r_top, + draw_pos.top() + r_top, + r_top, + r_top, + start_angle, + end_angle, false); + } else + { + cairo_move_to(cr, draw_pos.right() - bdr_right, draw_pos.top() + bdr_top); + cairo_line_to(cr, draw_pos.right(), draw_pos.top()); + } + + if(r_bottom) + { + cairo_line_to(cr, draw_pos.right(), draw_pos.bottom() - r_bottom); + + double start_angle = 0; + double end_angle = start_angle + M_PI / 2.0 / ((double) bdr_bottom / (double) bdr_right + 1); + + add_path_arc(cr, + draw_pos.right() - r_bottom, + draw_pos.bottom() - r_bottom, + r_bottom, + r_bottom, + start_angle, + end_angle, false); + + add_path_arc(cr, + draw_pos.right() - r_bottom, + draw_pos.bottom() - r_bottom, + r_bottom - bdr_right, + r_bottom - bdr_right + (bdr_right - bdr_bottom), + end_angle, + start_angle, true); + } else + { + cairo_line_to(cr, draw_pos.right(), draw_pos.bottom()); + cairo_line_to(cr, draw_pos.right() - bdr_right, draw_pos.bottom() - bdr_bottom); + } + + cairo_fill(cr); + } + + // draw bottom border + if(bdr_bottom) + { + set_color(cr, borders.bottom.color); + + double r_left = borders.radius.bottom_left_x; + double r_right = borders.radius.bottom_right_x; + + if(r_left) + { + double start_angle = M_PI / 2.0; + double end_angle = start_angle + M_PI / 2.0 / ((double) bdr_left / (double) bdr_bottom + 1); + + add_path_arc(cr, + draw_pos.left() + r_left, + draw_pos.bottom() - r_left, + r_left - bdr_bottom + (bdr_bottom - bdr_left), + r_left - bdr_bottom, + start_angle, + end_angle, false); + + add_path_arc(cr, + draw_pos.left() + r_left, + draw_pos.bottom() - r_left, + r_left, + r_left, + end_angle, + start_angle, true); + } else + { + cairo_move_to(cr, draw_pos.left(), draw_pos.bottom()); + cairo_line_to(cr, draw_pos.left() + bdr_left, draw_pos.bottom() - bdr_bottom); + } + + if(r_right) + { + cairo_line_to(cr, draw_pos.right() - r_right, draw_pos.bottom()); + + double end_angle = M_PI / 2.0; + double start_angle = end_angle - M_PI / 2.0 / ((double) bdr_right / (double) bdr_bottom + 1); + + add_path_arc(cr, + draw_pos.right() - r_right, + draw_pos.bottom() - r_right, + r_right, + r_right, + end_angle, + start_angle, true); + + add_path_arc(cr, + draw_pos.right() - r_right, + draw_pos.bottom() - r_right, + r_right - bdr_bottom + (bdr_bottom - bdr_right), + r_right - bdr_bottom, + start_angle, + end_angle, false); + } else + { + cairo_line_to(cr, draw_pos.right() - bdr_right, draw_pos.bottom() - bdr_bottom); + cairo_line_to(cr, draw_pos.right(), draw_pos.bottom()); + } + + cairo_fill(cr); + } + + // draw top border + if(bdr_top) + { + set_color(cr, borders.top.color); + + double r_left = borders.radius.top_left_x; + double r_right = borders.radius.top_right_x; + + if(r_left) + { + double end_angle = M_PI * 3.0 / 2.0; + double start_angle = end_angle - M_PI / 2.0 / ((double) bdr_left / (double) bdr_top + 1); + + add_path_arc(cr, + draw_pos.left() + r_left, + draw_pos.top() + r_left, + r_left, + r_left, + end_angle, + start_angle, true); + + add_path_arc(cr, + draw_pos.left() + r_left, + draw_pos.top() + r_left, + r_left - bdr_top + (bdr_top - bdr_left), + r_left - bdr_top, + start_angle, + end_angle, false); + } else + { + cairo_move_to(cr, draw_pos.left(), draw_pos.top()); + cairo_line_to(cr, draw_pos.left() + bdr_left, draw_pos.top() + bdr_top); + } + + if(r_right) + { + cairo_line_to(cr, draw_pos.right() - r_right, draw_pos.top() + bdr_top); + + double start_angle = M_PI * 3.0 / 2.0; + double end_angle = start_angle + M_PI / 2.0 / ((double) bdr_right / (double) bdr_top + 1); + + add_path_arc(cr, + draw_pos.right() - r_right, + draw_pos.top() + r_right, + r_right - bdr_top + (bdr_top - bdr_right), + r_right - bdr_top, + start_angle, + end_angle, false); + + add_path_arc(cr, + draw_pos.right() - r_right, + draw_pos.top() + r_right, + r_right, + r_right, + end_angle, + start_angle, true); + } else + { + cairo_line_to(cr, draw_pos.right() - bdr_right, draw_pos.top() + bdr_top); + cairo_line_to(cr, draw_pos.right(), draw_pos.top()); + } + + cairo_fill(cr); + } + + // draw left border + if(bdr_left) + { + set_color(cr, borders.left.color); + + double r_top = borders.radius.top_left_x; + double r_bottom = borders.radius.bottom_left_x; + + if(r_top) + { + double start_angle = M_PI; + double end_angle = start_angle + M_PI / 2.0 / ((double) bdr_top / (double) bdr_left + 1); + + add_path_arc(cr, + draw_pos.left() + r_top, + draw_pos.top() + r_top, + r_top - bdr_left, + r_top - bdr_left + (bdr_left - bdr_top), + start_angle, + end_angle, false); + + add_path_arc(cr, + draw_pos.left() + r_top, + draw_pos.top() + r_top, + r_top, + r_top, + end_angle, + start_angle, true); + } else + { + cairo_move_to(cr, draw_pos.left() + bdr_left, draw_pos.top() + bdr_top); + cairo_line_to(cr, draw_pos.left(), draw_pos.top()); + } + + if(r_bottom) + { + cairo_line_to(cr, draw_pos.left(), draw_pos.bottom() - r_bottom); + + double end_angle = M_PI; + double start_angle = end_angle - M_PI / 2.0 / ((double) bdr_bottom / (double) bdr_left + 1); + + add_path_arc(cr, + draw_pos.left() + r_bottom, + draw_pos.bottom() - r_bottom, + r_bottom, + r_bottom, + end_angle, + start_angle, true); + + add_path_arc(cr, + draw_pos.left() + r_bottom, + draw_pos.bottom() - r_bottom, + r_bottom - bdr_left, + r_bottom - bdr_left + (bdr_left - bdr_bottom), + start_angle, + end_angle, false); + } else + { + cairo_line_to(cr, draw_pos.left(), draw_pos.bottom()); + cairo_line_to(cr, draw_pos.left() + bdr_left, draw_pos.bottom() - bdr_bottom); + } + + cairo_fill(cr); + } + cairo_restore(cr); +} + +void container_linux::transform_text(litehtml::tstring& text, litehtml::text_transform tt) +{ + +} + +void container_linux::set_clip( const litehtml::position& pos, const litehtml::border_radiuses& bdr_radius, bool valid_x, bool valid_y ) +{ + litehtml::position clip_pos = pos; + litehtml::position client_pos; + get_client_rect(client_pos); + if(!valid_x) + { + clip_pos.x = client_pos.x; + clip_pos.width = client_pos.width; + } + if(!valid_y) + { + clip_pos.y = client_pos.y; + clip_pos.height = client_pos.height; + } + m_clips.emplace_back(clip_pos, bdr_radius); +} + +void container_linux::del_clip() +{ + if(!m_clips.empty()) + { + m_clips.pop_back(); + } +} + +void container_linux::apply_clip( cairo_t* cr ) +{ + for(const auto& clip_box : m_clips) + { + rounded_rectangle(cr, clip_box.box, clip_box.radius); + cairo_clip(cr); + } +} + +void container_linux::draw_ellipse( cairo_t* cr, int x, int y, int width, int height, const litehtml::web_color& color, int line_width ) +{ + if(!cr || !width || !height) return; + cairo_save(cr); + + apply_clip(cr); + + cairo_new_path(cr); + + cairo_translate (cr, x + width / 2.0, y + height / 2.0); + cairo_scale (cr, width / 2.0, height / 2.0); + cairo_arc (cr, 0, 0, 1, 0, 2 * M_PI); + + set_color(cr, color); + cairo_set_line_width(cr, line_width); + cairo_stroke(cr); + + cairo_restore(cr); +} + +void container_linux::fill_ellipse( cairo_t* cr, int x, int y, int width, int height, const litehtml::web_color& color ) +{ + if(!cr || !width || !height) return; + cairo_save(cr); + + apply_clip(cr); + + cairo_new_path(cr); + + cairo_translate (cr, x + width / 2.0, y + height / 2.0); + cairo_scale (cr, width / 2.0, height / 2.0); + cairo_arc (cr, 0, 0, 1, 0, 2 * M_PI); + + set_color(cr, color); + cairo_fill(cr); + + cairo_restore(cr); +} + +void container_linux::clear_images() +{ +/* for(images_map::iterator i = m_images.begin(); i != m_images.end(); i++) + { + if(i->second) + { + delete i->second; + } + } + m_images.clear(); +*/ +} + +const litehtml::tchar_t* container_linux::get_default_font_name() const +{ + return "Times New Roman"; +} + +std::shared_ptr container_linux::create_element(const litehtml::tchar_t *tag_name, + const litehtml::string_map &attributes, + const std::shared_ptr &doc) +{ + return nullptr; +} + +void container_linux::rounded_rectangle( cairo_t* cr, const litehtml::position &pos, const litehtml::border_radiuses &radius ) +{ + cairo_new_path(cr); + if(radius.top_left_x) + { + cairo_arc(cr, pos.left() + radius.top_left_x, pos.top() + radius.top_left_x, radius.top_left_x, M_PI, M_PI * 3.0 / 2.0); + } else + { + cairo_move_to(cr, pos.left(), pos.top()); + } + + cairo_line_to(cr, pos.right() - radius.top_right_x, pos.top()); + + if(radius.top_right_x) + { + cairo_arc(cr, pos.right() - radius.top_right_x, pos.top() + radius.top_right_x, radius.top_right_x, M_PI * 3.0 / 2.0, 2.0 * M_PI); + } + + cairo_line_to(cr, pos.right(), pos.bottom() - radius.bottom_right_x); + + if(radius.bottom_right_x) + { + cairo_arc(cr, pos.right() - radius.bottom_right_x, pos.bottom() - radius.bottom_right_x, radius.bottom_right_x, 0, M_PI / 2.0); + } + + cairo_line_to(cr, pos.left() - radius.bottom_left_x, pos.bottom()); + + if(radius.bottom_left_x) + { + cairo_arc(cr, pos.left() + radius.bottom_left_x, pos.bottom() - radius.bottom_left_x, radius.bottom_left_x, M_PI / 2.0, M_PI); + } +} + +void container_linux::draw_pixbuf(cairo_t* cr, const Glib::RefPtr& bmp, int x, int y, int cx, int cy) +{ + cairo_save(cr); + + { + Cairo::RefPtr crobj(new Cairo::Context(cr, false)); + + cairo_matrix_t flib_m; + cairo_matrix_init(&flib_m, 1, 0, 0, -1, 0, 0); + + if(cx != bmp->get_width() || cy != bmp->get_height()) + { + Glib::RefPtr new_img = bmp->scale_simple(cx, cy, Gdk::INTERP_BILINEAR); + Gdk::Cairo::set_source_pixbuf(crobj, new_img, x, y); + crobj->paint(); + } else + { + Gdk::Cairo::set_source_pixbuf(crobj, bmp, x, y); + crobj->paint(); + } + } + + cairo_restore(cr); +} + +cairo_surface_t* container_linux::surface_from_pixbuf(const Glib::RefPtr& bmp) +{ + cairo_surface_t* ret; + + if(bmp->get_has_alpha()) + { + ret = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, bmp->get_width(), bmp->get_height()); + } else + { + ret = cairo_image_surface_create(CAIRO_FORMAT_RGB24, bmp->get_width(), bmp->get_height()); + } + + Cairo::RefPtr surface(new Cairo::Surface(ret, false)); + Cairo::RefPtr ctx = Cairo::Context::create(surface); + Gdk::Cairo::set_source_pixbuf(ctx, bmp, 0.0, 0.0); + ctx->paint(); + + return ret; +} + +void container_linux::get_media_features(litehtml::media_features& media) const +{ + litehtml::position client; + get_client_rect(client); + media.type = litehtml::media_type_screen; + media.width = client.width; + media.height = client.height; + media.device_width = Gdk::screen_width(); + media.device_height = Gdk::screen_height(); + media.color = 8; + media.monochrome = 0; + media.color_index = 256; + media.resolution = 96; +} + +void container_linux::get_language(litehtml::tstring& language, litehtml::tstring& culture) const +{ + language = _t("en"); + culture = _t(""); +} + +void container_linux::link(const std::shared_ptr &ptr, const litehtml::element::ptr& el) +{ + +} diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/linux/container_linux.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/linux/container_linux.h new file mode 100644 index 0000000..4b0a544 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/linux/container_linux.h @@ -0,0 +1,104 @@ +#ifndef LH_CONTAINER_LINUX_H +#define LH_CONTAINER_LINUX_H + +#include "../../include/litehtml.h" +#include +#include +#include + +struct cairo_clip_box +{ + typedef std::vector vector; + litehtml::position box; + litehtml::border_radiuses radius; + + cairo_clip_box(const litehtml::position& vBox, const litehtml::border_radiuses& vRad) + { + box = vBox; + radius = vRad; + } + + cairo_clip_box(const cairo_clip_box& val) + { + box = val.box; + radius = val.radius; + } + cairo_clip_box& operator=(const cairo_clip_box& val) + { + box = val.box; + radius = val.radius; + return *this; + } +}; + +struct cairo_font +{ + PangoFontDescription* font; + int size; + bool underline; + bool strikeout; + int ascent; + int descent; + int underline_thickness; + int underline_position; + int strikethrough_thickness; + int strikethrough_position; +}; + +class container_linux : public litehtml::document_container +{ + typedef std::map > images_map; + +protected: + cairo_surface_t* m_temp_surface; + cairo_t* m_temp_cr; + images_map m_images; + cairo_clip_box::vector m_clips; +public: + container_linux(); + virtual ~container_linux(); + + litehtml::uint_ptr create_font(const litehtml::tchar_t* faceName, int size, int weight, litehtml::font_style italic, unsigned int decoration, litehtml::font_metrics* fm) override; + void delete_font(litehtml::uint_ptr hFont) override; + int text_width(const litehtml::tchar_t* text, litehtml::uint_ptr hFont) override; + void draw_text(litehtml::uint_ptr hdc, const litehtml::tchar_t* text, litehtml::uint_ptr hFont, litehtml::web_color color, const litehtml::position& pos) override; + int pt_to_px(int pt) const override; + int get_default_font_size() const override; + const litehtml::tchar_t* get_default_font_name() const override; + void load_image(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, bool redraw_on_ready) override; + void get_image_size(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, litehtml::size& sz) override; + void draw_background(litehtml::uint_ptr hdc, const litehtml::background_paint& bg) override; + void draw_borders(litehtml::uint_ptr hdc, const litehtml::borders& borders, const litehtml::position& draw_pos, bool root) override; + void draw_list_marker(litehtml::uint_ptr hdc, const litehtml::list_marker& marker) override; + std::shared_ptr create_element(const litehtml::tchar_t *tag_name, + const litehtml::string_map &attributes, + const std::shared_ptr &doc) override; + void get_media_features(litehtml::media_features& media) const override; + void get_language(litehtml::tstring& language, litehtml::tstring & culture) const override; + void link(const std::shared_ptr &ptr, const litehtml::element::ptr& el) override; + + + void transform_text(litehtml::tstring& text, litehtml::text_transform tt) override; + void set_clip(const litehtml::position& pos, const litehtml::border_radiuses& bdr_radius, bool valid_x, bool valid_y) override; + void del_clip() override; + + virtual void make_url( const litehtml::tchar_t* url, const litehtml::tchar_t* basepath, litehtml::tstring& out ); + virtual Glib::RefPtr get_image(const litehtml::tchar_t* url, bool redraw_on_ready) = 0; + + void clear_images(); + +protected: + virtual void draw_ellipse(cairo_t* cr, int x, int y, int width, int height, const litehtml::web_color& color, int line_width); + virtual void fill_ellipse(cairo_t* cr, int x, int y, int width, int height, const litehtml::web_color& color); + virtual void rounded_rectangle( cairo_t* cr, const litehtml::position &pos, const litehtml::border_radiuses &radius ); + +private: + void apply_clip(cairo_t* cr); + + static void add_path_arc(cairo_t* cr, double x, double y, double rx, double ry, double a1, double a2, bool neg); + static void set_color(cairo_t* cr, const litehtml::web_color& color) { cairo_set_source_rgba(cr, color.red / 255.0, color.green / 255.0, color.blue / 255.0, color.alpha / 255.0); } + static cairo_surface_t* surface_from_pixbuf(const Glib::RefPtr& bmp); + static void draw_pixbuf(cairo_t* cr, const Glib::RefPtr& bmp, int x, int y, int cx, int cy); +}; + +#endif diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/test/container_test.cpp b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/test/container_test.cpp new file mode 100644 index 0000000..e9cba80 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/test/container_test.cpp @@ -0,0 +1,54 @@ +#include "container_test.h" + +container_test::container_test() {} +container_test::~container_test() {} +litehtml::uint_ptr container_test::create_font(const litehtml::tchar_t* faceName, int size, int weight, litehtml::font_style italic, unsigned int decoration, litehtml::font_metrics* fm) { + if (fm) { + fm->ascent = 10; + fm->descent = 5; + fm->height = 10 + 5; + fm->x_height = 3; + } + return (litehtml::uint_ptr)0; +} +void container_test::delete_font(litehtml::uint_ptr hFont) {} +int container_test::text_width(const litehtml::tchar_t* text, litehtml::uint_ptr hFont) { return 0; } +void container_test::draw_text(litehtml::uint_ptr hdc, const litehtml::tchar_t* text, litehtml::uint_ptr hFont, litehtml::web_color color, const litehtml::position& pos) {} +int container_test::pt_to_px(int pt) const { return (int)((double)pt * 96 / 72.0); } +int container_test::get_default_font_size() const { return 16; } +const litehtml::tchar_t* container_test::get_default_font_name() const { return _t("Times New Roman"); } +void container_test::draw_list_marker(litehtml::uint_ptr hdc, const litehtml::list_marker& marker) {} +void container_test::load_image(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, bool redraw_on_ready) {} +void container_test::get_image_size(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, litehtml::size& sz) {} +void container_test::draw_background(litehtml::uint_ptr hdc, const litehtml::background_paint& bg) {} +void container_test::make_url(const litehtml::tchar_t* url, const litehtml::tchar_t* basepath, litehtml::tstring& out) { out = url; } +void container_test::draw_borders(litehtml::uint_ptr hdc, const litehtml::borders& borders, const litehtml::position& draw_pos, bool root) {} +void container_test::set_caption(const litehtml::tchar_t* caption){}; //: set_caption +void container_test::set_base_url(const litehtml::tchar_t* base_url){}; //: set_base_url +void container_test::link(const std::shared_ptr& ptr, const litehtml::element::ptr& el) {} +void container_test::on_anchor_click(const litehtml::tchar_t* url, const litehtml::element::ptr& el) {} //: on_anchor_click +void container_test::set_cursor(const litehtml::tchar_t* cursor) {} //: set_cursor +void container_test::transform_text(litehtml::tstring& text, litehtml::text_transform tt) {} +void container_test::import_css(litehtml::tstring& text, const litehtml::tstring& url, litehtml::tstring& baseurl) {} //: import_css +void container_test::set_clip(const litehtml::position& pos, const litehtml::border_radiuses& bdr_radius, bool valid_x, bool valid_y) {} +void container_test::del_clip() {} +void container_test::get_client_rect(litehtml::position& client) const {} //: get_client_rect +std::shared_ptr container_test::create_element(const litehtml::tchar_t* tag_name, const litehtml::string_map& attributes, const std::shared_ptr& doc) { return 0; } +void container_test::get_media_features(litehtml::media_features& media) const { + litehtml::position client; + get_client_rect(client); + media.type = litehtml::media_type_screen; + media.width = client.width; + media.height = client.height; + media.device_width = 100; + media.device_height = 100; + media.color = 8; + media.monochrome = 0; + media.color_index = 256; + media.resolution = 96; +} +void container_test::get_language(litehtml::tstring& language, litehtml::tstring& culture) const { + language = _t("en"); + culture = _t(""); +} +//: resolve_color \ No newline at end of file diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/test/container_test.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/test/container_test.h new file mode 100644 index 0000000..73675af --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/test/container_test.h @@ -0,0 +1,44 @@ +#pragma once + +#include "../../include/litehtml.h" + +class container_test : public litehtml::document_container +{ +public: + container_test(); + virtual ~container_test(); + + virtual litehtml::uint_ptr create_font(const litehtml::tchar_t* faceName, int size, int weight, litehtml::font_style italic, unsigned int decoration, litehtml::font_metrics* fm) override; + virtual void delete_font(litehtml::uint_ptr hFont) override; + virtual int text_width(const litehtml::tchar_t* text, litehtml::uint_ptr hFont) override; + virtual void draw_text(litehtml::uint_ptr hdc, const litehtml::tchar_t* text, litehtml::uint_ptr hFont, litehtml::web_color color, const litehtml::position& pos) override; + virtual int pt_to_px(int pt) const override; + virtual int get_default_font_size() const override; + virtual const litehtml::tchar_t* get_default_font_name() const override; + virtual void load_image(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, bool redraw_on_ready) override; + virtual void get_image_size(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, litehtml::size& sz) override; + virtual void draw_background(litehtml::uint_ptr hdc, const litehtml::background_paint& bg) override; + virtual void draw_borders(litehtml::uint_ptr hdc, const litehtml::borders& borders, const litehtml::position& draw_pos, bool root) override; + virtual void draw_list_marker(litehtml::uint_ptr hdc, const litehtml::list_marker& marker) override; + virtual std::shared_ptr create_element(const litehtml::tchar_t *tag_name, + const litehtml::string_map &attributes, + const std::shared_ptr &doc) override; + virtual void get_media_features(litehtml::media_features& media) const override; + virtual void get_language(litehtml::tstring& language, litehtml::tstring & culture) const override; + virtual void link(const std::shared_ptr &ptr, const litehtml::element::ptr& el) override; + + + virtual void transform_text(litehtml::tstring& text, litehtml::text_transform tt) override; + virtual void set_clip(const litehtml::position& pos, const litehtml::border_radiuses& bdr_radius, bool valid_x, bool valid_y) override; + virtual void del_clip() override; + + virtual void make_url( const litehtml::tchar_t* url, const litehtml::tchar_t* basepath, litehtml::tstring& out ); + + + virtual void set_caption(const litehtml::tchar_t* caption) override; + virtual void set_base_url(const litehtml::tchar_t* base_url) override; + virtual void on_anchor_click(const litehtml::tchar_t* url, const litehtml::element::ptr& el) override; + virtual void set_cursor(const litehtml::tchar_t* cursor) override; + virtual void import_css(litehtml::tstring& text, const litehtml::tstring& url, litehtml::tstring& baseurl) override; + virtual void get_client_rect(litehtml::position& client) const override; +}; diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/win32/win32_container.cpp b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/win32/win32_container.cpp new file mode 100644 index 0000000..eb8e0b3 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/win32/win32_container.cpp @@ -0,0 +1,327 @@ +#include +#include "win32_container.h" + + +litehtml::win32_container::win32_container() +{ + m_hClipRgn = NULL; +} + +litehtml::win32_container::~win32_container() +{ + if(m_hClipRgn) + { + DeleteObject(m_hClipRgn); + } +} + +litehtml::uint_ptr litehtml::win32_container::create_font( const wchar_t* faceName, int size, int weight, font_style italic, unsigned int decoration ) +{ + litehtml::string_vector fonts; + tokenize(faceName, fonts, L","); + litehtml::trim(fonts[0]); + + LOGFONT lf; + ZeroMemory(&lf, sizeof(lf)); + wcscpy_s(lf.lfFaceName, LF_FACESIZE, fonts[0].c_str()); + + lf.lfHeight = -size; + lf.lfWeight = weight; + lf.lfItalic = (italic == litehtml::fontStyleItalic) ? TRUE : FALSE; + lf.lfCharSet = DEFAULT_CHARSET; + lf.lfOutPrecision = OUT_DEFAULT_PRECIS; + lf.lfClipPrecision = CLIP_DEFAULT_PRECIS; + lf.lfQuality = DEFAULT_QUALITY; + lf.lfStrikeOut = (decoration & litehtml::font_decoration_linethrough) ? TRUE : FALSE; + lf.lfUnderline = (decoration & litehtml::font_decoration_underline) ? TRUE : FALSE; + HFONT hFont = CreateFontIndirect(&lf); + + return (uint_ptr) hFont; +} + +void litehtml::win32_container::delete_font( uint_ptr hFont ) +{ + DeleteObject((HFONT) hFont); +} + +int litehtml::win32_container::line_height( uint_ptr hdc, uint_ptr hFont ) +{ + HFONT oldFont = (HFONT) SelectObject((HDC) hdc, (HFONT) hFont); + TEXTMETRIC tm; + GetTextMetrics((HDC) hdc, &tm); + SelectObject((HDC) hdc, oldFont); + return (int) tm.tmHeight; +} + +int litehtml::win32_container::text_width( uint_ptr hdc, const wchar_t* text, uint_ptr hFont ) +{ + HFONT oldFont = (HFONT) SelectObject((HDC) hdc, (HFONT) hFont); + + SIZE sz = {0, 0}; + + GetTextExtentPoint32((HDC) hdc, text, lstrlen(text), &sz); + + SelectObject((HDC) hdc, oldFont); + + return (int) sz.cx; +} + +void litehtml::win32_container::draw_text( uint_ptr hdc, const wchar_t* text, uint_ptr hFont, litehtml::web_color color, const litehtml::position& pos ) +{ + apply_clip((HDC) hdc); + + HFONT oldFont = (HFONT) SelectObject((HDC) hdc, (HFONT) hFont); + + SetBkMode((HDC) hdc, TRANSPARENT); + + SetTextColor((HDC) hdc, RGB(color.red, color.green, color.blue)); + + RECT rcText = { pos.left(), pos.top(), pos.right(), pos.bottom() }; + DrawText((HDC) hdc, text, -1, &rcText, DT_SINGLELINE | DT_NOPREFIX | DT_BOTTOM | DT_NOCLIP); + + SelectObject((HDC) hdc, oldFont); + + release_clip((HDC) hdc); +} + +void litehtml::win32_container::fill_rect( uint_ptr hdc, const litehtml::position& pos, const litehtml::web_color color, const litehtml::css_border_radius& radius ) +{ + apply_clip((HDC) hdc); + fill_rect((HDC) hdc, pos.x, pos.y, pos.width, pos.height, color, radius); + release_clip((HDC) hdc); +} + +litehtml::uint_ptr litehtml::win32_container::get_temp_dc() +{ + return (litehtml::uint_ptr) GetDC(NULL); +} + +void litehtml::win32_container::release_temp_dc( uint_ptr hdc ) +{ + ReleaseDC(NULL, (HDC) hdc); +} + +int litehtml::win32_container::pt_to_px( int pt ) +{ + HDC dc = GetDC(NULL); + int ret = MulDiv(pt, GetDeviceCaps(dc, LOGPIXELSY), 72); + ReleaseDC(NULL, dc); + return ret; +} + +int litehtml::win32_container::get_text_base_line( uint_ptr hdc, uint_ptr hFont ) +{ + HDC dc = (HDC) hdc; + if(!dc) + { + dc = GetDC(NULL); + } + HFONT oldFont = (HFONT) SelectObject(dc, (HFONT) hFont); + TEXTMETRIC tm; + GetTextMetrics(dc, &tm); + SelectObject(dc, oldFont); + if(!hdc) + { + ReleaseDC(NULL, dc); + } + return (int) tm.tmDescent; +} + +void litehtml::win32_container::draw_list_marker(uint_ptr hdc, const litehtml::list_marker& marker) +{ + apply_clip((HDC)hdc); + + int top_margin = marker.pos.height / 3; + if (top_margin < 4) + top_margin = 0; + + int draw_x = marker.pos.x; + int draw_y = marker.pos.y + top_margin; + int draw_width = marker.pos.height - top_margin * 2; + int draw_height = marker.pos.height - top_margin * 2; + + switch (marker.marker_type) + { + case list_style_type_circle: + { + draw_ellipse((HDC)hdc, draw_x, draw_y, draw_width, draw_height, marker.color, 1); + } + break; + case list_style_type_disc: + { + fill_ellipse((HDC)hdc, draw_x, draw_y, draw_width, draw_height, marker.color); + } + break; + case list_style_type_square: + { + fill_rect((HDC)hdc, draw_x, draw_y, draw_width, draw_height, marker.color, css_border_radius()); + } + break; + } + release_clip((HDC)hdc); +} + +void litehtml::win32_container::load_image( const wchar_t* src, const wchar_t* baseurl, bool redraw_on_ready ) +{ + std::wstring url; + make_url(src, baseurl, url); + if(m_images.find(url.c_str()) == m_images.end()) + { + uint_ptr img = get_image(url.c_str()); + if(img) + { + m_images[url.c_str()] = img; + } + } +} + +void litehtml::win32_container::get_image_size( const wchar_t* src, const wchar_t* baseurl, litehtml::size& sz ) +{ + std::wstring url; + make_url(src, baseurl, url); + + images_map::iterator img = m_images.find(url.c_str()); + if(img != m_images.end()) + { + get_img_size(img->second, sz); + } +} + +void litehtml::win32_container::draw_image( uint_ptr hdc, const wchar_t* src, const wchar_t* baseurl, const litehtml::position& pos ) +{ + apply_clip((HDC) hdc); + + std::wstring url; + make_url(src, baseurl, url); + images_map::iterator img = m_images.find(url.c_str()); + if(img != m_images.end()) + { + draw_img((HDC) hdc, img->second, pos); + } + + release_clip((HDC) hdc); +} + +void litehtml::win32_container::clear_images() +{ + for(images_map::iterator i = m_images.begin(); i != m_images.end(); i++) + { + if(i->second) + { + free_image(i->second); + } + } + m_images.clear(); +} + +int litehtml::win32_container::get_default_font_size() const +{ + return 16; +} + +void litehtml::win32_container::draw_background( uint_ptr hdc, const wchar_t* image, const wchar_t* baseurl, const litehtml::position& draw_pos, const litehtml::css_position& bg_pos, litehtml::background_repeat repeat, litehtml::background_attachment attachment ) +{ + apply_clip((HDC) hdc); + + std::wstring url; + make_url(image, baseurl, url); + + images_map::iterator img = m_images.find(url.c_str()); + if(img != m_images.end()) + { + litehtml::size img_sz; + get_img_size(img->second, img_sz); + + litehtml::position pos = draw_pos; + + if(bg_pos.x.units() != css_units_percentage) + { + pos.x += (int) bg_pos.x.val(); + } else + { + pos.x += (int) ((float) (draw_pos.width - img_sz.width) * bg_pos.x.val() / 100.0); + } + + if(bg_pos.y.units() != css_units_percentage) + { + pos.y += (int) bg_pos.y.val(); + } else + { + pos.y += (int) ( (float) (draw_pos.height - img_sz.height) * bg_pos.y.val() / 100.0); + } + + draw_img_bg((HDC) hdc, img->second, draw_pos, pos, repeat, attachment); + } + + release_clip((HDC) hdc); +} + +wchar_t litehtml::win32_container::toupper( const wchar_t c ) +{ + return (wchar_t) CharUpper((LPWSTR) c); +} + +wchar_t litehtml::win32_container::tolower( const wchar_t c ) +{ + return (wchar_t) CharLower((LPWSTR) c); +} + +void litehtml::win32_container::set_clip( const litehtml::position& pos, bool valid_x, bool valid_y ) +{ + litehtml::position clip_pos = pos; + litehtml::position client_pos; + get_client_rect(client_pos); + if(!valid_x) + { + clip_pos.x = client_pos.x; + clip_pos.width = client_pos.width; + } + if(!valid_y) + { + clip_pos.y = client_pos.y; + clip_pos.height = client_pos.height; + } + m_clips.push_back(clip_pos); +} + +void litehtml::win32_container::del_clip() +{ + if(!m_clips.empty()) + { + m_clips.pop_back(); + if(!m_clips.empty()) + { + litehtml::position clip_pos = m_clips.back(); + } + } +} + +void litehtml::win32_container::apply_clip(HDC hdc) +{ + if(m_hClipRgn) + { + DeleteObject(m_hClipRgn); + m_hClipRgn = NULL; + } + + if(!m_clips.empty()) + { + POINT ptView = {0, 0}; + GetWindowOrgEx(hdc, &ptView); + + litehtml::position clip_pos = m_clips.back(); + m_hClipRgn = CreateRectRgn(clip_pos.left() - ptView.x, clip_pos.top() - ptView.y, clip_pos.right() - ptView.x, clip_pos.bottom() - ptView.y); + SelectClipRgn(hdc, m_hClipRgn); + } +} + +void litehtml::win32_container::release_clip(HDC hdc) +{ + SelectClipRgn(hdc, NULL); + + if(m_hClipRgn) + { + DeleteObject(m_hClipRgn); + m_hClipRgn = NULL; + } +} diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/win32/win32_container.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/win32/win32_container.h new file mode 100644 index 0000000..e2a3613 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/containers/win32/win32_container.h @@ -0,0 +1,65 @@ +#pragma once +#include + +namespace litehtml +{ + class win32_container : public document_container + { + public: + typedef std::map images_map; + + protected: + + images_map m_images; + litehtml::position::vector m_clips; + HRGN m_hClipRgn; + + public: + win32_container(); + virtual ~win32_container(); + + // litehtml::document_container members + virtual uint_ptr create_font(const wchar_t* faceName, int size, int weight, font_style italic, unsigned int decoration); + virtual void delete_font(uint_ptr hFont); + virtual int line_height(uint_ptr hdc, uint_ptr hFont); + virtual int get_text_base_line(uint_ptr hdc, uint_ptr hFont); + virtual int text_width(uint_ptr hdc, const wchar_t* text, uint_ptr hFont); + virtual void draw_text(uint_ptr hdc, const wchar_t* text, uint_ptr hFont, litehtml::web_color color, const litehtml::position& pos); + virtual void fill_rect(uint_ptr hdc, const litehtml::position& pos, const litehtml::web_color color, const litehtml::css_border_radius& radius); + virtual uint_ptr get_temp_dc(); + virtual void release_temp_dc(uint_ptr hdc); + virtual int pt_to_px(int pt); + virtual void draw_list_marker(uint_ptr hdc, const litehtml::list_marker& marker); + virtual void load_image(const wchar_t* src, const wchar_t* baseurl, bool redraw_on_ready); + virtual void get_image_size(const wchar_t* src, const wchar_t* baseurl, litehtml::size& sz); + virtual void draw_image(uint_ptr hdc, const wchar_t* src, const wchar_t* baseurl, const litehtml::position& pos); + virtual void draw_background(uint_ptr hdc, + const wchar_t* image, + const wchar_t* baseurl, + const litehtml::position& draw_pos, + const litehtml::css_position& bg_pos, + litehtml::background_repeat repeat, + litehtml::background_attachment attachment); + + virtual int get_default_font_size() const; + virtual wchar_t toupper(const wchar_t c); + virtual wchar_t tolower(const wchar_t c); + virtual void set_clip(const litehtml::position& pos, bool valid_x, bool valid_y); + virtual void del_clip(); + + protected: + void apply_clip(HDC hdc); + void release_clip(HDC hdc); + void clear_images(); + virtual void make_url( LPCWSTR url, LPCWSTR basepath, std::wstring& out ) = 0; + virtual uint_ptr get_image(LPCWSTR url) = 0; + virtual void free_image(uint_ptr img) = 0; + virtual void get_client_rect(litehtml::position& client) = 0; + virtual void draw_ellipse(HDC hdc, int x, int y, int width, int height, const web_color& color, int line_width) = 0; + virtual void fill_ellipse(HDC hdc, int x, int y, int width, int height, const web_color& color) = 0; + virtual void fill_rect(HDC hdc, int x, int y, int width, int height, const web_color& color, const litehtml::css_border_radius& radius) = 0; + virtual void get_img_size(litehtml::uint_ptr img, litehtml::size& sz) = 0; + virtual void draw_img(HDC hdc, litehtml::uint_ptr img, const litehtml::position& pos) = 0; + virtual void draw_img_bg(HDC hdc, litehtml::uint_ptr img, const litehtml::position& draw_pos, const litehtml::position& pos, litehtml::background_repeat repeat, litehtml::background_attachment attachment) = 0; + }; +} \ No newline at end of file diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml.h new file mode 100644 index 0000000..98a24e0 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml.h @@ -0,0 +1,10 @@ +#ifndef LITEHTML_H +#define LITEHTML_H + +#include +#include +#include +#include +#include + +#endif // LITEHTML_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/attributes.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/attributes.h new file mode 100644 index 0000000..98487f0 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/attributes.h @@ -0,0 +1,35 @@ +#ifndef LH_ATTRIBUTES_H +#define LH_ATTRIBUTES_H + +namespace litehtml +{ + struct attr_color + { + unsigned char rgbBlue; + unsigned char rgbGreen; + unsigned char rgbRed; + unsigned char rgbAlpha; + attr_color() + { + rgbAlpha = 255; + rgbBlue = 0; + rgbGreen = 0; + rgbRed = 0; + } + }; + + struct attr_border + { + style_border border; + int width; + attr_color color; + + attr_border() + { + border = borderNone; + width = 0; + } + }; +} + +#endif // LH_ATTRIBUTES_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/background.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/background.h new file mode 100644 index 0000000..35b022b --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/background.h @@ -0,0 +1,58 @@ +#ifndef LH_BACKGROUND_H +#define LH_BACKGROUND_H + +#include "types.h" +#include "attributes.h" +#include "css_length.h" +#include "css_position.h" +#include "web_color.h" +#include "borders.h" + +namespace litehtml +{ + class background + { + public: + tstring m_image; + tstring m_baseurl; + web_color m_color; + background_attachment m_attachment; + css_position m_position; + background_repeat m_repeat; + background_box m_clip; + background_box m_origin; + css_border_radius m_radius; + + public: + background(); + background(const background& val); + ~background() = default; + + background& operator=(const background& val); + }; + + class background_paint + { + public: + tstring image; + tstring baseurl; + background_attachment attachment; + background_repeat repeat; + web_color color; + position clip_box; + position origin_box; + position border_box; + border_radiuses border_radius; + size image_size; + int position_x; + int position_y; + bool is_root; + public: + background_paint(); + background_paint(const background_paint& val); + background_paint& operator=(const background& val); + }; + +} + +#endif // LH_BACKGROUND_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/borders.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/borders.h new file mode 100644 index 0000000..7261867 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/borders.h @@ -0,0 +1,305 @@ +#ifndef LH_BORDERS_H +#define LH_BORDERS_H + +#include "css_length.h" +#include "types.h" + +namespace litehtml +{ + struct css_border + { + css_length width; + border_style style; + web_color color; + + css_border() + { + style = border_style_none; + } + + css_border(const css_border& val) + { + width = val.width; + style = val.style; + color = val.color; + } + + css_border& operator=(const css_border& val) + { + width = val.width; + style = val.style; + color = val.color; + return *this; + } + }; + + struct border + { + int width; + border_style style; + web_color color; + + border() + { + width = 0; + } + border(const border& val) + { + width = val.width; + style = val.style; + color = val.color; + } + border(const css_border& val) + { + width = (int) val.width.val(); + style = val.style; + color = val.color; + } + border& operator=(const border& val) + { + width = val.width; + style = val.style; + color = val.color; + return *this; + } + border& operator=(const css_border& val) + { + width = (int) val.width.val(); + style = val.style; + color = val.color; + return *this; + } + }; + + struct border_radiuses + { + int top_left_x; + int top_left_y; + + int top_right_x; + int top_right_y; + + int bottom_right_x; + int bottom_right_y; + + int bottom_left_x; + int bottom_left_y; + + border_radiuses() + { + top_left_x = 0; + top_left_y = 0; + top_right_x = 0; + top_right_y = 0; + bottom_right_x = 0; + bottom_right_y = 0; + bottom_left_x = 0; + bottom_left_y = 0; + } + border_radiuses(const border_radiuses& val) + { + top_left_x = val.top_left_x; + top_left_y = val.top_left_y; + top_right_x = val.top_right_x; + top_right_y = val.top_right_y; + bottom_right_x = val.bottom_right_x; + bottom_right_y = val.bottom_right_y; + bottom_left_x = val.bottom_left_x; + bottom_left_y = val.bottom_left_y; + } + border_radiuses& operator = (const border_radiuses& val) + { + top_left_x = val.top_left_x; + top_left_y = val.top_left_y; + top_right_x = val.top_right_x; + top_right_y = val.top_right_y; + bottom_right_x = val.bottom_right_x; + bottom_right_y = val.bottom_right_y; + bottom_left_x = val.bottom_left_x; + bottom_left_y = val.bottom_left_y; + return *this; + } + void operator += (const margins& mg) + { + top_left_x += mg.left; + top_left_y += mg.top; + top_right_x += mg.right; + top_right_y += mg.top; + bottom_right_x += mg.right; + bottom_right_y += mg.bottom; + bottom_left_x += mg.left; + bottom_left_y += mg.bottom; + fix_values(); + } + void operator -= (const margins& mg) + { + top_left_x -= mg.left; + top_left_y -= mg.top; + top_right_x -= mg.right; + top_right_y -= mg.top; + bottom_right_x -= mg.right; + bottom_right_y -= mg.bottom; + bottom_left_x -= mg.left; + bottom_left_y -= mg.bottom; + fix_values(); + } + void fix_values() + { + if (top_left_x < 0) top_left_x = 0; + if (top_left_y < 0) top_left_y = 0; + if (top_right_x < 0) top_right_x = 0; + if (top_right_y < 0) top_right_y = 0; + if (bottom_right_x < 0) bottom_right_x = 0; + if (bottom_right_y < 0) bottom_right_y = 0; + if (bottom_left_x < 0) bottom_left_x = 0; + if (bottom_left_y < 0) bottom_left_y = 0; + } + }; + + struct css_border_radius + { + css_length top_left_x; + css_length top_left_y; + + css_length top_right_x; + css_length top_right_y; + + css_length bottom_right_x; + css_length bottom_right_y; + + css_length bottom_left_x; + css_length bottom_left_y; + + css_border_radius() + { + + } + + css_border_radius(const css_border_radius& val) + { + top_left_x = val.top_left_x; + top_left_y = val.top_left_y; + top_right_x = val.top_right_x; + top_right_y = val.top_right_y; + bottom_left_x = val.bottom_left_x; + bottom_left_y = val.bottom_left_y; + bottom_right_x = val.bottom_right_x; + bottom_right_y = val.bottom_right_y; + } + + css_border_radius& operator=(const css_border_radius& val) + { + top_left_x = val.top_left_x; + top_left_y = val.top_left_y; + top_right_x = val.top_right_x; + top_right_y = val.top_right_y; + bottom_left_x = val.bottom_left_x; + bottom_left_y = val.bottom_left_y; + bottom_right_x = val.bottom_right_x; + bottom_right_y = val.bottom_right_y; + return *this; + } + border_radiuses calc_percents(int width, int height) + { + border_radiuses ret; + ret.bottom_left_x = bottom_left_x.calc_percent(width); + ret.bottom_left_y = bottom_left_y.calc_percent(height); + ret.top_left_x = top_left_x.calc_percent(width); + ret.top_left_y = top_left_y.calc_percent(height); + ret.top_right_x = top_right_x.calc_percent(width); + ret.top_right_y = top_right_y.calc_percent(height); + ret.bottom_right_x = bottom_right_x.calc_percent(width); + ret.bottom_right_y = bottom_right_y.calc_percent(height); + return ret; + } + }; + + struct css_borders + { + css_border left; + css_border top; + css_border right; + css_border bottom; + css_border_radius radius; + + css_borders() = default; + + bool is_visible() const + { + return left.width.val() != 0 || right.width.val() != 0 || top.width.val() != 0 || bottom.width.val() != 0; + } + + css_borders(const css_borders& val) + { + left = val.left; + right = val.right; + top = val.top; + bottom = val.bottom; + radius = val.radius; + } + + css_borders& operator=(const css_borders& val) + { + left = val.left; + right = val.right; + top = val.top; + bottom = val.bottom; + radius = val.radius; + return *this; + } + }; + + struct borders + { + border left; + border top; + border right; + border bottom; + border_radiuses radius; + + borders() = default; + + borders(const borders& val) + { + left = val.left; + right = val.right; + top = val.top; + bottom = val.bottom; + radius = val.radius; + } + + borders(const css_borders& val) + { + left = val.left; + right = val.right; + top = val.top; + bottom = val.bottom; + } + + bool is_visible() const + { + return left.width != 0 || right.width != 0 || top.width != 0 || bottom.width != 0; + } + + borders& operator=(const borders& val) + { + left = val.left; + right = val.right; + top = val.top; + bottom = val.bottom; + radius = val.radius; + return *this; + } + + borders& operator=(const css_borders& val) + { + left = val.left; + right = val.right; + top = val.top; + bottom = val.bottom; + return *this; + } + }; +} + +#endif // LH_BORDERS_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/box.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/box.h new file mode 100644 index 0000000..32c674e --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/box.h @@ -0,0 +1,120 @@ +#ifndef LH_BOX_H +#define LH_BOX_H + +namespace litehtml +{ + class html_tag; + + enum box_type + { + box_block, + box_line + }; + + class box + { + public: + typedef std::unique_ptr ptr; + typedef std::vector< box::ptr > vector; + protected: + int m_box_top; + int m_box_left; + int m_box_right; + public: + box(int top, int left, int right) + { + m_box_top = top; + m_box_left = left; + m_box_right = right; + } + virtual ~box() = default; + + int bottom() const { return m_box_top + height(); } + int top() const { return m_box_top; } + int right() const { return m_box_left + width(); } + int left() const { return m_box_left; } + + virtual litehtml::box_type get_type() const = 0; + virtual int height() const = 0; + virtual int width() const = 0; + virtual void add_element(const element::ptr &el) = 0; + virtual bool can_hold(const element::ptr &el, white_space ws) const = 0; + virtual void finish(bool last_box = false) = 0; + virtual bool is_empty() const = 0; + virtual int baseline() const = 0; + virtual void get_elements(elements_vector& els) = 0; + virtual int top_margin() const = 0; + virtual int bottom_margin() const = 0; + virtual void y_shift(int shift) = 0; + virtual void new_width(int left, int right, elements_vector& els) = 0; + }; + + ////////////////////////////////////////////////////////////////////////// + + class block_box : public box + { + element::ptr m_element; + public: + block_box(int top, int left, int right) : box(top, left, right) + { + m_element = nullptr; + } + + litehtml::box_type get_type() const override; + int height() const override; + int width() const override; + void add_element(const element::ptr &el) override; + bool can_hold(const element::ptr &el, white_space ws) const override; + void finish(bool last_box = false) override; + bool is_empty() const override; + int baseline() const override; + void get_elements(elements_vector& els) override; + int top_margin() const override; + int bottom_margin() const override; + void y_shift(int shift) override; + void new_width(int left, int right, elements_vector& els) override; + }; + + ////////////////////////////////////////////////////////////////////////// + + class line_box : public box + { + elements_vector m_items; + int m_height; + int m_width; + int m_line_height; + font_metrics m_font_metrics; + int m_baseline; + text_align m_text_align; + public: + line_box(int top, int left, int right, int line_height, font_metrics& fm, text_align align) : box(top, left, right) + { + m_height = 0; + m_width = 0; + m_font_metrics = fm; + m_line_height = line_height; + m_baseline = 0; + m_text_align = align; + } + + litehtml::box_type get_type() const override; + int height() const override; + int width() const override; + void add_element(const element::ptr &el) override; + bool can_hold(const element::ptr &el, white_space ws) const override; + void finish(bool last_box = false) override; + bool is_empty() const override; + int baseline() const override; + void get_elements(elements_vector& els) override; + int top_margin() const override; + int bottom_margin() const override; + void y_shift(int shift) override; + void new_width(int left, int right, elements_vector& els) override; + + private: + bool have_last_space() const; + bool is_break_only() const; + }; +} + +#endif // LH_BOX_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/codepoint.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/codepoint.h new file mode 100644 index 0000000..0bd7906 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/codepoint.h @@ -0,0 +1,51 @@ +// Copyright (C) 2020-2021 Primate Labs Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the names of the copyright holders nor the names of their +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#ifndef LITEHTML_CODEPOINT_H__ +#define LITEHTML_CODEPOINT_H__ + +#include + +#include "litehtml/os_types.h" + +namespace litehtml { + +bool is_ascii_codepoint(litehtml::tchar_t c); + +// Returns true if the codepoint is a reserved codepoint for URLs. +// https://datatracker.ietf.org/doc/html/rfc3986#section-2.2 +bool is_url_reserved_codepoint(litehtml::tchar_t c); + +// Returns true if the codepoint is a scheme codepoint for URLs. +// https://datatracker.ietf.org/doc/html/rfc3986#section-3.1 +bool is_url_scheme_codepoint(litehtml::tchar_t c); + +} // namespace litehtml + +#endif // LITEHTML_CODEPOINT_H__ diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/context.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/context.h new file mode 100644 index 0000000..b6450f8 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/context.h @@ -0,0 +1,20 @@ +#ifndef LH_CONTEXT_H +#define LH_CONTEXT_H + +#include "stylesheet.h" + +namespace litehtml +{ + class context + { + litehtml::css m_master_css; + public: + void load_master_stylesheet(const tchar_t* str); + litehtml::css& master_css() + { + return m_master_css; + } + }; +} + +#endif // LH_CONTEXT_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_length.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_length.h new file mode 100644 index 0000000..13a3d77 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_length.h @@ -0,0 +1,135 @@ +#ifndef LH_CSS_LENGTH_H +#define LH_CSS_LENGTH_H + +#include "types.h" + +namespace litehtml +{ + class css_length + { + union + { + float m_value; + int m_predef; + }; + css_units m_units; + bool m_is_predefined; + public: + css_length(); + css_length(const css_length& val); + + css_length& operator=(const css_length& val); + css_length& operator=(float val); + bool is_predefined() const; + void predef(int val); + int predef() const; + void set_value(float val, css_units units); + float val() const; + css_units units() const; + int calc_percent(int width) const; + void fromString(const tstring& str, const tstring& predefs = _t(""), int defValue = 0); + }; + + // css_length inlines + + inline css_length::css_length() + { + m_value = 0; + m_predef = 0; + m_units = css_units_none; + m_is_predefined = false; + } + + inline css_length::css_length(const css_length& val) + { + if(val.is_predefined()) + { + m_predef = val.m_predef; + } else + { + m_value = val.m_value; + } + m_units = val.m_units; + m_is_predefined = val.m_is_predefined; + } + + inline css_length& css_length::operator=(const css_length& val) + { + if(val.is_predefined()) + { + m_predef = val.m_predef; + } else + { + m_value = val.m_value; + } + m_units = val.m_units; + m_is_predefined = val.m_is_predefined; + return *this; + } + + inline css_length& css_length::operator=(float val) + { + m_value = val; + m_units = css_units_px; + m_is_predefined = false; + return *this; + } + + inline bool css_length::is_predefined() const + { + return m_is_predefined; + } + + inline void css_length::predef(int val) + { + m_predef = val; + m_is_predefined = true; + } + + inline int css_length::predef() const + { + if(m_is_predefined) + { + return m_predef; + } + return 0; + } + + inline void css_length::set_value(float val, css_units units) + { + m_value = val; + m_is_predefined = false; + m_units = units; + } + + inline float css_length::val() const + { + if(!m_is_predefined) + { + return m_value; + } + return 0; + } + + inline css_units css_length::units() const + { + return m_units; + } + + inline int css_length::calc_percent(int width) const + { + if(!is_predefined()) + { + if(units() == css_units_percentage) + { + return (int) ((double) width * (double) m_value / 100.0); + } else + { + return (int) val(); + } + } + return 0; + } +} + +#endif // LH_CSS_LENGTH_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_margins.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_margins.h new file mode 100644 index 0000000..def378a --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_margins.h @@ -0,0 +1,36 @@ +#ifndef LH_CSS_MARGINS_H +#define LH_CSS_MARGINS_H + +#include "css_length.h" + +namespace litehtml +{ + struct css_margins + { + css_length left; + css_length right; + css_length top; + css_length bottom; + + css_margins() = default; + + css_margins(const css_margins& val) + { + left = val.left; + right = val.right; + top = val.top; + bottom = val.bottom; + } + + css_margins& operator=(const css_margins& val) + { + left = val.left; + right = val.right; + top = val.top; + bottom = val.bottom; + return *this; + } + }; +} + +#endif // LH_CSS_MARGINS_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_offsets.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_offsets.h new file mode 100644 index 0000000..abeddfb --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_offsets.h @@ -0,0 +1,36 @@ +#ifndef LH_CSS_OFFSETS_H +#define LH_CSS_OFFSETS_H + +#include "css_length.h" + +namespace litehtml +{ + struct css_offsets + { + css_length left; + css_length top; + css_length right; + css_length bottom; + + css_offsets() = default; + + css_offsets(const css_offsets& val) + { + left = val.left; + top = val.top; + right = val.right; + bottom = val.bottom; + } + + css_offsets& operator=(const css_offsets& val) + { + left = val.left; + top = val.top; + right = val.right; + bottom = val.bottom; + return *this; + } + }; +} + +#endif // LH_CSS_OFFSETS_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_position.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_position.h new file mode 100644 index 0000000..1f88412 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_position.h @@ -0,0 +1,36 @@ +#ifndef LH_CSS_POSITION_H +#define LH_CSS_POSITION_H + +#include "css_length.h" + +namespace litehtml +{ + struct css_position + { + css_length x; + css_length y; + css_length width; + css_length height; + + css_position() = default; + + css_position(const css_position& val) + { + x = val.x; + y = val.y; + width = val.width; + height = val.height; + } + + css_position& operator=(const css_position& val) + { + x = val.x; + y = val.y; + width = val.width; + height = val.height; + return *this; + } + }; +} + +#endif // LH_CSS_POSITION_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_selector.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_selector.h new file mode 100644 index 0000000..45ba794 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/css_selector.h @@ -0,0 +1,276 @@ +#ifndef LH_CSS_SELECTOR_H +#define LH_CSS_SELECTOR_H + +#include "style.h" +#include "media_query.h" + +namespace litehtml +{ + ////////////////////////////////////////////////////////////////////////// + + struct selector_specificity + { + int a; + int b; + int c; + int d; + + explicit selector_specificity(int va = 0, int vb = 0, int vc = 0, int vd = 0) + { + a = va; + b = vb; + c = vc; + d = vd; + } + + void operator += (const selector_specificity& val) + { + a += val.a; + b += val.b; + c += val.c; + d += val.d; + } + + bool operator==(const selector_specificity& val) const + { + if(a == val.a && b == val.b && c == val.c && d == val.d) + { + return true; + } + return false; + } + + bool operator!=(const selector_specificity& val) const + { + if(a != val.a || b != val.b || c != val.c || d != val.d) + { + return true; + } + return false; + } + + bool operator > (const selector_specificity& val) const + { + if(a > val.a) + { + return true; + } else if(a < val.a) + { + return false; + } else + { + if(b > val.b) + { + return true; + } else if(b < val.b) + { + return false; + } else + { + if(c > val.c) + { + return true; + } else if(c < val.c) + { + return false; + } else + { + if(d > val.d) + { + return true; + } else if(d < val.d) + { + return false; + } + } + } + } + return false; + } + + bool operator >= (const selector_specificity& val) const + { + if((*this) == val) return true; + if((*this) > val) return true; + return false; + } + + bool operator <= (const selector_specificity& val) const + { + if((*this) > val) + { + return false; + } + return true; + } + + bool operator < (const selector_specificity& val) const + { + if((*this) <= val && (*this) != val) + { + return true; + } + return false; + } + + }; + + ////////////////////////////////////////////////////////////////////////// + + enum attr_select_condition + { + select_exists, + select_equal, + select_contain_str, + select_start_str, + select_end_str, + select_pseudo_class, + select_pseudo_element, + }; + + ////////////////////////////////////////////////////////////////////////// + + struct css_attribute_selector + { + typedef std::vector vector; + + tstring attribute; + tstring val; + string_vector class_val; + attr_select_condition condition; + + css_attribute_selector() + { + condition = select_exists; + } + }; + + ////////////////////////////////////////////////////////////////////////// + + class css_element_selector + { + public: + tstring m_tag; + css_attribute_selector::vector m_attrs; + public: + + void parse(const tstring& txt); + }; + + ////////////////////////////////////////////////////////////////////////// + + enum css_combinator + { + combinator_descendant, + combinator_child, + combinator_adjacent_sibling, + combinator_general_sibling + }; + + ////////////////////////////////////////////////////////////////////////// + + class css_selector + { + public: + typedef std::shared_ptr ptr; + typedef std::vector vector; + public: + selector_specificity m_specificity; + css_element_selector m_right; + css_selector::ptr m_left; + css_combinator m_combinator; + style::ptr m_style; + int m_order; + media_query_list::ptr m_media_query; + public: + explicit css_selector(const media_query_list::ptr& media) + { + m_media_query = media; + m_combinator = combinator_descendant; + m_order = 0; + } + + ~css_selector() = default; + + css_selector(const css_selector& val) + { + m_right = val.m_right; + if(val.m_left) + { + m_left = std::make_shared(*val.m_left); + } else + { + m_left = nullptr; + } + m_combinator = val.m_combinator; + m_specificity = val.m_specificity; + m_order = val.m_order; + m_media_query = val.m_media_query; + } + + bool parse(const tstring& text); + void calc_specificity(); + bool is_media_valid() const; + void add_media_to_doc(document* doc) const; + }; + + inline bool css_selector::is_media_valid() const + { + if(!m_media_query) + { + return true; + } + return m_media_query->is_used(); + } + + + ////////////////////////////////////////////////////////////////////////// + + inline bool operator > (const css_selector& v1, const css_selector& v2) + { + if(v1.m_specificity == v2.m_specificity) + { + return (v1.m_order > v2.m_order); + } + return (v1.m_specificity > v2.m_specificity); + } + + inline bool operator < (const css_selector& v1, const css_selector& v2) + { + if(v1.m_specificity == v2.m_specificity) + { + return (v1.m_order < v2.m_order); + } + return (v1.m_specificity < v2.m_specificity); + } + + inline bool operator >(const css_selector::ptr& v1, const css_selector::ptr& v2) + { + return (*v1 > *v2); + } + + inline bool operator < (const css_selector::ptr& v1, const css_selector::ptr& v2) + { + return (*v1 < *v2); + } + + ////////////////////////////////////////////////////////////////////////// + + class used_selector + { + public: + typedef std::unique_ptr ptr; + typedef std::vector vector; + + css_selector::ptr m_selector; + bool m_used; + + used_selector(const css_selector::ptr& selector, bool used) + { + m_used = used; + m_selector = selector; + } + }; +} + +#endif // LH_CSS_SELECTOR_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/document.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/document.h new file mode 100644 index 0000000..1fd8dab --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/document.h @@ -0,0 +1,117 @@ +#ifndef LH_DOCUMENT_H +#define LH_DOCUMENT_H + +#include "style.h" +#include "types.h" +#include "context.h" + +namespace litehtml +{ + struct css_text + { + typedef std::vector vector; + + tstring text; + tstring baseurl; + tstring media; + + css_text() = default; + + css_text(const tchar_t* txt, const tchar_t* url, const tchar_t* media_str) + { + text = txt ? txt : _t(""); + baseurl = url ? url : _t(""); + media = media_str ? media_str : _t(""); + } + + css_text(const css_text& val) + { + text = val.text; + baseurl = val.baseurl; + media = val.media; + } + }; + + class html_tag; + + class document : public std::enable_shared_from_this + { + public: + typedef std::shared_ptr ptr; + typedef std::weak_ptr weak_ptr; + private: + std::shared_ptr m_root; + document_container* m_container; + fonts_map m_fonts; + css_text::vector m_css; + litehtml::css m_styles; + litehtml::web_color m_def_color; + litehtml::context* m_context; + litehtml::size m_size; + position::vector m_fixed_boxes; + media_query_list::vector m_media_lists; + element::ptr m_over_element; + elements_vector m_tabular_elements; + media_features m_media; + tstring m_lang; + tstring m_culture; + public: + document(litehtml::document_container* objContainer, litehtml::context* ctx); + virtual ~document(); + + litehtml::document_container* container() { return m_container; } + uint_ptr get_font(const tchar_t* name, int size, const tchar_t* weight, const tchar_t* style, const tchar_t* decoration, font_metrics* fm); + int render(int max_width, render_type rt = render_all); + void draw(uint_ptr hdc, int x, int y, const position* clip); + web_color get_def_color() { return m_def_color; } + int cvt_units(const tchar_t* str, int fontSize, bool* is_percent = nullptr) const; + int cvt_units(css_length& val, int fontSize, int size = 0) const; + int width() const; + int height() const; + void add_stylesheet(const tchar_t* str, const tchar_t* baseurl, const tchar_t* media); + bool on_mouse_over(int x, int y, int client_x, int client_y, position::vector& redraw_boxes); + bool on_lbutton_down(int x, int y, int client_x, int client_y, position::vector& redraw_boxes); + bool on_lbutton_up(int x, int y, int client_x, int client_y, position::vector& redraw_boxes); + bool on_mouse_leave(position::vector& redraw_boxes); + litehtml::element::ptr create_element(const tchar_t* tag_name, const string_map& attributes); + element::ptr root(); + void get_fixed_boxes(position::vector& fixed_boxes); + void add_fixed_box(const position& pos); + void add_media_list(const media_query_list::ptr& list); + bool media_changed(); + bool lang_changed(); + bool match_lang(const tstring & lang); + void add_tabular(const element::ptr& el); + element::const_ptr get_over_element() const { return m_over_element; } + + void append_children_from_string(element& parent, const tchar_t* str); + void append_children_from_utf8(element& parent, const char* str); + + static litehtml::document::ptr createFromString(const tchar_t* str, litehtml::document_container* objPainter, litehtml::context* ctx, litehtml::css* user_styles = nullptr); + static litehtml::document::ptr createFromUTF8(const char* str, litehtml::document_container* objPainter, litehtml::context* ctx, litehtml::css* user_styles = nullptr); + + private: + litehtml::uint_ptr add_font(const tchar_t* name, int size, const tchar_t* weight, const tchar_t* style, const tchar_t* decoration, font_metrics* fm); + + void create_node(void* gnode, elements_vector& elements, bool parseTextNode); + bool update_media_lists(const media_features& features); + void fix_tables_layout(); + void fix_table_children(element::ptr& el_ptr, style_display disp, const tchar_t* disp_str); + void fix_table_parent(element::ptr& el_ptr, style_display disp, const tchar_t* disp_str); + }; + + inline element::ptr document::root() + { + return m_root; + } + inline void document::add_tabular(const element::ptr& el) + { + m_tabular_elements.push_back(el); + } + inline bool document::match_lang(const tstring & lang) + { + return lang == m_lang || lang == m_culture; + } +} + +#endif // LH_DOCUMENT_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_anchor.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_anchor.h new file mode 100644 index 0000000..b33794c --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_anchor.h @@ -0,0 +1,18 @@ +#ifndef LH_EL_ANCHOR_H +#define LH_EL_ANCHOR_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_anchor : public html_tag + { + public: + explicit el_anchor(const std::shared_ptr& doc); + + void on_click() override; + void apply_stylesheet(const litehtml::css& stylesheet) override; + }; +} + +#endif // LH_EL_ANCHOR_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_base.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_base.h new file mode 100644 index 0000000..d7efb80 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_base.h @@ -0,0 +1,17 @@ +#ifndef LH_EL_BASE_H +#define LH_EL_BASE_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_base : public html_tag + { + public: + explicit el_base(const std::shared_ptr& doc); + + void parse_attributes() override; + }; +} + +#endif // LH_EL_BASE_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_before_after.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_before_after.h new file mode 100644 index 0000000..b8ee89e --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_before_after.h @@ -0,0 +1,40 @@ +#ifndef LH_EL_BEFORE_AFTER_H +#define LH_EL_BEFORE_AFTER_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_before_after_base : public html_tag + { + public: + el_before_after_base(const std::shared_ptr& doc, bool before); + + void add_style(const litehtml::style& st) override; + void apply_stylesheet(const litehtml::css& stylesheet) override; + private: + void add_text(const tstring& txt); + void add_function(const tstring& fnc, const tstring& params); + static tstring convert_escape(const tchar_t* txt); + }; + + class el_before : public el_before_after_base + { + public: + explicit el_before(const std::shared_ptr& doc) : el_before_after_base(doc, true) + { + + } + }; + + class el_after : public el_before_after_base + { + public: + explicit el_after(const std::shared_ptr& doc) : el_before_after_base(doc, false) + { + + } + }; +} + +#endif // LH_EL_BEFORE_AFTER_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_body.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_body.h new file mode 100644 index 0000000..fb30e0c --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_body.h @@ -0,0 +1,17 @@ +#ifndef LH_EL_BODY_H +#define LH_EL_BODY_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_body : public html_tag + { + public: + explicit el_body(const std::shared_ptr& doc); + + bool is_body() const override; + }; +} + +#endif // LH_EL_BODY_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_break.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_break.h new file mode 100644 index 0000000..81f38fe --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_break.h @@ -0,0 +1,17 @@ +#ifndef LH_EL_BREAK_H +#define LH_EL_BREAK_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_break : public html_tag + { + public: + explicit el_break(const std::shared_ptr& doc); + + bool is_break() const override; + }; +} + +#endif // LH_EL_BREAK_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_cdata.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_cdata.h new file mode 100644 index 0000000..a948c62 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_cdata.h @@ -0,0 +1,19 @@ +#ifndef LH_EL_CDATA_H +#define LH_EL_CDATA_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_cdata : public element + { + tstring m_text; + public: + explicit el_cdata(const std::shared_ptr& doc); + + void get_text(tstring& text) override; + void set_data(const tchar_t* data) override; + }; +} + +#endif // LH_EL_CDATA_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_comment.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_comment.h new file mode 100644 index 0000000..f1fab3f --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_comment.h @@ -0,0 +1,19 @@ +#ifndef LH_EL_COMMENT_H +#define LH_EL_COMMENT_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_comment : public element + { + tstring m_text; + public: + explicit el_comment(const std::shared_ptr& doc); + + void get_text(tstring& text) override; + void set_data(const tchar_t* data) override; + }; +} + +#endif // LH_EL_COMMENT_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_div.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_div.h new file mode 100644 index 0000000..a2d031a --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_div.h @@ -0,0 +1,17 @@ +#ifndef LH_EL_DIV_H +#define LH_EL_DIV_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_div : public html_tag + { + public: + explicit el_div(const std::shared_ptr& doc); + + void parse_attributes() override; + }; +} + +#endif // LH_EL_DIV_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_font.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_font.h new file mode 100644 index 0000000..ccb8945 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_font.h @@ -0,0 +1,17 @@ +#ifndef LH_EL_FONT_H +#define LH_EL_FONT_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_font : public html_tag + { + public: + explicit el_font(const std::shared_ptr& doc); + + void parse_attributes() override; + }; +} + +#endif // LH_EL_FONT_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_image.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_image.h new file mode 100644 index 0000000..fa13d3c --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_image.h @@ -0,0 +1,28 @@ +#ifndef LH_EL_IMAGE_H +#define LH_EL_IMAGE_H + +#include "html_tag.h" + +namespace litehtml +{ + + class el_image : public html_tag + { + tstring m_src; + public: + el_image(const std::shared_ptr& doc); + virtual ~el_image(void); + + virtual int line_height() const override; + virtual bool is_replaced() const override; + virtual int render(int x, int y, int max_width, bool second_pass = false) override; + virtual void parse_attributes() override; + virtual void parse_styles(bool is_reparse = false) override; + virtual void draw(uint_ptr hdc, int x, int y, const position* clip) override; + virtual void get_content_size(size& sz, int max_width) override; + private: + int calc_max_height(int image_height); + }; +} + +#endif // LH_EL_IMAGE_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_li.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_li.h new file mode 100644 index 0000000..4500465 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_li.h @@ -0,0 +1,20 @@ +#ifndef LH_EL_LI_H +#define LH_EL_LI_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_li : public html_tag + { + public: + explicit el_li(const std::shared_ptr& doc); + + int render(int x, int y, int max_width, bool second_pass = false) override; + + private: + bool m_index_initialized = false; + }; +} + +#endif // LH_EL_LI_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_link.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_link.h new file mode 100644 index 0000000..0da3513 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_link.h @@ -0,0 +1,18 @@ +#ifndef LH_EL_LINK_H +#define LH_EL_LINK_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_link : public html_tag + { + public: + explicit el_link(const std::shared_ptr& doc); + + protected: + void parse_attributes() override; + }; +} + +#endif // LH_EL_LINK_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_para.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_para.h new file mode 100644 index 0000000..32ad537 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_para.h @@ -0,0 +1,18 @@ +#ifndef LH_EL_PARA_H +#define LH_EL_PARA_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_para : public html_tag + { + public: + explicit el_para(const std::shared_ptr& doc); + + void parse_attributes() override; + + }; +} + +#endif // LH_EL_PARA_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_script.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_script.h new file mode 100644 index 0000000..6676795 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_script.h @@ -0,0 +1,20 @@ +#ifndef LH_EL_SCRIPT_H +#define LH_EL_SCRIPT_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_script : public element + { + tstring m_text; + public: + explicit el_script(const std::shared_ptr& doc); + + void parse_attributes() override; + bool appendChild(const ptr &el) override; + const tchar_t* get_tagName() const override; + }; +} + +#endif // LH_EL_SCRIPT_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_space.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_space.h new file mode 100644 index 0000000..e1c81b4 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_space.h @@ -0,0 +1,20 @@ +#ifndef LH_EL_SPACE_H +#define LH_EL_SPACE_H + +#include "html_tag.h" +#include "el_text.h" + +namespace litehtml +{ + class el_space : public el_text + { + public: + el_space(const tchar_t* text, const std::shared_ptr& doc); + + bool is_white_space() const override; + bool is_break() const override; + bool is_space() const override; + }; +} + +#endif // LH_EL_SPACE_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_style.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_style.h new file mode 100644 index 0000000..6302688 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_style.h @@ -0,0 +1,20 @@ +#ifndef LH_EL_STYLE_H +#define LH_EL_STYLE_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_style : public element + { + elements_vector m_children; + public: + explicit el_style(const std::shared_ptr& doc); + + void parse_attributes() override; + bool appendChild(const ptr &el) override; + const tchar_t* get_tagName() const override; + }; +} + +#endif // LH_EL_STYLE_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_table.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_table.h new file mode 100644 index 0000000..ea97521 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_table.h @@ -0,0 +1,26 @@ +#ifndef LH_EL_TABLE_H +#define LH_EL_TABLE_H + +#include "html_tag.h" + +namespace litehtml +{ + struct col_info + { + int width; + bool is_auto; + }; + + + class el_table : public html_tag + { + public: + explicit el_table(const std::shared_ptr& doc); + + bool appendChild(const litehtml::element::ptr& el) override; + void parse_styles(bool is_reparse = false) override; + void parse_attributes() override; + }; +} + +#endif // LH_EL_TABLE_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_td.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_td.h new file mode 100644 index 0000000..03d21c1 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_td.h @@ -0,0 +1,17 @@ +#ifndef LH_EL_TD_H +#define LH_EL_TD_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_td : public html_tag + { + public: + explicit el_td(const std::shared_ptr& doc); + + void parse_attributes() override; + }; +} + +#endif // LH_EL_TD_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_text.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_text.h new file mode 100644 index 0000000..34771c6 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_text.h @@ -0,0 +1,37 @@ +#ifndef LH_EL_TEXT_H +#define LH_EL_TEXT_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_text : public element + { + protected: + tstring m_text; + tstring m_transformed_text; + size m_size; + text_transform m_text_transform; + bool m_use_transformed; + bool m_draw_spaces; + public: + el_text(const tchar_t* text, const std::shared_ptr& doc); + + void get_text(tstring& text) override; + const tchar_t* get_style_property(const tchar_t* name, bool inherited, const tchar_t* def = nullptr) override; + void parse_styles(bool is_reparse) override; + int get_base_line() override; + void draw(uint_ptr hdc, int x, int y, const position* clip) override; + int line_height() const override; + uint_ptr get_font(font_metrics* fm = nullptr) override; + style_display get_display() const override; + white_space get_white_space() const override; + element_position get_element_position(css_offsets* offsets = nullptr) const override; + css_offsets get_css_offsets() const override; + + protected: + void get_content_size(size& sz, int max_width) override; + }; +} + +#endif // LH_EL_TEXT_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_title.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_title.h new file mode 100644 index 0000000..201186a --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_title.h @@ -0,0 +1,18 @@ +#ifndef LH_EL_TITLE_H +#define LH_EL_TITLE_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_title : public html_tag + { + public: + explicit el_title(const std::shared_ptr& doc); + + protected: + void parse_attributes() override; + }; +} + +#endif // LH_EL_TITLE_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_tr.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_tr.h new file mode 100644 index 0000000..40a2f70 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/el_tr.h @@ -0,0 +1,18 @@ +#ifndef LH_EL_TR_H +#define LH_EL_TR_H + +#include "html_tag.h" + +namespace litehtml +{ + class el_tr : public html_tag + { + public: + explicit el_tr(const std::shared_ptr& doc); + + void parse_attributes() override; + void get_inline_boxes(position::vector& boxes) override; + }; +} + +#endif // LH_EL_TR_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/element.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/element.h new file mode 100644 index 0000000..3c31cb5 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/element.h @@ -0,0 +1,405 @@ +#ifndef LH_ELEMENT_H +#define LH_ELEMENT_H + +#include +#include "stylesheet.h" +#include "css_offsets.h" + +namespace litehtml +{ + class box; + + class element : public std::enable_shared_from_this + { + friend class block_box; + friend class line_box; + friend class html_tag; + friend class el_table; + friend class document; + public: + typedef std::shared_ptr ptr; + typedef std::shared_ptr const_ptr; + typedef std::weak_ptr weak_ptr; + protected: + std::weak_ptr m_parent; + std::weak_ptr m_doc; + litehtml::box* m_box; + elements_vector m_children; + position m_pos; + margins m_margins; + margins m_padding; + margins m_borders; + bool m_skip; + + virtual void select_all(const css_selector& selector, elements_vector& res); + public: + explicit element(const std::shared_ptr& doc); + virtual ~element() = default; + + // returns refer to m_pos member; + position& get_position(); + + int left() const; + int right() const; + int top() const; + int bottom() const; + int height() const; + int width() const; + + int content_margins_top() const; + int content_margins_bottom() const; + int content_margins_left() const; + int content_margins_right() const; + int content_margins_width() const; + int content_margins_height() const; + + int margin_top() const; + int margin_bottom() const; + int margin_left() const; + int margin_right() const; + margins get_margins() const; + + int padding_top() const; + int padding_bottom() const; + int padding_left() const; + int padding_right() const; + margins get_paddings() const; + + int border_top() const; + int border_bottom() const; + int border_left() const; + int border_right() const; + margins get_borders() const; + + bool in_normal_flow() const; + litehtml::web_color get_color(const tchar_t* prop_name, bool inherited, const litehtml::web_color& def_color = litehtml::web_color()); + bool is_inline_box() const; + position get_placement() const; + bool collapse_top_margin() const; + bool collapse_bottom_margin() const; + bool is_positioned() const; + + bool skip() const; + void skip(bool val); + bool have_parent() const; + element::ptr parent() const; + void parent(const element::ptr& par); + bool is_visible() const; + int calc_width(int defVal) const; + int get_inline_shift_left(); + int get_inline_shift_right(); + void apply_relative_shift(int parent_width); + + std::shared_ptr get_document() const; + + virtual elements_vector select_all(const tstring& selector); + virtual elements_vector select_all(const css_selector& selector); + + virtual element::ptr select_one(const tstring& selector); + virtual element::ptr select_one(const css_selector& selector); + + virtual int render(int x, int y, int max_width, bool second_pass = false); + virtual int render_inline(const ptr &container, int max_width); + virtual int place_element(const ptr &el, int max_width); + virtual void calc_outlines( int parent_width ); + virtual void calc_auto_margins(int parent_width); + virtual void apply_vertical_align(); + virtual bool fetch_positioned(); + virtual void render_positioned(render_type rt = render_all); + + virtual bool appendChild(const ptr &el); + virtual bool removeChild(const ptr &el); + virtual void clearRecursive(); + + virtual const tchar_t* get_tagName() const; + virtual void set_tagName(const tchar_t* tag); + virtual void set_data(const tchar_t* data); + virtual element_float get_float() const; + virtual vertical_align get_vertical_align() const; + virtual element_clear get_clear() const; + virtual size_t get_children_count() const; + virtual element::ptr get_child(int idx) const; + virtual overflow get_overflow() const; + + virtual css_length get_css_left() const; + virtual css_length get_css_right() const; + virtual css_length get_css_top() const; + virtual css_length get_css_bottom() const; + virtual css_offsets get_css_offsets() const; + virtual css_length get_css_width() const; + virtual void set_css_width(css_length& w); + virtual css_length get_css_height() const; + + virtual void set_attr(const tchar_t* name, const tchar_t* val); + virtual const tchar_t* get_attr(const tchar_t* name, const tchar_t* def = nullptr) const; + virtual void apply_stylesheet(const litehtml::css& stylesheet); + virtual void refresh_styles(); + virtual bool is_white_space() const; + virtual bool is_space() const; + virtual bool is_body() const; + virtual bool is_break() const; + virtual int get_base_line(); + virtual bool on_mouse_over(); + virtual bool on_mouse_leave(); + virtual bool on_lbutton_down(); + virtual bool on_lbutton_up(); + virtual void on_click(); + virtual bool find_styles_changes(position::vector& redraw_boxes, int x, int y); + virtual const tchar_t* get_cursor(); + virtual void init_font(); + virtual bool is_point_inside(int x, int y); + virtual bool set_pseudo_class(const tchar_t* pclass, bool add); + virtual bool set_class(const tchar_t* pclass, bool add); + virtual bool is_replaced() const; + virtual int line_height() const; + virtual white_space get_white_space() const; + virtual style_display get_display() const; + virtual visibility get_visibility() const; + virtual element_position get_element_position(css_offsets* offsets = nullptr) const; + virtual void get_inline_boxes(position::vector& boxes); + virtual void parse_styles(bool is_reparse = false); + virtual void draw(uint_ptr hdc, int x, int y, const position* clip); + virtual void draw_background( uint_ptr hdc, int x, int y, const position* clip ); + virtual const tchar_t* get_style_property(const tchar_t* name, bool inherited, const tchar_t* def = nullptr); + virtual uint_ptr get_font(font_metrics* fm = nullptr); + virtual int get_font_size() const; + virtual void get_text(tstring& text); + virtual void parse_attributes(); + virtual int select(const css_selector& selector, bool apply_pseudo = true); + virtual int select(const css_element_selector& selector, bool apply_pseudo = true); + virtual element::ptr find_ancestor(const css_selector& selector, bool apply_pseudo = true, bool* is_pseudo = nullptr); + virtual bool is_ancestor(const ptr &el) const; + virtual element::ptr find_adjacent_sibling(const element::ptr& el, const css_selector& selector, bool apply_pseudo = true, bool* is_pseudo = nullptr); + virtual element::ptr find_sibling(const element::ptr& el, const css_selector& selector, bool apply_pseudo = true, bool* is_pseudo = nullptr); + virtual bool is_first_child_inline(const element::ptr& el) const; + virtual bool is_last_child_inline(const element::ptr& el); + virtual bool have_inline_child() const; + virtual void get_content_size(size& sz, int max_width); + virtual void init(); + virtual bool is_floats_holder() const; + virtual int get_floats_height(element_float el_float = float_none) const; + virtual int get_left_floats_height() const; + virtual int get_right_floats_height() const; + virtual int get_line_left(int y); + virtual int get_line_right(int y, int def_right); + virtual void get_line_left_right(int y, int def_right, int& ln_left, int& ln_right); + virtual void add_float(const ptr &el, int x, int y); + virtual void update_floats(int dy, const ptr &parent); + virtual void add_positioned(const ptr &el); + virtual int find_next_line_top(int top, int width, int def_right); + virtual int get_zindex() const; + virtual void draw_stacking_context(uint_ptr hdc, int x, int y, const position* clip, bool with_positioned); + virtual void draw_children( uint_ptr hdc, int x, int y, const position* clip, draw_flag flag, int zindex ); + virtual bool is_nth_child(const element::ptr& el, int num, int off, bool of_type) const; + virtual bool is_nth_last_child(const element::ptr& el, int num, int off, bool of_type) const; + virtual bool is_only_child(const element::ptr& el, bool of_type) const; + virtual bool get_predefined_height(int& p_height) const; + virtual void calc_document_size(litehtml::size& sz, int x = 0, int y = 0); + virtual void get_redraw_box(litehtml::position& pos, int x = 0, int y = 0); + virtual void add_style(const litehtml::style& st); + virtual element::ptr get_element_by_point(int x, int y, int client_x, int client_y); + virtual element::ptr get_child_by_point(int x, int y, int client_x, int client_y, draw_flag flag, int zindex); + virtual const background* get_background(bool own_only = false); + }; + + ////////////////////////////////////////////////////////////////////////// + // INLINE FUNCTIONS // + ////////////////////////////////////////////////////////////////////////// + + inline int litehtml::element::right() const + { + return left() + width(); + } + + inline int litehtml::element::left() const + { + return m_pos.left() - margin_left() - m_padding.left - m_borders.left; + } + + inline int litehtml::element::top() const + { + return m_pos.top() - margin_top() - m_padding.top - m_borders.top; + } + + inline int litehtml::element::bottom() const + { + return top() + height(); + } + + inline int litehtml::element::height() const + { + return m_pos.height + margin_top() + margin_bottom() + m_padding.height() + m_borders.height(); + } + + inline int litehtml::element::width() const + { + return m_pos.width + margin_left() + margin_right() + m_padding.width() + m_borders.width(); + } + + inline int litehtml::element::content_margins_top() const + { + return margin_top() + m_padding.top + m_borders.top; + } + + inline int litehtml::element::content_margins_bottom() const + { + return margin_bottom() + m_padding.bottom + m_borders.bottom; + } + + inline int litehtml::element::content_margins_left() const + { + return margin_left() + m_padding.left + m_borders.left; + } + + inline int litehtml::element::content_margins_right() const + { + return margin_right() + m_padding.right + m_borders.right; + } + + inline int litehtml::element::content_margins_width() const + { + return content_margins_left() + content_margins_right(); + } + + inline int litehtml::element::content_margins_height() const + { + return content_margins_top() + content_margins_bottom(); + } + + inline litehtml::margins litehtml::element::get_paddings() const + { + return m_padding; + } + + inline litehtml::margins litehtml::element::get_borders() const + { + return m_borders; + } + + inline int litehtml::element::padding_top() const + { + return m_padding.top; + } + + inline int litehtml::element::padding_bottom() const + { + return m_padding.bottom; + } + + inline int litehtml::element::padding_left() const + { + return m_padding.left; + } + + inline int litehtml::element::padding_right() const + { + return m_padding.right; + } + + inline bool litehtml::element::in_normal_flow() const + { + if(get_element_position() != element_position_absolute && get_display() != display_none) + { + return true; + } + return false; + } + + inline int litehtml::element::border_top() const + { + return m_borders.top; + } + + inline int litehtml::element::border_bottom() const + { + return m_borders.bottom; + } + + inline int litehtml::element::border_left() const + { + return m_borders.left; + } + + inline int litehtml::element::border_right() const + { + return m_borders.right; + } + + inline bool litehtml::element::skip() const + { + return m_skip; + } + + inline void litehtml::element::skip(bool val) + { + m_skip = val; + } + + inline bool litehtml::element::have_parent() const + { + return !m_parent.expired(); + } + + inline element::ptr litehtml::element::parent() const + { + return m_parent.lock(); + } + + inline void litehtml::element::parent(const element::ptr& par) + { + m_parent = par; + } + + inline int litehtml::element::margin_top() const + { + return m_margins.top; + } + + inline int litehtml::element::margin_bottom() const + { + return m_margins.bottom; + } + + inline int litehtml::element::margin_left() const + { + return m_margins.left; + } + + inline int litehtml::element::margin_right() const + { + return m_margins.right; + } + + inline litehtml::margins litehtml::element::get_margins() const + { + margins ret; + ret.left = margin_left(); + ret.right = margin_right(); + ret.top = margin_top(); + ret.bottom = margin_bottom(); + + return ret; + } + + inline bool litehtml::element::is_positioned() const + { + return (get_element_position() > element_position_static); + } + + inline bool litehtml::element::is_visible() const + { + return !(m_skip || get_display() == display_none || get_visibility() != visibility_visible); + } + + inline position& litehtml::element::get_position() + { + return m_pos; + } + + inline std::shared_ptr element::get_document() const + { + return m_doc.lock(); + } +} + +#endif // LH_ELEMENT_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/html.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/html.h new file mode 100644 index 0000000..8bf9bed --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/html.h @@ -0,0 +1,117 @@ +#ifndef LH_HTML_H +#define LH_HTML_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "os_types.h" +#include "types.h" +#include "background.h" +#include "borders.h" +#include "html_tag.h" +#include "web_color.h" +#include "media_query.h" + +namespace litehtml +{ + struct list_marker + { + tstring image; + const tchar_t* baseurl; + list_style_type marker_type; + web_color color; + position pos; + int index; + uint_ptr font; + }; + + // call back interface to draw text, images and other elements + class document_container + { + public: + virtual litehtml::uint_ptr create_font(const litehtml::tchar_t* faceName, int size, int weight, litehtml::font_style italic, unsigned int decoration, litehtml::font_metrics* fm) = 0; + virtual void delete_font(litehtml::uint_ptr hFont) = 0; + virtual int text_width(const litehtml::tchar_t* text, litehtml::uint_ptr hFont) = 0; + virtual void draw_text(litehtml::uint_ptr hdc, const litehtml::tchar_t* text, litehtml::uint_ptr hFont, litehtml::web_color color, const litehtml::position& pos) = 0; + virtual int pt_to_px(int pt) const = 0; + virtual int get_default_font_size() const = 0; + virtual const litehtml::tchar_t* get_default_font_name() const = 0; + virtual void draw_list_marker(litehtml::uint_ptr hdc, const litehtml::list_marker& marker) = 0; + virtual void load_image(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, bool redraw_on_ready) = 0; + virtual void get_image_size(const litehtml::tchar_t* src, const litehtml::tchar_t* baseurl, litehtml::size& sz) = 0; + virtual void draw_background(litehtml::uint_ptr hdc, const litehtml::background_paint& bg) = 0; + virtual void draw_borders(litehtml::uint_ptr hdc, const litehtml::borders& borders, const litehtml::position& draw_pos, bool root) = 0; + + virtual void set_caption(const litehtml::tchar_t* caption) = 0; + virtual void set_base_url(const litehtml::tchar_t* base_url) = 0; + virtual void link(const std::shared_ptr& doc, const litehtml::element::ptr& el) = 0; + virtual void on_anchor_click(const litehtml::tchar_t* url, const litehtml::element::ptr& el) = 0; + virtual void set_cursor(const litehtml::tchar_t* cursor) = 0; + virtual void transform_text(litehtml::tstring& text, litehtml::text_transform tt) = 0; + virtual void import_css(litehtml::tstring& text, const litehtml::tstring& url, litehtml::tstring& baseurl) = 0; + virtual void set_clip(const litehtml::position& pos, const litehtml::border_radiuses& bdr_radius, bool valid_x, bool valid_y) = 0; + virtual void del_clip() = 0; + virtual void get_client_rect(litehtml::position& client) const = 0; + virtual std::shared_ptr create_element(const litehtml::tchar_t *tag_name, + const litehtml::string_map &attributes, + const std::shared_ptr &doc) = 0; + + virtual void get_media_features(litehtml::media_features& media) const = 0; + virtual void get_language(litehtml::tstring& language, litehtml::tstring & culture) const = 0; + virtual litehtml::tstring resolve_color(const litehtml::tstring& /*color*/) const { return litehtml::tstring(); } + virtual void split_text(const char* text, const std::function& on_word, const std::function& on_space); + + protected: + ~document_container() = default; + }; + + void trim(tstring &s); + void lcase(tstring &s); + int value_index(const tstring& val, const tstring& strings, int defValue = -1, tchar_t delim = _t(';')); + bool value_in_list(const tstring& val, const tstring& strings, tchar_t delim = _t(';')); + tstring::size_type find_close_bracket(const tstring &s, tstring::size_type off, tchar_t open_b = _t('('), tchar_t close_b = _t(')')); + void split_string(const tstring& str, string_vector& tokens, const tstring& delims, const tstring& delims_preserve = _t(""), const tstring& quote = _t("\"")); + void join_string(tstring& str, const string_vector& tokens, const tstring& delims); + double t_strtod(const tchar_t* string, tchar_t** endPtr); + + int t_strcasecmp(const tchar_t *s1, const tchar_t *s2); + int t_strncasecmp(const tchar_t *s1, const tchar_t *s2, size_t n); + + inline int t_isdigit(int c) + { + return (c >= '0' && c <= '9'); + } + + inline int t_tolower(int c) + { + return (c >= 'A' && c <= 'Z' ? c + 'a' - 'A' : c); + } + + inline int round_f(float val) + { + int int_val = (int) val; + if(val - int_val >= 0.5) + { + int_val++; + } + return int_val; + } + + inline int round_d(double val) + { + int int_val = (int) val; + if(val - int_val >= 0.5) + { + int_val++; + } + return int_val; + } +} + +#endif // LH_HTML_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/html_tag.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/html_tag.h new file mode 100644 index 0000000..86aa845 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/html_tag.h @@ -0,0 +1,248 @@ +#ifndef LH_HTML_TAG_H +#define LH_HTML_TAG_H + +#include "element.h" +#include "style.h" +#include "background.h" +#include "css_margins.h" +#include "borders.h" +#include "css_selector.h" +#include "stylesheet.h" +#include "box.h" +#include "table.h" + +namespace litehtml +{ + struct line_context + { + int calculatedTop; + int top; + int left; + int right; + + int width() const + { + return right - left; + } + void fix_top() + { + calculatedTop = top; + } + }; + + class html_tag : public element + { + friend class elements_iterator; + friend class el_table; + friend class table_grid; + friend class block_box; + friend class line_box; + public: + typedef std::shared_ptr ptr; + protected: + box::vector m_boxes; + string_vector m_class_values; + tstring m_tag; + litehtml::style m_style; + string_map m_attrs; + vertical_align m_vertical_align; + text_align m_text_align; + style_display m_display; + list_style_type m_list_style_type; + list_style_position m_list_style_position; + white_space m_white_space; + element_float m_float; + element_clear m_clear; + floated_box::vector m_floats_left; + floated_box::vector m_floats_right; + elements_vector m_positioned; + background m_bg; + element_position m_el_position; + int m_line_height; + bool m_lh_predefined; + string_vector m_pseudo_classes; + used_selector::vector m_used_styles; + + uint_ptr m_font; + int m_font_size; + font_metrics m_font_metrics; + + css_margins m_css_margins; + css_margins m_css_padding; + css_borders m_css_borders; + css_length m_css_width; + css_length m_css_height; + css_length m_css_min_width; + css_length m_css_min_height; + css_length m_css_max_width; + css_length m_css_max_height; + css_offsets m_css_offsets; + css_length m_css_text_indent; + + overflow m_overflow; + visibility m_visibility; + int m_z_index; + box_sizing m_box_sizing; + + int_int_cache m_cahe_line_left; + int_int_cache m_cahe_line_right; + + // data for table rendering + std::unique_ptr m_grid; + css_length m_css_border_spacing_x; + css_length m_css_border_spacing_y; + int m_border_spacing_x; + int m_border_spacing_y; + border_collapse m_border_collapse; + + void select_all(const css_selector& selector, elements_vector& res) override; + + public: + explicit html_tag(const std::shared_ptr& doc); + + /* render functions */ + + int render(int x, int y, int max_width, bool second_pass = false) override; + + int render_inline(const element::ptr &container, int max_width) override; + int place_element(const element::ptr &el, int max_width) override; + bool fetch_positioned() override; + void render_positioned(render_type rt = render_all) override; + + int new_box(const element::ptr &el, int max_width, line_context& line_ctx); + + int get_cleared_top(const element::ptr &el, int line_top) const; + int finish_last_box(bool end_of_render = false); + + bool appendChild(const element::ptr &el) override; + bool removeChild(const element::ptr &el) override; + void clearRecursive() override; + const tchar_t* get_tagName() const override; + void set_tagName(const tchar_t* tag) override; + void set_data(const tchar_t* data) override; + element_float get_float() const override; + vertical_align get_vertical_align() const override; + css_length get_css_left() const override; + css_length get_css_right() const override; + css_length get_css_top() const override; + css_length get_css_bottom() const override; + css_length get_css_width() const override; + css_offsets get_css_offsets() const override; + void set_css_width(css_length& w) override; + css_length get_css_height() const override; + element_clear get_clear() const override; + size_t get_children_count() const override; + element::ptr get_child(int idx) const override; + element_position get_element_position(css_offsets* offsets = nullptr) const override; + overflow get_overflow() const override; + + void set_attr(const tchar_t* name, const tchar_t* val) override; + const tchar_t* get_attr(const tchar_t* name, const tchar_t* def = nullptr) const override; + void apply_stylesheet(const litehtml::css& stylesheet) override; + void refresh_styles() override; + + bool is_white_space() const override; + bool is_body() const override; + bool is_break() const override; + int get_base_line() override; + bool on_mouse_over() override; + bool on_mouse_leave() override; + bool on_lbutton_down() override; + bool on_lbutton_up() override; + void on_click() override; + bool find_styles_changes(position::vector& redraw_boxes, int x, int y) override; + const tchar_t* get_cursor() override; + void init_font() override; + bool set_pseudo_class(const tchar_t* pclass, bool add) override; + bool set_class(const tchar_t* pclass, bool add) override; + bool is_replaced() const override; + int line_height() const override; + white_space get_white_space() const override; + style_display get_display() const override; + visibility get_visibility() const override; + void parse_styles(bool is_reparse = false) override; + void draw(uint_ptr hdc, int x, int y, const position* clip) override; + void draw_background(uint_ptr hdc, int x, int y, const position* clip) override; + + const tchar_t* get_style_property(const tchar_t* name, bool inherited, const tchar_t* def = nullptr) override; + uint_ptr get_font(font_metrics* fm = nullptr) override; + int get_font_size() const override; + + elements_vector& children(); + void calc_outlines(int parent_width) override; + void calc_auto_margins(int parent_width) override; + + int select(const css_selector& selector, bool apply_pseudo = true) override; + int select(const css_element_selector& selector, bool apply_pseudo = true) override; + + elements_vector select_all(const tstring& selector) override; + elements_vector select_all(const css_selector& selector) override; + + element::ptr select_one(const tstring& selector) override; + element::ptr select_one(const css_selector& selector) override; + + element::ptr find_ancestor(const css_selector& selector, bool apply_pseudo = true, bool* is_pseudo = nullptr) override; + element::ptr find_adjacent_sibling(const element::ptr& el, const css_selector& selector, bool apply_pseudo = true, bool* is_pseudo = nullptr) override; + element::ptr find_sibling(const element::ptr& el, const css_selector& selector, bool apply_pseudo = true, bool* is_pseudo = nullptr) override; + void get_text(tstring& text) override; + void parse_attributes() override; + + bool is_first_child_inline(const element::ptr& el) const override; + bool is_last_child_inline(const element::ptr& el) override; + bool have_inline_child() const override; + void get_content_size(size& sz, int max_width) override; + void init() override; + void get_inline_boxes(position::vector& boxes) override; + bool is_floats_holder() const override; + int get_floats_height(element_float el_float = float_none) const override; + int get_left_floats_height() const override; + int get_right_floats_height() const override; + int get_line_left(int y) override; + int get_line_right(int y, int def_right) override; + void get_line_left_right(int y, int def_right, int& ln_left, int& ln_right) override; + void add_float(const element::ptr &el, int x, int y) override; + void update_floats(int dy, const element::ptr &parent) override; + void add_positioned(const element::ptr &el) override; + int find_next_line_top(int top, int width, int def_right) override; + void apply_vertical_align() override; + void draw_children(uint_ptr hdc, int x, int y, const position* clip, draw_flag flag, int zindex) override; + int get_zindex() const override; + void draw_stacking_context(uint_ptr hdc, int x, int y, const position* clip, bool with_positioned) override; + void calc_document_size(litehtml::size& sz, int x = 0, int y = 0) override; + void get_redraw_box(litehtml::position& pos, int x = 0, int y = 0) override; + void add_style(const litehtml::style& st) override; + element::ptr get_element_by_point(int x, int y, int client_x, int client_y) override; + element::ptr get_child_by_point(int x, int y, int client_x, int client_y, draw_flag flag, int zindex) override; + + bool is_nth_child(const element::ptr& el, int num, int off, bool of_type) const override; + bool is_nth_last_child(const element::ptr& el, int num, int off, bool of_type) const override; + bool is_only_child(const element::ptr& el, bool of_type) const override; + const background* get_background(bool own_only = false) override; + + protected: + void draw_children_box(uint_ptr hdc, int x, int y, const position* clip, draw_flag flag, int zindex); + void draw_children_table(uint_ptr hdc, int x, int y, const position* clip, draw_flag flag, int zindex); + int render_box(int x, int y, int max_width, bool second_pass = false); + int render_table(int x, int y, int max_width, bool second_pass = false); + int fix_line_width(int max_width, element_float flt); + void parse_background(); + void init_background_paint( position pos, background_paint &bg_paint, const background* bg ); + void draw_list_marker( uint_ptr hdc, const position &pos ); + tstring get_list_marker_text(int index); + static void parse_nth_child_params( const tstring& param, int &num, int &off ); + void remove_before_after(); + litehtml::element::ptr get_element_before(); + litehtml::element::ptr get_element_after(); + }; + + /************************************************************************/ + /* Inline Functions */ + /************************************************************************/ + + inline elements_vector& litehtml::html_tag::children() + { + return m_children; + } +} + +#endif // LH_HTML_TAG_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/iterators.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/iterators.h new file mode 100644 index 0000000..4f4ae0f --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/iterators.h @@ -0,0 +1,89 @@ +#ifndef LH_ITERATORS_H +#define LH_ITERATORS_H + +#include "types.h" + +namespace litehtml +{ + class element; + + class iterator_selector + { + public: + virtual bool select(const element::ptr& el) = 0; + + protected: + ~iterator_selector() = default; + }; + + class elements_iterator + { + private: + struct stack_item + { + int idx; + element::ptr el; + stack_item() : idx(0) + { + } + stack_item(const stack_item& val) + { + idx = val.idx; + el = val.el; + } + stack_item(stack_item&& val) + { + idx = val.idx; + el = std::move(val.el); + } + }; + + std::vector m_stack; + element::ptr m_el; + int m_idx; + iterator_selector* m_go_inside; + iterator_selector* m_select; + public: + + elements_iterator(const element::ptr& el, iterator_selector* go_inside, iterator_selector* select) + { + m_el = el; + m_idx = -1; + m_go_inside = go_inside; + m_select = select; + } + + ~elements_iterator() = default; + + element::ptr next(bool ret_parent = true); + + private: + void next_idx(); + }; + + class go_inside_inline final : public iterator_selector + { + public: + bool select(const element::ptr& el) override; + }; + + class go_inside_table final : public iterator_selector + { + public: + bool select(const element::ptr& el) override; + }; + + class table_rows_selector final : public iterator_selector + { + public: + bool select(const element::ptr& el) override; + }; + + class table_cells_selector final : public iterator_selector + { + public: + bool select(const element::ptr& el) override; + }; +} + +#endif // LH_ITERATORS_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/media_query.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/media_query.h new file mode 100644 index 0000000..6a81bcb --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/media_query.h @@ -0,0 +1,77 @@ +#ifndef LH_MEDIA_QUERY_H +#define LH_MEDIA_QUERY_H + +namespace litehtml +{ + struct media_query_expression + { + typedef std::vector vector; + media_feature feature; + int val; + int val2; + bool check_as_bool; + + media_query_expression() + { + check_as_bool = false; + feature = media_feature_none; + val = 0; + val2 = 0; + } + + bool check(const media_features& features) const; + }; + + class media_query + { + public: + typedef std::shared_ptr ptr; + typedef std::vector vector; + private: + media_query_expression::vector m_expressions; + bool m_not; + media_type m_media_type; + public: + media_query(); + media_query(const media_query& val); + + static media_query::ptr create_from_string(const tstring& str, const std::shared_ptr& doc); + bool check(const media_features& features) const; + }; + + class media_query_list + { + public: + typedef std::shared_ptr ptr; + typedef std::vector vector; + private: + media_query::vector m_queries; + bool m_is_used; + public: + media_query_list(); + media_query_list(const media_query_list& val); + + static media_query_list::ptr create_from_string(const tstring& str, const std::shared_ptr& doc); + bool is_used() const; + bool apply_media_features(const media_features& features); // returns true if the m_is_used changed + }; + + inline media_query_list::media_query_list(const media_query_list& val) + { + m_is_used = val.m_is_used; + m_queries = val.m_queries; + } + + inline media_query_list::media_query_list() + { + m_is_used = false; + } + + inline bool media_query_list::is_used() const + { + return m_is_used; + } + +} + +#endif // LH_MEDIA_QUERY_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/num_cvt.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/num_cvt.h new file mode 100644 index 0000000..515e46d --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/num_cvt.h @@ -0,0 +1,19 @@ +#ifndef NUM_CVT_H +#define NUM_CVT_H + +#include +#include "os_types.h" + +namespace litehtml +{ + namespace num_cvt + { + litehtml::tstring to_latin_lower(int val); + litehtml::tstring to_latin_upper(int val); + litehtml::tstring to_greek_lower(int val); + litehtml::tstring to_roman_lower(int value); + litehtml::tstring to_roman_upper(int value); + } +} + +#endif // NUM_CVT_H \ No newline at end of file diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/os_types.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/os_types.h new file mode 100644 index 0000000..6d1e5dc --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/os_types.h @@ -0,0 +1,85 @@ +#ifndef LH_OS_TYPES_H +#define LH_OS_TYPES_H + +#include +#include + +namespace litehtml +{ +#if defined( WIN32 ) || defined( _WIN32 ) || defined( WINCE ) + +// noexcept appeared since Visual Studio 2013 +#if defined(_MSC_VER) && _MSC_VER < 1900 +#define noexcept +#endif + +#ifndef LITEHTML_UTF8 + + typedef std::wstring tstring; + typedef wchar_t tchar_t; + typedef std::wstringstream tstringstream; + + #define _t(quote) L##quote + + #define t_strlen wcslen + #define t_strcmp wcscmp + #define t_strncmp wcsncmp + #define t_strtol wcstol + #define t_atoi _wtoi + #define t_itoa(value, buffer, size, radix) _itow_s(value, buffer, size, radix) + #define t_strstr wcsstr + #define t_isspace iswspace + #define t_to_string(val) std::to_wstring(val) + +#else + + typedef std::string tstring; + typedef char tchar_t; + typedef std::stringstream tstringstream; + + #define _t(quote) quote + + #define t_strlen strlen + #define t_strcmp strcmp + #define t_strncmp strncmp + #define t_strtol strtol + #define t_atoi atoi + #define t_itoa(value, buffer, size, radix) _itoa_s(value, buffer, size, radix) + #define t_strstr strstr + #define t_isspace isspace + #define t_to_string(val) std::to_string(val) + +#endif + + #ifdef _WIN64 + typedef unsigned __int64 uint_ptr; + #else + typedef unsigned int uint_ptr; + #endif + +#else + #define LITEHTML_UTF8 + + typedef std::string tstring; + typedef char tchar_t; + typedef std::uintptr_t uint_ptr; + typedef std::stringstream tstringstream; + + #define _t(quote) quote + + #define t_strlen strlen + #define t_strcmp strcmp + #define t_strncmp strncmp + + #define t_itoa(value, buffer, size, radix) snprintf(buffer, size, "%d", value) + + #define t_strtol strtol + #define t_atoi atoi + #define t_strstr strstr + #define t_isspace isspace + #define t_to_string(val) std::to_string(val) + +#endif +} + +#endif // LH_OS_TYPES_H diff --git a/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/style.h b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/style.h new file mode 100644 index 0000000..6e08280 --- /dev/null +++ b/src/assistant/qlitehtml/src/3rdparty/litehtml/include/litehtml/style.h @@ -0,0 +1,95 @@ +#ifndef LH_STYLE_H +#define LH_STYLE_H + +#include "attributes.h" +#include + +namespace litehtml +{ + class property_value + { + public: + tstring m_value; + bool m_important; + + property_value() + { + m_important = false; + } + property_value(const tchar_t* val, bool imp) + { + m_important = imp; + m_value = val; + } + property_value(const property_value& val) + { + m_value = val.m_value; + m_important = val.m_important; + } + + property_value& operator=(const property_value& val) + { + m_value = val.m_value; + m_important = val.m_important; + return *this; + } + }; + + typedef std::map props_map; + + class style + { + public: + typedef std::shared_ptr + +

+ Blue(#0000ff), + dark blue(#000080) and + cyan(#00ffff). +

+ \endraw + * / + \endcode + + QDoc renders this as: + + \quotation + Qt has some predefined QColor objects. + + \raw HTML + + +

+ Blue(#0000ff), + dark blue(#000080) and + cyan(#00ffff). +

+ \endraw + \endquotation + + \note But you can achieve the exact same thing using QDoc + commands. In this case, all you have to do is include the color + styles in your style.css file. Then you can write: + + \code + \tt {\span {id="color-blue"} {Blue(#0000ff)}}, + \tt {\span {id="color-darkBlue"} {dark blue(#000080)}} and + \tt {\span {id="color-cyan"} {cyan(#00ffff)}}. + \endcode + + ...which is rendered as: + + \tt {\span {id="color-blue"} {Blue(#0000ff)}}, + \tt {\span {id="color-darkBlue"} {dark blue(#000080)}} and + \tt {\span {id="color-cyan"} {cyan(#00ffff)}}. + + \target unicode-command + \section1 \\unicode + + The \\unicode command allows you to insert an arbitrary Unicode + character in the document. + + The command takes an argument specifying the character as an + integer. By default, base 10 is assumed, unless a '0x' or '0' + prefix is specified (for base 16 and 8, respectively). For + example: + + \code + O G\unicode{0xEA}nio e as Rosas + + \unicode 0xC0 table en famille avec 15 \unicode 0x20AC par jour + + \unicode 0x3A3 \e{a}\sub{\e{i}} + \endcode + + QDoc renders this as: + + \quotation + O G\unicode{0xEA}nio e as Rosas + + \unicode 0xC0 table en famille avec 15 \unicode 0x20AC par jour + + \unicode 0x3A3 \e{a}\sub{\e{i}} + \endquotation +*/ + diff --git a/src/qdoc/doc/qdoc-manual-qdocconf.qdoc b/src/qdoc/doc/qdoc-manual-qdocconf.qdoc new file mode 100644 index 0000000..52d7fb9 --- /dev/null +++ b/src/qdoc/doc/qdoc-manual-qdocconf.qdoc @@ -0,0 +1,2051 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \page 21-0-qdoc-configuration.html + \previouspage Miscellaneous + \nextpage Generic Configuration Variables + + \title The QDoc Configuration File + + Before running QDoc, you must create a QDoc configuration file to + tell QDoc where to find the source files that contain the QDoc + comments. The pathname to your configuration file is passed to + QDoc on the command line: + + \quotation + \c {/current/dir$ ../../bin/qdoc ./config.qdocconf} + \endquotation + + \section1 General Description + + The configuration file is a list of entries of the form \e + {"variable = value"}. Using the configuration variables, you can + define where QDoc should find the various source files, images and + examples, where to put generated documentation etc. The + configuration file can also contain directives like \c + include. For an example, see \l {minimal-qdocconf}{a minimal qdocconf file}. + + You can also use configuration variables to get QDoc to support + \l{Supporting Derived Projects} {derived projects}, i.e QDoc can + generate links in your project's documentation to elements in the + Qt online documentation. See the \l {Supporting Derived projects} + section. + + A valid configuration variable name can include upper and lower case + letters, numbers, and an underscore, '_'. + + The value of a configuration variable can be set using either '=' + or '+='. The difference is that '=' overrides the previous value, + while '+=' adds a new value to the current one. + + Values of some configuration variables are interpreted as a list of + strings, for example: + \l {sourcedirs-variable} + {\c{sourcedirs}}, while others are treated as a single string. Double + quotes around a value string are optional, but including them allows + you to use special characters like '=' and ' \" ' within the value + string, for example: + + \badcode + HTML.postheader = "Home" + \endcode + + If an entry spans many lines, use a backslash at the end of every + line but the last: + + \badcode + sourcedirs = kernel tools widgets + \endcode + + This can be written as: + \badcode + sourcedirs = kernel \ + tools \ + widgets + \endcode + + If a value spans multiple lines but is interpreted as a single string, + the lines are joined with spaces. + + \section1 Expansion of Configuration Values + + QDoc supports expanding environment variables within configuration files. + For example, Qt modules rely on the environment variable QT_INSTALL_DOCS + to include definitions related to all Qt module documentation projects: + + \badcode + include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) + \endcode + + A variable to expand is prefixed with '$'. To use the literal character + '$' within a value string, escape it with a backslash: '\\$'. + + Since QDoc 6.0, values can be expanded also from other configuration + variables. In addition to the \c {$variable} syntax, also \c {${variable}} + is valid. The latter eliminates the need to separate the variable + name with whitespace or non-variable characters. For example: + + \badcode + baseurl = https://doc.qt.io/ + ... + url = ${baseurl}qtcreator + \endcode + + If the target variable refers to a list of strings, they will be + joined using spaces in the expanded value: + + \badcode + vars = foo \ + bar \ + baz + + items = "Items: $vars" # Expands to "Items: foo bar baz" + \endcode + + Controlling which character is used for joining the string list is also + possible: + + \badcode + items = "Items: ${vars,|}" # Expands to "Items: foo|bar|baz" + items = "Items: ${vars,,}" # Expands to "Items: foo,bar,baz" + items = "Items: ${vars,}" # Expands to "Items: foobarbaz" + \endcode + + As the expansion is performed after reading in all variables, the order + in which they are defined does not matter. + + \note Nested variable expansion is not supported. + + \section2 Expanding Environment Variables + + When expanding environment variables, the \c {${variable}} syntax has + different behavior compared to \c {$variable}. The former expands the + content of the variable in place to be parsed as part of the + configuration file, while the latter simply assigns the content as a + value for the current configuration variable. This has implications if + the environment variable contains a list of elements separated by + whitespace, or other formatting recognized by QDoc. + + For example, if the value of an environment variable \c SRCDIRS is + \c {"../src/a ../src/b"}, then + + \badcode + sourcedirs = $SRCDIRS # Fail - value is interpreted as a single path. + sourcedirs = ${SRCDIRS} # Ok - whitespace is used as a delimiter. + \endcode + + \section1 Configuration Variables + + \section1 Variable List + + \list + \li \l {alias-variable} {alias} + \li \l {defines-variable} {defines} + \li \l {depends-variable} {depends} + \li \l {exampledirs-variable} {exampledirs} + \li \l {examples-variable} {examples} + \li \l {examplesinstallpath-variable} {examplesinstallpath} + \li \l {examples.fileextensions-variable} {examples.fileextensions} + \li \l {excludedirs-variable} {excludedirs} + \li \l {excludefiles-variable} {excludefiles} + \li \l {extraimages-variable} {extraimages} + \li \l {falsehoods-variable} {falsehoods} + \li \l {headerdirs-variable} {headerdirs} + \li \l {headers-variable} {headers} + \li \l {headers.fileextensions-variable} {headers.fileextensions} + \li \l {HTML.footer-variable} {HTML.footer} + \li \l {HTML.postheader-variable} {HTML.postheader} + \li \l {HTML.style-variable} {HTML.style} + \li \l {includepaths-variable} {includepaths} + \li \l {ignorewords-variable} {ignorewords} + \li \l {ignoresince-variable} {ignoresince} + \li \l {imagedirs-variable} {imagedirs} + \li \l {images-variable} {images} + \li \l {images.fileextensions-variable} {images.fileextensions} + \li \l {indexes-variable} {indexes} + \li \l {language-variable} {language} + \li \l {locationinfo-variable} {locationinfo} + \li \l {macro-variable} {macro} + \li \l {manifestmeta-variable} {manifestmeta} + \li \l {moduleheader-variable} {moduleheader} + \li \l {navigation-variable} {navigation} + \li \l {outputdir-variable} {outputdir} + \li \l {outputformats-variable} {outputformats} + \li \l {outputprefixes-variable} {outputprefixes} + \li \l {outputsuffixes-variable} {outputsuffixes} + \li \l {project-variable} {project} + \li \l {sourcedirs-variable} {sourcedirs} + \li \l {sources-variable} {sources} + \li \l {sources.fileextensions-variable} {sources.fileextensions} + \li \l {spurious-variable} {spurious} + \li \l {tabsize-variable} {tabsize} + \li \l {url-variable} {url} + \li \l {url.examples-variable} {url.examples} + \li \l {version-variable} {version} + \li \l {versionsym-variable} {versionsym} + \li \l {warninglimit-variable} {warninglimit} + \endlist + + \section1 Categories + + \list + \li \l {Generic Configuration Variables} + \li \l {Format-specific Configuration Variables} + \endlist + + \section1 Configuration File Examples + + \list + \li A minimum configuration file: \l minimum.qdocconf + \li The Qt configuration file: \l qtgui.qdocconf + \endlist +*/ + + +/*! + \page 22-qdoc-configuration-generalvariables.html + \previouspage The QDoc Configuration File + \nextpage Creating Help Project Files + + \title Generic Configuration Variables + + With the general QDoc configuration variables, you can define + where QDoc will find the various source files it needs to generate + the documentation, as well as the directory to put the generated + documentation. You can also do some minor manipulation of QDoc + itself, controlling its output and processing behavior. + + \target alias-variable + \section1 alias + + The \c alias variable renames a QDoc command. + + The general syntax is \tt {alias.\e{original-command-name} = \e + temporary-command-name}. + + \badcode + alias.e = i + \endcode + + This renames the built-in command \\e (italics) to be \\i. The \c + alias variable is often used for compatibility reasons. + + See also \l {macro-variable} {macro}. + + \target codeindent-variable + \section1 codeindent + + The \c codeindent variable specifies the level of indentation that + QDoc uses when writing code snippets. + + QDoc originally used a hard-coded value of four spaces for code + indentation to ensure that code snippets could be easily + distinguished from surrounding text. Since we can use \l{HTML + Specific Configuration Variables#HTML.stylesheets} {stylesheets} + to adjust the appearance of certain types of HTML elements, this + level of indentation is not always required. + + \target codeprefix-variable + \target codesuffix-variable + \section1 codeprefix, codesuffix + + The \c codeprefix and \c codesuffix variables specify a pair of + strings that each code snippet is enclosed in. + + \target defines-variable + \section1 defines + + The \c defines variable specifies the C++ preprocessor symbols + that QDoc will recognize and respond to. + + When a preprocessor symbol is specified using the \c defines + variable, you can also use the \l {if-command} {\\if} command to + enclose documentation that only will be included if the + preprocessor symbol is defined. + + \badcode + defines = QT_GUI_LIB + \endcode + + This ensures that QDoc will process the code that requires these + symbols to be defined. For example: + + \code + #ifdef Q_GUI_LIB + void keyClick(QWidget *widget, Qt::Key key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1) + #endif + \endcode + + + You can also define preprocessor symbols manually on the command + line using the -D option. For example: + + \badcode + currentdirectory$ qdoc -Dqtforpython qtgui.qdocconf + \endcode + + In this case the -D option ensures that the \c qtforpython + preprocessor symbol is defined when QDoc processes the source + files defined in the qtgui.qdocconf file. + + See also \l {falsehoods-variable} {falsehoods} and \l {if-command} {\\if}. + + \target depends-variable + \section1 depends + + The \c depends variable defines a list of other documentation projects + that this project depends on for resolving link targets for type + inheritance and anything else the documentation needs to link to. + + Like Qt itself, documentation for Qt is distributed across multiple + modules. In a multi-module documentation project, the minimum set + of dependencies for a single module consists of actual build + dependencies. In addition, if there is a documentation project + (module) that acts as a top-level entry point for the entire + documentation set and provides \l {navigation-variable}{navigation} + links, each module documentation should include it as a dependency. + + When QDoc generates documentation for a project, it will also generate + an \c .index file containing URLs to each linkable entity in the project. + Each dependency is a (lowercase) name of a project. This name must + match with the base name of the index file generated for that + project. + + \badcode + depends = \ + qtdoc \ + qtcore \ + qtquick + \endcode + + When invoking QDoc on a project that has dependencies and uses the + \c depends variable, one or more \c -indexdir path(s) must be passed + as command line option(s). QDoc uses these paths to search for + the dependencies' index files. + + \badcode + qdoc mydoc.qdocconf -outputdir $PWD/html -indexdir $QT_INSTALL_DOCS + \endcode + + With above, QDoc will search for a file + \c {$QT_INSTALL_DOCS/qtdoc/qtdoc.index} for a dependency to \c qtdoc. + If an index file for a dependency is not found, QDoc will output a + warning. + + The \c depends command accepts also a special value of '*'. This + instructs QDoc to load all index files found in specified index + directories; that is, "depends on everything". + + \badcode + depends = * + \endcode + + See also \l indexes, \l project, and \l url. + + \target exampledirs-variable + \section1 exampledirs + + The \c exampledirs variable specifies the directories containing + the source code of the example files. + + The \l {examples-variable} {examples} and \l + {exampledirs-variable} {exampledirs} variables are used by the \l + {quotefromfile-command} {\\quotefromfile}, \l {quotefile-command} + {\\quotefile} and \l {example-command} {\\example} commands. If + both the \l {examples-variable} {examples} and \l + {exampledirs-variable} {exampledirs} variables are defined, QDoc + will search in both, first in \l {examples-variable} {examples} + then in \l {exampledirs-variable} {exampledirs}. + + QDoc will search through the directories in the specified order, + and accept the first matching file it finds. It will only search + in the specified directories, \e not in subdirectories. + + \badcode + exampledirs = $QTDIR/doc/src \ + $QTDIR/examples \ + $QTDIR \ + $QTDIR/qmake/examples + + examples = $QTDIR/examples/widgets/analogclock/analogclock.cpp + \endcode + + When processing + + \badcode + \quotefromfile widgets/calculator/calculator.cpp + \endcode + + QDoc will see if there is a file called \c calculator.cpp + listed as a value in the \l {examples-variable} {\c examples} variable. If + there isn't, it will search in the \c exampledirs variable, and + first see if there exists a file called + + \badcode + $QTDIR/doc/src/widgets/calculator/calculator.cpp + \endcode + + If it doesn't, QDoc will continue looking for a file called + + \badcode + $QTDIR/examples/widgets/calculator/calculator.cpp + \endcode + + and so forth. + + See also \l {examples-variable}{examples}. + + \target examples-variable + \section1 examples + + The \c examples variable allows you to specify individual example + files in addition to those located in the directories specified by + the \l {exampledirs-variable} {\c exampledirs} variable. + + The \c examples and \l {exampledirs-variable} {\c exampledirs} + variables are used by the \l {quotefromfile-command} + {\\quotefromfile}, \l {quotefile-command} {\\quotefile} and \l + {example-command} {\\example} commands. If both the \c examples and \l + {exampledirs-variable} {\c exampledirs} variables are defined, + QDoc will search in both, first in \c examples then in \l + {exampledirs-variable} {\c exampledirs}. + + QDoc will search through the values listed for the \c examples + variable, in the specified order, and accept the first one it + finds. + + For an extensive example, see the \l {exampledirs-variable} {\c + exampledirs} command. But note that if you know the file is listed + in the \c examples variable, you don't need to specify its path: + + \badcode + \quotefromfile calculator.cpp + \endcode + + See also \l {exampledirs-variable} {exampledirs}. + + \target examplesinstallpath-variable + \section1 examplesinstallpath + + The \c examplesinstallpath variable sets the root path for this + project's examples under the \e installed example directory. + + Assuming a root install path of \c QT_INSTALL_EXAMPLES for all + examples, then the path + + \badcode + // + \endcode + + will be used to refer to a path of a single example within this + documentation project. These paths are recorded in the + \l {Example Manifest Files} {example manifest file}, read by Qt + Creator. + + To ensure correct paths, \c examplesinstallpath must match with + one of the directories listed in \l {exampledirs-variable} + {exampledirs}. The path passed as an argument for each + \l {example-command} {\\example} command is relative to + the path in \e exampledirs. + + For example: + + \badcode + exampledirs = ./snippets \ + ../../../examples/mymodule + + examplesinstallpath = mymodule + \endcode + + And given a following \\example command: + + \badcode * + /*! + \example basic/hello + ... + \1/ + \endcode + + Then, the path \c {mymodule/basic/hello} is recorded in the manifest file + for this example. + + \note It is possible to override \c examplesinstallpath for an individual + \l {example-command}{\\example} using the \l {meta-command}{\\meta} + command. + + \b {See also}: \l {exampledirs}, \l {example-command} {\\example}, and + \l {meta-command}{\\meta}. + + \target examples.fileextensions-variable + \section1 examples.fileextensions + + The \c examples.fileextensions variable specifies the file + extensions that QDoc will look for when collecting example files + for display in the documentation. + + The default extensions are *.cpp, *.h, *.js, *.xq, *.svg, *.xml + and *.ui. + + The extensions are given as standard wildcard expressions. You + can add a file extension to the filter using '+='. For example: + + \badcode + examples.fileextensions += *.qrc + \endcode + + See also \l{headers.fileextensions}. + + \target excludedirs-variable + \section1 excludedirs + + The \c excludedirs variable is for listing directories that should \e{not} + be processed by QDoc, even if the same directories are included by the + \l {sourcedirs-variable} {sourcedirs} or \l {headerdirs-variable} {headerdirs} + variables. + + For example: + + \badcode + sourcedirs = src/corelib + excludedirs = src/corelib/tmp + \endcode + + When executed, QDoc will exclude the listed directories from + further consideration. Files in these directories will not be + read by QDoc. + + See also \l {excludefiles-variable} {excludefiles}. + + \target excludefiles-variable + \section1 excludefiles + + The \c excludefiles variable allows you to specify individual files + that should \e{not} be processed by QDoc. + + \badcode + excludefiles += $QT_CORE_SOURCES/../../src/widgets/kernel/qwidget.h \ + $QT_CORE_SOURCES/../../src/widgets/kernel/qwidget.cpp + \endcode + + If you include the above in your qdocconf file for qtbase, there + will be no class documentation generated for QWidget. + + Since Qt 5.6, also simple wildcards ('*' and '?') are recognized by + \c excludefiles. For example, to exclude all private Qt header files + from being parsed, define the following: + + \badcode + excludefiles += "*_p.h" + \endcode + + See also \l {excludedirs-variable} {excludedirs}. + + \target extraimages-variable + \section1 extraimages + + The \c extraimages variable tells QDoc to incorporate specific + images in the generated documentation. + + QDoc will not recognize images used within HTML (or any other + markup language). If we want the images to be copied from the + directories specified by \l {imagedirs} {\c imagedirs} (the images + in question must be located in these directories) to the output + directory, we must specify the images using the \c extraimages + variable. + + The general syntax is \tt {extraimages.\e{format} = \e image}. The + file extension is optional. + + For example, in \l qtgui.qdocconf we use a couple of images within + the HTML.postheader variable which value is pure HTML. For that + reason, these images are specified using the \c extraimages + variable: + + \badcode + extraimages.HTML = qt-logo + \endcode + + See also \l images and \l imagedirs. + + \target falsehoods-variable + \section1 falsehoods + + The \c falsehoods variable defines the truth value of specified + preprocessor symbols as false. + + The values of the variable are regular expressions (see QRegularExpression + for details). If this variable is not set for a preprocessor + symbol, QDoc assumes its truth value is true. The exception is + '0', which is always false. + + QDoc will recognize, and is able to evaluate, the following + preprocessor syntax: + + \code + #ifdef NOTYET + ... + #endif + + #if defined (NOTYET) + ... + #end if + \endcode + + However, faced with unknown syntax like + + \code + #if NOTYET + ... + #endif + \endcode + + QDoc will evaluate it as true by default, \e unless the + preprocessor symbol is specified within the \c falsehoods variable + entry: + + \badcode + falsehoods = NOTYET + \endcode + + See also \l defines. + + \target generateindex-variable + \section1 generateindex + + The \c generateindex variable contains a boolean value that + specifies whether to generate an index file when HTML + documentation is generated. + + By default, an index file is always generated with HTML + documentation, so this variable is typically only used when + disabling this feature (by setting the value to \c false) or when + enabling index generation for the WebXML output (by setting the + value to \c true). + + \target headerdirs-variable + \section1 headerdirs + + The \c headerdirs variable specifies the directories containing + the header files associated with the \c .cpp source files used in + the documentation. + + \badcode + headerdirs = $QTDIR/src \ + $QTDIR/extensions/activeqt \ + $QTDIR/extensions/motif \ + $QTDIR/tools/designer/src/lib/extension \ + $QTDIR/tools/designer/src/lib/sdk \ + $QTDIR/tools/designer/src/lib/uilib + \endcode + + When executed, the first thing QDoc will do is to read through the + headers specified in the \l {headers} {\c headers} variable, and + the ones located in the directories specified in the \c headerdir + variable (including all subdirectories), building an internal + structure of the classes and their functions. + + Then it will read through the sources specified in the \l + {sources-variable} {\c sources}, and the ones located in the + directories specified in the \l {sourcedirs-variable} {\c + sourcedirs} varible (including all subdirectories), merging the + documentation with the structure it retrieved from the header + files. + + If both the \c headers and \c headerdirs variables are defined, + QDoc will read through both, first \l {headers} {\c headers} then + \c headerdirs. + + In the specified directories, QDoc will only read the files with + the \c fileextensions specified in the \l {headers.fileextensions} + {\c headers.fileextensions} variable. The files specified by + \l {headers} {\c headers} will be read without taking into account + their fileextensions. + + See also \l headers and \l headers.fileextensions. + + \target headers-variable + \section1 headers + + The \c headers variable allows you to specify individual header + files in addition to those located in the directories specified by + the \l {headerdirs} {\c headerdirs} variable. + + \badcode + headers = $QTDIR/src/gui/widgets/qlineedit.h \ + $QTDIR/src/gui/widgets/qpushbutton.h + \endcode + + When processing the \c headers variable, QDoc behaves in the same + way as it does when processing the \l {headerdirs} {\c headerdirs} + variable. For more information, see the \l {headerdirs} {\c + headerdirs} variable. + + See also \l headerdirs. + + \target headers.fileextensions-variable + \section1 headers.fileextensions + + The \c headers.fileextensions variable specify the extension used + by the headers. + + When processing the header files specified in the \l {headerdirs} + {\c headerdirs} variable, QDoc will only read the files with the + fileextensions specified in the \c headers.fileextensions + variable. In this way QDoc avoids spending time reading irrelevant + files. + + The default extensions are *.ch, *.h, *.h++, *.hh, *.hpp, and + *.hxx. + + The extensions are given as standard wildcard expressions. You + can add a file extension to the filter using '+='. For example: + + \badcode + header.fileextensions += *.H + \endcode + + \warning The above assignment may not work as described. + + See also \l headerdirs. + + \target includepaths-variable + \section1 includepaths + + The \c includepaths variable is used for passing additional + include paths to the Clang parser that QDoc uses for parsing C++ + code for documentation comments. + + The variable accepts a list of paths, prefixed with \c{-I} (include + path), \c {-F} (\macos framework include path), or \c{-isystem} + (system include path). If a prefix is omitted, \c{-I} is used by + default. + + Paths relative to the current .qdocconf file are resolved into + absolute paths. Paths that do not exist in the file system are + ignored. + + \note For Qt documentation projects, the build system typically + provides the required include paths as command line + arguments when invoking QDoc. + + See also \l moduleheader. + + \target ignorewords-variable + \section1 ignorewords + + The \c ignorewords variable is used for specifying a list of strings + that QDoc will ignore when resolving hyperlink targets. + + QDoc has an auto-linking feature, where linking is attempted for words + that resemble C++, QML, or JavaScript entities. Specifically, a string + qualifies for auto-linking if it is at least three characters in + length, has no whitespace, and it + + \list + \li is a \e camelCase word, that is, it contains at least one + uppercase character at index greater than zero, or + \li contains the substring \c {()} or \c {::}, or + \li contains at least one special character, \c {@} or \c {_}. + \endlist + + Adding a qualified word to \c ignorewords stops QDoc from linking + that word automatically. For example, if the word \e OpenGL is a + valid link target (a section, \l{page-command}{\\page}, or + \l {externalpage-command}{\\externalpage} title), a hyperlink for + each occurrence can be avoided with + + \badcode + ignorewords += OpenGL + \endcode + + Linking explicitly with \l {l-command}{\\l} continues to work for + ignored words. + + The \c ignorewords variable was introduced in QDoc 5.14. + + \target ignoresince-variable + \section1 ignoresince + + The \c ignoresince variable is used for setting a cutoff value for + versions passed to the \l {since-command}{\\since} command. All + \\since commands that define a version lower than the cutoff are + ignored and do not generate output. + + The cutoff values are project-specific. The project name can be + defined as a subvariable. The default project name is \e Qt. For + example: + + \badcode + ignoresince = 5.0 + ignoresince.QDoc = 5.0 + \endcode + + These will ignore \\since commands where the major version is 4 + or lower and the project is either \c QDoc or undefined. + + \badcode + \since 3.2 # Ignored + \since 5.2 # Documented (as 'Qt 5.2') + \since QDoc 4.6 # Ignored + \since QtQuick 2.5 # Documented + \endcode + + The \c ignoresince variable was introduced in QDoc 5.15. + + See also \l {since-command}{\\since}. + + \target imagedirs-variable + \section1 imagedirs + + The \c imagedirs variable specifies the directories containing the + images used in the documentation. + + The \l {images} {\c images} and \c imagedirs variables are used by + the \l {image-command} {\\image} and \l {inlineimage-command} + {\\inlineimage} commands. If both the \l {images} {\c images} and + \c imagedirs variables are defined, QDoc will search in both. First + in \l {images} {\c images}, then in \c imagedirs. + + QDoc will search through the directories in the specified order, + and accept the first matching file it finds. It will only search + in the specified directories, \e not in subdirectories. + + \badcode + imagedirs = $QTDIR/doc/src/images \ + $QTDIR/examples + + images = $QTDIR/doc/src/images/calculator-example.png + \endcode + + When processing + + \badcode + \image calculator-example.png + \endcode + + QDoc will then see if there is a file called + calculator-example.png listed as a value in the \c images + variable. If there isn't, it will search in the \c imagedirs + variable for: + + \badcode + $QTDIR/doc/src/images/calculator-example.png + \endcode + + If the file doesn't exist, QDoc will look for a file called + + \badcode + $QTDIR/examples/calculator-example.png + \endcode + + You can filter the images in an image directory using the \l + {images.fileextensions} {\c images.fileextensions} variable. The + general idea behind the \l {images.fileextensions} {\c images.fileextensions} + variable is to enable different image format for different output format. + + \warning The \l {images.fileextensions} {\c images.fileextensions} + variable's functionality is preliminary since QDoc at this point + only supports HTML. + + See also \l images and \l images.fileextensions. + + \target images-variable + \section1 images + + The \c images variable allows you to specify individual image + files in addition to those located in the directories specified by + the \l {imagedirs} {\c imagedirs} variable. + + \badcode + images = $QTDIR/doc/src/images/calculator-example.png + \endcode + + When processing the \c images variable, QDoc behaves in the same + way as it does when processing the \l {imagedirs} {\c imagedirs} + variable. For more information, see the \l {imagedirs} {\c + imagedirs} variable. + + See also \l imagedirs and \l images.fileextensions. + + \target images.fileextensions-variable + \section1 images.fileextensions + + The images.fileextensions variable filters the files within an + image directory. + + The variable's values (the extensions) are given as standard + wildcard expressions. The general syntax is: \tt + {images.fileextensions.\e{format} = *.\e{extension}}. + + The idea is to enable different image format for different output + format. + + \badcode + images.fileextensions.HTML = *.png + images.fileextensions.LOUT = *.eps + \endcode + + Then, when processing the \l {image-command} {\\image} and \l + {inlineimage-command} {\\inlineimage} commands, QDoc will only + search for files with extensions specified in the variable + containing the list of output formats. + + \warning This is only a preliminary functionality since QDoc at this + point only supports HTML. + + The default extensions for HTML are *.png, *.jpg, *.jpeg, and + *.gif. + + You can add a file extension to the filter using '+='. For + example: + + \badcode + images.fileextensions.HTML += *.eps + \endcode + + See also \l imagedirs and \l images. + + \target language-variable + \section1 language + + The \c language variable specifies the language of the source code + that is used in the documentation. + + Currently, C++ is the only language that QDoc understands. It is + also the default language, and doesn't really need to be + specified. However, a possible example of a language variable + statement: + + \badcode + language = Cpp + \endcode + + This identifies C++ as the language of the Qt source code. + + \target locationinfo-variable + \section1 locationinfo + + The \c locationinfo boolean variable determines whether detailed + location information about each entity is written to + \c {.index}-files and \c {.webxml}-files (when using the WebXML + output format). + + Location information consists of the full path and line + number of either the declaration or documentation comment block + in the source code. + + Setting this to \c false turns off location info: + + \badcode + locationinfo = false + \endcode + + The default value is \c true. + + The \c locationinfo variable was introduced in QDoc 5.15. + + \target macro-variable + \section1 macro + + The \c macro variable is used to create your own simple QDoc + commands. The syntax is \tt {macro.\e{command} = \e{definition}}, + where the definition is written using QDoc syntax. + + A macro variable can be restricted for use in one type of output + generation. By appending \c {.HTML} to the macro name, for + example, the macro is only used when generating HTML output. + + \badcode + macro.gui = "\\b" + macro.raisedaster.HTML = "*" + \endcode + + The first macro defines the \\gui command to render its argument + using a bold font. The second macro defines the \\raisedaster + command to render a superscript asterisk, but only when generating + HTML. + + A macro can also take up to seven parameters: + + \badcode + macro.hello = "Hello \1!" + \endcode + + Parameters are passed to macros the same way as to other commands: + + \badcode + \hello World + \endcode + + When using more than one parameter, or when an argument + contains whitespace, enclose each argument in braces: + + \badcode + macro.verinfo = "\1 (version \2)" + \endcode + + \badcode + \verinfo {QFooBar} {1.0 beta} + \endcode + + A special macro option, \e match, can be added for additional + regular expression pattern matching for expanded macros. + + For example, + + \badcode + macro.qtminorversion = "$QT_VER" + macro.qtminorversion.match = "\\d+\\.(\\d+)" + \endcode + + This creates a macro \\qtminorversion that expands to the minor + version based on the QT_VER environment variable. + + A macro that defines a match pattern outputs all capture groups + (parentheses) concatenated together, or the exact matched string + if the pattern does not contain any capture groups. + + See also \l {alias-variable} {alias}. + + \target manifestmeta-variable + \section1 manifestmeta + + The \c manifestmeta variable specifies additional meta-content + for the example manifest files generated by QDoc. + + See the \l{Manifest Meta Content} section for more information. + + \target moduleheader-variable + \section1 moduleheader + + The \c moduleheader variable defines the name of the module + header of a documented C++ module. + + Projects that document C++ APIs require a module-level header + that includes all public classes, namespaces and header files + for the module. The Clang parser in QDoc uses this file to + build a pre-compiled header (PCH) for the module to increase + the speed of parsing source files. + + By default, the \l{project-variable}{project} name is used + also as the module header name. + + \badcode + project = QtCore + \endcode + + With the above project name, QDoc searches a module header + \e QtCore in all known include paths; first using the paths + passed as command line arguments, then the paths listed in + the \l includepaths variable. + + QDoc will issue a warning if the module header is not found. + It will then attempt to build an artificial module header + based on the headers listed in the \l {headerdirs-variable} + {headerdirs} variable. + + For Qt documentation projects, the build system typically + provides QDoc with correct include paths to locate the + module header, provided that the \c project variable is set + correctly. The \c moduleheader variable provides an + alternative file name for QDoc to search for. + + If the project contains no C++ documentation, QDoc should be + instructed to skip generating a PCH by setting \c moduleheader + to an empty string: + + \badcode + # No C++ code to document in this project + moduleheader = + \endcode + + See also \l includepaths and \l project. + + \target naturallanguage-variable + \section1 naturallanguage + + The \c naturallanguage variable specifies the natural language + used for the documentation generated by QDoc. + + \badcode + naturallanguage = zh-Hans + \endcode + + By default, the natural language is \c en for compatibility with + legacy documentation. + + QDoc will add the natural language information to the HTML it + generates, using the \c lang and \c xml:lang attributes. + + See also \l {sourceencoding-variable} {sourceencoding}, + \l {outputencoding-variable} {outputencoding}, + \l{http://www.w3.org/TR/xhtml1/#C_7} + {C.7. The lang and xml:lang Attributes} and + \l{http://www.w3.org/TR/i18n-html-tech-lang/#ri20040429.113217290} + {Best Practice 13: Using Hans and Hant codes}. + + \target navigation-variable + \section1 navigation + + The \c navigation sub-variables, if defined, set the home page, landing + page, C++ classes page, and QML types page that are visible in the + generated navigation bar for each page. + + In a project with multiple sub-projects (for example, Qt modules), each + sub-project typically defines its own landing page while the same home + page is used across all sub-projects. + + \b Sub-variables + + \table + \row \li \c navigation.homepage + \li Project home page. + \row \li \c navigation.hometitle + \li (Optional) User-visible title for the home page. + Default value is taken from \c homepage. + \row \li \c navigation.landingpage + \li Sub-project landing page. + \row \li \c navigation.landingtitle + \li (Optional) User-visible title for the landing page. + Defaults value is taken from \c landingpage. + \row \li \c navigation.cppclassespage + \li Top-level page that lists all C++ classes for this (sub-)project. + Typically, the title of a \l {module-command}{\\module} page. + \row \li \c navigation.cppclassestitle + \li (Optional) User-visible title for the C++ classes page. + Default is "C++ Classes". + \row \li \c navigation.qmltypespage + \li Top-level page that lists all QML types for this (sub-)project. + Typically, the title of a \l {qmlmodule-command}{\\qmlmodule} page. + \row \li \c navigation.qmltypestitle + \li (Optional) User-visible title for the QML types page. + Default is "QML Types". + \row \li \c navigation.toctitles (Since QDoc 6.0) + \li Page title(s) containing a \l {list-command}{\\list} structure that + acts as a table of contents (TOC). QDoc generates navigation links + for pages listed in the TOC, without the need for + \l {nextpage-command}{\\nextpage} and \l {previouspage-command} + {\\previouspage} commands, as well as a navigation hierarchy that's + visible in the navigation bar (breadcrumbs) for HTML output. + \row \li \c navigation.toctitles.inclusive (Since QDoc 6.3) + \li If set to \c true, page(s) listed in \c navigation.toctitles + will also appear in the navigation bar as a root item. + \endtable + + For example: + + \badcode + # Common configuration + navigation.homepage = index.html + navigation.hometitle = "Qt $QT_VER" + + # qtquick.qdocconf + navigation.landingpage = "Qt Quick" + navigation.cppclassespage = "Qt Quick C++ Classes" + navigation.qmltypespage = "Qt Quick QML Types" + \endcode + + The above configuration produces the following navigation bar for \c Item QML type: + + \badcode + Qt 5.10 > Qt Quick > QML Types > Item QML Type + \endcode + + \target outputdir-variable + \section1 outputdir + + The \c outputdir variable specifies the directory where QDoc will + put the generated documentation. + + \badcode + outputdir = $QTDIR/doc/html + \endcode + + locates the generated Qt reference documentation in + $QTDIR/doc/html. For example, the documentation of the QWidget + class is located in + + \badcode + $QTDIR/doc/html/qwidget.html + \endcode + + The associated images will be put in an \c images subdirectory. + + \warning When running QDoc multiple times using the same output + directory, all files from the previous run will be lost. + + \target outputencoding-variable + \section1 outputencoding + + The \c outputencoding variable specifies the encoding used for the + documentation generated by QDoc. + + \badcode + outputencoding = UTF-8 + \endcode + + By default, the output encoding is \c ISO-8859-1 (Latin1) for + compatibility with legacy documentation. When generating + documentation for some languages, particularly non-European + languages, this is not sufficient and an encoding such as UTF-8 is + required. + + QDoc will encode HTML using this encoding and generate the correct + declarations to indicate to browsers which encoding is being + used. The \l naturallanguage configuration variable should also be + specified to provide browsers with a complete set of character + encoding and language information. + + See also \l outputencoding and \l naturallanguage. + + \target outputformats-variable + \section1 outputformats + + The \c outputformats variable specifies the format(s) of + the generated documentation. + + Since Qt 5.11, QDoc supports the HTML and WebXML formats; since + Qt 5.15, it can also generate the documentation in DocBook. If no + \c outputformats are specified, QDoc generates the documentation + in HTML (the default format). All output formats can be specified, + with dedicated output directories and other settings. For example: + + \badcode + outputformats = WebXML HTML + WebXML.nosubdirs = true + WebXML.outputsubdir = webxml + WebXML.quotinginformation = true + \endcode + + This generates HTML documentation using the default settings, as well + as WebXML documentation into output subdirectory \e webxml. + + \target outputprefixes-variable + \section1 outputprefixes + + The \c outputprefixes variable specifies a mapping between types of files + and the prefixes to prepend to the HTML file names in the generated + documentation. + + \badcode + outputprefixes = QML JS + outputprefixes.QML = uicomponents- + outputprefixes.JS = uicomponents- + \endcode + + By default, files containing the API documentation for QML types + are prefixed with "qml-", and javaScript types with "js-". In the + above example, the prefix \c "uicomponents" is used instead for + both. + + The output prefix is applied to file names for documentation on + QML and JS types. + + \target outputsuffixes-variable + \section1 outputsuffixes + + The \c outputsuffixes variable specifies a mapping between types of + files and module name suffixes to append to the HTML file names. + + \badcode + outputsuffixes = QML + outputsuffixes.QML = -tp + \endcode + + Given a QML module name \e FooBar and the default + \l {outputprefixes-variable}{output prefix} ("qml-"), the file name of + the generated HTML page for a QML type \e FooWidget would be + \c qml-foobar-tp-foowidget.html. + + By default, no suffix is used. The output suffix, if defined, is applied + to file names for documentation on QML and JS types, and their respective + module pages. + + The \c outputsuffixes variable was introduced in QDoc 5.6. + + \target qhp-variable + \section1 qhp + + The \c qhp variable is used to define the information to be + written out to Qt Help Project (\c{qhp}) files. + + See the \l{Creating Help Project Files} chapter for information + about this process. + + \target sourcedirs-variable + \section1 sourcedirs + + The \c sourcedirs variable specifies the directories containing + the \c .cpp or \c .qdoc files used in the documentation. + + \badcode + sourcedirs += .. \ + ../../../examples/gui/doc/src + \endcode + + When executed, the first thing QDoc will do is to read through the + headers specified in the \l {header-command} {\c header} variable, + and the ones located in the directories specified in the \c + headerdir variable (including all subdirectories), building an + internal structure of the classes and their functions. + + Then it will read through the sources specified in the \l + {sources} {\c sources}, and the ones located in the directories + specified in the \l {sourcedirs} {\c sourcedirs} variable + (including all subdirectories), merging the documentation with the + structure it retrieved from the header files. + + If both the \c sources and \c sourcedirs variables are defined, + QDoc will read through both, first \l {sources} {\c sources} then + \c sourcedirs. + + In the specified directories, QDoc will only read the files with + the \c fileextensions specified in the \l {sources.fileextensions} + {\c sources.fileextensions} variable. The files specified by \l {sources} + {\c sources} will be read independent of their fileextensions. + + See also \l {sources-variable} {sources} and + \l {sources.fileextensions-variable} {sources.fileextensions}. + + \target sourceencoding-variable + \section1 sourceencoding + + The \c sourceencoding variable specifies the encoding used for the + source code and documentation. + + \badcode + sourceencoding = UTF-8 + \endcode + + By default, the source encoding is \c ISO-8859-1 (Latin1) for + compatibility with legacy documentation. For some languages, + particularly non-European languages, this is not sufficient and an + encoding such as UTF-8 is required. + + Although QDoc will use the encoding to read source and + documentation files, limitations of C++ compilers may prevent you + from using non-ASCII characters in source code comments. In cases + like these, it is possible to write API documentation completely + in documentation files. + + See also \l {naturallanguage-variable} {naturallanguage} and + \l {outputencoding-variable} {outputencoding}. + + \target sources-variable + \section1 sources + + The \c sources variable allows you to specify individual source + files in addition to those located in the directories specified by + the \l {sourcedirs-variable} {sourcedirs} variable. + + \badcode + sources = $QTDIR/src/gui/widgets/qlineedit.cpp \ + $QTDIR/src/gui/widgets/qpushbutton.cpp + \endcode + + When processing the \c sources variable, QDoc behaves in the same + way as it does when processing the \l {sourcedirs-variable} + {sourcedirs} variable. For more information, see the \l + {sourcedirs-variable} {sourcedirs} variable. + + See also \l {sourcedirs-variable} {sourcedirs}. + + \target sources.fileextensions-variable + \section1 sources.fileextensions + + The \c sources.fileextensions variable filters the files within a + source directory. + + When processing the source files specified in the \l {sourcedirs} + {\c sourcedirs} variable, QDoc will only read the files with the + fileextensions specified in the \c sources.fileextensions + variable. In this way QDoc avoid spending time reading irrelevant + files. + + The default extensions are *.c++, *.cc, *.cpp, *.cxx, *.mm, *.qml + and *.qdoc. + + The extensions are given as standard wildcard expressions. You + can add a file extension to the filter using '+='. For example: + + \badcode + sources.fileextensions += *.CC + \endcode + + \warning The above assignment may not work as described. + + See also \l {sourcedirs-variable} {sourcedirs} and \l + (sources-variable} {sources}. + + + \target spurious-variable + \section1 spurious + + The \c spurious variable excludes specified QDoc warnings from the + output. The warnings are specified using standard wildcard + expressions. + + \badcode + spurious = "Cannot find .*" \ + "Missing .*" + \endcode + + makes sure that warnings matching either of these expressions, + will not be part of the output when running QDoc. For example + would the following warning be omitted from the output: + + \badcode + src/opengl/qgl_mac.cpp:156: Missing parameter name + \endcode + + \target syntaxhighlighting + \section1 syntaxhighlighting + + The \c syntaxhighlighting variable specifies whether QDoc should + perform syntax highlighting on source code quoted in the + documentation it generates. + + \badcode + syntaxhighlighting = true + \endcode + + will enable syntax highlighting for all supported programming + languages. + + \target tabsize-variable + \section1 tabsize + + The \c tabsize variable defines the size of a tab character. + + \badcode + tabsize = 4 + \endcode + + will give the tab character the size of 4 spaces. The default + value of the variable is 8, and doesn't need to be specified. + + \target tagfile-variable + \section1 tagfile + + The \c tagfile variable specifies the Doxygen tag file to be + written when HTML is generated. + + \target version-variable + \section1 version + + The \c version variable specifies the version number of the + documented software. + + \badcode + version = 5.6.0 + \endcode + + When a version number is specified (using the \tt{\l version} or + \tt {\l versionsym} variables in a \c .qdocconf file), it is + accessible through the corresponding \\version command for use in + the documentation. + + \warning The \\version command's functionality is not fully + implemented; currently it only works within raw HTML code. + + See also \l versionsym. + + \target versionsym-variable + \section1 versionsym + + The \c versionsym variable specifies a C++ preprocessor symbol + that defines the version number of the documented software. + + \badcode + versionsym = QT_VERSION_STR + \endcode + + QT_VERSION_STR is defined in qglobal.h as follows + + \badcode + #define QT_VERSION_STR "5.14.1" + \endcode + + When a version number is specified (using the \tt{\l version} or + \tt {\l versionsym} variables in a \c .qdocconf file), it is + accessible through the corresponding \\version command for use in + the documentation. + + \warning The \\version command's functionality is not fully + implemented. Currently, it only works within raw HTML code. + + See also \l {version} {\\version}. + + \target warninglimit-variable + \section1 warninglimit + + The \c warninglimit variable sets the maximum number of documentation + warnings allowed. If this limit is exceeded, QDoc continues as normal + but exits with the warning count as the error code. If the limit was + not exceeded or \c warninglimit was not defined, QDoc process exits + with 0, assuming there were no other critical errors. + + Setting the \c warninglimit to \c 0 means failure on any warning. + + \note By default, QDoc does not enforce the warning limit. Enable it + with \c {warninglimit.enabled = true} or by defining + the \c QDOC_ENABLE_WARNINGLIMIT environment variable. + + For example, + + \badcode + # Fail the documentation build if we have more than 100 warnings + warninglimit = 100 + warninglimit.enabled = true + \endcode + + The \c warninglimit variable was introduced in Qt 5.11. +*/ + +/*! + \page 22-creating-help-project-files.html + \previouspage Generic Configuration Variables + \nextpage Format-specific Configuration Variables + + \title Creating Help Project Files + + \section1 Overview + + Qt Assistant uses a system for managing Qt documentation that requires + QDoc to generate inventories of files. + + QDoc allows configuration variables to be used to specify which pages are + to be used in each documentation set it generates. These are specified as + subvariables of the \c qhp variable with each set declared using a unique + identifier as a subvariable. + + For example, the configuration file for the Qt Quick documentation set + specifies information about the set as subvariables with the + \c{qhp.QtQuick} prefix: + + \badcode + qhp.projects = QtQuick + + qhp.QtQuick.file = qtquick.qhp + qhp.QtQuick.namespace = org.qt-project.qtquick.$QT_VERSION_TAG + qhp.QtQuick.virtualFolder = qtquick + qhp.QtQuick.indexTitle = Qt Quick + qhp.QtQuick.indexRoot = + + qhp.QtQuick.subprojects = qmltypes classes examples + + qhp.QtQuick.subprojects.qmltypes.title = QML Types + qhp.QtQuick.subprojects.qmltypes.indexTitle = Qt Quick QML Types + qhp.QtQuick.subprojects.qmltypes.selectors = qmlclass + qhp.QtQuick.subprojects.qmltypes.sortPages = true + + qhp.QtQuick.subprojects.classes.title = Classes + qhp.QtQuick.subprojects.classes.title = C++ Classes + qhp.QtQuick.subprojects.classes.indexTitle = Qt Quick C++ Classes + qhp.QtQuick.subprojects.classes.selectors = class fake:headerfile + qhp.QtQuick.subprojects.classes.sortPages = true + + qhp.QtQuick.subprojects.examples.title = Examples + qhp.QtQuick.subprojects.examples.indexTitle = Qt Quick Examples and Tutorials + qhp.QtQuick.subprojects.examples.selectors = fake:example + \endcode + + The documentation set may include one or more subprojects, which are added + to the table of contents under the name specified by \c title. The page + in the documentation referred to by the \c indexTitle acts as the index page + for the subproject. The page types to list under the subproject are specified + by \c selectors. The entries are alphabetically sorted if \c sortPages is set + to \c true. + + \section2 Using Selectors + + The \c selectors property specifies which page types are listed under the + table of contents entry for a subproject. Multiple selectors can be listed, + separated by whitespace. + + \table + \header \li Selector \li Description + \row \li \c namespace \li Namespaces + \row \li \c class \li Classes + \row \li \c qmltype \li QML Types + \row \li \c qmlclass \li Alias for \c qmltype. + \row \li \c module[:name] \li C++ modules or members of the module + with a specified name. + \row \li \c qmlmodule[:name] \li QML modules or members of the module + with a specified name. + \row \li \c doc[:subtype] \li Documentation pages with a specified + \c subtype. Multiple subtypes can be + listed as a comma-separated list. + \row \li \c fake \li Alias for \c doc. + \row \li \c group[:groupname] \li Documentation pages for members of a + specified group, as added using the + \l {ingroup-command} + {\\ingroup} groupname command. + Multiple group names can be listed as + a comma-separated list. + (Introduced in QDoc 5.6). + \endtable + + Available subtypes for the \c doc selector: + + \table + \header \li Subtype \li Description + \row \li \c example \li Examples + \row \li \c headerfile \li Header files + \row \li \c page \li Documentation pages defined with the + \l {page-command} {\\page} command. + \endtable + + For example, the following configuration would select example pages and + pages that include the \c {\ingroup tutorials} command: + + \badcode + qhp.QtQuickControls.subprojects = examples + qhp.QtQuickControls.subprojects.examples.title = Examples and Tutorials + qhp.QtQuickControls.subprojects.examples.indexTitle = Qt Quick Controls Examples + qhp.QtQuickControls.subprojects.examples.selectors = doc:example group:tutorials + qhp.QtQuickControls.subprojects.examples.sortPages = true + \endcode + + \section2 Adding Table of Contents + + To create a table of contents for a manual, create a subproject with + a \c{type} property and set it to \c{manual}. The page in the documentation + referred to by the \c{indexTitle} property must contain a list of links + that acts as a table of contents for the whole manual. QDoc will take the + information in this list and create a table of contents for the subproject. + + For example, the configuration file for Qt Creator defines only one + subproject for its documentation, including all the documentation in a + single manual: + + \badcode + qhp.QtCreator.subprojects = manual + qhp.QtCreator.subprojects.manual.title = Qt Creator Manual + qhp.QtCreator.subprojects.manual.indexTitle = Qt Creator Manual + qhp.QtCreator.subprojects.manual.type = manual + \endcode + + In this example, the page entitled "Qt Creator Manual" contains a nested + list of links to pages in the documentation which is duplicated in + Qt Assistant's Contents tab. +*/ + +/*! + \page 24-qdoc-configuration-htmlvariables.html + \previouspage Creating Help Project Files + \nextpage Supporting Derived Projects + + \keyword HTML Specific Configuration Variables + \title Format-specific Configuration Variables + + The format-specific configuration variables define the generated + documentation's style, or define the contents of the + documentation's footer or postheader. + + Some of the configuration values are relevant only for the HTML + output format and their values contain raw HTML. + + \target HTML.footer-variable + \section1 HTML.footer + + The \c HTML.footer variable defines the content of the generated + HTML documentation's footer. + + The footer is rendered at the bottom of the generated + documentation page. + + The variable's value is given as raw HTML code enclosed by + quotation marks. Note that if the value spans several lines, each + line needs to be enclosed by quotation marks. + + \badcode + HTML.footer = "


\n" \ + ... + "
" + \endcode + + \target FORMAT.nosubdirs + \section1 .nosubdirs + + A boolean value which, when \c true, enables single-directory output + mode; all generated files go to \l {FORMAT.outputsubdir} directory, + instead of a subdirectory based on the documentation project name. + + \target FORMAT.outputsubdir + \section1 .outputsubdir + + Defines the subdirectory under \l outputdir where documentation is + generated. + + \badcode + HTML.nosubdirs = true + HTML.outputsubdir = html + \endcode + + With above, the output goes to \c {/html}. + + \target HTML.postheader-variable + \section1 HTML.postheader + + The \c HTML.postheader variable defines the content of the + generated HTML documentation's postheader. + + The header is rendered at the top of the generated documentation + page. + + The variable's value is given as raw HTML enclosed by quotation + marks. Note that if the value spans several lines, each line needs + to be enclosed by quotation marks. + + \badcode + HTML.postheader = "" \ + "" \ + "
" + \endcode + + The complete variable entry in \l qtgui.qdocconf provides the + standard header of the \l {http://doc.qt.io/qt-5/qtgui-index.html} + {Qt GUI Documentation}. + + \target FORMAT.quotinginformation + \section1 .quotinginformation + + A boolean value which, when \c true, generates references to + quoted content (for example, \l {quotefromfile-command}{\\quotefromfile} + and \l {snippet-command}{\\snippet} commands) instead of including + the content directly. + + Used currently for the \c WebXML output format. + + \badcode + WebXML.quotinginformation = true + \endcode + + \target HTML.style-variable + \section1 HTML.style + + The HTML.style variable defines the style for + the generated HTML documentation. + + The variable's value is given as raw HTML enclosed by quotation + marks. Note that if the value spans several lines, each line needs + to be enclosed by quotation marks. + + \badcode + HTML.style = "h3.fn,span.fn" \ + "{ margin-left: 1cm; text-indent: -1cm; }\n" \ + "a:link { color: #004faf; text-decoration: none }\n" \ + "a:visited" \ + "{ color: #672967; text-decoration: none }\n" \ + "td.postheader { font-family: sans-serif }\n" \ + "tr.address { font-family: sans-serif }\n" \ + "body { background: #ffffff; color: black; }" + \endcode + + \target HTML.stylesheets-variable + \section1 HTML.stylesheets + + The HTML.stylesheets variable defines a list of stylesheets + to use for the generated HTML documentation. + + Using separate stylesheets for the documentation makes it easier + to customize and experiment with the style used once the contents + has been generated. Typically, it is only necessary to define a + single stylesheet for any set of documentation; for example: + + \badcode + HTML.stylesheets = path/to/classic.css + \endcode + + QDoc expects to find stylesheets in the directory containing the + \l qtgui.qdocconf file, and it will copy those specified to the output + directory alongside the HTML pages. + + \target HTML.tocdepth + \section1 .tocdepth + + The \c {.tocdepth} variable defines how many document sections + are printed in the table of contents. Setting tocdepth to \c 0 disables + the table of contents while leaving it undefined prints all document + sections. + + Currently only has an effect for the HTML format: + + \badcode + HTML.tocdepth = 3 + \endcode +*/ + +/*! + \page 25-qdoc-configuration-derivedprojects.html + \previouspage Format-specific Configuration Variables + \nextpage Example Manifest Files + + \title Supporting Derived Projects + + Some configuration variables allow you to use QDoc to support + Qt-based projects. They allow your project to contain links to the + online Qt documentation, which means that QDoc will be able to + create links to the class reference documentation, without any + explicit linking command. + + \target description-variable + \section1 description + + The description variable holds a short description of the + associated project. + + See also \l project. + + \target indexes-variable + \section1 indexes + + The \c indexes variable defines a set of paths to index files to load. + + \badcode + indexes = \ + $QT_INSTALL_DOCS/qtcore/qtcore.index \ + $SOME_OTHER_PROJECT/doc/foo.index + \endcode + + The \c indexes variable provides an alternative to \l depends for + defining project's dependencies. As direct paths are provided, no + \c -indexdir command line option(s) are required when invoking QDoc. + + It is possible to define dependencies using either variable. Qt + documentation only uses the \c depends variable. + + See also \l depends, \l project and \l url. + + \target project-variable + \section1 project + + The \c project variable provides a name for the project associated + with the \c .qdocconf file. This is a mandatory variable that all + projects must set. + + The project's name is used to form a file name for the associated + project's \e index file. + + \badcode + project = QtCreator + \endcode + + This will cause an index file called \c qtcreator.index to be + created. + + If the project name contains whitespace or special characters, + these are replaced with dashes ('-') in the generated index file + name. + + See also \l depends, \l indexes, and \l description. + + \target url-variable + \section1 url + + The \c url variable holds the base URL for the + documentation associated with the current project. + + The URL is stored in the generated index file for the + project. When we use the index on its own, QDoc will use this as + the base URL when constructing links to classes, functions, and + other things listed in the index. + + \badcode + project = QtCore + description = Qt Core Reference Documentation + url = https://doc.qt.io/qt/ + + ... + \endcode + + This ensures that whenever QDoc generates + references to entities in the Qt Core module, the base URL is + \c https://doc.qt.io/qt/. + + See also \l depends, \l indexes and \l {url.examples}. + + \target url.examples-variable + \section1 url.examples + + The \c url.examples variable holds the base URL for the examples + associated with the current project. + + If defined, a link to the example project directory is generated + at the end of each example documentation page. The \c url.examples + variable refers to the root directory of the examples related to + this project; it can be a link to an online repository (starting + with \e http:// or \e https://), or to the local file system + (\c file://). + + If \c url.examples is not defined, QDoc will output a list of + example's files and images instead. + + For example, given these definitions: + + \badcode + url.examples = "https://code.qt.io/cgit/qt/qtbase.git/tree/examples/" + examplesinstallpath = corelib + \endcode + + Then, for the following \l {example-command}{\\example} command: + + \badcode * + /\1! + \example threads/semaphores + ... + \1/ + \endcode + + QDoc generates a link to + \c https://code.qt.io/cgit/qt/qtbase.git/tree/examples/corelib/threads/semaphores. + + If the URL contains more components (for example, a query string) + after the example path, \\1 can be used as a placeholder for the + path: + + \badcode + url.examples = "https://code.qt.io/cgit/qt/qtbase.git/tree/examples/\1?h=$QT_VER" + examplesinstallpath = corelib + \endcode + + Given the same \\example command as above and assuming that + \c $QT_VER expands to \c {5.13}, the generated URL is + \c https://code.qt.io/cgit/qt/qtbase.git/tree/examples/corelib/threads/semaphores?h=5.13. + + \c {url.examples} variable was introduced in QDoc version 5.13. + + See also \l url, \l examplesinstallpath, and \l {example-command}{\\example}. + + \target howto + \section1 How to Support Derived Projects + + This feature makes use of the comprehensive indexes generated by + QDoc when it creates the Qt reference documentation. + + For example, \l qtgui.qdocconf (the configuration file for Qt GUI) + contains the following variable definitions: + + \badcode + project = QtGui + description = Qt GUI Reference Documentation + url = http://doc.qt.io/qt/ + + ... + \endcode + + The \l project variable name is used to form a file name for the + index file; in this case the \c qtgui.index file is created. The \l + url is stored in the index file. Afterwards, QDoc will use this + as the base URL when constructing links to classes, functions, + and other things listed in the index. + + See also \l depends, \l indexes, \l project, and \l url. +*/ + +/*! + \page 26-qdoc-configuration-example-manifest-files.html + \previouspage Supporting Derived Projects + + \title Example Manifest Files + + QDoc generates XML files that contain information about all documented + examples and demos. These files, named \c {examples-manifest.xml} and + \c {demos-manifest.xml}, are used by Qt Creator to present a list of + examples in its welcome screen and to link to their documentation. + + \section1 Manifest XML Structure + + A manifest file has the following structure: + + \badcode + + + + + + analog,clock,window + gui/analogclock/main.cpp + + ... + + + \endcode + + Each \c {} element contains information about a name, + description, the location of the project file and documentation, + as well as a list of tags associated with the example. + + \target metacontent + \section1 Manifest Meta Content + + It is possible to augment the manifest files with additional + meta-content - that is, extra attributes and tags for selected + examples, using the \c manifestmeta configuration command. + + One use case for meta-content is highlighting a number of prominent + examples. Another is improving search functionality by adding + relevant keywords as tags for a certain category of examples. + + The examples for which meta-content is applied to is specified using + one or more filters. Matching examples to filters is done based on + names, with each example name prefixed with a module name and a + slash. Simple wildcard matching is supported; by using \c {*} at the + end it's possible to match multiple examples with a single string. + + Example: + + \badcode + manifestmeta.filters = highlighted sql webkit global + + manifestmeta.highlighted.names = "QtGui/Analog Clock Window Example" \ + "QtWidgets/Analog Clock Example" + manifestmeta.highlighted.attributes = isHighlighted:true + + manifestmeta.sql.names = "QtSql/*" + manifestmeta.sql.tags = database,sql + + manifestmeta.webkit.names = "QtWebKitExamples/*" + manifestmeta.webkit.tags = webkit + + manifestmeta.global.names = * + manifestmeta.global.tags = qt5 + \endcode + + Above, an \c isHighlighted attribute is added to two examples. If + the attribute value is omitted, QDoc uses the string \c {true} by + default. Extra tags are added for Qt WebKit and Qt SQL examples, and + another tag is applied to all examples by using just \c {*} as the + match string. +*/ + +/*! + \page 21-1-minimum-qdocconf.html + \previouspage qtgui.qdocconf + \nextpage The QDoc Configuration File + + \title minimum.qdocconf + + \quotefile examples/minimum.qdocconf +*/ + +/*! + \page 21-2-qtgui-qdocconf.html + \previouspage Supporting Derived Projects + \nextpage minimum.qdocconf + + \title qtgui.qdocconf + + \quotefile files/qtgui.qdocconf +*/ diff --git a/src/qdoc/doc/qdoc-manual-topiccmds.qdoc b/src/qdoc/doc/qdoc-manual-topiccmds.qdoc new file mode 100644 index 0000000..2f6f04c --- /dev/null +++ b/src/qdoc/doc/qdoc-manual-topiccmds.qdoc @@ -0,0 +1,1692 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \page 13-qdoc-commands-topics.html + \previouspage Command Index + \nextpage Context Commands + + \title Topic Commands + + A topic command tells QDoc which source code element is being + documented. Some topic commands allow you to create documentation + pages that aren't tied to any underlying source code element. + + When QDoc processes a QDoc comment, it tries to connect the + comment to an element in the source code by first looking for a + topic command that names the source code element. If there is no + topic command, QDoc tries to connect the comment to the source + code element that immediately follows the comment. If it can't do + either of these and if there is no topic command that indicates + the comment does not have an underlying source code element (e.g. + \l{page-command} {\\page}), then the comment is discarded. + + \target topic argument + + The name of the entity being documented is usually the only + argument for a topic command. Use the complete name. Sometimes + there can be a second parameter in the argument. See e.g. \l + {page-command} {\\page}. + + \code + \enum QComboBox::InsertPolicy + \endcode + + The \l {fn-command} {\\fn} command is a special case. For the \l + {fn-command} {\\fn} command, use the function's signature + including the class qualifier. + + \code + \fn void QGraphicsWidget::setWindowFlags(Qt::WindowFlags wFlags) + \endcode + + A topic command can appear anywhere in a comment but must stand + alone on its own line. It is good practice is to let the topic command + be the first line of the comment. If the argument spans several + lines, make sure that each line (except the last one) is ended + with a backslash. Moreover, QDoc counts parentheses, which means + that if it encounters a '(' it considers everything until the + closing ')' as its argument. + + If a topic command is repeated with different arguments, the + same documentation will appear for both the units. + + \code + / *! + \fn void PreviewWindow::setWindowFlags() + \fn void ControllerWindow::setWindowFlags() + + Sets the widgets flags using the QWidget::setWindowFlags() + function. + + Then runs through the available window flags, creating a text + that contains the names of the flags that matches the flags + parameter, displaying the text in the widgets text editor. + * / + \endcode + + The \c PreviewWindow::setWindowFlags() and \c + ControllerWindow::setWindowFlags() functions will get the same + documentation. + + \section2 Nomenclature for files generated by topic commands + + For many topic commands, such as \l {page-command}{\\page}, QDoc + generates a file when processing the documentation. + + QDoc normalizes the name of each file before writing it to disk. + The following operations are performed: + + \list + \li All sequences of non alphanumeric characters are replaced with a hyphen, '-'. + \li All uppercase letters are replaced with their lowercase equivalent. + \li All trailing hyphens are removed. + \endlist + + For example, the following command generates a file named + \c{this-generates-a-file-and-writes-it-to-disk.html}: + + \badcode + \page this_generates_a_file_(and_writes_it_to_DISK)-.html + \endcode + + As the example shows, the name that is given to the file in the + command might differ from the name of the actual file that is + written to disk. + + \section3 Prefixes and Suffixes for generated files + + When QDoc generates a file, it may add a prefix, a suffix, or both, + depending on the element that the file will document. + + The table below shows what those prefixes and suffixes are for + various elements. + + \table + \header + \li Element + \li Prefix + \li Suffix + \li Command + \row + \li QML Modules + \li None + \li "-qmlmodule" + \li \l {qmlmodule-command}{\\qmlmodule} + \row + \li Modules + \li None + \li "-module" + \li \l {module-command}{\\module} + \row + \li Examples + \li The project name, as given by the \l + {project-variable}{project configuration variable}, + followed by a hyphen. + \li "-example" + \li \l {example-command}{\\example} + \row + \li QML Types + \li The output prefix for QML, as given by the \l + {outputprefixes-variable}{outputprefixes configuration + variable}. + + If the module that contains this type is known to QDoc, + the module name is added as a prefix, followed by the QML + output suffix, as defined by the \l + {outputsuffixes-variable}{outputsuffixes configuration + variable} and a hyphen. + \li None + \li \l {qmltype-command}{\\qmltype} + \endtable + + \target class-command + \section1 \\class + + The \\class command is for documenting a C++ class. The argument + is the complete name of the class. The command tells QDoc that a + class is part of the public API, and lets you enter a detailed + description. + + \code + / *! + \class QMap::iterator + + \brief The QMap::iterator class provides an STL-style + non-const iterator for QMap and QMultiMap. + + QMap features both \l{STL-style iterators} and + \l{Java-style iterators}. The STL-style iterators ... + * / + \endcode + + The HTML documentation for the named class is written to a + \c{.html} file named from the class name, in lower case, and with + the double colon qualifier(s) replaced with '-'. For example, the + documentation for the \c QMap::Iterator class is written to \c + qmap-iterator.html. + + \target framework + + The file contains the class description from the \\class comment, + plus the documentation generated from QDoc comments for all the + class members: a list of the class's types, properties, + functions, signals, and slots. + + In addition to the detailed description of the class, the \\class + comment typically contains a \l {brief-command} {\\brief} command + and one or more \l{Markup Commands}. See the \\class command for + any of the Qt class for examples. Here is a very simple example: + + \code + / *! + \class PreviewWindow + \brief The PreviewWindow class is a custom widget. + displaying the names of its currently set + window flags in a read-only text editor. + + \ingroup miscellaneous + + The PreviewWindow class inherits QWidget. The widget + displays the names of its window flags set with the \l + {function} {setWindowFlags()} function. It is also + provided with a QPushButton that closes the window. + + ... + + \sa QWidget + * / + \endcode + + The way QDoc renders this \\class will depend a lot on your \c + {style.css} file, but the general outline of the class reference + page will look like this: + + \quotation + \raw HTML +

PreviewWindow Class Reference

+ \endraw + + The PreviewWindow class is a custom widget displaying + the names of its currently set window flags in a + read-only text editor. \l {preview window} {More...} + + \raw HTML +

Properties

+ \endraw + + \list + \li 52 properties inherited from QWidget + \li 1 property inherited from QObject + \endlist + + \raw HTML +

Public Functions

+ \endraw + + \list + \li \l {constructor} {PreviewWindow}(QWidget *parent = 0) + \li void \l {function} {setWindowFlags}(Qt::WindowFlags flags) + \endlist + + \list + \li 183 public functions inherited from QWidget + \li 28 public functions inherited from QObject + \endlist + + \raw HTML +

Public Slots

+ \endraw + + \list + \li 17 public slots inherited from QWidget + \li 1 public slot inherited from QObject + \endlist + + \raw HTML +

Additional Inherited Members

+ \endraw + + \list + \li 1 signal inherited from QWidget + \li 1 signal inherited from QObject + \li 4 static public members inherited from QWidget + \li 4 static public members inherited from QObject + \li 39 protected functions inherited from QWidget + \li 7 protected functions inherited from QObject + \endlist + + \target preview window + + \raw HTML +
+

Detailed Description

+ \endraw + + The PreviewWindow class is a custom widget displaying + the names of its currently set window flags in a + read-only text editor. + + The PreviewWindow class inherits QWidget. The widget + displays the names of its window flags set with the \l + {function} {setWindowFlags()} function. It is also + provided with a QPushButton that closes the window. + + ... + + See also QWidget. + + \raw HTML +
+

Member Function Documentation

+ \endraw + + \target constructor + \raw HTML +

PreviewWindow(QWidget *parent = 0)

+ \endraw + + Constructs a preview window widget with \e parent. + + \target function + \raw HTML +

setWindowFlags(Qt::WindowFlags flags)

+ \endraw + + Sets the widgets flags using the + QWidget::setWindowFlags() function. + + Then runs through the available window flags, + creating a text that contains the names of the flags + that matches the flags parameter, displaying + the text in the widgets text editor. + \endquotation + + \target enum-command + \section1 \\enum + + The \\enum command is for documenting a C++ enum type. The + argument is the full name of the enum type. + + The enum values are documented in the \\enum comment using the \l + {value-command} {\\value} command. If an enum value is not + documented with \\value, QDoc emits a warning. These warnings can + be avoided using the \l {omitvalue-command} {\\omitvalue} command + to tell QDoc that an enum value should not be documented. The enum + documentation will be included on the class reference page, header + file page, or namespace page where the enum type is defined. For + example, consider the enum type \c {Corner} in the Qt namespace: + + \code + enum Corner { + TopLeftCorner = 0x00000, + TopRightCorner = 0x00001, + BottomLeftCorner = 0x00002, + BottomRightCorner = 0x00003 + #if defined(QT3_SUPPORT) && !defined(Q_MOC_RUN) + ,TopLeft = TopLeftCorner, + TopRight = TopRightCorner, + BottomLeft = BottomLeftCorner, + BottomRight = BottomRightCorner + #endif + }; + \endcode + + This enum can be cocumented this way: + + \code + / *! + \enum Qt::Corner + + This enum type specifies a corner in a rectangle: + + \value TopLeftCorner + The top-left corner of the rectangle. + \value TopRightCorner + The top-right corner of the rectangle. + \value BottomLeftCorner + The bottom-left corner of the rectangle. + \value BottomRightCorner + The bottom-right corner of the rectangle. + + \omitvalue TopLeft + \omitvalue TopRight + \omitvalue BottomLeft + \omitvalue BottomRight + Bottom-right (omitted; not documented). + * / + \endcode + + Note the inclusion of the namespace qualifier. QDoc will render + this enum type in \c {qt.html} like this: + + \quotation + \raw HTML +

enum Qt::Corner

+ +

This enum type specifies a corner in a rectangle:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConstantValueDescription
Qt::TopLeftCorner0x00000The top-left corner of the rectangle.
Qt::TopRightCorner0x00001The top-right corner of the rectangle.
Qt::BottomLeftCorner0x00002The bottom-left corner of the rectangle.
Qt::BottomRightCorner0x00003The bottom-right corner of the rectangle.
+ \endraw + \endquotation + + See also \l {value-command} {\\value} and \l {omitvalue-command} {\\omitvalue}. + + \target example-command + \section1 \\example + + The \\example command is for documenting an example. The argument + is the example's path relative to one of the paths listed in the + \l {exampledirs-variable} {exampledirs} variable in the QDoc + configuration file. + + The documentation page will be output to \c {modulename-path-to-example}.html. + QDoc will add a list of all the example's source and images files at the end + of the page, unless \l {noautolist-command}{\\noautolist} command is used or + the configuration variable \l {url.examples-variable}{url.examples} is defined + for the project. + + For example, if \l {exampledirs-variable} {exampledirs} contains + \c $QTDIR/examples/widgets/imageviewer, then + + \code + / *! + \example widgets/imageviewer + \title ImageViewer Example + \subtitle + + The example shows how to combine QLabel and QScrollArea + to display an image. + + ... + * / + \endcode + + QDoc renders this example in widgets-imageviewer.html: + + \quotation + \raw HTML +

Image Viewer Example

+ \endraw + + The example shows how to combine QLabel and QScrollArea + to display an image. + + Files: + \list + \li \l{http://doc.qt.io/qt-5/qtwidgets-widgets-imageviewer-imageviewer-cpp.html} + {widgets/imageviewer/imageviewer.cpp} + \li \l{http://doc.qt.io/qt-5/qtwidgets-widgets-imageviewer-imageviewer-h.html} + {widgets/imageviewer/imageviewer.h} + \li \l{http://doc.qt.io/qt-5/qtwidgets-widgets-imageviewer-main-cpp.html} + {widgets/imageviewer/main.cpp} + \endlist + + + ... + \endquotation + + \b {See also:} \l {generatelist-command}{\\generatelist examplefiles}, + \l {noautolist-command}{\\noautolist}, + \l {url.examples-variable}{url.examples}, + \l {meta-command}{\\meta} + + \target externalpage-command + \section1 \\externalpage + + The \\externalpage command assigns a title to an external URL. + + \code + / *! + \externalpage http://doc.qt.io/ + \title Qt Documentation Site + * / + \endcode + + This allows you to include a link to the external page in your + documentation this way: + + \code + / *! + At the \l {Qt Documentation Site} you can find the latest + documentation for Qt, Qt Creator, the Qt SDK and much more. + * / + \endcode + + QDoc renders this as: + + \quotation + At the \l {http://doc.qt.io/}{Qt Documentation Site} + you can find the latest documentation for Qt, Qt Creator, the Qt SDK + and much more. + \endquotation + + To achieve the same result without using the \\externalpage + command, you would have to hard-code the address into your + documentation: + + \code + / *! + At the \l {http://doc.qt.io/}{Qt Documentation Site} + you can find the latest documentation for Qt, Qt Creator, the Qt SDK + and much more. + * / + \endcode + + The \\externalpage command makes it easier to maintain the + documentation. If the address changes, you only need to change the + argument of the \\externalpage command. + + \target fn-command + \section1 \\fn (function) + + The \\fn command is for documenting a function. The argument is + the function's signature, including its template parameters (if + any), return type, const-ness, and list of formal arguments with + types. If the named function doesn't exist, QDoc emits a warning. + + Since QDoc version 6.0, the \\fn command can be used for documenting + class members that are not explicitly declared in the header, + but are implicitly generated by the compiler; default constructor + and destructor, copy constructor and move-copy constructor, + assignment operator, and move-assignment operator. + + When documenting an hidden friend, it is required to prepend the + enclosing class name to the function name. + For example, for: + + \code + class Foo { + ... + friend bool operator==(const Foo&, const Foo&) { ... } + ... + } + \endcode + + The command should be written as \c{"\fn Foo::operator==(const + Foo&, const Foo&)"} and not as the free function \c{"\fn + operator==(const Foo&, const Foo&)"}. + + Failure to do so will have QDoc complaining about being unable to + resolve the function. + + \note The \\fn command is QDoc's default command: when no + topic command can be found in a QDoc comment, QDoc tries to tie + the documentation to the following code as if it is the + documentation for a function. Hence, it is normally not necessary + to include this command when documenting a function, if the + function's QDoc comment is written immediately above the function + implementation in the \c .cpp file. But it must be present when + documenting an inline function in the \c .cpp file that is + implemented in the \c .h file. + + \code + / *! + \fn bool QToolBar::isAreaAllowed(Qt::ToolBarArea area) const + + Returns \c true if this toolbar is dockable in the given + \a area; otherwise returns \c false. + * / + \endcode + + QDoc renders this as: + + \quotation + \raw HTML +

bool QToolBar::isAreaAllowed(Qt::ToolBarArea area) const +

+ \endraw + + Returns \c true if this toolbar is dockable in the given + \a area; otherwise returns \c false. + \endquotation + + \note Running in debug mode (pass the \c {-debug} command line option + or set the \c QDOC_DEBUG environment variable before invoking QDoc) + can help troubleshoot \\fn commands that QDoc fails to parse. In + debug mode, additional diagnostic information is available. + + See also \l {overload-command} {\\overload}. + + \target group-command + \section1 \\group + + The \\group command creates a separate page that lists the classes + belonging to the group. The argument is the group name. + + A class is included in a group by using the \l {ingroup-command} + {\\ingroup} command. Overview pages can also be related to a group + using the same command, but the list of overview pages must be + requested explicitly using the \l {generatelist-command} + {\\generatelist} command (see example below). + + The \\group command is typically followed by a \l {title-command} + {\\title} command and a short introduction to the group. The + HTML page for the group is written to a \c {.html} file put in + \e{group}.html. + + Each class name is listed as a link to the class reference page + followed by the text from the class's \l {brief-command} {\\brief} + texts. + + \code + / *! + \group io + + \title Input/Output and Networking + + These classes are used to handle input and output to + and from external devices, processes, files etc., as + well as manipulating files and directories. + * / + \endcode + + QDoc generates a group page in \c{io.html} that will look + like this: + + \quotation + \raw HTML + +

Input/Output and Networking

+ +

These classes are used to handle input and output + to and from external devices, processes, files etc., as + well as manipulating files and directories.

+ +

+ + + + + + + + + + + + +
+ QAbstractSocket + + The base functionality common to all socket types +
+ QBuffer + + QIODevice interface for a QByteArray +
+ QClipboard + + Access to the window system clipboard +
+ \endraw + \endquotation + + Note that overview pages related to the group, must be listed + explicitly using the \l {generatelist-command} {\\generatelist} + command with the \c related argument. + + \code + / *! + \group architecture + + \title Architecture + + These documents describe aspects of Qt's architecture + and design, including overviews of core Qt features and + technologies. + + \generatelist{related} + * / + \endcode + + See also \l {ingroup-command} {\\ingroup} and \l + {generatelist-command} {\\generatelist}. + + \target headerfile-command + \section1 \\headerfile + + The \\headerfile command is for documenting the global functions, + types and macros that are declared in a header file, but not in a + namespace. The argument is the name of the header file. The HTML + page is written to a \c {.html} file constructed from the header + file argument. + + The documentation for a function, type, or macro that is declared + in the header file being documented, is included in the header file + page using the \l {relates-command} {\\relates} command. + + If the argument doesn't exist as a header file, the \\headerfile + command creates a documentation page for the header file anyway. + + \code + / *! + \headerfile + + \title Generic Algorithms + + \brief The header file provides + generic template-based algorithms. + + Qt provides a number of global template functions in \c + that work on containers and perform + well-know algorithms. + * / + \endcode + + QDoc generates a header file page \c{qtalgorithms.html} that looks + like this: + + \quotation + \raw HTML +

<QtAlgorithms> - + Generic Algorithms

+

The header file provides generic + template-based algorithms. + More... +

+ +

Functions

+
    +
  • RandomAccessIterator + qBinaryFind + (RandomAccessIterator begin, RandomAccessIterator end, + const T & value)
  • +
  • ...
+
+ \endraw + + \target header + + \raw HTML +

Detailed Description

+

The header file provides generic + template-based algorithms.

+ \endraw + + Qt provides a number of global template functions in \c + that work on containers and perform + well-know algorithms. + + ... + \endquotation + + See also \l {inheaderfile-command}{\\inheaderfile}. + + \target macro-command + \section1 \\macro + + The \\macro command is for documenting a C++ macro. The argument + is the macro in one of three styles: function-like macros like + Q_ASSERT(), declaration-style macros like Q_PROPERTY(), and macros + without parentheses like Q_OBJECT. + + The \\macro comment must contain a \l {relates-command} + {\\relates} command that attaches the macro comment to a class, + header file, or namespace. Otherwise, the documentation will be + lost. Here are three example macro comments followed by what they + might look like in \c {qtglobal.html} or \c {qobject.html}: + + \code + / *! + \macro void Q_ASSERT(bool test) + \relates + + Prints a warning message containing the source code + file name and line number if \a test is false. + + ... + + \sa Q_ASSERT_X(), qFatal(), {Debugging Techniques} + * / + \endcode + + \quotation + \raw HTML +

void Q_ASSERT ( bool test )

+ \endraw + + Prints a warning message containing the source code + file name and line number if \a test is false. + + ... + + See also Q_ASSERT_X(), qFatal() and \l {Debugging Techniques}. + + \endquotation + + \code + / *! + \macro Q_PROPERTY(...) + \relates QObject + + This macro declares a QObject property. The syntax is: + + ... + + \sa {Qt's Property System} + * / + \endcode + + \quotation + \raw HTML +

Q_PROPERTY ( ... )

+ \endraw + + This macro declares a QObject property. The syntax is: + + ... + + See also \l {Qt's Property System}. + \endquotation + + \code + / *! + \macro Q_OBJECT + \relates QObject + + The Q_OBJECT macro must appear in the private section + of a class definition that declares its own signals and + slots, or that uses other services provided by Qt's + meta-object system. + + ... + + \sa {Meta-Object System}, {Signals and Slots}, {Qt's + Property System} + * / + \endcode + + \quotation + \raw HTML +

Q_OBJECT

+ \endraw + + The Q_OBJECT macro must appear in the private section + of a class definition that declares its own signals and + slots or that uses other services provided by Qt's + meta-object system. + + ... + + See also \l {Meta-Object System}, \l {Signals & + Slots} and \l {Qt's Property System}. + \endquotation + + \target module-command + \section1 \\module + + The \\module creates a page that lists the classes belonging to + the module specified by the command's argument. A class included + in the module by including the \l {inmodule-command} {\\inmodule} + command in the \\class comment. + + The \\module command is typically followed by a \l {title-command} + {\\title} and a \l {brief-command} {\\brief} command. Each class + is listed as a link to the class reference page followed by the + text from the class's \l {brief-command} {\\brief} command. For + example: + + \code + / *! + \module QtNetwork + + \title Qt Network Module + + \brief Contains classes for writing TCP/IP clients and servers. + + The network module provides classes to make network + programming easier and portable. It offers both + high-level classes such as QNetworkAccessManager that + implements application-level protocols, and + lower-level classes such as QTcpSocket, QTcpServer, and + QUdpSocket. + * / + \endcode + + QDoc renders this in \c {qtnetwork.html} like this: + + \quotation + \raw HTML +

Qt Network Module

+ \endraw + + The Qt Network module offers classes that allow you to + write TCP/IP clients and servers.\l {module + details} {More...} + + \raw HTML +

+ + + + + + + + + +
+ QAbstractSocket + + The base functionality common to all socket types +
......
+ +


+ \endraw + + \target module details + + \raw HTML +

Detailed Description

+ +

+ The Qt Network module offers classes that allow you to + write TCP/IP clients and servers. +

+ +

+ The network module provides classes to make network + programming easier and portable. It offers both + high-level classes such as QNetworkAccessManager that + implements application-level protocols, and + lower-level classes such as QTcpSocket, QTcpServer, and + QUdpSocket. +

+ \endraw + + ... + + \endquotation + + The \l {noautolist-command} {\\noautolist} command can be used here + to omit the automatically generated list of classes at the end. + + See also \l {inmodule-command} {\\inmodule} + + \target namespace-command + \section1 \\namespace + + The \\namespace command is for documenting the contents of the C++ + namespace named as its argument. The reference page QDoc generates + for a namespace is similar to the reference page it generates for a + C++ class. + + \code + / *! + \namespace Qt + + \brief Contains miscellaneous identifiers used throughout the Qt library. + * / + \endcode + + QDoc renders this in \c{qt.html} like this: + + \quotation + \raw HTML +

Qt Namespace

+

The Qt namespace contains miscellaneous + identifiers used throughout the Qt library. + More... +

+ +
#include <Qt>
+ + + +

Types

+
+
+ \endraw + + \target name + + \raw HTML +

Detailed Description

+

Contains miscellaneous identifiers + used throughout the Qt library.

+ \endraw + + ... + \endquotation + + Note that in C++, a particular namespace can be used in more + than one module, but when C++ elements from different modules + are declared in the same namespace, the namespace itself must + be documented in one module only. For example, namespace Qt in + the example above contains types and functions from both QtCore + and QtGui, but it is documented with the \\namespace command + only in QtCore. + + \target page-command + \section1 \\page + + The \\page command is for creating a stand-alone documentation + page. The argument can consist of two parts separated by a + space. The first part is the name of the file where QDoc should + store the page. The second part, if present, is a word that + specifies the page type. Currently, the second part can be one of + the following list of words: + + \list + + \li api - This is the type of page used for C++ class references and + QML type references. You should never use this one for the pages + you write, because this one is reserved for QDoc. + + \li attribution - A page describing (code) attributions. + + \li example - A page that describes a working example. + + \li faq - A frequently asked question. + + \li howto - A user guide on how to use some components of the + software. + + \li overview - For text pages that provide an overview of some + important subject. + + \li tutorial - For text pages that are part of a tutorial. + + \endlist + + The page title is set using the \l {title-command} {\\title} + command. + + \code + / *! + \page aboutqt.html + + \title About Qt + + Qt is a C++ toolkit for cross-platform GUI + application development. Qt provides single-source + portability across Microsoft Windows, macOS, Linux, + and all major commercial Unix variants. + + Qt provides application developers with all the + functionality needed to build applications with + state-of-the-art graphical user interfaces. Qt is fully + object-oriented, easily extensible, and allows true + component programming. + + ... + * / + \endcode + + QDoc renders this page in \c {aboutqt.html}. + + \target property-command + \section1 \\property + + The \\property command is for documenting a Qt property. The + argument is the full property name. + + A property is defined using the Q_PROPERTY() macro. The macro + takes as arguments the property's name and its set, reset and get + functions. + + \code + Q_PROPERTY(QString state READ state WRITE setState) + \endcode + + The set, reset and get functions don't need to be documented, + documenting the property is sufficient. QDoc will generate a list + of the access function that will appear in the property + documentation which in turn will be located in the documentation + of the class that defines the property. + + The \\property command comment typically includes a \l + {brief-command} {\\brief} command. For properties the \l + {brief-command} {\\brief} command's argument is a sentence + fragment that will be included in a one line description of the + property. The command follows the same rules for the \l + {brief-property} {description} as the \l {variable-command} + {\\variable} command. + + \code + / *! + \property QPushButton::flat + \brief Whether the border is disabled. + + This property's default is false. + * / + \endcode + + QDoc includes this in \c {qpushbutton.html} like this: + + \quotation + \raw HTML +

flat : bool

+ \endraw + + This property holds whether the border is disabled. + + This property's default is false. + + Access functions: + + \list + \li \b { bool isFlat () const} + \li \b { void setFlat ( bool )} + \endlist + + \endquotation + + \code + / *! + \property QWidget::width + \brief The width of the widget excluding any window frame. + + See the \l {Window Geometry} documentation for an + overview of window geometry. + + \sa geometry, height, size + * / + \endcode + + QDoc includes this in \c {qwidget.html} like this: + + \quotation + \raw HTML +

width : const int

+ \endraw + + This property holds the width of the widget excluding + any window frame. + + See the \l {Window Geometry} documentation for an + overview of window geometry. + + Access functions: + + \list + \li \b { int width () const} + \endlist + + See also \l{QWidget::geometry} {geometry}, + \l{QWidget::height} {height}, and \l{QWidget::size} {size}. + \endquotation + + \target qmlattachedproperty-command + \section1 \\qmlattachedproperty + + The \\qmlattachedproperty command is for documenting a QML + property that will be attached to some QML type. See + \l{http://doc.qt.io/qt-5/qtqml-syntax-objectattributes.html#attached-properties-and-attached-signal-handlers} + {Attached Properties}. The argument is the rest of the line. The + argument text should be the property type, followed by the QML + element name where the property is being declared, the \c{::} + qualifier, and finally the property name. If we have a QML + attached property named \c isCurrentItem in QML \c ListView, + and the property has type \c {bool}, the \\qmlattachedproperty for + it would look like this: + + \code + / *! + \qmlattachedproperty bool ListView::isCurrentItem + This attached property is \c true if this delegate is the current + item; otherwise false. + + It is attached to each instance of the delegate. + + This property may be used to adjust the appearance of the current + item, for example: + + \snippet doc/src/snippets/declarative/listview/listview.qml isCurrentItem + * / + \endcode + + QDoc includes this attached property on the QML reference page for the + \l{http://doc.qt.io/qt-5/qml-qtquick-listview.html#isCurrentItem-attached-prop} + {ListView} element. + + \target qmlattachedsignal-command + \section1 \\qmlattachedsignal + + The \\qmlattachedsignal command is for documenting an attachable + \l{Signal and Handler Event System}{signal}. The \\qmlattachedsignal + command is used just like the \l{qmlsignal-command} {\\qmlsignal} command. + + The argument is the rest of the line. It should be the name of the + QML type where the signal is declared, the \c{::} + qualifier, and finally the signal name. For example, a QML + attached signal named \c add() in the \c GridView + element is documented like this: + + \code + / *! + \qmlattachedsignal GridView::add() + This attached signal is emitted immediately after an item is added to the view. + * / + \endcode + + QDoc includes this documentation on the QML reference page for the + \l GridView element. + + \target qmlvaluetype-command + \section1 \\qmlvaluetype + + The \\qmlvaluetype command is for documenting a value type for QML. + The argument is the type name. The type must be included in the + QML value types group using the \l{ingroup-command}{\\ingroup} + command as shown below. This will cause QDoc to include the + documentation for the type on the + \l{http://doc.qt.io/qt-5/qtqml-typesystem-valuetypes.html} + {QML Value Types} page. The \l{brief-command} {\\brief} command + is also required, because it appears on the + \l{http://doc.qt.io/qt-5/qtqml-typesystem-valuetypes.html} + {QML Value Types} page as well. + + \code + / *! + \qmlvaluetype int + \ingroup qmlvaluetypes + + \brief An integer is a whole number, for example 0, 10, or -20. + + An integer is a whole number, e.g. 0, 10, or -20. The possible + \c int values range from around -2000000000 to around + 2000000000, although most elements will only accept a reduced + range (which they mention in their documentation). + + Example: + \qml + Item { width: 100; height: 200 } + \endqml + + \sa {QML Value Types} + * / + \endcode + + QDoc outputs this as \l{http://doc.qt.io/qt-5/qml-int.html} + {qml-int.html}. + + \target qmlclass-command + \section1 \\qmlclass + + This command is deprecated. Use \l{qmltype-command} {\\qmltype} + instead. + + The \\qmlclass command is for documenting a QML type that is + instantiated by a C++ class. The command has two arguments. The + first argument is the name of the QML type. The second argument + is the name of the C++ class that instantiates the QML type. + + \code + / *! + \qmlclass Transform QGraphicsTransform + \ingroup qml-transform-elements + \since 4.7 + \brief Provides a way of building advanced transformations on Items. + + The Transform element is a base type which cannot be + instantiated directly. The following concrete Transform types + are available: + + \list + \li \l Rotation + \li \l Scale + \li \l Translate + \endlist + + The Transform elements let you create and control advanced + transformations that can be configured independently using + specialized properties. + + You can assign any number of Transform elements to an \l + Item. Each Transform is applied in order, one at a time. + + * / + \endcode + + This example generates the + \l {https://doc.qt.io/qt-5/qml-qtquick-transform.html} {QML Transform} + page. The \\qmlclass comment should include the \l + {since-command} {\\since} command, because all QML types are + new. It should also include the \l{brief-command} {\\brief} + command. If a type is a member of a group of QML + types, it should also include one or more \l{ingroup-command} + {\\ingroup} commands. + + \target qmlmethod-command + \section1 \\qmlmethod + + The \\qmlmethod command is for documenting a QML method. The + argument is the complete method signature, including return + type and parameter names and types. + + \code + / *! + \qmlmethod void TextInput::select(int start, int end) + + Causes the text from \a start to \a end to be selected. + + If either start or end is out of range, the selection is not changed. + + After having called this, selectionStart will become the lesser, and + selectionEnd the greater (regardless of the order passed to this method). + + \sa selectionStart, selectionEnd + * / + \endcode + + QDoc includes this documentation on the element reference page for the + \l{http://doc.qt.io/qt-5/qml-qtquick-textinput.html#select-method} + {TextInput} element. + + \target qmltype-command + \section1 \\qmltype + + The \\qmltype command is for documenting a QML type. The command + has one argument, which is the name of the QML type. + + If the QML type is instantiated by a C++ class, that class must be + specified using the \l{instantiates-command} {\\instantiates} + context command. + + \code + / *! + \qmltype Transform + \instantiates QGraphicsTransform + \inqmlmodule QtQuick + + \brief Provides a way to build advanced transformations on Items. + + The Transform element is a base type which cannot be + instantiated directly. + * / + \endcode + + Here, the \e{\\qmltype} comment includes \l{instantiates-command} + {\\instantiates} to specify that a Transform is instantiated by + the C++ class QGraphicsTransform. A \\qmltype comment should + always include a \l {since-command} {\\since} command, because all + QML types are new. It should also include a \l{brief-command} + {\\brief} description. If a QML type is a member of a QML type group, + the \\qmltype comment should include one or more \l{ingroup-command} + {\\ingroup} commands. + + \target qmlproperty-command + \section1 \\qmlproperty + + The \\qmlproperty command is for documenting a QML property. The + argument is the rest of the line. The argument text should be the + property type, followed by the QML type name, the \c{::} + qualifier, and finally the property name. If we have a QML + property named \c x in QML type \c Translate, and the property + has type \c {real}, the \\qmlproperty for it would look like this: + + \code + / *! + \qmlproperty real Translate::x + + The translation along the X axis. + * / + \endcode + + QDoc includes this QML property on the QML reference page for the + \l {http://doc.qt.io/qt-5/qml-qtquick-translate.html} {Translate} + element. + + If the QML property is of enumeration type, or it holds a bit-wise + combination of flags, the \l{value-command}{\\value} command can + be used to document the acceptable values. + + \target qmlsignal-command + \section1 \\qmlsignal + + The \\qmlsignal command is for documenting a QML signal. + The argument is the rest of the line. The arguments should be: the QML type + where the signal is declared, the \c{::} qualifier, and finally the signal + name. If we have a QML signal named \c clicked(), the documentation for it + would look like this: + + \code + / *! + \qmlsignal QtQuick::MouseArea::clicked(MouseEvent mouse) + This signal is emitted when there is a click. A click is defined as a + press followed by a release, both inside the MouseArea. + * / + \endcode + + QDoc includes this documentation on the QML reference page for the + \l{http://doc.qt.io/qt-5/qml-qtquick-mousearea.html#clicked-signal} + {MouseArea} element. + + \target qmlmodule-command + \section1 \\qmlmodule + + Use the \c{\\qmlmodule} command to create a \c QML module page. A QML + module page is a collection of QML types or any related material. The + command takes an optional \c number argument, and is similar + to the \l{group-command}. + + A QML class can be associated with a module by adding the + \l{inqmlmodule-command}{\\inqmlmodule} command to the comment-block that + documents the class. You can link to any member of a QML module using the + module name and two colons (\c{::}) prefix. + + \code + \beginqdoc + A link to the TabWidget of the UI Component is \l {UIComponent::TabWidget}. + \endqdoc + \endcode + + QDoc generates a page for the module that lists all the members of the + module. + + \code + \qmlmodule ClickableComponents + + This is a list of the Clickable Components set. A Clickable component + responds to a \c clicked() event. + \endcode + + \target inqmlmodule-command + \section1 \\inqmlmodule + + A QML class may belong to a \l{qmlmodule-command}{QML module} by inserting + the \l{inqmlmodule-command}{\\inqmlmodule} command as a topic command, with + the module name (without a version number) as the only argument. Every + member of a group must be linked to using the module name and two colons + (\c{::}). + + \code + \qmltype ClickableButton + \inqmlmodule ClickableComponents + + A clickable button that responds to the \c click() event. + \endcode + + To link to the \c ClickableButton, use the + \c{\l ClickableComponents::ClickableButton} format. + + The \l {noautolist-command} {\\noautolist} command can be used here + to omit the automatically generated list of types at the end. + + \target instantiates-command + \section1 \\instantiates + + The \\instantiates command is used in the \l{qmltype-command} {QML + type} comment of an elemental QML type to specify the name of the + C++ class that instantiates the QML type. + + If the QML type is not instantiated by a C++ class, this command + is not used. + + \code + / *! + \qmltype Transform + \instantiates QGraphicsTransform + \inqmlmodule QtQuick + + \brief Provides a way to build advanced transformations on Items. + + The Transform element is a base type which cannot be + instantiated directly. + * / + \endcode + + Here, the \e{\\qmltype} comment includes \l{instantiates-command} + {\\instantiates} to specify that a Transform is instantiated by + the C++ class QGraphicsTransform. + + \target typealias-command + \section1 \\typealias + + The \\typealias command is similar to \l {typedef-command}{\\typedef}, + but specific to documenting a C++ type alias: + + \code + class Foo + { + public: + using ptr = void*; + // ... + } + \endcode + + This can be documented as + + \badcode * + /\1! + \typealias Foo::ptr + \1/ + \endcode + + QDoc will automatically generate a sentence in the documentation describing + the alias: + + \quotation + This is a type alias for \c {void*}. + \endquotation + + The \\typealias command was introduced in QDoc 5.15. + + See also \l {typedef-command}{\\typedef}. + + \target typedef-command + \section1 \\typedef + + The \\typedef command is for documenting a C++ typedef. The + argument is the name of the typedef. The documentation for + the typedef will be included in the reference documentation + for the class, namespace, or header file in which the typedef + is declared. To relate the \\typedef to a class, namespace, or + header file, the \\typedef comment must contain a + \l {relates-command} {\\relates} command. + + \code + / *! + \typedef QObjectList + \relates QObject + + Synonym for QList. + * / + \endcode + + QDoc includes this in \c {qobject.html} as: + + \quotation + \raw HTML +

typedef QObjectList

+ \endraw + + Synonym for QList. + \endquotation + + Another, although more rare, example: + + \code + / *! + \typedef QMsgHandler + \relates QtGlobal + + This is a typedef for a pointer to a function with the + following signature: + + \code + void myMsgHandler(QtMsgType, const char *); + \ endcode + + \sa QtMsgType, qInstallMessageHandler() + * / + \endcode + + QDoc includes this in \c {qtglobal.html} as: + + \quotation + \raw HTML +

typedef QtMsgHandler

+ \endraw + + This is a typedef for a pointer to a function with the + following signature: + + \raw HTML + +
    void myMsgHandler(QtMsgType, const char *);
+
+ \endraw + + See also QtMsgType and qInstallMessageHandler(). + \endquotation + + Other typedefs are located on the reference page for the class + that defines them. + + \code + / *! + \typedef QList::Iterator + + Qt-style synonym for QList::iterator. + * / + \endcode + + QDoc includes this one on the reference page for class QList as: + + \quotation + \raw HTML +

typedef QList::Iterator

+ \endraw + + Qt-style synonym for QList::iterator. + \endquotation + + See also \l {typealias-command}{\\typealias}. + + \target variable-command + \section1 \\variable + + The \\variable command is for documenting a class member variable + or a constant. The argument is the variable or constant name. The + \\variable command comment includes a \l {brief-command} {\\brief} + command. QDoc generates the documentation based on the text from + \\brief command. + + The documentation will be located in the in the associated class, + header file, or namespace documentation. + + In case of a member variable: + + \code + / *! + \variable QStyleOption::palette + \brief The palette that should be used when painting + the control + * / + \endcode + + QDoc includes this in qstyleoption.html as: + + \quotation + \raw HTML +

+ + QPalette + + QStyleOption::palette +

+ \endraw + + This variable holds the palette that should be used + when painting the control. + \endquotation + + You can also document constants with the \\variable command. For + example, suppose you have the \c Type and \c UserType constants in + the QTreeWidgetItem class: + + \code + enum { Type = 0, UserType = 1000 }; + \endcode + + For these, the \\variable command can be used this way: + + \code + / *! + \variable QTreeWidgetItem::Type + + The default type for tree widget items. + + \sa UserType, type() + * / + \endcode + \code + / *! + \variable QTreeWidgetItem::UserType + + The minimum value for custom types. Values below + UserType are reserved by Qt. + + \sa Type, type() + * / + \endcode + + QDoc includes these in qtreewidget.html as: + + \quotation + \raw HTML +

+ const int QTreeWidgetItem::Type +

+ \endraw + + The default type for tree widget items. + + See also \l {QTreeWidgetItem::UserType} {UserType} and \l + {QTreeWidgetItem::type()} {type()}. + + \raw HTML +

+ const int QTreeWidgetItem::UserType +

+ \endraw + + The minimum value for custom types. Values below + UserType are reserved by Qt. + + See also \l {QTreeWidgetItem::Type} {Type} and + \l{QTreeWidgetItem::type()} {type()}. + + \endquotation +*/ diff --git a/src/qdoc/doc/qdoc-manual.qdoc b/src/qdoc/doc/qdoc-manual.qdoc new file mode 100644 index 0000000..8983244 --- /dev/null +++ b/src/qdoc/doc/qdoc-manual.qdoc @@ -0,0 +1,49 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \page qdoc-index.html + \nextpage Introduction to QDoc + + \title QDoc Manual + + \list + \li \l {Introduction to QDoc} + \li \l {Getting Started with QDoc} + \li \l {Command Index} + \li \l {Topic Commands} + \li \l {Context Commands} + \list + \li \l {Document Navigation} + \li \l {Status} + \li \l {Thread Support} + \li \l {Relating Things} + \li \l {Grouping Things} + \li \l {Naming Things} + \endlist + \li \l{Markup Commands} + \list + \li \l {Text Markup} + \li \l {Document Structure} + \li \l {Including Code Inline} + \li \l {Including External Code} + \li \l {Creating Links} + \li \l {Including Images} + \li \l {Tables and Lists} + \li \l {Special Content} + \li \l {Miscellaneous} + \endlist + \li \l {The QDoc Configuration File} + \list + \li \l {Generic Configuration Variables} + \li \l {Creating Help Project Files} + \li \l {Format-specific Configuration Variables} + \li \l {Supporting Derived Projects} + \li \l {Example Manifest Files} + \li \l {qtgui.qdocconf} + \li \l {minimum.qdocconf} + \endlist + \li \l {How to Resolve QDoc Warnings} + \endlist +*/ + diff --git a/src/qdoc/doc/qdoc-minimum-qdocconf.qdoc b/src/qdoc/doc/qdoc-minimum-qdocconf.qdoc new file mode 100644 index 0000000..f2965db --- /dev/null +++ b/src/qdoc/doc/qdoc-minimum-qdocconf.qdoc @@ -0,0 +1,65 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only +/*! +\page qdoc-minimum-qdocconf.html +\keyword minimal-qdocconf +\title A Minimal qdocconf File + +\brief Describes a minimal .qdocconf file + +Below you will find the full contents of qtgui.qdocconf. The subsequent section +will discuss every statement in the qdocconf file. + +Each line from the qdocconf file is first quoted. Below each statement you will +find the meaning. + +\badcode + include(compat.qdocconf) + outputdir = html + headerdirs = . + sourcedirs = . + exampledirs = . + imagedirs = ./images +\endcode + +\b Notes: + +\badcode + include(compat.qdocconf) +\endcode + +For compatibility with older versions of QDoc, it is recommended +to include compat.qdocconf. + +\code + outputdir = html +\endcode + +QDoc will put the documentation generated in the html directory. + +\badcode + headerdirs = . +\endcode + +The header file associated with the \e .cpp source files can be found in the +current directory. + +\badcode + sourcedirs = . +\endcode + +The current directory is the directory containing the source files: the \e .cpp +and \e .qdoc files used in the documentation. + +\badcode + exampledirs = . +\endcode + +The source code of the example files can be found in the current directory. + +\badcode + imagedirs = ./images +\endcode + +The image files can be found in the underlying directory \c images. +*/ diff --git a/src/qdoc/doc/qdoc-warnings.qdoc b/src/qdoc/doc/qdoc-warnings.qdoc new file mode 100644 index 0000000..c3acb51 --- /dev/null +++ b/src/qdoc/doc/qdoc-warnings.qdoc @@ -0,0 +1,796 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \page qdoc-warnings.html + \previouspage Categories of Documentation + + \title How to Resolve QDoc Warnings + + QDoc may issue warnings when generating your documentation set. + This section describes what these warnings mean and how to resolve + them. This document does not describe warnings generated by Clang. + + \section1 Can't link to + + QDoc issues this warning when one part of the documentation + (identified in the warning message) tries to refer to another, + but doesn't correctly specify that other, the target of the link. + This may arise because the reference to it is mistyped or because + the target has changed name (for a function or type) or title + (for another section). + + Search the source code for that particular link target. If you get no + results, gradually make the search less specific until you find a match. + + If the link target looks like the name of a type or function, + this could also be due to: + + \list + \li The name (or, for functions, where specified, signature) used + where it is documented not matching the name used in its + declaration. + \li The link target being marked as \l {internal-command}{\\internal} when the linking + text was not. + \endlist + + \section1 Cannot find snippets file to quote from + + QDoc issues this warning if it is unable to find the file named + after a \l {snippet-command}{\\snippet} or \l {quotefromfile-command}{\\quotefromfile} command. + + Some useful steps for correcting this: + + \list + \li Check if the snippet file name is correct. QDoc appends the + snippet file name to each of the directories given in the + search path, to get a path-name for a candidate file to look + for. It produces this error when none of these candidates exist. + \li Check the search path for snippets, given by the \c exampledirs + configuration variable in the \c{*.qdocconf} file. You may need + to add an entry to this path, or correct an existing entry. + \li Check if the snippet file exists, or if it has been moved, renamed + or removed, which may happen when there are changes to the source + code that QDoc tries to quote from. + \endlist + + \section1 Unexpected \\snippet + + QDoc issues this warning if it is unable to locate the snippet file + quoted in a \l {snippet-command}{\\snippet} command. + + \section1 Undocumented return value + + For functions whose return-type is not void, QDoc checks if the return + value is documented. This warning is issued if the documentation for a + function or method doesn't contain a word starting with "return". + + \section1 Undocumented parameter + + QDoc requires the documentation of a function or method to describe + every parameter. It recognizes this by each parameter name (as + specified where the function or method is declared in a header file) + appearing after a \l {a-command}{\\a} command. + + \section1 No such parameter + + QDoc issues this warning when the parameter name given after an + \l{a-command}{\\a} command does not match any of the parameters named + in the header-file's declaration of the function or method being + documented. + + \section1 Unknown macro + + QDoc issues this warning when it sees a backslash, \c{\}, followed + by a token it does not recognize as the name of a \l {macro-variable}{built-in command} + or a \l {alias-variable}{user-defined macro}. When quoting code + that contains character escape sequences, you should enclose the + code in \\c{...} to prevent this warning against the escape sequences. + + \section1 Clang couldn't find function when parsing \\fn + + When Clang parses a function statement after \l {fn-command}{\\fn}, it checks + this against the declaration in the header file. If Clang + discovers discrepancies, it issues this warning message. + + \section1 C++ class not found: \\instantiates + + If you describe a QML type, you may specify the class it instantiates. + Refer to the \l{instantiates-command}{\\instantiates} command in the + \l {QDoc manual}. + + QDoc issues this warning if it failed to locate the documentation for the + C++ class . Either the class is undocumented, it is marked + \l {internal-command}{\\internal}, or it originates from another + documentation module and QDoc did not locate an index file for the + corresponding dependency. + + See also \l {depends-variable}{depends}. + + \section1 Cannot tie this documentation to anything + + QDoc found a \beginqdoc ... \endqdoc comment, with no \l{Topic Commands}{topic command}, that was + not immediately followed by a class, function or property definition. + It thus does not know what the comment documents. + + \section1 This qdoc comment contains no topic command (e.g., \\module, \\page) + + If a QDoc comment doesn't contain a \l {Topic Commands}{topic command}, QDoc does + not know what the comment documents, and issues this warning. + Very similar to \l {Cannot tie this documentation to anything}, but + specific to comments that are not in C++ or QML files. + + \section1 documented more than once + + QDoc issues this warning when it finds two comments that + document the same item. The location of the previously seen + comment is provided in warning details. + + For example, you see this warning when a function has a documentation + comment preceding its definition, and a separate \\fn comment + elsewhere. + + \section1 Namespace documented more than once + + This warning means that a documentation set contains two comments + containing \l {namespace-command}{\\namespace} commands with the same + argument, . + + \section1 is documented, but namespace is not documented in any module + + The documentation for \e {} was found, but \e{} is declared + under a namespace that is either undocumented or QDoc was unable to + locate the documentation for it. + + This can be resolved by either documenting \e{}, or if it is + already documented in another module, ensure that this module has + a dependency to it. + + See also \l {depends-variable}{depends} and {indexes-variable}{indexes}. + + \section1 Clang couldn't find function when parsing \\fn + + When parsing a \l {fn-command}{\\fn} statement, Clang compares this with the + function declaration in the header file. If the signature differs + Clang issues this warning. + + \note + \list + \li A member of a class or namespace needs to include the class or namespace + prefix on the member name. + \li A \\fn with no return type matches, regardless of the actual return + type, but if it specifies an incorrect return type, it doesn't. + \li Differences in \\fn's parameter names don't preclude matching, although + the \l {a-command}{\\a} commands in the comment must use the names in the declaration. + + \endlist + + \section1 Has no \\inmodule command + + QDoc issues this warning if the QDoc comments do not relate + a class, namespace, or headerfile to a module with the + \l{inmodule-command}{\\inmodule} command. + + If the QDoc comment describes an entity that's not a member of + some other entity (typically a namespace or class), it should use + either \l {relates-command}{\\relates} or \l {inmodule-command}{\\inmodule} + to associate it with its broader context. This warning is raised + if it does not. + + \section1 Cannot find specified with \\ in any header file + + This means that QDoc cannot find a declaration of in any + header file, but has found a comment that claims to document it. + + An example: + \badcode + Cannot find 'Color::Red' specified with '\enum' in any header file. + \endcode + + A documentation comment claims to describe an enum, but QDoc didn't + find a definition of that enum in a header file. + + This may also be due to: + + \list + \li a typo in or + \li a missing namespace-or-class prefix + \li having moved to another namespace or class + \endlist + + \section1 Unrecognizable QML module/component qualifier for + + A parameter passed to \l {qmlproperty-command}{\\qmlproperty} or + \l {qmlmethod-command}{\\qmlmethod} contains a combination of + qmlModule::qmlType::identifier that is not defined anywhere. + + Example: + \badcode + Unrecognizable QML module/component qualifier for real QtQuick::DragHandler::DragAxis::minimum + \endcode + + DragHandler doesn't have a property called DragAxis. + + \section1 Missing property type for + + A declaration of a \l {qmlproperty-command}{\\qmlproperty} is missing its property type. + + The \\qmlproperty command expects to be followed by the property type, then the + fully-qualified name of the property (i.e. the name ::-joined after the name of the + class it belongs to). + + Incorrect: + \badcode + \qmlproperty MyWidget::count + \endcode + + Correct: + \badcode + \qmlproperty int MyWidget::count + \endcode + + \section1 QML property documented multiple times: + + QDoc uses this warning when it finds two QDoc comments that document + the same QML property, either by appearing just before its definition, + or using the \l {qmlproperty-command}{\\qmlproperty} command. + + \section1 Command not allowed with QML/JS property commands + + Example: + + \badcode + \qmlproperty real QtQuick.Controls::RangeSlider::first.value + \qmlproperty real QtQuick.Controls::RangeSlider::first.position + \qmlproperty real QtQuick.Controls::RangeSlider::first.visualPosition + \qmlsignal void QtQuick.Controls::RangeSlider::first.moved() + \qmlsignal void QtQuick.Controls::RangeSlider::second.moved() + \endcode + + Error message: + + \badcode + Command '\\qmlsignal' not allowed with QML/JS property commands + \endcode + + This warning is specific to property group documentation. QDoc + allows multiple (qml|js)property or (qml|js)attachedproperty topic commands + in a single documentation comment to document a property group + where the last element in the path is .. Any other topic + commands triggers this warning. + + \section1 Cannot find base function for in + + QDoc produces this warning if \\reimp is used to document a method, + as an override of a virtual method, when no base class has a virtual + method with the given name and signature. This may happen because + the method it was written to override has changed its signature, or is + no longer virtual. + + \section1 Illegal \\reimp; no documented virtual function for + + Qdoc tries to create a link to the function that this one reimplements, + but it could not find the link target, likely because that + function is not documented. This can also arise if no base class + has a virtual method with this name and signature; which might + arise due to a renaming, a change in signature or the base no + longer declaring it virtual. + + \section1 tries to inherit itself + + The \l {inherits-command}{\\inherits} command is used to document that a QMl type + inherits some other QML type. This warning is issued if that other + QML type is the same as the QML type documented. + + Example: + + \badcode + \qmltype Foo + \inherits Foo + \endcode + + \section1 \\instantiates is only allowed in \\qmltype + + The \l{instantiates-command}{\\instantiates} command can only be used in a QDoc comment + that documents a QML type. + + \section1 All properties in a group must belong to the same type: + + When documenting QML property groups, all properties listed in + the comment block must belong to the same QML type. + + \section1 Cannot find project file for example + + In the example's source directory, QDoc expects to find a project + file named \c{CMakeLists.txt}, or a file with a \c{.pro}, \c{.qmlproject}, or + \c{.pyproject} extension where the base name matches that of the example + directory. For example, \c {examples/mymodule/helloworld/helloworld.pro}. + + \section1 Command name cannot stand for both and + + QDoc issues this warning when one name is \l {alias-variable}{aliased} to more + than one command when reading the configuration. + + \section1 Cannot open file to quote from: + + The search path for is defined by the following + variables in the \c{.qdocconf} file: \c{sources}, \c{sourcedirs}, + and \c{exampledirs}. + + QDoc failed to find a file named in a command (such as + \l {quotefromfile-command}{\\quotefromfile}, + \l {snippet-command}{\\snippet}, \l {include-command}{\\include}) + that tells it to retrieve content from the named file. It searches + each directory named in the search path. If there is no file with + this name in any of those directories, or the file is found but not + readable, QDoc issues this warning. Check that the combination of + search path and is correctly spelled, and that you have + read permissions for the file. + + \note may include a directory name prefix; the whole + is appended to each directory in the search path. + + \sa {Cannot find qdoc include file } + + \section1 Missing format name after \\raw + + The \l {raw-command}{\\raw} command and the corresponding \l {raw-command}{\\endraw} + command delimit a block of raw mark-up language code. The \\raw + command must be followed by the format name. For now, this can + only be HTML. + + \section1 Macro cannot have both format-specific and qdoc-syntax definitions + + A \l {macro-variable}{\\macro} that specifies an output format cannot also + have a generic definition. + + An example of a configuration that triggers this warning: + + \badcode + macro.gui = \b + macro.gui.HTML = "\1" + \endcode + + \section1 Unknown command + + When a QDoc comment uses a backslash followed by a token that is not + a QDoc built-in command and has not been defined as a custom command + using \l {alias-variable}{\\alias} or \l {macro-variable}{macro}, QDoc produces this + warning. Check the spelling of the command name and look to see if + your QDoc configuration has neglected to include whatever would have + defined it, if it is a custom command. + + This may also be produced due to code being quoted in the QDoc comment, + for example the author may have referred to the C string termination + character \c{'\0'} or one of the other C string escape sequences such + as \c{'\n'} without escaping the backslash. Escape the backslash + as \c{\} to include a literal backslash in the documentation, or + enclose the code fragment in \c{\c{...}}, which suppresses + interpretation of backslashes as introducing QDoc commands. + + \section1 Duplicate target name + + This means that there are two \l {target-command}{\\target} commands + with the same parameter. They should be unique. + This warning is followed by the warning "The previous + occurrence is here". + + \section1 Cannot find qdoc include file + + QDoc failed to find an include file named in a command. + QDoc searches each directory named in the search path. + If there is no file with this name in any of those directories, + or the file found in that search is not readable, QDoc issues + this warning. Check that the combination of search path and + is correctly spelled, and that you have read permissions + for the file. + + \note may include a directory name prefix; the whole + is appended to each directory in the search path. + + \sa {Cannot open file to quote from: } + + \section1 Cannot find in + + This means QDoc cannot find the identifier in the + \l{include-command}{\\include} or {snippet-command}{\\snippet} . + + \section1 Empty qdoc snippet in + + The snippet was found in the \l {snippet-command}{\\snippet} , but it is empty. + + \section1 Cannot nest commands + + This warning concerns formatting commands: bold, italic, + index, link, span, subscript, superscript, teletype, uicontrol, + underline. A formatting command cannot be used within the text + it applies to. An example of this: + + \badcode + There is \b{no \b{super-}bold}. + \encode + + \section1 Can't use in + + This warning is issued for commands that cannot be nested. + + Example: + \badcode + \list + \li \table + \row \li Hello \li Hi + \endtable + \endlist + \endcode + + Results in the QDoc warning "Can't use '\\table' in '\\list'". + + \section1 Missing before + + Some examples: + + \list + \li The \l {li-command}{\\li} command can only be used inside a \l {list-command}{\\list} + or a \l {row-command}{\\row} of a \l {table-command}{\\table}. + \li The \l {row-command}{\\row} and \l {header-command}{\\header} commands can only be + used within a \l {table-command}{\\table}. + \endlist + + \section1 Unexpected + + This warning is issued if, for example, you have an \l {list-command}{\\endlist} without + a preceding \l {list-command}{\\list}. It applies to all commands that come in pairs (e.g. + startFoo/endFoo). + + \section1 Missing comma in \\sa + + The titles listed for a \l {sa-command}{\\sa} command should be separated + from one another with commas. + + \section1 Macro does not have a default definition + + QDoc is attempting to expand a macro, and expects that macro to + have a default definition. Some macros may only have format-specific + definitions. + + Example: + \badcode + macro.pi.HTML = "π" # encodes the pi symbol for HTML output format + \endcode + + There are however instances where macro expansion requires a + format-independent macro. For example, you can have macros in + section titles, but they must have default definitions. + + \section1 Macro invoked with too few arguments (expected , got ) + + The given macro needs more parameters than it was given. See + the definition of the macro in the configuration for further + details. + + \section1 Unbalanced parentheses in + + Points to a '(' without a corresponding ')', or vice versa. + + \section1 No documentation for + + Example: + + \badcode + Warning "No documentation for QNativeInterface." + \endcode + + QDoc detects the declaration of namespace QNativeInterface in + a header file, but does not find a QDoc comment where that + namespace has been documented. + + \section1 No such enum item in + + Example: + + \badcode + Cannot find 'QSGMaterialRhiShader::RenderState::DirtyState' specified + with \enum in any header file. + \endcode + + QDoc issues this warning when it finds a \l{value-command}{\\value} directive in an + \l{enum-command}{\\enum} comment that names a value not found in the header file that declared + the enumerated type documented. + + \section1 Undocumented enum item in + + 's \l {value-command}{\\value} or \l {omitvalue-command}{\\omitvalue} entries + did not include one for \l {enum-command}{}, which is named in the + declaration of in the header file. + + \section1 Failed to find index: + + Example: + + \badcode + Failed to find index: path/to/QtCrator/appmanplugin/manual.index + \endcode + + In this case, it clearly means the indexes variable contains a + typo in the path of the index file. + + Incorrect: + \badcode + indexes += path/to/QtCrator/appmanplugin/manual.index + \endcode + + Correct: + \badcode + indexes += path/to/QtCreator/appmanplugin/manual.index + \endcode + + \section1 \\generatelist examplefiles can only be used with \\example topic command + + The command "\\generatelist examplefiles" can only be used in example + documentation (i.e., when the topic command is \\example). + + \section1 \\generatelist is empty + + Below a short overview of all possible arguments for \l {generatelist-command}{\\generatelist}: + \list + \li \\generatelist annotatedexamples + \li \\generatelist annotatedattributions + \li \\generatelist classes + \li \\generatelist classesbymodule + \li \\generatelist qmltypesbymodule + \li \\generatelist jstypesbymodule + \li \\generatelist examplesfiles + \li \\generatelist exampleimages + \li \\generatelist functionindex + \li \\generatelist legalese + \li \\generatelist overviews + \li \\generatelist attributions + \li \\generatelist related + \endlist + + QDoc issues this warning if you specify \c{\generatelist } + and the group does not contain any items, or if you specify + \c{\generatelist } and no item in the group + matches the pattern. + + \section1 \\generatelist no such group + + This warning issues if the argument to \l {generatelist-command}{\\generatelist} + is a non-existing group. + + Example: + + \code + \generatelist draganddrop + \endcode + + This statement generates a list of classes or QML types in the + draganddrop group. Classes or QML types are added to the + draganddrop group by the \c{\l {ingroup-command}{\ingroup} draganddrop} command in their + \l {class-command}{\\class} or \l {qmltype-command}{\\qmltype} comment. + + QDoc issues this warning message if no entity has + this \c{\ingroup draganddrop} statement. + + \section1 Missing image: + + The search path to the image is wrong, or the image file does not exist. + + \section1 Can't link to + + This can have a variety of causes: + + \list + \li The link target has not been defined with a QDoc topic command, + e.g. {title-command}{\\title} . + \li The contains a typo. + \li The document that contains that link target did not get compiled. + \li The document that contains that link target is in a module that is + not in the compilation path. + \li The link target is in another module, and a dependency to that + module was not set in the configuration or QDoc failed to locate + the index file for the dependency. + \endlist + + \section1 Could not resolve QML import statement for type + + QDoc issues this warning if you document a QML type, but omit + the \l{inqmlmodule-command}{\\inqmlmodule} command. + Example: + + \badcode + Could not resolve QML import statement for type 'ItemSelectionModel' + \encode + + Incorrect: + \badcode + \qmltype ItemSelectionModel + \instantiates QItemSelectionModel + \since 5.5 + \ingroup qtquick-models + \endcode + Correct: + \badcode + \qmltype ItemSelectionModel + \instantiates QItemSelectionModel + \inqmlmodule QtQml.Models + \since 5.5 + \ingroup qtquick-models + \endcode + + \section1 \\brief statement does not end with a full stop + + The argument to the \\brief command is a sentence, summarizing + the topic documented, so should end in a full stop. It should + also be brief. + + \section1 QtDeclarative not installed; cannot parse QML or JS + + QDoc issues this warning if it has been compiled without support + for QML/JS parsing. This should not happen unless you have a + custom build of QDoc. + + \section1 Invalid regular expression + + Some QDoc commands take regular expressions as parameters. QDoc + gives this warning when the text given as such a parameter is not + a valid regular expression, usually due to it containing characters + with special meanings in regular expressions, that should have been + escaped. + + Example: + + \badcode + notifications.qdoc:56: (qdoc) warning: Invalid regular expression '^})$' + \endcode + + \badcode + \quotefromfile webenginewidgets/notifications/data/index.html + \skipuntil resetPermission + \endcode + + Invalid regular expression: + \badcode + \printuntil /^})$/ + \endcode + + Valid regular expression: + \badcode + \printuntil /^\}\)$/ + \endcode + + + The \l {printuntil-command}{\\printuntil} command prints until it + meets a line consisting of only a right curly brace followed by a + right parenthesis. In this case, the curly brace and the parenthesis + need to be escaped because they have special meanings in regular + expressions. + + \section1 Multiple index files found for dependency : + Using as index file for dependency + + Multiple \c{-indexdir} paths were passed to QDoc as command line options, + and more than one contained an \c{.index} file that matches a dependency. + QDoc picks the one with the latest timestamp automatically. + + Typically, this warning indicates that there are build artifacts left + from a previous documentation build. + + \section1 Cannot locate index file for dependency + + Example: + + \badcode + "QMake" Cannot locate index file for dependency "activeqt" + \endcode + + The documentation project QMake could not locate activeqt.index + in any of the specified index directories. In this case, the + specified index directories are specified in qmake.qdocconf. + + \section1 Dependent modules specified, but no index directories were set. + + QDoc expected to see one or more -indexdir arguments on the command line. + Without them, QDoc cannot locate the index files of any dependencies + defined with the 'depends' configuration variable. + + \section1 Overrides a previous doc + + QDoc issues this warning when it finds two comments that appear to + describe the same entity. The location of the previously seen + comment is provided in warning details. + + \section1 Unrecognized list style + + \\list can take an optional argument: a single number or character + that modifies the list style. Refer to the {list-command}{\\list} + documentation for more details. If you use an argument that is + not recognized, QDoc issues this warning. + + \section1 Unable to parse QML snippet: at line , column + + QDoc comments can contain QML code. This code can be found in a snippet, + or in the QDoc comments delimited by \l {qml-command}{\\qml} and {endqml-command}{\\endqml}. + + Example: + + If there is a syntax error in the QML code, QDoc issues the warning + \badcode + Unable to parse QML snippet: Syntax error at line 97, column 42 + \endcode + + Snippets can also contain QML and also there the code is checked. If there is + for example a missing curly brace in the code, QDoc issues the warning + \badcode + Unable to parse QML snippet: Expected token '{' at line 63, column 52 + \endcode + + QDoc often fails to parse incomplete QML snippets; in these cases, + it's often OK to replace the \\qml ... \\endqml commands with + \\code ... \\endcode to suppress this warning. + + \section1 Command failed at end of file + + Example: + + \badcode + Command "\snippet (//! [2]) failed at end of file qmlbars/qml/qmlbars/main.qml". + \endcode + + In this case the warning means that the \l {snippet-command}{\\snippet} command did not find a second + label "\/\/! [2]" to mark the end of the snippet. It could also mean that it didn't + find any occurrence of that snippet tag in this snippet file. + + Another example: + + \badcode + Command '\skipto' failed at end of file 'styling/CMakeLists.txt". + \endcode + + The \l {skipto-command}{\\skipto} + moves the cursor to the next line containing + that pattern. If \\skipto doesn't find it, QDoc issues this warning. + + \section1 Failed to open for writing + + This warning clearly means it cannot open a file for writing, probably because + of a wrong path, or permission to write in a certain directory. + + \section1 This page title exists in more than one file + + The \l {title-command}{\\title} command sets the title for a page. + + \code + \page activeqt-server.html + \title Building ActiveX servers in Qt + \endcode + + QDoc issues this warning if a certain title is used in more than one page. + + + \section1 The content is too long + + QDoc uses a fixed-size buffer when tokenizing source files. If any single + token in the file has more characters than the maximum limit, QDoc issues + this warning. + + While QDoc continues parsing the file, only the part of the token that + fits into the buffer is considered, meaning that the output might be + mangled. + + To resolve this warning, the relevant content must be reduced in size, + either by splitting it, if possible, or by removing some of its parts. + + The maximum amount of characters for a single token is shown alongside + the warning, for example: + + \badcode + file.qdoc:71154: (qdoc) warning: The content is too long. + + [The maximum amount of characters for this content is 524288. + Consider splitting it or reducing its size.] + \endcode + + \note Since content that is too long is not parsed in full, QDoc may + issue warnings that are false positives. Resolve all warnings of this type + before fixing other warnings. +*/ diff --git a/src/qdoc/doc/qtgui-qdocconf.qdoc b/src/qdoc/doc/qtgui-qdocconf.qdoc new file mode 100644 index 0000000..b72f972 --- /dev/null +++ b/src/qdoc/doc/qtgui-qdocconf.qdoc @@ -0,0 +1,260 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + +\page qtgui-qdocconf.html +\title qtgui.qdocconf with Comments + +\brief A walkthrough of a typical qdocconf file. + +This document goes through a typical Qt 5 qdocconf file. The contents is taken from +Qt GUI's \e qtgui.qdocconf file. + +Below you will find the full contents of \c qtgui.qdocconf. The subsequent section will discuss +every statement in the qdocconf file. + +\badcode + include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) + + project = QtGui + description = Qt GUI Reference Documentation + url = http://doc.qt.io/qt + version = $QT_VERSION + + examplesinstallpath = gui + + qhp.projects = QtGui + + qhp.QtGui.file = qtgui.qhp + qhp.QtGui.namespace = org.qt-project.qtgui.$QT_VERSION_TAG + qhp.QtGui.virtualFolder = qtgui + qhp.QtGui.indexTitle = Qt GUI + qhp.QtGui.indexRoot = + + qhp.QtGui.subprojects = classes + qhp.QtGui.subprojects.classes.title = C++ Classes + qhp.QtGui.subprojects.classes.indexTitle = Qt GUI C++ Classes + qhp.QtGui.subprojects.classes.selectors = class headerfile + qhp.QtGui.subprojects.classes.sortPages = true + + tagfile = qtgui.tags + + depends += \ + qtcore \ + qtnetwork \ + qtopengl \ + qtsvg \ + qtqml \ + qtquick \ + qtwidgets \ + qtdoc + + headerdirs += .. + + sourcedirs += .. \ + ../../../examples/gui/doc/src + + excludedirs = ../../../examples/gui/doc/src/tmp + + exampledirs += ../../../examples/gui \ + snippets + + imagedirs += images \ + ../../../examples/gui/doc/images \ + ../../../doc/src/images +\endcode + +\title Qtgui.qdocconf with notes + +\badcode + include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) +\endcode + +QDoc inherits the default templates, macros, and settings from the directory +specified from the \c $QT_INSTALL_DOCS variable. \c qmake prints the value of +the variable. +\badcode + qmake -query +\endcode + +\b {See also}: \l {include}. + +\badcode + project = QtGui +\endcode + +The \c project variable sets the name of the QDoc build. This name is also +used to form the index file, which, in this case, will be \e qtgui.index. The +name of the index file doesn't adopt the uppercase letters of the project name. + +\b {See also}: \l {project}. + +\badcode + description = Qt GUI Reference Documentation +\endcode + +A short description of the project concerned. + +\badcode + url = http://doc.qt.io/qt-5 +\endcode + +The \c url variable holds the base url of the project. + +The URL is stored in the generated index file for the project. +QDoc will use this as the base URL when constructing external links +to content listed in the index. + +\note QDoc omits this value when the -installdir argument +is specified when running QDoc. + +\badcode + examplesinstallpath = gui +\endcode + +The \c examplesinstallpath variable indicates that the examples will be +installed in the \e gui directory under the parent examples directory +(for Qt, this is $QT_INSTALL_EXAMPLES). + +\note The examplepath variable has to match the example directory specified in + \c exampledirs. + +\note It is possible to override \c examplesinstallpath for a specific + \l {example-command}{\\example} using the \l {meta-command}{\\meta} + command. + +\b {See also}: \l {examplesinstallpath}, \l {exampledirs}, and +\l {meta-command}{\\meta}. + +\badcode + qhp.projects = QtGui + qhp.QtGui.file = qtgui.qhp +\endcode + +The following parameters are for creating a QHP file (\e .qhp). The +\e qhelpgenerator program can convert the QHP file into a QCH file (\e .qch), +which can be opened in Qt Assistant or Qt Creator. + +\badcode + qhp.QtGui.namespace = org.qt-project.qtgui.$QT_VERSION_TAG +\endcode + +A unique identifier which enables QHelpEngine to retrieve the helpfile +from a given link. This namespace is also used as a base url for links +to the helpfile. + +\badcode + qhp.QtGui.virtualFolder = qtgui +\endcode + +Virtual folders group documentation together into a single location. A +virtual folder will become the root directory of all files referenced in +a compressed help file. + +When two manuals are located in the same virtual folder, it is possible to +refer to sections of the other manual using relative paths. The virtual +folder tag is mandatory and the folder must not contain any '/'. + +\badcode + qhp.QtGui.indexTitle = Qt GUI +\endcode + +This is the title of the page that has the contents. + +\badcode + qhp.QtGui.indexRoot = +\endcode + +Specifies the title of the root (namespace) page to generate the documentation for. +Typically defined as an empty string. + +\badcode + qhp.QtGui.subprojects = classes + qhp.QtGui.subprojects.classes.title = C++ Classes + qhp.QtGui.subprojects.classes.indexTitle = Qt GUI C++ Classes +\endcode +The subprojects specify the sections that are displayed in the table of contents +for this project. In this example, the subproject, which is displayed in +the Assistant's sidebar, is named "C++ Classes" and its index is the page +titled "QT GUI C++ Classes". + +\badcode + qhp.QtGui.subprojects.classes.selectors = class fake:headerfile +\endcode + +Lists all C++ classes and header files. + +See \l {Creating Help Project Files} for more information. + +\badcode + tagfile = ../../../doc/qtgui/qtgui.tags +\endcode + +This specifies the Doxygen tag file that needs to be written when the html is generated +by QDoc. + +\badcode +depends += \ + qtcore \ + qtnetwork \ + qtopengl \ + qtsvg \ + qtqml \ + qtquick \ + qtwidgets \ + qtdoc +\endcode + +Specifies the modules QDoc needs to load for generating output for Qt GUI. +QDoc loads the index files for all modules listed in the depends statement in +order to enable linking to pages in these modules. + +\badcode + headerdirs += .. +\endcode + +Add the parent directory to the list of directories containing the header files +associated with the \e .cpp source files. + +\badcode + sourcedirs += .. \ + ../../../examples/gui/doc/src +\endcode + +Add the specified directories to the list of directories containing the \e .cpp and +\e .qdoc files used in the documentation. + +\badcode + excludedirs = ../../../examples/gui/doc/src/tmp +\endcode + +The \c excludedirs variable is for listing directories that should not be processed +by QDoc, even if the same directories are included by the \c sourcedirs or \c headerdirs +variables. + +When executed, QDoc will ignore the directories listed. +\b {See also}: \l {excludefiles}. + +\badcode + exampledirs += ../../../examples/gui \ + snippets +\endcode +\b {See also}: \l {examples-variable}{examples}, \l {examplesinstallpath}. + +Add the two directories specified to the list of directories containing the source +code of the example files. + +If QDoc encounters both \c exampledirs and \c examples, it will look first in the +\c examples directory. QDoc will accept the first matching file it finds. QDoc will +search in the directories specified, not in their subdirectories. + +\badcode + imagedirs += images \ + ../../../examples/gui/doc/images \ + ../../../doc/src/images \ +\endcode + +Add the directories specified above to the list of directories where the images +can be found. +*/ diff --git a/src/qdoc/docbookgenerator.cpp b/src/qdoc/docbookgenerator.cpp new file mode 100644 index 0000000..a3383e4 --- /dev/null +++ b/src/qdoc/docbookgenerator.cpp @@ -0,0 +1,4472 @@ +// Copyright (C) 2019 Thibaut Cuvelier +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "docbookgenerator.h" + +#include "access.h" +#include "aggregate.h" +#include "classnode.h" +#include "codemarker.h" +#include "collectionnode.h" +#include "config.h" +#include "enumnode.h" +#include "examplenode.h" +#include "functionnode.h" +#include "generator.h" +#include "node.h" +#include "propertynode.h" +#include "quoter.h" +#include "qdocdatabase.h" +#include "qmlpropertynode.h" +#include "sharedcommentnode.h" +#include "typedefnode.h" +#include "variablenode.h" + +#include +#include +#include +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +static const char dbNamespace[] = "http://docbook.org/ns/docbook"; +static const char xlinkNamespace[] = "http://www.w3.org/1999/xlink"; + +DocBookGenerator::DocBookGenerator(FileResolver& file_resolver) : XmlGenerator(file_resolver) {} + +inline void DocBookGenerator::newLine() +{ + m_writer->writeCharacters("\n"); +} + +void DocBookGenerator::writeXmlId(const QString &id) +{ + if (id.isEmpty()) + return; + + m_writer->writeAttribute("xml:id", registerRef(id, true)); +} + +void DocBookGenerator::writeXmlId(const Node *node) +{ + if (!node) + return; + + // Specifically for nodes, do not use the same code path, as refForNode + // calls registerRef in all cases. Calling registerRef a second time adds + // a character to "disambiguate" the two IDs (the one returned by + // refForNode, then the one that is written as xml:id). + m_writer->writeAttribute("xml:id", Generator::cleanRef(refForNode(node), true)); +} + +void DocBookGenerator::startSectionBegin(const QString &id) +{ + m_writer->writeStartElement(dbNamespace, "section"); + writeXmlId(id); + newLine(); + m_writer->writeStartElement(dbNamespace, "title"); +} + +void DocBookGenerator::startSectionBegin(const Node *node) +{ + m_writer->writeStartElement(dbNamespace, "section"); + writeXmlId(node); + newLine(); + m_writer->writeStartElement(dbNamespace, "title"); +} + +void DocBookGenerator::startSectionEnd() +{ + m_writer->writeEndElement(); // title + newLine(); +} + +void DocBookGenerator::startSection(const QString &id, const QString &title) +{ + startSectionBegin(id); + m_writer->writeCharacters(title); + startSectionEnd(); +} + +void DocBookGenerator::startSection(const Node *node, const QString &title) +{ + startSectionBegin(node); + m_writer->writeCharacters(title); + startSectionEnd(); +} + +void DocBookGenerator::startSection(const QString &title) +{ + // No xml:id given: down the calls, "" is interpreted as "no ID". + startSection("", title); +} + +void DocBookGenerator::endSection() +{ + m_writer->writeEndElement(); // section + newLine(); +} + +void DocBookGenerator::writeAnchor(const QString &id) +{ + if (id.isEmpty()) + return; + + m_writer->writeEmptyElement(dbNamespace, "anchor"); + writeXmlId(id); + newLine(); +} + +/*! + Initializes the DocBook output generator's data structures + from the configuration (Config). + */ +void DocBookGenerator::initializeGenerator() +{ + // Excerpts from HtmlGenerator::initializeGenerator. + Generator::initializeGenerator(); + m_config = &Config::instance(); + + m_project = m_config->getString(CONFIG_PROJECT); + + m_projectDescription = m_config->getString(CONFIG_DESCRIPTION); + if (m_projectDescription.isEmpty() && !m_project.isEmpty()) + m_projectDescription = m_project + QLatin1String(" Reference Documentation"); + + m_naturalLanguage = m_config->getString(CONFIG_NATURALLANGUAGE); + if (m_naturalLanguage.isEmpty()) + m_naturalLanguage = QLatin1String("en"); + + m_buildVersion = m_config->getString(CONFIG_BUILDVERSION); +} + +QString DocBookGenerator::format() +{ + return QStringLiteral("DocBook"); +} + +/*! + Returns "xml" for this subclass of Generator. + */ +QString DocBookGenerator::fileExtension() const +{ + return QStringLiteral("xml"); +} + +/*! + Generate the documentation for \a relative. i.e. \a relative + is the node that represents the entity where a qdoc comment + was found, and \a text represents the qdoc comment. + */ +bool DocBookGenerator::generateText(const Text &text, const Node *relative) +{ + // From Generator::generateText. + if (!text.firstAtom()) + return false; + + int numAtoms = 0; + initializeTextOutput(); + generateAtomList(text.firstAtom(), relative, true, numAtoms); + closeTextSections(); + return true; +} + +/*! + Generate the text for \a atom relatively to \a relative. + \a generate indicates if output to \a writer is expected. + The number of generated atoms is returned in the argument + \a numAtoms. The returned value is the first atom that was not + generated. + */ +const Atom *DocBookGenerator::generateAtomList(const Atom *atom, const Node *relative, + bool generate, int &numAtoms) +{ + Q_ASSERT(m_writer); + // From Generator::generateAtomList. + while (atom) { + switch (atom->type()) { + case Atom::FormatIf: { + int numAtoms0 = numAtoms; + atom = generateAtomList(atom->next(), relative, generate, numAtoms); + if (!atom) + return nullptr; + + if (atom->type() == Atom::FormatElse) { + ++numAtoms; + atom = generateAtomList(atom->next(), relative, false, numAtoms); + if (!atom) + return nullptr; + } + + if (atom->type() == Atom::FormatEndif) { + if (generate && numAtoms0 == numAtoms) { + relative->location().warning(QStringLiteral("Output format %1 not handled %2") + .arg(format(), outFileName())); + Atom unhandledFormatAtom(Atom::UnhandledFormat, format()); + generateAtomList(&unhandledFormatAtom, relative, generate, numAtoms); + } + atom = atom->next(); + } + } break; + case Atom::FormatElse: + case Atom::FormatEndif: + return atom; + default: + int n = 1; + if (generate) { + n += generateAtom(atom, relative); + numAtoms += n; + } + while (n-- > 0) + atom = atom->next(); + } + } + return nullptr; +} + +QString removeCodeMarkers(const QString& code) { + QString rewritten = code; + QRegularExpression re("(<@[^>&]*>)|(<\\/@[^&>]*>)"); + rewritten.replace(re, ""); + return rewritten; +} + +/*! + Generate DocBook from an instance of Atom. + */ +qsizetype DocBookGenerator::generateAtom(const Atom *atom, const Node *relative) +{ + Q_ASSERT(m_writer); + // From HtmlGenerator::generateAtom, without warning generation. + int idx = 0; + int skipAhead = 0; + static bool inPara = false; + Node::Genus genus = Node::DontCare; + bool closeFigureWrapper = false; + bool closeTableRow = false; + + switch (atom->type()) { + case Atom::AutoLink: + // Allow auto-linking to nodes in API reference + genus = Node::API; + Q_FALLTHROUGH(); + case Atom::NavAutoLink: + if (!m_inLink && !m_inContents && !m_inSectionHeading) { + const Node *node = nullptr; + QString link = getAutoLink(atom, relative, &node, genus); + if (!link.isEmpty() && node && node->isDeprecated() + && relative->parent() != node && !relative->isDeprecated()) { + link.clear(); + } + if (link.isEmpty()) { + m_writer->writeCharacters(atom->string()); + } else { + beginLink(link, node, relative); + generateLink(atom); + endLink(); + } + } else { + m_writer->writeCharacters(atom->string()); + } + break; + case Atom::BaseName: + break; + case Atom::BriefLeft: + if (!hasBrief(relative)) { + skipAhead = skipAtoms(atom, Atom::BriefRight); + break; + } + m_writer->writeStartElement(dbNamespace, "para"); + rewritePropertyBrief(atom, relative); + break; + case Atom::BriefRight: + if (hasBrief(relative)) { + m_writer->writeEndElement(); // para + newLine(); + } + break; + case Atom::C: + // This may at one time have been used to mark up C++ code but it is + // now widely used to write teletype text. As a result, text marked + // with the \c command is not passed to a code marker. + if (m_inTeletype) + m_writer->writeCharacters(plainCode(atom->string())); + else + m_writer->writeTextElement(dbNamespace, "code", plainCode(atom->string())); + break; + case Atom::CaptionLeft: + m_writer->writeStartElement(dbNamespace, "title"); + break; + case Atom::CaptionRight: + endLink(); + m_writer->writeEndElement(); // title + newLine(); + break; + case Atom::Qml: + m_writer->writeStartElement(dbNamespace, "programlisting"); + m_writer->writeAttribute("language", "qml"); + m_writer->writeCharacters(removeCodeMarkers(atom->string())); + m_writer->writeEndElement(); // programlisting + newLine(); + break; + case Atom::JavaScript: + m_writer->writeStartElement(dbNamespace, "programlisting"); + m_writer->writeAttribute("language", "js"); + m_writer->writeCharacters(removeCodeMarkers(atom->string())); + m_writer->writeEndElement(); // programlisting + newLine(); + break; + case Atom::Code: + m_writer->writeStartElement(dbNamespace, "programlisting"); + m_writer->writeAttribute("language", "cpp"); + m_writer->writeCharacters(removeCodeMarkers(atom->string())); + m_writer->writeEndElement(); // programlisting + newLine(); + break; + case Atom::CodeBad: + m_writer->writeStartElement(dbNamespace, "programlisting"); + m_writer->writeAttribute("language", "cpp"); + m_writer->writeAttribute("role", "bad"); + m_writer->writeCharacters(removeCodeMarkers(atom->string())); + m_writer->writeEndElement(); // programlisting + newLine(); + break; + case Atom::DivLeft: + case Atom::DivRight: + break; + case Atom::FootnoteLeft: + m_writer->writeStartElement(dbNamespace, "footnote"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + break; + case Atom::FootnoteRight: + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // footnote + break; + case Atom::FormatElse: + case Atom::FormatEndif: + case Atom::FormatIf: + break; + case Atom::FormattingLeft: + if (atom->string() == ATOM_FORMATTING_BOLD) { + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeAttribute("role", "bold"); + } else if (atom->string() == ATOM_FORMATTING_ITALIC) { + m_writer->writeStartElement(dbNamespace, "emphasis"); + } else if (atom->string() == ATOM_FORMATTING_UNDERLINE) { + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeAttribute("role", "underline"); + } else if (atom->string() == ATOM_FORMATTING_SUBSCRIPT) { + m_writer->writeStartElement(dbNamespace, "subscript"); + } else if (atom->string() == ATOM_FORMATTING_SUPERSCRIPT) { + m_writer->writeStartElement(dbNamespace, "superscript"); + } else if (atom->string() == ATOM_FORMATTING_TELETYPE + || atom->string() == ATOM_FORMATTING_PARAMETER) { + m_writer->writeStartElement(dbNamespace, "code"); + + if (atom->string() == ATOM_FORMATTING_PARAMETER) + m_writer->writeAttribute("role", "parameter"); + else // atom->string() == ATOM_FORMATTING_TELETYPE + m_inTeletype = true; + + // For parameters, understand subscripts. + if (atom->string() == ATOM_FORMATTING_PARAMETER) { + if (atom->next() != nullptr && atom->next()->type() == Atom::String) { + QRegularExpression subscriptRegExp("^([a-z]+)_([0-9n])$"); + auto match = subscriptRegExp.match(atom->next()->string()); + if (match.hasMatch()) { + m_writer->writeCharacters(match.captured(1)); + m_writer->writeStartElement(dbNamespace, "subscript"); + m_writer->writeCharacters(match.captured(2)); + m_writer->writeEndElement(); // subscript + skipAhead = 1; + } + } + } + } else if (atom->string() == ATOM_FORMATTING_UICONTROL) { + m_writer->writeStartElement(dbNamespace, "guilabel"); + } else { + relative->location().warning(QStringLiteral("Unsupported formatting: %1").arg(atom->string())); + } + break; + case Atom::FormattingRight: + if (atom->string() == ATOM_FORMATTING_BOLD || atom->string() == ATOM_FORMATTING_ITALIC + || atom->string() == ATOM_FORMATTING_UNDERLINE + || atom->string() == ATOM_FORMATTING_SUBSCRIPT + || atom->string() == ATOM_FORMATTING_SUPERSCRIPT + || atom->string() == ATOM_FORMATTING_TELETYPE + || atom->string() == ATOM_FORMATTING_PARAMETER + || atom->string() == ATOM_FORMATTING_UICONTROL) { + m_writer->writeEndElement(); + } else if (atom->string() == ATOM_FORMATTING_LINK) { + if (atom->string() == ATOM_FORMATTING_TELETYPE) + m_inTeletype = false; + endLink(); + } else { + relative->location().warning(QStringLiteral("Unsupported formatting: %1").arg(atom->string())); + } + break; + case Atom::AnnotatedList: + if (const CollectionNode *cn = m_qdb->getCollectionNode(atom->string(), Node::Group)) + generateList(cn, atom->string()); + break; + case Atom::GeneratedList: + if (atom->string() == QLatin1String("annotatedclasses") + || atom->string() == QLatin1String("attributions") + || atom->string() == QLatin1String("namespaces")) { + const NodeMultiMap things = atom->string() == QLatin1String("annotatedclasses") + ? m_qdb->getCppClasses() + : atom->string() == QLatin1String("attributions") ? m_qdb->getAttributions() + : m_qdb->getNamespaces(); + generateAnnotatedList(relative, things.values(), atom->string()); + } else if (atom->string() == QLatin1String("annotatedexamples") + || atom->string() == QLatin1String("annotatedattributions")) { + const NodeMultiMap things = atom->string() == QLatin1String("annotatedexamples") + ? m_qdb->getAttributions() + : m_qdb->getExamples(); + generateAnnotatedLists(relative, things, atom->string()); + } else if (atom->string() == QLatin1String("classes") + || atom->string() == QLatin1String("qmlbasictypes") // deprecated! + || atom->string() == QLatin1String("qmlvaluetypes") + || atom->string() == QLatin1String("qmltypes")) { + const NodeMultiMap things = atom->string() == QLatin1String("classes") + ? m_qdb->getCppClasses() + : (atom->string() == QLatin1String("qmlvaluetypes") + || atom->string() == QLatin1String("qmlbasictypes")) + ? m_qdb->getQmlValueTypes() + : m_qdb->getQmlTypes(); + generateCompactList(Generic, relative, things, QString(), atom->string()); + } else if (atom->string().contains("classes ")) { + QString rootName = atom->string().mid(atom->string().indexOf("classes") + 7).trimmed(); + generateCompactList(Generic, relative, m_qdb->getCppClasses(), rootName, + atom->string()); + } else if ((idx = atom->string().indexOf(QStringLiteral("bymodule"))) != -1) { + QString moduleName = atom->string().mid(idx + 8).trimmed(); + Node::NodeType type = typeFromString(atom); + QDocDatabase *qdb = QDocDatabase::qdocDB(); + if (const CollectionNode *cn = qdb->getCollectionNode(moduleName, type)) { + if (type == Node::Module) { + NodeMap m; + cn->getMemberClasses(m); + if (!m.isEmpty()) + generateAnnotatedList(relative, m.values(), atom->string()); + } else { + generateAnnotatedList(relative, cn->members(), atom->string()); + } + } + } else if (atom->string().startsWith("examplefiles") + || atom->string().startsWith("exampleimages")) { + if (relative->isExample()) + qDebug() << "GENERATE FILE LIST CALLED" << relative->name() << atom->string(); + } else if (atom->string() == QLatin1String("classhierarchy")) { + generateClassHierarchy(relative, m_qdb->getCppClasses()); + } else if (atom->string().startsWith("obsolete")) { + ListType type = atom->string().endsWith("members") ? Obsolete : Generic; + QString prefix = atom->string().contains("cpp") ? QStringLiteral("Q") : QString(); + const NodeMultiMap &things = atom->string() == QLatin1String("obsoleteclasses") + ? m_qdb->getObsoleteClasses() + : atom->string() == QLatin1String("obsoleteqmltypes") + ? m_qdb->getObsoleteQmlTypes() + : atom->string() == QLatin1String("obsoletecppmembers") + ? m_qdb->getClassesWithObsoleteMembers() + : m_qdb->getQmlTypesWithObsoleteMembers(); + generateCompactList(type, relative, things, prefix, atom->string()); + } else if (atom->string() == QLatin1String("functionindex")) { + generateFunctionIndex(relative); + } else if (atom->string() == QLatin1String("legalese")) { + generateLegaleseList(relative); + } else if (atom->string() == QLatin1String("overviews") + || atom->string() == QLatin1String("cpp-modules") + || atom->string() == QLatin1String("qml-modules") + || atom->string() == QLatin1String("related")) { + generateList(relative, atom->string()); + } + break; + case Atom::SinceList: + // Table of contents, should automatically be generated by the DocBook processor. + break; + case Atom::LineBreak: + case Atom::BR: + case Atom::HR: + // Not supported in DocBook. + break; + case Atom::Image: // mediaobject + // An Image atom is always followed by an ImageText atom, containing the alternative text. + // If no caption is present we just output a , + // avoiding the wrapper as it is not required. + if (atom->next() && matchAhead(atom->next(), Atom::CaptionLeft)) { + // If there is a caption, there must be a + // wrapper starting with the caption. + skipAhead += 4; + Q_ASSERT(atom->next()); + Q_ASSERT(atom->next()->next()); + Q_ASSERT(atom->next()->next()->next()); + Q_ASSERT(atom->next()->next()->next()->next()); + + m_writer->writeStartElement(dbNamespace, "figure"); + newLine(); + + generateAtom(atom->next()->next(), relative); // Atom::CaptionLeft + generateAtom(atom->next()->next()->next(), relative); // The actual caption. + generateAtom(atom->next()->next()->next()->next(), relative); // Atom::CaptionRight + + closeFigureWrapper = true; + } + + Q_FALLTHROUGH(); + case Atom::InlineImage: { // inlinemediaobject + // TODO: [generator-insufficient-structural-abstraction] + // The structure of the computations for this part of the + // docbook generation and the same parts in other format + // generators is the same. + // + // The difference, instead, lies in what the generated output + // is like. A correct abstraction for a generator would take + // this structural equivalence into account and encapsulate it + // into a driver for the format generators. + // + // This would avoid the replication of content, and the + // subsequent friction for changes and desynchronization + // between generators. + // + // Review all the generators routines and find the actual + // skeleton that is shared between them, then consider it when + // extracting the logic for the generation phase. + QString tag = atom->type() == Atom::Image ? "mediaobject" : "inlinemediaobject"; + m_writer->writeStartElement(dbNamespace, tag); + newLine(); + + auto maybe_resolved_file{file_resolver.resolve(atom->string())}; + if (!maybe_resolved_file) { + // TODO: [uncetnralized-admonition][failed-resolve-file] + relative->location().warning(QStringLiteral("Missing image: %1").arg(atom->string())); + + m_writer->writeStartElement(dbNamespace, "textobject"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeTextElement(dbNamespace, "emphasis", + "[Missing image " + atom->string() + "]"); + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // textobject + newLine(); + } else { + ResolvedFile file{*maybe_resolved_file}; + QString file_name{QFileInfo{file.get_path()}.fileName()}; + + // TODO: [uncentralized-output-directory-structure] + QString output_file_name = Config::copyFile(relative->doc().location(), file.get_path(), file_name, outputDir() + QLatin1String("/images")); + + if (atom->next() && !atom->next()->string().isEmpty()) + m_writer->writeTextElement(dbNamespace, "alt", atom->next()->string()); + + m_writer->writeStartElement(dbNamespace, "imageobject"); + newLine(); + m_writer->writeEmptyElement(dbNamespace, "imagedata"); + // TODO: [uncentralized-output-directory-structure] + m_writer->writeAttribute("fileref", "images/" + file_name); + newLine(); + m_writer->writeEndElement(); // imageobject + newLine(); + + // TODO: [uncentralized-output-directory-structure] + setImageFileName(relative, "images/" + file_name); + } + + m_writer->writeEndElement(); // [inline]mediaobject + if (atom->type() == Atom::Image) + newLine(); + + if (closeFigureWrapper) { + m_writer->writeEndElement(); // figure + newLine(); + closeFigureWrapper = false; + } + } break; + case Atom::ImageText: + break; + case Atom::ImportantLeft: + case Atom::NoteLeft: + case Atom::WarningLeft: { + QString admonType = atom->typeString().toLower(); + // Remove 'Left' to get the admonition type + admonType.chop(4); + m_writer->writeStartElement(dbNamespace, admonType); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + } break; + case Atom::ImportantRight: + case Atom::NoteRight: + case Atom::WarningRight: + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // note/important + newLine(); + break; + case Atom::LegaleseLeft: + case Atom::LegaleseRight: + break; + case Atom::Link: + case Atom::NavLink: { + const Node *node = nullptr; + QString link = getLink(atom, relative, &node); + beginLink(link, node, relative); // Ended at Atom::FormattingRight + skipAhead = 1; + } break; + case Atom::LinkNode: { + const Node *node = CodeMarker::nodeForString(atom->string()); + beginLink(linkForNode(node, relative), node, relative); + skipAhead = 1; + } break; + case Atom::ListLeft: + if (inPara) { + m_writer->writeEndElement(); // para + newLine(); + inPara = false; + } + if (atom->string() == ATOM_LIST_BULLET) { + m_writer->writeStartElement(dbNamespace, "itemizedlist"); + newLine(); + } else if (atom->string() == ATOM_LIST_TAG) { + m_writer->writeStartElement(dbNamespace, "variablelist"); + newLine(); + } else if (atom->string() == ATOM_LIST_VALUE) { + m_writer->writeStartElement(dbNamespace, "informaltable"); + newLine(); + m_writer->writeStartElement(dbNamespace, "thead"); + newLine(); + m_writer->writeStartElement(dbNamespace, "tr"); + newLine(); + m_writer->writeTextElement(dbNamespace, "th", "Constant"); + newLine(); + + m_threeColumnEnumValueTable = isThreeColumnEnumValueTable(atom); + if (m_threeColumnEnumValueTable && relative->nodeType() == Node::Enum) { + // If not in \enum topic, skip the value column + m_writer->writeTextElement(dbNamespace, "th", "Value"); + newLine(); + } + + m_writer->writeTextElement(dbNamespace, "th", "Description"); + newLine(); + + m_writer->writeEndElement(); // tr + newLine(); + m_writer->writeEndElement(); // thead + newLine(); + } else { + m_writer->writeStartElement(dbNamespace, "orderedlist"); + + if (atom->next() != nullptr && atom->next()->string().toInt() > 1) + m_writer->writeAttribute("startingnumber", atom->next()->string()); + + if (atom->string() == ATOM_LIST_UPPERALPHA) + m_writer->writeAttribute("numeration", "upperalpha"); + else if (atom->string() == ATOM_LIST_LOWERALPHA) + m_writer->writeAttribute("numeration", "loweralpha"); + else if (atom->string() == ATOM_LIST_UPPERROMAN) + m_writer->writeAttribute("numeration", "upperroman"); + else if (atom->string() == ATOM_LIST_LOWERROMAN) + m_writer->writeAttribute("numeration", "lowerroman"); + else // (atom->string() == ATOM_LIST_NUMERIC) + m_writer->writeAttribute("numeration", "arabic"); + + newLine(); + } + break; + case Atom::ListItemNumber: + break; + case Atom::ListTagLeft: + if (atom->string() == ATOM_LIST_TAG) { + m_writer->writeStartElement(dbNamespace, "varlistentry"); + newLine(); + m_writer->writeStartElement(dbNamespace, "item"); + } else { // (atom->string() == ATOM_LIST_VALUE) + std::pair pair = getAtomListValue(atom); + skipAhead = pair.second; + + m_writer->writeStartElement(dbNamespace, "tr"); + newLine(); + m_writer->writeStartElement(dbNamespace, "td"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + generateEnumValue(pair.first, relative); + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // td + newLine(); + + if (relative->nodeType() == Node::Enum) { + const auto enume = static_cast(relative); + QString itemValue = enume->itemValue(atom->next()->string()); + + m_writer->writeStartElement(dbNamespace, "td"); + if (itemValue.isEmpty()) + m_writer->writeCharacters("?"); + else + m_writer->writeTextElement(dbNamespace, "code", itemValue); + m_writer->writeEndElement(); // td + newLine(); + } + } + break; + case Atom::SinceTagRight: + case Atom::ListTagRight: + if (atom->string() == ATOM_LIST_TAG) { + m_writer->writeEndElement(); // item + newLine(); + } + break; + case Atom::ListItemLeft: + m_inListItemLineOpen = false; + if (atom->string() == ATOM_LIST_TAG) { + m_writer->writeStartElement(dbNamespace, "listitem"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + } else if (atom->string() == ATOM_LIST_VALUE) { + if (m_threeColumnEnumValueTable) { + if (matchAhead(atom, Atom::ListItemRight)) { + m_writer->writeEmptyElement(dbNamespace, "td"); + newLine(); + m_inListItemLineOpen = false; + } else { + m_writer->writeStartElement(dbNamespace, "td"); + newLine(); + m_inListItemLineOpen = true; + } + } + } else { + m_writer->writeStartElement(dbNamespace, "listitem"); + newLine(); + } + // Don't skip a paragraph, DocBook requires them within list items. + break; + case Atom::ListItemRight: + if (atom->string() == ATOM_LIST_TAG) { + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // listitem + newLine(); + m_writer->writeEndElement(); // varlistentry + newLine(); + } else if (atom->string() == ATOM_LIST_VALUE) { + if (m_inListItemLineOpen) { + m_writer->writeEndElement(); // td + newLine(); + m_inListItemLineOpen = false; + } + m_writer->writeEndElement(); // tr + newLine(); + } else { + m_writer->writeEndElement(); // listitem + newLine(); + } + break; + case Atom::ListRight: + // Depending on atom->string(), closing a different item: + // - ATOM_LIST_BULLET: itemizedlist + // - ATOM_LIST_TAG: variablelist + // - ATOM_LIST_VALUE: informaltable + // - ATOM_LIST_NUMERIC: orderedlist + m_writer->writeEndElement(); + newLine(); + break; + case Atom::Nop: + break; + case Atom::ParaLeft: + m_writer->writeStartElement(dbNamespace, "para"); + inPara = true; + break; + case Atom::ParaRight: + endLink(); + if (inPara) { + m_writer->writeEndElement(); // para + newLine(); + inPara = false; + } + break; + case Atom::QuotationLeft: + m_writer->writeStartElement(dbNamespace, "blockquote"); + inPara = true; + break; + case Atom::QuotationRight: + m_writer->writeEndElement(); // blockquote + newLine(); + break; + case Atom::RawString: + m_writer->writeCharacters(atom->string()); + break; + case Atom::SectionLeft: + currentSectionLevel = atom->string().toInt() + hOffset(relative); + // Level 1 is dealt with at the header level (info tag). + if (currentSectionLevel > 1) { + // Unfortunately, SectionRight corresponds to the end of any section, + // i.e. going to a new section, even deeper. + while (!sectionLevels.empty() && sectionLevels.top() >= currentSectionLevel) { + sectionLevels.pop(); + m_writer->writeEndElement(); // section + newLine(); + } + + sectionLevels.push(currentSectionLevel); + + m_writer->writeStartElement(dbNamespace, "section"); + writeXmlId(Doc::canonicalTitle(Text::sectionHeading(atom).toString())); + newLine(); + // Unlike startSectionBegin, don't start a title here. + } + break; + case Atom::SectionRight: + // All the logic about closing sections is done in the SectionLeft case + // and generateFooter() for the end of the page. + break; + case Atom::SectionHeadingLeft: + // Level 1 is dealt with at the header level (info tag). + if (currentSectionLevel > 1) { + m_writer->writeStartElement(dbNamespace, "title"); + m_inSectionHeading = true; + } + break; + case Atom::SectionHeadingRight: + // Level 1 is dealt with at the header level (info tag). + if (currentSectionLevel > 1) { + m_writer->writeEndElement(); // title + newLine(); + m_inSectionHeading = false; + } + break; + case Atom::SidebarLeft: + m_writer->writeStartElement(dbNamespace, "sidebar"); + break; + case Atom::SidebarRight: + m_writer->writeEndElement(); // sidebar + newLine(); + break; + case Atom::String: + if (m_inLink && !m_inContents && !m_inSectionHeading) + generateLink(atom); + else + m_writer->writeCharacters(atom->string()); + break; + case Atom::TableLeft: { + std::pair pair = getTableWidthAttr(atom); + QString attr = pair.second; + QString width = pair.first; + + if (inPara) { + m_writer->writeEndElement(); // para or blockquote + newLine(); + inPara = false; + } + + m_writer->writeStartElement(dbNamespace, "informaltable"); + m_writer->writeAttribute("style", attr); + if (!width.isEmpty()) + m_writer->writeAttribute("width", width); + newLine(); + } break; + case Atom::TableRight: + m_writer->writeEndElement(); // table + newLine(); + break; + case Atom::TableHeaderLeft: { + if (matchAhead(atom, Atom::TableHeaderRight)) { + ++skipAhead; + break; + } + + const Atom *next = atom->next(); + QString id{""}; + if (matchAhead(atom, Atom::Target)) { + id = Doc::canonicalTitle(next->string()); + next = next->next(); + ++skipAhead; + } + + m_writer->writeStartElement(dbNamespace, "thead"); + newLine(); + m_writer->writeStartElement(dbNamespace, "tr"); + writeXmlId(id); + newLine(); + m_inTableHeader = true; + } + break; + case Atom::TableHeaderRight: + m_writer->writeEndElement(); // tr + newLine(); + if (matchAhead(atom, Atom::TableHeaderLeft)) { + skipAhead = 1; + m_writer->writeStartElement(dbNamespace, "tr"); + newLine(); + } else { + m_writer->writeEndElement(); // thead + newLine(); + m_inTableHeader = false; + } + break; + case Atom::TableRowLeft: { + if (matchAhead(atom, Atom::TableRowRight)) + break; + + QString id{""}; + bool hasTarget {false}; + if (matchAhead(atom, Atom::Target)) { + id = Doc::canonicalTitle(atom->next()->string()); + ++skipAhead; + hasTarget = true; + } + + m_writer->writeStartElement(dbNamespace, "tr"); + writeXmlId(id); + + if (atom->string().isEmpty()) { + m_writer->writeAttribute("valign", "top"); + } else { + // Basic parsing of attributes, should be enough. The input string (atom->string()) + // looks like: + // arg1="val1" arg2="val2" + QStringList args = atom->string().split("\"", Qt::SkipEmptyParts); + // arg1=, val1, arg2=, val2, + // \-- 1st --/ \-- 2nd --/ \-- remainder + const int nArgs = args.size(); + + if (nArgs % 2) { + // Problem... + relative->doc().location().warning( + QStringLiteral("Error when parsing attributes for the table: got \"%1\"") + .arg(atom->string())); + } + for (int i = 0; i + 1 < nArgs; i += 2) { + // args.at(i): name of the attribute being set. + // args.at(i + 1): value of the said attribute. + const QString &attr = args.at(i).chopped(1); + if (attr == "id") { // Too bad if there is an anchor later on + // (currently never happens). + writeXmlId(args.at(i + 1)); + } else { + m_writer->writeAttribute(attr, args.at(i + 1)); + } + } + } + newLine(); + + // If there is nothing in this row, close it right now. There might be + // keywords before the row contents. + bool isRowEmpty = hasTarget + ? !matchAhead(atom->next(), Atom::TableItemLeft) + : !matchAhead(atom, Atom::TableItemLeft); + if (isRowEmpty && matchAhead(atom, Atom::Keyword)) { + const Atom* next = atom->next(); + while (matchAhead(next, Atom::Keyword)) + next = next->next(); + isRowEmpty = !matchAhead(next, Atom::TableItemLeft); + } + + if (isRowEmpty) { + closeTableRow = true; + m_writer->writeEndElement(); // td + newLine(); + } + } + break; + case Atom::TableRowRight: + if (closeTableRow) { + closeTableRow = false; + m_writer->writeEndElement(); // td + newLine(); + } + + m_writer->writeEndElement(); // tr + newLine(); + break; + case Atom::TableItemLeft: + m_writer->writeStartElement(dbNamespace, m_inTableHeader ? "th" : "td"); + + for (int i = 0; i < atom->count(); ++i) { + const QString &p = atom->string(i); + if (p.contains('=')) { + QStringList lp = p.split(QLatin1Char('=')); + m_writer->writeAttribute(lp.at(0), lp.at(1)); + } else { + QStringList spans = p.split(QLatin1Char(',')); + if (spans.size() == 2) { + if (spans.at(0) != "1") + m_writer->writeAttribute("colspan", spans.at(0)); + if (spans.at(1) != "1") + m_writer->writeAttribute("rowspan", spans.at(1)); + } + } + } + newLine(); + // No skipahead, as opposed to HTML: in DocBook, the text must be wrapped in paragraphs. + break; + case Atom::TableItemRight: + m_writer->writeEndElement(); // th if m_inTableHeader, otherwise td + newLine(); + break; + case Atom::TableOfContents: + break; + case Atom::Keyword: + break; + case Atom::Target: + // Sometimes, there is a \target just before a section title with + // the same ID. Only output one xml:id. + if (matchAhead(atom, Atom::SectionRight) && matchAhead(atom->next(), Atom::SectionLeft)) { + QString nextId = Doc::canonicalTitle(Text::sectionHeading(atom->next()->next()).toString()); + QString ownId = Doc::canonicalTitle(atom->string()); + if (nextId == ownId) + break; + } + + writeAnchor(Doc::canonicalTitle(atom->string())); + break; + case Atom::UnhandledFormat: + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeAttribute("role", "bold"); + m_writer->writeCharacters("<Missing DocBook>"); + m_writer->writeEndElement(); // emphasis + break; + case Atom::UnknownCommand: + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeAttribute("role", "bold"); + m_writer->writeCharacters("<Unknown command>"); + m_writer->writeStartElement(dbNamespace, "code"); + m_writer->writeCharacters(atom->string()); + m_writer->writeEndElement(); // code + m_writer->writeEndElement(); // emphasis + break; + case Atom::QmlText: + case Atom::EndQmlText: + // don't do anything with these. They are just tags. + break; + case Atom::CodeQuoteArgument: + case Atom::CodeQuoteCommand: + case Atom::SnippetCommand: + case Atom::SnippetIdentifier: + case Atom::SnippetLocation: + // no output (ignore) + break; + default: + unknownAtom(atom); + } + return skipAhead; +} + +void DocBookGenerator::generateClassHierarchy(const Node *relative, NodeMultiMap &classMap) +{ + // From HtmlGenerator::generateClassHierarchy. + if (classMap.isEmpty()) + return; + + NodeMap topLevel; + for (Node *c : classMap) { + auto *classNode = static_cast(c); + if (classNode->baseClasses().isEmpty()) + topLevel.insert(classNode->name(), classNode); + } + + QStack stack; + stack.push(topLevel); + + m_writer->writeStartElement(dbNamespace, "itemizedlist"); + newLine(); + while (!stack.isEmpty()) { + if (stack.top().isEmpty()) { + stack.pop(); + m_writer->writeEndElement(); // listitem + newLine(); + m_writer->writeEndElement(); // itemizedlist + newLine(); + } else { + auto *child = static_cast(*stack.top().begin()); + m_writer->writeStartElement(dbNamespace, "listitem"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + generateFullName(child, relative); + m_writer->writeEndElement(); // para + newLine(); + // Don't close the listitem now, as DocBook requires sublists to reside in items. + stack.top().erase(stack.top().begin()); + + NodeMap newTop; + for (const RelatedClass &d : child->derivedClasses()) { + if (d.m_node && !d.isPrivate() && !d.m_node->isInternal() && d.m_node->hasDoc()) + newTop.insert(d.m_node->name(), d.m_node); + } + if (!newTop.isEmpty()) { + stack.push(newTop); + m_writer->writeStartElement(dbNamespace, "itemizedlist"); + newLine(); + } + } + } +} + +void DocBookGenerator::generateLink(const Atom *atom) +{ + Q_ASSERT(m_inLink); + + // From HtmlGenerator::generateLink. + if (m_linkNode && m_linkNode->isFunction()) { + auto match = XmlGenerator::m_funcLeftParen.match(atom->string()); + if (match.hasMatch()) { + // C++: move () outside of link + qsizetype leftParenLoc = match.capturedStart(1); + m_writer->writeCharacters(atom->string().left(leftParenLoc)); + endLink(); + m_writer->writeCharacters(atom->string().mid(leftParenLoc)); + return; + } + } + m_writer->writeCharacters(atom->string()); +} + +/*! + This version of the function is called when the \a link is known + to be correct. + */ +void DocBookGenerator::beginLink(const QString &link, const Node *node, const Node *relative) +{ + // From HtmlGenerator::beginLink. + m_writer->writeStartElement(dbNamespace, "link"); + m_writer->writeAttribute(xlinkNamespace, "href", link); + if (node && !(relative && node->status() == relative->status()) + && node->isDeprecated()) + m_writer->writeAttribute("role", "deprecated"); + m_inLink = true; + m_linkNode = node; +} + +void DocBookGenerator::endLink() +{ + // From HtmlGenerator::endLink. + if (m_inLink) + m_writer->writeEndElement(); // link + m_inLink = false; + m_linkNode = nullptr; +} + +void DocBookGenerator::generateList(const Node *relative, const QString &selector) +{ + // From HtmlGenerator::generateList, without warnings, changing prototype. + CNMap cnm; + Node::NodeType type = Node::NoType; + if (selector == QLatin1String("overviews")) + type = Node::Group; + else if (selector == QLatin1String("cpp-modules")) + type = Node::Module; + else if (selector == QLatin1String("qml-modules")) + type = Node::QmlModule; + else if (selector == QLatin1String("js-modules")) + type = Node::JsModule; + + if (type != Node::NoType) { + NodeList nodeList; + m_qdb->mergeCollections(type, cnm, relative); + const QList collectionList = cnm.values(); + nodeList.reserve(collectionList.size()); + for (auto *collectionNode : collectionList) + nodeList.append(collectionNode); + generateAnnotatedList(relative, nodeList, selector); + } else { + /* + \generatelist {selector} is only allowed in a + comment where the topic is \group, \module, + \qmlmodule, or \jsmodule + */ + Node *n = const_cast(relative); + auto *cn = static_cast(n); + m_qdb->mergeCollections(cn); + generateAnnotatedList(cn, cn->members(), selector); + } +} + +/*! + Outputs an annotated list of the nodes in \a nodeList. + A two-column table is output. + */ +void DocBookGenerator::generateAnnotatedList(const Node *relative, const NodeList &nodeList, + const QString &selector) +{ + if (nodeList.isEmpty()) + return; + + // Do nothing if all items are internal or obsolete + if (std::all_of(nodeList.cbegin(), nodeList.cend(), [](const Node *n) { + return n->isInternal() || n->isDeprecated(); })) { + return; + } + + // From WebXMLGenerator::generateAnnotatedList. + m_writer->writeStartElement(dbNamespace, "variablelist"); + m_writer->writeAttribute("role", selector); + newLine(); + + for (const auto node : nodeList) { + if (node->isInternal() || node->isDeprecated()) + continue; + m_writer->writeStartElement(dbNamespace, "varlistentry"); + newLine(); + m_writer->writeStartElement(dbNamespace, "term"); + generateFullName(node, relative); + m_writer->writeEndElement(); // term + newLine(); + + m_writer->writeStartElement(dbNamespace, "listitem"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters(node->doc().briefText().toString()); + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // listitem + newLine(); + m_writer->writeEndElement(); // varlistentry + newLine(); + } + m_writer->writeEndElement(); // variablelist + newLine(); +} + +/*! + Outputs a series of annotated lists from the nodes in \a nmm, + divided into sections based by the key names in the multimap. + */ +void DocBookGenerator::generateAnnotatedLists(const Node *relative, const NodeMultiMap &nmm, + const QString &selector) +{ + // From HtmlGenerator::generateAnnotatedLists. + for (const QString &name : nmm.uniqueKeys()) { + if (!name.isEmpty()) + startSection(name.toLower(), name); + generateAnnotatedList(relative, nmm.values(name), selector); + if (!name.isEmpty()) + endSection(); + } +} + +/*! + This function finds the common prefix of the names of all + the classes in the class map \a nmm and then generates a + compact list of the class names alphabetized on the part + of the name not including the common prefix. You can tell + the function to use \a comonPrefix as the common prefix, + but normally you let it figure it out itself by looking at + the name of the first and last classes in the class map + \a nmm. + */ +void DocBookGenerator::generateCompactList(ListType listType, const Node *relative, + const NodeMultiMap &nmm, const QString &commonPrefix, + const QString &selector) +{ + // From HtmlGenerator::generateCompactList. No more "includeAlphabet", this should be handled by + // the DocBook toolchain afterwards. + // TODO: In DocBook, probably no need for this method: this is purely presentational, i.e. to be + // fully handled by the DocBook toolchain. + if (nmm.isEmpty()) + return; + + const int NumParagraphs = 37; // '0' to '9', 'A' to 'Z', '_' + qsizetype commonPrefixLen = commonPrefix.size(); + + /* + Divide the data into 37 paragraphs: 0, ..., 9, A, ..., Z, + underscore (_). QAccel will fall in paragraph 10 (A) and + QXtWidget in paragraph 33 (X). This is the only place where we + assume that NumParagraphs is 37. Each paragraph is a NodeMultiMap. + */ + NodeMultiMap paragraph[NumParagraphs + 1]; + QString paragraphName[NumParagraphs + 1]; + QSet usedParagraphNames; + + NodeMultiMap::ConstIterator c = nmm.constBegin(); + while (c != nmm.constEnd()) { + QStringList pieces = c.key().split("::"); + QString key; + int idx = commonPrefixLen; + if (idx > 0 && !pieces.last().startsWith(commonPrefix, Qt::CaseInsensitive)) + idx = 0; + key = pieces.last().mid(idx).toLower(); + + int paragraphNr = NumParagraphs - 1; + + if (key[0].digitValue() != -1) + paragraphNr = key[0].digitValue(); + else if (key[0] >= QLatin1Char('a') && key[0] <= QLatin1Char('z')) + paragraphNr = 10 + key[0].unicode() - 'a'; + + paragraphName[paragraphNr] = key[0].toUpper(); + usedParagraphNames.insert(key[0].toLower().cell()); + paragraph[paragraphNr].insert(c.key(), c.value()); + ++c; + } + + /* + Each paragraph j has a size: paragraph[j].count(). In the + discussion, we will assume paragraphs 0 to 5 will have sizes + 3, 1, 4, 1, 5, 9. + + We now want to compute the paragraph offset. Paragraphs 0 to 6 + start at offsets 0, 3, 4, 8, 9, 14, 23. + */ + int paragraphOffset[NumParagraphs + 1]; // 37 + 1 + paragraphOffset[0] = 0; + for (int i = 0; i < NumParagraphs; i++) // i = 0..36 + paragraphOffset[i + 1] = paragraphOffset[i] + paragraph[i].size(); + + // No table of contents in DocBook. + + // Actual output. + int curParNr = 0; + int curParOffset = 0; + QString previousName; + bool multipleOccurrences = false; + + for (int i = 0; i < nmm.size(); i++) { + while ((curParNr < NumParagraphs) && (curParOffset == paragraph[curParNr].size())) { + ++curParNr; + curParOffset = 0; + } + + /* + Starting a new paragraph means starting a new variablelist. + */ + if (curParOffset == 0) { + if (i > 0) { + m_writer->writeEndElement(); // variablelist + newLine(); + } + + m_writer->writeStartElement(dbNamespace, "variablelist"); + m_writer->writeAttribute("role", selector); + newLine(); + m_writer->writeStartElement(dbNamespace, "varlistentry"); + newLine(); + + m_writer->writeStartElement(dbNamespace, "term"); + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeAttribute("role", "bold"); + m_writer->writeCharacters(paragraphName[curParNr]); + m_writer->writeEndElement(); // emphasis + m_writer->writeEndElement(); // term + newLine(); + } + + /* + Output a listitem for the current offset in the current paragraph. + */ + m_writer->writeStartElement(dbNamespace, "listitem"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + if ((curParNr < NumParagraphs) && !paragraphName[curParNr].isEmpty()) { + NodeMultiMap::Iterator it; + NodeMultiMap::Iterator next; + it = paragraph[curParNr].begin(); + for (int j = 0; j < curParOffset; j++) + ++it; + + if (listType == Generic) { + generateFullName(it.value(), relative); + m_writer->writeStartElement(dbNamespace, "link"); + m_writer->writeAttribute(xlinkNamespace, "href", fullDocumentLocation(*it)); + m_writer->writeAttribute("type", targetType(it.value())); + } else if (listType == Obsolete) { + QString fn = fileName(it.value(), fileExtension()); + QString link; + if (useOutputSubdirs()) + link = QString("../" + it.value()->outputSubdirectory() + QLatin1Char('/')); + link += fn; + + m_writer->writeStartElement(dbNamespace, "link"); + m_writer->writeAttribute(xlinkNamespace, "href", link); + m_writer->writeAttribute("type", targetType(it.value())); + } + + QStringList pieces; + if (it.value()->isQmlType() || it.value()->isJsType()) { + QString name = it.value()->name(); + next = it; + ++next; + if (name != previousName) + multipleOccurrences = false; + if ((next != paragraph[curParNr].end()) && (name == next.value()->name())) { + multipleOccurrences = true; + previousName = name; + } + if (multipleOccurrences) + name += ": " + it.value()->tree()->camelCaseModuleName(); + pieces << name; + } else + pieces = it.value()->fullName(relative).split("::"); + + m_writer->writeCharacters(pieces.last()); + m_writer->writeEndElement(); // link + + if (pieces.size() > 1) { + m_writer->writeCharacters(" ("); + generateFullName(it.value()->parent(), relative); + m_writer->writeCharacters(")"); + } + } + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // listitem + newLine(); + m_writer->writeEndElement(); // varlistentry + newLine(); + curParOffset++; + } + if (nmm.size() > 0) { + m_writer->writeEndElement(); // variablelist + } +} + +void DocBookGenerator::generateFunctionIndex(const Node *relative) +{ + // From HtmlGenerator::generateFunctionIndex. + m_writer->writeStartElement(dbNamespace, "simplelist"); + m_writer->writeAttribute("role", "functionIndex"); + newLine(); + for (int i = 0; i < 26; i++) { + QChar ch('a' + i); + m_writer->writeStartElement(dbNamespace, "member"); + m_writer->writeAttribute(xlinkNamespace, "href", QString("#") + ch); + m_writer->writeCharacters(ch.toUpper()); + m_writer->writeEndElement(); // member + newLine(); + } + m_writer->writeEndElement(); // simplelist + newLine(); + + char nextLetter = 'a'; + char currentLetter; + + m_writer->writeStartElement(dbNamespace, "itemizedlist"); + newLine(); + + NodeMapMap &funcIndex = m_qdb->getFunctionIndex(); + QMap::ConstIterator f = funcIndex.constBegin(); + while (f != funcIndex.constEnd()) { + m_writer->writeStartElement(dbNamespace, "listitem"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters(f.key() + ": "); + + currentLetter = f.key()[0].unicode(); + while (islower(currentLetter) && currentLetter >= nextLetter) { + writeAnchor(QString(nextLetter)); + nextLetter++; + } + + NodeMap::ConstIterator s = (*f).constBegin(); + while (s != (*f).constEnd()) { + m_writer->writeCharacters(" "); + generateFullName((*s)->parent(), relative); + ++s; + } + + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // listitem + newLine(); + ++f; + } + m_writer->writeEndElement(); // itemizedlist + newLine(); +} + +void DocBookGenerator::generateLegaleseList(const Node *relative) +{ + // From HtmlGenerator::generateLegaleseList. + TextToNodeMap &legaleseTexts = m_qdb->getLegaleseTexts(); + for (auto it = legaleseTexts.cbegin(), end = legaleseTexts.cend(); it != end; ++it) { + Text text = it.key(); + generateText(text, relative); + m_writer->writeStartElement(dbNamespace, "itemizedlist"); + newLine(); + do { + m_writer->writeStartElement(dbNamespace, "listitem"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + generateFullName(it.value(), relative); + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // listitem + newLine(); + ++it; + } while (it != legaleseTexts.constEnd() && it.key() == text); + m_writer->writeEndElement(); // itemizedlist + newLine(); + } +} + +void DocBookGenerator::generateBrief(const Node *node) +{ + // From HtmlGenerator::generateBrief. Also see generateHeader, which is specifically dealing + // with the DocBook header (and thus wraps the brief in an abstract). + Text brief = node->doc().briefText(); + + if (!brief.isEmpty()) { + if (!brief.lastAtom()->string().endsWith('.')) + brief << Atom(Atom::String, "."); + + m_writer->writeStartElement(dbNamespace, "para"); + generateText(brief, node); + m_writer->writeEndElement(); // para + newLine(); + } +} + +bool DocBookGenerator::generateSince(const Node *node) +{ + // From Generator::generateSince. + if (!node->since().isEmpty()) { + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters("This " + typeString(node) + " was introduced"); + if (node->nodeType() == Node::Enum) + m_writer->writeCharacters(" or modified"); + m_writer->writeCharacters(" in " + formatSince(node) + "."); + m_writer->writeEndElement(); // para + newLine(); + + return true; + } + + return false; +} + +void DocBookGenerator::generateHeader(const QString &title, const QString &subTitle, + const Node *node) +{ + refMap.clear(); + + // Output the DocBook header. + m_writer->writeStartElement(dbNamespace, "info"); + newLine(); + m_writer->writeTextElement(dbNamespace, "title", title); + newLine(); + + if (!subTitle.isEmpty()) { + m_writer->writeTextElement(dbNamespace, "subtitle", subTitle); + newLine(); + } + + if (!m_project.isEmpty()) { + m_writer->writeTextElement(dbNamespace, "productname", m_project); + newLine(); + } + + if (!m_buildVersion.isEmpty()) { + m_writer->writeTextElement(dbNamespace, "edition", m_buildVersion); + newLine(); + } + + if (!m_projectDescription.isEmpty()) { + m_writer->writeTextElement(dbNamespace, "titleabbrev", m_projectDescription); + newLine(); + } + + // Deal with links. + // Adapted from HtmlGenerator::generateHeader (output part: no need to update a navigationLinks + // or useSeparator field, as this content is only output in the info tag, not in the main + // content). + if (node && !node->links().empty()) { + std::pair linkPair; + std::pair anchorPair; + const Node *linkNode; + + if (node->links().contains(Node::PreviousLink)) { + linkPair = node->links()[Node::PreviousLink]; + linkNode = m_qdb->findNodeForTarget(linkPair.first, node); + if (!linkNode || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + + m_writer->writeStartElement(dbNamespace, "extendedlink"); + m_writer->writeAttribute(xlinkNamespace, "type", "extended"); + m_writer->writeEmptyElement(dbNamespace, "link"); + m_writer->writeAttribute(xlinkNamespace, "to", anchorPair.first); + m_writer->writeAttribute(xlinkNamespace, "type", "arc"); + m_writer->writeAttribute(xlinkNamespace, "arcrole", "prev"); + if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) + m_writer->writeAttribute(xlinkNamespace, "title", anchorPair.second); + else + m_writer->writeAttribute(xlinkNamespace, "title", linkPair.second); + m_writer->writeEndElement(); // extendedlink + newLine(); + } + if (node->links().contains(Node::NextLink)) { + linkPair = node->links()[Node::NextLink]; + linkNode = m_qdb->findNodeForTarget(linkPair.first, node); + if (!linkNode || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + + m_writer->writeStartElement(dbNamespace, "extendedlink"); + m_writer->writeAttribute(xlinkNamespace, "type", "extended"); + m_writer->writeEmptyElement(dbNamespace, "link"); + m_writer->writeAttribute(xlinkNamespace, "to", anchorPair.first); + m_writer->writeAttribute(xlinkNamespace, "type", "arc"); + m_writer->writeAttribute(xlinkNamespace, "arcrole", "next"); + if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) + m_writer->writeAttribute(xlinkNamespace, "title", anchorPair.second); + else + m_writer->writeAttribute(xlinkNamespace, "title", linkPair.second); + m_writer->writeEndElement(); // extendedlink + newLine(); + } + if (node->links().contains(Node::StartLink)) { + linkPair = node->links()[Node::StartLink]; + linkNode = m_qdb->findNodeForTarget(linkPair.first, node); + if (!linkNode || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + + m_writer->writeStartElement(dbNamespace, "extendedlink"); + m_writer->writeAttribute(xlinkNamespace, "type", "extended"); + m_writer->writeEmptyElement(dbNamespace, "link"); + m_writer->writeAttribute(xlinkNamespace, "to", anchorPair.first); + m_writer->writeAttribute(xlinkNamespace, "type", "arc"); + m_writer->writeAttribute(xlinkNamespace, "arcrole", "start"); + if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) + m_writer->writeAttribute(xlinkNamespace, "title", anchorPair.second); + else + m_writer->writeAttribute(xlinkNamespace, "title", linkPair.second); + m_writer->writeEndElement(); // extendedlink + newLine(); + } + } + + // Deal with the abstract (what qdoc calls brief). + if (node) { + // Adapted from HtmlGenerator::generateBrief, without extraction marks. The parameter + // addLink is always false. Factoring this function out is not as easy as in HtmlGenerator: + // abstracts only happen in the header (info tag), slightly different tags must be used at + // other places. Also includes code from HtmlGenerator::generateCppReferencePage to handle + // the name spaces. + m_writer->writeStartElement(dbNamespace, "abstract"); + newLine(); + + bool generatedSomething = false; + + Text brief; + const NamespaceNode *ns = + node->isNamespace() ? static_cast(node) : nullptr; + if (ns && !ns->hasDoc() && ns->docNode()) { + NamespaceNode *NS = ns->docNode(); + brief << "The " << ns->name() + << " namespace includes the following elements from module " + << ns->tree()->camelCaseModuleName() << ". The full namespace is " + << "documented in module " << NS->tree()->camelCaseModuleName() + << Atom(Atom::LinkNode, fullDocumentLocation(NS)) + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) + << Atom(Atom::String, " here.") + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + } else { + brief = node->doc().briefText(); + } + + if (!brief.isEmpty()) { + if (!brief.lastAtom()->string().endsWith('.')) + brief << Atom(Atom::String, "."); + + m_writer->writeStartElement(dbNamespace, "para"); + generateText(brief, node); + m_writer->writeEndElement(); // para + newLine(); + + generatedSomething = true; + } + + // Generate other paragraphs that should go into the abstract. + generatedSomething |= generateStatus(node); + generatedSomething |= generateSince(node); + generatedSomething |= generateThreadSafeness(node); + + // An abstract cannot be empty, hence use the project description. + if (!generatedSomething) + m_writer->writeTextElement(dbNamespace, "para", m_projectDescription + "."); + + m_writer->writeEndElement(); // abstract + newLine(); + } + + // End of the DocBook header. + m_writer->writeEndElement(); // info + newLine(); +} + +void DocBookGenerator::closeTextSections() +{ + while (!sectionLevels.isEmpty()) { + sectionLevels.pop(); + endSection(); + } +} + +void DocBookGenerator::generateFooter() +{ + closeTextSections(); + m_writer->writeEndElement(); // article +} + +void DocBookGenerator::generateSimpleLink(const QString &href, const QString &text) +{ + m_writer->writeStartElement(dbNamespace, "link"); + m_writer->writeAttribute(xlinkNamespace, "href", href); + m_writer->writeCharacters(text); + m_writer->writeEndElement(); // link +} + +void DocBookGenerator::generateObsoleteMembers(const Sections §ions) +{ + // From HtmlGenerator::generateObsoleteMembersFile. + SectionPtrVector summary_spv; // Summaries are ignored in DocBook (table of contents). + SectionPtrVector details_spv; + if (!sections.hasObsoleteMembers(&summary_spv, &details_spv)) + return; + + Aggregate *aggregate = sections.aggregate(); + QString link; + if (useOutputSubdirs() && !Generator::outputSubdir().isEmpty()) + link = QString("../" + Generator::outputSubdir() + QLatin1Char('/')); + link += fileName(aggregate, fileExtension()); + aggregate->setObsoleteLink(link); + + startSection("obsolete", "Obsolete Members for " + aggregate->name()); + + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeAttribute("role", "bold"); + m_writer->writeCharacters("The following members of class "); + generateSimpleLink(linkForNode(aggregate, nullptr), aggregate->name()); + m_writer->writeCharacters(" are deprecated."); + m_writer->writeEndElement(); // emphasis bold + m_writer->writeCharacters(" We strongly advise against using them in new code."); + m_writer->writeEndElement(); // para + newLine(); + + for (const Section *section : details_spv) { + const QString &title = section->title(); + startSection(title.toLower(), title); + + const NodeVector &members = section->obsoleteMembers(); + NodeVector::ConstIterator m = members.constBegin(); + while (m != members.constEnd()) { + if ((*m)->access() != Access::Private) + generateDetailedMember(*m, aggregate); + ++m; + } + + endSection(); + } + + endSection(); +} + +/*! + Generates a separate file where obsolete members of the QML + type \a qcn are listed. The \a marker is used to generate + the section lists, which are then traversed and output here. + + Note that this function currently only handles correctly the + case where \a status is \c {Section::Deprecated}. + */ +void DocBookGenerator::generateObsoleteQmlMembers(const Sections §ions) +{ + // From HtmlGenerator::generateObsoleteQmlMembersFile. + SectionPtrVector summary_spv; // Summaries are not useful in DocBook. + SectionPtrVector details_spv; + if (!sections.hasObsoleteMembers(&summary_spv, &details_spv)) + return; + + Aggregate *aggregate = sections.aggregate(); + QString fn = fileName(aggregate, fileExtension()); + QString link; + if (useOutputSubdirs() && !Generator::outputSubdir().isEmpty()) + link = QString("../" + Generator::outputSubdir() + QLatin1Char('/')); + link += fn; + aggregate->setObsoleteLink(link); + + startSection("obsolete", "Obsolete Members for " + aggregate->name()); + + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeAttribute("role", "bold"); + m_writer->writeCharacters("The following members of QML type "); + generateSimpleLink(linkForNode(aggregate, nullptr), aggregate->name()); + m_writer->writeCharacters(" are deprecated."); + m_writer->writeEndElement(); // emphasis bold + m_writer->writeCharacters(" We strongly advise against using them in new code."); + m_writer->writeEndElement(); // para + newLine(); + + for (const auto *section : details_spv) { + const QString &title = section->title(); + startSection(title.toLower(), title); + + const NodeVector &members = section->obsoleteMembers(); + NodeVector::ConstIterator m = members.constBegin(); + while (m != members.constEnd()) { + if ((*m)->access() != Access::Private) + generateDetailedQmlMember(*m, aggregate); + ++m; + } + + endSection(); + } + + endSection(); +} + +static QString nodeToSynopsisTag(const Node *node) +{ + // Order from Node::nodeTypeString. + if (node->isClass() || node->isQmlType() || node->isQmlBasicType()) + return QStringLiteral("classsynopsis"); + if (node->isNamespace()) + return QStringLiteral("packagesynopsis"); + if (node->isPageNode()) { + node->doc().location().warning("Unexpected document node in nodeToSynopsisTag"); + return QString(); + } + if (node->isEnumType()) + return QStringLiteral("enumsynopsis"); + if (node->isTypedef()) + return QStringLiteral("typedefsynopsis"); + if (node->isFunction()) { + // Signals are also encoded as functions (including QML/JS ones). + const auto fn = static_cast(node); + if (fn->isCtor() || fn->isCCtor() || fn->isMCtor()) + return QStringLiteral("constructorsynopsis"); + if (fn->isDtor()) + return QStringLiteral("destructorsynopsis"); + return QStringLiteral("methodsynopsis"); + } + if (node->isProperty() || node->isVariable() || node->isQmlProperty()) + return QStringLiteral("fieldsynopsis"); + + node->doc().location().warning(QString("Unknown node tag %1").arg(node->nodeTypeString())); + return QStringLiteral("synopsis"); +} + +void DocBookGenerator::generateStartRequisite(const QString &description) +{ + m_writer->writeStartElement(dbNamespace, "varlistentry"); + newLine(); + m_writer->writeTextElement(dbNamespace, "term", description); + newLine(); + m_writer->writeStartElement(dbNamespace, "listitem"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); +} + +void DocBookGenerator::generateEndRequisite() +{ + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // listitem + newLine(); + m_writer->writeEndElement(); // varlistentry + newLine(); +} + +void DocBookGenerator::generateRequisite(const QString &description, const QString &value) +{ + generateStartRequisite(description); + m_writer->writeCharacters(value); + generateEndRequisite(); +} + +/*! + * \internal + * Generates the CMake (\a description) requisites + */ +void DocBookGenerator::generateCMakeRequisite(const QStringList &values) +{ + const QString description("CMake"); + generateStartRequisite(description); + m_writer->writeCharacters(values.first()); + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters(values.last()); + generateEndRequisite(); +} + +void DocBookGenerator::generateSortedNames(const ClassNode *cn, const QList &rc) +{ + // From Generator::appendSortedNames. + QMap classMap; + QList::ConstIterator r = rc.constBegin(); + while (r != rc.constEnd()) { + ClassNode *rcn = (*r).m_node; + if (rcn && rcn->access() == Access::Public && rcn->status() != Node::Internal + && !rcn->doc().isEmpty()) { + classMap[rcn->plainFullName(cn).toLower()] = rcn; + } + ++r; + } + + QStringList classNames = classMap.keys(); + classNames.sort(); + + int index = 0; + for (const QString &className : classNames) { + generateFullName(classMap.value(className), cn); + m_writer->writeCharacters(Utilities::comma(index++, classNames.size())); + } +} + +void DocBookGenerator::generateSortedQmlNames(const Node *base, const NodeList &subs) +{ + // From Generator::appendSortedQmlNames. + QMap classMap; + int index = 0; + + for (auto sub : subs) + if (!base->isQtQuickNode() || !sub->isQtQuickNode() + || (base->logicalModuleName() == sub->logicalModuleName())) + classMap[sub->plainFullName(base).toLower()] = sub; + + QStringList names = classMap.keys(); + names.sort(); + + for (const QString &name : names) { + generateFullName(classMap.value(name), base); + m_writer->writeCharacters(Utilities::comma(index++, names.size())); + } +} + +/*! + Lists the required imports and includes. +*/ +void DocBookGenerator::generateRequisites(const Aggregate *aggregate) +{ + // Adapted from HtmlGenerator::generateRequisites, but simplified: no need to store all the + // elements, they can be produced one by one. + m_writer->writeStartElement(dbNamespace, "variablelist"); + newLine(); + + // Includes. + if (!aggregate->includeFiles().isEmpty()) { + for (const QString &include : aggregate->includeFiles()) + generateRequisite("Header", include); + } + + // Since and project. + if (!aggregate->since().isEmpty()) + generateRequisite("Since", formatSince(aggregate)); + + if (aggregate->isClassNode() || aggregate->isNamespace()) { + // CMake and QT variable. + if (!aggregate->physicalModuleName().isEmpty()) { + const CollectionNode *cn = + m_qdb->getCollectionNode(aggregate->physicalModuleName(), Node::Module); + if (cn && !cn->qtCMakeComponent().isEmpty()) { + const QString qtComponent = "Qt" + QString::number(QT_VERSION_MAJOR); + const QString findpackageText = "find_package(" + qtComponent + + " REQUIRED COMPONENTS " + cn->qtCMakeComponent() + ")"; + const QString targetLinkLibrariesText = "target_link_libraries(mytarget PRIVATE " + + qtComponent + "::" + cn->qtCMakeComponent() + ")"; + const QStringList cmakeInfo { findpackageText, targetLinkLibrariesText }; + generateCMakeRequisite(cmakeInfo); + } + if (cn && !cn->qtVariable().isEmpty()) + generateRequisite("qmake", "QT += " + cn->qtVariable()); + } + } + + if (aggregate->nodeType() == Node::Class) { + // Instantiated by. + auto *classe = const_cast(static_cast(aggregate)); + if (classe->qmlElement() != nullptr && classe->status() != Node::Internal) { + generateStartRequisite("Inherited By"); + generateSortedNames(classe, classe->derivedClasses()); + generateEndRequisite(); + generateRequisite("Instantiated By", fullDocumentLocation(classe->qmlElement())); + } + + // Inherits. + QList::ConstIterator r; + if (!classe->baseClasses().isEmpty()) { + generateStartRequisite("Inherits"); + + r = classe->baseClasses().constBegin(); + int index = 0; + while (r != classe->baseClasses().constEnd()) { + if ((*r).m_node) { + generateFullName((*r).m_node, classe); + + if ((*r).m_access == Access::Protected) + m_writer->writeCharacters(" (protected)"); + else if ((*r).m_access == Access::Private) + m_writer->writeCharacters(" (private)"); + m_writer->writeCharacters( + Utilities::comma(index++, classe->baseClasses().size())); + } + ++r; + } + + generateEndRequisite(); + } + + // Inherited by. + if (!classe->derivedClasses().isEmpty()) { + generateStartRequisite("Inherited By"); + generateSortedNames(classe, classe->derivedClasses()); + generateEndRequisite(); + } + } + + m_writer->writeEndElement(); // variablelist + newLine(); +} + +/*! + Lists the required imports and includes. +*/ +void DocBookGenerator::generateQmlRequisites(const QmlTypeNode *qcn) +{ + // From HtmlGenerator::generateQmlRequisites, but simplified: no need to store all the elements, + // they can be produced one by one. + if (!qcn) + return; + + m_writer->writeStartElement(dbNamespace, "variablelist"); + newLine(); + + // Module name and version (i.e. import). + QString logicalModuleVersion; + const CollectionNode *collection = qcn->logicalModule(); + + // skip import statement for \internal collections + if (!collection || !collection->isInternal() || m_showInternal) { + logicalModuleVersion = + collection ? collection->logicalModuleVersion() : qcn->logicalModuleVersion(); + + QStringList importText; + importText << "import " + qcn->logicalModuleName(); + if (!logicalModuleVersion.isEmpty()) + importText << logicalModuleVersion; + generateRequisite("Import Statement", importText.join(' ')); + } + + // Since and project. + if (!qcn->since().isEmpty()) + generateRequisite("Since:", formatSince(qcn)); + + // Inherited by. + NodeList subs; + QmlTypeNode::subclasses(qcn, subs); + if (!subs.isEmpty()) { + generateStartRequisite("Inherited By:"); + generateSortedQmlNames(qcn, subs); + generateEndRequisite(); + } + + // Inherits. + QmlTypeNode *base = qcn->qmlBaseNode(); + while (base && base->isInternal()) { + base = base->qmlBaseNode(); + } + if (base) { + const Node *otherNode = nullptr; + Atom a = Atom(Atom::LinkNode, CodeMarker::stringForNode(base)); + QString link = getAutoLink(&a, qcn, &otherNode); + + generateStartRequisite("Inherits:"); + generateSimpleLink(link, base->name()); + generateEndRequisite(); + } + + // Instantiates. + ClassNode *cn = (const_cast(qcn))->classNode(); + if (cn && (cn->status() != Node::Internal)) { + Atom a = Atom(Atom::LinkNode, CodeMarker::stringForNode(qcn)); + + generateStartRequisite("Instantiates:"); + generateSimpleLink(fullDocumentLocation(cn), cn->name()); + generateEndRequisite(); + } + + m_writer->writeEndElement(); // variablelist + newLine(); +} + +bool DocBookGenerator::generateStatus(const Node *node) +{ + // From Generator::generateStatus. + switch (node->status()) { + case Node::Active: + // Do nothing. + return false; + case Node::Preliminary: + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeAttribute("role", "bold"); + m_writer->writeCharacters("This " + typeString(node) + + " is under development and is subject to change."); + m_writer->writeEndElement(); // emphasis + m_writer->writeEndElement(); // para + newLine(); + return true; + case Node::Deprecated: + m_writer->writeStartElement(dbNamespace, "para"); + if (node->isAggregate()) { + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeAttribute("role", "bold"); + } + m_writer->writeCharacters("This " + typeString(node) + " is deprecated"); + if (const QString &version = node->deprecatedSince(); !version.isEmpty()) + m_writer->writeCharacters(" since " + version); + m_writer->writeCharacters(". We strongly advise against using it in new code."); + if (node->isAggregate()) + m_writer->writeEndElement(); // emphasis + m_writer->writeEndElement(); // para + newLine(); + return true; + case Node::Internal: + default: + return false; + } +} + +/*! + Generate a list of function signatures. The function nodes + are in \a nodes. + */ +void DocBookGenerator::generateSignatureList(const NodeList &nodes) +{ + // From Generator::signatureList and Generator::appendSignature. + m_writer->writeStartElement(dbNamespace, "itemizedlist"); + newLine(); + + NodeList::ConstIterator n = nodes.constBegin(); + while (n != nodes.constEnd()) { + m_writer->writeStartElement(dbNamespace, "listitem"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + + generateSimpleLink(currentGenerator()->fullDocumentLocation(*n), + (*n)->signature(false, true)); + + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // itemizedlist + newLine(); + ++n; + } + + m_writer->writeEndElement(); // itemizedlist + newLine(); +} + +/*! + Generates text that explains how threadsafe and/or reentrant + \a node is. + */ +bool DocBookGenerator::generateThreadSafeness(const Node *node) +{ + // From Generator::generateThreadSafeness + Node::ThreadSafeness ts = node->threadSafeness(); + + const Node *reentrantNode; + Atom reentrantAtom = Atom(Atom::Link, "reentrant"); + QString linkReentrant = getAutoLink(&reentrantAtom, node, &reentrantNode); + const Node *threadSafeNode; + Atom threadSafeAtom = Atom(Atom::Link, "thread-safe"); + QString linkThreadSafe = getAutoLink(&threadSafeAtom, node, &threadSafeNode); + + if (ts == Node::NonReentrant) { + m_writer->writeStartElement(dbNamespace, "warning"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters("This " + typeString(node) + " is not "); + generateSimpleLink(linkReentrant, "reentrant"); + m_writer->writeCharacters("."); + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // warning + + return true; + } + if (ts == Node::Reentrant || ts == Node::ThreadSafe) { + m_writer->writeStartElement(dbNamespace, "note"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + + if (node->isAggregate()) { + m_writer->writeCharacters("All functions in this " + typeString(node) + " are "); + if (ts == Node::ThreadSafe) + generateSimpleLink(linkThreadSafe, "thread-safe"); + else + generateSimpleLink(linkReentrant, "reentrant"); + + NodeList reentrant; + NodeList threadsafe; + NodeList nonreentrant; + bool exceptions = hasExceptions(node, reentrant, threadsafe, nonreentrant); + if (!exceptions || (ts == Node::Reentrant && !threadsafe.isEmpty())) { + m_writer->writeCharacters("."); + m_writer->writeEndElement(); // para + newLine(); + } else { + m_writer->writeCharacters(" with the following exceptions:"); + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + + if (ts == Node::Reentrant) { + if (!nonreentrant.isEmpty()) { + m_writer->writeCharacters("These functions are not "); + generateSimpleLink(linkReentrant, "reentrant"); + m_writer->writeCharacters(":"); + m_writer->writeEndElement(); // para + newLine(); + generateSignatureList(nonreentrant); + } + if (!threadsafe.isEmpty()) { + m_writer->writeCharacters("These functions are also "); + generateSimpleLink(linkThreadSafe, "thread-safe"); + m_writer->writeCharacters(":"); + m_writer->writeEndElement(); // para + newLine(); + generateSignatureList(threadsafe); + } + } else { // thread-safe + if (!reentrant.isEmpty()) { + m_writer->writeCharacters("These functions are only "); + generateSimpleLink(linkReentrant, "reentrant"); + m_writer->writeCharacters(":"); + m_writer->writeEndElement(); // para + newLine(); + generateSignatureList(reentrant); + } + if (!nonreentrant.isEmpty()) { + m_writer->writeCharacters("These functions are not "); + generateSimpleLink(linkReentrant, "reentrant"); + m_writer->writeCharacters(":"); + m_writer->writeEndElement(); // para + newLine(); + generateSignatureList(nonreentrant); + } + } + } + } else { + m_writer->writeCharacters("This " + typeString(node) + " is "); + if (ts == Node::ThreadSafe) + generateSimpleLink(linkThreadSafe, "thread-safe"); + else + generateSimpleLink(linkReentrant, "reentrant"); + m_writer->writeCharacters("."); + m_writer->writeEndElement(); // para + newLine(); + } + m_writer->writeEndElement(); // note + newLine(); + + return true; + } + + return false; +} + +/*! + Generate the body of the documentation from the qdoc comment + found with the entity represented by the \a node. + */ +void DocBookGenerator::generateBody(const Node *node) +{ + // From Generator::generateBody, without warnings. + const FunctionNode *fn = node->isFunction() ? static_cast(node) : nullptr; + + if (!node->hasDoc() && !node->hasSharedDoc()) { + /* + Test for special function, like a destructor or copy constructor, + that has no documentation. + */ + if (fn) { + QString t; + if (fn->isDtor()) { + t = "Destroys the instance of " + fn->parent()->name() + "."; + if (fn->isVirtual()) + t += " The destructor is virtual."; + } else if (fn->isCtor()) { + t = "Default constructs an instance of " + fn->parent()->name() + "."; + } else if (fn->isCCtor()) { + t = "Copy constructor."; + } else if (fn->isMCtor()) { + t = "Move-copy constructor."; + } else if (fn->isCAssign()) { + t = "Copy-assignment constructor."; + } else if (fn->isMAssign()) { + t = "Move-assignment constructor."; + } + + if (!t.isEmpty()) + m_writer->writeTextElement(dbNamespace, "para", t); + } + } else if (!node->isSharingComment()) { + // Reimplements clause and type alias info precede body text + if (fn && !fn->overridesThis().isEmpty()) + generateReimplementsClause(fn); + else if (node->isProperty()) { + if (static_cast(node)->propertyType() != PropertyNode::Standard) + generateAddendum(node, BindableProperty, nullptr, false); + } + if (!generateText(node->doc().body(), node)) { + if (node->isMarkedReimp()) + return; + } + + if (fn) { + if (fn->isQmlSignal()) + generateAddendum(node, QmlSignalHandler, nullptr, true); + if (fn->isPrivateSignal()) + generateAddendum(node, PrivateSignal, nullptr, true); + if (fn->isInvokable()) + generateAddendum(node, Invokable, nullptr, true); + if (fn->hasAssociatedProperties()) + generateAddendum(node, AssociatedProperties, nullptr, true); + } + + // Warning generation skipped with respect to Generator::generateBody. + } + + generateRequiredLinks(node); +} + +/*! + Generates either a link to the project folder for example \a node, or a list + of links files/images if 'url.examples config' variable is not defined. + + Does nothing for non-example nodes. +*/ +void DocBookGenerator::generateRequiredLinks(const Node *node) +{ + // From Generator::generateRequiredLinks. + if (!node->isExample()) + return; + + const auto en = static_cast(node); + QString exampleUrl = Config::instance().getString(CONFIG_URL + Config::dot + CONFIG_EXAMPLES); + + if (exampleUrl.isEmpty()) { + if (!en->noAutoList()) { + generateFileList(en, false); // files + generateFileList(en, true); // images + } + } else { + generateLinkToExample(en, exampleUrl); + } +} + +/*! + The path to the example replaces a placeholder '\1' character if + one is found in the \a baseUrl string. If no such placeholder is found, + the path is appended to \a baseUrl, after a '/' character if \a baseUrl did + not already end in one. +*/ +void DocBookGenerator::generateLinkToExample(const ExampleNode *en, const QString &baseUrl) +{ + // From Generator::generateLinkToExample. + QString exampleUrl(baseUrl); + QString link; +#ifndef QT_BOOTSTRAPPED + link = QUrl(exampleUrl).host(); +#endif + if (!link.isEmpty()) + link.prepend(" @ "); + link.prepend("Example project"); + + const QLatin1Char separator('/'); + const QLatin1Char placeholder('\1'); + if (!exampleUrl.contains(placeholder)) { + if (!exampleUrl.endsWith(separator)) + exampleUrl += separator; + exampleUrl += placeholder; + } + + // Construct a path to the example; / + QStringList path = QStringList() + << Config::instance().getString(CONFIG_EXAMPLESINSTALLPATH) << en->name(); + path.removeAll(QString()); + + // Write the link to the example. Typically, this link comes after sections, hence + // wrap it in a section too. + startSection("Example project"); + + m_writer->writeStartElement(dbNamespace, "para"); + generateSimpleLink(exampleUrl.replace(placeholder, path.join(separator)), link); + m_writer->writeEndElement(); // para + newLine(); + + endSection(); +} + +// TODO: [multi-purpose-function-with-flag][generate-file-list] + +/*! + This function is called when the documentation for an example is + being formatted. It outputs a list of files for the example, which + can be the example's source files or the list of images used by the + example. The images are copied into a subtree of + \c{...doc/html/images/used-in-examples/...} +*/ +void DocBookGenerator::generateFileList(const ExampleNode *en, bool images) +{ + // TODO: [possibly-stale-duplicate-code][generator-insufficient-structural-abstraction] + // Review and compare this code with + // Generator::generateFileList. + // Some subtle changes that might be semantically equivalent are + // present between the two. + // Supposedly, this version is to be considered stale compared to + // Generator's one and it might be possible to remove it in favor + // of that as long as the difference in output are taken into consideration. + + // From Generator::generateFileList + QString tag; + QStringList paths; + if (images) { + paths = en->images(); + tag = "Images:"; + } else { // files + paths = en->files(); + tag = "Files:"; + } + std::sort(paths.begin(), paths.end(), Generator::comparePaths); + + if (paths.isEmpty()) + return; + + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters(tag); + m_writer->writeEndElement(); // para + newLine(); + + startSection("List of Files"); + + m_writer->writeStartElement(dbNamespace, "itemizedlist"); + + for (const auto &path : std::as_const(paths)) { + auto maybe_resolved_file{file_resolver.resolve(path)}; + if (!maybe_resolved_file) { + // TODO: [uncentralized-admonition][failed-resolve-file] + QString details = std::transform_reduce( + file_resolver.get_search_directories().cbegin(), + file_resolver.get_search_directories().cend(), + u"Searched directories:"_qs, + std::plus(), + [](const DirectoryPath& directory_path){ return " " + directory_path.value(); } + ); + + en->location().warning(u"Cannot find file to quote from: %1"_qs.arg(path), details); + + continue; + } + + auto file{*maybe_resolved_file}; + if (images) addImageToCopy(en, file); + else generateExampleFilePage(en, file); + + m_writer->writeStartElement(dbNamespace, "listitem"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + generateSimpleLink(file.get_query(), file.get_query()); + m_writer->writeEndElement(); // para + m_writer->writeEndElement(); // listitem + newLine(); + } + + m_writer->writeEndElement(); // itemizedlist + newLine(); + + endSection(); +} + +/*! + Generate a file with the contents of a C++ or QML source file. + */ +void DocBookGenerator::generateExampleFilePage(const Node *node, ResolvedFile resolved_file, CodeMarker*) +{ + // TODO: [generator-insufficient-structural-abstraction] + + // From HtmlGenerator::generateExampleFilePage. + if (!node->isExample()) + return; + + // TODO: Understand if this is safe. + const auto en = static_cast(node); + + // Store current (active) writer + QXmlStreamWriter *currentWriter = m_writer; + m_writer = startDocument(en, resolved_file.get_path()); + generateHeader(en->fullTitle(), en->subtitle(), en); + + Text text; + Quoter quoter; + Doc::quoteFromFile(en->doc().location(), quoter, resolved_file); + QString code = quoter.quoteTo(en->location(), QString(), QString()); + CodeMarker *codeMarker = CodeMarker::markerForFileName(resolved_file.get_path()); + text << Atom(codeMarker->atomType(), code); + Atom a(codeMarker->atomType(), code); + generateText(text, en); + + endDocument(); + // Restore writer + m_writer = currentWriter; +} + +void DocBookGenerator::generateReimplementsClause(const FunctionNode *fn) +{ + // From Generator::generateReimplementsClause, without warning generation. + if (!fn->overridesThis().isEmpty()) { + if (fn->parent()->isClassNode()) { + auto cn = static_cast(fn->parent()); + const FunctionNode *overrides = cn->findOverriddenFunction(fn); + if (overrides && !overrides->isPrivate() && !overrides->parent()->isPrivate()) { + if (overrides->hasDoc()) { + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters("Reimplements: "); + QString fullName = + overrides->parent()->name() + "::" + overrides->signature(false, true); + generateFullName(overrides->parent(), fullName, overrides); + m_writer->writeCharacters("."); + return; + } + } + const PropertyNode *sameName = cn->findOverriddenProperty(fn); + if (sameName && sameName->hasDoc()) { + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters("Reimplements an access function for property: "); + QString fullName = sameName->parent()->name() + "::" + sameName->name(); + generateFullName(sameName->parent(), fullName, sameName); + m_writer->writeCharacters("."); + return; + } + } + } +} + +void DocBookGenerator::generateAlsoList(const Node *node) +{ + // From Generator::generateAlsoList. + QList alsoList = node->doc().alsoList(); + supplementAlsoList(node, alsoList); + + if (!alsoList.isEmpty()) { + startSection("See Also"); + + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeCharacters("See also "); + m_writer->writeEndElement(); // emphasis + newLine(); + + m_writer->writeStartElement(dbNamespace, "simplelist"); + m_writer->writeAttribute("type", "vert"); + m_writer->writeAttribute("role", "see-also"); + newLine(); + + for (const Text &text : alsoList) { + m_writer->writeStartElement(dbNamespace, "member"); + generateText(text, node); + m_writer->writeEndElement(); // member + newLine(); + } + + m_writer->writeEndElement(); // simplelist + newLine(); + + m_writer->writeEndElement(); // para + newLine(); + + endSection(); + } +} + +/*! + Generate a list of maintainers in the output + */ +void DocBookGenerator::generateMaintainerList(const Aggregate *node) +{ + // From Generator::generateMaintainerList. + const QStringList sl = getMetadataElements(node, "maintainer"); + + if (!sl.isEmpty()) { + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeCharacters("Maintained by: "); + m_writer->writeEndElement(); // emphasis + newLine(); + + m_writer->writeStartElement(dbNamespace, "simplelist"); + m_writer->writeAttribute("type", "vert"); + m_writer->writeAttribute("role", "maintainer"); + for (const QString &maintainer : sl) { + m_writer->writeStartElement(dbNamespace, "member"); + m_writer->writeCharacters(maintainer); + m_writer->writeEndElement(); // member + newLine(); + } + m_writer->writeEndElement(); // simplelist + newLine(); + + m_writer->writeEndElement(); // para + } +} + +/*! + Open a new file to write XML contents, including the DocBook + opening tag. + */ +QXmlStreamWriter *DocBookGenerator::startGenericDocument(const Node *node, const QString &fileName) +{ + QFile *outFile = openSubPageFile(node, fileName); + m_writer = new QXmlStreamWriter(outFile); + m_writer->setAutoFormatting(false); // We need a precise handling of line feeds. + + m_writer->writeStartDocument(); + newLine(); + m_writer->writeNamespace(dbNamespace, "db"); + m_writer->writeNamespace(xlinkNamespace, "xlink"); + m_writer->writeStartElement(dbNamespace, "article"); + m_writer->writeAttribute("version", "5.2"); + if (!m_naturalLanguage.isEmpty()) + m_writer->writeAttribute("xml:lang", m_naturalLanguage); + newLine(); + + // Empty the section stack for the new document. + sectionLevels.resize(0); + + return m_writer; +} + +QXmlStreamWriter *DocBookGenerator::startDocument(const Node *node) +{ + refMap.clear(); + + QString fileName = Generator::fileName(node, fileExtension()); + return startGenericDocument(node, fileName); +} + +QXmlStreamWriter *DocBookGenerator::startDocument(const ExampleNode *en, const QString &file) +{ + QString fileName = linkForExampleFile(file); + return startGenericDocument(en, fileName); +} + +void DocBookGenerator::endDocument() +{ + m_writer->writeEndElement(); // article + m_writer->writeEndDocument(); + m_writer->device()->close(); + delete m_writer->device(); + delete m_writer; + m_writer = nullptr; +} + +/*! + Generate a reference page for the C++ class, namespace, or + header file documented in \a node. + */ +void DocBookGenerator::generateCppReferencePage(Node *node) +{ + // Based on HtmlGenerator::generateCppReferencePage. + Q_ASSERT(node->isAggregate()); + const auto aggregate = static_cast(node); + + QString title; + QString rawTitle; + QString fullTitle; + if (aggregate->isNamespace()) { + rawTitle = aggregate->plainName(); + fullTitle = aggregate->plainFullName(); + title = rawTitle + " Namespace"; + } else if (aggregate->isClass()) { + rawTitle = aggregate->plainName(); + QString templateDecl = node->templateDecl(); + if (!templateDecl.isEmpty()) + fullTitle = QString("%1 %2 ").arg(templateDecl, aggregate->typeWord(false)); + fullTitle += aggregate->plainFullName(); + title = rawTitle + QLatin1Char(' ') + aggregate->typeWord(true); + } else if (aggregate->isHeader()) { + title = fullTitle = rawTitle = aggregate->fullTitle(); + } + + QString subtitleText; + if (rawTitle != fullTitle) + subtitleText = fullTitle; + + // Start producing the DocBook file. + m_writer = startDocument(node); + + // Info container. + generateHeader(title, subtitleText, aggregate); + + generateRequisites(aggregate); + generateStatus(aggregate); + + // Element synopsis. + generateDocBookSynopsis(node); + + // Actual content. + if (!aggregate->doc().isEmpty()) { + startSection("details", "Detailed Description"); + + generateBody(aggregate); + generateAlsoList(aggregate); + generateMaintainerList(aggregate); + + endSection(); + } + + Sections sections(const_cast(aggregate)); + auto *sectionVector = + (aggregate->isNamespace() || aggregate->isHeader()) ? + §ions.stdDetailsSections() : + §ions.stdCppClassDetailsSections(); + SectionVector::ConstIterator section = sectionVector->constBegin(); + while (section != sectionVector->constEnd()) { + bool headerGenerated = false; + NodeVector::ConstIterator member = section->members().constBegin(); + while (member != section->members().constEnd()) { + if ((*member)->access() == Access::Private) { // ### check necessary? + ++member; + continue; + } + + if (!headerGenerated) { + // Equivalent to h2 + startSection(section->title().toLower(), section->title()); + headerGenerated = true; + } + + if ((*member)->nodeType() != Node::Class) { + // This function starts its own section. + generateDetailedMember(*member, aggregate); + } else { + startSectionBegin(); + m_writer->writeCharacters("class "); + generateFullName(*member, aggregate); + startSectionEnd(); + generateBrief(*member); + endSection(); + } + + ++member; + } + + if (headerGenerated) + endSection(); + ++section; + } + + generateObsoleteMembers(sections); + + endDocument(); +} + +void DocBookGenerator::generateSynopsisInfo(const QString &key, const QString &value) +{ + m_writer->writeStartElement(dbNamespace, "synopsisinfo"); + m_writer->writeAttribute("role", key); + m_writer->writeCharacters(value); + m_writer->writeEndElement(); // synopsisinfo + newLine(); +} + +void DocBookGenerator::generateModifier(const QString &value) +{ + m_writer->writeTextElement(dbNamespace, "modifier", value); + newLine(); +} + +/*! + Generate the metadata for the given \a node in DocBook. + */ +void DocBookGenerator::generateDocBookSynopsis(const Node *node) +{ + if (!node) + return; + + // From Generator::generateStatus, HtmlGenerator::generateRequisites, + // Generator::generateThreadSafeness, QDocIndexFiles::generateIndexSection. + + // This function is the only place where DocBook extensions are used. + if (m_config->getBool(CONFIG_DOCBOOKEXTENSIONS)) + return; + + // Nothing to export in some cases. Note that isSharedCommentNode() returns + // true also for QML property groups. + if (node->isGroup() || node->isSharedCommentNode() || node->isModule() || node->isJsModule() + || node->isQmlModule() || node->isPageNode()) + return; + + // Cast the node to several subtypes (null pointer if the node is not of the required type). + const Aggregate *aggregate = + node->isAggregate() ? static_cast(node) : nullptr; + const ClassNode *classNode = node->isClass() ? static_cast(node) : nullptr; + const FunctionNode *functionNode = + node->isFunction() ? static_cast(node) : nullptr; + const PropertyNode *propertyNode = + node->isProperty() ? static_cast(node) : nullptr; + const VariableNode *variableNode = + node->isVariable() ? static_cast(node) : nullptr; + const EnumNode *enumNode = node->isEnumType() ? static_cast(node) : nullptr; + const QmlPropertyNode *qpn = + node->isQmlProperty() ? static_cast(node) : nullptr; + const QmlTypeNode *qcn = node->isQmlType() ? static_cast(node) : nullptr; + // Typedefs are ignored, as they correspond to enums. + // Groups and modules are ignored. + // Documents are ignored, they have no interesting metadata. + + // Start the synopsis tag. + QString synopsisTag = nodeToSynopsisTag(node); + m_writer->writeStartElement(dbNamespace, synopsisTag); + newLine(); + + // Name and basic properties of each tag (like types and parameters). + if (node->isClass()) { + m_writer->writeStartElement(dbNamespace, "ooclass"); + m_writer->writeTextElement(dbNamespace, "classname", node->plainName()); + m_writer->writeEndElement(); // ooclass + newLine(); + } else if (node->isNamespace()) { + m_writer->writeTextElement(dbNamespace, "namespacename", node->plainName()); + newLine(); + } else if (node->isQmlType()) { + m_writer->writeStartElement(dbNamespace, "ooclass"); + m_writer->writeTextElement(dbNamespace, "classname", node->plainName()); + m_writer->writeEndElement(); // ooclass + newLine(); + if (!qcn->groupNames().isEmpty()) + m_writer->writeAttribute("groups", qcn->groupNames().join(QLatin1Char(','))); + } else if (node->isProperty()) { + m_writer->writeTextElement(dbNamespace, "modifier", "(Qt property)"); + newLine(); + m_writer->writeTextElement(dbNamespace, "type", propertyNode->dataType()); + newLine(); + m_writer->writeTextElement(dbNamespace, "varname", node->plainName()); + newLine(); + } else if (node->isVariable()) { + if (variableNode->isStatic()) { + m_writer->writeTextElement(dbNamespace, "modifier", "static"); + newLine(); + } + m_writer->writeTextElement(dbNamespace, "type", variableNode->dataType()); + newLine(); + m_writer->writeTextElement(dbNamespace, "varname", node->plainName()); + newLine(); + } else if (node->isEnumType()) { + m_writer->writeTextElement(dbNamespace, "enumname", node->plainName()); + newLine(); + } else if (node->isQmlProperty()) { + QString name = node->name(); + if (qpn->isAttached()) + name.prepend(qpn->element() + QLatin1Char('.')); + + m_writer->writeTextElement(dbNamespace, "type", qpn->dataType()); + newLine(); + m_writer->writeTextElement(dbNamespace, "varname", name); + newLine(); + + if (qpn->isAttached()) { + m_writer->writeTextElement(dbNamespace, "modifier", "attached"); + newLine(); + } + if ((const_cast(qpn))->isWritable()) { + m_writer->writeTextElement(dbNamespace, "modifier", "writable"); + newLine(); + } + if ((const_cast(qpn))->isRequired()) { + m_writer->writeTextElement(dbNamespace, "modifier", "required"); + newLine(); + } + if (qpn->isReadOnly()) { + generateModifier("[read-only]"); + newLine(); + } + if (qpn->isDefault()) { + generateModifier("[default]"); + newLine(); + } + } else if (node->isFunction()) { + if (functionNode->virtualness() != "non") + generateModifier("virtual"); + if (functionNode->isConst()) + generateModifier("const"); + if (functionNode->isStatic()) + generateModifier("static"); + + if (!functionNode->isMacro() && !functionNode->isCtor() && + !functionNode->isCCtor() && !functionNode->isMCtor() + && !functionNode->isDtor()) { + if (functionNode->returnType() == "void") + m_writer->writeEmptyElement(dbNamespace, "void"); + else + m_writer->writeTextElement(dbNamespace, "type", functionNode->returnType()); + newLine(); + } + // Remove two characters from the plain name to only get the name + // of the method without parentheses. + m_writer->writeTextElement(dbNamespace, "methodname", node->plainName().chopped(2)); + newLine(); + + if (!functionNode->isMacro() && functionNode->parameters().isEmpty()) { + m_writer->writeEmptyElement(dbNamespace, "void"); + newLine(); + } + + const Parameters &lp = functionNode->parameters(); + for (int i = 0; i < lp.count(); ++i) { + const Parameter ¶meter = lp.at(i); + m_writer->writeStartElement(dbNamespace, "methodparam"); + newLine(); + m_writer->writeTextElement(dbNamespace, "type", parameter.type()); + newLine(); + m_writer->writeTextElement(dbNamespace, "parameter", parameter.name()); + newLine(); + if (!parameter.defaultValue().isEmpty()) { + m_writer->writeTextElement(dbNamespace, "initializer", parameter.defaultValue()); + newLine(); + } + m_writer->writeEndElement(); // methodparam + newLine(); + } + + if (functionNode->isOverload()) + generateModifier("overload"); + if (functionNode->isDefault()) + generateModifier("default"); + if (functionNode->isFinal()) + generateModifier("final"); + if (functionNode->isOverride()) + generateModifier("override"); + + generateSynopsisInfo("meta", functionNode->metanessString()); + + if (functionNode->isOverload()) + generateSynopsisInfo("overload-number", + QString::number(functionNode->overloadNumber())); + + if (functionNode->isRef()) + generateSynopsisInfo("refness", QString::number(1)); + else if (functionNode->isRefRef()) + generateSynopsisInfo("refness", QString::number(2)); + + if (functionNode->hasAssociatedProperties()) { + QStringList associatedProperties; + const NodeList &nodes = functionNode->associatedProperties(); + for (const Node *n : nodes) { + const auto pn = static_cast(n); + associatedProperties << pn->name(); + } + associatedProperties.sort(); + generateSynopsisInfo("associated-property", + associatedProperties.join(QLatin1Char(','))); + } + + QString signature = functionNode->signature(false, false); + // 'const' is already part of FunctionNode::signature() + if (functionNode->isFinal()) + signature += " final"; + if (functionNode->isOverride()) + signature += " override"; + if (functionNode->isPureVirtual()) + signature += " = 0"; + else if (functionNode->isDefault()) + signature += " = default"; + generateSynopsisInfo("signature", signature); + } else if (node->isTypedef()) { + m_writer->writeTextElement(dbNamespace, "type", node->plainName()); + } else { + node->doc().location().warning( + QStringLiteral("Unexpected node type in generateDocBookSynopsis: %1") + .arg(node->nodeTypeString())); + newLine(); + } + + // Accessibility status. + if (!node->isPageNode() && !node->isCollectionNode()) { + switch (node->access()) { + case Access::Public: + generateSynopsisInfo("access", "public"); + break; + case Access::Protected: + generateSynopsisInfo("access", "protected"); + break; + case Access::Private: + generateSynopsisInfo("access", "private"); + break; + default: + break; + } + if (node->isAbstract()) + generateSynopsisInfo("abstract", "true"); + } + + // Status. + switch (node->status()) { + case Node::Active: + generateSynopsisInfo("status", "active"); + break; + case Node::Preliminary: + generateSynopsisInfo("status", "preliminary"); + break; + case Node::Deprecated: + generateSynopsisInfo("status", "deprecated"); + break; + case Node::Internal: + generateSynopsisInfo("status", "internal"); + break; + default: + generateSynopsisInfo("status", "main"); + break; + } + + // C++ classes and name spaces. + if (aggregate) { + // Includes. + if (!aggregate->includeFiles().isEmpty()) { + for (const QString &include : aggregate->includeFiles()) + generateSynopsisInfo("headers", include); + } + + // Since and project. + if (!aggregate->since().isEmpty()) + generateSynopsisInfo("since", formatSince(aggregate)); + + if (aggregate->nodeType() == Node::Class || aggregate->nodeType() == Node::Namespace) { + // CMake and QT variable. + if (!aggregate->physicalModuleName().isEmpty()) { + const CollectionNode *cn = + m_qdb->getCollectionNode(aggregate->physicalModuleName(), Node::Module); + if (cn && !cn->qtCMakeComponent().isEmpty()) { + const QString qtComponent = "Qt" + QString::number(QT_VERSION_MAJOR); + const QString findpackageText = "find_package(" + qtComponent + + " REQUIRED COMPONENTS " + cn->qtCMakeComponent() + ")"; + const QString targetLinkLibrariesText = + "target_link_libraries(mytarget PRIVATE " + qtComponent + "::" + cn->qtCMakeComponent() + + ")"; + generateSynopsisInfo("cmake-find-package", findpackageText); + generateSynopsisInfo("cmake-target-link-libraries", targetLinkLibrariesText); + } + if (cn && !cn->qtVariable().isEmpty()) + generateSynopsisInfo("qmake", "QT += " + cn->qtVariable()); + } + } + + if (aggregate->nodeType() == Node::Class) { + // Instantiated by. + auto *classe = const_cast(static_cast(aggregate)); + if (classe->qmlElement() != nullptr && classe->status() != Node::Internal) { + const Node *otherNode = nullptr; + Atom a = Atom(Atom::LinkNode, CodeMarker::stringForNode(classe->qmlElement())); + QString link = getAutoLink(&a, aggregate, &otherNode); + + m_writer->writeStartElement(dbNamespace, "synopsisinfo"); + m_writer->writeAttribute(dbNamespace, "role", "instantiatedBy"); + generateSimpleLink(link, classe->qmlElement()->name()); + m_writer->writeEndElement(); // synopsisinfo + newLine(); + } + + // Inherits. + QList::ConstIterator r; + if (!classe->baseClasses().isEmpty()) { + m_writer->writeStartElement(dbNamespace, "synopsisinfo"); + m_writer->writeAttribute(dbNamespace, "role", "inherits"); + + r = classe->baseClasses().constBegin(); + int index = 0; + while (r != classe->baseClasses().constEnd()) { + if ((*r).m_node) { + generateFullName((*r).m_node, classe); + + if ((*r).m_access == Access::Protected) { + m_writer->writeCharacters(" (protected)"); + } else if ((*r).m_access == Access::Private) { + m_writer->writeCharacters(" (private)"); + } + m_writer->writeCharacters( + Utilities::comma(index++, classe->baseClasses().size())); + } + ++r; + } + + m_writer->writeEndElement(); // synopsisinfo + newLine(); + } + + // Inherited by. + if (!classe->derivedClasses().isEmpty()) { + m_writer->writeStartElement(dbNamespace, "synopsisinfo"); + m_writer->writeAttribute(dbNamespace, "role", "inheritedBy"); + generateSortedNames(classe, classe->derivedClasses()); + m_writer->writeEndElement(); // synopsisinfo + newLine(); + } + } + } + + // QML types. + if (qcn) { + // Module name and version (i.e. import). + QString logicalModuleVersion; + const CollectionNode *collection = + m_qdb->getCollectionNode(qcn->logicalModuleName(), qcn->nodeType()); + if (collection) + logicalModuleVersion = collection->logicalModuleVersion(); + else + logicalModuleVersion = qcn->logicalModuleVersion(); + + QStringList importText; + importText << "import " + qcn->logicalModuleName(); + if (!logicalModuleVersion.isEmpty()) + importText << logicalModuleVersion; + generateSynopsisInfo("import", importText.join(' ')); + + // Since and project. + if (!qcn->since().isEmpty()) + generateSynopsisInfo("since", formatSince(qcn)); + + // Inherited by. + NodeList subs; + QmlTypeNode::subclasses(qcn, subs); + if (!subs.isEmpty()) { + m_writer->writeTextElement(dbNamespace, "synopsisinfo"); + m_writer->writeAttribute(dbNamespace, "role", "inheritedBy"); + generateSortedQmlNames(qcn, subs); + m_writer->writeEndElement(); // synopsisinfo + newLine(); + } + + // Inherits. + QmlTypeNode *base = qcn->qmlBaseNode(); + while (base && base->isInternal()) + base = base->qmlBaseNode(); + if (base) { + const Node *otherNode = nullptr; + Atom a = Atom(Atom::LinkNode, CodeMarker::stringForNode(base)); + QString link = getAutoLink(&a, base, &otherNode); + + m_writer->writeTextElement(dbNamespace, "synopsisinfo"); + m_writer->writeAttribute(dbNamespace, "role", "inherits"); + generateSimpleLink(link, base->name()); + m_writer->writeEndElement(); // synopsisinfo + newLine(); + } + + // Instantiates. + ClassNode *cn = (const_cast(qcn))->classNode(); + if (cn && (cn->status() != Node::Internal)) { + const Node *otherNode = nullptr; + Atom a = Atom(Atom::LinkNode, CodeMarker::stringForNode(qcn)); + QString link = getAutoLink(&a, cn, &otherNode); + + m_writer->writeTextElement(dbNamespace, "synopsisinfo"); + m_writer->writeAttribute(dbNamespace, "role", "instantiates"); + generateSimpleLink(link, cn->name()); + m_writer->writeEndElement(); // synopsisinfo + newLine(); + } + } + + // Thread safeness. + switch (node->threadSafeness()) { + case Node::UnspecifiedSafeness: + generateSynopsisInfo("threadsafeness", "unspecified"); + break; + case Node::NonReentrant: + generateSynopsisInfo("threadsafeness", "non-reentrant"); + break; + case Node::Reentrant: + generateSynopsisInfo("threadsafeness", "reentrant"); + break; + case Node::ThreadSafe: + generateSynopsisInfo("threadsafeness", "thread safe"); + break; + default: + generateSynopsisInfo("threadsafeness", "unspecified"); + break; + } + + // Module. + if (!node->physicalModuleName().isEmpty()) + generateSynopsisInfo("module", node->physicalModuleName()); + + // Group. + if (classNode && !classNode->groupNames().isEmpty()) { + generateSynopsisInfo("groups", classNode->groupNames().join(QLatin1Char(','))); + } else if (qcn && !qcn->groupNames().isEmpty()) { + generateSynopsisInfo("groups", qcn->groupNames().join(QLatin1Char(','))); + } + + // Properties. + if (propertyNode) { + for (const Node *fnNode : propertyNode->getters()) { + if (fnNode) { + const auto funcNode = static_cast(fnNode); + generateSynopsisInfo("getter", funcNode->name()); + } + } + for (const Node *fnNode : propertyNode->setters()) { + if (fnNode) { + const auto funcNode = static_cast(fnNode); + generateSynopsisInfo("setter", funcNode->name()); + } + } + for (const Node *fnNode : propertyNode->resetters()) { + if (fnNode) { + const auto funcNode = static_cast(fnNode); + generateSynopsisInfo("resetter", funcNode->name()); + } + } + for (const Node *fnNode : propertyNode->notifiers()) { + if (fnNode) { + const auto funcNode = static_cast(fnNode); + generateSynopsisInfo("notifier", funcNode->name()); + } + } + } + + // Enums and typedefs. + if (enumNode) { + for (const EnumItem &item : enumNode->items()) { + m_writer->writeStartElement(dbNamespace, "enumitem"); + m_writer->writeAttribute(dbNamespace, "enumidentifier", item.name()); + m_writer->writeAttribute(dbNamespace, "enumvalue", item.value()); + m_writer->writeEndElement(); // enumitem + newLine(); + } + } + + m_writer->writeEndElement(); // nodeToSynopsisTag (like classsynopsis) + newLine(); + + // The typedef associated to this enum. + if (enumNode && enumNode->flagsType()) { + m_writer->writeStartElement(dbNamespace, "typedefsynopsis"); + newLine(); + + m_writer->writeTextElement(dbNamespace, "typedefname", + enumNode->flagsType()->fullDocumentName()); + + m_writer->writeEndElement(); // typedefsynopsis + newLine(); + } +} + +QString taggedNode(const Node *node) +{ + // From CodeMarker::taggedNode, but without the tag part (i.e. only the QML specific case + // remaining). + // TODO: find a better name for this. + if (node->nodeType() == Node::QmlType && node->name().startsWith(QLatin1String("QML:"))) + return node->name().mid(4); + return node->name(); +} + +/*! + Parses a string with method/variable name and (return) type + to include type tags. + */ +void DocBookGenerator::typified(const QString &string, const Node *relative, bool trailingSpace, + bool generateType) +{ + // Adapted from CodeMarker::typified and HtmlGenerator::highlightedCode. + // Note: CppCodeMarker::markedUpIncludes is not needed for DocBook, as this part is natively + // generated as DocBook. Hence, there is no need to reimplement <@headerfile> from + // HtmlGenerator::highlightedCode. + QString result; + QString pendingWord; + + for (int i = 0; i <= string.size(); ++i) { + QChar ch; + if (i != string.size()) + ch = string.at(i); + + QChar lower = ch.toLower(); + if ((lower >= QLatin1Char('a') && lower <= QLatin1Char('z')) || ch.digitValue() >= 0 + || ch == QLatin1Char('_') || ch == QLatin1Char(':')) { + pendingWord += ch; + } else { + if (!pendingWord.isEmpty()) { + bool isProbablyType = (pendingWord != QLatin1String("const")); + if (generateType && isProbablyType) { + // Flush the current buffer. + m_writer->writeCharacters(result); + result.truncate(0); + + // Add the link, logic from HtmlGenerator::highlightedCode. + const Node *n = m_qdb->findTypeNode(pendingWord, relative, Node::DontCare); + QString href; + if (!(n && (n->isQmlBasicType() || n->isJsBasicType())) + || (relative + && (relative->genus() == n->genus() || Node::DontCare == n->genus()))) { + href = linkForNode(n, relative); + } + + m_writer->writeStartElement(dbNamespace, "type"); + if (href.isEmpty()) + m_writer->writeCharacters(pendingWord); + else + generateSimpleLink(href, pendingWord); + m_writer->writeEndElement(); // type + } else { + result += pendingWord; + } + } + pendingWord.clear(); + + if (ch.unicode() != '\0') + result += ch; + } + } + + if (trailingSpace && string.size()) { + if (!string.endsWith(QLatin1Char('*')) && !string.endsWith(QLatin1Char('&'))) + result += QLatin1Char(' '); + } + + m_writer->writeCharacters(result); +} + +void DocBookGenerator::generateSynopsisName(const Node *node, const Node *relative, + bool generateNameLink) +{ + // Implements the rewriting of <@link> from HtmlGenerator::highlightedCode, only due to calls to + // CodeMarker::linkTag in CppCodeMarker::markedUpSynopsis. + QString name = taggedNode(node); + + if (!generateNameLink) { + m_writer->writeCharacters(name); + return; + } + + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeAttribute("role", "bold"); + generateSimpleLink(linkForNode(node, relative), name); + m_writer->writeEndElement(); // emphasis +} + +void DocBookGenerator::generateParameter(const Parameter ¶meter, const Node *relative, + bool generateExtra, bool generateType) +{ + const QString &pname = parameter.name(); + const QString &ptype = parameter.type(); + QString paramName; + if (!pname.isEmpty()) { + typified(ptype, relative, true, generateType); + paramName = pname; + } else { + paramName = ptype; + } + if (generateExtra || pname.isEmpty()) { + // Look for the _ character in the member name followed by a number (or n): + // this is intended to be rendered as a subscript. + QRegularExpression sub("([a-z]+)_([0-9]+|n)"); + + m_writer->writeStartElement(dbNamespace, "emphasis"); + auto match = sub.match(paramName); + if (match.hasMatch()) { + m_writer->writeCharacters(match.captured(0)); + m_writer->writeStartElement(dbNamespace, "subscript"); + m_writer->writeCharacters(match.captured(1)); + m_writer->writeEndElement(); // subscript + } else { + m_writer->writeCharacters(paramName); + } + m_writer->writeEndElement(); // emphasis + } + + const QString &pvalue = parameter.defaultValue(); + if (generateExtra && !pvalue.isEmpty()) + m_writer->writeCharacters(" = " + pvalue); +} + +void DocBookGenerator::generateSynopsis(const Node *node, const Node *relative, + Section::Style style) +{ + // From HtmlGenerator::generateSynopsis (conditions written as booleans). + const bool generateExtra = style != Section::AllMembers; + const bool generateType = style != Section::Details; + const bool generateNameLink = style != Section::Details; + + // From CppCodeMarker::markedUpSynopsis, reversed the generation of "extra" and "synopsis". + const int MaxEnumValues = 6; + + if (generateExtra) + m_writer->writeCharacters(CodeMarker::extraSynopsis(node, style)); + + // Then generate the synopsis. + if (style == Section::Details) { + if (!node->isRelatedNonmember() && !node->isProxyNode() && !node->parent()->name().isEmpty() + && !node->parent()->isHeader() && !node->isProperty() && !node->isQmlNode() + && !node->isJsNode()) { + m_writer->writeCharacters(taggedNode(node->parent()) + "::"); + } + } + + switch (node->nodeType()) { + case Node::Namespace: + m_writer->writeCharacters("namespace "); + generateSynopsisName(node, relative, generateNameLink); + break; + case Node::Class: + m_writer->writeCharacters("class "); + generateSynopsisName(node, relative, generateNameLink); + break; + case Node::Function: { + const auto func = (const FunctionNode *)node; + + // First, the part coming before the name. + if (style == Section::Summary || style == Section::Accessors) { + if (!func->isNonvirtual()) + m_writer->writeCharacters(QStringLiteral("virtual ")); + } + + // Name and parameters. + if (style != Section::AllMembers && !func->returnType().isEmpty()) + typified(func->returnType(), relative, true, generateType); + generateSynopsisName(node, relative, generateNameLink); + + if (!func->isMacroWithoutParams()) { + m_writer->writeCharacters(QStringLiteral("(")); + if (!func->parameters().isEmpty()) { + const Parameters ¶meters = func->parameters(); + for (int i = 0; i < parameters.count(); i++) { + if (i > 0) + m_writer->writeCharacters(QStringLiteral(", ")); + generateParameter(parameters.at(i), relative, generateExtra, generateType); + } + } + m_writer->writeCharacters(QStringLiteral(")")); + } + if (func->isConst()) + m_writer->writeCharacters(QStringLiteral(" const")); + + if (style == Section::Summary || style == Section::Accessors) { + // virtual is prepended, if needed. + QString synopsis; + if (func->isFinal()) + synopsis += QStringLiteral(" final"); + if (func->isOverride()) + synopsis += QStringLiteral(" override"); + if (func->isPureVirtual()) + synopsis += QStringLiteral(" = 0"); + if (func->isRef()) + synopsis += QStringLiteral(" &"); + else if (func->isRefRef()) + synopsis += QStringLiteral(" &&"); + m_writer->writeCharacters(synopsis); + } else if (style == Section::AllMembers) { + if (!func->returnType().isEmpty() && func->returnType() != "void") { + m_writer->writeCharacters(QStringLiteral(" : ")); + typified(func->returnType(), relative, false, generateType); + } + } else { + QString synopsis; + if (func->isRef()) + synopsis += QStringLiteral(" &"); + else if (func->isRefRef()) + synopsis += QStringLiteral(" &&"); + m_writer->writeCharacters(synopsis); + } + } break; + case Node::Enum: { + const auto enume = static_cast(node); + m_writer->writeCharacters(QStringLiteral("enum ")); + generateSynopsisName(node, relative, generateNameLink); + + QString synopsis; + if (style == Section::Summary) { + synopsis += " { "; + + QStringList documentedItems = enume->doc().enumItemNames(); + if (documentedItems.isEmpty()) { + const auto &enumItems = enume->items(); + for (const auto &item : enumItems) + documentedItems << item.name(); + } + const QStringList omitItems = enume->doc().omitEnumItemNames(); + for (const auto &item : omitItems) + documentedItems.removeAll(item); + + if (documentedItems.size() > MaxEnumValues) { + // Take the last element and keep it safe, then elide the surplus. + const QString last = documentedItems.last(); + documentedItems = documentedItems.mid(0, MaxEnumValues - 1); + documentedItems += "…"; // Ellipsis: in HTML, …. + documentedItems += last; + } + synopsis += documentedItems.join(QLatin1String(", ")); + + if (!documentedItems.isEmpty()) + synopsis += QLatin1Char(' '); + synopsis += QLatin1Char('}'); + } + m_writer->writeCharacters(synopsis); + } break; + case Node::TypeAlias: { + if (style == Section::Details) { + QString templateDecl = node->templateDecl(); + if (!templateDecl.isEmpty()) + m_writer->writeCharacters(templateDecl + QLatin1Char(' ')); + } + generateSynopsisName(node, relative, generateNameLink); + } break; + case Node::Typedef: { + if (static_cast(node)->associatedEnum()) + m_writer->writeCharacters("flags "); + generateSynopsisName(node, relative, generateNameLink); + } break; + case Node::Property: { + const auto property = static_cast(node); + generateSynopsisName(node, relative, generateNameLink); + m_writer->writeCharacters(" : "); + typified(property->qualifiedDataType(), relative, false, generateType); + } break; + case Node::Variable: { + const auto variable = static_cast(node); + if (style == Section::AllMembers) { + generateSynopsisName(node, relative, generateNameLink); + m_writer->writeCharacters(" : "); + typified(variable->dataType(), relative, false, generateType); + } else { + typified(variable->leftType(), relative, false, generateType); + m_writer->writeCharacters(" "); + generateSynopsisName(node, relative, generateNameLink); + m_writer->writeCharacters(variable->rightType()); + } + } break; + default: + generateSynopsisName(node, relative, generateNameLink); + } +} + +void DocBookGenerator::generateEnumValue(const QString &enumValue, const Node *relative) +{ + // From CppCodeMarker::markedUpEnumValue, simplifications from Generator::plainCode (removing + // <@op>). With respect to CppCodeMarker::markedUpEnumValue, the order of generation of parents + // must be reversed so that they are processed in the order + if (!relative->isEnumType()) { + m_writer->writeCharacters(enumValue); + return; + } + + QList parents; + const Node *node = relative->parent(); + while (!node->isHeader() && node->parent()) { + parents.prepend(node); + if (node->parent() == relative || node->parent()->name().isEmpty()) + break; + node = node->parent(); + } + if (static_cast(relative)->isScoped()) + parents << relative; + + m_writer->writeStartElement(dbNamespace, "code"); + for (auto parent : parents) { + generateSynopsisName(parent, relative, true); + m_writer->writeCharacters("::"); + } + + m_writer->writeCharacters(enumValue); + m_writer->writeEndElement(); // code +} + +/*! + If the node is an overloaded signal, and a node with an + example on how to connect to it + + Someone didn't finish writing this comment, and I don't know what this + function is supposed to do, so I have not tried to complete the comment + yet. + */ +void DocBookGenerator::generateOverloadedSignal(const Node *node) +{ + // From Generator::generateOverloadedSignal. + QString code = getOverloadedSignalCode(node); + if (code.isEmpty()) + return; + + m_writer->writeStartElement(dbNamespace, "note"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters("Signal "); + m_writer->writeTextElement(dbNamespace, "emphasis", node->name()); + m_writer->writeCharacters(" is overloaded in this class. To connect to this " + "signal by using the function pointer syntax, Qt " + "provides a convenient helper for obtaining the " + "function pointer as shown in this example:"); + m_writer->writeTextElement(dbNamespace, "code", code); + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // note + newLine(); +} + +/*! + Generates an addendum note of type \a type for \a node. \a marker + is unused in this generator. +*/ +void DocBookGenerator::generateAddendum(const Node *node, Addendum type, CodeMarker *marker, + bool generateNote) +{ + Q_UNUSED(marker); + Q_ASSERT(node && !node->name().isEmpty()); + if (generateNote) { + m_writer->writeStartElement(dbNamespace, "note"); + newLine(); + } + switch (type) { + case Invokable: + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters( + "This function can be invoked via the meta-object system and from QML. See "); + generateSimpleLink(node->url(), "Q_INVOKABLE"); + m_writer->writeCharacters("."); + m_writer->writeEndElement(); // para + newLine(); + break; + case PrivateSignal: + m_writer->writeTextElement( + dbNamespace, "para", + "This is a private signal. It can be used in signal connections but " + "cannot be emitted by the user."); + break; + case QmlSignalHandler: + { + QString handler(node->name()); + int prefixLocation = handler.lastIndexOf('.', -2) + 1; + handler[prefixLocation] = handler[prefixLocation].toTitleCase(); + handler.insert(prefixLocation, QLatin1String("on")); + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters("The corresponding handler is "); + m_writer->writeTextElement(dbNamespace, "code", handler); + m_writer->writeCharacters("."); + m_writer->writeEndElement(); // para + newLine(); + break; + } + case AssociatedProperties: + { + if (!node->isFunction()) + return; + const auto *fn = static_cast(node); + NodeList nodes = fn->associatedProperties(); + if (nodes.isEmpty()) + return; + std::sort(nodes.begin(), nodes.end(), Node::nodeNameLessThan); + for (const auto node : std::as_const(nodes)) { + QString msg; + const auto pn = static_cast(node); + switch (pn->role(fn)) { + case PropertyNode::Getter: + msg = QStringLiteral("Getter function"); + break; + case PropertyNode::Setter: + msg = QStringLiteral("Setter function"); + break; + case PropertyNode::Resetter: + msg = QStringLiteral("Resetter function"); + break; + case PropertyNode::Notifier: + msg = QStringLiteral("Notifier signal"); + break; + default: + continue; + } + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters(msg + " for property "); + generateSimpleLink(linkForNode(pn, nullptr), pn->name()); + m_writer->writeCharacters(". "); + m_writer->writeEndElement(); // para + newLine(); + } + break; + } + case BindableProperty: + { + const Node *linkNode; + Atom linkAtom = Atom(Atom::Link, "QProperty"); + QString link = getAutoLink(&linkAtom, node, &linkNode); + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters("This property supports "); + generateSimpleLink(link, "QProperty"); + m_writer->writeCharacters(" bindings."); + m_writer->writeEndElement(); // para + newLine(); + break; + } + default: + break; + } + + if (generateNote) { + m_writer->writeEndElement(); // note + newLine(); + } +} + +void DocBookGenerator::generateDetailedMember(const Node *node, const PageNode *relative) +{ + // From HtmlGenerator::generateDetailedMember. + if (node->isSharedCommentNode()) { + const auto scn = reinterpret_cast(node); + const QList &collective = scn->collective(); + + bool firstFunction = true; + for (const Node *n : collective) { + if (n->isFunction()) { + if (firstFunction) { + startSectionBegin(collective.at(0)); + generateSynopsis(n, relative, Section::Details); + startSectionEnd(); + + firstFunction = false; + } else { + m_writer->writeStartElement(dbNamespace, "bridgehead"); + m_writer->writeAttribute("renderas", "sect2"); + writeXmlId(n); + generateSynopsis(n, relative, Section::Details); + m_writer->writeEndElement(); // bridgehead + newLine(); + } + } + } + } else { + const EnumNode *etn; + if (node->isEnumType() && (etn = static_cast(node))->flagsType()) { + startSectionBegin(node); + generateSynopsis(etn, relative, Section::Details); + startSectionEnd(); + + m_writer->writeStartElement(dbNamespace, "bridgehead"); + generateSynopsis(etn->flagsType(), relative, Section::Details); + m_writer->writeEndElement(); // bridgehead + newLine(); + } else { + startSectionBegin(node); + generateSynopsis(node, relative, Section::Details); + startSectionEnd(); + } + } + + generateDocBookSynopsis(node); + + generateStatus(node); + generateBody(node); + generateOverloadedSignal(node); + generateThreadSafeness(node); + generateSince(node); + + if (node->isProperty()) { + const auto property = static_cast(node); + if (property->propertyType() == PropertyNode::Standard) { + Section section(Section::Accessors, Section::Active); + + section.appendMembers(property->getters().toVector()); + section.appendMembers(property->setters().toVector()); + section.appendMembers(property->resetters().toVector()); + + if (!section.members().isEmpty()) { + m_writer->writeStartElement(dbNamespace, "para"); + newLine(); + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeAttribute("role", "bold"); + m_writer->writeCharacters("Access functions:"); + newLine(); + m_writer->writeEndElement(); // emphasis + newLine(); + m_writer->writeEndElement(); // para + newLine(); + generateSectionList(section, node); + } + + Section notifiers(Section::Accessors, Section::Active); + notifiers.appendMembers(property->notifiers().toVector()); + + if (!notifiers.members().isEmpty()) { + m_writer->writeStartElement(dbNamespace, "para"); + newLine(); + m_writer->writeStartElement(dbNamespace, "emphasis"); + m_writer->writeAttribute("role", "bold"); + m_writer->writeCharacters("Notifier signal:"); + newLine(); + m_writer->writeEndElement(); // emphasis + newLine(); + m_writer->writeEndElement(); // para + newLine(); + generateSectionList(notifiers, node); + } + } + } else if (node->isEnumType()) { + const auto en = static_cast(node); + + if (m_qflagsHref.isEmpty()) { + Node *qflags = m_qdb->findClassNode(QStringList("QFlags")); + if (qflags) + m_qflagsHref = linkForNode(qflags, nullptr); + } + + if (en->flagsType()) { + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters("The " + en->flagsType()->name() + " type is a typedef for "); + generateSimpleLink(m_qflagsHref, "QFlags"); + m_writer->writeCharacters("<" + en->name() + ">. "); + m_writer->writeCharacters("It stores an OR combination of " + en->name() + "values."); + m_writer->writeEndElement(); // para + newLine(); + } + } + generateAlsoList(node); + endSection(); // section +} + +void DocBookGenerator::generateSectionList(const Section §ion, const Node *relative, + Section::Status status) +{ + // From HtmlGenerator::generateSectionList, just generating a list (not tables). + const NodeVector &members = + (status == Section::Obsolete ? section.obsoleteMembers() : section.members()); + if (!members.isEmpty()) { + bool hasPrivateSignals = false; + bool isInvokable = false; + + m_writer->writeStartElement(dbNamespace, "itemizedlist"); + newLine(); + + int i = 0; + NodeVector::ConstIterator m = members.constBegin(); + while (m != members.constEnd()) { + if ((*m)->access() == Access::Private) { + ++m; + continue; + } + + m_writer->writeStartElement(dbNamespace, "listitem"); + newLine(); + m_writer->writeStartElement(dbNamespace, "para"); + + // prefix no more needed. + generateSynopsis(*m, relative, section.style()); + if ((*m)->isFunction()) { + const auto fn = static_cast(*m); + if (fn->isPrivateSignal()) + hasPrivateSignals = true; + else if (fn->isInvokable()) + isInvokable = true; + } + + m_writer->writeEndElement(); // para + newLine(); + m_writer->writeEndElement(); // listitem + newLine(); + + i++; + ++m; + } + + m_writer->writeEndElement(); // itemizedlist + newLine(); + + if (hasPrivateSignals) + generateAddendum(relative, Generator::PrivateSignal, nullptr, true); + if (isInvokable) + generateAddendum(relative, Generator::Invokable, nullptr, true); + } + + if (status != Section::Obsolete && section.style() == Section::Summary + && !section.inheritedMembers().isEmpty()) { + m_writer->writeStartElement(dbNamespace, "itemizedlist"); + newLine(); + + generateSectionInheritedList(section, relative); + + m_writer->writeEndElement(); // itemizedlist + newLine(); + } +} + +void DocBookGenerator::generateSectionInheritedList(const Section §ion, const Node *relative) +{ + // From HtmlGenerator::generateSectionInheritedList. + QList>::ConstIterator p = section.inheritedMembers().constBegin(); + while (p != section.inheritedMembers().constEnd()) { + m_writer->writeStartElement(dbNamespace, "listitem"); + m_writer->writeCharacters(QString::number((*p).second) + u' '); + if ((*p).second == 1) + m_writer->writeCharacters(section.singular()); + else + m_writer->writeCharacters(section.plural()); + m_writer->writeCharacters(" inherited from "); + generateSimpleLink(fileName((*p).first) + '#' + + Generator::cleanRef(section.title().toLower()), + (*p).first->plainFullName(relative)); + ++p; + } +} + +/*! + Generate the DocBook page for an entity that doesn't map + to any underlying parsable C++, QML, or Javascript element. + */ +void DocBookGenerator::generatePageNode(PageNode *pn) +{ + Q_ASSERT(m_writer == nullptr); + // From HtmlGenerator::generatePageNode, remove anything related to TOCs. + m_writer = startDocument(pn); + + generateHeader(pn->fullTitle(), pn->subtitle(), pn); + generateBody(pn); + generateAlsoList(pn); + generateFooter(); + + endDocument(); +} + +/*! + Extract sections of markup text and output them. + */ +bool DocBookGenerator::generateQmlText(const Text &text, const Node *relative) +{ + // From Generator::generateQmlText. + const Atom *atom = text.firstAtom(); + bool result = false; + + if (atom != nullptr) { + initializeTextOutput(); + while (atom) { + if (atom->type() != Atom::QmlText) + atom = atom->next(); + else { + atom = atom->next(); + while (atom && (atom->type() != Atom::EndQmlText)) { + int n = 1 + generateAtom(atom, relative); + while (n-- > 0) + atom = atom->next(); + } + } + } + result = true; + } + return result; +} + +/*! + Generate the DocBook page for a QML type. \qcn is the QML type. + */ +void DocBookGenerator::generateQmlTypePage(QmlTypeNode *qcn) +{ + // From HtmlGenerator::generateQmlTypePage. + // Start producing the DocBook file. + Q_ASSERT(m_writer == nullptr); + m_writer = startDocument(qcn); + + Generator::setQmlTypeContext(qcn); + QString title = qcn->fullTitle(); + if (qcn->isJsType()) + title += " JavaScript Type"; + else + title += " QML Type"; + + generateHeader(title, qcn->subtitle(), qcn); + generateQmlRequisites(qcn); + + startSection("details", "Detailed Description"); + generateBody(qcn); + + ClassNode *cn = qcn->classNode(); + if (cn) + generateQmlText(cn->doc().body(), cn); + generateAlsoList(qcn); + + endSection(); + + Sections sections(qcn); + for (const auto §ion : sections.stdQmlTypeDetailsSections()) { + if (!section.isEmpty()) { + startSection(section.title().toLower(), section.title()); + + for (const auto &member : section.members()) + generateDetailedQmlMember(member, qcn); + + endSection(); + } + } + + generateObsoleteQmlMembers(sections); + + generateFooter(); + Generator::setQmlTypeContext(nullptr); + + endDocument(); +} + +/*! + Generate the DocBook page for the QML basic type represented + by the QML basic type node \a qbtn. + */ +void DocBookGenerator::generateQmlBasicTypePage(QmlValueTypeNode *qbtn) +{ + // From HtmlGenerator::generateQmlBasicTypePage. + // Start producing the DocBook file. + Q_ASSERT(m_writer == nullptr); + m_writer = startDocument(qbtn); + + QString htmlTitle = qbtn->fullTitle(); + if (qbtn->isJsType()) + htmlTitle += " JavaScript Basic Type"; + else + htmlTitle += " QML Basic Type"; + + Sections sections(qbtn); + generateHeader(htmlTitle, qbtn->subtitle(), qbtn); + + startSection("details", "Detailed Description"); + + generateBody(qbtn); + generateAlsoList(qbtn); + + endSection(); + + SectionVector::ConstIterator s = sections.stdQmlTypeDetailsSections().constBegin(); + while (s != sections.stdQmlTypeDetailsSections().constEnd()) { + if (!s->isEmpty()) { + startSection(s->title().toLower(), s->title()); + + NodeVector::ConstIterator m = s->members().constBegin(); + while (m != s->members().constEnd()) { + generateDetailedQmlMember(*m, qbtn); + ++m; + } + + endSection(); + } + ++s; + } + generateFooter(); + + endDocument(); +} + +/*! + Outputs the DocBook detailed documentation for a section + on a QML element reference page. + */ +void DocBookGenerator::generateDetailedQmlMember(Node *node, const Aggregate *relative) +{ + // From HtmlGenerator::generateDetailedQmlMember, with elements from + // CppCodeMarker::markedUpQmlItem and HtmlGenerator::generateQmlItem. + std::function getQmlPropertyTitle = [&](QmlPropertyNode *n) { + if (!n->isReadOnlySet() && n->declarativeCppNode()) + n->markReadOnly(!n->isWritable()); + + QString title; + QStringList extra; + if (n->isDefault()) + extra << "default"; + else if (n->isReadOnly()) + extra << "read-only"; + else if (n->isRequired()) + extra << "required"; + else if (!n->defaultValue().isEmpty()) + extra << "default: " + n->defaultValue(); + + if (!n->since().isEmpty()) { + if (!extra.isEmpty()) + extra.last().append(','); + extra << "since " + n->since(); + } + if (!extra.isEmpty()) + title = QString("[%1] ").arg(extra.join(QLatin1Char(' '))); + + // Finalise generation of name, as per CppCodeMarker::markedUpQmlItem. + if (n->isAttached()) + title += n->element() + QLatin1Char('.'); + title += n->name() + " : " + n->dataType(); + + return title; + }; + + std::function generateQmlMethodTitle = [&](Node *node) { + generateSynopsis(node, relative, Section::Details); + }; + + bool generateEndSection = true; + + if (node->isPropertyGroup()) { + const auto scn = static_cast(node); + + QString heading; + if (!scn->name().isEmpty()) + heading = scn->name() + " group"; + else + heading = node->name(); + startSection(scn, heading); + // This last call creates a title for this section. In other words, + // titles are forbidden for the rest of the section. + + const QList sharedNodes = scn->collective(); + for (const auto &node : sharedNodes) { + if (node->isQmlProperty() || node->isJsProperty()) { + auto *qpn = static_cast(node); + + m_writer->writeStartElement(dbNamespace, "bridgehead"); + m_writer->writeAttribute("renderas", "sect2"); + writeXmlId(qpn); + m_writer->writeCharacters(getQmlPropertyTitle(qpn)); + m_writer->writeEndElement(); // bridgehead + newLine(); + + generateDocBookSynopsis(qpn); + } + } + } else if (node->isQmlProperty() || node->isJsProperty()) { + auto qpn = static_cast(node); + startSection(qpn, getQmlPropertyTitle(qpn)); + generateDocBookSynopsis(qpn); + } else if (node->isSharedCommentNode()) { + const auto scn = reinterpret_cast(node); + const QList &sharedNodes = scn->collective(); + + // In the section, generate a title for the first node, then bridgeheads for + // the next ones. + int i = 0; + for (const auto m : sharedNodes) { + // Ignore this element if there is nothing to generate. + if (!node->isFunction(Node::QML) && !node->isFunction(Node::JS) + && !node->isQmlProperty() && !node->isJsProperty()) { + continue; + } + + // Write the tag containing the title. + if (i == 0) { + startSectionBegin(m); + } else { + m_writer->writeStartElement(dbNamespace, "bridgehead"); + m_writer->writeAttribute("renderas", "sect2"); + } + + // Write the title. + if (node->isFunction(Node::QML) || node->isFunction(Node::JS)) + generateQmlMethodTitle(node); + else if (node->isQmlProperty() || node->isJsProperty()) + m_writer->writeCharacters( + getQmlPropertyTitle(static_cast(node))); + + // Complete the title and the synopsis. + if (i == 0) + startSectionEnd(); + generateDocBookSynopsis(m); + ++i; + } + + if (i == 0) + generateEndSection = false; + } else { // assume the node is a method/signal handler + startSectionBegin(node); + generateQmlMethodTitle(node); + startSectionEnd(); + } + + generateStatus(node); + generateBody(node); + generateThreadSafeness(node); + generateSince(node); + generateAlsoList(node); + + if (generateEndSection) + endSection(); +} + +/*! + Recursive writing of DocBook files from the root \a node. + */ +void DocBookGenerator::generateDocumentation(Node *node) +{ + // Mainly from Generator::generateDocumentation, with parts from + // Generator::generateDocumentation and WebXMLGenerator::generateDocumentation. + // Don't generate nodes that are already processed, or if they're not + // supposed to generate output, ie. external, index or images nodes. + if (!node->url().isNull()) + return; + if (node->isIndexNode()) + return; + if (node->isInternal() && !m_showInternal) + return; + if (node->isExternalPage()) + return; + + if (node->parent()) { + if (node->isCollectionNode()) { + /* + A collection node collects: groups, C++ modules, + QML modules or JavaScript modules. Testing for a + CollectionNode must be done before testing for a + TextPageNode because a CollectionNode is a PageNode + at this point. + + Don't output an HTML page for the collection + node unless the \group, \module, \qmlmodule or + \jsmodule command was actually seen by qdoc in + the qdoc comment for the node. + + A key prerequisite in this case is the call to + mergeCollections(cn). We must determine whether + this group, module, QML module, or JavaScript + module has members in other modules. We know at + this point that cn's members list contains only + members in the current module. Therefore, before + outputting the page for cn, we must search for + members of cn in the other modules and add them + to the members list. + */ + auto cn = static_cast(node); + if (cn->wasSeen()) { + m_qdb->mergeCollections(cn); + generateCollectionNode(cn); + } else if (cn->isGenericCollection()) { + // Currently used only for the module's related orphans page + // but can be generalized for other kinds of collections if + // other use cases pop up. + generateGenericCollectionPage(cn); + } + } else if (node->isTextPageNode()) { // Pages. + generatePageNode(static_cast(node)); + } else if (node->isAggregate()) { // Aggregates. + if ((node->isClassNode() || node->isHeader() || node->isNamespace()) + && node->docMustBeGenerated()) { + generateCppReferencePage(static_cast(node)); + } else if (node->isQmlType() || node->isJsType()) { + generateQmlTypePage(static_cast(node)); + } else if (node->isQmlBasicType() || node->isJsBasicType()) { + generateQmlBasicTypePage(static_cast(node)); + } else if (node->isProxyNode()) { + generateProxyPage(static_cast(node)); + } + } + } + + if (node->isAggregate()) { + auto *aggregate = static_cast(node); + for (auto c : aggregate->childNodes()) { + if (node->isPageNode() && !node->isPrivate()) + generateDocumentation(c); + } + } +} + +void DocBookGenerator::generateProxyPage(Aggregate *aggregate) +{ + // Adapted from HtmlGenerator::generateProxyPage. + Q_ASSERT(aggregate->isProxyNode()); + + // Start producing the DocBook file. + Q_ASSERT(m_writer == nullptr); + m_writer = startDocument(aggregate); + + // Info container. + generateHeader(aggregate->plainFullName(), "", aggregate); + + // No element synopsis. + + // Actual content. + if (!aggregate->doc().isEmpty()) { + startSection("details", "Detailed Description"); + + generateBody(aggregate); + generateAlsoList(aggregate); + generateMaintainerList(aggregate); + + endSection(); + } + + Sections sections(aggregate); + SectionVector *detailsSections = §ions.stdDetailsSections(); + + for (const auto §ion : std::as_const(*detailsSections)) { + if (section.isEmpty()) + continue; + + startSection(section.title().toLower(), section.title()); + + const QList &members = section.members(); + for (const auto &member : members) { + if (!member->isPrivate()) { // ### check necessary? + if (!member->isClassNode()) { + generateDetailedMember(member, aggregate); + } else { + startSectionBegin(); + generateFullName(member, aggregate); + startSectionEnd(); + generateBrief(member); + endSection(); + } + } + } + + endSection(); + } + + generateFooter(); + + endDocument(); +} + +/*! + Generate the HTML page for a group, module, or QML module. + */ +void DocBookGenerator::generateCollectionNode(CollectionNode *cn) +{ + // Adapted from HtmlGenerator::generateCollectionNode. + // Start producing the DocBook file. + Q_ASSERT(m_writer == nullptr); + m_writer = startDocument(cn); + + // Info container. + generateHeader(cn->fullTitle(), cn->subtitle(), cn); + + // Element synopsis. + generateDocBookSynopsis(cn); + + // Generate brief for C++ modules, status for all modules. + if (cn->genus() != Node::DOC && cn->genus() != Node::DontCare) { + if (cn->isModule()) + generateBrief(cn); + generateStatus(cn); + generateSince(cn); + } + + // Actual content. + if (cn->isModule()) { + if (!cn->noAutoList()) { + NodeMap nmm; + cn->getMemberNamespaces(nmm); + if (!nmm.isEmpty()) { + startSection("namespaces", "Namespaces"); + generateAnnotatedList(cn, nmm.values(), "namespaces"); + endSection(); + } + nmm.clear(); + cn->getMemberClasses(nmm); + if (!nmm.isEmpty()) { + startSection("classes", "Classes"); + generateAnnotatedList(cn, nmm.values(), "classes"); + endSection(); + } + } + } + + bool generatedTitle = false; + if (cn->isModule() && !cn->doc().briefText().isEmpty()) { + startSection("details", "Detailed Description"); + generatedTitle = true; + } + // The anchor is only needed if the node has a body. + else if ( + // generateBody generates something. + (cn->isFunction() && ((!cn->hasDoc() && !cn->hasSharedDoc()) || !cn->isSharingComment())) || + cn->isExample() || + // generateAlsoList generates something. + !cn->doc().alsoList().empty() || + // generateAnnotatedList generates something. + (!cn->noAutoList() && (cn->isGroup() || cn->isQmlModule() || cn->isJsModule()))) { + writeAnchor("details"); + } + + generateBody(cn); + generateAlsoList(cn); + + if (!cn->noAutoList() && (cn->isGroup() || cn->isQmlModule() || cn->isJsModule())) + generateAnnotatedList(cn, cn->members(), "members"); + + if (generatedTitle) + endSection(); + + generateFooter(); + + endDocument(); +} + +/*! + Generate the HTML page for a generic collection. This is usually + a collection of C++ elements that are related to an element in + a different module. + */ +void DocBookGenerator::generateGenericCollectionPage(CollectionNode *cn) +{ + // Adapted from HtmlGenerator::generateGenericCollectionPage. + // TODO: factor out this code to generate a file name. + QString name = cn->name().toLower(); + name.replace(QChar(' '), QString("-")); + QString filename = cn->tree()->physicalModuleName() + "-" + name + "." + fileExtension(); + + // Start producing the DocBook file. + Q_ASSERT(m_writer == nullptr); + m_writer = startGenericDocument(cn, filename); + + // Info container. + generateHeader(cn->fullTitle(), cn->subtitle(), cn); + + // Element synopsis. + generateDocBookSynopsis(cn); + + // Actual content. + m_writer->writeStartElement(dbNamespace, "para"); + m_writer->writeCharacters("Each function or type documented here is related to a class or " + "namespace that is documented in a different module. The reference " + "page for that class or namespace will link to the function or type " + "on this page."); + m_writer->writeEndElement(); // para + + const CollectionNode *cnc = cn; + const QList members = cn->members(); + for (const auto &member : members) + generateDetailedMember(member, cnc); + + generateFooter(); + + endDocument(); +} + +void DocBookGenerator::generateFullName(const Node *node, const Node *relative) +{ + Q_ASSERT(node); + Q_ASSERT(relative); + + // From Generator::appendFullName. + m_writer->writeStartElement(dbNamespace, "link"); + m_writer->writeAttribute(xlinkNamespace, "href", fullDocumentLocation(node)); + m_writer->writeAttribute(xlinkNamespace, "role", targetType(node)); + m_writer->writeCharacters(node->fullName(relative)); + m_writer->writeEndElement(); // link +} + +void DocBookGenerator::generateFullName(const Node *apparentNode, const QString &fullName, + const Node *actualNode) +{ + Q_ASSERT(apparentNode); + Q_ASSERT(actualNode); + + // From Generator::appendFullName. + m_writer->writeStartElement(dbNamespace, "link"); + m_writer->writeAttribute(xlinkNamespace, "href", fullDocumentLocation(actualNode)); + m_writer->writeAttribute("type", targetType(actualNode)); + m_writer->writeCharacters(fullName); + m_writer->writeEndElement(); // link +} + +QT_END_NAMESPACE diff --git a/src/qdoc/docbookgenerator.h b/src/qdoc/docbookgenerator.h new file mode 100644 index 0000000..d279f37 --- /dev/null +++ b/src/qdoc/docbookgenerator.h @@ -0,0 +1,155 @@ +// Copyright (C) 2019 Thibaut Cuvelier +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef DOCBOOKGENERATOR_H +#define DOCBOOKGENERATOR_H + +#include "codemarker.h" +#include "config.h" +#include "xmlgenerator.h" +#include "filesystem/fileresolver.hpp" + +#include +#include + +QT_BEGIN_NAMESPACE + +class Aggregate; +class ExampleNode; +class FunctionNode; + +class DocBookGenerator : public XmlGenerator +{ +public: + explicit DocBookGenerator(FileResolver& file_resolver); + + void initializeGenerator() override; + QString format() override; + +protected: + [[nodiscard]] QString fileExtension() const override; + void generateDocumentation(Node *node) override; + using Generator::generateCppReferencePage; + void generateCppReferencePage(Node *node); + using Generator::generatePageNode; + void generatePageNode(PageNode *pn); + using Generator::generateQmlTypePage; + void generateQmlTypePage(QmlTypeNode *qcn); + using Generator::generateQmlBasicTypePage; + void generateQmlBasicTypePage(QmlValueTypeNode *qbtn); + using Generator::generateCollectionNode; + void generateCollectionNode(CollectionNode *cn); + using Generator::generateGenericCollectionPage; + void generateGenericCollectionPage(CollectionNode *cn); + using Generator::generateProxyPage; + void generateProxyPage(Aggregate *aggregate); + + void generateList(const Node *relative, const QString &selector); + void generateHeader(const QString &title, const QString &subtitle, const Node *node); + void closeTextSections(); + void generateFooter(); + void generateDocBookSynopsis(const Node *node); + void generateRequisites(const Aggregate *inner); + void generateQmlRequisites(const QmlTypeNode *qcn); + void generateSortedNames(const ClassNode *cn, const QList &rc); + void generateSortedQmlNames(const Node *base, const NodeList &subs); + bool generateStatus(const Node *node); + bool generateThreadSafeness(const Node *node); + bool generateSince(const Node *node); + void generateAddendum(const Node *node, Generator::Addendum type, CodeMarker *marker, + bool generateNote) override; + using Generator::generateBody; + void generateBody(const Node *node); + + bool generateText(const Text &text, const Node *relative) override; + const Atom *generateAtomList(const Atom *atom, const Node *relative, bool generate, + int &numAtoms); + qsizetype generateAtom(const Atom *atom, const Node *relative) override; + +private: + QXmlStreamWriter *startDocument(const Node *node); + QXmlStreamWriter *startDocument(const ExampleNode *en, const QString &file); + QXmlStreamWriter *startGenericDocument(const Node *node, const QString &fileName); + void endDocument(); + + void generateAnnotatedList(const Node *relative, const NodeList &nodeList, + const QString &selector); + void generateAnnotatedLists(const Node *relative, const NodeMultiMap &nmm, + const QString &selector); + void generateCompactList(ListType listType, const Node *relative, const NodeMultiMap &nmm, + const QString &commonPrefix, const QString &selector); + using Generator::generateFileList; + void generateFileList(const ExampleNode *en, bool images); + void generateObsoleteMembers(const Sections §ions); + void generateObsoleteQmlMembers(const Sections §ions); + void generateSectionList(const Section §ion, const Node *relative, + Section::Status status = Section::Active); + void generateSectionInheritedList(const Section §ion, const Node *relative); + void generateSynopsisName(const Node *node, const Node *relative, bool generateNameLink); + void generateParameter(const Parameter ¶meter, const Node *relative, bool generateExtra, + bool generateType); + void generateSynopsis(const Node *node, const Node *relative, Section::Style style); + void generateEnumValue(const QString &enumValue, const Node *relative); + void generateDetailedMember(const Node *node, const PageNode *relative); + void generateDetailedQmlMember(Node *node, const Aggregate *relative); + + void generateFullName(const Node *node, const Node *relative); + void generateFullName(const Node *apparentNode, const QString &fullName, + const Node *actualNode); + void generateBrief(const Node *node); + void generateAlsoList(const Node *node) override; + void generateSignatureList(const NodeList &nodes); + void generateMaintainerList(const Aggregate *node) override; + void generateReimplementsClause(const FunctionNode *fn); + void generateClassHierarchy(const Node *relative, NodeMultiMap &classMap); + void generateFunctionIndex(const Node *relative); + void generateLegaleseList(const Node *relative); + void generateExampleFilePage(const Node *en, ResolvedFile resolved_file, CodeMarker* = nullptr) override; + void generateOverloadedSignal(const Node *node); + bool generateQmlText(const Text &text, const Node *relative) override; + void generateRequiredLinks(const Node *node); + void generateLinkToExample(const ExampleNode *en, const QString &baseUrl); + + void typified(const QString &string, const Node *relative, bool trailingSpace = false, + bool generateType = true); + void generateLink(const Atom *atom); + void beginLink(const QString &link, const Node *node, const Node *relative); + void endLink(); + void writeXmlId(const QString &id); + void writeXmlId(const Node *node); + inline void newLine(); + void startSectionBegin(const QString &id = ""); + void startSectionBegin(const Node *node); + void startSectionEnd(); + void startSection(const QString &id, const QString &title); + void startSection(const Node *node, const QString &title); + void startSection(const QString &title); + void endSection(); + void writeAnchor(const QString &id); + void generateSimpleLink(const QString &href, const QString &text); + void generateStartRequisite(const QString &description); + void generateEndRequisite(); + void generateRequisite(const QString &description, const QString &value); + void generateCMakeRequisite(const QStringList &values); + void generateSynopsisInfo(const QString &key, const QString &value); + void generateModifier(const QString &value); + + bool m_inListItemLineOpen {}; + int currentSectionLevel {}; + QStack sectionLevels {}; + QString m_qflagsHref {}; + bool m_inTeletype { false }; + + QString m_project {}; + QString m_projectDescription {}; + QString m_naturalLanguage {}; + QString m_buildVersion {}; + QXmlStreamWriter *m_writer { nullptr }; + + Config *m_config { nullptr }; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/docparser.cpp b/src/qdoc/docparser.cpp new file mode 100644 index 0000000..e126280 --- /dev/null +++ b/src/qdoc/docparser.cpp @@ -0,0 +1,2576 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "docparser.h" + +#include "codemarker.h" +#include "doc.h" +#include "docprivate.h" +#include "editdistance.h" +#include "macro.h" +#include "openedlist.h" +#include "tokenizer.h" + +#include +#include +#include + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +DocUtilities &DocParser::s_utilities = DocUtilities::instance(); + +enum { + CMD_A, + CMD_ANNOTATEDLIST, + CMD_B, + CMD_BADCODE, + CMD_BOLD, + CMD_BR, + CMD_BRIEF, + CMD_C, + CMD_CAPTION, + CMD_CODE, + CMD_CODELINE, + CMD_DIV, + CMD_DOTS, + CMD_E, + CMD_ELSE, + CMD_ENDCODE, + CMD_ENDDIV, + CMD_ENDFOOTNOTE, + CMD_ENDIF, + CMD_ENDLEGALESE, + CMD_ENDLINK, + CMD_ENDLIST, + CMD_ENDMAPREF, + CMD_ENDOMIT, + CMD_ENDQUOTATION, + CMD_ENDRAW, + CMD_ENDSECTION1, + CMD_ENDSECTION2, + CMD_ENDSECTION3, + CMD_ENDSECTION4, + CMD_ENDSIDEBAR, + CMD_ENDTABLE, + CMD_FOOTNOTE, + CMD_GENERATELIST, + CMD_HEADER, + CMD_HR, + CMD_I, + CMD_IF, + CMD_IMAGE, + CMD_IMPORTANT, + CMD_INCLUDE, + CMD_INLINEIMAGE, + CMD_INDEX, + CMD_INPUT, + CMD_KEYWORD, + CMD_L, + CMD_LEGALESE, + CMD_LI, + CMD_LINK, + CMD_LIST, + CMD_META, + CMD_NOTE, + CMD_O, + CMD_OMIT, + CMD_OMITVALUE, + CMD_OVERLOAD, + CMD_PRINTLINE, + CMD_PRINTTO, + CMD_PRINTUNTIL, + CMD_QUOTATION, + CMD_QUOTEFILE, + CMD_QUOTEFROMFILE, + CMD_RAW, + CMD_ROW, + CMD_SA, + CMD_SECTION1, + CMD_SECTION2, + CMD_SECTION3, + CMD_SECTION4, + CMD_SIDEBAR, + CMD_SINCELIST, + CMD_SKIPLINE, + CMD_SKIPTO, + CMD_SKIPUNTIL, + CMD_SNIPPET, + CMD_SPAN, + CMD_SUB, + CMD_SUP, + CMD_TABLE, + CMD_TABLEOFCONTENTS, + CMD_TARGET, + CMD_TT, + CMD_UICONTROL, + CMD_UNDERLINE, + CMD_UNICODE, + CMD_VALUE, + CMD_WARNING, + CMD_QML, + CMD_ENDQML, + CMD_CPP, + CMD_ENDCPP, + CMD_QMLTEXT, + CMD_ENDQMLTEXT, + CMD_CPPTEXT, + CMD_ENDCPPTEXT, + CMD_JS, + CMD_ENDJS, + NOT_A_CMD +}; + +static struct +{ + const char *english; + int no; + QString *alias; +} cmds[] = { { "a", CMD_A, nullptr }, + { "annotatedlist", CMD_ANNOTATEDLIST, nullptr }, + { "b", CMD_B, nullptr }, + { "badcode", CMD_BADCODE, nullptr }, + { "bold", CMD_BOLD, nullptr }, + { "br", CMD_BR, nullptr }, + { "brief", CMD_BRIEF, nullptr }, + { "c", CMD_C, nullptr }, + { "caption", CMD_CAPTION, nullptr }, + { "code", CMD_CODE, nullptr }, + { "codeline", CMD_CODELINE, nullptr }, + { "div", CMD_DIV, nullptr }, + { "dots", CMD_DOTS, nullptr }, + { "e", CMD_E, nullptr }, + { "else", CMD_ELSE, nullptr }, + { "endcode", CMD_ENDCODE, nullptr }, + { "enddiv", CMD_ENDDIV, nullptr }, + { "endfootnote", CMD_ENDFOOTNOTE, nullptr }, + { "endif", CMD_ENDIF, nullptr }, + { "endlegalese", CMD_ENDLEGALESE, nullptr }, + { "endlink", CMD_ENDLINK, nullptr }, + { "endlist", CMD_ENDLIST, nullptr }, + { "endmapref", CMD_ENDMAPREF, nullptr }, + { "endomit", CMD_ENDOMIT, nullptr }, + { "endquotation", CMD_ENDQUOTATION, nullptr }, + { "endraw", CMD_ENDRAW, nullptr }, + { "endsection1", CMD_ENDSECTION1, nullptr }, // ### don't document for now + { "endsection2", CMD_ENDSECTION2, nullptr }, // ### don't document for now + { "endsection3", CMD_ENDSECTION3, nullptr }, // ### don't document for now + { "endsection4", CMD_ENDSECTION4, nullptr }, // ### don't document for now + { "endsidebar", CMD_ENDSIDEBAR, nullptr }, + { "endtable", CMD_ENDTABLE, nullptr }, + { "footnote", CMD_FOOTNOTE, nullptr }, + { "generatelist", CMD_GENERATELIST, nullptr }, + { "header", CMD_HEADER, nullptr }, + { "hr", CMD_HR, nullptr }, + { "i", CMD_I, nullptr }, + { "if", CMD_IF, nullptr }, + { "image", CMD_IMAGE, nullptr }, + { "important", CMD_IMPORTANT, nullptr }, + { "include", CMD_INCLUDE, nullptr }, + { "inlineimage", CMD_INLINEIMAGE, nullptr }, + { "index", CMD_INDEX, nullptr }, // ### don't document for now + { "input", CMD_INPUT, nullptr }, + { "keyword", CMD_KEYWORD, nullptr }, + { "l", CMD_L, nullptr }, + { "legalese", CMD_LEGALESE, nullptr }, + { "li", CMD_LI, nullptr }, + { "link", CMD_LINK, nullptr }, + { "list", CMD_LIST, nullptr }, + { "meta", CMD_META, nullptr }, + { "note", CMD_NOTE, nullptr }, + { "o", CMD_O, nullptr }, + { "omit", CMD_OMIT, nullptr }, + { "omitvalue", CMD_OMITVALUE, nullptr }, + { "overload", CMD_OVERLOAD, nullptr }, + { "printline", CMD_PRINTLINE, nullptr }, + { "printto", CMD_PRINTTO, nullptr }, + { "printuntil", CMD_PRINTUNTIL, nullptr }, + { "quotation", CMD_QUOTATION, nullptr }, + { "quotefile", CMD_QUOTEFILE, nullptr }, + { "quotefromfile", CMD_QUOTEFROMFILE, nullptr }, + { "raw", CMD_RAW, nullptr }, + { "row", CMD_ROW, nullptr }, + { "sa", CMD_SA, nullptr }, + { "section1", CMD_SECTION1, nullptr }, + { "section2", CMD_SECTION2, nullptr }, + { "section3", CMD_SECTION3, nullptr }, + { "section4", CMD_SECTION4, nullptr }, + { "sidebar", CMD_SIDEBAR, nullptr }, + { "sincelist", CMD_SINCELIST, nullptr }, + { "skipline", CMD_SKIPLINE, nullptr }, + { "skipto", CMD_SKIPTO, nullptr }, + { "skipuntil", CMD_SKIPUNTIL, nullptr }, + { "snippet", CMD_SNIPPET, nullptr }, + { "span", CMD_SPAN, nullptr }, + { "sub", CMD_SUB, nullptr }, + { "sup", CMD_SUP, nullptr }, + { "table", CMD_TABLE, nullptr }, + { "tableofcontents", CMD_TABLEOFCONTENTS, nullptr }, + { "target", CMD_TARGET, nullptr }, + { "tt", CMD_TT, nullptr }, + { "uicontrol", CMD_UICONTROL, nullptr }, + { "underline", CMD_UNDERLINE, nullptr }, + { "unicode", CMD_UNICODE, nullptr }, + { "value", CMD_VALUE, nullptr }, + { "warning", CMD_WARNING, nullptr }, + { "qml", CMD_QML, nullptr }, + { "endqml", CMD_ENDQML, nullptr }, + { "cpp", CMD_CPP, nullptr }, + { "endcpp", CMD_ENDCPP, nullptr }, + { "qmltext", CMD_QMLTEXT, nullptr }, + { "endqmltext", CMD_ENDQMLTEXT, nullptr }, + { "cpptext", CMD_CPPTEXT, nullptr }, + { "endcpptext", CMD_ENDCPPTEXT, nullptr }, + { "js", CMD_JS, nullptr }, + { "endjs", CMD_ENDJS, nullptr }, + { nullptr, 0, nullptr } }; + +int DocParser::s_tabSize; +QStringList DocParser::s_ignoreWords; +bool DocParser::s_quoting = false; +FileResolver* DocParser::file_resolver{nullptr}; + + +static QString cleanLink(const QString &link) +{ + qsizetype colonPos = link.indexOf(':'); + if ((colonPos == -1) || (!link.startsWith("file:") && !link.startsWith("mailto:"))) + return link; + return link.mid(colonPos + 1).simplified(); +} + +void DocParser::initialize(const Config &config, FileResolver& file_resolver) +{ + s_tabSize = config.getInt(CONFIG_TABSIZE); + s_ignoreWords = config.getStringList(CONFIG_IGNOREWORDS); + + int i = 0; + while (cmds[i].english) { + cmds[i].alias = new QString(Doc::alias(cmds[i].english)); + s_utilities.cmdHash.insert(*cmds[i].alias, cmds[i].no); + + if (cmds[i].no != i) + Location::internalError(QStringLiteral("command %1 missing").arg(i)); + ++i; + } + + // If any of the formats define quotinginformation, activate quoting + DocParser::s_quoting = config.getBool(CONFIG_QUOTINGINFORMATION); + for (const auto &format : config.getOutputFormats()) + DocParser::s_quoting = DocParser::s_quoting + || config.getBool(format + Config::dot + CONFIG_QUOTINGINFORMATION); + + // KLUDGE: file_resolver is temporarily a pointer. See the + // comment for file_resolver in the header file for more context. + DocParser::file_resolver = &file_resolver; +} + +void DocParser::terminate() +{ + int i = 0; + while (cmds[i].english) { + delete cmds[i].alias; + cmds[i].alias = nullptr; + ++i; + } +} + +/*! + Parse the \a source string to build a Text data structure + in \a docPrivate. The Text data structure is a linked list + of Atoms. + + \a metaCommandSet is the set of metacommands that may be + found in \a source. These metacommands are not markup text + commands. They are topic commands and related metacommands. + */ +void DocParser::parse(const QString &source, DocPrivate *docPrivate, + const QSet &metaCommandSet, const QSet &possibleTopics) +{ + m_input = source; + m_position = 0; + m_inputLength = m_input.size(); + m_cachedLocation = docPrivate->m_start_loc; + m_cachedPosition = 0; + m_private = docPrivate; + m_private->m_text << Atom::Nop; + m_private->m_topics.clear(); + + m_paragraphState = OutsideParagraph; + m_inTableHeader = false; + m_inTableRow = false; + m_inTableItem = false; + m_indexStartedParagraph = false; + m_pendingParagraphLeftType = Atom::Nop; + m_pendingParagraphRightType = Atom::Nop; + + m_braceDepth = 0; + m_currentSection = Doc::NoSection; + m_openedCommands.push(CMD_OMIT); + m_quoter.reset(); + + CodeMarker *marker = nullptr; + Atom *currentLinkAtom = nullptr; + QString p1, p2; + QStack preprocessorSkipping; + int numPreprocessorSkipping = 0; + + while (m_position < m_inputLength) { + QChar ch = m_input.at(m_position); + + switch (ch.unicode()) { + case '\\': { + QString cmdStr; + m_backslashPosition = m_position; + ++m_position; + while (m_position < m_inputLength) { + ch = m_input.at(m_position); + if (ch.isLetterOrNumber()) { + cmdStr += ch; + ++m_position; + } else { + break; + } + } + m_endPosition = m_position; + if (cmdStr.isEmpty()) { + if (m_position < m_inputLength) { + enterPara(); + if (m_input.at(m_position).isSpace()) { + skipAllSpaces(); + appendChar(QLatin1Char(' ')); + } else { + appendChar(m_input.at(m_position++)); + } + } + } else { + // Ignore quoting atoms to make appendToCode() + // append to the correct atom. + if (!s_quoting || !isQuote(m_private->m_text.lastAtom())) + m_lastAtom = m_private->m_text.lastAtom(); + + int cmd = s_utilities.cmdHash.value(cmdStr, NOT_A_CMD); + switch (cmd) { + case CMD_A: + enterPara(); + p1 = getArgument(); + append(Atom::FormattingLeft, ATOM_FORMATTING_PARAMETER); + append(Atom::String, p1); + append(Atom::FormattingRight, ATOM_FORMATTING_PARAMETER); + m_private->m_params.insert(p1); + break; + case CMD_BADCODE: + leavePara(); + append(Atom::CodeBad, + getCode(CMD_BADCODE, marker, getMetaCommandArgument(cmdStr))); + break; + case CMD_BR: + enterPara(); + append(Atom::BR); + break; + case CMD_BOLD: + location().warning(QStringLiteral("'\\bold' is deprecated. Use '\\b'")); + Q_FALLTHROUGH(); + case CMD_B: + startFormat(ATOM_FORMATTING_BOLD, cmd); + break; + case CMD_BRIEF: + leavePara(); + enterPara(Atom::BriefLeft, Atom::BriefRight); + break; + case CMD_C: + enterPara(); + p1 = untabifyEtc(getArgument(true)); + marker = CodeMarker::markerForCode(p1); + append(Atom::C, marker->markedUpCode(p1, nullptr, location())); + break; + case CMD_CAPTION: + leavePara(); + enterPara(Atom::CaptionLeft, Atom::CaptionRight); + break; + case CMD_CODE: + leavePara(); + append(Atom::Code, getCode(CMD_CODE, nullptr, getMetaCommandArgument(cmdStr))); + break; + case CMD_QML: + leavePara(); + append(Atom::Qml, + getCode(CMD_QML, CodeMarker::markerForLanguage(QLatin1String("QML")), + getMetaCommandArgument(cmdStr))); + break; + case CMD_QMLTEXT: + append(Atom::QmlText); + break; + case CMD_JS: + leavePara(); + append(Atom::JavaScript, + getCode(CMD_JS, + CodeMarker::markerForLanguage(QLatin1String("JavaScript")), + getMetaCommandArgument(cmdStr))); + break; + case CMD_DIV: + leavePara(); + p1 = getArgument(true); + append(Atom::DivLeft, p1); + m_openedCommands.push(cmd); + break; + case CMD_ENDDIV: + leavePara(); + append(Atom::DivRight); + closeCommand(cmd); + break; + case CMD_CODELINE: + if (s_quoting) { + append(Atom::CodeQuoteCommand, cmdStr); + append(Atom::CodeQuoteArgument, " "); + } + if (isCode(m_lastAtom) && m_lastAtom->string().endsWith("\n\n")) + m_lastAtom->chopString(); + appendToCode("\n"); + break; + case CMD_DOTS: { + QString arg = getOptionalArgument(); + if (arg.isEmpty()) + arg = "4"; + if (s_quoting) { + append(Atom::CodeQuoteCommand, cmdStr); + append(Atom::CodeQuoteArgument, arg); + } + if (isCode(m_lastAtom) && m_lastAtom->string().endsWith("\n\n")) + m_lastAtom->chopString(); + + int indent = arg.toInt(); + for (int i = 0; i < indent; ++i) + appendToCode(" "); + appendToCode("...\n"); + break; + } + case CMD_ELSE: + if (!preprocessorSkipping.empty()) { + if (preprocessorSkipping.top()) { + --numPreprocessorSkipping; + } else { + ++numPreprocessorSkipping; + } + preprocessorSkipping.top() = !preprocessorSkipping.top(); + (void)getRestOfLine(); // ### should ensure that it's empty + if (numPreprocessorSkipping) + skipToNextPreprocessorCommand(); + } else { + location().warning( + QStringLiteral("Unexpected '\\%1'").arg(cmdName(CMD_ELSE))); + } + break; + case CMD_ENDCODE: + closeCommand(cmd); + break; + case CMD_ENDQML: + closeCommand(cmd); + break; + case CMD_ENDQMLTEXT: + append(Atom::EndQmlText); + break; + case CMD_ENDJS: + closeCommand(cmd); + break; + case CMD_ENDFOOTNOTE: + if (closeCommand(cmd)) { + leavePara(); + append(Atom::FootnoteRight); + } + break; + case CMD_ENDIF: + if (preprocessorSkipping.size() > 0) { + if (preprocessorSkipping.pop()) + --numPreprocessorSkipping; + (void)getRestOfLine(); // ### should ensure that it's empty + if (numPreprocessorSkipping) + skipToNextPreprocessorCommand(); + } else { + location().warning( + QStringLiteral("Unexpected '\\%1'").arg(cmdName(CMD_ENDIF))); + } + break; + case CMD_ENDLEGALESE: + if (closeCommand(cmd)) { + leavePara(); + append(Atom::LegaleseRight); + } + break; + case CMD_ENDLINK: + if (closeCommand(cmd)) { + if (m_private->m_text.lastAtom()->type() == Atom::String + && m_private->m_text.lastAtom()->string().endsWith(QLatin1Char(' '))) + m_private->m_text.lastAtom()->chopString(); + append(Atom::FormattingRight, ATOM_FORMATTING_LINK); + } + break; + case CMD_ENDLIST: + if (closeCommand(cmd)) { + leavePara(); + if (m_openedLists.top().isStarted()) { + append(Atom::ListItemRight, m_openedLists.top().styleString()); + append(Atom::ListRight, m_openedLists.top().styleString()); + } + m_openedLists.pop(); + } + break; + case CMD_ENDOMIT: + closeCommand(cmd); + break; + case CMD_ENDQUOTATION: + if (closeCommand(cmd)) { + leavePara(); + append(Atom::QuotationRight); + } + break; + case CMD_ENDRAW: + location().warning( + QStringLiteral("Unexpected '\\%1'").arg(cmdName(CMD_ENDRAW))); + break; + case CMD_ENDSECTION1: + endSection(Doc::Section1, cmd); + break; + case CMD_ENDSECTION2: + endSection(Doc::Section2, cmd); + break; + case CMD_ENDSECTION3: + endSection(Doc::Section3, cmd); + break; + case CMD_ENDSECTION4: + endSection(Doc::Section4, cmd); + break; + case CMD_ENDSIDEBAR: + if (closeCommand(cmd)) { + leavePara(); + append(Atom::SidebarRight); + } + break; + case CMD_ENDTABLE: + if (closeCommand(cmd)) { + leaveTableRow(); + append(Atom::TableRight); + } + break; + case CMD_FOOTNOTE: + if (openCommand(cmd)) { + enterPara(); + append(Atom::FootnoteLeft); + } + break; + case CMD_ANNOTATEDLIST: + append(Atom::AnnotatedList, getArgument()); + break; + case CMD_SINCELIST: + append(Atom::SinceList, getRestOfLine().simplified()); + break; + case CMD_GENERATELIST: { + QString arg1 = getArgument(); + QString arg2 = getOptionalArgument(); + if (!arg2.isEmpty()) + arg1 += " " + arg2; + append(Atom::GeneratedList, arg1); + } break; + case CMD_HEADER: + if (m_openedCommands.top() == CMD_TABLE) { + leaveTableRow(); + append(Atom::TableHeaderLeft); + m_inTableHeader = true; + } else { + if (m_openedCommands.contains(CMD_TABLE)) + location().warning(QStringLiteral("Cannot use '\\%1' within '\\%2'") + .arg(cmdName(CMD_HEADER), + cmdName(m_openedCommands.top()))); + else + location().warning( + QStringLiteral("Cannot use '\\%1' outside of '\\%2'") + .arg(cmdName(CMD_HEADER), cmdName(CMD_TABLE))); + } + break; + case CMD_I: + location().warning(QStringLiteral( + "'\\i' is deprecated. Use '\\e' for italic or '\\li' for list item")); + Q_FALLTHROUGH(); + case CMD_E: + startFormat(ATOM_FORMATTING_ITALIC, cmd); + break; + case CMD_HR: + leavePara(); + append(Atom::HR); + break; + case CMD_IF: + preprocessorSkipping.push(!Tokenizer::isTrue(getRestOfLine())); + if (preprocessorSkipping.top()) + ++numPreprocessorSkipping; + if (numPreprocessorSkipping) + skipToNextPreprocessorCommand(); + break; + case CMD_IMAGE: + leaveValueList(); + append(Atom::Image, getArgument()); + append(Atom::ImageText, getRestOfLine()); + break; + case CMD_IMPORTANT: + leavePara(); + enterPara(Atom::ImportantLeft, Atom::ImportantRight); + break; + case CMD_INCLUDE: + case CMD_INPUT: { + QString fileName = getArgument(); + QStringList parameters; + QString identifier; + if (isLeftBraceAhead()) { + identifier = getArgument(); + while (isLeftBraceAhead() && parameters.size() < 9) + parameters << getArgument(); + } else { + identifier = getRestOfLine(); + } + include(fileName, identifier, parameters); + break; + } + case CMD_INLINEIMAGE: + enterPara(); + append(Atom::InlineImage, getArgument()); + append(Atom::ImageText, getRestOfLine()); + append(Atom::String, " "); + break; + case CMD_INDEX: + if (m_paragraphState == OutsideParagraph) { + enterPara(); + m_indexStartedParagraph = true; + } else { + const Atom *last = m_private->m_text.lastAtom(); + if (m_indexStartedParagraph + && (last->type() != Atom::FormattingRight + || last->string() != ATOM_FORMATTING_INDEX)) + m_indexStartedParagraph = false; + } + startFormat(ATOM_FORMATTING_INDEX, cmd); + break; + case CMD_KEYWORD: + insertTarget(getRestOfLine(), true); + break; + case CMD_L: + enterPara(); + if (isLeftBracketAhead()) + p2 = getBracketedArgument(); + if (isLeftBraceAhead()) { + p1 = getArgument(); + append(p1, p2); + if (!p2.isEmpty() && !(m_private->m_text.lastAtom()->error().isEmpty())) + location().warning( + QStringLiteral( + "Check parameter in '[ ]' of '\\l' command: '%1', " + "possible misspelling, or unrecognized module name") + .arg(m_private->m_text.lastAtom()->error())); + if (isLeftBraceAhead()) { + currentLinkAtom = m_private->m_text.lastAtom(); + startFormat(ATOM_FORMATTING_LINK, cmd); + } else { + append(Atom::FormattingLeft, ATOM_FORMATTING_LINK); + append(Atom::String, cleanLink(p1)); + append(Atom::FormattingRight, ATOM_FORMATTING_LINK); + } + } else { + p1 = getArgument(); + append(p1, p2); + if (!p2.isEmpty() && !(m_private->m_text.lastAtom()->error().isEmpty())) + location().warning( + QStringLiteral( + "Check parameter in '[ ]' of '\\l' command: '%1', " + "possible misspelling, or unrecognized module name") + .arg(m_private->m_text.lastAtom()->error())); + append(Atom::FormattingLeft, ATOM_FORMATTING_LINK); + append(Atom::String, cleanLink(p1)); + append(Atom::FormattingRight, ATOM_FORMATTING_LINK); + } + p2.clear(); + break; + case CMD_LEGALESE: + leavePara(); + if (openCommand(cmd)) + append(Atom::LegaleseLeft); + docPrivate->m_hasLegalese = true; + break; + case CMD_LINK: + if (openCommand(cmd)) { + enterPara(); + p1 = getArgument(); + append(p1); + append(Atom::FormattingLeft, ATOM_FORMATTING_LINK); + skipSpacesOrOneEndl(); + } + break; + case CMD_LIST: + if (openCommand(cmd)) { + leavePara(); + m_openedLists.push(OpenedList(location(), getOptionalArgument())); + } + break; + case CMD_META: + m_private->constructExtra(); + p1 = getArgument(); + m_private->extra->m_metaMap.insert(p1, getArgument()); + break; + case CMD_NOTE: + leavePara(); + enterPara(Atom::NoteLeft, Atom::NoteRight); + break; + case CMD_O: + location().warning(QStringLiteral("'\\o' is deprecated. Use '\\li'")); + Q_FALLTHROUGH(); + case CMD_LI: + leavePara(); + if (m_openedCommands.top() == CMD_LIST) { + if (m_openedLists.top().isStarted()) + append(Atom::ListItemRight, m_openedLists.top().styleString()); + else + append(Atom::ListLeft, m_openedLists.top().styleString()); + m_openedLists.top().next(); + append(Atom::ListItemNumber, m_openedLists.top().numberString()); + append(Atom::ListItemLeft, m_openedLists.top().styleString()); + enterPara(); + } else if (m_openedCommands.top() == CMD_TABLE) { + p1 = "1,1"; + p2.clear(); + if (isLeftBraceAhead()) { + p1 = getArgument(); + if (isLeftBraceAhead()) + p2 = getArgument(); + } + + if (!m_inTableHeader && !m_inTableRow) { + location().warning( + QStringLiteral("Missing '\\%1' or '\\%2' before '\\%3'") + .arg(cmdName(CMD_HEADER), cmdName(CMD_ROW), + cmdName(CMD_LI))); + append(Atom::TableRowLeft); + m_inTableRow = true; + } else if (m_inTableItem) { + append(Atom::TableItemRight); + m_inTableItem = false; + } + + append(Atom::TableItemLeft, p1, p2); + m_inTableItem = true; + } else + location().warning( + QStringLiteral("Command '\\%1' outside of '\\%2' and '\\%3'") + .arg(cmdName(cmd), cmdName(CMD_LIST), cmdName(CMD_TABLE))); + break; + case CMD_OMIT: + getUntilEnd(cmd); + break; + case CMD_OMITVALUE: { + p1 = getArgument(); + if (!m_private->m_enumItemList.contains(p1)) + m_private->m_enumItemList.append(p1); + if (!m_private->m_omitEnumItemList.contains(p1)) + m_private->m_omitEnumItemList.append(p1); + skipSpacesOrOneEndl(); + // Skip potential description paragraph + while (m_position < m_inputLength && !isBlankLine()) { + skipAllSpaces(); + if (qsizetype pos = m_position; pos < m_input.size() + && m_input.at(pos++).unicode() == '\\') { + QString nextCmdStr; + while (pos < m_input.size() && m_input[pos].isLetterOrNumber()) + nextCmdStr += m_input[pos++]; + int nextCmd = s_utilities.cmdHash.value(cmdStr, NOT_A_CMD); + if (nextCmd == cmd || nextCmd == CMD_VALUE) + break; + } + getRestOfLine(); + } + break; + } + case CMD_PRINTLINE: { + leavePara(); + QString rest = getRestOfLine(); + if (s_quoting) { + append(Atom::CodeQuoteCommand, cmdStr); + append(Atom::CodeQuoteArgument, rest); + } + appendToCode(m_quoter.quoteLine(location(), cmdStr, rest)); + break; + } + case CMD_PRINTTO: { + leavePara(); + QString rest = getRestOfLine(); + if (s_quoting) { + append(Atom::CodeQuoteCommand, cmdStr); + append(Atom::CodeQuoteArgument, rest); + } + appendToCode(m_quoter.quoteTo(location(), cmdStr, rest)); + break; + } + case CMD_PRINTUNTIL: { + leavePara(); + QString rest = getRestOfLine(); + if (s_quoting) { + append(Atom::CodeQuoteCommand, cmdStr); + append(Atom::CodeQuoteArgument, rest); + } + appendToCode(m_quoter.quoteUntil(location(), cmdStr, rest)); + break; + } + case CMD_QUOTATION: + if (openCommand(cmd)) { + leavePara(); + append(Atom::QuotationLeft); + } + break; + case CMD_QUOTEFILE: { + leavePara(); + + QString fileName = getArgument(); + quoteFromFile(fileName); + if (s_quoting) { + append(Atom::CodeQuoteCommand, cmdStr); + append(Atom::CodeQuoteArgument, fileName); + } + append(Atom::Code, m_quoter.quoteTo(location(), cmdStr, QString())); + m_quoter.reset(); + break; + } + case CMD_QUOTEFROMFILE: { + leavePara(); + QString arg = getArgument(); + if (s_quoting) { + append(Atom::CodeQuoteCommand, cmdStr); + append(Atom::CodeQuoteArgument, arg); + } + quoteFromFile(arg); + break; + } + case CMD_RAW: + leavePara(); + p1 = getRestOfLine(); + if (p1.isEmpty()) + location().warning(QStringLiteral("Missing format name after '\\%1'") + .arg(cmdName(CMD_RAW))); + append(Atom::FormatIf, p1); + append(Atom::RawString, untabifyEtc(getUntilEnd(cmd))); + append(Atom::FormatElse); + append(Atom::FormatEndif); + break; + case CMD_ROW: + if (m_openedCommands.top() == CMD_TABLE) { + p1.clear(); + if (isLeftBraceAhead()) + p1 = getArgument(true); + leaveTableRow(); + append(Atom::TableRowLeft, p1); + m_inTableRow = true; + } else { + if (m_openedCommands.contains(CMD_TABLE)) + location().warning(QStringLiteral("Cannot use '\\%1' within '\\%2'") + .arg(cmdName(CMD_ROW), + cmdName(m_openedCommands.top()))); + else + location().warning(QStringLiteral("Cannot use '\\%1' outside of '\\%2'") + .arg(cmdName(CMD_ROW), cmdName(CMD_TABLE))); + } + break; + case CMD_SA: + parseAlso(); + break; + case CMD_SECTION1: + startSection(Doc::Section1, cmd); + break; + case CMD_SECTION2: + startSection(Doc::Section2, cmd); + break; + case CMD_SECTION3: + startSection(Doc::Section3, cmd); + break; + case CMD_SECTION4: + startSection(Doc::Section4, cmd); + break; + case CMD_SIDEBAR: + if (openCommand(cmd)) { + leavePara(); + append(Atom::SidebarLeft); + } + break; + case CMD_SKIPLINE: { + leavePara(); + QString rest = getRestOfLine(); + if (s_quoting) { + append(Atom::CodeQuoteCommand, cmdStr); + append(Atom::CodeQuoteArgument, rest); + } + m_quoter.quoteLine(location(), cmdStr, rest); + break; + } + case CMD_SKIPTO: { + leavePara(); + QString rest = getRestOfLine(); + if (s_quoting) { + append(Atom::CodeQuoteCommand, cmdStr); + append(Atom::CodeQuoteArgument, rest); + } + m_quoter.quoteTo(location(), cmdStr, rest); + break; + } + case CMD_SKIPUNTIL: { + leavePara(); + QString rest = getRestOfLine(); + if (s_quoting) { + append(Atom::CodeQuoteCommand, cmdStr); + append(Atom::CodeQuoteArgument, rest); + } + m_quoter.quoteUntil(location(), cmdStr, rest); + break; + } + case CMD_SPAN: + p1 = ATOM_FORMATTING_SPAN + getArgument(true); + startFormat(p1, cmd); + break; + case CMD_SNIPPET: { + leavePara(); + QString snippet = getArgument(); + QString identifier = getRestOfLine(); + if (s_quoting) { + append(Atom::SnippetCommand, cmdStr); + append(Atom::SnippetLocation, snippet); + append(Atom::SnippetIdentifier, identifier); + } + marker = CodeMarker::markerForFileName(snippet); + quoteFromFile(snippet); + appendToCode(m_quoter.quoteSnippet(location(), identifier), marker->atomType()); + break; + } + case CMD_SUB: + startFormat(ATOM_FORMATTING_SUBSCRIPT, cmd); + break; + case CMD_SUP: + startFormat(ATOM_FORMATTING_SUPERSCRIPT, cmd); + break; + case CMD_TABLE: + p1 = getOptionalArgument(); + p2 = getOptionalArgument(); + if (openCommand(cmd)) { + leavePara(); + append(Atom::TableLeft, p1, p2); + m_inTableHeader = false; + m_inTableRow = false; + m_inTableItem = false; + } + break; + case CMD_TABLEOFCONTENTS: + p1 = "1"; + if (isLeftBraceAhead()) + p1 = getArgument(); + p1 += QLatin1Char(','); + p1 += QString::number((int)getSectioningUnit()); + append(Atom::TableOfContents, p1); + break; + case CMD_TARGET: + insertTarget(getRestOfLine(), false); + break; + case CMD_TT: + startFormat(ATOM_FORMATTING_TELETYPE, cmd); + break; + case CMD_UICONTROL: + startFormat(ATOM_FORMATTING_UICONTROL, cmd); + break; + case CMD_UNDERLINE: + startFormat(ATOM_FORMATTING_UNDERLINE, cmd); + break; + case CMD_UNICODE: { + enterPara(); + p1 = getArgument(); + bool ok; + uint unicodeChar = p1.toUInt(&ok, 0); + if (!ok || (unicodeChar == 0x0000) || (unicodeChar > 0xFFFE)) + location().warning( + QStringLiteral("Invalid Unicode character '%1' specified with '%2'") + .arg(p1, cmdName(CMD_UNICODE))); + else + append(Atom::String, QChar(unicodeChar)); + break; + } + case CMD_VALUE: + leaveValue(); + if (m_openedLists.top().style() == OpenedList::Value) { + QString p2; + p1 = getArgument(); + if (p1.startsWith(QLatin1String("[since ")) + && p1.endsWith(QLatin1String("]"))) { + p2 = p1.mid(7, p1.size() - 8); + p1 = getArgument(); + } + if (!m_private->m_enumItemList.contains(p1)) + m_private->m_enumItemList.append(p1); + + m_openedLists.top().next(); + append(Atom::ListTagLeft, ATOM_LIST_VALUE); + append(Atom::String, p1); + append(Atom::ListTagRight, ATOM_LIST_VALUE); + if (!p2.isEmpty()) { + append(Atom::SinceTagLeft, ATOM_LIST_VALUE); + append(Atom::String, p2); + append(Atom::SinceTagRight, ATOM_LIST_VALUE); + } + append(Atom::ListItemLeft, ATOM_LIST_VALUE); + + skipSpacesOrOneEndl(); + if (isBlankLine()) + append(Atom::Nop); + } else { + // ### unknown problems + } + break; + case CMD_WARNING: + leavePara(); + enterPara(Atom::WarningLeft, Atom::WarningRight); + break; + case CMD_OVERLOAD: + m_private->m_metacommandsUsed.insert(cmdStr); + p1.clear(); + if (!isBlankLine()) + p1 = getRestOfLine(); + if (!p1.isEmpty()) { + append(Atom::ParaLeft); + append(Atom::String, "This function overloads "); + append(Atom::AutoLink, p1); + append(Atom::String, "."); + append(Atom::ParaRight); + } else { + append(Atom::ParaLeft); + append(Atom::String, "This is an overloaded function."); + append(Atom::ParaRight); + p1 = getMetaCommandArgument(cmdStr); + } + m_private->m_metaCommandMap[cmdStr].append(ArgPair(p1, QString())); + break; + case NOT_A_CMD: + if (metaCommandSet.contains(cmdStr)) { + QString arg; + QString bracketedArg; + m_private->m_metacommandsUsed.insert(cmdStr); + if (isLeftBracketAhead()) + bracketedArg = getBracketedArgument(); + // Force a linebreak after \obsolete or \deprecated + // to treat potential arguments as a new text paragraph. + if (m_position < m_inputLength + && (cmdStr == QLatin1String("obsolete") + || cmdStr == QLatin1String("deprecated"))) + m_input[m_position] = '\n'; + else + arg = getMetaCommandArgument(cmdStr); + m_private->m_metaCommandMap[cmdStr].append(ArgPair(arg, bracketedArg)); + if (possibleTopics.contains(cmdStr)) { + if (!cmdStr.endsWith(QLatin1String("propertygroup"))) + m_private->m_topics.append(Topic(cmdStr, arg)); + } + } else if (s_utilities.macroHash.contains(cmdStr)) { + const Macro ¯o = s_utilities.macroHash.value(cmdStr); + int numPendingFi = 0; + int numFormatDefs = 0; + QString matchExpr; + for (auto it = macro.m_otherDefs.constBegin(); + it != macro.m_otherDefs.constEnd(); ++it) { + if (it.key() == "match") { + matchExpr = it.value(); + } else { + append(Atom::FormatIf, it.key()); + expandMacro(cmdStr, *it, macro.numParams); + ++numFormatDefs; + if (it == macro.m_otherDefs.constEnd()) { + append(Atom::FormatEndif); + } else { + append(Atom::FormatElse); + ++numPendingFi; + } + } + } + while (numPendingFi-- > 0) + append(Atom::FormatEndif); + + if (!macro.m_defaultDef.isEmpty()) { + if (numFormatDefs > 0) { + macro.m_defaultDefLocation.warning( + QStringLiteral("Macro cannot have both " + "format-specific and qdoc-" + "syntax definitions")); + } else { + QString expanded = expandMacroToString(cmdStr, macro.m_defaultDef, + macro.numParams, matchExpr); + m_input.replace(m_backslashPosition, + m_endPosition - m_backslashPosition, expanded); + m_inputLength = m_input.size(); + m_position = m_backslashPosition; + } + } + } else if (isAutoLinkString(cmdStr)) { + appendWord(cmdStr); + } else { + if (!cmdStr.endsWith("propertygroup")) { + // The QML and JS property group commands are no longer required + // for grouping QML and JS properties. They are allowed but ignored. + location().warning(QStringLiteral("Unknown command '\\%1'").arg(cmdStr), + detailsUnknownCommand(metaCommandSet, cmdStr)); + } + enterPara(); + append(Atom::UnknownCommand, cmdStr); + } + } + } // case '\\' (qdoc markup command) + break; + } + case '{': + enterPara(); + appendChar('{'); + ++m_braceDepth; + ++m_position; + break; + case '}': { + --m_braceDepth; + ++m_position; + + auto format = m_pendingFormats.find(m_braceDepth); + if (format == m_pendingFormats.end()) { + enterPara(); + appendChar('}'); + } else { + append(Atom::FormattingRight, *format); + if (*format == ATOM_FORMATTING_INDEX) { + if (m_indexStartedParagraph) + skipAllSpaces(); + } else if (*format == ATOM_FORMATTING_LINK) { + // hack for C++ to support links like + // \l{QString::}{count()} + if (currentLinkAtom && currentLinkAtom->string().endsWith("::")) { + QString suffix = + Text::subText(currentLinkAtom, m_private->m_text.lastAtom()) + .toString(); + currentLinkAtom->appendString(suffix); + } + currentLinkAtom = nullptr; + } + m_pendingFormats.erase(format); + } + break; + } + // Do not parse content after '//!' comments + case '/': { + if (m_position + 2 < m_inputLength) + if (m_input.at(m_position + 1) == '/') + if (m_input.at(m_position + 2) == '!') { + m_position += 2; + getRestOfLine(); + break; + } + Q_FALLTHROUGH(); // fall through + } + default: { + bool newWord; + switch (m_private->m_text.lastAtom()->type()) { + case Atom::ParaLeft: + newWord = true; + break; + default: + newWord = false; + } + + if (m_paragraphState == OutsideParagraph) { + if (ch.isSpace()) { + ++m_position; + newWord = false; + } else { + enterPara(); + newWord = true; + } + } else { + if (ch.isSpace()) { + ++m_position; + if ((ch == '\n') + && (m_paragraphState == InSingleLineParagraph || isBlankLine())) { + leavePara(); + newWord = false; + } else { + appendChar(' '); + newWord = true; + } + } else { + newWord = true; + } + } + + if (newWord) { + qsizetype startPos = m_position; + // No auto-linking inside links + bool autolink = (!m_pendingFormats.isEmpty() && + m_pendingFormats.last() == ATOM_FORMATTING_LINK) ? + false : isAutoLinkString(m_input, m_position); + if (m_position == startPos) { + if (!ch.isSpace()) { + appendChar(ch); + ++m_position; + } + } else { + QString word = m_input.mid(startPos, m_position - startPos); + if (autolink) { + if (s_ignoreWords.contains(word) || word.startsWith(QString("__"))) + appendWord(word); + else + append(Atom::AutoLink, word); + } else { + appendWord(word); + } + } + } + } // default: + } // switch (ch.unicode()) + } + leaveValueList(); + + // for compatibility + if (m_openedCommands.top() == CMD_LEGALESE) { + append(Atom::LegaleseRight); + m_openedCommands.pop(); + } + + if (m_openedCommands.top() != CMD_OMIT) { + location().warning( + QStringLiteral("Missing '\\%1'").arg(endCmdName(m_openedCommands.top()))); + } else if (preprocessorSkipping.size() > 0) { + location().warning(QStringLiteral("Missing '\\%1'").arg(cmdName(CMD_ENDIF))); + } + + if (m_currentSection > Doc::NoSection) { + append(Atom::SectionRight, QString::number(m_currentSection)); + m_currentSection = Doc::NoSection; + } + + m_private->m_text.stripFirstAtom(); +} + +/*! + Returns the current location. + */ +Location &DocParser::location() +{ + while (!m_openedInputs.isEmpty() && m_openedInputs.top() <= m_position) { + m_cachedLocation.pop(); + m_cachedPosition = m_openedInputs.pop(); + } + while (m_cachedPosition < m_position) + m_cachedLocation.advance(m_input.at(m_cachedPosition++)); + return m_cachedLocation; +} + +QString DocParser::detailsUnknownCommand(const QSet &metaCommandSet, const QString &str) +{ + QSet commandSet = metaCommandSet; + int i = 0; + while (cmds[i].english != nullptr) { + commandSet.insert(*cmds[i].alias); + ++i; + } + + if (s_utilities.aliasMap.contains(str)) + return QStringLiteral("The command '\\%1' was renamed '\\%2' by the configuration" + " file. Use the new name.") + .arg(str, s_utilities.aliasMap[str]); + + QString best = nearestName(str, commandSet); + if (best.isEmpty()) + return QString(); + return QStringLiteral("Maybe you meant '\\%1'?").arg(best); +} + +void DocParser::insertTarget(const QString &target, bool keyword) +{ + if (m_targetMap.contains(target)) { + location().warning(QStringLiteral("Duplicate target name '%1'").arg(target)); + m_targetMap[target].warning(QStringLiteral("(The previous occurrence is here)")); + } else { + m_targetMap.insert(target, location()); + m_private->constructExtra(); + if (keyword) { + append(Atom::Keyword, target); + m_private->extra->m_keywords.append(m_private->m_text.lastAtom()); + } else { + append(Atom::Target, target); + m_private->extra->m_targets.append(m_private->m_text.lastAtom()); + } + } +} + +void DocParser::include(const QString &fileName, const QString &identifier, const QStringList ¶meters) +{ + if (location().depth() > 16) + location().fatal(QStringLiteral("Too many nested '\\%1's").arg(cmdName(CMD_INCLUDE))); + QString filePath = Config::instance().getIncludeFilePath(fileName); + if (filePath.isEmpty()) { + location().warning(QStringLiteral("Cannot find qdoc include file '%1'").arg(fileName)); + } else { + QFile inFile(filePath); + if (!inFile.open(QFile::ReadOnly)) { + location().warning( + QStringLiteral("Cannot open qdoc include file '%1'").arg(filePath)); + } else { + location().push(fileName); + QTextStream inStream(&inFile); + QString includedContent = inStream.readAll(); + inFile.close(); + + if (identifier.isEmpty()) { + expandArgumentsInString(includedContent, parameters); + m_input.insert(m_position, includedContent); + m_inputLength = m_input.size(); + m_openedInputs.push(m_position + includedContent.size()); + } else { + QStringList lineBuffer = includedContent.split(QLatin1Char('\n')); + int i = 0; + int startLine = -1; + while (i < lineBuffer.size()) { + if (lineBuffer[i].startsWith("//!")) { + if (lineBuffer[i].contains(identifier)) { + startLine = i + 1; + break; + } + } + ++i; + } + if (startLine < 0) { + location().warning( + QStringLiteral("Cannot find '%1' in '%2'").arg(identifier, filePath)); + return; + } + QString result; + i = startLine; + do { + if (lineBuffer[i].startsWith("//!")) { + if (i < lineBuffer.size()) { + if (lineBuffer[i].contains(identifier)) { + break; + } + } + } else + result += lineBuffer[i] + QLatin1Char('\n'); + ++i; + } while (i < lineBuffer.size()); + + expandArgumentsInString(result, parameters); + if (result.isEmpty()) { + location().warning(QStringLiteral("Empty qdoc snippet '%1' in '%2'") + .arg(identifier, filePath)); + } else { + m_input.insert(m_position, result); + m_inputLength = m_input.size(); + m_openedInputs.push(m_position + result.size()); + } + } + } + } +} + +void DocParser::startFormat(const QString &format, int cmd) +{ + enterPara(); + + for (const auto &item : std::as_const(m_pendingFormats)) { + if (item == format) { + location().warning(QStringLiteral("Cannot nest '\\%1' commands").arg(cmdName(cmd))); + return; + } + } + + append(Atom::FormattingLeft, format); + + if (isLeftBraceAhead()) { + skipSpacesOrOneEndl(); + m_pendingFormats.insert(m_braceDepth, format); + ++m_braceDepth; + ++m_position; + } else { + append(Atom::String, getArgument()); + append(Atom::FormattingRight, format); + if (format == ATOM_FORMATTING_INDEX && m_indexStartedParagraph) { + skipAllSpaces(); + m_indexStartedParagraph = false; + } + } +} + +bool DocParser::openCommand(int cmd) +{ + int outer = m_openedCommands.top(); + bool ok = true; + + if (cmd != CMD_LINK) { + if (outer == CMD_LIST) { + ok = (cmd == CMD_FOOTNOTE || cmd == CMD_LIST); + } else if (outer == CMD_SIDEBAR) { + ok = (cmd == CMD_LIST || cmd == CMD_QUOTATION || cmd == CMD_SIDEBAR); + } else if (outer == CMD_QUOTATION) { + ok = (cmd == CMD_LIST); + } else if (outer == CMD_TABLE) { + ok = (cmd == CMD_LIST || cmd == CMD_FOOTNOTE || cmd == CMD_QUOTATION); + } else if (outer == CMD_FOOTNOTE || outer == CMD_LINK) { + ok = false; + } + } + + if (ok) { + m_openedCommands.push(cmd); + } else { + location().warning( + QStringLiteral("Can't use '\\%1' in '\\%2'").arg(cmdName(cmd), cmdName(outer))); + } + return ok; +} + +/*! + Returns \c true if \a word qualifies for auto-linking. + + A word qualifies for auto-linking if either: + + \list + \li It is composed of only upper and lowercase characters + \li AND It contains at least one uppercase character that is not + the first character of word + \li AND it contains at least two lowercase characters + \endlist + + Or + + \list + \li It is composed only of uppercase characters, lowercase + characters, characters in [_@] and the \c {"::"} sequence. + \li It contains at least one uppercase character that is not + the first character of word or it contains at least one + lowercase character + \li AND it contains at least one character in [_@] or it + contains at least one \c {"::"} sequence. + \endlist + + Inserting or suffixing, but not prefixing, any sequence in [0-9]+ + in a word that qualifies for auto-linking by the above rules + preserves the auto-linkability of the word. + + Suffixing the sequence \c {"()"} to a word that qualifies for + auto-linking by the above rules preserves the auto-linkability of + a word. + + FInally, a word qualifies for auto-linking if: + + \list + \li It is composed of only uppercase characters, lowercase + characters and the sequence \c {"()"} + \li AND it contains one lowercase character and a sequence of zero, one + or two upper or lowercase characters + \li AND it contains exactly one sequence \c {"()"} + \li AND it contains one sequence \c {"()"} as the last two + characters of word + \endlist + + For example, \c {"fOo"}, \c {"FooBar"} and \c {"foobaR"} qualify + for auto-linking by the first rule. + + \c {"QT_DEBUG"}, \c {"::Qt"} and \c {"std::move"} qualifies for + auto-linking by the second rule. + + \c {"SIMDVector256"} qualifies by suffixing \c {"SIMDVector"}, + which qualifies by the first rule, with the sequence \c {"256"} + + \c {"FooBar::Bar()"} qualifies by suffixing \c {"FooBar::Bar"}, + which qualifies by the first and second rule, with the sequence \c + {"()"}. + + \c {"Foo()"} and \c {"a()"} qualifies by the last rule. + + Instead, \c {"Q"}, \c {"flower"}, \c {"_"} and \c {"()"} do not + qualify for auto-linking. + + The rules are intended as a heuristic to catch common cases in the + Qt documentation where a word might represent an important + documented element such as a class or a method that could be + linked to while at the same time avoiding catching common words + such as \c {"A"} or \c {"Nonetheless"}. + + The heuristic assumes that Qt's codebase respects a style where + camelCasing is the standard for most of the elements, a function + call is identified by the use of parenthesis and certain elements, + such as macros, might be fully uppercase. + + Furthemore, it assumes that the Qt codebase is written in a + language that has an identifier grammar similar to the one for + C++. +*/ +inline bool DocParser::isAutoLinkString(const QString &word) +{ + qsizetype start = 0; + return isAutoLinkString(word, start) && (start == word.size()); +} + +/*! + Returns \c true if a prefix of a substring of \a word qualifies + for auto-linking. + + Respects the same parsing rules as the unary overload. + + \a curPos defines the offset, from the first character of \ word, + at which the parsed substring starts. + + When the call completes, \a curPos represents the offset, from the + first character of word, that is the successor of the offset of + the last parsed character. + + If the return value of the call is \c true, it is guaranteed that + the prefix of the substring of \word that contains the characters + from the initial value of \a curPos and up to but not including \a + curPos qualifies for auto-linking. + + If \a curPos is initially zero, the considered substring is the + entirety of \a word. +*/ +bool DocParser::isAutoLinkString(const QString &word, qsizetype &curPos) +{ + qsizetype len = word.size(); + qsizetype startPos = curPos; + int numUppercase = 0; + int numLowercase = 0; + int numStrangeSymbols = 0; + + while (curPos < len) { + unsigned char latin1Ch = word.at(curPos).toLatin1(); + if (islower(latin1Ch)) { + ++numLowercase; + ++curPos; + } else if (isupper(latin1Ch)) { + if (curPos > startPos) + ++numUppercase; + ++curPos; + } else if (isdigit(latin1Ch)) { + if (curPos > startPos) + ++curPos; + else + break; + } else if (latin1Ch == '_' || latin1Ch == '@') { + ++numStrangeSymbols; + ++curPos; + } else if ((latin1Ch == ':') && (curPos < len - 1) + && (word.at(curPos + 1) == QLatin1Char(':'))) { + ++numStrangeSymbols; + curPos += 2; + } else if (latin1Ch == '(') { + if ((curPos < len - 1) && (word.at(curPos + 1) == QLatin1Char(')'))) { + ++numStrangeSymbols; + m_position += 2; + } + + break; + } else { + break; + } + } + + return ((numUppercase >= 1 && numLowercase >= 2) || (numStrangeSymbols > 0 && (numUppercase + numLowercase >= 1))); +} + +bool DocParser::closeCommand(int endCmd) +{ + if (endCmdFor(m_openedCommands.top()) == endCmd && m_openedCommands.size() > 1) { + m_openedCommands.pop(); + return true; + } else { + bool contains = false; + QStack opened2 = m_openedCommands; + while (opened2.size() > 1) { + if (endCmdFor(opened2.top()) == endCmd) { + contains = true; + break; + } + opened2.pop(); + } + + if (contains) { + while (endCmdFor(m_openedCommands.top()) != endCmd && m_openedCommands.size() > 1) { + location().warning( + QStringLiteral("Missing '\\%1' before '\\%2'") + .arg(endCmdName(m_openedCommands.top()), cmdName(endCmd))); + m_openedCommands.pop(); + } + } else { + location().warning(QStringLiteral("Unexpected '\\%1'").arg(cmdName(endCmd))); + } + return false; + } +} + +void DocParser::startSection(Doc::Sections unit, int cmd) +{ + leaveValueList(); + + if (m_currentSection == Doc::NoSection) { + m_currentSection = (Doc::Sections)(unit); + m_private->constructExtra(); + } else + endSection(unit, cmd); + + append(Atom::SectionLeft, QString::number(unit)); + m_private->constructExtra(); + m_private->extra->m_tableOfContents.append(m_private->m_text.lastAtom()); + m_private->extra->m_tableOfContentsLevels.append(unit); + enterPara(Atom::SectionHeadingLeft, Atom::SectionHeadingRight, QString::number(unit)); + m_currentSection = unit; +} + +void DocParser::endSection(int, int) // (int unit, int endCmd) +{ + leavePara(); + append(Atom::SectionRight, QString::number(m_currentSection)); + m_currentSection = (Doc::NoSection); +} + +void DocParser::parseAlso() +{ + leavePara(); + skipSpacesOnLine(); + while (m_position < m_inputLength && m_input[m_position] != '\n') { + QString target; + QString str; + bool skipMe = false; + + if (m_input[m_position] == '{') { + target = getArgument(); + skipSpacesOnLine(); + if (m_position < m_inputLength && m_input[m_position] == '{') { + str = getArgument(); + + // hack for C++ to support links like \l{QString::}{count()} + if (target.endsWith("::")) + target += str; + } else { + str = target; + } + } else { + target = getArgument(); + str = cleanLink(target); + if (target == QLatin1String("and") || target == QLatin1String(".")) + skipMe = true; + } + + if (!skipMe) { + Text also; + also << Atom(Atom::Link, target) << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) + << str << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + m_private->addAlso(also); + } + + skipSpacesOnLine(); + if (m_position < m_inputLength && m_input[m_position] == ',') { + m_position++; + skipSpacesOrOneEndl(); + } else if (m_position >= m_inputLength || m_input[m_position] != '\n') { + location().warning(QStringLiteral("Missing comma in '\\%1'").arg(cmdName(CMD_SA))); + } + } +} + +void DocParser::append(Atom::AtomType type, const QString &string) +{ + Atom::AtomType lastType = m_private->m_text.lastAtom()->type(); + if ((lastType == Atom::Code) + && m_private->m_text.lastAtom()->string().endsWith(QLatin1String("\n\n"))) + m_private->m_text.lastAtom()->chopString(); + m_private->m_text << Atom(type, string); +} + +void DocParser::append(const QString &string) +{ + Atom::AtomType lastType = m_private->m_text.lastAtom()->type(); + if ((lastType == Atom::Code) + && m_private->m_text.lastAtom()->string().endsWith(QLatin1String("\n\n"))) + m_private->m_text.lastAtom()->chopString(); + m_private->m_text << Atom(Atom::Link, string); +} + +void DocParser::append(Atom::AtomType type, const QString &p1, const QString &p2) +{ + Atom::AtomType lastType = m_private->m_text.lastAtom()->type(); + if ((lastType == Atom::Code) + && m_private->m_text.lastAtom()->string().endsWith(QLatin1String("\n\n"))) + m_private->m_text.lastAtom()->chopString(); + m_private->m_text << Atom(type, p1, p2); +} + +void DocParser::append(const QString &p1, const QString &p2) +{ + Atom::AtomType lastType = m_private->m_text.lastAtom()->type(); + if ((lastType == Atom::Code) + && m_private->m_text.lastAtom()->string().endsWith(QLatin1String("\n\n"))) + m_private->m_text.lastAtom()->chopString(); + if (p2.isEmpty()) + m_private->m_text << Atom(Atom::Link, p1); + else + m_private->m_text << LinkAtom(p1, p2); +} + +void DocParser::appendChar(QChar ch) +{ + if (m_private->m_text.lastAtom()->type() != Atom::String) + append(Atom::String); + Atom *atom = m_private->m_text.lastAtom(); + if (ch == QLatin1Char(' ')) { + if (!atom->string().endsWith(QLatin1Char(' '))) + atom->appendChar(QLatin1Char(' ')); + } else + atom->appendChar(ch); +} + +void DocParser::appendWord(const QString &word) +{ + if (m_private->m_text.lastAtom()->type() != Atom::String) { + append(Atom::String, word); + } else + m_private->m_text.lastAtom()->appendString(word); +} + +void DocParser::appendToCode(const QString &markedCode) +{ + if (!isCode(m_lastAtom)) { + append(Atom::Code); + m_lastAtom = m_private->m_text.lastAtom(); + } + m_lastAtom->appendString(markedCode); +} + +void DocParser::appendToCode(const QString &markedCode, Atom::AtomType defaultType) +{ + if (!isCode(m_lastAtom)) { + append(defaultType, markedCode); + m_lastAtom = m_private->m_text.lastAtom(); + } else { + m_lastAtom->appendString(markedCode); + } +} + +void DocParser::enterPara(Atom::AtomType leftType, Atom::AtomType rightType, const QString &string) +{ + if (m_paragraphState == OutsideParagraph) { + + if ((m_private->m_text.lastAtom()->type() != Atom::ListItemLeft) + && (m_private->m_text.lastAtom()->type() != Atom::DivLeft)) { + leaveValueList(); + } + + append(leftType, string); + m_indexStartedParagraph = false; + m_pendingParagraphLeftType = leftType; + m_pendingParagraphRightType = rightType; + m_pendingParagraphString = string; + if (leftType == Atom::SectionHeadingLeft) { + m_paragraphState = InSingleLineParagraph; + } else { + m_paragraphState = InMultiLineParagraph; + } + skipSpacesOrOneEndl(); + } +} + +void DocParser::leavePara() +{ + if (m_paragraphState != OutsideParagraph) { + if (!m_pendingFormats.isEmpty()) { + location().warning(QStringLiteral("Missing '}'")); + m_pendingFormats.clear(); + } + + if (m_private->m_text.lastAtom()->type() == m_pendingParagraphLeftType) { + m_private->m_text.stripLastAtom(); + } else { + if (m_private->m_text.lastAtom()->type() == Atom::String + && m_private->m_text.lastAtom()->string().endsWith(QLatin1Char(' '))) { + m_private->m_text.lastAtom()->chopString(); + } + append(m_pendingParagraphRightType, m_pendingParagraphString); + } + m_paragraphState = OutsideParagraph; + m_indexStartedParagraph = false; + m_pendingParagraphRightType = Atom::Nop; + m_pendingParagraphString.clear(); + } +} + +void DocParser::leaveValue() +{ + leavePara(); + if (m_openedLists.isEmpty()) { + m_openedLists.push(OpenedList(OpenedList::Value)); + append(Atom::ListLeft, ATOM_LIST_VALUE); + } else { + if (m_private->m_text.lastAtom()->type() == Atom::Nop) + m_private->m_text.stripLastAtom(); + append(Atom::ListItemRight, ATOM_LIST_VALUE); + } +} + +void DocParser::leaveValueList() +{ + leavePara(); + if (!m_openedLists.isEmpty() && (m_openedLists.top().style() == OpenedList::Value)) { + if (m_private->m_text.lastAtom()->type() == Atom::Nop) + m_private->m_text.stripLastAtom(); + append(Atom::ListItemRight, ATOM_LIST_VALUE); + append(Atom::ListRight, ATOM_LIST_VALUE); + m_openedLists.pop(); + } +} + +void DocParser::leaveTableRow() +{ + if (m_inTableItem) { + leavePara(); + append(Atom::TableItemRight); + m_inTableItem = false; + } + if (m_inTableHeader) { + append(Atom::TableHeaderRight); + m_inTableHeader = false; + } + if (m_inTableRow) { + append(Atom::TableRowRight); + m_inTableRow = false; + } +} + +void DocParser::quoteFromFile(const QString& filename) +{ + // KLUDGE: We dereference file_resolver as it is temporarily a pointer. + // See the comment for file_resolver in the header files for more context. + // + // We spefically dereference it, instead of using the arrow + // operator, to better represent that we do not consider this as + // an actual pointer, as it should not be. + // + // Do note that we are considering it informally safe to + // dereference the pointer, as we expect it to always hold a value + // at this point, but actual enforcement of this appears nowhere + // in the codebase. + auto maybe_resolved_file{(*file_resolver).resolve(filename)}; + if (!maybe_resolved_file) { + // TODO: [uncentralized-admonition][failed-resolve-file] + // This warning is required in multiple places. + // To ensure the consistency of the warning and avoid + // duplicating code everywhere, provide a centralized effort + // where the warning message can be generated (but not + // issued). + // The current format is based on what was used before, review + // it when it is moved out. + QString details = std::transform_reduce( + (*file_resolver).get_search_directories().cbegin(), + (*file_resolver).get_search_directories().cend(), + u"Searched directories:"_qs, + std::plus(), + [](const DirectoryPath& directory_path){ return " " + directory_path.value(); } + ); + + location().warning(u"Cannot find file to quote from: %1"_qs.arg(filename), details); + + // REMARK: The following is duplicated from + // Doc::quoteFromFile. If, for some reason (such as a file + // that is inaccessible), the quoting fails but, previously, + // the logic duplicated here was still run. + // This is not true anymore as quoteFromFile does require a + // resolved file to be run now. + // It is not entirely clear if this is required for the + // semantics of DocParser to be preserved, but for the sake of + // avoiding premature breakages this was retained. + // Do note that this should be considered temporary as the + // quoter state, if any will be preserved, should not be + // managed in such a spread and unlocal way. + m_quoter.reset(); + + CodeMarker *marker = CodeMarker::markerForFileName(QString{}); + m_quoter.quoteFromFile(filename, QString{}, marker->markedUpCode(QString{}, nullptr, location())); + } else Doc::quoteFromFile(location(), m_quoter, *maybe_resolved_file); +} + +/*! + Expands a macro in-place in input. + + Expects the current \e pos in the input to point to a backslash, and the macro to have a + default definition. Format-specific macros are currently not expanded. + + \note In addition to macros, a valid use for a backslash in an argument include + escaping non-alnum characters, and splitting a single argument across multiple + lines by escaping newlines. Escaping is also handled here. + + Returns \c true on successful macro expansion. + */ +bool DocParser::expandMacro() +{ + Q_ASSERT(m_input[m_position].unicode() == '\\'); + + QString cmdStr; + qsizetype backslashPos = m_position++; + while (m_position < m_input.size() && m_input[m_position].isLetterOrNumber()) + cmdStr += m_input[m_position++]; + + m_endPosition = m_position; + if (!cmdStr.isEmpty()) { + if (s_utilities.macroHash.contains(cmdStr)) { + const Macro ¯o = s_utilities.macroHash.value(cmdStr); + if (!macro.m_defaultDef.isEmpty()) { + QString expanded = expandMacroToString(cmdStr, macro.m_defaultDef, macro.numParams, + macro.m_otherDefs.value("match")); + m_input.replace(backslashPos, m_position - backslashPos, expanded); + m_inputLength = m_input.size(); + m_position = backslashPos; + return true; + } else { + location().warning(QStringLiteral("Macro '%1' does not have a default definition") + .arg(cmdStr)); + } + } else { + location().warning(QStringLiteral("Unknown macro '%1'").arg(cmdStr)); + m_position = ++backslashPos; + } + } else if (m_input[m_position].isSpace()) { + skipAllSpaces(); + } else if (m_input[m_position].unicode() == '\\') { + // allow escaping a backslash + m_input.remove(m_position--, 1); + --m_inputLength; + } + return false; +} + +void DocParser::expandMacro(const QString &name, const QString &def, int numParams) +{ + if (numParams == 0) { + append(Atom::RawString, def); + } else { + QStringList args; + QString rawString; + + for (int i = 0; i < numParams; ++i) { + if (numParams == 1 || isLeftBraceAhead()) { + args << getArgument(); + } else { + location().warning(QStringLiteral("Macro '\\%1' invoked with too few" + " arguments (expected %2, got %3)") + .arg(name) + .arg(numParams) + .arg(i)); + numParams = i; + break; + } + } + + int j = 0; + while (j < def.size()) { + int paramNo; + if (((paramNo = def[j].unicode()) >= 1) && (paramNo <= numParams)) { + if (!rawString.isEmpty()) { + append(Atom::RawString, rawString); + rawString.clear(); + } + append(Atom::String, args[paramNo - 1]); + j += 1; + } else { + rawString += def[j++]; + } + } + if (!rawString.isEmpty()) + append(Atom::RawString, rawString); + } +} + +QString DocParser::expandMacroToString(const QString &name, const QString &def, int numParams, + const QString &matchExpr) +{ + QString rawString; + + if (numParams == 0) { + rawString = def; + } else { + QStringList args; + for (int i = 0; i < numParams; ++i) { + if (numParams == 1 || isLeftBraceAhead()) { + args << getArgument(true); + } else { + location().warning(QStringLiteral("Macro '\\%1' invoked with too few" + " arguments (expected %2, got %3)") + .arg(name) + .arg(numParams) + .arg(i)); + numParams = i; + break; + } + } + + int j = 0; + while (j < def.size()) { + int paramNo; + if (((paramNo = def[j].unicode()) >= 1) && (paramNo <= numParams)) { + rawString += args[paramNo - 1]; + j += 1; + } else { + rawString += def[j++]; + } + } + } + if (matchExpr.isEmpty()) + return rawString; + + QString result; + QRegularExpression re(matchExpr); + int capStart = (re.captureCount() > 0) ? 1 : 0; + qsizetype i = 0; + QRegularExpressionMatch match; + while ((match = re.match(rawString, i)).hasMatch()) { + for (int c = capStart; c <= re.captureCount(); ++c) + result += match.captured(c); + i = match.capturedEnd(); + } + + return result; +} + +Doc::Sections DocParser::getSectioningUnit() +{ + QString name = getOptionalArgument(); + + if (name == "section1") { + return Doc::Section1; + } else if (name == "section2") { + return Doc::Section2; + } else if (name == "section3") { + return Doc::Section3; + } else if (name == "section4") { + return Doc::Section4; + } else if (name.isEmpty()) { + return Doc::NoSection; + } else { + location().warning(QStringLiteral("Invalid section '%1'").arg(name)); + return Doc::NoSection; + } +} + +/*! + Gets an argument that is enclosed in braces and returns it + without the enclosing braces. On entry, the current character + is the left brace. On exit, the current character is the one + that comes after the right brace. + + If \a verbatim is true, extra whitespace is retained in the + returned string. Otherwise, extra whitespace is removed. + */ +QString DocParser::getBracedArgument(bool verbatim) +{ + QString arg; + int delimDepth = 0; + if (m_position < m_input.size() && m_input[m_position] == '{') { + ++m_position; + while (m_position < m_input.size() && delimDepth >= 0) { + switch (m_input[m_position].unicode()) { + case '{': + ++delimDepth; + arg += QLatin1Char('{'); + ++m_position; + break; + case '}': + --delimDepth; + if (delimDepth >= 0) + arg += QLatin1Char('}'); + ++m_position; + break; + case '\\': + if (verbatim || !expandMacro()) + arg += m_input[m_position++]; + break; + default: + if (m_input[m_position].isSpace() && !verbatim) + arg += QChar(' '); + else + arg += m_input[m_position]; + ++m_position; + } + } + if (delimDepth > 0) + location().warning(QStringLiteral("Missing '}'")); + } + m_endPosition = m_position; + return arg; +} + +/*! + Typically, an argument ends at the next white-space. However, + braces can be used to group words: + + {a few words} + + Also, opening and closing parentheses have to match. Thus, + + printf("%d\n", x) + + is an argument too, although it contains spaces. Finally, + trailing punctuation is not included in an argument, nor is 's. +*/ +QString DocParser::getArgument(bool verbatim) +{ + skipSpacesOrOneEndl(); + + int delimDepth = 0; + qsizetype startPos = m_position; + QString arg = getBracedArgument(verbatim); + if (arg.isEmpty()) { + while ((m_position < m_input.size()) + && ((delimDepth > 0) || ((delimDepth == 0) && !m_input[m_position].isSpace()))) { + switch (m_input[m_position].unicode()) { + case '(': + case '[': + case '{': + ++delimDepth; + arg += m_input[m_position]; + ++m_position; + break; + case ')': + case ']': + case '}': + --delimDepth; + if (m_position == startPos || delimDepth >= 0) { + arg += m_input[m_position]; + ++m_position; + } + break; + case '\\': + if (verbatim || !expandMacro()) + arg += m_input[m_position++]; + break; + default: + arg += m_input[m_position]; + ++m_position; + } + } + m_endPosition = m_position; + if ((arg.size() > 1) && (QString(".,:;!?").indexOf(m_input[m_position - 1]) != -1) + && !arg.endsWith("...")) { + arg.truncate(arg.size() - 1); + --m_position; + } + if (arg.size() > 2 && m_input.mid(m_position - 2, 2) == "'s") { + arg.truncate(arg.size() - 2); + m_position -= 2; + } + } + return arg.simplified(); +} + +/*! + Gets an argument that is enclosed in brackets and returns it + without the enclosing brackets. On entry, the current character + is the left bracket. On exit, the current character is the one + that comes after the right bracket. + */ +QString DocParser::getBracketedArgument() +{ + QString arg; + int delimDepth = 0; + skipSpacesOrOneEndl(); + if (m_position < m_input.size() && m_input[m_position] == '[') { + ++m_position; + while (m_position < m_input.size() && delimDepth >= 0) { + switch (m_input[m_position].unicode()) { + case '[': + ++delimDepth; + arg += QLatin1Char('['); + ++m_position; + break; + case ']': + --delimDepth; + if (delimDepth >= 0) + arg += QLatin1Char(']'); + ++m_position; + break; + case '\\': + arg += m_input[m_position]; + ++m_position; + break; + default: + arg += m_input[m_position]; + ++m_position; + } + } + if (delimDepth > 0) + location().warning(QStringLiteral("Missing ']'")); + } + return arg; +} + +QString DocParser::getOptionalArgument() +{ + skipSpacesOrOneEndl(); + if (m_position + 1 < m_input.size() && m_input[m_position] == '\\' + && m_input[m_position + 1].isLetterOrNumber()) { + return QString(); + } else { + return getArgument(); + } +} + +QString DocParser::getRestOfLine() +{ + QString t; + + skipSpacesOnLine(); + + bool trailingSlash = false; + + do { + qsizetype begin = m_position; + + while (m_position < m_input.size() && m_input[m_position] != '\n') { + if (m_input[m_position] == '\\' && !trailingSlash) { + trailingSlash = true; + ++m_position; + while ((m_position < m_input.size()) && m_input[m_position].isSpace() + && (m_input[m_position] != '\n')) + ++m_position; + } else { + trailingSlash = false; + ++m_position; + } + } + + if (!t.isEmpty()) + t += QLatin1Char(' '); + t += m_input.mid(begin, m_position - begin).simplified(); + + if (trailingSlash) { + t.chop(1); + t = t.simplified(); + } + if (m_position < m_input.size()) + ++m_position; + } while (m_position < m_input.size() && trailingSlash); + + return t; +} + +/*! + The metacommand argument is normally the remaining text to + the right of the metacommand itself. The extra blanks are + stripped and the argument string is returned. + */ +QString DocParser::getMetaCommandArgument(const QString &cmdStr) +{ + skipSpacesOnLine(); + + qsizetype begin = m_position; + int parenDepth = 0; + + while (m_position < m_input.size() && (m_input[m_position] != '\n' || parenDepth > 0)) { + if (m_input.at(m_position) == '(') + ++parenDepth; + else if (m_input.at(m_position) == ')') + --parenDepth; + else if (m_input.at(m_position) == '\\' && expandMacro()) + continue; + ++m_position; + } + if (m_position == m_input.size() && parenDepth > 0) { + m_position = begin; + location().warning(QStringLiteral("Unbalanced parentheses in '%1'").arg(cmdStr)); + } + + QString t = m_input.mid(begin, m_position - begin).simplified(); + skipSpacesOnLine(); + return t; +} + +QString DocParser::getUntilEnd(int cmd) +{ + int endCmd = endCmdFor(cmd); + QRegularExpression rx("\\\\" + cmdName(endCmd) + "\\b"); + QString t; + auto match = rx.match(m_input, m_position); + + if (!match.hasMatch()) { + location().warning(QStringLiteral("Missing '\\%1'").arg(cmdName(endCmd))); + m_position = m_input.size(); + } else { + qsizetype end = match.capturedStart(); + t = m_input.mid(m_position, end - m_position); + m_position = match.capturedEnd(); + } + return t; +} + +void DocParser::expandArgumentsInString(QString &str, const QStringList &args) +{ + if (args.isEmpty()) + return; + + qsizetype paramNo; + qsizetype j = 0; + while (j < str.size()) { + if (str[j] == '\\' && j < str.size() - 1 && (paramNo = str[j + 1].digitValue()) >= 1 + && paramNo <= args.size()) { + const QString &r = args[paramNo - 1]; + str.replace(j, 2, r); + j += qMin(1, r.size()); + } else { + ++j; + } + } +} + +QString DocParser::getCode(int cmd, CodeMarker *marker, const QString &argStr) +{ + QString code = untabifyEtc(getUntilEnd(cmd)); + expandArgumentsInString(code, argStr.split(" ", Qt::SkipEmptyParts)); + + int indent = indentLevel(code); + code = dedent(indent, code); + if (marker == nullptr) + marker = CodeMarker::markerForCode(code); + return marker->markedUpCode(code, nullptr, location()); +} + +bool DocParser::isBlankLine() +{ + qsizetype i = m_position; + + while (i < m_inputLength && m_input[i].isSpace()) { + if (m_input[i] == '\n') + return true; + ++i; + } + return false; +} + +bool DocParser::isLeftBraceAhead() +{ + int numEndl = 0; + qsizetype i = m_position; + + while (i < m_inputLength && m_input[i].isSpace() && numEndl < 2) { + // ### bug with '\\' + if (m_input[i] == '\n') + numEndl++; + ++i; + } + return numEndl < 2 && i < m_inputLength && m_input[i] == '{'; +} + +bool DocParser::isLeftBracketAhead() +{ + int numEndl = 0; + qsizetype i = m_position; + + while (i < m_inputLength && m_input[i].isSpace() && numEndl < 2) { + // ### bug with '\\' + if (m_input[i] == '\n') + numEndl++; + ++i; + } + return numEndl < 2 && i < m_inputLength && m_input[i] == '['; +} + +/*! + Skips to the next non-space character or EOL. + */ +void DocParser::skipSpacesOnLine() +{ + while ((m_position < m_input.size()) && m_input[m_position].isSpace() + && (m_input[m_position].unicode() != '\n')) + ++m_position; +} + +/*! + Skips spaces and one EOL. + */ +void DocParser::skipSpacesOrOneEndl() +{ + qsizetype firstEndl = -1; + while (m_position < m_input.size() && m_input[m_position].isSpace()) { + QChar ch = m_input[m_position]; + if (ch == '\n') { + if (firstEndl == -1) { + firstEndl = m_position; + } else { + m_position = firstEndl; + break; + } + } + ++m_position; + } +} + +void DocParser::skipAllSpaces() +{ + while (m_position < m_inputLength && m_input[m_position].isSpace()) + ++m_position; +} + +void DocParser::skipToNextPreprocessorCommand() +{ + QRegularExpression rx("\\\\(?:" + cmdName(CMD_IF) + QLatin1Char('|') + cmdName(CMD_ELSE) + + QLatin1Char('|') + cmdName(CMD_ENDIF) + ")\\b"); + auto match = rx.match(m_input, m_position + 1); // ### + 1 necessary? + + if (!match.hasMatch()) + m_position = m_input.size(); + else + m_position = match.capturedStart(); +} + +int DocParser::endCmdFor(int cmd) +{ + switch (cmd) { + case CMD_BADCODE: + return CMD_ENDCODE; + case CMD_CODE: + return CMD_ENDCODE; + case CMD_DIV: + return CMD_ENDDIV; + case CMD_QML: + return CMD_ENDQML; + case CMD_QMLTEXT: + return CMD_ENDQMLTEXT; + case CMD_JS: + return CMD_ENDJS; + case CMD_FOOTNOTE: + return CMD_ENDFOOTNOTE; + case CMD_LEGALESE: + return CMD_ENDLEGALESE; + case CMD_LINK: + return CMD_ENDLINK; + case CMD_LIST: + return CMD_ENDLIST; + case CMD_OMIT: + return CMD_ENDOMIT; + case CMD_QUOTATION: + return CMD_ENDQUOTATION; + case CMD_RAW: + return CMD_ENDRAW; + case CMD_SECTION1: + return CMD_ENDSECTION1; + case CMD_SECTION2: + return CMD_ENDSECTION2; + case CMD_SECTION3: + return CMD_ENDSECTION3; + case CMD_SECTION4: + return CMD_ENDSECTION4; + case CMD_SIDEBAR: + return CMD_ENDSIDEBAR; + case CMD_TABLE: + return CMD_ENDTABLE; + default: + return cmd; + } +} + +QString DocParser::cmdName(int cmd) +{ + return *cmds[cmd].alias; +} + +QString DocParser::endCmdName(int cmd) +{ + return cmdName(endCmdFor(cmd)); +} + +QString DocParser::untabifyEtc(const QString &str) +{ + QString result; + result.reserve(str.size()); + int column = 0; + + for (const auto &character : str) { + if (character == QLatin1Char('\r')) + continue; + if (character == QLatin1Char('\t')) { + result += &" "[column % s_tabSize]; + column = ((column / s_tabSize) + 1) * s_tabSize; + continue; + } + if (character == QLatin1Char('\n')) { + while (result.endsWith(QLatin1Char(' '))) + result.chop(1); + result += character; + column = 0; + continue; + } + result += character; + ++column; + } + + while (result.endsWith("\n\n")) + result.truncate(result.size() - 1); + while (result.startsWith(QLatin1Char('\n'))) + result = result.mid(1); + + return result; +} + +int DocParser::indentLevel(const QString &str) +{ + int minIndent = INT_MAX; + int column = 0; + + for (const auto &character : str) { + if (character == '\n') { + column = 0; + } else { + if (character != ' ' && column < minIndent) + minIndent = column; + ++column; + } + } + return minIndent; +} + +QString DocParser::dedent(int level, const QString &str) +{ + if (level == 0) + return str; + + QString result; + int column = 0; + + for (const auto &character : str) { + if (character == QLatin1Char('\n')) { + result += '\n'; + column = 0; + } else { + if (column >= level) + result += character; + ++column; + } + } + return result; +} + +/*! + Returns \c true if \a atom represents a code snippet. + */ +bool DocParser::isCode(const Atom *atom) +{ + Atom::AtomType type = atom->type(); + return (type == Atom::Code || type == Atom::Qml || type == Atom::JavaScript); +} + +/*! + Returns \c true if \a atom represents quoting information. + */ +bool DocParser::isQuote(const Atom *atom) +{ + Atom::AtomType type = atom->type(); + return (type == Atom::CodeQuoteArgument || type == Atom::CodeQuoteCommand + || type == Atom::SnippetCommand || type == Atom::SnippetIdentifier + || type == Atom::SnippetLocation); +} + +QT_END_NAMESPACE diff --git a/src/qdoc/docparser.h b/src/qdoc/docparser.h new file mode 100644 index 0000000..61462e8 --- /dev/null +++ b/src/qdoc/docparser.h @@ -0,0 +1,169 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#ifndef DOCPARSER_H +#define DOCPARSER_H + +#include "atom.h" +#include "config.h" +#include "docutilities.h" +#include "location.h" +#include "openedlist.h" +#include "quoter.h" + +#include "filesystem/fileresolver.hpp" + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Doc; +class DocPrivate; +class CodeMarker; + +class DocParser +{ +public: + void parse(const QString &source, DocPrivate *docPrivate, const QSet &metaCommandSet, + const QSet &possibleTopics); + + static void initialize(const Config &config, FileResolver& file_resolver); + static void terminate(); + static int endCmdFor(int cmd); + static QString cmdName(int cmd); + static QString endCmdName(int cmd); + static QString untabifyEtc(const QString &str); + static int indentLevel(const QString &str); + static QString dedent(int level, const QString &str); + + static int s_tabSize; + static QStringList s_ignoreWords; + static bool s_quoting; + +private: + Location &location(); + QString detailsUnknownCommand(const QSet &metaCommandSet, const QString &str); + void insertTarget(const QString &target, bool keyword); + void include(const QString &fileName, const QString &identifier, const QStringList ¶meters); + void startFormat(const QString &format, int cmd); + bool openCommand(int cmd); + bool closeCommand(int endCmd); + void startSection(Doc::Sections unit, int cmd); + void endSection(int unit, int endCmd); + void parseAlso(); + void append(const QString &string); + void append(Atom::AtomType type, const QString &string = QString()); + void append(Atom::AtomType type, const QString &p1, const QString &p2); + void append(const QString &p1, const QString &p2); + void appendChar(QChar ch); + void appendWord(const QString &word); + void appendToCode(const QString &code); + void appendToCode(const QString &code, Atom::AtomType defaultType); + void enterPara(Atom::AtomType leftType = Atom::ParaLeft, + Atom::AtomType rightType = Atom::ParaRight, const QString &string = QString()); + void leavePara(); + void leaveValue(); + void leaveValueList(); + void leaveTableRow(); + void quoteFromFile(const QString& filename); + bool expandMacro(); + void expandMacro(const QString &name, const QString &def, int numParams); + QString expandMacroToString(const QString &name, const QString &def, int numParams, + const QString &matchExpr); + Doc::Sections getSectioningUnit(); + QString getArgument(bool verbatim = false); + QString getBracedArgument(bool verbatim); + QString getBracketedArgument(); + QString getOptionalArgument(); + QString getRestOfLine(); + QString getMetaCommandArgument(const QString &cmdStr); + QString getUntilEnd(int cmd); + QString getCode(int cmd, CodeMarker *marker, const QString &argStr = QString()); + + inline bool isAutoLinkString(const QString &word); + bool isAutoLinkString(const QString &word, qsizetype &curPos); + bool isBlankLine(); + bool isLeftBraceAhead(); + bool isLeftBracketAhead(); + void skipSpacesOnLine(); + void skipSpacesOrOneEndl(); + void skipAllSpaces(); + void skipToNextPreprocessorCommand(); + static bool isCode(const Atom *atom); + static bool isQuote(const Atom *atom); + static void expandArgumentsInString(QString &str, const QStringList &args); + + QStack m_openedInputs {}; + + QString m_input {}; + qsizetype m_position {}; + qsizetype m_backslashPosition {}; + qsizetype m_endPosition {}; + qsizetype m_inputLength {}; + Location m_cachedLocation {}; + qsizetype m_cachedPosition {}; + + DocPrivate *m_private { nullptr }; + enum ParagraphState { OutsideParagraph, InSingleLineParagraph, InMultiLineParagraph }; + ParagraphState m_paragraphState {}; + bool m_inTableHeader {}; + bool m_inTableRow {}; + bool m_inTableItem {}; + bool m_indexStartedParagraph {}; // ### rename + Atom::AtomType m_pendingParagraphLeftType {}; + Atom::AtomType m_pendingParagraphRightType {}; + QString m_pendingParagraphString {}; + + int m_braceDepth {}; + Doc::Sections m_currentSection {}; + QMap m_targetMap {}; + QMap m_pendingFormats {}; + QStack m_openedCommands {}; + QStack m_openedLists {}; + Quoter m_quoter {}; + Atom *m_lastAtom { nullptr }; + + static DocUtilities &s_utilities; + + // KLUDGE: When parsing documentation, there is a need to find + // files to resolve quoting commands. Ideally, the system that + // takes care of this would be a non-static member that is a + // reference that is passed at + // construction time. + // Nonetheless, with how the current codebase is constructed, this + // has proven to be extremely difficult until more changes are + // done. In particular, the construction of a DocParser happens in + // multiple places at multiple depths and, in particular, happens + // in one of Doc's constructor. + // Doc itself is built, again, in multiple places at multiple + // depths, making it clumsy and sometimes infeasible to pass the + // dependency around so that it is available at the required + // places. In particular, this stems from the fact that Doc is + // holding many responsabilities and is spread troughtout much of + // the codebase in different ways. DocParser mostly depends on Doc + // and Doc currently depends on DocParser, making the two + // difficult to separate. + // + // In the future, we expect Doc to mostly be removed, such as to + // remove this dependencies and the parsing of documentation to + // happen near main and atomically from other endevours, producing + // an intermediate representation that is consumed by later + // phases. + // At that point, it should be possible to not have this kind of + // indirection while, for now, the only accessible way to pass + // this dependency is trough the initialize method which passes + // for Doc::initialize. + // + // Furthemore, as we cannot late-bind a reference, and having a + // desire to avoid an unnecessary copy, we are thus forced to use + // a different storage method, in this case a pointer. + // This too should be removed later on, using reference or move + // semantic depending on the required data-flow. + static FileResolver* file_resolver; +}; +QT_END_NAMESPACE + +#endif // DOCPARSER_H diff --git a/src/qdoc/docprivate.cpp b/src/qdoc/docprivate.cpp new file mode 100644 index 0000000..a7c178d --- /dev/null +++ b/src/qdoc/docprivate.cpp @@ -0,0 +1,30 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "docprivate.h" + +#include "text.h" + +#include + +QT_BEGIN_NAMESPACE + +/*! + Deletes the DocPrivateExtra. + */ +DocPrivate::~DocPrivate() +{ + delete extra; +} + +void DocPrivate::addAlso(const Text &also) +{ + m_alsoList.append(also); +} + +void DocPrivate::constructExtra() +{ + if (extra == nullptr) + extra = new DocPrivateExtra; +} + +QT_END_NAMESPACE diff --git a/src/qdoc/docprivate.h b/src/qdoc/docprivate.h new file mode 100644 index 0000000..4e669bc --- /dev/null +++ b/src/qdoc/docprivate.h @@ -0,0 +1,75 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#ifndef DOCPRIVATE_H +#define DOCPRIVATE_H + +#include "atom.h" +#include "config.h" +#include "codemarker.h" +#include "doc.h" +#include "editdistance.h" +#include "generator.h" +#include "utilities.h" +#include "openedlist.h" +#include "quoter.h" +#include "text.h" +#include "tokenizer.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +typedef QMap CommandMap; + +struct DocPrivateExtra +{ + QList m_tableOfContents {}; + QList m_tableOfContentsLevels {}; + QList m_keywords {}; + QList m_targets {}; + QStringMultiMap m_metaMap {}; +}; + +class DocPrivate +{ +public: + explicit DocPrivate(const Location &start = Location(), const Location &end = Location(), + QString source = QString()) + : m_start_loc(start), m_end_loc(end), m_src(std::move(source)), m_hasLegalese(false) {}; + ~DocPrivate(); + + void addAlso(const Text &also); + void constructExtra(); + void ref() { ++count; } + bool deref() { return (--count == 0); } + + int count { 1 }; + // ### move some of this in DocPrivateExtra + Location m_start_loc {}; + Location m_end_loc {}; + QString m_src {}; + Text m_text {}; + QSet m_params {}; + QList m_alsoList {}; + QStringList m_enumItemList {}; + QStringList m_omitEnumItemList {}; + QSet m_metacommandsUsed {}; + CommandMap m_metaCommandMap {}; + DocPrivateExtra *extra { nullptr }; + TopicList m_topics {}; + + bool m_hasLegalese : 1; +}; + +QT_END_NAMESPACE + +#endif // DOCPRIVATE_H diff --git a/src/qdoc/docutilities.h b/src/qdoc/docutilities.h new file mode 100644 index 0000000..5a2fc1a --- /dev/null +++ b/src/qdoc/docutilities.h @@ -0,0 +1,30 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#ifndef DOCUTILITIES_H +#define DOCUTILITIES_H + +#include "macro.h" +#include "singleton.h" + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +typedef QMap QStringMap; +typedef QHash QHash_QString_int; +typedef QHash QHash_QString_Macro; + +struct DocUtilities : public Singleton +{ +public: + QStringMap aliasMap; + QHash_QString_int cmdHash; + QHash_QString_Macro macroHash; +}; + +QT_END_NAMESPACE + +#endif // DOCUTILITIES_H diff --git a/src/qdoc/editdistance.cpp b/src/qdoc/editdistance.cpp new file mode 100644 index 0000000..303979e --- /dev/null +++ b/src/qdoc/editdistance.cpp @@ -0,0 +1,68 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "editdistance.h" + +QT_BEGIN_NAMESPACE + +int editDistance(const QString &s, const QString &t) +{ +#define D(i, j) d[(i)*n + (j)] + int i; + int j; + qsizetype m = s.size() + 1; + qsizetype n = t.size() + 1; + int *d = new int[m * n]; + int result; + + for (i = 0; i < m; ++i) + D(i, 0) = i; + for (j = 0; j < n; ++j) + D(0, j) = j; + for (i = 1; i < m; ++i) { + for (j = 1; j < n; ++j) { + if (s[i - 1] == t[j - 1]) { + D(i, j) = D(i - 1, j - 1); + } else { + int x = D(i - 1, j); + int y = D(i - 1, j - 1); + int z = D(i, j - 1); + D(i, j) = 1 + qMin(qMin(x, y), z); + } + } + } + result = D(m - 1, n - 1); + delete[] d; + return result; +#undef D +} + +QString nearestName(const QString &actual, const QSet &candidates) +{ + if (actual.isEmpty()) + return QString(); + + int deltaBest = 10000; + int numBest = 0; + QString best; + + for (const auto &candidate : candidates) { + if (candidate[0] == actual[0]) { + int delta = editDistance(actual, candidate); + if (delta < deltaBest) { + deltaBest = delta; + numBest = 1; + best = candidate; + } else if (delta == deltaBest) { + ++numBest; + } + } + } + + if (numBest == 1 && deltaBest <= 2 && actual.size() + best.size() >= 5) + return best; + + return QString(); +} + +QT_END_NAMESPACE diff --git a/src/qdoc/editdistance.h b/src/qdoc/editdistance.h new file mode 100644 index 0000000..dfa6a42 --- /dev/null +++ b/src/qdoc/editdistance.h @@ -0,0 +1,17 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef EDITDISTANCE_H +#define EDITDISTANCE_H + +#include +#include + +QT_BEGIN_NAMESPACE + +int editDistance(const QString &s, const QString &t); +QString nearestName(const QString &actual, const QSet &candidates); + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/enumitem.h b/src/qdoc/enumitem.h new file mode 100644 index 0000000..041c182 --- /dev/null +++ b/src/qdoc/enumitem.h @@ -0,0 +1,30 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef ENUMITEM_H +#define ENUMITEM_H + +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class EnumItem +{ +public: + EnumItem() = default; + EnumItem(QString name, QString value) : m_name(std::move(name)), m_value(std::move(value)) { } + + [[nodiscard]] const QString &name() const { return m_name; } + [[nodiscard]] const QString &value() const { return m_value; } + +private: + QString m_name {}; + QString m_value {}; +}; + +QT_END_NAMESPACE + +#endif // ENUMITEM_H diff --git a/src/qdoc/enumnode.cpp b/src/qdoc/enumnode.cpp new file mode 100644 index 0000000..f948b02 --- /dev/null +++ b/src/qdoc/enumnode.cpp @@ -0,0 +1,69 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "enumnode.h" + +#include "aggregate.h" +#include "typedefnode.h" + +QT_BEGIN_NAMESPACE + +/*! + \class EnumNode + */ + +/*! + Add \a item to the enum type's item list. + */ +void EnumNode::addItem(const EnumItem &item) +{ + m_items.append(item); + m_names.insert(item.name()); +} + +/*! + Returns the access level of the enumeration item named \a name. + Apparently it is private if it has been omitted by qdoc's + omitvalue command. Otherwise it is public. + */ +Access EnumNode::itemAccess(const QString &name) const +{ + if (doc().omitEnumItemNames().contains(name)) + return Access::Private; + return Access::Public; +} + +/*! + Returns the enum value associated with the enum \a name. + */ +QString EnumNode::itemValue(const QString &name) const +{ + for (const auto &item : std::as_const(m_items)) { + if (item.name() == name) + return item.value(); + } + return QString(); +} + +/*! + Clone this node on the heap and make the clone a child of + \a parent. + + Returns a pointer to the clone. + */ +Node *EnumNode::clone(Aggregate *parent) +{ + auto *en = new EnumNode(*this); // shallow copy + en->setParent(nullptr); + parent->addChild(en); + + return en; +} + +void EnumNode::setFlagsType(TypedefNode *typedefNode) +{ + m_flagsType = typedefNode; + typedefNode->setAssociatedEnum(this); +} + +QT_END_NAMESPACE diff --git a/src/qdoc/enumnode.h b/src/qdoc/enumnode.h new file mode 100644 index 0000000..f856475 --- /dev/null +++ b/src/qdoc/enumnode.h @@ -0,0 +1,48 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef ENUMNODE_H +#define ENUMNODE_H + +#include "access.h" +#include "node.h" +#include "typedefnode.h" + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Aggregate; + +class EnumNode : public Node +{ +public: + EnumNode(Aggregate *parent, const QString &name, bool isScoped = false) + : Node(Enum, parent, name), m_isScoped(isScoped) + { + } + + void addItem(const EnumItem &item); + void setFlagsType(TypedefNode *typedefNode); + bool hasItem(const QString &name) const { return m_names.contains(name); } + bool isScoped() const { return m_isScoped; } + + const QList &items() const { return m_items; } + Access itemAccess(const QString &name) const; + const TypedefNode *flagsType() const { return m_flagsType; } + QString itemValue(const QString &name) const; + Node *clone(Aggregate *parent) override; + +private: + QList m_items {}; + QSet m_names {}; + const TypedefNode *m_flagsType { nullptr }; + bool m_isScoped { false }; +}; + +QT_END_NAMESPACE + +#endif // ENUMNODE_H diff --git a/src/qdoc/examplenode.h b/src/qdoc/examplenode.h new file mode 100644 index 0000000..920092e --- /dev/null +++ b/src/qdoc/examplenode.h @@ -0,0 +1,42 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef EXAMPLENODE_H +#define EXAMPLENODE_H + +#include "pagenode.h" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class ExampleNode : public PageNode +{ +public: + ExampleNode(Aggregate *parent, const QString &name) : PageNode(Node::Example, parent, name) {} + [[nodiscard]] QString imageFileName() const override { return m_imageFileName; } + void setImageFileName(const QString &ifn) override { m_imageFileName = ifn; } + [[nodiscard]] const QStringList &files() const { return m_files; } + [[nodiscard]] const QStringList &images() const { return m_images; } + [[nodiscard]] const QString &projectFile() const { return m_projectFile; } + void setFiles(const QStringList &files, const QString &projectFile) + { + m_files = files; + m_projectFile = projectFile; + } + void setImages(const QStringList &images) { m_images = images; } + void appendFile(QString &file) { m_files.append(file); } + void appendImage(QString &image) { m_images.append(image); } + +private: + QString m_imageFileName {}; + QString m_projectFile {}; + QStringList m_files {}; + QStringList m_images {}; +}; + +QT_END_NAMESPACE + +#endif // EXAMPLENODE_H diff --git a/src/qdoc/externalpagenode.cpp b/src/qdoc/externalpagenode.cpp new file mode 100644 index 0000000..30a583d --- /dev/null +++ b/src/qdoc/externalpagenode.cpp @@ -0,0 +1,28 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "externalpagenode.h" + +QT_BEGIN_NAMESPACE + +/*! + \class ExternalPageNode + + \brief The ExternalPageNode represents an external documentation page. + + Qdoc can generate links to pages that are not part of the documentation + being generated. 3rd party software pages are often referenced by links + from the QT documentation. Qdoc creates an ExternalPageNode when it sees + an \c {\\externalpage} command. The HTML generator can then use the node + when it needs to create links to the external page. + + ExternalPageNode inherits PageNode. +*/ + +/*! \fn ExternalPageNode::ExternalPageNode(Aggregate *parent, const QString &name) + The constructor creates an ExternalPageNode as a child node of \a parent. + It's \a name is the argument from the \c {\\externalpage} command. The node + type is Node::ExternalPage, and the page type is Node::ArticlePage. + */ + +QT_END_NAMESPACE diff --git a/src/qdoc/externalpagenode.h b/src/qdoc/externalpagenode.h new file mode 100644 index 0000000..ded1845 --- /dev/null +++ b/src/qdoc/externalpagenode.h @@ -0,0 +1,26 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef EXTERNALPAGENODE_H +#define EXTERNALPAGENODE_H + +#include "pagenode.h" + +#include + +QT_BEGIN_NAMESPACE + +class ExternalPageNode : public PageNode +{ +public: + ExternalPageNode(Aggregate *parent, const QString &url) + : PageNode(Node::ExternalPage, parent, url) + { + setPageType(Node::ArticlePage); + setUrl(url); + } +}; + +QT_END_NAMESPACE + +#endif // EXTERNALPAGENODE_H diff --git a/src/qdoc/filesystem/fileresolver.cpp b/src/qdoc/filesystem/fileresolver.cpp new file mode 100644 index 0000000..bdbbfed --- /dev/null +++ b/src/qdoc/filesystem/fileresolver.cpp @@ -0,0 +1,161 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "fileresolver.hpp" + +#include "boundaries/filesystem/filepath.hpp" + +#include + +#include +#include + +/*! + * \class FileResolver + * \brief Encapsulate the logic that QDoc uses to find files whose + * path is provided by the user and that are relative to the current + * configuration. + * + * A FileResolver instance is configured during creation, defining the + * root directories that the search should be performed on. + * + * Afterwards, it can be used to resolve paths relative to those + * directories, by querying through the resolve() method. + * + * Queries are resolved through a linear search through root + * directories, finding at most one file each time. + * A file is considered to be resolved if, from any root directory, + * the query represents an existing file. + * + * For example, consider the following directory structure on some + * filesystem: + * + * \badcode + * foo/ + * | + * |-bar/ + * |-| + * | |-anotherfile.txt + * |-file.txt + * \endcode + * + * And consider an instance of FileResolver tha considers \e{foo/} to + * be a root directory for search. + * + * Then, queries such as \e {bar/anotherfile.txt} and \e {file.txt} + * will be resolved. + * + * Instead, queries such as \e {foobar.cpp}, \e {bar}, and \e + * {foo/bar/anotherfile.txt} will not be resolved, as they do not + * represent any file reachable from a root directory for search. + * + * It is important to note that FileResolver always searches its root + * directories in an order that is based on the lexicographic ordering + * of the path of its root directories. + * + * For example, consider the following directory structure on some + * filesystem: + * + * \badcode + * foo/ + * | + * |-bar/ + * |-| + * | |-file.txt + * |-foobar/ + * |-| + * | |-file.txt + * \endcode + * + * And consider an instance of FileResolver that considers \e + * {foo/bar/} and \e {foo/foobar/} to be root directories for search. + * + * Then, when the query \e {file.txt} is resolved, it will always + * resolve to the file in \e {bar}, as \e {bar} will be searched + * before \e {foobar}. + * + * We say that \e {foobar/file.txt} is shadowed by \e {bar/file.txt}. + * + * Currently, if this is an issue, it is possible to resolve it by + * using a common ancestor as a root directory instead of using + * multiples directories. + * + * In the previous example, if \e {foo} is instead chosen as the root + * directory for search, then queries \e {bar/file.txt} and \e + * {foobar/file.txt} can be used to uniquely resolve the two files, + * removing the shadowing. + * */ + +/*! + * Constructs an instance of FileResolver with the directories in \a + * search_directories as root directories for searching. + * + * Duplicates in \a search_directories do not affect the resolution of + * files for the instance. + * + * For example, if \a search_directories contains some directory D + * more than once, the constructed instance will resolve files + * equivalently to an instance constructed with a single appearance of + * D. + * + * The order of \a search_directories does not affect the resolution + * of files for an instance. + * + * For example, if \a search_directories contains a permutation of + * directories D1, D2, ..., Dn, then the constructed instance will + * resolve files equivalently to an instance constructed from a + * difference permutation of the same directories. + */ +FileResolver::FileResolver(std::vector&& search_directories) + : search_directories{std::move(search_directories)} +{ + std::sort(this->search_directories.begin(), this->search_directories.end()); + this->search_directories.erase ( + std::unique(this->search_directories.begin(), this->search_directories.end()), + this->search_directories.end() + ); +} + +// REMARK: Note that we do not treat absolute path specially. +// This will in general mean that they cannot get resolved (albeit +// there is a peculiar instance in which they can considering that +// most path formats treat multiple adjacent separators as one). +// +// While we need to treat them at some point with a specific +// intention, this was avoided at the current moment as it is +// unrequired to build the actual documentation. +// +// In particular, avoiding this choice now allows us to move it to a +// later stage where we can work with the origin of the data itself. +// User-inputted paths come into the picture during the configuration +// process and when parsing qdoc comments, there is a good chance that +// some amount of sophistication will be required to handle this data +// at the code level, for example to ensure that multiplatform +// handling of paths is performed correctly. +// +// This will then define how we should handle absolute paths, if we +// can receive them at all and so on. + +/*! +* Returns a ResolvedFile if \a query can be resolved or std::nullopt +* otherwise. +* +* The returned ResolvedFile, if any, will contain the provided \a +* query and the path that the \a query was resolved to. +*/ +[[nodiscard]] std::optional FileResolver::resolve(QString query) const { + for (auto& directory_path : search_directories) { + auto maybe_filepath = FilePath::refine(QDir(directory_path.value() + "/" + query).path()); + if (maybe_filepath) return ResolvedFile{std::move(query), std::move(*maybe_filepath)}; + } + + return std::nullopt; +} + +/*! + * \fn FileResolver::get_search_directories() const + * + * Returns a const-reference to a collection of root search + * directories that this instance will use during the resolution of + * files. + */ diff --git a/src/qdoc/filesystem/fileresolver.hpp b/src/qdoc/filesystem/fileresolver.hpp new file mode 100644 index 0000000..924e035 --- /dev/null +++ b/src/qdoc/filesystem/fileresolver.hpp @@ -0,0 +1,24 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#pragma once + +#include "boundaries/filesystem/directorypath.hpp" +#include "boundaries/filesystem/resolvedfile.hpp" + +#include +#include + +#include + +class FileResolver { +public: + FileResolver(std::vector&& search_directories); + + [[nodiscard]] std::optional resolve(QString filename) const; + + [[nodiscard]] const std::vector& get_search_directories() const { return search_directories; } + +private: + std::vector search_directories; +}; diff --git a/src/qdoc/functionnode.cpp b/src/qdoc/functionnode.cpp new file mode 100644 index 0000000..4819187 --- /dev/null +++ b/src/qdoc/functionnode.cpp @@ -0,0 +1,595 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "functionnode.h" + +#include "propertynode.h" + +QT_BEGIN_NAMESPACE + +/*! + \class FunctionNode + + This node is used to represent any kind of function being + documented. It can represent a C++ class member function, + a C++ global function, a QML method, a javascript method, + or a macro, with or without parameters. + + A C++ function can be a signal a slot, a constructor of any + kind, a destructor, a copy or move assignment operator, or + just a plain old member function or global function. + + A QML or javascript method can be a plain old method, or a + signal or signal handler. + + If the function is not an overload, its overload flag is + false. If it is an overload, its overload flag is true. + If it is not an overload but it has overloads, its next + overload pointer will point to an overload function. If it + is an overload function, its overload flag is true, and it + may or may not have a non-null next overload pointer. + + So all the overloads of a function are in a linked list + using the next overload pointer. If a function has no + overloads, its overload flag is false and its overload + pointer is null. + + The function node also has an overload number. If the + node's overload flag is set, this overload number is + positive; otherwise, the overload number is 0. + */ + +/*! + Construct a function node for a C++ function. It's parent + is \a parent, and it's name is \a name. + + \note The function node's overload flag is set to false, and + its overload number is set to 0. These data members are set + in normalizeOverloads(), when all the overloads are known. + */ +FunctionNode::FunctionNode(Aggregate *parent, const QString &name) + : Node(Function, parent, name), + m_const(false), + m_default(false), + m_static(false), + m_reimpFlag(false), + m_attached(false), + m_overloadFlag(false), + m_isFinal(false), + m_isOverride(false), + m_isRef(false), + m_isRefRef(false), + m_isInvokable(false), + m_metaness(Plain), + m_virtualness(NonVirtual), + m_overloadNumber(0), + m_nextOverload(nullptr) +{ + // nothing +} + +/*! + Construct a function node for a QML method or signal, specified + by ther Metaness value \a type. It's parent is \a parent, and + it's name is \a name. If \a attached is true, it is an attached + method or signal. + + \note The function node's overload flag is set to false, and + its overload number is set to 0. These data members are set + in normalizeOverloads(), when all the overloads are known. + */ +FunctionNode::FunctionNode(Metaness kind, Aggregate *parent, const QString &name, bool attached) + : Node(Function, parent, name), + m_const(false), + m_default(false), + m_static(false), + m_reimpFlag(false), + m_attached(attached), + m_overloadFlag(false), + m_isFinal(false), + m_isOverride(false), + m_isRef(false), + m_isRefRef(false), + m_isInvokable(false), + m_metaness(kind), + m_virtualness(NonVirtual), + m_overloadNumber(0), + m_nextOverload(nullptr) +{ + setGenus(getGenus(m_metaness)); + if (!isCppNode() && name.startsWith("__")) + setStatus(Internal); +} + +/*! + Clone this node on the heap and make the clone a child of + \a parent. Return the pointer to the clone. + */ +Node *FunctionNode::clone(Aggregate *parent) +{ + auto *fn = new FunctionNode(*this); // shallow copy + fn->setParent(nullptr); + fn->setNextOverload(nullptr); + parent->addChild(fn); + return fn; +} + +/*! + Returns this function's virtualness value as a string + for use as an attribute value in index files. + */ +QString FunctionNode::virtualness() const +{ + switch (m_virtualness) { + case FunctionNode::NormalVirtual: + return QLatin1String("virtual"); + case FunctionNode::PureVirtual: + return QLatin1String("pure"); + case FunctionNode::NonVirtual: + default: + break; + } + return QLatin1String("non"); +} + +/*! + Sets the function node's virtualness value based on the value + of string \a value, which is the value of the function's \e{virtual} + attribute in an index file. If \a value is \e{pure}, and if the + parent() is a C++ class, set the parent's \e abstract flag to + \c {true}. + */ +void FunctionNode::setVirtualness(const QString &value) +{ + if (value == QLatin1String("non")) + m_virtualness = NonVirtual; + else if (value == QLatin1String("virtual")) + m_virtualness = NormalVirtual; + else if (value == QLatin1String("pure")) { + m_virtualness = PureVirtual; + if (parent() && parent()->isClassNode()) + parent()->setAbstract(true); + } +} + +static QMap metanessMap_; +static void buildMetanessMap() +{ + metanessMap_["plain"] = FunctionNode::Plain; + metanessMap_["signal"] = FunctionNode::Signal; + metanessMap_["slot"] = FunctionNode::Slot; + metanessMap_["constructor"] = FunctionNode::Ctor; + metanessMap_["copy-constructor"] = FunctionNode::CCtor; + metanessMap_["move-constructor"] = FunctionNode::MCtor; + metanessMap_["destructor"] = FunctionNode::Dtor; + metanessMap_["macro"] = FunctionNode::MacroWithParams; + metanessMap_["macrowithparams"] = FunctionNode::MacroWithParams; + metanessMap_["macrowithoutparams"] = FunctionNode::MacroWithoutParams; + metanessMap_["copy-assign"] = FunctionNode::CAssign; + metanessMap_["move-assign"] = FunctionNode::MAssign; + metanessMap_["native"] = FunctionNode::Native; + metanessMap_["qmlsignal"] = FunctionNode::QmlSignal; + metanessMap_["qmlsignalhandler"] = FunctionNode::QmlSignalHandler; + metanessMap_["qmlmethod"] = FunctionNode::QmlMethod; + metanessMap_["jssignal"] = FunctionNode::JsSignal; + metanessMap_["jssignalhandler"] = FunctionNode::JsSignalHandler; + metanessMap_["jsmethos"] = FunctionNode::JsMethod; +} + +static QMap topicMetanessMap_; +static void buildTopicMetanessMap() +{ + topicMetanessMap_["fn"] = FunctionNode::Plain; + topicMetanessMap_["qmlsignal"] = FunctionNode::QmlSignal; + topicMetanessMap_["qmlattachedsignal"] = FunctionNode::QmlSignal; + topicMetanessMap_["qmlmethod"] = FunctionNode::QmlMethod; + topicMetanessMap_["qmlattachedmethod"] = FunctionNode::QmlMethod; + topicMetanessMap_["jssignal"] = FunctionNode::JsSignal; + topicMetanessMap_["jsattachedsignal"] = FunctionNode::JsSignal; + topicMetanessMap_["jsmethod"] = FunctionNode::JsMethod; + topicMetanessMap_["jsattachedmethod"] = FunctionNode::JsMethod; +} + +/*! + Determines the Genus value for this FunctionNode given the + Metaness value \a metaness. Returns the Genus value. \a metaness must be + one of the values of Metaness. If not, Node::DontCare is + returned. + */ +Node::Genus FunctionNode::getGenus(FunctionNode::Metaness metaness) +{ + switch (metaness) { + case FunctionNode::Plain: + case FunctionNode::Signal: + case FunctionNode::Slot: + case FunctionNode::Ctor: + case FunctionNode::Dtor: + case FunctionNode::CCtor: + case FunctionNode::MCtor: + case FunctionNode::MacroWithParams: + case FunctionNode::MacroWithoutParams: + case FunctionNode::Native: + case FunctionNode::CAssign: + case FunctionNode::MAssign: + return Node::CPP; + case FunctionNode::QmlSignal: + case FunctionNode::QmlSignalHandler: + case FunctionNode::QmlMethod: + return Node::QML; + case FunctionNode::JsSignal: + case FunctionNode::JsSignalHandler: + case FunctionNode::JsMethod: + return Node::JS; + } + return Node::DontCare; +} + +/*! + This static function converts the string \a value to an enum + value for the kind of function named by \a value. + */ +FunctionNode::Metaness FunctionNode::getMetaness(const QString &value) +{ + if (metanessMap_.isEmpty()) + buildMetanessMap(); + return metanessMap_[value]; +} + +/*! + This static function converts the topic string \a topic to an enum + value for the kind of function this FunctionNode represents. + */ +FunctionNode::Metaness FunctionNode::getMetanessFromTopic(const QString &topic) +{ + if (topicMetanessMap_.isEmpty()) + buildTopicMetanessMap(); + return topicMetanessMap_[topic]; +} + +/*! + If this function node's metaness is \a from, change the + metaness to \a to and return \c true. Otherwise return + false. This function is used to change Qml function node + metaness values to Javascript function node metaness, + values because these nodes are created as Qml function + nodes before it is discovered that what the function node + represents is not a Qml function but a javascript function. + + Note that if the function returns true, which means the node + type was indeed changed, then the node's Genus is also changed + from QML to JS. + + The function also works in the other direction, but there is + no use case for that. + */ +bool FunctionNode::changeMetaness(Metaness from, Metaness to) +{ + if (m_metaness == from) { + m_metaness = to; + switch (to) { + case QmlSignal: + case QmlSignalHandler: + case QmlMethod: + setGenus(Node::QML); + break; + case JsSignal: + case JsSignalHandler: + case JsMethod: + setGenus(Node::JS); + break; + default: + setGenus(Node::CPP); + break; + } + return true; + } + return false; +} + +/*! + Sets the function node's overload number to \a number. If \a number + is 0, the function node's overload flag is set to false. If + \a number is greater than 0, the overload flag is set to true. + */ +void FunctionNode::setOverloadNumber(signed short number) +{ + m_overloadNumber = number; + m_overloadFlag = (number > 0); +} + +/*! + Appends \a functionNode to the linked list of overloads for this function. + + \note Although this function appends an overload function to the list of + overloads for this function's name, it does not set the function's + overload number or it's overload flag. If the function has the + \c{\\overload} in its QDoc comment, that will set the overload + flag. But qdoc treats the \c{\\overload} command as a hint that the + function should be documented as an overload. The hint is almost + always correct, but QDoc reserves the right to decide which function + should be the primary function and which functions are the overloads. + These decisions are made in Aggregate::normalizeOverloads(). + */ +void FunctionNode::appendOverload(FunctionNode *functionNode) +{ + auto current = this; + while (current->m_nextOverload) + current = current->m_nextOverload; + current->m_nextOverload = functionNode; + functionNode->m_nextOverload = nullptr; +} + +/*! + Removes \a functionNode from the linked list of function overloads. +*/ +void FunctionNode::removeOverload(FunctionNode *functionNode) +{ + auto head = this; + auto **indirect = &head; + while ((*indirect) != functionNode) { + if (!(*indirect)->m_nextOverload) + return; + indirect = &(*indirect)->m_nextOverload; + } + *indirect = functionNode->m_nextOverload; +} + +/*! + Returns the primary function - the first function + from the linked list of overloads that is \e not + marked as an overload. If found, the primary function + is removed from the list and returned. Otherwise + returns \c nullptr. + */ +FunctionNode *FunctionNode::findPrimaryFunction() +{ + auto current = this; + while (current->m_nextOverload && current->m_nextOverload->isOverload()) + current = current->m_nextOverload; + + auto primary = current->m_nextOverload; + if (primary) + current->m_nextOverload = primary->m_nextOverload; + + return primary; +} + +/*! + \fn void FunctionNode::setReimpFlag() + + Sets the function node's reimp flag to \c true, which means + the \e {\\reimp} command was used in the qdoc comment. It is + supposed to mean that the function reimplements a virtual + function in a base class. + */ + +/*! + Returns a string representing the kind of function this + Function node represents, which depends on the Metaness + value. + */ +QString FunctionNode::kindString() const +{ + switch (m_metaness) { + case FunctionNode::QmlSignal: + return "QML signal"; + case FunctionNode::QmlSignalHandler: + return "QML signal handler"; + case FunctionNode::QmlMethod: + return "QML method"; + case FunctionNode::JsSignal: + return "JS signal"; + case FunctionNode::JsSignalHandler: + return "JS signal handler"; + case FunctionNode::JsMethod: + return "JS method"; + default: + return "function"; + } +} + +/*! + Returns a string representing the Metaness enum value for + this function. It is used in index files. + */ +QString FunctionNode::metanessString() const +{ + switch (m_metaness) { + case FunctionNode::Plain: + return "plain"; + case FunctionNode::Signal: + return "signal"; + case FunctionNode::Slot: + return "slot"; + case FunctionNode::Ctor: + return "constructor"; + case FunctionNode::CCtor: + return "copy-constructor"; + case FunctionNode::MCtor: + return "move-constructor"; + case FunctionNode::Dtor: + return "destructor"; + case FunctionNode::MacroWithParams: + return "macrowithparams"; + case FunctionNode::MacroWithoutParams: + return "macrowithoutparams"; + case FunctionNode::Native: + return "native"; + case FunctionNode::CAssign: + return "copy-assign"; + case FunctionNode::MAssign: + return "move-assign"; + case FunctionNode::QmlSignal: + return "qmlsignal"; + case FunctionNode::QmlSignalHandler: + return "qmlsignalhandler"; + case FunctionNode::QmlMethod: + return "qmlmethod"; + case FunctionNode::JsSignal: + return "jssignal"; + case FunctionNode::JsSignalHandler: + return "jssignalhandler"; + case FunctionNode::JsMethod: + return "jsmethod"; + default: + return "plain"; + } +} + +/*! + Adds the "associated" property \a p to this function node. + The function might be the setter or getter for a property, + for example. + */ +void FunctionNode::addAssociatedProperty(PropertyNode *p) +{ + m_associatedProperties.append(p); +} + +/*! + \reimp + + Returns \c true if this is an access function for an obsolete property, + otherwise calls the base implementation of isDeprecated(). +*/ +bool FunctionNode::isDeprecated() const +{ + auto it = std::find_if_not(m_associatedProperties.begin(), m_associatedProperties.end(), + [](const Node *p) -> bool { return p->isDeprecated(); }); + + if (!m_associatedProperties.isEmpty() && it == m_associatedProperties.end()) + return true; + + return Node::isDeprecated(); +} + +/*! \fn unsigned char FunctionNode::overloadNumber() const + Returns the overload number for this function. + */ + +/*! + Reconstructs and returns the function's signature. If \a values + is \c true, the default values of the parameters are included. + The return type is included unless \a noReturnType is \c true. + Function templates are prefixed with \c {template } + if \a templateParams is \c true. + */ +QString FunctionNode::signature(bool values, bool noReturnType, bool templateParams) const +{ + QStringList elements; + + if (templateParams) + elements << templateDecl(); + if (!noReturnType) + elements << m_returnType; + elements.removeAll(QString()); + + if (!isMacroWithoutParams()) { + elements << name() + QLatin1Char('(') + m_parameters.signature(values) + QLatin1Char(')'); + if (!isMacro()) { + if (isConst()) + elements << QStringLiteral("const"); + if (isRef()) + elements << QStringLiteral("&"); + else if (isRefRef()) + elements << QStringLiteral("&&"); + } + } else { + elements << name(); + } + return elements.join(QLatin1Char(' ')); +} + +/*! + Print some information used for debugging qdoc. Only used when debugging. + */ +void FunctionNode::debug() const +{ + qDebug("QML METHOD %s m_returnType %s m_parentPath %s", qPrintable(name()), + qPrintable(m_returnType), qPrintable(m_parentPath.join(' '))); +} + +/*! + Compares this FunctionNode to \a node. If \a sameParent is \c true, compares + also the parent of the two nodes. Returns \c true if they describe + the same function. + */ +bool FunctionNode::compare(const Node *node, bool sameParent) const +{ + if (!node || !node->isFunction()) + return false; + + const auto *functionNode = static_cast(node); + if (metaness() != functionNode->metaness()) + return false; + if (sameParent && parent() != functionNode->parent()) + return false; + if (m_returnType != functionNode->returnType()) + return false; + if (isConst() != functionNode->isConst()) + return false; + if (isAttached() != functionNode->isAttached()) + return false; + const Parameters &p = functionNode->parameters(); + if (m_parameters.count() != p.count()) + return false; + if (!p.isEmpty()) { + for (int i = 0; i < p.count(); ++i) { + if (m_parameters.at(i).type() != p.at(i).type()) + return false; + } + } + return true; +} + +/*! + In some cases, it is ok for a public function to be not documented. + For example, the macro Q_OBJECT adds several functions to the API of + a class, but these functions are normally not meant to be documented. + So if a function node doesn't have documentation, then if its name is + in the list of functions that it is ok not to document, this function + returns true. Otherwise, it returns false. + + These are the member function names added by macros. Usually they + are not documented, but they can be documented, so this test avoids + reporting an error if they are not documented. + + But maybe we should generate a standard text for each of them? + */ +bool FunctionNode::isIgnored() const +{ + if (!hasDoc() && !hasSharedDoc()) { + if (name().startsWith(QLatin1String("qt_")) || name() == QLatin1String("metaObject") + || name() == QLatin1String("tr") || name() == QLatin1String("trUtf8") + || name() == QLatin1String("d_func")) { + return true; + } + QString s = signature(false, false); + if (s.contains(QLatin1String("enum_type")) && s.contains(QLatin1String("operator|"))) + return true; + } + return false; +} + +/*! + Returns true if this function has overloads. Otherwise false. + First, if this function node's overload pointer is not nullptr, + return true. Next, if this function node's overload flag is true + return true. Finally, if this function's parent Aggregate has a + function by the same name as this one in its function map and + that function has overloads, return true. Otherwise return false. + + There is a failsafe way to test it under any circumstances. + */ +bool FunctionNode::hasOverloads() const +{ + if (m_nextOverload != nullptr) + return true; + if (m_overloadFlag) + return true; + if (parent()) + return parent()->hasOverloads(this); + return false; +} + +QT_END_NAMESPACE diff --git a/src/qdoc/functionnode.h b/src/qdoc/functionnode.h new file mode 100644 index 0000000..72b7eda --- /dev/null +++ b/src/qdoc/functionnode.h @@ -0,0 +1,205 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef FUNCTIONNODE_H +#define FUNCTIONNODE_H + +#include "aggregate.h" +#include "node.h" +#include "parameters.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +class FunctionNode : public Node +{ +public: + enum Virtualness { NonVirtual, NormalVirtual, PureVirtual }; + + enum Metaness { + Plain, + Signal, + Slot, + Ctor, + Dtor, + CCtor, // copy constructor + MCtor, // move-copy constructor + MacroWithParams, + MacroWithoutParams, + Native, + CAssign, // copy-assignment operator + MAssign, // move-assignment operator + QmlSignal, + QmlSignalHandler, + QmlMethod, + JsSignal, + JsSignalHandler, + JsMethod + }; + + FunctionNode(Aggregate *parent, const QString &name); // C++ function (Plain) + FunctionNode(Metaness type, Aggregate *parent, const QString &name, bool attached = false); + + Node *clone(Aggregate *parent) override; + [[nodiscard]] Metaness metaness() const { return m_metaness; } + [[nodiscard]] QString metanessString() const; + bool changeMetaness(Metaness from, Metaness to); + void setMetaness(Metaness metaness) { m_metaness = metaness; } + [[nodiscard]] QString kindString() const; + static Metaness getMetaness(const QString &value); + static Metaness getMetanessFromTopic(const QString &topic); + static Genus getGenus(Metaness metaness); + + void setReturnType(const QString &type) { m_returnType = type; } + void setParentPath(const QStringList &path) { m_parentPath = path; } + void setVirtualness(const QString &value); + void setVirtualness(Virtualness virtualness) { m_virtualness = virtualness; } + void setVirtual() { m_virtualness = NormalVirtual; } + void setConst(bool b) { m_const = b; } + void setDefault(bool b) { m_default = b; } + void setStatic(bool b) { m_static = b; } + void setReimpFlag() { m_reimpFlag = true; } + void setOverridesThis(const QString &path) { m_overridesThis = path; } + + [[nodiscard]] const QString &returnType() const { return m_returnType; } + [[nodiscard]] QString virtualness() const; + [[nodiscard]] bool isConst() const { return m_const; } + [[nodiscard]] bool isDefault() const override { return m_default; } + [[nodiscard]] bool isStatic() const override { return m_static; } + [[nodiscard]] bool isOverload() const { return m_overloadFlag; } + [[nodiscard]] bool isMarkedReimp() const override { return m_reimpFlag; } + [[nodiscard]] bool isSomeCtor() const { return isCtor() || isCCtor() || isMCtor(); } + [[nodiscard]] bool isMacroWithParams() const { return (m_metaness == MacroWithParams); } + [[nodiscard]] bool isMacroWithoutParams() const { return (m_metaness == MacroWithoutParams); } + [[nodiscard]] bool isMacro() const override + { + return (isMacroWithParams() || isMacroWithoutParams()); + } + [[nodiscard]] bool isDeprecated() const override; + + [[nodiscard]] bool isCppFunction() const { return m_metaness == Plain; } // Is this correct? + [[nodiscard]] bool isSignal() const { return (m_metaness == Signal); } + [[nodiscard]] bool isSlot() const { return (m_metaness == Slot); } + [[nodiscard]] bool isCtor() const { return (m_metaness == Ctor); } + [[nodiscard]] bool isDtor() const { return (m_metaness == Dtor); } + [[nodiscard]] bool isCCtor() const { return (m_metaness == CCtor); } + [[nodiscard]] bool isMCtor() const { return (m_metaness == MCtor); } + [[nodiscard]] bool isCAssign() const { return (m_metaness == CAssign); } + [[nodiscard]] bool isMAssign() const { return (m_metaness == MAssign); } + + [[nodiscard]] bool isJsMethod() const { return (m_metaness == JsMethod); } + [[nodiscard]] bool isJsSignal() const { return (m_metaness == JsSignal); } + [[nodiscard]] bool isJsSignalHandler() const { return (m_metaness == JsSignalHandler); } + + [[nodiscard]] bool isQmlMethod() const { return (m_metaness == QmlMethod); } + [[nodiscard]] bool isQmlSignal() const { return (m_metaness == QmlSignal); } + [[nodiscard]] bool isQmlSignalHandler() const { return (m_metaness == QmlSignalHandler); } + + [[nodiscard]] bool isSpecialMemberFunction() const + { + return (isCtor() || isDtor() || isCCtor() || isMCtor() || isCAssign() || isMAssign()); + } + [[nodiscard]] bool isNonvirtual() const { return (m_virtualness == NonVirtual); } + [[nodiscard]] bool isVirtual() const { return (m_virtualness == NormalVirtual); } + [[nodiscard]] bool isPureVirtual() const { return (m_virtualness == PureVirtual); } + [[nodiscard]] bool returnsBool() const { return (m_returnType == QLatin1String("bool")); } + + Parameters ¶meters() { return m_parameters; } + [[nodiscard]] const Parameters ¶meters() const { return m_parameters; } + [[nodiscard]] bool isPrivateSignal() const { return m_parameters.isPrivateSignal(); } + void setParameters(const QString &signature) { m_parameters.set(signature); } + [[nodiscard]] QString signature(bool values, bool noReturnType, + bool templateParams = false) const override; + + [[nodiscard]] const QString &overridesThis() const { return m_overridesThis; } + [[nodiscard]] const NodeList &associatedProperties() const { return m_associatedProperties; } + [[nodiscard]] bool hasAssociatedProperties() const { return !m_associatedProperties.isEmpty(); } + [[nodiscard]] bool hasOneAssociatedProperty() const + { + return (m_associatedProperties.size() == 1); + } + [[nodiscard]] Node *firstAssociatedProperty() const { return m_associatedProperties[0]; } + + [[nodiscard]] QString element() const override { return parent()->name(); } + [[nodiscard]] bool isAttached() const override { return m_attached; } + [[nodiscard]] bool isQtQuickNode() const override { return parent()->isQtQuickNode(); } + [[nodiscard]] QString qmlTypeName() const override { return parent()->qmlTypeName(); } + [[nodiscard]] QString logicalModuleName() const override + { + return parent()->logicalModuleName(); + } + [[nodiscard]] QString logicalModuleVersion() const override + { + return parent()->logicalModuleVersion(); + } + [[nodiscard]] QString logicalModuleIdentifier() const override + { + return parent()->logicalModuleIdentifier(); + } + + void debug() const; + + void setFinal(bool b) { m_isFinal = b; } + [[nodiscard]] bool isFinal() const { return m_isFinal; } + + void setOverride(bool b) { m_isOverride = b; } + [[nodiscard]] bool isOverride() const { return m_isOverride; } + + void setRef(bool b) { m_isRef = b; } + [[nodiscard]] bool isRef() const { return m_isRef; } + + void setRefRef(bool b) { m_isRefRef = b; } + [[nodiscard]] bool isRefRef() const { return m_isRefRef; } + + void setInvokable(bool b) { m_isInvokable = b; } + [[nodiscard]] bool isInvokable() const { return m_isInvokable; } + + [[nodiscard]] bool hasTag(const QString &tag) const override { return (m_tag == tag); } + void setTag(const QString &tag) { m_tag = tag; } + [[nodiscard]] const QString &tag() const { return m_tag; } + bool compare(const Node *node, bool sameParent = true) const; + [[nodiscard]] bool isIgnored() const; + [[nodiscard]] bool hasOverloads() const; + void setOverloadFlag() { m_overloadFlag = true; } + void setOverloadNumber(signed short number); + void appendOverload(FunctionNode *functionNode); + void removeOverload(FunctionNode *functionNode); + [[nodiscard]] signed short overloadNumber() const { return m_overloadNumber; } + FunctionNode *nextOverload() { return m_nextOverload; } + void setNextOverload(FunctionNode *functionNode) { m_nextOverload = functionNode; } + FunctionNode *findPrimaryFunction(); + +private: + void addAssociatedProperty(PropertyNode *property); + + friend class Aggregate; + friend class PropertyNode; + + bool m_const : 1; + bool m_default : 1; + bool m_static : 1; + bool m_reimpFlag : 1; + bool m_attached : 1; + bool m_overloadFlag : 1; + bool m_isFinal : 1; + bool m_isOverride : 1; + bool m_isRef : 1; + bool m_isRefRef : 1; + bool m_isInvokable : 1; + Metaness m_metaness {}; + Virtualness m_virtualness {}; + signed short m_overloadNumber {}; + FunctionNode *m_nextOverload { nullptr }; + QString m_returnType {}; + QStringList m_parentPath {}; + QString m_overridesThis {}; + QString m_tag {}; + NodeList m_associatedProperties {}; + Parameters m_parameters {}; +}; + +QT_END_NAMESPACE + +#endif // FUNCTIONNODE_H diff --git a/src/qdoc/generator.cpp b/src/qdoc/generator.cpp new file mode 100644 index 0000000..74b8587 --- /dev/null +++ b/src/qdoc/generator.cpp @@ -0,0 +1,2146 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "generator.h" + +#include "access.h" +#include "aggregate.h" +#include "classnode.h" +#include "codemarker.h" +#include "collectionnode.h" +#include "config.h" +#include "doc.h" +#include "editdistance.h" +#include "enumnode.h" +#include "examplenode.h" +#include "functionnode.h" +#include "node.h" +#include "openedlist.h" +#include "propertynode.h" +#include "qdocdatabase.h" +#include "qmltypenode.h" +#include "quoter.h" +#include "sharedcommentnode.h" +#include "tokenizer.h" +#include "typedefnode.h" +#include "utilities.h" + +#include +#include +#include + +#ifndef QT_BOOTSTRAPPED +# include "QtCore/qurl.h" +#endif + +QT_BEGIN_NAMESPACE + +Generator *Generator::s_currentGenerator; +QMap> Generator::s_fmtLeftMaps; +QMap> Generator::s_fmtRightMaps; +QList Generator::s_generators; +QString Generator::s_outDir; +QString Generator::s_outSubdir; +QStringList Generator::s_outFileNames; +QSet Generator::s_outputFormats; +QHash Generator::s_outputPrefixes; +QHash Generator::s_outputSuffixes; +QString Generator::s_project; +bool Generator::s_noLinkErrors = false; +bool Generator::s_autolinkErrors = false; +bool Generator::s_redirectDocumentationToDevNull = false; +bool Generator::s_useOutputSubdirs = true; +QmlTypeNode *Generator::s_qmlTypeContext = nullptr; + +static QRegularExpression tag("]*>"); +static QLatin1String amp("&"); +static QLatin1String gt(">"); +static QLatin1String lt("<"); +static QLatin1String quot("""); + +/*! + Constructs the generator base class. Prepends the newly + constructed generator to the list of output generators. + Sets a pointer to the QDoc database singleton, which is + available to the generator subclasses. + */ +Generator::Generator(FileResolver& file_resolver) + : file_resolver{file_resolver} +{ + m_qdb = QDocDatabase::qdocDB(); + s_generators.prepend(this); +} + +/*! + Destroys the generator after removing it from the list of + output generators. + */ +Generator::~Generator() +{ + s_generators.removeAll(this); +} + +void Generator::appendFullName(Text &text, const Node *apparentNode, const Node *relative, + const Node *actualNode) +{ + if (actualNode == nullptr) + actualNode = apparentNode; + text << Atom(Atom::LinkNode, CodeMarker::stringForNode(actualNode)) + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) + << Atom(Atom::String, apparentNode->plainFullName(relative)) + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); +} + +void Generator::appendFullName(Text &text, const Node *apparentNode, const QString &fullName, + const Node *actualNode) +{ + if (actualNode == nullptr) + actualNode = apparentNode; + text << Atom(Atom::LinkNode, CodeMarker::stringForNode(actualNode)) + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) << Atom(Atom::String, fullName) + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); +} + +/*! + Append the signature for the function named in \a node to + \a text, so that is is a link to the documentation for that + function. + */ +void Generator::appendSignature(Text &text, const Node *node) +{ + text << Atom(Atom::LinkNode, CodeMarker::stringForNode(node)) + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) + << Atom(Atom::String, node->signature(false, true)) + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); +} + +/*! + Generate a bullet list of function signatures. The function + nodes are in \a nodes. It uses the \a relative node and the + \a marker for the generation. + */ +void Generator::signatureList(const NodeList &nodes, const Node *relative, CodeMarker *marker) +{ + Text text; + int count = 0; + text << Atom(Atom::ListLeft, QString("bullet")); + for (const auto &node : nodes) { + text << Atom(Atom::ListItemNumber, QString::number(++count)); + text << Atom(Atom::ListItemLeft, QString("bullet")); + appendSignature(text, node); + text << Atom(Atom::ListItemRight, QString("bullet")); + } + text << Atom(Atom::ListRight, QString("bullet")); + generateText(text, relative, marker); +} + +int Generator::appendSortedNames(Text &text, const ClassNode *cn, const QList &rc) +{ + QMap classMap; + for (const auto &relatedClass : rc) { + ClassNode *rcn = relatedClass.m_node; + if (rcn && rcn->isInAPI()) { + Text className; + appendFullName(className, rcn, cn); + classMap[className.toString().toLower()] = className; + } + } + + int index = 0; + const QStringList classNames = classMap.keys(); + for (const auto &className : classNames) { + text << classMap[className]; + text << Utilities::comma(index++, classNames.size()); + } + return index; +} + +int Generator::appendSortedQmlNames(Text &text, const Node *base, const NodeList &subs) +{ + QMap classMap; + + for (const auto sub : subs) { + Text text; + if (!base->isQtQuickNode() || !sub->isQtQuickNode() + || (base->logicalModuleName() == sub->logicalModuleName())) { + appendFullName(text, sub, base); + classMap[text.toString().toLower()] = text; + } + } + + int index = 0; + const QStringList names = classMap.keys(); + for (const auto &name : names) { + text << classMap[name]; + text << Utilities::comma(index++, names.size()); + } + return index; +} + +/*! + Creates the file named \a fileName in the output directory + and returns a QFile pointing to this file. In particular, + this method deals with errors when opening the file: + the returned QFile is always valid and can be written to. + + \sa beginFilePage() + */ +QFile *Generator::openSubPageFile(const Node *node, const QString &fileName) +{ + QString path = outputDir() + QLatin1Char('/'); + if (Generator::useOutputSubdirs() && !node->outputSubdirectory().isEmpty() + && !outputDir().endsWith(node->outputSubdirectory())) { + path += node->outputSubdirectory() + QLatin1Char('/'); + } + path += fileName; + + auto outPath = s_redirectDocumentationToDevNull ? QStringLiteral("/dev/null") : path; + auto outFile = new QFile(outPath); + + if (!s_redirectDocumentationToDevNull && outFile->exists()) + qCDebug(lcQdoc) << "Output file already exists; overwriting" << qPrintable(outFile->fileName()); + + if (!outFile->open(QFile::WriteOnly)) { + node->location().fatal( + QStringLiteral("Cannot open output file '%1'").arg(outFile->fileName())); + } + + qCDebug(lcQdoc, "Writing: %s", qPrintable(path)); + s_outFileNames << fileName; + return outFile; +} + +/*! + Creates the file named \a fileName in the output directory. + Attaches a QTextStream to the created file, which is written + to all over the place using out(). This function does not + store the \a fileName in the \a node as the output file name. + + \sa beginSubPage() + */ +void Generator::beginFilePage(const Node *node, const QString &fileName) +{ + QFile *outFile = openSubPageFile(node, fileName); + auto *out = new QTextStream(outFile); + outStreamStack.push(out); +} + +/*! + Creates the file named \a fileName in the output directory. + Attaches a QTextStream to the created file, which is written + to all over the place using out(). This function calls another + function, \c beginFilePage(), which is really just most of what + this function used to contain. We needed a different version + that doesn't store the \a fileName in the \a node as the output + file name. + + \sa beginFilePage() +*/ +void Generator::beginSubPage(const Node *node, const QString &fileName) +{ + beginFilePage(node, fileName); + const_cast(node)->setOutputFileName(fileName); +} + +/*! + Flush the text stream associated with the subpage, and + then pop it off the text stream stack and delete it. + This terminates output of the subpage. + */ +void Generator::endSubPage() +{ + outStreamStack.top()->flush(); + delete outStreamStack.top()->device(); + delete outStreamStack.pop(); +} + +/* + the code below is effectively equivalent to: + input.replace(QRegularExpression("[^A-Za-z0-9]+"), " "); + input = input.trimmed(); + input.replace(QLatin1Char(' '), QLatin1Char('-')); + input = input.toLower(); + as this function accounted for ~8% of total running time + we optimize a bit... +*/ +static void transmogrify(QString &input, QString &output) +{ + // +5 prevents realloc in fileName() below + output.reserve(input.size() + 5); + bool begun = false; + for (int i = 0; i != input.size(); ++i) { + QChar c = input.at(i); + uint u = c.unicode(); + if (u >= 'A' && u <= 'Z') + u += 'a' - 'A'; + if ((u >= 'a' && u <= 'z') || (u >= '0' && u <= '9')) { + output += QLatin1Char(u); + begun = true; + } else if (begun) { + output += QLatin1Char('-'); + begun = false; + } + } + while (output.endsWith(QLatin1Char('-'))) + output.chop(1); +} + +QString Generator::fileBase(const Node *node) const +{ + if (!node->isPageNode() && !node->isCollectionNode()) + node = node->parent(); + + if (node->hasFileNameBase()) + return node->fileNameBase(); + + QString base; + if (node->isCollectionNode()) { + base = node->name() + outputSuffix(node); + if (base.endsWith(".html")) + base.truncate(base.size() - 5); + + if (node->isQmlModule()) + base.append("-qmlmodule"); + else if (node->isJsModule()) + base.append("-jsmodule"); + else if (node->isModule()) + base.append("-module"); + // Why not add "-group" for group pages? + } else if (node->isTextPageNode()) { + base = node->name(); + if (base.endsWith(".html")) + base.truncate(base.size() - 5); + + if (node->isExample()) { + base.prepend(s_project.toLower() + QLatin1Char('-')); + base.append(QLatin1String("-example")); + } + } else if (node->isQmlType() || node->isQmlBasicType() || node->isJsType() + || node->isJsBasicType()) { + base = node->name(); + /* + To avoid file name conflicts in the html directory, + we prepend a prefix (by default, "qml-") and an optional suffix + to the file name. The suffix, if one exists, is appended to the + module name. + */ + if (!node->logicalModuleName().isEmpty() + && (!node->logicalModule()->isInternal() || m_showInternal)) + base.prepend(node->logicalModuleName() + outputSuffix(node) + QLatin1Char('-')); + + base.prepend(outputPrefix(node)); + } else if (node->isProxyNode()) { + base = node->name(); + base.append("-proxy"); + } else { + const Node *p = node; + forever { + const Node *pp = p->parent(); + base.prepend(p->name()); + if (pp == nullptr || pp->name().isEmpty() || pp->isTextPageNode()) + break; + base.prepend(QLatin1Char('-')); + p = pp; + } + if (node->isNamespace() && !node->name().isEmpty()) { + const auto *ns = static_cast(node); + if (!ns->isDocumentedHere()) { + base.append(QLatin1String("-sub-")); + base.append(ns->tree()->camelCaseModuleName()); + } + } + } + + QString res; + transmogrify(base, res); + Node *n = const_cast(node); + n->setFileNameBase(res); + return res; +} + +/*! + Constructs an href link from an example file name, which + is a \a path to the example file. If \a fileExt is empty + (default value), retrieve the file extension from + the generator. + */ +QString Generator::linkForExampleFile(const QString &path, const QString &fileExt) +{ + QString link = path; + link.prepend(s_project.toLower() + QLatin1Char('-')); + + QString res; + transmogrify(link, res); + res.append(QLatin1Char('.')); + res.append(fileExt.isEmpty() ? fileExtension() : fileExt); + return res; +} + +/*! + Helper function to construct a title for a file or image page + included in an example. +*/ +QString Generator::exampleFileTitle(const ExampleNode *relative, const QString &fileName) +{ + QString suffix; + if (relative->files().contains(fileName)) + suffix = QLatin1String(" Example File"); + else if (relative->images().contains(fileName)) + suffix = QLatin1String(" Image File"); + else + return suffix; + + return fileName.mid(fileName.lastIndexOf(QLatin1Char('/')) + 1) + suffix; +} + +/*! + If the \a node has a URL, return the URL as the file name. + Otherwise, construct the file name from the fileBase() and + either the provided \a extension or fileExtension(), and + return the constructed name. + */ +QString Generator::fileName(const Node *node, const QString &extension) const +{ + if (!node->url().isEmpty()) + return node->url(); + + QString name = fileBase(node) + QLatin1Char('.'); + return extension.isNull() ? name + fileExtension() : name + extension; +} + +/*! + Clean the given \a ref to be used as an HTML anchor or an \c xml:id. + If \a xmlCompliant is set to \c true, a stricter process is used, as XML + is more rigorous in what it accepts. Otherwise, if \a xmlCompliant is set to + \c false, the basic HTML transformations are applied. + + More specifically, only XML NCNames are allowed + (https://www.w3.org/TR/REC-xml-names/#NT-NCName). + */ +QString Generator::cleanRef(const QString &ref, bool xmlCompliant) +{ + // XML-compliance is ensured in two ways: + // - no digit (0-9) at the beginning of an ID (many IDs do not respect this property) + // - no colon (:) anywhere in the ID (occurs very rarely) + + QString clean; + + if (ref.isEmpty()) + return clean; + + clean.reserve(ref.size() + 20); + const QChar c = ref[0]; + const uint u = c.unicode(); + + if ((u >= 'a' && u <= 'z') || (u >= 'A' && u <= 'Z') || (!xmlCompliant && u >= '0' && u <= '9')) { + clean += c; + } else if (xmlCompliant && u >= '0' && u <= '9') { + clean += QLatin1Char('A') + c; + } else if (u == '~') { + clean += "dtor."; + } else if (u == '_') { + clean += "underscore."; + } else { + clean += QLatin1Char('A'); + } + + for (int i = 1; i < ref.size(); i++) { + const QChar c = ref[i]; + const uint u = c.unicode(); + if ((u >= 'a' && u <= 'z') || (u >= 'A' && u <= 'Z') || (u >= '0' && u <= '9') || u == '-' + || u == '_' || (xmlCompliant && u == ':') || u == '.') { + clean += c; + } else if (c.isSpace()) { + clean += QLatin1Char('-'); + } else if (u == '!') { + clean += "-not"; + } else if (u == '&') { + clean += "-and"; + } else if (u == '<') { + clean += "-lt"; + } else if (u == '=') { + clean += "-eq"; + } else if (u == '>') { + clean += "-gt"; + } else if (u == '#') { + clean += QLatin1Char('#'); + } else { + clean += QLatin1Char('-'); + clean += QString::number(static_cast(u), 16); + } + } + return clean; +} + +QMap &Generator::formattingLeftMap() +{ + return s_fmtLeftMaps[format()]; +} + +QMap &Generator::formattingRightMap() +{ + return s_fmtRightMaps[format()]; +} + +/*! + Returns the full document location. + */ +QString Generator::fullDocumentLocation(const Node *node, bool useSubdir) +{ + if (node == nullptr) + return QString(); + if (!node->url().isEmpty()) + return node->url(); + + QString parentName; + QString anchorRef; + QString fdl; + + /* + If the useSubdir parameter is set, then the output is + being sent to subdirectories of the output directory. + Prepend the subdirectory name + '/' to the result. + */ + if (useSubdir) { + fdl = node->outputSubdirectory(); + if (!fdl.isEmpty()) + fdl.append(QLatin1Char('/')); + } + if (node->isNamespace()) { + /* + The root namespace has no name - check for this before creating + an attribute containing the location of any documentation. + */ + if (!fileBase(node).isEmpty()) + parentName = fileBase(node) + QLatin1Char('.') + currentGenerator()->fileExtension(); + else + return QString(); + } else if (node->isQmlType() || node->isQmlBasicType() || node->isJsType() + || node->isJsBasicType()) { + QString fb = fileBase(node); + if (fb.startsWith(outputPrefix(node))) + return fb + QLatin1Char('.') + currentGenerator()->fileExtension(); + else { + QString mq; + if (!node->logicalModuleName().isEmpty()) { + mq = node->logicalModuleName().replace(QChar('.'), QChar('-')); + mq = mq.toLower() + QLatin1Char('-'); + } + return fdl + outputPrefix(node) + mq + fileBase(node) + QLatin1Char('.') + + currentGenerator()->fileExtension(); + } + } else if (node->isTextPageNode() || node->isCollectionNode()) { + parentName = fileBase(node) + QLatin1Char('.') + currentGenerator()->fileExtension(); + } else if (fileBase(node).isEmpty()) + return QString(); + + Node *parentNode = nullptr; + + if ((parentNode = node->parent())) { + // use the parent's name unless the parent is the root namespace + if (!node->parent()->isNamespace() || !node->parent()->name().isEmpty()) + parentName = fullDocumentLocation(node->parent()); + } + + switch (node->nodeType()) { + case Node::Class: + case Node::Struct: + case Node::Union: + case Node::Namespace: + case Node::Proxy: + parentName = fileBase(node) + QLatin1Char('.') + currentGenerator()->fileExtension(); + break; + case Node::Function: { + const auto *fn = static_cast(node); + switch (fn->metaness()) { + case FunctionNode::JsSignal: + case FunctionNode::QmlSignal: + anchorRef = QLatin1Char('#') + node->name() + "-signal"; + break; + case FunctionNode::JsSignalHandler: + case FunctionNode::QmlSignalHandler: + anchorRef = QLatin1Char('#') + node->name() + "-signal-handler"; + break; + case FunctionNode::JsMethod: + case FunctionNode::QmlMethod: + anchorRef = QLatin1Char('#') + node->name() + "-method"; + break; + default: + if (fn->isDtor()) + anchorRef = "#dtor." + fn->name().mid(1); + else if (fn->hasOneAssociatedProperty() && fn->doc().isEmpty()) + return fullDocumentLocation(fn->firstAssociatedProperty()); + else if (fn->overloadNumber() > 0) + anchorRef = QLatin1Char('#') + cleanRef(fn->name()) + QLatin1Char('-') + + QString::number(fn->overloadNumber()); + else + anchorRef = QLatin1Char('#') + cleanRef(fn->name()); + break; + } + break; + } + /* + Use node->name() instead of fileBase(node) as + the latter returns the name in lower-case. For + HTML anchors, we need to preserve the case. + */ + case Node::Enum: + anchorRef = QLatin1Char('#') + node->name() + "-enum"; + break; + case Node::Typedef: { + const auto *tdef = static_cast(node); + if (tdef->associatedEnum()) + return fullDocumentLocation(tdef->associatedEnum()); + } Q_FALLTHROUGH(); + case Node::TypeAlias: + anchorRef = QLatin1Char('#') + node->name() + "-typedef"; + break; + case Node::Property: + anchorRef = QLatin1Char('#') + node->name() + "-prop"; + break; + case Node::SharedComment: { + if (!node->isPropertyGroup()) + break; + } Q_FALLTHROUGH(); + case Node::JsProperty: + case Node::QmlProperty: + if (node->isAttached()) + anchorRef = QLatin1Char('#') + node->name() + "-attached-prop"; + else + anchorRef = QLatin1Char('#') + node->name() + "-prop"; + break; + case Node::Variable: + anchorRef = QLatin1Char('#') + node->name() + "-var"; + break; + case Node::JsType: + case Node::QmlType: + case Node::Page: + case Node::Group: + case Node::HeaderFile: + case Node::Module: + case Node::JsModule: + case Node::QmlModule: { + parentName = fileBase(node); + parentName.replace(QLatin1Char('/'), QLatin1Char('-')) + .replace(QLatin1Char('.'), QLatin1Char('-')); + parentName += QLatin1Char('.') + currentGenerator()->fileExtension(); + } break; + default: + break; + } + + if (!node->isClassNode() && !node->isNamespace()) { + if (node->isDeprecated()) + parentName.replace(QLatin1Char('.') + currentGenerator()->fileExtension(), + "-obsolete." + currentGenerator()->fileExtension()); + } + + return fdl + parentName.toLower() + anchorRef; +} + +void Generator::generateAlsoList(const Node *node, CodeMarker *marker) +{ + QList alsoList = node->doc().alsoList(); + supplementAlsoList(node, alsoList); + + if (!alsoList.isEmpty()) { + Text text; + text << Atom::ParaLeft << Atom(Atom::FormattingLeft, ATOM_FORMATTING_BOLD) << "See also " + << Atom(Atom::FormattingRight, ATOM_FORMATTING_BOLD); + + for (int i = 0; i < alsoList.size(); ++i) + text << alsoList.at(i) << Utilities::separator(i, alsoList.size()); + + text << Atom::ParaRight; + generateText(text, node, marker); + } +} + +const Atom *Generator::generateAtomList(const Atom *atom, const Node *relative, CodeMarker *marker, + bool generate, int &numAtoms) +{ + while (atom != nullptr) { + if (atom->type() == Atom::FormatIf) { + int numAtoms0 = numAtoms; + bool rightFormat = canHandleFormat(atom->string()); + atom = generateAtomList(atom->next(), relative, marker, generate && rightFormat, + numAtoms); + if (atom == nullptr) + return nullptr; + + if (atom->type() == Atom::FormatElse) { + ++numAtoms; + atom = generateAtomList(atom->next(), relative, marker, generate && !rightFormat, + numAtoms); + if (atom == nullptr) + return nullptr; + } + + if (atom->type() == Atom::FormatEndif) { + if (generate && numAtoms0 == numAtoms) { + relative->location().warning(QStringLiteral("Output format %1 not handled %2") + .arg(format(), outFileName())); + Atom unhandledFormatAtom(Atom::UnhandledFormat, format()); + generateAtomList(&unhandledFormatAtom, relative, marker, generate, numAtoms); + } + atom = atom->next(); + } + } else if (atom->type() == Atom::FormatElse || atom->type() == Atom::FormatEndif) { + return atom; + } else { + int n = 1; + if (generate) { + n += generateAtom(atom, relative, marker); + numAtoms += n; + } + while (n-- > 0) + atom = atom->next(); + } + } + return nullptr; +} + +/*! + Generate the body of the documentation from the qdoc comment + found with the entity represented by the \a node. + */ +void Generator::generateBody(const Node *node, CodeMarker *marker) +{ + const FunctionNode *fn = node->isFunction() ? static_cast(node) : nullptr; + if (!node->hasDoc() && !node->hasSharedDoc()) { + /* + Test for special function, like a destructor or copy constructor, + that has no documentation. + */ + if (fn) { + if (fn->isDtor()) { + Text text; + text << "Destroys the instance of "; + text << fn->parent()->name() << "."; + if (fn->isVirtual()) + text << " The destructor is virtual."; + out() << "

"; + generateText(text, node, marker); + out() << "

"; + } else if (fn->isCtor()) { + Text text; + text << "Default constructs an instance of "; + text << fn->parent()->name() << "."; + out() << "

"; + generateText(text, node, marker); + out() << "

"; + } else if (fn->isCCtor()) { + Text text; + text << "Copy constructor."; + out() << "

"; + generateText(text, node, marker); + out() << "

"; + } else if (fn->isMCtor()) { + Text text; + text << "Move-copy constructor."; + out() << "

"; + generateText(text, node, marker); + out() << "

"; + } else if (fn->isCAssign()) { + Text text; + text << "Copy-assignment operator."; + out() << "

"; + generateText(text, node, marker); + out() << "

"; + } else if (fn->isMAssign()) { + Text text; + text << "Move-assignment operator."; + out() << "

"; + generateText(text, node, marker); + out() << "

"; + } else if (!node->isWrapper() && !node->isMarkedReimp()) { + if (!fn->isIgnored()) // undocumented functions added by Q_OBJECT + node->location().warning(QStringLiteral("No documentation for '%1'") + .arg(node->plainSignature())); + } + } else if (!node->isWrapper() && !node->isMarkedReimp()) { + // Don't require documentation of things defined in Q_GADGET + if (node->name() != QLatin1String("QtGadgetHelper")) + node->location().warning( + QStringLiteral("No documentation for '%1'").arg(node->plainSignature())); + } + } else if (!node->isSharingComment()) { + // Reimplements clause and type alias info precede body text + if (fn && !fn->overridesThis().isEmpty()) + generateReimplementsClause(fn, marker); + else if (node->isProperty()) { + if (static_cast(node)->propertyType() != PropertyNode::Standard) + generateAddendum(node, BindableProperty, marker); + } + + if (!generateText(node->doc().body(), node, marker)) { + if (node->isMarkedReimp()) + return; + } + + if (fn) { + if (fn->isQmlSignal()) + generateAddendum(node, QmlSignalHandler, marker); + if (fn->isPrivateSignal()) + generateAddendum(node, PrivateSignal, marker); + if (fn->isInvokable()) + generateAddendum(node, Invokable, marker); + if (fn->hasAssociatedProperties()) + generateAddendum(node, AssociatedProperties, marker); + } + + // Generate warnings + if (node->isEnumType()) { + const auto *enume = static_cast(node); + + QSet definedItems; + const QList &items = enume->items(); + for (const auto &item : items) + definedItems.insert(item.name()); + + const auto &documentedItemList = enume->doc().enumItemNames(); + QSet documentedItems(documentedItemList.cbegin(), documentedItemList.cend()); + const QSet allItems = definedItems + documentedItems; + if (allItems.size() > definedItems.size() + || allItems.size() > documentedItems.size()) { + for (const auto &it : allItems) { + if (!definedItems.contains(it)) { + QString details; + QString best = nearestName(it, definedItems); + if (!best.isEmpty() && !documentedItems.contains(best)) + details = QStringLiteral("Maybe you meant '%1'?").arg(best); + + node->doc().location().warning( + QStringLiteral("No such enum item '%1' in %2") + .arg(it, node->plainFullName()), + details); + } else if (!documentedItems.contains(it)) { + node->doc().location().warning( + QStringLiteral("Undocumented enum item '%1' in %2") + .arg(it, node->plainFullName())); + } + } + } + } else if (fn) { + const QSet declaredNames = fn->parameters().getNames(); + const QSet documentedNames = fn->doc().parameterNames(); + if (declaredNames != documentedNames) { + for (const auto &name : declaredNames) { + if (!documentedNames.contains(name)) { + if (fn->isActive() || fn->isPreliminary()) { + if (!fn->isMarkedReimp() && !fn->isOverload()) { + fn->doc().location().warning( + QStringLiteral("Undocumented parameter '%1' in %2") + .arg(name, node->plainFullName())); + } + } + } + } + for (const auto &name : documentedNames) { + if (!declaredNames.contains(name)) { + QString best = nearestName(name, declaredNames); + QString details; + if (!best.isEmpty()) + details = QStringLiteral("Maybe you meant '%1'?").arg(best); + fn->doc().location().warning(QStringLiteral("No such parameter '%1' in %2") + .arg(name, fn->plainFullName()), + details); + } + } + } + /* + This return value check should be implemented + for all functions with a return type. + mws 13/12/2018 + */ + if (!fn->isDeprecated() && fn->returnsBool() && !fn->isMarkedReimp() + && !fn->isOverload()) { + if (!fn->doc().body().contains("return")) + node->doc().location().warning( + QStringLiteral("Undocumented return value " + "(hint: use 'return' or 'returns' in the text")); + } + } + } + generateRequiredLinks(node, marker); +} + +/*! + Generates either a link to the project folder for example \a node, or a list + of links files/images if 'url.examples config' variable is not defined. + + Does nothing for non-example nodes. +*/ +void Generator::generateRequiredLinks(const Node *node, CodeMarker *marker) +{ + if (!node->isExample()) + return; + + const auto *en = static_cast(node); + QString exampleUrl = Config::instance().getString(CONFIG_URL + Config::dot + CONFIG_EXAMPLES); + + if (exampleUrl.isEmpty()) { + if (!en->noAutoList()) { + generateFileList(en, marker, false); // files + generateFileList(en, marker, true); // images + } + } else { + generateLinkToExample(en, marker, exampleUrl); + } +} + +/*! + Generates an external link to the project folder for example \a node. + The path to the example replaces a placeholder '\1' character if + one is found in the \a baseUrl string. If no such placeholder is found, + the path is appended to \a baseUrl, after a '/' character if \a baseUrl did + not already end in one. +*/ +void Generator::generateLinkToExample(const ExampleNode *en, CodeMarker *marker, + const QString &baseUrl) +{ + QString exampleUrl(baseUrl); + QString link; +#ifndef QT_BOOTSTRAPPED + link = QUrl(exampleUrl).host(); +#endif + if (!link.isEmpty()) + link.prepend(" @ "); + link.prepend("Example project"); + + const QLatin1Char separator('/'); + const QLatin1Char placeholder('\1'); + if (!exampleUrl.contains(placeholder)) { + if (!exampleUrl.endsWith(separator)) + exampleUrl += separator; + exampleUrl += placeholder; + } + + // Construct a path to the example; / + QString pathRoot; + QStringMultiMap *metaTagMap = en->doc().metaTagMap(); + if (metaTagMap) + pathRoot = metaTagMap->value(QLatin1String("installpath")); + if (pathRoot.isEmpty()) + pathRoot = Config::instance().getString(CONFIG_EXAMPLESINSTALLPATH); + QStringList path = QStringList() << pathRoot << en->name(); + path.removeAll(QString()); + + Text text; + text << Atom::ParaLeft + << Atom(Atom::Link, exampleUrl.replace(placeholder, path.join(separator))) + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) << Atom(Atom::String, link) + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK) << Atom::ParaRight; + + generateText(text, nullptr, marker); +} + +void Generator::addImageToCopy(const ExampleNode *en, const ResolvedFile& resolved_file) +{ + QDir dirInfo; + QString userFriendlyFilePath; + // TODO: [uncentralized-output-directory-structure] + const QString prefix("/images/used-in-examples"); + + // TODO: Generators probably should not need to keep track of which files were generated. + // Understand if we really need this information and where it should + // belong, considering that it should be part of whichever system + // would actually store the file itself. + s_outFileNames << prefix.mid(1) + "/" + resolved_file.get_query(); + + + // TODO: [uncentralized-output-directory-structure] + QString imgOutDir = s_outDir + prefix + "/" + QFileInfo{resolved_file.get_query()}.path(); + if (!dirInfo.mkpath(imgOutDir)) + en->location().fatal(QStringLiteral("Cannot create output directory '%1'").arg(imgOutDir)); + Config::copyFile(en->location(), resolved_file.get_path(), QFileInfo{resolved_file.get_query()}.fileName(), imgOutDir); +} + +// TODO: [multi-purpose-function-with-flag][generate-file-list] +// Avoid the use of a boolean flag to dispatch to the correct +// implementation trough branching. +// We always have to process both images and files, such that we +// should consider to remove the branching altogheter, performing both +// operations in a single call. +// Otherwise, if this turns out to be infeasible, complex or +// possibly-confusing, consider extracting the processing code outside +// the function and provide two higer-level dispathing functions for +// files and images. + +/*! + This function is called when the documentation for an example is + being formatted. It outputs a list of files for the example, which + can be the example's source files or the list of images used by the + example. The images are copied into a subtree of + \c{...doc/html/images/used-in-examples/...} +*/ +void Generator::generateFileList(const ExampleNode *en, CodeMarker *marker, bool images) +{ + Text text; + OpenedList openedList(OpenedList::Bullet); + QString tag; + QStringList paths; + Atom::AtomType atomType = Atom::ExampleFileLink; + + if (images) { + paths = en->images(); + tag = "Images:"; + atomType = Atom::ExampleImageLink; + } else { // files + paths = en->files(); + tag = "Files:"; + } + std::sort(paths.begin(), paths.end(), Generator::comparePaths); + + text << Atom::ParaLeft << tag << Atom::ParaRight; + text << Atom(Atom::ListLeft, openedList.styleString()); + + for (const auto &path : std::as_const(paths)) { + auto maybe_resolved_file{file_resolver.resolve(path)}; + if (!maybe_resolved_file) { + // TODO: [uncentralized-admonition][failed-resolve-file] + QString details = std::transform_reduce( + file_resolver.get_search_directories().cbegin(), + file_resolver.get_search_directories().cend(), + u"Searched directories:"_qs, + std::plus(), + [](const DirectoryPath& directory_path){ return " " + directory_path.value(); } + ); + + en->location().warning(u"(Generator)Cannot find file to quote from: %1"_qs.arg(path), details); + + continue; + } + + auto file{*maybe_resolved_file}; + if (images) addImageToCopy(en, file); + else generateExampleFilePage(en, file, marker); + + openedList.next(); + text << Atom(Atom::ListItemNumber, openedList.numberString()) + << Atom(Atom::ListItemLeft, openedList.styleString()) << Atom::ParaLeft + << Atom(atomType, file.get_query()) << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) << file.get_query() + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK) << Atom::ParaRight + << Atom(Atom::ListItemRight, openedList.styleString()); + } + text << Atom(Atom::ListRight, openedList.styleString()); + if (!paths.isEmpty()) + generateText(text, en, marker); +} + +/*! + Recursive writing of HTML files from the root \a node. + */ +void Generator::generateDocumentation(Node *node) +{ + if (!node->url().isNull()) + return; + if (node->isIndexNode()) + return; + if (node->isInternal() && !m_showInternal) + return; + if (node->isExternalPage()) + return; + + /* + Obtain a code marker for the source file. + */ + CodeMarker *marker = CodeMarker::markerForFileName(node->location().filePath()); + + if (node->parent() != nullptr) { + if (node->isCollectionNode()) { + /* + A collection node collects: groups, C++ modules, + QML modules or JavaScript modules. Testing for a + CollectionNode must be done before testing for a + TextPageNode because a CollectionNode is a PageNode + at this point. + + Don't output an HTML page for the collection + node unless the \group, \module, \qmlmodule or + \jsmodule command was actually seen by qdoc in + the qdoc comment for the node. + + A key prerequisite in this case is the call to + mergeCollections(cn). We must determine whether + this group, module, QML module, or JavaScript + module has members in other modules. We know at + this point that cn's members list contains only + members in the current module. Therefore, before + outputting the page for cn, we must search for + members of cn in the other modules and add them + to the members list. + */ + auto *cn = static_cast(node); + if (cn->wasSeen()) { + m_qdb->mergeCollections(cn); + beginSubPage(node, fileName(node)); + generateCollectionNode(cn, marker); + endSubPage(); + } else if (cn->isGenericCollection()) { + // Currently used only for the module's related orphans page + // but can be generalized for other kinds of collections if + // other use cases pop up. + QString name = cn->name().toLower(); + name.replace(QChar(' '), QString("-")); + QString filename = + cn->tree()->physicalModuleName() + "-" + name + "." + fileExtension(); + beginSubPage(node, filename); + generateGenericCollectionPage(cn, marker); + endSubPage(); + } + } else if (node->isTextPageNode()) { + beginSubPage(node, fileName(node)); + generatePageNode(static_cast(node), marker); + endSubPage(); + } else if (node->isAggregate()) { + if ((node->isClassNode() || node->isHeader() || node->isNamespace()) + && node->docMustBeGenerated()) { + beginSubPage(node, fileName(node)); + generateCppReferencePage(static_cast(node), marker); + endSubPage(); + } else if (node->isQmlType() || node->isJsType()) { + beginSubPage(node, fileName(node)); + auto *qcn = static_cast(node); + generateQmlTypePage(qcn, marker); + endSubPage(); + } else if (node->isQmlBasicType() || node->isJsBasicType()) { + beginSubPage(node, fileName(node)); + auto *qbtn = static_cast(node); + generateQmlBasicTypePage(qbtn, marker); + endSubPage(); + } else if (node->isProxyNode()) { + beginSubPage(node, fileName(node)); + generateProxyPage(static_cast(node), marker); + endSubPage(); + } + } + } + + if (node->isAggregate()) { + auto *aggregate = static_cast(node); + const NodeList &children = aggregate->childNodes(); + for (auto *node : children) { + if (node->isPageNode() && !node->isPrivate()) + generateDocumentation(node); + } + } +} + +/*! + Generate a list of maintainers in the output + */ +void Generator::generateMaintainerList(const Aggregate *node, CodeMarker *marker) +{ + QStringList sl = getMetadataElements(node, "maintainer"); + + if (!sl.isEmpty()) { + Text text; + text << Atom::ParaLeft << Atom(Atom::FormattingLeft, ATOM_FORMATTING_BOLD) + << "Maintained by: " << Atom(Atom::FormattingRight, ATOM_FORMATTING_BOLD); + + for (int i = 0; i < sl.size(); ++i) + text << sl.at(i) << Utilities::separator(i, sl.size()); + + text << Atom::ParaRight; + generateText(text, node, marker); + } +} + +/*! + Extract sections of markup text surrounded by \e qmltext + and \e endqmltext and output them. + */ +bool Generator::generateQmlText(const Text &text, const Node *relative, CodeMarker *marker, + const QString & /* qmlName */) +{ + const Atom *atom = text.firstAtom(); + bool result = false; + + if (atom != nullptr) { + initializeTextOutput(); + while (atom) { + if (atom->type() != Atom::QmlText) + atom = atom->next(); + else { + atom = atom->next(); + while (atom && (atom->type() != Atom::EndQmlText)) { + int n = 1 + generateAtom(atom, relative, marker); + while (n-- > 0) + atom = atom->next(); + } + } + } + result = true; + } + return result; +} + +void Generator::generateReimplementsClause(const FunctionNode *fn, CodeMarker *marker) +{ + if (!fn->overridesThis().isEmpty()) { + if (fn->parent()->isClassNode()) { + auto *cn = static_cast(fn->parent()); + const FunctionNode *overrides = cn->findOverriddenFunction(fn); + if (overrides && !overrides->isPrivate() && !overrides->parent()->isPrivate()) { + if (overrides->hasDoc()) { + Text text; + text << Atom::ParaLeft << "Reimplements: "; + QString fullName = + overrides->parent()->name() + "::" + overrides->signature(false, true); + appendFullName(text, overrides->parent(), fullName, overrides); + text << "." << Atom::ParaRight; + generateText(text, fn, marker); + } else { + fn->doc().location().warning( + QStringLiteral("Illegal \\reimp; no documented virtual function for %1") + .arg(overrides->plainSignature())); + } + return; + } + const PropertyNode *sameName = cn->findOverriddenProperty(fn); + if (sameName && sameName->hasDoc()) { + Text text; + text << Atom::ParaLeft << "Reimplements an access function for property: "; + QString fullName = sameName->parent()->name() + "::" + sameName->name(); + appendFullName(text, sameName->parent(), fullName, sameName); + text << "." << Atom::ParaRight; + generateText(text, fn, marker); + } + } + } +} + +QString Generator::formatSince(const Node *node) +{ + QStringList since = node->since().split(QLatin1Char(' ')); + + // If there is only one argument, assume it is the Qt version number. + if (since.size() == 1) + return "Qt " + since[0]; + + // Otherwise, use the original string. + return node->since(); +} + +void Generator::generateSince(const Node *node, CodeMarker *marker) +{ + if (!node->since().isEmpty()) { + Text text; + text << Atom::ParaLeft << "This " << typeString(node) << " was introduced "; + if (node->isEnumType()) + text << "or modified "; + text << "in " << formatSince(node) << "." << Atom::ParaRight; + generateText(text, node, marker); + } +} + +void Generator::generateStatus(const Node *node, CodeMarker *marker) +{ + Text text; + + switch (node->status()) { + case Node::Active: + // Do nothing. + break; + case Node::Preliminary: + text << Atom::ParaLeft << Atom(Atom::FormattingLeft, ATOM_FORMATTING_BOLD) << "This " + << typeString(node) << " is under development and is subject to change." + << Atom(Atom::FormattingRight, ATOM_FORMATTING_BOLD) << Atom::ParaRight; + break; + case Node::Deprecated: + text << Atom::ParaLeft; + if (node->isAggregate()) + text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_BOLD); + text << "This " << typeString(node) << " is deprecated"; + if (const QString &version = node->deprecatedSince(); !version.isEmpty()) + text << " since " << version; + text << ". We strongly advise against using it in new code."; + text << Atom::ParaRight; + if (node->isAggregate()) + text << Atom(Atom::FormattingRight, ATOM_FORMATTING_BOLD); + text << Atom::ParaRight; + break; + case Node::Internal: + default: + break; + } + generateText(text, node, marker); +} + +/*! + Generates an addendum note of type \a type for \a node, using \a marker + as the code marker. +*/ +void Generator::generateAddendum(const Node *node, Addendum type, CodeMarker *marker, + bool generateNote) +{ + Q_ASSERT(node && !node->name().isEmpty()); + Text text; + text << Atom::ParaLeft; + + if (generateNote) { + text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_BOLD) + << "Note: " << Atom(Atom::FormattingRight, ATOM_FORMATTING_BOLD); + } + + switch (type) { + case Invokable: + text << "This function can be invoked via the meta-object system and from QML. See " + << Atom(Atom::AutoLink, "Q_INVOKABLE") + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK) << "."; + break; + case PrivateSignal: + text << "This is a private signal. It can be used in signal connections " + "but cannot be emitted by the user."; + break; + case QmlSignalHandler: + { + QString handler(node->name()); + qsizetype prefixLocation = handler.lastIndexOf('.', -2) + 1; + handler[prefixLocation] = handler[prefixLocation].toTitleCase(); + handler.insert(prefixLocation, QLatin1String("on")); + text << "The corresponding handler is " + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_TELETYPE) << handler + << Atom(Atom::FormattingRight, ATOM_FORMATTING_TELETYPE) << "."; + break; + } + case AssociatedProperties: + { + if (!node->isFunction()) + return; + const auto *fn = static_cast(node); + NodeList nodes = fn->associatedProperties(); + if (nodes.isEmpty()) + return; + std::sort(nodes.begin(), nodes.end(), Node::nodeNameLessThan); + for (const auto *n : std::as_const(nodes)) { + QString msg; + const auto *pn = static_cast(n); + switch (pn->role(fn)) { + case PropertyNode::Getter: + msg = QStringLiteral("Getter function"); + break; + case PropertyNode::Setter: + msg = QStringLiteral("Setter function"); + break; + case PropertyNode::Resetter: + msg = QStringLiteral("Resetter function"); + break; + case PropertyNode::Notifier: + msg = QStringLiteral("Notifier signal"); + break; + default: + continue; + } + text << msg << " for property " << Atom(Atom::Link, pn->name()) + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) << pn->name() + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK) << ". "; + } + break; + } + case BindableProperty: + { + text << "This property supports " + << Atom(Atom::Link, "QProperty") + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) << "QProperty" + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + text << " bindings."; + break; + } + default: + return; + } + + text << Atom::ParaRight; + generateText(text, node, marker); +} + +/*! + Generate the documentation for \a relative. i.e. \a relative + is the node that represents the entity where a qdoc comment + was found, and \a text represents the qdoc comment. + */ +bool Generator::generateText(const Text &text, const Node *relative, CodeMarker *marker) +{ + bool result = false; + if (text.firstAtom() != nullptr) { + int numAtoms = 0; + initializeTextOutput(); + generateAtomList(text.firstAtom(), relative, marker, true, numAtoms); + result = true; + } + return result; +} + +/* + The node is an aggregate, typically a class node, which has + a threadsafeness level. This function checks all the children + of the node to see if they are exceptions to the node's + threadsafeness. If there are any exceptions, the exceptions + are added to the appropriate set (reentrant, threadsafe, and + nonreentrant, and true is returned. If there are no exceptions, + the three node lists remain empty and false is returned. + */ +bool Generator::hasExceptions(const Node *node, NodeList &reentrant, NodeList &threadsafe, + NodeList &nonreentrant) +{ + bool result = false; + Node::ThreadSafeness ts = node->threadSafeness(); + const NodeList &children = static_cast(node)->childNodes(); + for (auto child : children) { + if (!child->isDeprecated()) { + switch (child->threadSafeness()) { + case Node::Reentrant: + reentrant.append(child); + if (ts == Node::ThreadSafe) + result = true; + break; + case Node::ThreadSafe: + threadsafe.append(child); + if (ts == Node::Reentrant) + result = true; + break; + case Node::NonReentrant: + nonreentrant.append(child); + result = true; + break; + default: + break; + } + } + } + return result; +} + +static void startNote(Text &text) +{ + text << Atom::ParaLeft << Atom(Atom::FormattingLeft, ATOM_FORMATTING_BOLD) + << "Note:" << Atom(Atom::FormattingRight, ATOM_FORMATTING_BOLD) << " "; +} + +/*! + Generates text that explains how threadsafe and/or reentrant + \a node is. + */ +void Generator::generateThreadSafeness(const Node *node, CodeMarker *marker) +{ + Text text, rlink, tlink; + NodeList reentrant; + NodeList threadsafe; + NodeList nonreentrant; + Node::ThreadSafeness ts = node->threadSafeness(); + bool exceptions = false; + + rlink << Atom(Atom::Link, "reentrant") << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) + << "reentrant" << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + + tlink << Atom(Atom::Link, "thread-safe") << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) + << "thread-safe" << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + + switch (ts) { + case Node::UnspecifiedSafeness: + break; + case Node::NonReentrant: + text << Atom::ParaLeft << Atom(Atom::FormattingLeft, ATOM_FORMATTING_BOLD) + << "Warning:" << Atom(Atom::FormattingRight, ATOM_FORMATTING_BOLD) << " This " + << typeString(node) << " is not " << rlink << "." << Atom::ParaRight; + break; + case Node::Reentrant: + case Node::ThreadSafe: + startNote(text); + if (node->isAggregate()) { + exceptions = hasExceptions(node, reentrant, threadsafe, nonreentrant); + text << "All functions in this " << typeString(node) << " are "; + if (ts == Node::ThreadSafe) + text << tlink; + else + text << rlink; + + if (!exceptions || (ts == Node::Reentrant && !threadsafe.isEmpty())) + text << "."; + else + text << " with the following exceptions:"; + } else { + text << "This " << typeString(node) << " is "; + if (ts == Node::ThreadSafe) + text << tlink; + else + text << rlink; + text << "."; + } + text << Atom::ParaRight; + break; + default: + break; + } + generateText(text, node, marker); + + if (exceptions) { + text.clear(); + if (ts == Node::Reentrant) { + if (!nonreentrant.isEmpty()) { + startNote(text); + text << "These functions are not " << rlink << ":" << Atom::ParaRight; + signatureList(nonreentrant, node, marker); + } + if (!threadsafe.isEmpty()) { + text.clear(); + startNote(text); + text << "These functions are also " << tlink << ":" << Atom::ParaRight; + generateText(text, node, marker); + signatureList(threadsafe, node, marker); + } + } else { // thread-safe + if (!reentrant.isEmpty()) { + startNote(text); + text << "These functions are only " << rlink << ":" << Atom::ParaRight; + signatureList(reentrant, node, marker); + } + if (!nonreentrant.isEmpty()) { + text.clear(); + startNote(text); + text << "These functions are not " << rlink << ":" << Atom::ParaRight; + signatureList(nonreentrant, node, marker); + } + } + } +} + +/*! + Returns the string containing an example code of the input node, + if it is an overloaded signal. Otherwise, returns an empty string. + */ +QString Generator::getOverloadedSignalCode(const Node *node) +{ + if (!node->isFunction()) + return QString(); + const auto func = static_cast(node); + if (!func->isSignal() || !func->hasOverloads()) + return QString(); + + // Compute a friendly name for the object of that instance. + // e.g: "QAbstractSocket" -> "abstractSocket" + QString objectName = node->parent()->name(); + if (objectName.size() >= 2) { + if (objectName[0] == 'Q') + objectName = objectName.mid(1); + objectName[0] = objectName[0].toLower(); + } + + // We have an overloaded signal, show an example. Note, for const + // overloaded signals, one should use Q{Const,NonConst}Overload, but + // it is very unlikely that we will ever have public API overloading + // signals by const. + QString code = "connect(" + objectName + ", QOverload<"; + code += func->parameters().generateTypeList(); + code += ">::of(&" + func->parent()->name() + "::" + func->name() + "),\n [=]("; + code += func->parameters().generateTypeAndNameList(); + code += "){ /* ... */ });"; + + return code; +} + +/*! + If the node is an overloaded signal, add a node with an example on how to connect to it + */ +void Generator::generateOverloadedSignal(const Node *node, CodeMarker *marker) +{ + QString code = getOverloadedSignalCode(node); + if (code.isEmpty()) + return; + + Text text; + text << Atom::ParaLeft << Atom(Atom::FormattingLeft, ATOM_FORMATTING_BOLD) + << "Note:" << Atom(Atom::FormattingRight, ATOM_FORMATTING_BOLD) << " Signal " + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_ITALIC) << node->name() + << Atom(Atom::FormattingRight, ATOM_FORMATTING_ITALIC) + << " is overloaded in this class. " + "To connect to this signal by using the function pointer syntax, Qt " + "provides a convenient helper for obtaining the function pointer as " + "shown in this example:" + << Atom(Atom::Code, marker->markedUpCode(code, node, node->location())); + + generateText(text, node, marker); +} + +/*! + Traverses the database recursively to generate all the documentation. + */ +void Generator::generateDocs() +{ + s_currentGenerator = this; + generateDocumentation(m_qdb->primaryTreeRoot()); +} + +Generator *Generator::generatorForFormat(const QString &format) +{ + for (const auto &generator : std::as_const(s_generators)) { + if (generator->format() == format) + return generator; + } + return nullptr; +} + +/*! + Looks up the tag \a t in the map of metadata values for the + current topic in \a inner. If values for the tag are found, + they are returned in a string list. + + \note If \a t is found in the metadata map, all the pairs + having the key \a t are erased. i.e. Once you call this + function for a particular \a t, you consume \a t. + */ +QStringList Generator::getMetadataElements(const Aggregate *inner, const QString &t) +{ + QStringList result; + QStringMultiMap *metaTagMap = inner->doc().metaTagMap(); + if (metaTagMap) + result = metaTagMap->values(t); + if (!result.isEmpty()) + metaTagMap->remove(t); + return result; +} + +QString Generator::indent(int level, const QString &markedCode) +{ + if (level == 0) + return markedCode; + + QString t; + int column = 0; + + int i = 0; + while (i < markedCode.size()) { + if (markedCode.at(i) == QLatin1Char('\n')) { + column = 0; + } else { + if (column == 0) { + for (int j = 0; j < level; j++) + t += QLatin1Char(' '); + } + column++; + } + t += markedCode.at(i++); + } + return t; +} + +void Generator::initialize() +{ + Config &config = Config::instance(); + s_outputFormats = config.getOutputFormats(); + s_redirectDocumentationToDevNull = config.getBool(CONFIG_REDIRECTDOCUMENTATIONTODEVNULL); + + for (auto &g : s_generators) { + if (s_outputFormats.contains(g->format())) { + s_currentGenerator = g; + g->initializeGenerator(); + } + } + + for (const auto &n : config.subVars(CONFIG_FORMATTING)) { + QString formattingDotName = CONFIG_FORMATTING + Config::dot + n; + for (const auto &f : config.subVars(formattingDotName)) { + QString def = config.getString(formattingDotName + Config::dot + f); + if (!def.isEmpty()) { + int numParams = Config::numParams(def); + int numOccs = def.count("\1"); + if (numParams != 1) { + config.lastLocation().warning(QStringLiteral("Formatting '%1' must " + "have exactly one " + "parameter (found %2)") + .arg(n) + .arg(numParams)); + } else if (numOccs > 1) { + config.lastLocation().fatal(QStringLiteral("Formatting '%1' must " + "contain exactly one " + "occurrence of '\\1' " + "(found %2)") + .arg(n) + .arg(numOccs)); + } else { + int paramPos = def.indexOf("\1"); + s_fmtLeftMaps[f].insert(n, def.left(paramPos)); + s_fmtRightMaps[f].insert(n, def.mid(paramPos + 1)); + } + } + } + } + + s_project = config.getString(CONFIG_PROJECT); + s_outDir = config.getOutputDir(); + s_outSubdir = s_outDir.mid(s_outDir.lastIndexOf('/') + 1); + + s_outputPrefixes.clear(); + QStringList items = config.getStringList(CONFIG_OUTPUTPREFIXES); + if (!items.isEmpty()) { + for (const auto &prefix : items) + s_outputPrefixes[prefix] = + config.getString(CONFIG_OUTPUTPREFIXES + Config::dot + prefix); + } else { + s_outputPrefixes[QLatin1String("QML")] = QLatin1String("qml-"); + s_outputPrefixes[QLatin1String("JS")] = QLatin1String("js-"); + } + + s_outputSuffixes.clear(); + for (const auto &suffix : config.getStringList(CONFIG_OUTPUTSUFFIXES)) + s_outputSuffixes[suffix] = config.getString(CONFIG_OUTPUTSUFFIXES + Config::dot + suffix); + + s_noLinkErrors = config.getBool(CONFIG_NOLINKERRORS); + s_autolinkErrors = config.getBool(CONFIG_AUTOLINKERRORS); +} + +/*! + Creates template-specific subdirs (e.g. /styles and /scripts for HTML) + and copies the files to them. + */ +void Generator::copyTemplateFiles(const QString &configVar, const QString &subDir) +{ + // TODO: [resolving-files-unlinked-to-doc] + // This is another case of resolving files, albeit it doesn't use Doc::resolveFile. + // While it may be left out of a first iteration of the file + // resolution logic, it should later be integrated into it. + // This should come naturally when the output directory logic is + // extracted and copying a file should require a validated + // intermediate format. + // Do note that what is done here is a bit different from the + // resolve file routine that is done for other user-given paths. + // Thas is, the paths will always be absolute and not relative as + // they are resolved from the configuration. + // Ideally, this could be solved in the configuration already, + // together with the other configuration resolution processes that + // do not abide by the same constraints that, for example, snippet + // resolution uses. + Config &config = Config::instance(); + QStringList files = config.getCanonicalPathList(configVar, Config::Validate); + if (!files.isEmpty()) { + QDir dirInfo; + // TODO: [uncentralized-output-directory-structure] + // As with other places in the generation pass, the details of + // where something is saved in the output directory are spread + // to whichever part of the generation does the saving. + // It is hence complex to build a model of how an output + // directory looks like, as the knowledge has no specific + // entry point or chain-path that can be followed in full. + // Each of those operations should be centralized in a system + // that uniquely knows what the format of the output-directory + // is and how to perform operations on it. + // Later, move this operation to that centralized system. + QString templateDir = s_outDir + QLatin1Char('/') + subDir; + if (!dirInfo.exists(templateDir) && !dirInfo.mkdir(templateDir)) { + // TODO: [uncentralized-admonition] + config.lastLocation().fatal( + QStringLiteral("Cannot create %1 directory '%2'").arg(subDir, templateDir)); + } else { + for (const auto &file : files) { + if (!file.isEmpty()) + Config::copyFile(config.lastLocation(), file, file, templateDir); + } + } + } +} + +/*! + Reads format-specific variables from config, sets output + (sub)directories, creates them on the filesystem and copies the + template-specific files. + */ +void Generator::initializeFormat() +{ + Config &config = Config::instance(); + s_outFileNames.clear(); + s_useOutputSubdirs = true; + if (config.getBool(format() + Config::dot + "nosubdirs")) + resetUseOutputSubdirs(); + + if (s_outputFormats.isEmpty()) + return; + + s_outDir = config.getOutputDir(format()); + if (s_outDir.isEmpty()) { + config.lastLocation().fatal(QStringLiteral("No output directory specified in " + "configuration file or on the command line")); + } else { + s_outSubdir = s_outDir.mid(s_outDir.lastIndexOf('/') + 1); + } + + QDir outputDir(s_outDir); + if (outputDir.exists()) { + if (!config.generating() && Generator::useOutputSubdirs()) { + if (!outputDir.isEmpty()) + config.lastLocation().error( + QStringLiteral("Output directory '%1' exists but is not empty") + .arg(s_outDir)); + } + } else if (!outputDir.mkpath(QStringLiteral("."))) { + config.lastLocation().fatal( + QStringLiteral("Cannot create output directory '%1'").arg(s_outDir)); + } + + // Output directory exists, which is enough for prepare phase. + if (config.preparing()) + return; + + const QLatin1String imagesDir("images"); + if (!outputDir.exists(imagesDir) && !outputDir.mkdir(imagesDir)) + config.lastLocation().fatal( + QStringLiteral("Cannot create images directory '%1'").arg(outputDir.filePath(imagesDir))); + + copyTemplateFiles(format() + Config::dot + CONFIG_STYLESHEETS, "style"); + copyTemplateFiles(format() + Config::dot + CONFIG_SCRIPTS, "scripts"); + copyTemplateFiles(format() + Config::dot + CONFIG_EXTRAIMAGES, "images"); + + // Use a format-specific .quotinginformation if defined, otherwise a global value + if (config.subVars(format()).contains(CONFIG_QUOTINGINFORMATION)) + m_quoting = config.getBool(format() + Config::dot + CONFIG_QUOTINGINFORMATION); + else + m_quoting = config.getBool(CONFIG_QUOTINGINFORMATION); +} + +/*! + Updates the generator's m_showInternal from the Config. + */ +void Generator::initializeGenerator() +{ + m_showInternal = Config::instance().showInternal(); +} + +bool Generator::matchAhead(const Atom *atom, Atom::AtomType expectedAtomType) +{ + return atom->next() && atom->next()->type() == expectedAtomType; +} + +/*! + Used for writing to the current output stream. Returns a + reference to the current output stream, which is then used + with the \c {<<} operator for writing. + */ +QTextStream &Generator::out() +{ + return *outStreamStack.top(); +} + +QString Generator::outFileName() +{ + return QFileInfo(static_cast(out().device())->fileName()).fileName(); +} + +QString Generator::outputPrefix(const Node *node) +{ + // Prefix is applied to QML and JS types + if (node->isQmlType() || node->isQmlBasicType()) + return s_outputPrefixes[QLatin1String("QML")]; + if (node->isJsType() || node->isJsBasicType()) + return s_outputPrefixes[QLatin1String("JS")]; + return QString(); +} + +QString Generator::outputSuffix(const Node *node) +{ + // Suffix is applied to QML and JS types, as + // well as module pages. + if (node->isQmlModule() || node->isQmlType() || node->isQmlBasicType()) + return s_outputSuffixes[QLatin1String("QML")]; + if (node->isJsModule() || node->isJsType() || node->isJsBasicType()) + return s_outputSuffixes[QLatin1String("JS")]; + return QString(); +} + +bool Generator::parseArg(const QString &src, const QString &tag, int *pos, int n, + QStringView *contents, QStringView *par1, bool debug) +{ +#define SKIP_CHAR(c) \ + if (debug) \ + qDebug() << "looking for " << c << " at " << QString(src.data() + i, n - i); \ + if (i >= n || src[i] != c) { \ + if (debug) \ + qDebug() << " char '" << c << "' not found"; \ + return false; \ + } \ + ++i; + +#define SKIP_SPACE \ + while (i < n && src[i] == ' ') \ + ++i; + + qsizetype i = *pos; + qsizetype j {}; + + // assume "<@" has been parsed outside + // SKIP_CHAR('<'); + // SKIP_CHAR('@'); + + if (tag != QStringView(src).mid(i, tag.size())) { + return false; + } + + if (debug) + qDebug() << "haystack:" << src << "needle:" << tag << "i:" << i; + + // skip tag + i += tag.size(); + + // parse stuff like: linkTag("(<@link node=\"([^\"]+)\">).*()"); + if (par1) { + SKIP_SPACE; + // read parameter name + j = i; + while (i < n && src[i].isLetter()) + ++i; + if (src[i] == '=') { + if (debug) + qDebug() << "read parameter" << QString(src.data() + j, i - j); + SKIP_CHAR('='); + SKIP_CHAR('"'); + // skip parameter name + j = i; + while (i < n && src[i] != '"') + ++i; + *par1 = QStringView(src).mid(j, i - j); + SKIP_CHAR('"'); + SKIP_SPACE; + } else { + if (debug) + qDebug() << "no optional parameter found"; + } + } + SKIP_SPACE; + SKIP_CHAR('>'); + + // find contents up to closing " + j = i; + for (; true; ++i) { + if (i + 4 + tag.size() > n) + return false; + if (src[i] != '<') + continue; + if (src[i + 1] != '/') + continue; + if (src[i + 2] != '@') + continue; + if (tag != QStringView(src).mid(i + 3, tag.size())) + continue; + if (src[i + 3 + tag.size()] != '>') + continue; + break; + } + + *contents = QStringView(src).mid(j, i - j); + + i += tag.size() + 4; + + *pos = i; + if (debug) + qDebug() << " tag " << tag << " found: pos now: " << i; + return true; +#undef SKIP_CHAR +} + +QString Generator::plainCode(const QString &markedCode) +{ + QString t = markedCode; + t.replace(tag, QString()); + t.replace(quot, QLatin1String("\"")); + t.replace(gt, QLatin1String(">")); + t.replace(lt, QLatin1String("<")); + t.replace(amp, QLatin1String("&")); + return t; +} + +int Generator::skipAtoms(const Atom *atom, Atom::AtomType type) const +{ + int skipAhead = 0; + atom = atom->next(); + while (atom && atom->type() != type) { + skipAhead++; + atom = atom->next(); + } + return skipAhead; +} + +/*! + Resets the variables used during text output. + */ +void Generator::initializeTextOutput() +{ + m_inLink = false; + m_inContents = false; + m_inSectionHeading = false; + m_inTableHeader = false; + m_numTableRows = 0; + m_threeColumnEnumValueTable = true; + m_link.clear(); + m_sectionNumber.clear(); +} + +void Generator::supplementAlsoList(const Node *node, QList &alsoList) +{ + if (node->isFunction() && !node->isMacro()) { + const auto fn = static_cast(node); + if (fn->overloadNumber() == 0) { + QString alternateName; + const FunctionNode *alternateFunc = nullptr; + + if (fn->name().startsWith("set") && fn->name().size() >= 4) { + alternateName = fn->name()[3].toLower(); + alternateName += fn->name().mid(4); + alternateFunc = fn->parent()->findFunctionChild(alternateName, QString()); + + if (!alternateFunc) { + alternateName = "is" + fn->name().mid(3); + alternateFunc = fn->parent()->findFunctionChild(alternateName, QString()); + if (!alternateFunc) { + alternateName = "has" + fn->name().mid(3); + alternateFunc = fn->parent()->findFunctionChild(alternateName, QString()); + } + } + } else if (!fn->name().isEmpty()) { + alternateName = "set"; + alternateName += fn->name()[0].toUpper(); + alternateName += fn->name().mid(1); + alternateFunc = fn->parent()->findFunctionChild(alternateName, QString()); + } + + if (alternateFunc && alternateFunc->access() != Access::Private) { + int i; + for (i = 0; i < alsoList.size(); ++i) { + if (alsoList.at(i).toString().contains(alternateName)) + break; + } + + if (i == alsoList.size()) { + alternateName += "()"; + + Text also; + also << Atom(Atom::Link, alternateName) + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) << alternateName + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + alsoList.prepend(also); + } + } + } + } +} + +void Generator::terminate() +{ + for (const auto &generator : std::as_const(s_generators)) { + if (s_outputFormats.contains(generator->format())) + generator->terminateGenerator(); + } + + // REMARK: Generators currently, due to recent changes and the + // transitive nature of the current codebase, receive some of + // their dependencies in the constructor and some of them in their + // initialize-terminate lifetime. + // This means that generators need to be constructed and + // destructed between usages such that if multiple usages are + // required, the generators present in the list will have been + // destroyed by then such that accessing them would be an error. + // The current codebase calls initialize and the correspective + // terminate with the same scope as the lifetime of the + // generators. + // Then, clearing the list ensures that, if another generator + // execution is needed, the stale generators will not be removed + // as to be replaced by newly constructed ones. + // Do note that it is not clear that this will happen for any call + // in Qt's documentation and this should work only because of the + // form of the current codebase and the scoping of the + // initialize-terminate calls. As such, this should be considered + // a patchwork that may or may not be doing anything and that may + // break due to changes in other parts of the codebase. + // + // This is still to be considered temporary as the whole + // initialize-terminate idiom must be removed from the codebase. + s_generators.clear(); + + s_fmtLeftMaps.clear(); + s_fmtRightMaps.clear(); + s_outDir.clear(); +} + +void Generator::terminateGenerator() {} + +/*! + Trims trailing whitespace off the \a string and returns + the trimmed string. + */ +QString Generator::trimmedTrailing(const QString &string, const QString &prefix, + const QString &suffix) +{ + QString trimmed = string; + while (trimmed.size() > 0 && trimmed[trimmed.size() - 1].isSpace()) + trimmed.truncate(trimmed.size() - 1); + + trimmed.append(suffix); + trimmed.prepend(prefix); + return trimmed; +} + +QString Generator::typeString(const Node *node) +{ + switch (node->nodeType()) { + case Node::Namespace: + return "namespace"; + case Node::Class: + return "class"; + case Node::Struct: + return "struct"; + case Node::Union: + return "union"; + case Node::QmlType: + case Node::QmlValueType: + case Node::JsBasicType: + return "type"; + case Node::Page: + return "documentation"; + case Node::Enum: + return "enum"; + case Node::Typedef: + case Node::TypeAlias: + return "typedef"; + case Node::Function: { + const auto fn = static_cast(node); + switch (fn->metaness()) { + case FunctionNode::JsSignal: + case FunctionNode::QmlSignal: + return "signal"; + case FunctionNode::JsSignalHandler: + case FunctionNode::QmlSignalHandler: + return "signal handler"; + case FunctionNode::JsMethod: + case FunctionNode::QmlMethod: + return "method"; + case FunctionNode::MacroWithParams: + case FunctionNode::MacroWithoutParams: + return "macro"; + default: + break; + } + return "function"; + } + case Node::Property: + case Node::QmlProperty: + return "property"; + case Node::Module: + case Node::JsModule: + case Node::QmlModule: + return "module"; + case Node::SharedComment: { + const auto &collective = static_cast(node)->collective(); + return collective.first()->nodeTypeString(); + } + default: + return "documentation"; + } +} + +void Generator::unknownAtom(const Atom *atom) +{ + Location::internalError(QStringLiteral("unknown atom type '%1' in %2 generator") + .arg(atom->typeString(), format())); +} + +QT_END_NAMESPACE diff --git a/src/qdoc/generator.h b/src/qdoc/generator.h new file mode 100644 index 0000000..7fc58a0 --- /dev/null +++ b/src/qdoc/generator.h @@ -0,0 +1,217 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef GENERATOR_H +#define GENERATOR_H + +#include "text.h" +#include "utilities.h" +#include "filesystem/fileresolver.hpp" + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +typedef QMultiMap NodeMultiMap; + +class Aggregate; +class CodeMarker; +class ExampleNode; +class FunctionNode; +class Location; +class Node; +class QDocDatabase; +class QmlValueTypeNode; + +class Generator +{ +public: + enum ListType { Generic, Obsolete }; + + enum Addendum { + Invokable, + PrivateSignal, + QmlSignalHandler, + AssociatedProperties, + BindableProperty + }; + + Generator(FileResolver& file_resolver); + virtual ~Generator(); + + virtual bool canHandleFormat(const QString &format) { return format == this->format(); } + virtual QString format() = 0; + virtual void generateDocs(); + virtual void initializeGenerator(); + virtual void initializeFormat(); + virtual void terminateGenerator(); + virtual QString typeString(const Node *node); + + QString fullDocumentLocation(const Node *node, bool useSubdir = false); + QString linkForExampleFile(const QString &path, const QString &fileExt = QString()); + static QString exampleFileTitle(const ExampleNode *relative, const QString &fileName); + static Generator *currentGenerator() { return s_currentGenerator; } + static Generator *generatorForFormat(const QString &format); + static void initialize(); + static const QString &outputDir() { return s_outDir; } + static const QString &outputSubdir() { return s_outSubdir; } + static void terminate(); + static const QStringList &outputFileNames() { return s_outFileNames; } + static bool noLinkErrors() { return s_noLinkErrors; } + static bool autolinkErrors() { return s_autolinkErrors; } + static QString defaultModuleName() { return s_project; } + static void resetUseOutputSubdirs() { s_useOutputSubdirs = false; } + static bool useOutputSubdirs() { return s_useOutputSubdirs; } + static void setQmlTypeContext(QmlTypeNode *t) { s_qmlTypeContext = t; } + static QmlTypeNode *qmlTypeContext() { return s_qmlTypeContext; } + static QString cleanRef(const QString &ref, bool xmlCompliant = false); + static QString plainCode(const QString &markedCode); + virtual QString fileBase(const Node *node) const; + +protected: + static QFile *openSubPageFile(const Node *node, const QString &fileName); + void beginFilePage(const Node *node, const QString &fileName); + void endFilePage() { endSubPage(); } // for symmetry + void beginSubPage(const Node *node, const QString &fileName); + void endSubPage(); + [[nodiscard]] virtual QString fileExtension() const = 0; + virtual void generateExampleFilePage(const Node *, ResolvedFile, CodeMarker * = nullptr) {} + virtual void generateAlsoList(const Node *node, CodeMarker *marker); + virtual void generateAlsoList(const Node *node) { generateAlsoList(node, nullptr); } + virtual qsizetype generateAtom(const Atom *, const Node *, CodeMarker *) { return 0; } + virtual qsizetype generateAtom(const Atom *atom, const Node *node) + { + return generateAtom(atom, node, nullptr); + } + virtual void generateBody(const Node *node, CodeMarker *marker); + virtual void generateCppReferencePage(Aggregate *, CodeMarker *) {} + virtual void generateProxyPage(Aggregate *, CodeMarker *) {} + virtual void generateQmlTypePage(QmlTypeNode *, CodeMarker *) {} + virtual void generateQmlBasicTypePage(QmlValueTypeNode *, CodeMarker *) {} + virtual void generatePageNode(PageNode *, CodeMarker *) {} + virtual void generateCollectionNode(CollectionNode *, CodeMarker *) {} + virtual void generateGenericCollectionPage(CollectionNode *, CodeMarker *) {} + virtual void generateDocumentation(Node *node); + virtual void generateMaintainerList(const Aggregate *node, CodeMarker *marker); + virtual void generateMaintainerList(const Aggregate *node) + { + generateMaintainerList(node, nullptr); + }; + virtual bool generateQmlText(const Text &text, const Node *relative, CodeMarker *marker, + const QString &qmlName); + virtual bool generateQmlText(const Text &text, const Node *relative) + { + return generateQmlText(text, relative, nullptr, QString()); + } + virtual bool generateText(const Text &text, const Node *relative, CodeMarker *marker); + virtual bool generateText(const Text &text, const Node *relative) + { + return generateText(text, relative, nullptr); + }; + virtual int skipAtoms(const Atom *atom, Atom::AtomType type) const; + + static bool matchAhead(const Atom *atom, Atom::AtomType expectedAtomType); + static QString outputPrefix(const Node *node); + static QString outputSuffix(const Node *node); + static void supplementAlsoList(const Node *node, QList &alsoList); + static QString trimmedTrailing(const QString &string, const QString &prefix, + const QString &suffix); + void initializeTextOutput(); + QString fileName(const Node *node, const QString &extension = QString()) const; + QMap &formattingLeftMap(); + QMap &formattingRightMap(); + const Atom *generateAtomList(const Atom *atom, const Node *relative, CodeMarker *marker, + bool generate, int &numGeneratedAtoms); + void generateRequiredLinks(const Node *node, CodeMarker *marker); + void generateLinkToExample(const ExampleNode *en, CodeMarker *marker, + const QString &exampleUrl); + virtual void generateFileList(const ExampleNode *en, CodeMarker *marker, bool images); + static QString formatSince(const Node *node); + void generateSince(const Node *node, CodeMarker *marker); + void generateStatus(const Node *node, CodeMarker *marker); + virtual void generateAddendum(const Node *node, Addendum type, CodeMarker *marker, + bool generateNote); + virtual void generateAddendum(const Node *node, Addendum type, CodeMarker *marker) + { + generateAddendum(node, type, marker, true); + }; + void generateThreadSafeness(const Node *node, CodeMarker *marker); + QStringList getMetadataElements(const Aggregate *inner, const QString &t); + void generateOverloadedSignal(const Node *node, CodeMarker *marker); + static QString getOverloadedSignalCode(const Node *node); + QString indent(int level, const QString &markedCode); + QTextStream &out(); + QString outFileName(); + bool parseArg(const QString &src, const QString &tag, int *pos, int n, QStringView *contents, + QStringView *par1 = nullptr, bool debug = false); + void unknownAtom(const Atom *atom); + int appendSortedQmlNames(Text &text, const Node *base, const NodeList &subs); + + static bool hasExceptions(const Node *node, NodeList &reentrant, NodeList &threadsafe, + NodeList &nonreentrant); + + QString naturalLanguage; + QString tagFile_; + QStack outStreamStack; + + void appendFullName(Text &text, const Node *apparentNode, const Node *relative, + const Node *actualNode = nullptr); + void appendFullName(Text &text, const Node *apparentNode, const QString &fullName, + const Node *actualNode); + int appendSortedNames(Text &text, const ClassNode *classe, + const QList &classes); + void appendSignature(Text &text, const Node *node); + void signatureList(const NodeList &nodes, const Node *relative, CodeMarker *marker); + + void addImageToCopy(const ExampleNode *en, const ResolvedFile& resolved_file); + // TODO: This seems to be used as the predicate in std::sort calls. + // Remove it as it is unneded. + // Indeed, it could be replaced by std::less and, furthemore, + // std::sort already defaults to operator< when no predicate is + // provided. + static bool comparePaths(const QString &a, const QString &b) { return (a < b); } + +private: + static Generator *s_currentGenerator; + static QMap> s_fmtLeftMaps; + static QMap> s_fmtRightMaps; + static QList s_generators; + static QString s_project; + static QString s_outDir; + static QString s_outSubdir; + static QStringList s_outFileNames; + static QSet s_outputFormats; + static QHash s_outputPrefixes; + static QHash s_outputSuffixes; + static bool s_noLinkErrors; + static bool s_autolinkErrors; + static bool s_redirectDocumentationToDevNull; + static bool s_useOutputSubdirs; + static QmlTypeNode *s_qmlTypeContext; + + void generateReimplementsClause(const FunctionNode *fn, CodeMarker *marker); + static void copyTemplateFiles(const QString &configVar, const QString &subDir); + +protected: + FileResolver& file_resolver; + + QDocDatabase *m_qdb { nullptr }; + bool m_inLink { false }; + bool m_inContents { false }; + bool m_inSectionHeading { false }; + bool m_inTableHeader { false }; + bool m_threeColumnEnumValueTable { true }; + bool m_showInternal { false }; + bool m_quoting { false }; + int m_numTableRows { 0 }; + QString m_link {}; + QString m_sectionNumber {}; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/headernode.cpp b/src/qdoc/headernode.cpp new file mode 100644 index 0000000..365f027 --- /dev/null +++ b/src/qdoc/headernode.cpp @@ -0,0 +1,43 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "headernode.h" + +QT_BEGIN_NAMESPACE + +/*! + \class Headernode + \brief This class represents a C++ header file. + */ + +HeaderNode::HeaderNode(Aggregate *parent, const QString &name) : Aggregate(HeaderFile, parent, name) +{ + // Add the include file with enclosing angle brackets removed + if (name.startsWith(QChar('<')) && name.size() > 2) + Aggregate::addIncludeFile(name.mid(1).chopped(1)); + else + Aggregate::addIncludeFile(name); +} + +/*! + Returns true if this header file node is not private and + contains at least one public child node with documentation. + */ +bool HeaderNode::docMustBeGenerated() const +{ + if (isInAPI()) + return true; + return hasDocumentedChildren(); +} + +/*! + Returns true if this header file node contains at least one + child that has documentation and is not private or internal. + */ +bool HeaderNode::hasDocumentedChildren() const +{ + return std::any_of(m_children.cbegin(), m_children.cend(), + [](Node *child) { return child->isInAPI(); }); +} + +QT_END_NAMESPACE diff --git a/src/qdoc/headernode.h b/src/qdoc/headernode.h new file mode 100644 index 0000000..36e0693 --- /dev/null +++ b/src/qdoc/headernode.h @@ -0,0 +1,47 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef HEADERNODE_H +#define HEADERNODE_H + +#include "aggregate.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +class HeaderNode : public Aggregate +{ +public: + HeaderNode(Aggregate *parent, const QString &name); + [[nodiscard]] bool docMustBeGenerated() const override; + [[nodiscard]] bool isFirstClassAggregate() const override { return true; } + [[nodiscard]] bool isRelatableType() const override { return true; } + [[nodiscard]] QString title() const override { return (m_title.isEmpty() ? name() : m_title); } + [[nodiscard]] QString subtitle() const override { return m_subtitle; } + [[nodiscard]] QString fullTitle() const override + { + return (m_title.isEmpty() ? name() : name() + " - " + m_title); + } + bool setTitle(const QString &title) override + { + m_title = title; + return true; + } + bool setSubtitle(const QString &subtitle) override + { + m_subtitle = subtitle; + return true; + } + [[nodiscard]] QString nameForLists() const override { return title(); } + [[nodiscard]] bool hasDocumentedChildren() const; + +private: + QString m_title {}; + QString m_subtitle {}; +}; + +QT_END_NAMESPACE + +#endif // HEADERNODE_H diff --git a/src/qdoc/helpprojectwriter.cpp b/src/qdoc/helpprojectwriter.cpp new file mode 100644 index 0000000..5cb7eba --- /dev/null +++ b/src/qdoc/helpprojectwriter.cpp @@ -0,0 +1,794 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "helpprojectwriter.h" + +#include "access.h" +#include "aggregate.h" +#include "atom.h" +#include "classnode.h" +#include "collectionnode.h" +#include "config.h" +#include "enumnode.h" +#include "functionnode.h" +#include "htmlgenerator.h" +#include "node.h" +#include "qdocdatabase.h" +#include "typedefnode.h" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +HelpProjectWriter::HelpProjectWriter(const QString &defaultFileName, Generator *g) +{ + reset(defaultFileName, g); +} + +void HelpProjectWriter::reset(const QString &defaultFileName, Generator *g) +{ + m_projects.clear(); + m_gen = g; + /* + Get the pointer to the singleton for the qdoc database and + store it locally. This replaces all the local accesses to + the node tree, which are now private. + */ + m_qdb = QDocDatabase::qdocDB(); + + // The output directory should already have been checked by the calling + // generator. + Config &config = Config::instance(); + m_outputDir = config.getOutputDir(); + + const QStringList names = config.getStringList(CONFIG_QHP + Config::dot + "projects"); + + for (const auto &projectName : names) { + HelpProject project; + project.m_name = projectName; + + QString prefix = CONFIG_QHP + Config::dot + projectName + Config::dot; + project.m_helpNamespace = config.getString(prefix + "namespace"); + project.m_virtualFolder = config.getString(prefix + "virtualFolder"); + project.m_version = config.getString(CONFIG_VERSION); + project.m_fileName = config.getString(prefix + "file"); + if (project.m_fileName.isEmpty()) + project.m_fileName = defaultFileName; + project.m_extraFiles = config.getStringSet(prefix + "extraFiles"); + project.m_extraFiles += config.getStringSet(CONFIG_QHP + Config::dot + "extraFiles"); + project.m_indexTitle = config.getString(prefix + "indexTitle"); + project.m_indexRoot = config.getString(prefix + "indexRoot"); + const auto &filterAttributes = config.getStringList(prefix + "filterAttributes"); + project.m_filterAttributes = + QSet(filterAttributes.cbegin(), filterAttributes.cend()); + project.m_includeIndexNodes = config.getBool(prefix + "includeIndexNodes"); + const QSet customFilterNames = config.subVars(prefix + "customFilters"); + for (const auto &filterName : customFilterNames) { + QString name = config.getString(prefix + "customFilters" + Config::dot + filterName + + Config::dot + "name"); + const auto &filters = + config.getStringList(prefix + "customFilters" + Config::dot + filterName + + Config::dot + "filterAttributes"); + project.m_customFilters[name] = QSet(filters.cbegin(), filters.cend()); + } + + const auto excludedPrefixes = config.getStringSet(prefix + "excluded"); + for (auto name : excludedPrefixes) + project.m_excluded.insert(name.replace(QLatin1Char('\\'), QLatin1Char('/'))); + + const auto subprojectPrefixes = config.getStringList(prefix + "subprojects"); + for (const auto &name : subprojectPrefixes) { + SubProject subproject; + QString subprefix = prefix + "subprojects" + Config::dot + name + Config::dot; + subproject.m_title = config.getString(subprefix + "title"); + if (subproject.m_title.isEmpty()) + continue; + subproject.m_indexTitle = config.getString(subprefix + "indexTitle"); + subproject.m_sortPages = config.getBool(subprefix + "sortPages"); + subproject.m_type = config.getString(subprefix + "type"); + readSelectors(subproject, config.getStringList(subprefix + "selectors")); + project.m_subprojects.append(subproject); + } + + if (project.m_subprojects.isEmpty()) { + SubProject subproject; + readSelectors(subproject, config.getStringList(prefix + "selectors")); + project.m_subprojects.insert(0, subproject); + } + + m_projects.append(project); + } +} + +void HelpProjectWriter::readSelectors(SubProject &subproject, const QStringList &selectors) +{ + QHash typeHash; + typeHash["namespace"] = Node::Namespace; + typeHash["class"] = Node::Class; + typeHash["struct"] = Node::Struct; + typeHash["union"] = Node::Union; + typeHash["header"] = Node::HeaderFile; + typeHash["headerfile"] = Node::HeaderFile; + typeHash["doc"] = Node::Page; // Unused (supported but ignored as a prefix) + typeHash["fake"] = Node::Page; // Unused (supported but ignored as a prefix) + typeHash["page"] = Node::Page; + typeHash["enum"] = Node::Enum; + typeHash["example"] = Node::Example; + typeHash["externalpage"] = Node::ExternalPage; + typeHash["typedef"] = Node::Typedef; + typeHash["typealias"] = Node::TypeAlias; + typeHash["function"] = Node::Function; + typeHash["property"] = Node::Property; + typeHash["variable"] = Node::Variable; + typeHash["group"] = Node::Group; + typeHash["module"] = Node::Module; + typeHash["jsmodule"] = Node::JsModule; + typeHash["qmlmodule"] = Node::QmlModule; + typeHash["qmlproperty"] = Node::JsProperty; + typeHash["jsproperty"] = Node::QmlProperty; + typeHash["qmlclass"] = Node::QmlType; // Legacy alias for 'qmltype' + typeHash["qmltype"] = Node::QmlType; + typeHash["qmlbasictype"] = Node::QmlValueType; // Legacy alias for 'qmlvaluetype' + typeHash["qmlvaluetype"] = Node::QmlValueType; + + for (const QString &selector : selectors) { + QStringList pieces = selector.split(QLatin1Char(':')); + // Remove doc: or fake: prefix + if (pieces.size() > 1 && typeHash.value(pieces[0].toLower()) == Node::Page) + pieces.takeFirst(); + + QString typeName = pieces.takeFirst().toLower(); + if (!typeHash.contains(typeName)) + continue; + + subproject.m_selectors << typeHash.value(typeName); + if (!pieces.isEmpty()) { + pieces = pieces[0].split(QLatin1Char(',')); + for (const auto &piece : std::as_const(pieces)) { + if (typeHash[typeName] == Node::Group + || typeHash[typeName] == Node::Module + || typeHash[typeName] == Node::QmlModule + || typeHash[typeName] == Node::JsModule) { + subproject.m_groups << piece.toLower(); + } + } + } + } +} + +void HelpProjectWriter::addExtraFile(const QString &file) +{ + for (HelpProject &project : m_projects) + project.m_extraFiles.insert(file); +} + +Keyword HelpProjectWriter::keywordDetails(const Node *node) const +{ + QString ref = m_gen->fullDocumentLocation(node, false); + + if (node->parent() && !node->parent()->name().isEmpty()) { + QString name = (node->isEnumType() || node->isTypedef()) + ? node->parent()->name()+"::"+node->name() + : node->name(); + QString id = (!node->isRelatedNonmember()) + ? node->parent()->name()+"::"+node->name() + : node->name(); + return Keyword(name, id, ref); + } else if (node->isQmlType() || node->isQmlBasicType()) { + const QString &name = node->name(); + QString moduleName = node->logicalModuleName(); + QStringList ids("QML." + name); + if (!moduleName.isEmpty()) { + QString majorVersion = node->logicalModule() + ? node->logicalModule()->logicalModuleVersion().split('.')[0] + : QString(); + ids << "QML." + moduleName + majorVersion + "." + name; + } + return Keyword(name, ids, ref); + } else if (node->isJsType() || node->isJsBasicType()) { + return Keyword(node->name(), "JS." + node->name(), ref); + } else if (node->isTextPageNode()) { + const auto *pageNode = static_cast(node); + return Keyword(pageNode->fullTitle(), pageNode->fullTitle(), ref); + } else { + return Keyword(node->name(), node->name(), ref); + } +} + +bool HelpProjectWriter::generateSection(HelpProject &project, QXmlStreamWriter & /* writer */, + const Node *node) +{ + if (!node->url().isEmpty() && !(project.m_includeIndexNodes && !node->url().startsWith("http"))) + return false; + + if (node->isPrivate() || node->isInternal() || node->isDontDocument()) + return false; + + if (node->name().isEmpty()) + return true; + + QString docPath = node->doc().location().filePath(); + if (!docPath.isEmpty() && project.m_excluded.contains(docPath)) + return false; + + QString objName = node->isTextPageNode() ? node->fullTitle() : node->fullDocumentName(); + // Only add nodes to the set for each subproject if they match a selector. + // Those that match will be listed in the table of contents. + + for (int i = 0; i < project.m_subprojects.size(); i++) { + SubProject subproject = project.m_subprojects[i]; + // No selectors: accept all nodes. + if (subproject.m_selectors.isEmpty()) { + project.m_subprojects[i].m_nodes[objName] = node; + } else if (subproject.m_selectors.contains(node->nodeType())) { + // Add all group members for '[group|module|qmlmodule]:name' selector + if (node->isCollectionNode()) { + if (project.m_subprojects[i].m_groups.contains(node->name().toLower())) { + const auto *cn = static_cast(node); + const auto members = cn->members(); + for (const Node *m : members) { + if (!m->isInAPI()) + continue; + QString memberName = + m->isTextPageNode() ? m->fullTitle() : m->fullDocumentName(); + project.m_subprojects[i].m_nodes[memberName] = m; + } + continue; + } else if (!project.m_subprojects[i].m_groups.isEmpty()) { + continue; // Node does not represent specified group(s) + } + } else if (node->isTextPageNode()) { + if (node->isExternalPage() || node->fullTitle().isEmpty()) + continue; + } + project.m_subprojects[i].m_nodes[objName] = node; + } + } + + switch (node->nodeType()) { + + case Node::Class: + case Node::Struct: + case Node::Union: + project.m_keywords.append(keywordDetails(node)); + break; + case Node::QmlType: + case Node::QmlValueType: + case Node::JsType: + case Node::JsBasicType: + if (node->doc().hasKeywords()) { + const auto keywords = node->doc().keywords(); + for (const Atom *keyword : keywords) { + if (!keyword->string().isEmpty()) { + project.m_keywords.append(Keyword(keyword->string(), keyword->string(), + m_gen->fullDocumentLocation(node, false))); + } + else + node->doc().location().warning( + QStringLiteral("Bad keyword in %1") + .arg(m_gen->fullDocumentLocation(node, false))); + } + } + project.m_keywords.append(keywordDetails(node)); + break; + + case Node::Namespace: + project.m_keywords.append(keywordDetails(node)); + break; + + case Node::Enum: + project.m_keywords.append(keywordDetails(node)); + { + const auto *enumNode = static_cast(node); + const auto items = enumNode->items(); + for (const auto &item : items) { + if (enumNode->itemAccess(item.name()) == Access::Private) + continue; + + QString name; + QString id; + if (!node->parent()->name().isEmpty()) { + name = id = node->parent()->name() + "::" + item.name(); + } else { + name = id = item.name(); + } + QString ref = m_gen->fullDocumentLocation(node, false); + project.m_keywords.append(Keyword(name, id, ref)); + } + } + break; + + case Node::Group: + case Node::Module: + case Node::QmlModule: + case Node::JsModule: { + const auto *cn = static_cast(node); + if (!cn->fullTitle().isEmpty()) { + if (cn->doc().hasKeywords()) { + const auto keywords = cn->doc().keywords(); + for (const Atom *keyword : keywords) { + if (!keyword->string().isEmpty()) { + project.m_keywords.append( + Keyword(keyword->string(), keyword->string(), + m_gen->fullDocumentLocation(node, false))); + } else + cn->doc().location().warning( + QStringLiteral("Bad keyword in %1") + .arg(m_gen->fullDocumentLocation(node, false))); + } + } + project.m_keywords.append(keywordDetails(node)); + } + } break; + + case Node::Property: + case Node::QmlProperty: + case Node::JsProperty: + project.m_keywords.append(keywordDetails(node)); + break; + + case Node::Function: { + const auto *funcNode = static_cast(node); + + /* + QML and JS methods, signals, and signal handlers used to be node types, + but now they are Function nodes with a Metaness value that specifies + what kind of function they are, QmlSignal, JsSignal, QmlMethod, etc. It + suffices at this point to test whether the node is of the QML or JS Genus, + because we already know it is NodeType::Function. + */ + if (funcNode->isQmlNode() || funcNode->isJsNode()) { + project.m_keywords.append(keywordDetails(node)); + break; + } + // Only insert keywords for non-constructors. Constructors are covered + // by the classes themselves. + + if (!funcNode->isSomeCtor()) + project.m_keywords.append(keywordDetails(node)); + + // Insert member status flags into the entries for the parent + // node of the function, or the node it is related to. + // Since parent nodes should have already been inserted into + // the set of files, we only need to ensure that related nodes + // are inserted. + + if (node->parent()) + project.m_memberStatus[node->parent()].insert(node->status()); + } break; + case Node::TypeAlias: + case Node::Typedef: { + const auto *typedefNode = static_cast(node); + Keyword typedefDetails = keywordDetails(node); + const EnumNode *enumNode = typedefNode->associatedEnum(); + // Use the location of any associated enum node in preference + // to that of the typedef. + if (enumNode) + typedefDetails.m_ref = m_gen->fullDocumentLocation(enumNode, false); + + project.m_keywords.append(typedefDetails); + } break; + + case Node::Variable: { + project.m_keywords.append(keywordDetails(node)); + } break; + + // Page nodes (such as manual pages) contain subtypes, titles and other + // attributes. + case Node::Page: { + const auto *pn = static_cast(node); + if (!pn->fullTitle().isEmpty()) { + if (pn->doc().hasKeywords()) { + const auto keywords = pn->doc().keywords(); + for (const Atom *keyword : keywords) { + if (!keyword->string().isEmpty()) { + project.m_keywords.append( + Keyword(keyword->string(), keyword->string(), + m_gen->fullDocumentLocation(node, false))); + } else { + QString loc = m_gen->fullDocumentLocation(node, false); + pn->doc().location().warning(QStringLiteral("Bad keyword in %1").arg(loc)); + } + } + } + project.m_keywords.append(keywordDetails(node)); + } + break; + } + default:; + } + + // Add all images referenced in the page to the set of files to include. + const Atom *atom = node->doc().body().firstAtom(); + while (atom) { + if (atom->type() == Atom::Image || atom->type() == Atom::InlineImage) { + // Images are all placed within a single directory regardless of + // whether the source images are in a nested directory structure. + QStringList pieces = atom->string().split(QLatin1Char('/')); + project.m_files.insert("images/" + pieces.last()); + } + atom = atom->next(); + } + + return true; +} + +void HelpProjectWriter::generateSections(HelpProject &project, QXmlStreamWriter &writer, + const Node *node) +{ + /* + Don't include index nodes in the help file. + */ + if (node->isIndexNode()) + return; + if (!generateSection(project, writer, node)) + return; + + if (node->isAggregate()) { + const auto *aggregate = static_cast(node); + + // Ensure that we don't visit nodes more than once. + NodeList childSet; + NodeList children = aggregate->childNodes(); + std::sort(children.begin(), children.end(), Node::nodeNameLessThan); + for (auto *child : children) { + // Skip related non-members adopted by some other aggregate + if (child->parent() != aggregate) + continue; + if (child->isIndexNode() || child->isPrivate()) + continue; + if (child->isTextPageNode()) { + if (!childSet.contains(child)) + childSet << child; + } else { + // Store member status of children + project.m_memberStatus[node].insert(child->status()); + if (child->isFunction() && static_cast(child)->isOverload()) + continue; + if (!childSet.contains(child)) + childSet << child; + } + } + for (const auto *child : std::as_const(childSet)) + generateSections(project, writer, child); + } +} + +void HelpProjectWriter::generate() +{ + for (HelpProject &project : m_projects) + generateProject(project); +} + +void HelpProjectWriter::writeHashFile(QFile &file) +{ + QCryptographicHash hash(QCryptographicHash::Sha1); + hash.addData(&file); + + QFile hashFile(file.fileName() + ".sha1"); + if (!hashFile.open(QFile::WriteOnly | QFile::Text)) + return; + + hashFile.write(hash.result().toHex()); + hashFile.close(); +} + +void HelpProjectWriter::writeSection(QXmlStreamWriter &writer, const QString &path, + const QString &value) +{ + writer.writeStartElement(QStringLiteral("section")); + writer.writeAttribute(QStringLiteral("ref"), path); + writer.writeAttribute(QStringLiteral("title"), value); + writer.writeEndElement(); // section +} + +/*! + Write subsections for all members, compatibility members and obsolete members. + */ +void HelpProjectWriter::addMembers(HelpProject &project, QXmlStreamWriter &writer, const Node *node) +{ + if (node->isQmlBasicType() || node->isJsBasicType()) + return; + + QString href = m_gen->fullDocumentLocation(node, false); + href = href.left(href.size() - 5); + if (href.isEmpty()) + return; + + bool derivedClass = false; + if (node->isClassNode()) + derivedClass = !(static_cast(node)->baseClasses().isEmpty()); + + // Do not generate a 'List of all members' for namespaces or header files, + // but always generate it for derived classes and QML classes + if (!node->isNamespace() && !node->isHeader() + && (derivedClass || node->isQmlType() || node->isJsType() + || !project.m_memberStatus[node].isEmpty())) { + QString membersPath = href + QStringLiteral("-members.html"); + writeSection(writer, membersPath, QStringLiteral("List of all members")); + } + if (project.m_memberStatus[node].contains(Node::Deprecated)) { + QString obsoletePath = href + QStringLiteral("-obsolete.html"); + writeSection(writer, obsoletePath, QStringLiteral("Obsolete members")); + } +} + +void HelpProjectWriter::writeNode(HelpProject &project, QXmlStreamWriter &writer, const Node *node) +{ + QString href = m_gen->fullDocumentLocation(node, false); + QString objName = node->name(); + + switch (node->nodeType()) { + + case Node::Class: + case Node::Struct: + case Node::Union: + case Node::QmlType: + case Node::JsType: + case Node::QmlValueType: + case Node::JsBasicType: { + QString typeStr = m_gen->typeString(node); + if (!typeStr.isEmpty()) + typeStr[0] = typeStr[0].toTitleCase(); + writer.writeStartElement("section"); + writer.writeAttribute("ref", href); + if (node->parent() && !node->parent()->name().isEmpty()) + writer.writeAttribute("title", + QStringLiteral("%1::%2 %3 Reference") + .arg(node->parent()->name(), objName, typeStr)); + else + writer.writeAttribute("title", QStringLiteral("%1 %2 Reference").arg(objName, typeStr)); + + addMembers(project, writer, node); + writer.writeEndElement(); // section + } break; + + case Node::Namespace: + writeSection(writer, href, objName); + break; + + case Node::Example: + case Node::HeaderFile: + case Node::Page: + case Node::Group: + case Node::Module: + case Node::JsModule: + case Node::QmlModule: { + writer.writeStartElement("section"); + writer.writeAttribute("ref", href); + writer.writeAttribute("title", node->fullTitle()); + if (node->nodeType() == Node::HeaderFile) + addMembers(project, writer, node); + writer.writeEndElement(); // section + } break; + default:; + } +} + +void HelpProjectWriter::generateProject(HelpProject &project) +{ + const Node *rootNode; + + // Restrict searching only to the local (primary) tree + QList searchOrder = m_qdb->searchOrder(); + m_qdb->setLocalSearch(); + + if (!project.m_indexRoot.isEmpty()) + rootNode = m_qdb->findPageNodeByTitle(project.m_indexRoot); + else + rootNode = m_qdb->primaryTreeRoot(); + + if (rootNode == nullptr) + return; + + project.m_files.clear(); + project.m_keywords.clear(); + + QFile file(m_outputDir + QDir::separator() + project.m_fileName); + if (!file.open(QFile::WriteOnly | QFile::Text)) + return; + + QXmlStreamWriter writer(&file); + writer.setAutoFormatting(true); + writer.writeStartDocument(); + writer.writeStartElement("QtHelpProject"); + writer.writeAttribute("version", "1.0"); + + // Write metaData, virtualFolder and namespace elements. + writer.writeTextElement("namespace", project.m_helpNamespace); + writer.writeTextElement("virtualFolder", project.m_virtualFolder); + writer.writeStartElement("metaData"); + writer.writeAttribute("name", "version"); + writer.writeAttribute("value", project.m_version); + writer.writeEndElement(); + + // Write customFilter elements. + for (auto it = project.m_customFilters.constBegin(); it != project.m_customFilters.constEnd(); + ++it) { + writer.writeStartElement("customFilter"); + writer.writeAttribute("name", it.key()); + QStringList sortedAttributes = it.value().values(); + sortedAttributes.sort(); + for (const auto &filter : std::as_const(sortedAttributes)) + writer.writeTextElement("filterAttribute", filter); + writer.writeEndElement(); // customFilter + } + + // Start the filterSection. + writer.writeStartElement("filterSection"); + + // Write filterAttribute elements. + QStringList sortedFilterAttributes = project.m_filterAttributes.values(); + sortedFilterAttributes.sort(); + for (const auto &filterName : std::as_const(sortedFilterAttributes)) + writer.writeTextElement("filterAttribute", filterName); + + writer.writeStartElement("toc"); + writer.writeStartElement("section"); + const Node *node = m_qdb->findPageNodeByTitle(project.m_indexTitle); + if (!node) + node = m_qdb->findNodeByNameAndType(QStringList(project.m_indexTitle), &Node::isPageNode); + if (!node) + node = m_qdb->findNodeByNameAndType(QStringList("index.html"), &Node::isPageNode); + QString indexPath; + if (node) + indexPath = m_gen->fullDocumentLocation(node, false); + else + indexPath = "index.html"; + writer.writeAttribute("ref", indexPath); + writer.writeAttribute("title", project.m_indexTitle); + + generateSections(project, writer, rootNode); + + for (int i = 0; i < project.m_subprojects.size(); i++) { + SubProject subproject = project.m_subprojects[i]; + + if (subproject.m_type == QLatin1String("manual")) { + + const Node *indexPage = m_qdb->findNodeForTarget(subproject.m_indexTitle, nullptr); + if (indexPage) { + Text indexBody = indexPage->doc().body(); + const Atom *atom = indexBody.firstAtom(); + QStack sectionStack; + bool inItem = false; + + while (atom) { + switch (atom->type()) { + case Atom::ListLeft: + sectionStack.push(0); + break; + case Atom::ListRight: + if (sectionStack.pop() > 0) + writer.writeEndElement(); // section + break; + case Atom::ListItemLeft: + inItem = true; + break; + case Atom::ListItemRight: + inItem = false; + break; + case Atom::Link: + if (inItem) { + if (sectionStack.top() > 0) + writer.writeEndElement(); // section + + const Node *page = m_qdb->findNodeForTarget(atom->string(), nullptr); + writer.writeStartElement("section"); + QString indexPath = m_gen->fullDocumentLocation(page, false); + writer.writeAttribute("ref", indexPath); + writer.writeAttribute("title", atom->linkText()); + + sectionStack.top() += 1; + } + break; + default:; + } + + if (atom == indexBody.lastAtom()) + break; + atom = atom->next(); + } + } else + rootNode->doc().location().warning( + QStringLiteral("Failed to find index: %1").arg(subproject.m_indexTitle)); + + } else { + + writer.writeStartElement("section"); + QString indexPath = m_gen->fullDocumentLocation( + m_qdb->findNodeForTarget(subproject.m_indexTitle, nullptr), false); + writer.writeAttribute("ref", indexPath); + writer.writeAttribute("title", subproject.m_title); + + if (subproject.m_sortPages) { + QStringList titles = subproject.m_nodes.keys(); + titles.sort(); + for (const auto &title : std::as_const(titles)) { + writeNode(project, writer, subproject.m_nodes[title]); + } + } else { + // Find a contents node and navigate from there, using the NextLink values. + QSet visited; + bool contentsFound = false; + for (const auto *node : std::as_const(subproject.m_nodes)) { + QString nextTitle = node->links().value(Node::NextLink).first; + if (!nextTitle.isEmpty() + && node->links().value(Node::ContentsLink).first.isEmpty()) { + + const Node *nextPage = m_qdb->findNodeForTarget(nextTitle, nullptr); + + // Write the contents node. + writeNode(project, writer, node); + contentsFound = true; + + while (nextPage) { + writeNode(project, writer, nextPage); + nextTitle = nextPage->links().value(Node::NextLink).first; + if (nextTitle.isEmpty() || visited.contains(nextTitle)) + break; + nextPage = m_qdb->findNodeForTarget(nextTitle, nullptr); + visited.insert(nextTitle); + } + break; + } + } + // No contents/nextpage links found, write all nodes unsorted + if (!contentsFound) { + QList subnodes = subproject.m_nodes.values(); + + std::sort(subnodes.begin(), subnodes.end(), Node::nodeNameLessThan); + + for (const auto *node : std::as_const(subnodes)) + writeNode(project, writer, node); + } + } + + writer.writeEndElement(); // section + } + } + + // Restore original search order + m_qdb->setSearchOrder(searchOrder); + + writer.writeEndElement(); // section + writer.writeEndElement(); // toc + + writer.writeStartElement("keywords"); + std::sort(project.m_keywords.begin(), project.m_keywords.end()); + for (const auto &k : std::as_const(project.m_keywords)) { + for (const auto &id : std::as_const(k.m_ids)) { + writer.writeStartElement("keyword"); + writer.writeAttribute("name", k.m_name); + writer.writeAttribute("id", id); + writer.writeAttribute("ref", k.m_ref); + writer.writeEndElement(); //keyword + } + } + writer.writeEndElement(); // keywords + + writer.writeStartElement("files"); + + // The list of files to write is the union of generated files and + // other files (images and extras) included in the project + QSet files = + QSet(m_gen->outputFileNames().cbegin(), m_gen->outputFileNames().cend()); + files.unite(project.m_files); + files.unite(project.m_extraFiles); + QStringList sortedFiles = files.values(); + sortedFiles.sort(); + for (const auto &usedFile : std::as_const(sortedFiles)) { + if (!usedFile.isEmpty()) + writer.writeTextElement("file", usedFile); + } + writer.writeEndElement(); // files + + writer.writeEndElement(); // filterSection + writer.writeEndElement(); // QtHelpProject + writer.writeEndDocument(); + writeHashFile(file); + file.close(); +} + +QT_END_NAMESPACE diff --git a/src/qdoc/helpprojectwriter.h b/src/qdoc/helpprojectwriter.h new file mode 100644 index 0000000..ab73398 --- /dev/null +++ b/src/qdoc/helpprojectwriter.h @@ -0,0 +1,107 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef HELPPROJECTWRITER_H +#define HELPPROJECTWRITER_H + +#include "node.h" + +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class QDocDatabase; +class Generator; + +using NodeTypeSet = QSet; + +struct SubProject +{ + QString m_title {}; + QString m_indexTitle {}; + NodeTypeSet m_selectors {}; + bool m_sortPages {}; + QString m_type {}; + QHash m_nodes {}; + QStringList m_groups {}; +}; + +/* + * Name is the human-readable name to be shown in Assistant. + * Ids is a list of unique identifiers. + * Ref is the location of the documentation for the keyword. + */ +struct Keyword { + QString m_name {}; + QStringList m_ids {}; + QString m_ref {}; + Keyword(QString name, const QString &id, QString ref) + : m_name(std::move(name)), m_ids(QStringList(id)), m_ref(std::move(ref)) + { + } + Keyword(QString name, QStringList ids, QString ref) + : m_name(std::move(name)), m_ids(std::move(ids)), m_ref(std::move(ref)) + { + } + bool operator<(const Keyword &o) const + { + // Order by name; use ref as a secondary sort key + return (m_name == o.m_name) ? m_ref < o.m_ref : m_name < o.m_name; + } +}; + +struct HelpProject +{ + using NodeStatusSet = QSet; + + QString m_name {}; + QString m_helpNamespace {}; + QString m_virtualFolder {}; + QString m_version {}; + QString m_fileName {}; + QString m_indexRoot {}; + QString m_indexTitle {}; + QList m_keywords {}; + QSet m_files {}; + QSet m_extraFiles {}; + QSet m_filterAttributes {}; + QHash> m_customFilters {}; + QSet m_excluded {}; + QList m_subprojects {}; + QHash m_memberStatus {}; + bool m_includeIndexNodes {}; +}; + + +class HelpProjectWriter +{ +public: + HelpProjectWriter(const QString &defaultFileName, Generator *g); + void reset(const QString &defaultFileName, Generator *g); + void addExtraFile(const QString &file); + void generate(); + +private: + void generateProject(HelpProject &project); + void generateSections(HelpProject &project, QXmlStreamWriter &writer, const Node *node); + bool generateSection(HelpProject &project, QXmlStreamWriter &writer, const Node *node); + Keyword keywordDetails(const Node *node) const; + void writeHashFile(QFile &file); + void writeNode(HelpProject &project, QXmlStreamWriter &writer, const Node *node); + void readSelectors(SubProject &subproject, const QStringList &selectors); + void addMembers(HelpProject &project, QXmlStreamWriter &writer, const Node *node); + void writeSection(QXmlStreamWriter &writer, const QString &path, const QString &value); + + QDocDatabase *m_qdb {}; + Generator *m_gen {}; + + QString m_outputDir {}; + QList m_projects {}; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/htmlgenerator.cpp b/src/qdoc/htmlgenerator.cpp new file mode 100644 index 0000000..d2d7afc --- /dev/null +++ b/src/qdoc/htmlgenerator.cpp @@ -0,0 +1,3681 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "htmlgenerator.h" + +#include "access.h" +#include "aggregate.h" +#include "classnode.h" +#include "collectionnode.h" +#include "config.h" +#include "codemarker.h" +#include "codeparser.h" +#include "enumnode.h" +#include "functionnode.h" +#include "helpprojectwriter.h" +#include "manifestwriter.h" +#include "node.h" +#include "propertynode.h" +#include "qdocdatabase.h" +#include "qmlpropertynode.h" +#include "sharedcommentnode.h" +#include "tagfilewriter.h" +#include "tree.h" +#include "quoter.h" + +#include +#include +#include +#include +#include + +#include +#include + +QT_BEGIN_NAMESPACE + +bool HtmlGenerator::s_inUnorderedList { false }; + +HtmlGenerator::HtmlGenerator(FileResolver& file_resolver) : XmlGenerator(file_resolver) {} + +static void addLink(const QString &linkTarget, QStringView nestedStuff, QString *res) +{ + if (!linkTarget.isEmpty()) { + *res += QLatin1String(""); + *res += nestedStuff; + *res += QLatin1String(""); + } else { + *res += nestedStuff; + } +} + +/*! + \internal + Convenience method that starts an unordered list if not in one. + */ +inline void HtmlGenerator::openUnorderedList() +{ + if (!s_inUnorderedList) { + out() << "
    \n"; + s_inUnorderedList = true; + } +} + +/*! + \internal + Convenience method that closes an unordered list if in one. + */ +inline void HtmlGenerator::closeUnorderedList() +{ + if (s_inUnorderedList) { + out() << "
\n"; + s_inUnorderedList = false; + } +} + +/*! + Destroys the HTML output generator. Deletes the singleton + instance of HelpProjectWriter and the ManifestWriter instance. + */ +HtmlGenerator::~HtmlGenerator() +{ + if (m_helpProjectWriter) { + delete m_helpProjectWriter; + m_helpProjectWriter = nullptr; + } + + if (m_manifestWriter) { + delete m_manifestWriter; + m_manifestWriter = nullptr; + } +} + +/*! + Initializes the HTML output generator's data structures + from the configuration (Config) singleton. + */ +void HtmlGenerator::initializeGenerator() +{ + static const struct + { + const char *key; + const char *left; + const char *right; + } defaults[] = { { ATOM_FORMATTING_BOLD, "", "" }, + { ATOM_FORMATTING_INDEX, "" }, + { ATOM_FORMATTING_ITALIC, "", "" }, + { ATOM_FORMATTING_PARAMETER, "", "" }, + { ATOM_FORMATTING_SUBSCRIPT, "", "" }, + { ATOM_FORMATTING_SUPERSCRIPT, "", "" }, + { ATOM_FORMATTING_TELETYPE, "", + "" }, // tag is not supported in HTML5 + { ATOM_FORMATTING_UICONTROL, "", "" }, + { ATOM_FORMATTING_UNDERLINE, "", "" }, + { nullptr, nullptr, nullptr } }; + + Generator::initializeGenerator(); + config = &Config::instance(); + + /* + The formatting maps are owned by Generator. They are cleared in + Generator::terminate(). + */ + int i = 0; + while (defaults[i].key) { + formattingLeftMap().insert(QLatin1String(defaults[i].key), QLatin1String(defaults[i].left)); + formattingRightMap().insert(QLatin1String(defaults[i].key), + QLatin1String(defaults[i].right)); + i++; + } + + m_endHeader = config->getString(HtmlGenerator::format() + Config::dot + CONFIG_ENDHEADER); + m_postHeader = + config->getString(HtmlGenerator::format() + Config::dot + HTMLGENERATOR_POSTHEADER); + m_postPostHeader = + config->getString(HtmlGenerator::format() + Config::dot + HTMLGENERATOR_POSTPOSTHEADER); + m_prologue = config->getString(HtmlGenerator::format() + Config::dot + HTMLGENERATOR_PROLOGUE); + + m_footer = config->getString(HtmlGenerator::format() + Config::dot + HTMLGENERATOR_FOOTER); + m_address = config->getString(HtmlGenerator::format() + Config::dot + HTMLGENERATOR_ADDRESS); + m_noNavigationBar = + config->getBool(HtmlGenerator::format() + Config::dot + HTMLGENERATOR_NONAVIGATIONBAR); + m_navigationSeparator = config->getString(HtmlGenerator::format() + Config::dot + + HTMLGENERATOR_NAVIGATIONSEPARATOR); + tocDepth = config->getInt(HtmlGenerator::format() + Config::dot + HTMLGENERATOR_TOCDEPTH); + + m_project = config->getString(CONFIG_PROJECT); + + m_projectDescription = config->getString(CONFIG_DESCRIPTION); + if (m_projectDescription.isEmpty() && !m_project.isEmpty()) + m_projectDescription = m_project + QLatin1String(" Reference Documentation"); + + m_projectUrl = config->getString(CONFIG_URL); + tagFile_ = config->getString(CONFIG_TAGFILE); + + naturalLanguage = config->getString(CONFIG_NATURALLANGUAGE); + if (naturalLanguage.isEmpty()) + naturalLanguage = QLatin1String("en"); + + m_codeIndent = config->getInt(CONFIG_CODEINDENT); // QTBUG-27798 + m_codePrefix = config->getString(CONFIG_CODEPREFIX); + m_codeSuffix = config->getString(CONFIG_CODESUFFIX); + + /* + The help file write should be allocated once and only once + per qdoc execution. + */ + if (m_helpProjectWriter) + m_helpProjectWriter->reset(m_project.toLower() + ".qhp", this); + else + m_helpProjectWriter = new HelpProjectWriter(m_project.toLower() + ".qhp", this); + + if (!m_manifestWriter) + m_manifestWriter = new ManifestWriter(); + + // Documentation template handling + m_headerScripts = + config->getString(HtmlGenerator::format() + Config::dot + CONFIG_HEADERSCRIPTS); + m_headerStyles = config->getString(HtmlGenerator::format() + Config::dot + CONFIG_HEADERSTYLES); + + // Retrieve the config for the navigation bar + m_homepage = config->getString(CONFIG_NAVIGATION + Config::dot + CONFIG_HOMEPAGE); + + m_hometitle = config->getString(CONFIG_NAVIGATION + Config::dot + CONFIG_HOMETITLE, m_homepage); + + m_landingpage = config->getString(CONFIG_NAVIGATION + Config::dot + CONFIG_LANDINGPAGE); + + m_landingtitle = + config->getString(CONFIG_NAVIGATION + Config::dot + CONFIG_LANDINGTITLE, m_landingpage); + + m_cppclassespage = config->getString(CONFIG_NAVIGATION + Config::dot + CONFIG_CPPCLASSESPAGE); + + m_cppclassestitle = config->getString(CONFIG_NAVIGATION + Config::dot + CONFIG_CPPCLASSESTITLE, + QLatin1String("C++ Classes")); + + m_qmltypespage = config->getString(CONFIG_NAVIGATION + Config::dot + CONFIG_QMLTYPESPAGE); + + m_qmltypestitle = config->getString(CONFIG_NAVIGATION + Config::dot + CONFIG_QMLTYPESTITLE, + QLatin1String("QML Types")); + + m_buildversion = config->getString(CONFIG_BUILDVERSION); +} + +/*! + Gracefully terminates the HTML output generator. + */ +void HtmlGenerator::terminateGenerator() +{ + Generator::terminateGenerator(); +} + +QString HtmlGenerator::format() +{ + return "HTML"; +} + +/*! + If qdoc is in the \c {-prepare} phase, traverse the primary + tree to generate the index file for the current module. + + If qdoc is in the \c {-generate} phase, traverse the primary + tree to generate all the HTML documentation for the current + module. Then generate the help file and the tag file. + */ +void HtmlGenerator::generateDocs() +{ + Node *qflags = m_qdb->findClassNode(QStringList("QFlags")); + if (qflags) + m_qflagsHref = linkForNode(qflags, nullptr); + if (!config->preparing()) + Generator::generateDocs(); + + if (!config->generating()) { + QString fileBase = + m_project.toLower().simplified().replace(QLatin1Char(' '), QLatin1Char('-')); + m_qdb->generateIndex(outputDir() + QLatin1Char('/') + fileBase + ".index", m_projectUrl, + m_projectDescription, this); + } + + if (!config->preparing()) { + m_helpProjectWriter->generate(); + m_manifestWriter->generateManifestFiles(); + /* + Generate the XML tag file, if it was requested. + */ + if (!tagFile_.isEmpty()) { + TagFileWriter tagFileWriter; + tagFileWriter.generateTagFile(tagFile_, this); + } + } +} + +/*! + Generate an html file with the contents of a C++ or QML source file. + */ +void HtmlGenerator::generateExampleFilePage(const Node *en, ResolvedFile resolved_file, CodeMarker *marker) +{ + SubTitleSize subTitleSize = LargeSubTitle; + QString fullTitle = en->fullTitle(); + + beginFilePage(en, linkForExampleFile(resolved_file.get_query())); + generateHeader(fullTitle, en, marker); + generateTitle(fullTitle, Text() << en->subtitle(), subTitleSize, en, marker); + + Text text; + Quoter quoter; + Doc::quoteFromFile(en->doc().location(), quoter, resolved_file); + QString code = quoter.quoteTo(en->location(), QString(), QString()); + CodeMarker *codeMarker = CodeMarker::markerForFileName(resolved_file.get_path()); + text << Atom(codeMarker->atomType(), code); + Atom a(codeMarker->atomType(), code); + + generateText(text, en, codeMarker); + endFilePage(); +} + +/*! + Generate html from an instance of Atom. + */ +qsizetype HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMarker *marker) +{ + qsizetype idx, skipAhead = 0; + static bool in_para = false; + Node::Genus genus = Node::DontCare; + + switch (atom->type()) { + case Atom::AutoLink: { + QString name = atom->string(); + if (relative && relative->name() == name.replace(QLatin1String("()"), QLatin1String())) { + out() << protectEnc(atom->string()); + break; + } + // Allow auto-linking to nodes in API reference + genus = Node::API; + } + Q_FALLTHROUGH(); + case Atom::NavAutoLink: + if (!m_inLink && !m_inContents && !m_inSectionHeading) { + const Node *node = nullptr; + QString link = getAutoLink(atom, relative, &node, genus); + if (link.isEmpty()) { + if (autolinkErrors() && relative) + relative->doc().location().warning( + QStringLiteral("Can't autolink to '%1'").arg(atom->string())); + } else if (node && node->isDeprecated()) { + if (relative && (relative->parent() != node) && !relative->isDeprecated()) + link.clear(); + } + if (link.isEmpty()) { + out() << protectEnc(atom->string()); + } else { + beginLink(link, node, relative); + generateLink(atom); + endLink(); + } + } else { + out() << protectEnc(atom->string()); + } + break; + case Atom::BaseName: + break; + case Atom::BriefLeft: + if (!hasBrief(relative)) { + skipAhead = skipAtoms(atom, Atom::BriefRight); + break; + } + out() << "

"; + rewritePropertyBrief(atom, relative); + break; + case Atom::BriefRight: + if (hasBrief(relative)) + out() << "

\n"; + break; + case Atom::C: + // This may at one time have been used to mark up C++ code but it is + // now widely used to write teletype text. As a result, text marked + // with the \c command is not passed to a code marker. + out() << formattingLeftMap()[ATOM_FORMATTING_TELETYPE]; + out() << protectEnc(plainCode(atom->string())); + out() << formattingRightMap()[ATOM_FORMATTING_TELETYPE]; + break; + case Atom::CaptionLeft: + out() << "

"; + in_para = true; + break; + case Atom::CaptionRight: + endLink(); + if (in_para) { + out() << "

\n"; + in_para = false; + } + break; + case Atom::Qml: + out() << "
"
+              << trimmedTrailing(highlightedCode(indent(m_codeIndent, atom->string()), relative,
+                                                 false, Node::QML),
+                                 m_codePrefix, m_codeSuffix)
+              << "
\n"; + break; + case Atom::JavaScript: + out() << "
"
+              << trimmedTrailing(highlightedCode(indent(m_codeIndent, atom->string()), relative,
+                                                 false, Node::JS),
+                                 m_codePrefix, m_codeSuffix)
+              << "
\n"; + break; + case Atom::Code: + out() << "
"
+              << trimmedTrailing(highlightedCode(indent(m_codeIndent, atom->string()), relative),
+                                 m_codePrefix, m_codeSuffix)
+              << "
\n"; + break; + case Atom::CodeBad: + out() << "
"
+              << trimmedTrailing(protectEnc(plainCode(indent(m_codeIndent, atom->string()))),
+                                 m_codePrefix, m_codeSuffix)
+              << "
\n"; + break; + case Atom::DivLeft: + out() << "string().isEmpty()) + out() << ' ' << atom->string(); + out() << '>'; + break; + case Atom::DivRight: + out() << "
"; + break; + case Atom::FootnoteLeft: + // ### For now + if (in_para) { + out() << "

\n"; + in_para = false; + } + out() << "\n"; + break; + case Atom::FormatElse: + case Atom::FormatEndif: + case Atom::FormatIf: + break; + case Atom::FormattingLeft: + if (atom->string().startsWith("span ")) { + out() << '<' + atom->string() << '>'; + } else + out() << formattingLeftMap()[atom->string()]; + if (atom->string() == ATOM_FORMATTING_PARAMETER) { + if (atom->next() != nullptr && atom->next()->type() == Atom::String) { + QRegularExpression subscriptRegExp("^([a-z]+)_([0-9n])$"); + auto match = subscriptRegExp.match(atom->next()->string()); + if (match.hasMatch()) { + out() << match.captured(1) << "" << match.captured(2) + << ""; + skipAhead = 1; + } + } + } + break; + case Atom::FormattingRight: + if (atom->string() == ATOM_FORMATTING_LINK) { + endLink(); + } else if (atom->string().startsWith("span ")) { + out() << ""; + } else { + out() << formattingRightMap()[atom->string()]; + } + break; + case Atom::AnnotatedList: { + const CollectionNode *cn = m_qdb->getCollectionNode(atom->string(), Node::Group); + if (cn) + generateList(cn, marker, atom->string()); + } break; + case Atom::GeneratedList: + if (atom->string() == QLatin1String("annotatedclasses")) { + generateAnnotatedList(relative, marker, m_qdb->getCppClasses().values()); + } else if (atom->string() == QLatin1String("annotatedexamples")) { + generateAnnotatedLists(relative, marker, m_qdb->getExamples()); + } else if (atom->string() == QLatin1String("annotatedattributions")) { + generateAnnotatedLists(relative, marker, m_qdb->getAttributions()); + } else if (atom->string() == QLatin1String("classes")) { + generateCompactList(Generic, relative, m_qdb->getCppClasses(), true, + QStringLiteral("")); + } else if (atom->string().contains("classes ")) { + QString rootName = atom->string().mid(atom->string().indexOf("classes") + 7).trimmed(); + generateCompactList(Generic, relative, m_qdb->getCppClasses(), true, rootName); + } else if (atom->string() == QLatin1String("qmlvaluetypes") + || atom->string() == QLatin1String("qmlbasictypes")) { + generateCompactList(Generic, relative, m_qdb->getQmlValueTypes(), true, + QStringLiteral("")); + } else if (atom->string() == QLatin1String("qmltypes")) { + generateCompactList(Generic, relative, m_qdb->getQmlTypes(), true, QStringLiteral("")); + } else if ((idx = atom->string().indexOf(QStringLiteral("bymodule"))) != -1) { + QString moduleName = atom->string().mid(idx + 8).trimmed(); + Node::NodeType type = typeFromString(atom); + QDocDatabase *qdb = QDocDatabase::qdocDB(); + const CollectionNode *cn = qdb->getCollectionNode(moduleName, type); + if (cn) { + if (type == Node::Module) { + NodeMap m; + cn->getMemberClasses(m); + if (!m.isEmpty()) { + generateAnnotatedList(relative, marker, m.values()); + } + } else + generateAnnotatedList(relative, marker, cn->members()); + } + } else if (atom->string().startsWith("examplefiles") + || atom->string().startsWith("exampleimages")) { + if (relative->isExample()) { + qDebug() << "GENERATE FILE LIST CALLED" << relative->name() << atom->string(); + } else + relative->location().warning(QString("'\\generatelist %1' can only be used with " + "'\\example' topic command") + .arg(atom->string())); + } else if (atom->string() == QLatin1String("classhierarchy")) { + generateClassHierarchy(relative, m_qdb->getCppClasses()); + } else if (atom->string() == QLatin1String("obsoleteclasses")) { + generateCompactList(Generic, relative, m_qdb->getObsoleteClasses(), false, + QStringLiteral("Q")); + } else if (atom->string() == QLatin1String("obsoleteqmltypes")) { + generateCompactList(Generic, relative, m_qdb->getObsoleteQmlTypes(), false, + QStringLiteral("")); + } else if (atom->string() == QLatin1String("obsoletecppmembers")) { + generateCompactList(Obsolete, relative, m_qdb->getClassesWithObsoleteMembers(), false, + QStringLiteral("Q")); + } else if (atom->string() == QLatin1String("obsoleteqmlmembers")) { + generateCompactList(Obsolete, relative, m_qdb->getQmlTypesWithObsoleteMembers(), false, + QStringLiteral("")); + } else if (atom->string() == QLatin1String("functionindex")) { + generateFunctionIndex(relative); + } else if (atom->string() == QLatin1String("attributions")) { + generateAnnotatedList(relative, marker, m_qdb->getAttributions().values()); + } else if (atom->string() == QLatin1String("legalese")) { + generateLegaleseList(relative, marker); + } else if (atom->string() == QLatin1String("overviews")) { + generateList(relative, marker, "overviews"); + } else if (atom->string() == QLatin1String("cpp-modules")) { + generateList(relative, marker, "cpp-modules"); + } else if (atom->string() == QLatin1String("qml-modules")) { + generateList(relative, marker, "qml-modules"); + } else if (atom->string() == QLatin1String("namespaces")) { + generateAnnotatedList(relative, marker, m_qdb->getNamespaces().values()); + } else if (atom->string() == QLatin1String("related")) { + generateList(relative, marker, "related"); + } else { + const CollectionNode *cn = m_qdb->getCollectionNode(atom->string(), Node::Group); + if (cn) { + if (!generateGroupList(const_cast(cn))) + relative->location().warning( + QString("'\\generatelist %1' group is empty").arg(atom->string())); + } else { + relative->location().warning( + QString("'\\generatelist %1' no such group").arg(atom->string())); + } + } + break; + case Atom::SinceList: { + const NodeMultiMap &nsmap = m_qdb->getSinceMap(atom->string()); + if (nsmap.isEmpty()) + break; + + const NodeMultiMap &ncmap = m_qdb->getClassMap(atom->string()); + const NodeMultiMap &nqcmap = m_qdb->getQmlTypeMap(atom->string()); + + Sections sections(nsmap); + out() << "
    \n"; + const QList
    sinceSections = sections.sinceSections(); + for (const auto §ion : sinceSections) { + if (!section.members().isEmpty()) { + out() << "
  • " + << "" + << section.title() << "
  • \n"; + } + } + out() << "
\n"; + + int index = 0; + for (const auto §ion : sinceSections) { + if (!section.members().isEmpty()) { + out() << "

" + << protectEnc(section.title()) << "

\n"; + if (index == Sections::SinceClasses) + generateCompactList(Generic, relative, ncmap, false, QStringLiteral("Q")); + else if (index == Sections::SinceQmlTypes) + generateCompactList(Generic, relative, nqcmap, false, QStringLiteral("")); + else if (index == Sections::SinceMemberFunctions + || index == Sections::SinceQmlMethods + || index == Sections::SinceQmlProperties) { + + QMap parentmaps; + + const QList &members = section.members(); + for (const auto &member : members) { + QString parent_full_name = (*member).parent()->fullName(); + + auto parent_entry = parentmaps.find(parent_full_name); + if (parent_entry == parentmaps.end()) + parent_entry = parentmaps.insert(parent_full_name, NodeMultiMap()); + parent_entry->insert(member->name(), member); + } + + for (auto map = parentmaps.begin(); map != parentmaps.end(); ++map) { + NodeVector nv = map->values().toVector(); + auto parent = nv.front()->parent(); + + out() << ((index == Sections::SinceMemberFunctions) ? "

Class " : "

QML Type "); + + out() << ""; + QStringList pieces = parent->fullName().split("::"); + out() << protectEnc(pieces.last()); + out() << "" + << ":

\n"; + + generateSection(nv, relative, marker); + out() << "
"; + } + } else { + generateSection(section.members(), relative, marker); + } + } + ++index; + } + } break; + case Atom::BR: + out() << "
\n"; + break; + case Atom::HR: + out() << "
\n"; + break; + case Atom::Image: + case Atom::InlineImage: { + QString text; + if (atom->next() != nullptr) + text = atom->next()->string(); + if (atom->type() == Atom::Image) + out() << "

"; + + auto maybe_resolved_file{file_resolver.resolve(atom->string())}; + if (!maybe_resolved_file) { + // TODO: [uncentralized-admonition] + relative->location().warning( + QStringLiteral("Missing image: %1").arg(protectEnc(atom->string()))); + out() << "[Missing image " << protectEnc(atom->string()) + << "]"; + } else { + ResolvedFile file{*maybe_resolved_file}; + QString file_name{QFileInfo{file.get_path()}.fileName()}; + + // TODO: [operation-can-fail-making-the-output-incorrect] + // The operation of copying the file can fail, making the + // output refer to an image that does not exist. + // This should be fine as HTML will take care of managing + // the rendering of a missing image, but what html will + // render is in stark contrast with what we do when the + // image does not exist at all. + // It may be more correct to unify the behavior between + // the two either by considering images that cannot be + // copied as missing or letting the HTML renderer + // always taking care of the two cases. + // Do notice that effectively doing this might be + // unnecessary as extracting the output directory logic + // should ensure that a safe assumption for copy should be + // made at the API boundary. + + // TODO: [uncentralized-output-directory-structure] + Config::copyFile(relative->doc().location(), file.get_path(), file_name, outputDir() + QLatin1String("/images")); + + // TODO: [uncentralized-output-directory-structure] + out() << "\"""; + + // TODO: [uncentralized-output-directory-structure] + m_helpProjectWriter->addExtraFile("images/" + file_name); + setImageFileName(relative, "images/" + file_name); + } + + if (atom->type() == Atom::Image) + out() << "

"; + } break; + case Atom::ImageText: + break; + // Admonitions + case Atom::ImportantLeft: + case Atom::NoteLeft: + case Atom::WarningLeft: { + QString admonType = atom->typeString(); + // Remove 'Left' from atom type to get the admonition type + admonType.chop(4); + out() << "
\n" + << "

"; + out() << formattingLeftMap()[ATOM_FORMATTING_BOLD]; + out() << admonType << ": "; + out() << formattingRightMap()[ATOM_FORMATTING_BOLD]; + } break; + case Atom::ImportantRight: + case Atom::NoteRight: + case Atom::WarningRight: + out() << "

\n" + << "
\n"; + break; + case Atom::LegaleseLeft: + out() << "
"; + break; + case Atom::LegaleseRight: + out() << "
"; + break; + case Atom::LineBreak: + out() << "
"; + break; + case Atom::Link: + case Atom::NavLink: { + const Node *node = nullptr; + QString link = getLink(atom, relative, &node); + if (link.isEmpty() && (node != relative) && !noLinkErrors()) { + relative->doc().location().warning( + QStringLiteral("Can't link to '%1'").arg(atom->string())); + } + beginLink(link, nullptr, relative); + m_linkNode = node; + skipAhead = 1; + } break; + case Atom::ExampleFileLink: { + QString link = linkForExampleFile(atom->string()); + if (link.isEmpty() && !noLinkErrors()) + relative->doc().location().warning( + QStringLiteral("Can't link to '%1'").arg(atom->string())); + beginLink(link); + skipAhead = 1; + } break; + case Atom::ExampleImageLink: { + QString link = atom->string(); + if (link.isEmpty() && !noLinkErrors()) + relative->doc().location().warning( + QStringLiteral("Can't link to '%1'").arg(atom->string())); + link = "images/used-in-examples/" + link; + beginLink(link); + skipAhead = 1; + } break; + case Atom::LinkNode: { + const Node *node = CodeMarker::nodeForString(atom->string()); + beginLink(linkForNode(node, relative), node, relative); + skipAhead = 1; + } break; + case Atom::ListLeft: + if (in_para) { + out() << "

\n"; + in_para = false; + } + if (atom->string() == ATOM_LIST_BULLET) { + out() << "
    \n"; + } else if (atom->string() == ATOM_LIST_TAG) { + out() << "
    \n"; + } else if (atom->string() == ATOM_LIST_VALUE) { + out() << R"(
    )"; + m_threeColumnEnumValueTable = isThreeColumnEnumValueTable(atom); + if (m_threeColumnEnumValueTable) { + if (++m_numTableRows % 2 == 1) + out() << R"()"; + else + out() << R"()"; + + out() << ""; + + // If not in \enum topic, skip the value column + if (relative->isEnumType()) + out() << ""; + + out() << "\n"; + } else { + out() << "\n"; + } + } else { + QString olType; + if (atom->string() == ATOM_LIST_UPPERALPHA) { + olType = "A"; + } else if (atom->string() == ATOM_LIST_LOWERALPHA) { + olType = "a"; + } else if (atom->string() == ATOM_LIST_UPPERROMAN) { + olType = "I"; + } else if (atom->string() == ATOM_LIST_LOWERROMAN) { + olType = "i"; + } else { // (atom->string() == ATOM_LIST_NUMERIC) + olType = "1"; + } + + if (atom->next() != nullptr && atom->next()->string().toInt() > 1) { + out() << QString(R"(
      )") + .arg(olType, atom->next()->string()); + } else + out() << QString(R"(
        )").arg(olType); + } + break; + case Atom::ListItemNumber: + break; + case Atom::ListTagLeft: + if (atom->string() == ATOM_LIST_TAG) { + out() << "
        "; + } else { // (atom->string() == ATOM_LIST_VALUE) + std::pair pair = getAtomListValue(atom); + skipAhead = pair.second; + QString t = protectEnc(plainCode(marker->markedUpEnumValue(pair.first, relative))); + out() << "
    \n"; + } else { + out() << "\n"; + } + break; + case Atom::ListRight: + if (atom->string() == ATOM_LIST_BULLET) { + out() << "\n"; + } else if (atom->string() == ATOM_LIST_TAG) { + out() << "\n"; + } else if (atom->string() == ATOM_LIST_VALUE) { + out() << "
    ConstantValueDescription
    ConstantValue
    " << t << ""; + + if (relative->isEnumType()) { + out() << ""; + const auto *enume = static_cast(relative); + QString itemValue = enume->itemValue(atom->next()->string()); + if (itemValue.isEmpty()) + out() << '?'; + else + out() << "" << protectEnc(itemValue) << ""; + } + } + break; + case Atom::SinceTagRight: + case Atom::ListTagRight: + if (atom->string() == ATOM_LIST_TAG) + out() << "\n"; + break; + case Atom::ListItemLeft: + if (atom->string() == ATOM_LIST_TAG) { + out() << "
    "; + } else if (atom->string() == ATOM_LIST_VALUE) { + if (m_threeColumnEnumValueTable) { + out() << "
    "; + if (matchAhead(atom, Atom::ListItemRight)) + out() << " "; + } + } else { + out() << "
  • "; + } + if (matchAhead(atom, Atom::ParaLeft)) + skipAhead = 1; + break; + case Atom::ListItemRight: + if (atom->string() == ATOM_LIST_TAG) { + out() << "\n"; + } else if (atom->string() == ATOM_LIST_VALUE) { + out() << "
  • \n"; + } else { + out() << "\n"; + } + break; + case Atom::Nop: + break; + case Atom::ParaLeft: + out() << "

    "; + in_para = true; + break; + case Atom::ParaRight: + endLink(); + if (in_para) { + out() << "

    \n"; + in_para = false; + } + // if (!matchAhead(atom, Atom::ListItemRight) && !matchAhead(atom, Atom::TableItemRight)) + // out() << "

    \n"; + break; + case Atom::QuotationLeft: + out() << "
    "; + break; + case Atom::QuotationRight: + out() << "
    \n"; + break; + case Atom::RawString: + out() << atom->string(); + break; + case Atom::SectionLeft: + case Atom::SectionRight: + break; + case Atom::SectionHeadingLeft: { + int unit = atom->string().toInt() + hOffset(relative); + out() << ""; + m_inSectionHeading = true; + break; + } + case Atom::SectionHeadingRight: + out() << "string().toInt() + hOffset(relative)) + ">\n"; + m_inSectionHeading = false; + break; + case Atom::SidebarLeft: + Q_FALLTHROUGH(); + case Atom::SidebarRight: + break; + case Atom::String: + if (m_inLink && !m_inContents && !m_inSectionHeading) { + generateLink(atom); + } else { + out() << protectEnc(atom->string()); + } + break; + case Atom::TableLeft: { + std::pair pair = getTableWidthAttr(atom); + QString attr = pair.second; + QString width = pair.first; + + if (in_para) { + out() << "

    \n"; + in_para = false; + } + + out() << R"(
    \n "; + m_numTableRows = 0; + } break; + case Atom::TableRight: + out() << "
    \n"; + break; + case Atom::TableHeaderLeft: + out() << ""; + m_inTableHeader = true; + break; + case Atom::TableHeaderRight: + out() << ""; + if (matchAhead(atom, Atom::TableHeaderLeft)) { + skipAhead = 1; + out() << "\n"; + } else { + out() << "\n"; + m_inTableHeader = false; + } + break; + case Atom::TableRowLeft: + if (!atom->string().isEmpty()) + out() << "string() << '>'; + else if (++m_numTableRows % 2 == 1) + out() << R"()"; + else + out() << R"()"; + break; + case Atom::TableRowRight: + out() << "\n"; + break; + case Atom::TableItemLeft: { + if (m_inTableHeader) + out() << "count(); ++i) { + if (i > 0) + out() << ' '; + const QString &p = atom->string(i); + if (p.contains('=')) { + out() << p; + } else { + QStringList spans = p.split(QLatin1Char(',')); + if (spans.size() == 2) { + if (spans.at(0) != "1") + out() << " colspan=\"" << spans.at(0) << '"'; + if (spans.at(1) != "1") + out() << " rowspan=\"" << spans.at(1) << '"'; + } + } + } + out() << '>'; + if (matchAhead(atom, Atom::ParaLeft)) + skipAhead = 1; + } break; + case Atom::TableItemRight: + if (m_inTableHeader) + out() << ""; + else { + out() << ""; + } + if (matchAhead(atom, Atom::ParaLeft)) + skipAhead = 1; + break; + case Atom::TableOfContents: + Q_FALLTHROUGH(); + case Atom::Keyword: + break; + case Atom::Target: + out() << "string()) << "\">"; + break; + case Atom::UnhandledFormat: + out() << "<Missing HTML>"; + break; + case Atom::UnknownCommand: + out() << R"(\)" << protectEnc(atom->string()) << ""; + break; + case Atom::QmlText: + case Atom::EndQmlText: + // don't do anything with these. They are just tags. + break; + case Atom::CodeQuoteArgument: + case Atom::CodeQuoteCommand: + case Atom::SnippetCommand: + case Atom::SnippetIdentifier: + case Atom::SnippetLocation: + // no HTML output (ignore) + break; + default: + unknownAtom(atom); + } + return skipAhead; +} + +/*! + Generate a reference page for the C++ class, namespace, or + header file documented in \a node using the code \a marker + provided. + */ +void HtmlGenerator::generateCppReferencePage(Aggregate *aggregate, CodeMarker *marker) +{ + QString title; + QString rawTitle; + QString fullTitle; + NamespaceNode *ns = nullptr; + SectionVector *summarySections = nullptr; + SectionVector *detailsSections = nullptr; + + Sections sections(aggregate); + QString word = aggregate->typeWord(true); + QString templateDecl = aggregate->templateDecl(); + if (aggregate->isNamespace()) { + rawTitle = aggregate->plainName(); + fullTitle = aggregate->plainFullName(); + title = rawTitle + " Namespace"; + ns = static_cast(aggregate); + summarySections = §ions.stdSummarySections(); + detailsSections = §ions.stdDetailsSections(); + } else if (aggregate->isClassNode()) { + rawTitle = aggregate->plainName(); + fullTitle = aggregate->plainFullName(); + title = rawTitle + QLatin1Char(' ') + word; + summarySections = §ions.stdCppClassSummarySections(); + detailsSections = §ions.stdCppClassDetailsSections(); + } else if (aggregate->isHeader()) { + title = fullTitle = rawTitle = aggregate->fullTitle(); + summarySections = §ions.stdSummarySections(); + detailsSections = §ions.stdDetailsSections(); + } + + Text subtitleText; + if (rawTitle != fullTitle || !templateDecl.isEmpty()) { + if (aggregate->isClassNode()) { + if (!templateDecl.isEmpty()) + subtitleText << templateDecl + QLatin1Char(' '); + subtitleText << aggregate->typeWord(false) + QLatin1Char(' '); + const QStringList ancestors = fullTitle.split(QLatin1String("::")); + for (const auto &a : ancestors) { + if (a == rawTitle) { + subtitleText << a; + break; + } else { + subtitleText << Atom(Atom::AutoLink, a) << "::"; + } + } + } else { + subtitleText << fullTitle; + } + } + + generateHeader(title, aggregate, marker); + generateTableOfContents(aggregate, marker, summarySections); + generateTitle(title, subtitleText, SmallSubTitle, aggregate, marker); + if (ns && !ns->hasDoc() && ns->docNode()) { + NamespaceNode *NS = ns->docNode(); + Text brief; + brief << "The " << ns->name() << " namespace includes the following elements from module " + << ns->tree()->camelCaseModuleName() << ". The full namespace is " + << "documented in module " << NS->tree()->camelCaseModuleName() + << Atom(Atom::LinkNode, CodeMarker::stringForNode(NS)) + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) << Atom(Atom::String, " here.") + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + out() << "

    "; + generateText(brief, ns, marker); + out() << "

    \n"; + } else + generateBrief(aggregate, marker); + + const auto parentIsClass = aggregate->parent()->isClassNode(); + + if (!parentIsClass) + generateRequisites(aggregate, marker); + generateStatus(aggregate, marker); + if (parentIsClass) + generateSince(aggregate, marker); + + QString membersLink = generateAllMembersFile(Sections::allMembersSection(), marker); + if (!membersLink.isEmpty()) { + openUnorderedList(); + out() << "
  • " + << "List of all members, including inherited members
  • \n"; + } + QString obsoleteLink = generateObsoleteMembersFile(sections, marker); + if (!obsoleteLink.isEmpty()) { + openUnorderedList(); + out() << "
  • " + << "Deprecated members
  • \n"; + } + closeUnorderedList(); + generateThreadSafeness(aggregate, marker); + + bool needOtherSection = false; + + for (const auto §ion : std::as_const(*summarySections)) { + if (section.members().isEmpty() && section.reimplementedMembers().isEmpty()) { + if (!section.inheritedMembers().isEmpty()) + needOtherSection = true; + } else { + if (!section.members().isEmpty()) { + QString ref = registerRef(section.title().toLower()); + out() << "

    " << protectEnc(section.title()) << "

    \n"; + generateSection(section.members(), aggregate, marker); + } + if (!section.reimplementedMembers().isEmpty()) { + QString name = QString("Reimplemented ") + section.title(); + QString ref = registerRef(name.toLower()); + out() << "

    " << protectEnc(name) << "

    \n"; + generateSection(section.reimplementedMembers(), aggregate, marker); + } + + if (!section.inheritedMembers().isEmpty()) { + out() << "
      \n"; + generateSectionInheritedList(section, aggregate); + out() << "
    \n"; + } + } + } + + if (needOtherSection) { + out() << "

    Additional Inherited Members

    \n" + "
      \n"; + + for (const auto §ion : std::as_const(*summarySections)) { + if (section.members().isEmpty() && !section.inheritedMembers().isEmpty()) + generateSectionInheritedList(section, aggregate); + } + out() << "
    \n"; + } + + if (aggregate->doc().isEmpty()) { + QString command = "documentation"; + if (aggregate->isClassNode()) + command = R"('\class' comment)"; + if (!ns || ns->isDocumentedHere()) { + aggregate->location().warning( + QStringLiteral("No %1 for '%2'").arg(command, aggregate->plainSignature())); + } + } else { + generateExtractionMark(aggregate, DetailedDescriptionMark); + out() << "
    \n" + << "

    " + << "Detailed Description" + << "

    \n"; + generateBody(aggregate, marker); + out() << "
    \n"; + generateAlsoList(aggregate, marker); + generateMaintainerList(aggregate, marker); + generateExtractionMark(aggregate, EndMark); + } + + for (const auto §ion : std::as_const(*detailsSections)) { + bool headerGenerated = false; + if (section.isEmpty()) + continue; + + const QList &members = section.members(); + for (const auto &member : members) { + if (member->access() == Access::Private) // ### check necessary? + continue; + if (!headerGenerated) { + if (!section.divClass().isEmpty()) + out() << "
    \n"; + out() << "

    " << protectEnc(section.title()) << "

    \n"; + headerGenerated = true; + } + if (!member->isClassNode()) + generateDetailedMember(member, aggregate, marker); + else { + out() << "

    class "; + generateFullName(member, aggregate); + out() << "

    "; + generateBrief(member, marker, aggregate); + } + + QStringList names; + names << member->name(); + if (member->isFunction()) { + const auto *func = reinterpret_cast(member); + if (func->isSomeCtor() || func->isDtor() || func->overloadNumber() != 0) + names.clear(); + } else if (member->isProperty()) { + const auto *prop = reinterpret_cast(member); + if (!prop->getters().isEmpty() && !names.contains(prop->getters().first()->name())) + names << prop->getters().first()->name(); + if (!prop->setters().isEmpty()) + names << prop->setters().first()->name(); + if (!prop->resetters().isEmpty()) + names << prop->resetters().first()->name(); + if (!prop->notifiers().isEmpty()) + names << prop->notifiers().first()->name(); + } else if (member->isEnumType()) { + const auto *enume = reinterpret_cast(member); + if (enume->flagsType()) + names << enume->flagsType()->name(); + const auto &enumItemNameList = enume->doc().enumItemNames(); + const auto &omitEnumItemNameList = enume->doc().omitEnumItemNames(); + const auto items = QSet(enumItemNameList.cbegin(), enumItemNameList.cend()) + - QSet(omitEnumItemNameList.cbegin(), omitEnumItemNameList.cend()); + for (const QString &enumName : items) { + names << plainCode(marker->markedUpEnumValue(enumName, enume)); + } + } + } + if (headerGenerated && !section.divClass().isEmpty()) + out() << "
    \n"; + } + generateFooter(aggregate); +} + +void HtmlGenerator::generateProxyPage(Aggregate *aggregate, CodeMarker *marker) +{ + Q_ASSERT(aggregate->isProxyNode()); + + QString title; + QString rawTitle; + QString fullTitle; + Text subtitleText; + SectionVector *summarySections = nullptr; + SectionVector *detailsSections = nullptr; + + Sections sections(aggregate); + rawTitle = aggregate->plainName(); + fullTitle = aggregate->plainFullName(); + title = rawTitle + " Proxy Page"; + summarySections = §ions.stdSummarySections(); + detailsSections = §ions.stdDetailsSections(); + generateHeader(title, aggregate, marker); + generateTitle(title, subtitleText, SmallSubTitle, aggregate, marker); + generateBrief(aggregate, marker); + for (auto it = summarySections->constBegin(); it != summarySections->constEnd(); ++it) { + if (!it->members().isEmpty()) { + QString ref = registerRef(it->title().toLower()); + out() << "

    " << protectEnc(it->title()) << "

    \n"; + generateSection(it->members(), aggregate, marker); + } + } + + if (!aggregate->doc().isEmpty()) { + generateExtractionMark(aggregate, DetailedDescriptionMark); + out() << "
    \n" + << "

    " + << "Detailed Description" + << "

    \n"; + generateBody(aggregate, marker); + out() << "
    \n"; + generateAlsoList(aggregate, marker); + generateMaintainerList(aggregate, marker); + generateExtractionMark(aggregate, EndMark); + } + + for (const auto §ion : std::as_const(*detailsSections)) { + if (section.isEmpty()) + continue; + + if (!section.divClass().isEmpty()) + out() << "
    \n"; + out() << "

    " << protectEnc(section.title()) << "

    \n"; + + const QList &members = section.members(); + for (const auto &member : members) { + if (!member->isPrivate()) { // ### check necessary? + if (!member->isClassNode()) + generateDetailedMember(member, aggregate, marker); + else { + out() << "

    class "; + generateFullName(member, aggregate); + out() << "

    "; + generateBrief(member, marker, aggregate); + } + + QStringList names; + names << member->name(); + if (member->isFunction()) { + const auto *func = reinterpret_cast(member); + if (func->isSomeCtor() || func->isDtor() || func->overloadNumber() != 0) + names.clear(); + } else if (member->isEnumType()) { + const auto *enume = reinterpret_cast(member); + if (enume->flagsType()) + names << enume->flagsType()->name(); + const auto &enumItemNameList = enume->doc().enumItemNames(); + const auto &omitEnumItemNameList = enume->doc().omitEnumItemNames(); + const auto items = + QSet(enumItemNameList.cbegin(), enumItemNameList.cend()) + - QSet(omitEnumItemNameList.cbegin(), + omitEnumItemNameList.cend()); + for (const QString &enumName : items) + names << plainCode(marker->markedUpEnumValue(enumName, enume)); + } + } + } + if (!section.divClass().isEmpty()) + out() << "
    \n"; + } + generateFooter(aggregate); +} + +/*! + Generate the HTML page for a QML type. \qcn is the QML type. + \marker is the code markeup object. + */ +void HtmlGenerator::generateQmlTypePage(QmlTypeNode *qcn, CodeMarker *marker) +{ + Generator::setQmlTypeContext(qcn); + SubTitleSize subTitleSize = LargeSubTitle; + QString htmlTitle = qcn->fullTitle(); + if (qcn->isJsType()) + htmlTitle += " JavaScript Type"; + else + htmlTitle += " QML Type"; + + generateHeader(htmlTitle, qcn, marker); + Sections sections(qcn); + generateTableOfContents(qcn, marker, §ions.stdQmlTypeSummarySections()); + marker = CodeMarker::markerForLanguage(QLatin1String("QML")); + generateTitle(htmlTitle, Text() << qcn->subtitle(), subTitleSize, qcn, marker); + generateBrief(qcn, marker); + generateQmlRequisites(qcn, marker); + + QString allQmlMembersLink = generateAllQmlMembersFile(sections, marker); + QString obsoleteLink = generateObsoleteQmlMembersFile(sections, marker); + if (!allQmlMembersLink.isEmpty() || !obsoleteLink.isEmpty()) { + out() << "\n"; + } + + const QList
    &stdQmlTypeSummarySections = sections.stdQmlTypeSummarySections(); + for (const auto §ion : stdQmlTypeSummarySections) { + if (!section.isEmpty()) { + QString ref = registerRef(section.title().toLower()); + out() << "

    " << protectEnc(section.title()) << "

    \n"; + generateQmlSummary(section.members(), qcn, marker); + } + } + + generateExtractionMark(qcn, DetailedDescriptionMark); + out() << "

    " + << "Detailed Description" + << "

    \n"; + generateBody(qcn, marker); + ClassNode *cn = qcn->classNode(); + if (cn) + generateQmlText(cn->doc().body(), cn, marker, qcn->name()); + generateAlsoList(qcn, marker); + generateExtractionMark(qcn, EndMark); + + const QList
    &stdQmlTypeDetailsSections = sections.stdQmlTypeDetailsSections(); + for (const auto §ion : stdQmlTypeDetailsSections) { + if (!section.isEmpty()) { + out() << "

    " << protectEnc(section.title()) << "

    \n"; + const QList &members = section.members(); + for (const auto member : members) { + generateDetailedQmlMember(member, qcn, marker); + out() << "
    \n"; + } + } + } + generateFooter(qcn); + Generator::setQmlTypeContext(nullptr); +} + +/*! + Generate the HTML page for the QML basic type represented + by the QML basic type node \a qbtn. + */ +void HtmlGenerator::generateQmlBasicTypePage(QmlValueTypeNode *qbtn, CodeMarker *marker) +{ + SubTitleSize subTitleSize = LargeSubTitle; + QString htmlTitle = qbtn->fullTitle(); + if (qbtn->isJsType()) + htmlTitle += " JavaScript Basic Type"; + else + htmlTitle += " QML Basic Type"; + + marker = CodeMarker::markerForLanguage(QLatin1String("QML")); + + generateHeader(htmlTitle, qbtn, marker); + Sections sections(qbtn); + generateTableOfContents(qbtn, marker, §ions.stdQmlTypeSummarySections()); + generateTitle(htmlTitle, Text() << qbtn->subtitle(), subTitleSize, qbtn, marker); + generateBrief(qbtn, marker); + + const QList
    &stdQmlTypeSummarySections = sections.stdQmlTypeSummarySections(); + for (const auto §ion : stdQmlTypeSummarySections) { + if (!section.isEmpty()) { + const QString &ref = registerRef(section.title().toLower()); + out() << "

    " << protectEnc(section.title()) << "

    \n"; + generateQmlSummary(section.members(), qbtn, marker); + } + } + + generateExtractionMark(qbtn, DetailedDescriptionMark); + out() << R"(
    \n"; + + generateBody(qbtn, marker); + out() << "
    \n"; + generateAlsoList(qbtn, marker); + generateExtractionMark(qbtn, EndMark); + + const QList
    &stdQmlTypeDetailsSections = sections.stdQmlTypeDetailsSections(); + for (const auto §ion : stdQmlTypeDetailsSections) { + if (!section.isEmpty()) { + out() << "

    " << protectEnc(section.title()) << "

    \n"; + const QList &members = section.members(); + for (const auto member : members) { + generateDetailedQmlMember(member, qbtn, marker); + out() << "
    \n"; + } + } + } + generateFooter(qbtn); +} + +/*! + Generate the HTML page for an entity that doesn't map + to any underlying parsable C++, QML, or Javascript element. + */ +void HtmlGenerator::generatePageNode(PageNode *pn, CodeMarker *marker) +{ + SubTitleSize subTitleSize = LargeSubTitle; + QString fullTitle = pn->fullTitle(); + + generateHeader(fullTitle, pn, marker); + /* + Generate the TOC for the new doc format. + Don't generate a TOC for the home page. + */ + if ((pn->name() != QLatin1String("index.html"))) + generateTableOfContents(pn, marker, nullptr); + + generateTitle(fullTitle, Text() << pn->subtitle(), subTitleSize, pn, marker); + if (pn->isExample()) { + generateBrief(pn, marker, nullptr, false); + } + + generateExtractionMark(pn, DetailedDescriptionMark); + out() << R"(
    \n"; + + generateBody(pn, marker); + out() << "
    \n"; + generateAlsoList(pn, marker); + generateExtractionMark(pn, EndMark); + + generateFooter(pn); +} + +/*! + Generate the HTML page for a group, module, or QML module. + */ +void HtmlGenerator::generateCollectionNode(CollectionNode *cn, CodeMarker *marker) +{ + SubTitleSize subTitleSize = LargeSubTitle; + QString fullTitle = cn->fullTitle(); + QString ref; + + generateHeader(fullTitle, cn, marker); + generateTableOfContents(cn, marker, nullptr); + generateTitle(fullTitle, Text() << cn->subtitle(), subTitleSize, cn, marker); + + // Generate brief for C++ modules, status for all modules. + if (cn->genus() != Node::DOC && cn->genus() != Node::DontCare) { + if (cn->isModule()) + generateBrief(cn, marker); + generateStatus(cn, marker); + generateSince(cn, marker); + } + + if (cn->isModule()) { + if (!cn->noAutoList()) { + NodeMap nmm; + cn->getMemberNamespaces(nmm); + if (!nmm.isEmpty()) { + ref = registerRef("namespaces"); + out() << "

    Namespaces

    \n"; + generateAnnotatedList(cn, marker, nmm.values()); + } + nmm.clear(); + cn->getMemberClasses(nmm); + if (!nmm.isEmpty()) { + ref = registerRef("classes"); + out() << "

    Classes

    \n"; + generateAnnotatedList(cn, marker, nmm.values()); + } + } + } + + if (cn->isModule() && !cn->doc().briefText().isEmpty()) { + generateExtractionMark(cn, DetailedDescriptionMark); + ref = registerRef("details"); + out() << "
    \n"; + out() << "

    " + << "Detailed Description" + << "

    \n"; + } else { + generateExtractionMark(cn, DetailedDescriptionMark); + out() << R"(
    \n"; + } + + generateBody(cn, marker); + out() << "
    \n"; + generateAlsoList(cn, marker); + generateExtractionMark(cn, EndMark); + + if (!cn->noAutoList()) { + if (cn->isGroup() || cn->isQmlModule() || cn->isJsModule()) + generateAnnotatedList(cn, marker, cn->members()); + } + generateFooter(cn); +} + +/*! + Generate the HTML page for a generic collection. This is usually + a collection of C++ elements that are related to an element in + a different module. + */ +void HtmlGenerator::generateGenericCollectionPage(CollectionNode *cn, CodeMarker *marker) +{ + SubTitleSize subTitleSize = LargeSubTitle; + QString fullTitle = cn->name(); + + generateHeader(fullTitle, cn, marker); + generateTitle(fullTitle, Text() << cn->subtitle(), subTitleSize, cn, marker); + + Text brief; + brief << "Each function or type documented here is related to a class or " + << "namespace that is documented in a different module. The reference " + << "page for that class or namespace will link to the function or type " + << "on this page."; + out() << "

    "; + generateText(brief, cn, marker); + out() << "

    \n"; + + const QList members = cn->members(); + for (const auto &member : members) + generateDetailedMember(member, cn, marker); + + generateFooter(cn); +} + +/*! + Returns "html" for this subclass of Generator. + */ +QString HtmlGenerator::fileExtension() const +{ + return "html"; +} + +/*! + Output a navigation bar (breadcrumbs) for the html file. + For API reference pages, items for the navigation bar are (in order): + \table + \header \li Item \li Related configuration variable \li Notes + \row \li home \li navigation.homepage \li e.g. 'Qt 6.2' + \row \li landing \li navigation.landingpage \li Module landing page + \row \li types \li navigation.cppclassespage (C++)\br + navigation.qmltypespage (QML) \li Types only + \row \li module \li n/a (automatic) \li Module page if different + from previous item + \row \li page \li n/a \li Current page title + \endtable + + For other page types (page nodes) the navigation bar is constructed from home + page, landing page, and the chain of Node::navigationParent() items (if one exists). + This chain is constructed from the \\list structure on a page or pages defined in + \c navigation.toctitles configuration variable. + + Finally, if no other navigation data exists for a page but it is a member of a + single group (using \\ingroup), add that group page to the navigation bar. + */ +void HtmlGenerator::generateNavigationBar(const QString &title, const Node *node, + CodeMarker *marker, const QString &buildversion, + bool tableItems) +{ + if (m_noNavigationBar || node == nullptr) + return; + + Text navigationbar; + + // Set list item types based on the navigation bar type + // TODO: Do we still need table items? + Atom::AtomType itemLeft = tableItems ? Atom::TableItemLeft : Atom::ListItemLeft; + Atom::AtomType itemRight = tableItems ? Atom::TableItemRight : Atom::ListItemRight; + + auto addNavItem = [&](const QString &link, const QString &title) { + navigationbar << Atom(itemLeft) << Atom(Atom::NavLink, link) + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) + << Atom(Atom::String, title) + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK) << Atom(itemRight); + }; + + if (m_hometitle == title) + return; + if (!m_homepage.isEmpty()) + addNavItem(m_homepage, m_hometitle); + if (!m_landingpage.isEmpty() && m_landingtitle != title) + addNavItem(m_landingpage, m_landingtitle); + + if (node->isClassNode()) { + if (!m_cppclassespage.isEmpty() && !m_cppclassestitle.isEmpty()) + addNavItem(m_cppclassespage, m_cppclassestitle); + if (!node->physicalModuleName().isEmpty()) { + // TODO: Abusing addModule() which is just a wrapper for private method findModule() + auto moduleNode = m_qdb->addModule(node->physicalModuleName()); + if (moduleNode && moduleNode->title() != m_cppclassespage) + addNavItem(moduleNode->name(), moduleNode->name()); + } + navigationbar << Atom(itemLeft) << Atom(Atom::String, node->name()) << Atom(itemRight); + } else if (node->isQmlType() || node->isQmlBasicType() || node->isJsType() + || node->isJsBasicType()) { + if (!m_qmltypespage.isEmpty() && !m_qmltypestitle.isEmpty()) + addNavItem(m_qmltypespage, m_qmltypestitle); + if (node->logicalModule() && node->logicalModule()->title() != m_qmltypespage) + addNavItem(node->logicalModule()->name(), node->logicalModule()->name()); + navigationbar << Atom(itemLeft) << Atom(Atom::String, node->name()) << Atom(itemRight); + } else { + if (node->isPageNode()) { + auto currentNode = node; + std::deque navNodes; + // Cutoff at 16 items in case there's a circular dependency + qsizetype navItems = 0; + while (currentNode->navigationParent() && ++navItems < 16) { + if (std::find(navNodes.cbegin(), navNodes.cend(), + currentNode->navigationParent()) == navNodes.cend()) + navNodes.push_front(currentNode->navigationParent()); + currentNode = currentNode->navigationParent(); + } + // If no nav. parent was found but the page is in a single group, use that + if (navNodes.empty()) { + QStringList groups = static_cast(node)->groupNames(); + if (groups.size() == 1) { + const Node *groupNode = + m_qdb->findNodeByNameAndType(QStringList(groups[0]), &Node::isGroup); + if (groupNode && !groupNode->title().isEmpty()) + navNodes.push_front(groupNode); + } + } + while (!navNodes.empty()) { + if (navNodes.front()->isPageNode()) + addNavItem(navNodes.front()->name(), navNodes.front()->title()); + navNodes.pop_front(); + } + } + if (!navigationbar.isEmpty()) { + navigationbar << Atom(itemLeft) << Atom(Atom::String, title) << Atom(itemRight); + } + } + + generateText(navigationbar, node, marker); + + if (buildversion.isEmpty()) + return; + + navigationbar.clear(); + + if (tableItems) { + out() << "\n" + << R"(\n"; + else + out() << "\n"; +} + +void HtmlGenerator::generateHeader(const QString &title, const Node *node, CodeMarker *marker) +{ + out() << "\n"; + out() << QString("\n").arg(naturalLanguage); + out() << "\n"; + out() << " \n"; + if (node && !node->doc().location().isEmpty()) + out() << "\n"; + + // determine the rest of the element content: "title | titleSuffix version" + QString titleSuffix; + if (!m_landingtitle.isEmpty()) { + // for normal pages: "title | landingtitle version" + titleSuffix = m_landingtitle; + } else if (!m_hometitle.isEmpty()) { + // for pages that set the homepage title but not landing page title: + // "title | hometitle version" + if (title != m_hometitle) + titleSuffix = m_hometitle; + } else if (!m_project.isEmpty()) { + // for projects outside of Qt or Qt 5: "title | project version" + if (title != m_project) + titleSuffix = m_project; + } else + // default: "title | Qt version" + titleSuffix = QLatin1String("Qt "); + + if (title == titleSuffix) + titleSuffix.clear(); + + QString divider; + if (!titleSuffix.isEmpty() && !title.isEmpty()) + divider = QLatin1String(" | "); + + // Generating page title + out() << " <title>" << protectEnc(title) << divider << titleSuffix; + + // append a full version to the suffix if neither suffix nor title + // include (a prefix of) version information + QVersionNumber projectVersion = QVersionNumber::fromString(m_qdb->version()); + if (!projectVersion.isNull()) { + QVersionNumber titleVersion; + QRegularExpression re(QLatin1String(R"(\d+\.\d+)")); + const QString &versionedTitle = titleSuffix.isEmpty() ? title : titleSuffix; + auto match = re.match(versionedTitle); + if (match.hasMatch()) + titleVersion = QVersionNumber::fromString(match.captured()); + if (titleVersion.isNull() || !titleVersion.isPrefixOf(projectVersion)) + out() << QLatin1Char(' ') << projectVersion.toString(); + } + out() << "\n"; + + // Include style sheet and script links. + out() << m_headerStyles; + out() << m_headerScripts; + if (m_endHeader.isEmpty()) + out() << "\n\n"; + else + out() << m_endHeader; + + out() << QString(m_postHeader).replace("\\" + COMMAND_VERSION, m_qdb->version()); + bool usingTable = m_postHeader.trimmed().endsWith(QLatin1String("")); + generateNavigationBar(title, node, marker, m_buildversion, usingTable); + out() << QString(m_postPostHeader).replace("\\" + COMMAND_VERSION, m_qdb->version()); + + m_navigationLinks.clear(); + refMap.clear(); + + if (node && !node->links().empty()) { + std::pair linkPair; + std::pair anchorPair; + const Node *linkNode; + bool useSeparator = false; + + if (node->links().contains(Node::PreviousLink)) { + linkPair = node->links()[Node::PreviousLink]; + linkNode = m_qdb->findNodeForTarget(linkPair.first, node); + if (linkNode == nullptr && !noLinkErrors()) + node->doc().location().warning( + QStringLiteral("Cannot link to '%1'").arg(linkPair.first)); + if (linkNode == nullptr || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + + out() << R"( \n"; + + m_navigationLinks += R"("; + if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) + m_navigationLinks += protect(anchorPair.second); + else + m_navigationLinks += protect(linkPair.second); + m_navigationLinks += "\n"; + useSeparator = !m_navigationSeparator.isEmpty(); + } + if (node->links().contains(Node::NextLink)) { + linkPair = node->links()[Node::NextLink]; + linkNode = m_qdb->findNodeForTarget(linkPair.first, node); + if (linkNode == nullptr && !noLinkErrors()) + node->doc().location().warning( + QStringLiteral("Cannot link to '%1'").arg(linkPair.first)); + if (linkNode == nullptr || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + + out() << R"( \n"; + + if (useSeparator) + m_navigationLinks += m_navigationSeparator; + + m_navigationLinks += R"("; + if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) + m_navigationLinks += protect(anchorPair.second); + else + m_navigationLinks += protect(linkPair.second); + m_navigationLinks += "\n"; + } + if (node->links().contains(Node::StartLink)) { + linkPair = node->links()[Node::StartLink]; + linkNode = m_qdb->findNodeForTarget(linkPair.first, node); + if (linkNode == nullptr && !noLinkErrors()) + node->doc().location().warning( + QStringLiteral("Cannot link to '%1'").arg(linkPair.first)); + if (linkNode == nullptr || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + out() << R"( \n"; + } + } + + if (node && !node->links().empty()) + out() << "

    \n" << m_navigationLinks << "

    \n"; +} + +void HtmlGenerator::generateTitle(const QString &title, const Text &subtitle, + SubTitleSize subTitleSize, const Node *relative, + CodeMarker *marker) +{ + out() << QString(m_prologue).replace("\\" + COMMAND_VERSION, m_qdb->version()); + if (!title.isEmpty()) + out() << "

    " << protectEnc(title) << "

    \n"; + if (!subtitle.isEmpty()) { + out() << ""; + else + out() << " class=\"subtitle\">"; + generateText(subtitle, relative, marker); + out() << "\n"; + } +} + +void HtmlGenerator::generateFooter(const Node *node) +{ + if (node && !node->links().empty()) + out() << "

    \n" << m_navigationLinks << "

    \n"; + + out() << QString(m_footer).replace("\\" + COMMAND_VERSION, m_qdb->version()) + << QString(m_address).replace("\\" + COMMAND_VERSION, m_qdb->version()); + + out() << "\n"; + out() << "\n"; +} + +/*! +Lists the required imports and includes in a table. +The number of rows is known. +*/ +void HtmlGenerator::generateRequisites(Aggregate *aggregate, CodeMarker *marker) +{ + QMap requisites; + Text text; + + const QString headerText = "Header"; + const QString sinceText = "Since"; + const QString inheritedBytext = "Inherited By"; + const QString inheritsText = "Inherits"; + const QString instantiatedByText = "Instantiated By"; + const QString qtVariableText = "qmake"; + const QString cmakeText = "CMake"; + + // The order of the requisites matter + const QStringList requisiteorder { headerText, cmakeText, qtVariableText, sinceText, + instantiatedByText, inheritsText, inheritedBytext }; + + addIncludeFilesToMap(aggregate, marker, requisites, &text, headerText); + addSinceToMap(aggregate, requisites, &text, sinceText); + + if (aggregate->isClassNode() || aggregate->isNamespace()) { + addCMakeInfoToMap(aggregate, requisites, &text, cmakeText); + addQtVariableToMap(aggregate, requisites, &text, qtVariableText); + } + + if (aggregate->isClassNode()) { + auto *classe = dynamic_cast(aggregate); + if (classe->qmlElement() != nullptr && !classe->isInternal()) + addInstantiatedByToMap(requisites, &text, instantiatedByText, classe); + + addInheritsToMap(requisites, &text, inheritsText, classe); + addInheritedByToMap(requisites, &text, inheritedBytext, classe); + } + + if (!requisites.isEmpty()) { + // generate the table + generateTheTable(requisiteorder, requisites, headerText, aggregate, marker); + } +} + +/*! + * \internal + */ +void HtmlGenerator::generateTheTable(const QStringList &requisiteOrder, + const QMap &requisites, + const QString &headerText, const Aggregate *aggregate, + CodeMarker *marker) +{ + out() << "
    )"; + } else { + out() << "
  • "; + } + + // Link buildversion string to navigation.landingpage + if (!m_landingpage.isEmpty() && m_landingtitle != title) { + navigationbar << Atom(Atom::NavLink, m_landingpage) + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) + << Atom(Atom::String, buildversion) + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + generateText(navigationbar, node, marker); + } else { + out() << buildversion; + } + if (tableItems) + out() << "
  • \n"; + + for (auto it = requisiteOrder.constBegin(); it != requisiteOrder.constEnd(); ++it) { + + if (requisites.contains(*it)) { + out() << "" + << ""; + } + } + out() << "
    " << *it + << ":" + " "; + + if (*it == headerText) + out() << requisites.value(*it).toString(); + else + generateText(requisites.value(*it), aggregate, marker); + out() << "
    \n"; +} + +/*! + * \internal + * Adds inherited by information to the map. + */ +void HtmlGenerator::addInheritedByToMap(QMap &requisites, Text *text, + const QString &inheritedBytext, ClassNode *classe) +{ + if (!classe->derivedClasses().isEmpty()) { + text->clear(); + *text << Atom::ParaLeft; + int count = appendSortedNames(*text, classe, classe->derivedClasses()); + *text << Atom::ParaRight; + if (count > 0) + requisites.insert(inheritedBytext, *text); + } +} + +/*! + * \internal + * Adds base classes to the map. + */ +void HtmlGenerator::addInheritsToMap(QMap &requisites, Text *text, + const QString &inheritsText, ClassNode *classe) +{ + if (!classe->baseClasses().isEmpty()) { + int index = 0; + text->clear(); + const auto baseClasses = classe->baseClasses(); + for (const auto &cls : baseClasses) { + if (cls.m_node) { + appendFullName(*text, cls.m_node, classe); + + if (cls.m_access == Access::Protected) { + *text << " (protected)"; + } else if (cls.m_access == Access::Private) { + *text << " (private)"; + } + *text << Utilities::comma(index++, classe->baseClasses().size()); + } + } + *text << Atom::ParaRight; + if (index > 0) + requisites.insert(inheritsText, *text); + } +} + +/*! + * \internal + * Add the instantiated by information to the map. + */ +void HtmlGenerator::addInstantiatedByToMap(QMap &requisites, Text *text, + const QString &instantiatedByText, + ClassNode *classe) const +{ + if (text != nullptr) { + text->clear(); + *text << Atom(Atom::LinkNode, CodeMarker::stringForNode(classe->qmlElement())) + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) + << Atom(Atom::String, classe->qmlElement()->name()) + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + requisites.insert(instantiatedByText, *text); + } +} + +/*! + * \internal + * Adds the CMake package and link library information to the map. + */ +void HtmlGenerator::addCMakeInfoToMap(const Aggregate *aggregate, QMap &requisites, + Text *text, const QString &CMakeInfo) const +{ + if (!aggregate->physicalModuleName().isEmpty() && text != nullptr) { + const CollectionNode *cn = + m_qdb->getCollectionNode(aggregate->physicalModuleName(), Node::Module); + if (cn && !cn->qtCMakeComponent().isEmpty()) { + text->clear(); + const QString qtComponent = "Qt" + QString::number(QT_VERSION_MAJOR); + const QString findPackageText = "find_package(" + qtComponent + " REQUIRED COMPONENTS " + + cn->qtCMakeComponent() + ")"; + const QString targetLinkLibrariesText = "target_link_libraries(mytarget PRIVATE " + + qtComponent + "::" + cn->qtCMakeComponent() + ")"; + const Atom lineBreak = Atom(Atom::RawString, "
    \n"); + *text << findPackageText << lineBreak << targetLinkLibrariesText; + requisites.insert(CMakeInfo, *text); + } + } +} + +/*! + * \internal + * Adds the Qt variable (from the \\qtvariable command) to the map. + */ +void HtmlGenerator::addQtVariableToMap(const Aggregate *aggregate, QMap &requisites, + Text *text, const QString &qtVariableText) const +{ + if (!aggregate->physicalModuleName().isEmpty()) { + const CollectionNode *cn = + m_qdb->getCollectionNode(aggregate->physicalModuleName(), Node::Module); + + if (cn && !cn->qtVariable().isEmpty()) { + text->clear(); + *text << "QT += " + cn->qtVariable(); + requisites.insert(qtVariableText, *text); + } + } +} + +/*! + * \internal + * Adds the since information (from the \\since command) to the map. + * + */ +void HtmlGenerator::addSinceToMap(const Aggregate *aggregate, QMap &requisites, + Text *text, const QString &sinceText) const +{ + if (!aggregate->since().isEmpty() && text != nullptr) { + text->clear(); + *text << formatSince(aggregate) << Atom::ParaRight; + requisites.insert(sinceText, *text); + } +} + +/*! + * \internal + * Adds the includes (from the \\includefile command) to the map. + */ +void HtmlGenerator::addIncludeFilesToMap(const Aggregate *aggregate, CodeMarker *marker, + QMap &requisites, Text *text, + const QString &headerText) +{ + QStringList includeFiles = aggregate->includeFiles(); + includeFiles.erase(std::remove_if(includeFiles.begin(), includeFiles.end(), + [](auto includeFile) { return includeFile.isEmpty(); }), includeFiles.end()); + + if (!includeFiles.isEmpty() && text != nullptr) { + text->clear(); + *text << highlightedCode( + indent(m_codeIndent, marker->markedUpIncludes(includeFiles)), + aggregate); + requisites.insert(headerText, *text); + } +} + +/*! +Lists the required imports and includes in a table. +The number of rows is known. +*/ +void HtmlGenerator::generateQmlRequisites(QmlTypeNode *qcn, CodeMarker *marker) +{ + if (qcn == nullptr) + return; + QMap requisites; + Text text; + + const QString importText = "Import Statement:"; + const QString sinceText = "Since:"; + const QString inheritedBytext = "Inherited By:"; + const QString inheritsText = "Inherits:"; + const QString instantiatesText = "Instantiates:"; + + // add the module name and version to the map + QString logicalModuleVersion; + const CollectionNode *collection = qcn->logicalModule(); + + // skip import statement of \internal collections + if (!collection || !collection->isInternal() || m_showInternal) { + logicalModuleVersion = + collection ? collection->logicalModuleVersion() : qcn->logicalModuleVersion(); + + if (qcn->logicalModuleName().isEmpty()) + qcn->doc().location().warning(QStringLiteral("Could not resolve QML import " + "statement for type '%1'") + .arg(qcn->name()), + QStringLiteral("Maybe you forgot to use the " + "'\\%1' command?") + .arg(COMMAND_INQMLMODULE)); + + text.clear(); + text << "import " + qcn->logicalModuleName(); + if (!logicalModuleVersion.isEmpty()) + text << QLatin1Char(' ') + logicalModuleVersion; + requisites.insert(importText, text); + } + + // add the since and project into the map + if (!qcn->since().isEmpty()) { + text.clear(); + text << formatSince(qcn) << Atom::ParaRight; + requisites.insert(sinceText, text); + } + + // add the instantiates to the map + ClassNode *cn = qcn->classNode(); + if (cn && !cn->isInternal()) { + text.clear(); + text << Atom(Atom::LinkNode, CodeMarker::stringForNode(cn)); + text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK); + text << Atom(Atom::String, cn->name()); + text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK); + requisites.insert(instantiatesText, text); + } + + // add the inherits to the map + QmlTypeNode *base = qcn->qmlBaseNode(); + while (base && base->isInternal()) { + base = base->qmlBaseNode(); + } + if (base) { + text.clear(); + text << Atom::ParaLeft << Atom(Atom::LinkNode, CodeMarker::stringForNode(base)) + << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK) << Atom(Atom::String, base->name()) + << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK) << Atom::ParaRight; + requisites.insert(inheritsText, text); + } + + // add the inherited-by to the map + NodeList subs; + QmlTypeNode::subclasses(qcn, subs); + if (!subs.isEmpty()) { + text.clear(); + text << Atom::ParaLeft; + int count = appendSortedQmlNames(text, qcn, subs); + text << Atom::ParaRight; + if (count > 0) + requisites.insert(inheritedBytext, text); + } + + // The order of the requisites matter + const QStringList requisiteorder { importText, sinceText, instantiatesText, inheritsText, + inheritedBytext }; + + if (!requisites.isEmpty()) { + // generate the table + out() << "
    \n"; + for (const auto &requisite : requisiteorder) { + + if (requisites.contains(requisite)) { + out() << "" + << ""; + } + } + out() << "
    " << requisite + << " "; + + if (requisite == importText) + out() << requisites.value(requisite).toString(); + else + generateText(requisites.value(requisite), qcn, marker); + out() << "
    "; + } +} + +void HtmlGenerator::generateBrief(const Node *node, CodeMarker *marker, const Node *relative, + bool addLink) +{ + Text brief = node->doc().briefText(); + + if (!brief.isEmpty()) { + if (!brief.lastAtom()->string().endsWith('.')) { + brief << Atom(Atom::String, "."); + node->doc().location().warning( + QStringLiteral("'\\brief' statement does not end with a full stop.")); + } + generateExtractionMark(node, BriefMark); + out() << "

    "; + generateText(brief, node, marker); + + if (addLink) { + if (!relative || node == relative) + out() << " More..."; + } + + out() << "

    \n"; + generateExtractionMark(node, EndMark); + } +} + +/*! + Revised for the new doc format. + Generates a table of contents beginning at \a node. + */ +void HtmlGenerator::generateTableOfContents(const Node *node, CodeMarker *marker, + QList
    *sections) +{ + QList toc; + if (node->doc().hasTableOfContents()) + toc = node->doc().tableOfContents(); + if (tocDepth == 0 || (toc.isEmpty() && !sections && !node->isModule())) { + generateSidebar(); + return; + } + + int sectionNumber = 1; + int detailsBase = 0; + + // disable nested links in table of contents + m_inContents = true; + m_inLink = true; + + out() << "
    \n"; + out() << "
    \n"; + out() << "

    Contents

    \n"; + + if (node->isModule()) { + openUnorderedList(); + if (!static_cast(node)->noAutoList()) { + if (node->hasNamespaces()) { + out() << "
  • Namespaces
  • \n"; + } + if (node->hasClasses()) { + out() << "
  • Classes
  • \n"; + } + } + out() << "
  • Detailed Description
  • \n"; + for (const auto &entry : std::as_const(toc)) { + if (entry->string().toInt() == 1) { + detailsBase = 1; + break; + } + } + } else if (sections + && (node->isClassNode() || node->isNamespace() || node->isQmlType() || + node->isJsType() || node->isQmlBasicType() || node->isJsBasicType())) { + for (const auto §ion : std::as_const(*sections)) { + if (!section.members().isEmpty()) { + openUnorderedList(); + out() << "
  • " << section.title() << "
  • \n"; + } + if (!section.reimplementedMembers().isEmpty()) { + openUnorderedList(); + QString ref = QString("Reimplemented ") + section.plural(); + out() << "
  • " + << QString("Reimplemented ") + section.title() << "
  • \n"; + } + } + if (!node->isNamespace() || node->hasDoc()) { + openUnorderedList(); + out() << "
  • Detailed Description
  • \n"; + } + for (const auto &entry : toc) { + if (entry->string().toInt() == 1) { + detailsBase = 1; + break; + } + } + } + + for (const auto &atom : toc) { + sectionNumber = atom->string().toInt() + detailsBase; + // restrict the ToC depth to the one set by the HTML.tocdepth variable or + // print all levels if tocDepth is not set. + if (sectionNumber <= tocDepth || tocDepth < 0) { + openUnorderedList(); + int numAtoms; + Text headingText = Text::sectionHeading(atom); + QString s = headingText.toString(); + out() << "
  • "; + out() << ""; + generateAtomList(headingText.firstAtom(), node, marker, true, numAtoms); + out() << "
  • \n"; + } + } + closeUnorderedList(); + out() << "
    \n"; + out() << R"()"; + out() << "
    \n"; + m_inContents = false; + m_inLink = false; +} + +/*! + Outputs a placeholder div where the style can add customized sidebar content. + */ +void HtmlGenerator::generateSidebar() +{ + out() << "
    "; + out() << R"()"; + out() << "
    \n"; +} + +QString HtmlGenerator::generateAllMembersFile(const Section §ion, CodeMarker *marker) +{ + if (section.isEmpty()) + return QString(); + + const Aggregate *aggregate = section.aggregate(); + QString fileName = fileBase(aggregate) + "-members." + fileExtension(); + beginSubPage(aggregate, fileName); + QString title = "List of All Members for " + aggregate->name(); + generateHeader(title, aggregate, marker); + generateSidebar(); + generateTitle(title, Text(), SmallSubTitle, aggregate, marker); + out() << "

    This is the complete list of members for "; + generateFullName(aggregate, nullptr); + out() << ", including inherited members.

    \n"; + + generateSectionList(section, aggregate, marker); + + generateFooter(); + endSubPage(); + return fileName; +} + +/*! + This function creates an html page on which are listed all + the members of the QML class used to generte the \a sections, + including the inherited members. The \a marker is used for + formatting stuff. + */ +QString HtmlGenerator::generateAllQmlMembersFile(const Sections §ions, CodeMarker *marker) +{ + + if (sections.allMembersSection().isEmpty()) + return QString(); + + const Aggregate *aggregate = sections.aggregate(); + QString fileName = fileBase(aggregate) + "-members." + fileExtension(); + beginSubPage(aggregate, fileName); + QString title = "List of All Members for " + aggregate->name(); + generateHeader(title, aggregate, marker); + generateSidebar(); + generateTitle(title, Text(), SmallSubTitle, aggregate, marker); + out() << "

    This is the complete list of members for "; + generateFullName(aggregate, nullptr); + out() << ", including inherited members.

    \n"; + + ClassKeysNodesList &cknl = sections.allMembersSection().classKeysNodesList(); + if (!cknl.isEmpty()) { + for (int i = 0; i < cknl.size(); i++) { + ClassKeysNodes *ckn = cknl[i]; + const QmlTypeNode *qcn = ckn->first; + KeysAndNodes &kn = ckn->second; + QStringList &keys = kn.first; + NodeVector &nodes = kn.second; + if (nodes.isEmpty()) + continue; + if (i != 0) { + out() << "

    The following members are inherited from "; + generateFullName(qcn, nullptr); + out() << ".

    \n"; + } + openUnorderedList(); + for (int j = 0; j < keys.size(); j++) { + Node *node = nodes[j]; + if (node->access() == Access::Private || node->isInternal()) + continue; + if (node->isSharingComment() && node->sharedCommentNode()->isPropertyGroup()) + continue; + + std::function generate = [&](Node *n) { + out() << "
  • "; + generateQmlItem(n, aggregate, marker, true); + if (n->isDefault()) + out() << " [default]"; + else if (n->isAttached()) + out() << " [attached]"; + // Indent property group members + if (n->isPropertyGroup()) { + out() << "
      \n"; + const QList &collective = + static_cast(n)->collective(); + std::for_each(collective.begin(), collective.end(), generate); + out() << "
    \n"; + } + out() << "
  • \n"; + }; + generate(node); + } + closeUnorderedList(); + } + } + + generateFooter(); + endSubPage(); + return fileName; +} + +QString HtmlGenerator::generateObsoleteMembersFile(const Sections §ions, CodeMarker *marker) +{ + SectionPtrVector summary_spv; + SectionPtrVector details_spv; + if (!sections.hasObsoleteMembers(&summary_spv, &details_spv)) + return QString(); + + Aggregate *aggregate = sections.aggregate(); + QString title = "Obsolete Members for " + aggregate->name(); + QString fileName = fileBase(aggregate) + "-obsolete." + fileExtension(); + QString link; + if (useOutputSubdirs() && !Generator::outputSubdir().isEmpty()) + link = QString("../" + Generator::outputSubdir() + QLatin1Char('/')); + link += fileName; + aggregate->setObsoleteLink(link); + + beginSubPage(aggregate, fileName); + generateHeader(title, aggregate, marker); + generateSidebar(); + generateTitle(title, Text(), SmallSubTitle, aggregate, marker); + + out() << "

    The following members of class " + << "" + << protectEnc(aggregate->name()) << "" + << " are deprecated. " + << "They are provided to keep old source code working. " + << "We strongly advise against using them in new code.

    \n"; + + for (const auto §ion : summary_spv) { + out() << "

    " << protectEnc(section->title()) << "

    \n"; + generateSectionList(*section, aggregate, marker, Section::Obsolete); + } + + for (const auto §ion : details_spv) { + out() << "

    " << protectEnc(section->title()) << "

    \n"; + + const NodeVector &members = section->obsoleteMembers(); + for (const auto &member : members) { + if (member->access() != Access::Private) + generateDetailedMember(member, aggregate, marker); + } + } + + generateFooter(); + endSubPage(); + return fileName; +} + +/*! + Generates a separate file where deprecated members of the QML + type \a qcn are listed. The \a marker is used to generate + the section lists, which are then traversed and output here. + + Note that this function currently only handles correctly the + case where \a status is \c {Section::Obsolete}. + */ +QString HtmlGenerator::generateObsoleteQmlMembersFile(const Sections §ions, CodeMarker *marker) +{ + SectionPtrVector summary_spv; + SectionPtrVector details_spv; + if (!sections.hasObsoleteMembers(&summary_spv, &details_spv)) + return QString(); + + Aggregate *aggregate = sections.aggregate(); + QString title = "Obsolete Members for " + aggregate->name(); + QString fileName = fileBase(aggregate) + "-obsolete." + fileExtension(); + QString link; + if (useOutputSubdirs() && !Generator::outputSubdir().isEmpty()) + link = QString("../" + Generator::outputSubdir() + QLatin1Char('/')); + link += fileName; + aggregate->setObsoleteLink(link); + + beginSubPage(aggregate, fileName); + generateHeader(title, aggregate, marker); + generateSidebar(); + generateTitle(title, Text(), SmallSubTitle, aggregate, marker); + + out() << "

    The following members of QML type " + << "" + << protectEnc(aggregate->name()) << "" + << " are deprecated. " + << "They are provided to keep old source code working. " + << "We strongly advise against using them in new code.

    \n"; + + for (const auto §ion : summary_spv) { + QString ref = registerRef(section->title().toLower()); + out() << "

    " << protectEnc(section->title()) << "

    \n"; + generateQmlSummary(section->obsoleteMembers(), aggregate, marker); + } + + for (const auto §ion : details_spv) { + out() << "

    " << protectEnc(section->title()) << "

    \n"; + const NodeVector &members = section->obsoleteMembers(); + for (const auto &member : members) { + generateDetailedQmlMember(member, aggregate, marker); + out() << "
    \n"; + } + } + + generateFooter(); + endSubPage(); + return fileName; +} + +void HtmlGenerator::generateClassHierarchy(const Node *relative, NodeMultiMap &classMap) +{ + if (classMap.isEmpty()) + return; + + NodeMap topLevel; + for (const auto &it : classMap) { + auto *classe = static_cast(it); + if (classe->baseClasses().isEmpty()) + topLevel.insert(classe->name(), classe); + } + + QStack stack; + stack.push(topLevel); + + out() << "
      \n"; + while (!stack.isEmpty()) { + if (stack.top().isEmpty()) { + stack.pop(); + out() << "
    \n"; + } else { + ClassNode *child = static_cast(*stack.top().begin()); + out() << "
  • "; + generateFullName(child, relative); + out() << "
  • \n"; + stack.top().erase(stack.top().begin()); + + NodeMap newTop; + const auto derivedClasses = child->derivedClasses(); + for (const RelatedClass &d : derivedClasses) { + if (d.m_node && d.m_node->isInAPI()) + newTop.insert(d.m_node->name(), d.m_node); + } + if (!newTop.isEmpty()) { + stack.push(newTop); + out() << "
      \n"; + } + } + } +} + +/*! + Outputs an annotated list of the nodes in \a unsortedNodes. + A two-column table is output. + */ +void HtmlGenerator::generateAnnotatedList(const Node *relative, CodeMarker *marker, + const NodeList &unsortedNodes) +{ + if (unsortedNodes.isEmpty() || relative == nullptr) + return; + + NodeMultiMap nmm; + bool allInternal = true; + for (auto *node : unsortedNodes) { + if (!node->isInternal() && !node->isDeprecated()) { + allInternal = false; + nmm.insert(node->fullName(relative), node); + } + } + if (allInternal) + return; + out() << "
      \n"; + int row = 0; + NodeList nodes = nmm.values(); + std::sort(nodes.begin(), nodes.end(), Node::nodeNameLessThan); + + for (const auto *node : std::as_const(nodes)) { + if (++row % 2 == 1) + out() << ""; + else + out() << ""; + out() << ""; + + if (!node->isTextPageNode()) { + Text brief = node->doc().trimmedBriefText(node->name()); + if (!brief.isEmpty()) { + out() << ""; + } else if (!node->reconstitutedBrief().isEmpty()) { + out() << ""; + } + } else { + out() << ""; + } + out() << "\n"; + } + out() << "

      "; + generateFullName(node, relative); + out() << "

      "; + generateText(brief, node, marker); + out() << "

      "; + out() << node->reconstitutedBrief(); + out() << "

      "; + if (!node->reconstitutedBrief().isEmpty()) { + out() << node->reconstitutedBrief(); + } else + out() << protectEnc(node->doc().briefText().toString()); + out() << "

      \n"; +} + +/*! + Outputs a series of annotated lists from the nodes in \a nmm, + divided into sections based by the key names in the multimap. + */ +void HtmlGenerator::generateAnnotatedLists(const Node *relative, CodeMarker *marker, + const NodeMultiMap &nmm) +{ + const auto &uniqueKeys = nmm.uniqueKeys(); + for (const QString &name : uniqueKeys) { + if (!name.isEmpty()) { + out() << "

      " << protectEnc(name) + << "

      \n"; + } + generateAnnotatedList(relative, marker, nmm.values(name)); + } +} + +/*! + This function finds the common prefix of the names of all + the classes in the class map \a nmm and then generates a + compact list of the class names alphabetized on the part + of the name not including the common prefix. You can tell + the function to use \a commonPrefix as the common prefix, + but normally you let it figure it out itself by looking at + the name of the first and last classes in the class map + \a nmm. + */ +void HtmlGenerator::generateCompactList(ListType listType, const Node *relative, + const NodeMultiMap &nmm, bool includeAlphabet, + const QString &commonPrefix) +{ + if (nmm.isEmpty()) + return; + + const int NumParagraphs = 37; // '0' to '9', 'A' to 'Z', '_' + qsizetype commonPrefixLen = commonPrefix.size(); + + /* + Divide the data into 37 paragraphs: 0, ..., 9, A, ..., Z, + underscore (_). QAccel will fall in paragraph 10 (A) and + QXtWidget in paragraph 33 (X). This is the only place where we + assume that NumParagraphs is 37. Each paragraph is a NodeMultiMap. + */ + NodeMultiMap paragraph[NumParagraphs + 1]; + QString paragraphName[NumParagraphs + 1]; + QSet usedParagraphNames; + + for (auto c = nmm.constBegin(); c != nmm.constEnd(); ++c) { + QStringList pieces = c.key().split("::"); + int idx = commonPrefixLen; + if (idx > 0 && !pieces.last().startsWith(commonPrefix, Qt::CaseInsensitive)) + idx = 0; + QString last = pieces.last().toLower(); + QString key = last.mid(idx); + + int paragraphNr = NumParagraphs - 1; + + if (key[0].digitValue() != -1) { + paragraphNr = key[0].digitValue(); + } else if (key[0] >= QLatin1Char('a') && key[0] <= QLatin1Char('z')) { + paragraphNr = 10 + key[0].unicode() - 'a'; + } + + paragraphName[paragraphNr] = key[0].toUpper(); + usedParagraphNames.insert(key[0].toLower().cell()); + paragraph[paragraphNr].insert(last, c.value()); + } + + /* + Each paragraph j has a size: paragraph[j].count(). In the + discussion, we will assume paragraphs 0 to 5 will have sizes + 3, 1, 4, 1, 5, 9. + + We now want to compute the paragraph offset. Paragraphs 0 to 6 + start at offsets 0, 3, 4, 8, 9, 14, 23. + */ + qsizetype paragraphOffset[NumParagraphs + 1]; // 37 + 1 + paragraphOffset[0] = 0; + for (int i = 0; i < NumParagraphs; i++) // i = 0..36 + paragraphOffset[i + 1] = paragraphOffset[i] + paragraph[i].size(); + + /* + Output the alphabet as a row of links. + */ + if (includeAlphabet) { + out() << "

      "; + for (int i = 0; i < 26; i++) { + QChar ch('a' + i); + if (usedParagraphNames.contains(char('a' + i))) + out() << QString("%2 ").arg(ch).arg(ch.toUpper()); + } + out() << "

      \n"; + } + + /* + Output a
      element to contain all the
      elements. + */ + out() << "
      \n"; + m_numTableRows = 0; + + int curParNr = 0; + int curParOffset = 0; + QString previousName; + bool multipleOccurrences = false; + + for (int i = 0; i < nmm.size(); i++) { + while ((curParNr < NumParagraphs) && (curParOffset == paragraph[curParNr].size())) { + ++curParNr; + curParOffset = 0; + } + + /* + Starting a new paragraph means starting a new
      . + */ + if (curParOffset == 0) { + if (i > 0) + out() << "
      \n"; + if (++m_numTableRows % 2 == 1) + out() << "
      "; + else + out() << "
      "; + out() << "
      " << paragraphName[curParNr] << "
      \n"; + } + + /* + Output a
      for the current offset in the current paragraph. + */ + out() << "
      "; + if ((curParNr < NumParagraphs) && !paragraphName[curParNr].isEmpty()) { + NodeMultiMap::Iterator it; + NodeMultiMap::Iterator next; + it = paragraph[curParNr].begin(); + for (int j = 0; j < curParOffset; j++) + ++it; + + if (listType == Generic) { + /* + Previously, we used generateFullName() for this, but we + require some special formatting. + */ + out() << ""; + } else if (listType == Obsolete) { + QString fileName = fileBase(it.value()) + "-obsolete." + fileExtension(); + QString link; + if (useOutputSubdirs()) { + link = QString("../" + it.value()->outputSubdirectory() + QLatin1Char('/')); + } + link += fileName; + out() << ""; + } + + QStringList pieces; + if (it.value()->isQmlType() || it.value()->isJsType()) { + QString name = it.value()->name(); + next = it; + ++next; + if (name != previousName) + multipleOccurrences = false; + if ((next != paragraph[curParNr].end()) && (name == next.value()->name())) { + multipleOccurrences = true; + previousName = name; + } + if (multipleOccurrences) + name += ": " + it.value()->tree()->camelCaseModuleName(); + pieces << name; + } else + pieces = it.value()->fullName(relative).split("::"); + out() << protectEnc(pieces.last()); + out() << ""; + if (pieces.size() > 1) { + out() << " ("; + generateFullName(it.value()->parent(), relative); + out() << ')'; + } + } + out() << "
      \n"; + curParOffset++; + } + if (nmm.size() > 0) + out() << "
      \n"; + + out() << "
      \n"; +} + +void HtmlGenerator::generateFunctionIndex(const Node *relative) +{ + out() << "

      "; + for (int i = 0; i < 26; i++) { + QChar ch('a' + i); + out() << QString("%2 ").arg(ch).arg(ch.toUpper()); + } + out() << "

      \n"; + + char nextLetter = 'a'; + + out() << "
        \n"; + NodeMapMap &funcIndex = m_qdb->getFunctionIndex(); + for (auto fnMap = funcIndex.constBegin(); fnMap != funcIndex.constEnd(); ++fnMap) { + const QString &key = fnMap.key(); + const QChar firstLetter = key.isEmpty() ? QChar('A') : key.front(); + Q_ASSERT_X(firstLetter.unicode() < 256, "generateFunctionIndex", + "Only valid C++ identifiers were expected"); + const char currentLetter = firstLetter.isLower() ? firstLetter.unicode() : nextLetter - 1; + + if (currentLetter < nextLetter) { + out() << "
      • "; + } else { + // TODO: This is not covered by our tests + while (nextLetter < currentLetter) + out() << QStringLiteral("
      • ").arg(nextLetter++); + Q_ASSERT(nextLetter == currentLetter); + out() << QStringLiteral("
      • ").arg(nextLetter++); + } + out() << protectEnc(key) << ':'; + + for (auto it = (*fnMap).constBegin(); it != (*fnMap).constEnd(); ++it) { + out() << ' '; + generateFullName((*it)->parent(), relative, *it); + } + out() << "
      • \n"; + } + while (nextLetter <= 'z') + out() << QStringLiteral("
      • ").arg(nextLetter++); + out() << "
      \n"; +} + +void HtmlGenerator::generateLegaleseList(const Node *relative, CodeMarker *marker) +{ + TextToNodeMap &legaleseTexts = m_qdb->getLegaleseTexts(); + for (auto it = legaleseTexts.cbegin(), end = legaleseTexts.cend(); it != end; ++it) { + Text text = it.key(); + generateText(text, relative, marker); + out() << "
        \n"; + do { + out() << "
      • "; + generateFullName(it.value(), relative); + out() << "
      • \n"; + ++it; + } while (it != legaleseTexts.constEnd() && it.key() == text); + out() << "
      \n"; + } +} + +void HtmlGenerator::generateQmlItem(const Node *node, const Node *relative, CodeMarker *marker, + bool summary) +{ + QString marked = marker->markedUpQmlItem(node, summary); + QRegularExpression templateTag("(<[^@>]*>)"); + auto match = templateTag.match(marked); + if (match.hasMatch()) { + QString contents = protectEnc(match.captured(1)); + marked.replace(match.capturedStart(1), match.capturedLength(1), contents); + } + + // Look for the _ character in the member name followed by a number (or n): + // this is intended to be rendered as a subscript. + marked.replace(QRegularExpression("<@param>([a-z]+)_([0-9]+|n)"), "\\1\\2"); + // Replace some markup by HTML tags. Do both the opening and the closing tag + // in one go (instead of <@param> and separately, for instance). + marked.replace("@param>", "i>"); + + marked.replace("@extra>", "code>"); + + if (summary) { + marked.remove("<@name>"); + marked.remove(""); + marked.remove("<@type>"); + marked.remove(""); + } + out() << highlightedCode(marked, relative, false, Node::QML); +} + +/*! + This function generates a simple bullet list for the members + of collection node \a {cn}. The collection node must be a group + and must not be empty. If it is empty, nothing is output, and + false is returned. Otherewise, the list is generated and true is returned. + */ +bool HtmlGenerator::generateGroupList(CollectionNode *cn) +{ + m_qdb->mergeCollections(cn); + if (cn->members().isEmpty()) + return false; + out() << "\n"; + return true; +} + +void HtmlGenerator::generateList(const Node *relative, CodeMarker *marker, const QString &selector) +{ + CNMap cnm; + Node::NodeType type = Node::NoType; + if (selector == QLatin1String("overviews")) + type = Node::Group; + else if (selector == QLatin1String("cpp-modules")) + type = Node::Module; + else if (selector == QLatin1String("qml-modules")) + type = Node::QmlModule; + else if (selector == QLatin1String("js-modules")) + type = Node::JsModule; + if (type != Node::NoType) { + NodeList nodeList; + m_qdb->mergeCollections(type, cnm, relative); + const auto collectionList = cnm.values(); + nodeList.reserve(collectionList.size()); + for (auto *collectionNode : collectionList) + nodeList.append(collectionNode); + generateAnnotatedList(relative, marker, nodeList); + } else { + /* + \generatelist {selector} is only allowed in a + comment where the topic is \group, \module, + \qmlmodule, or \jsmodule + */ + if (relative && !relative->isCollectionNode()) { + relative->doc().location().warning( + QStringLiteral("\\generatelist {%1} is only allowed in \\group, " + "\\module, \\qmlmodule, and \\jsmodule comments.") + .arg(selector)); + return; + } + auto *node = const_cast(relative); + auto *collectionNode = static_cast(node); + m_qdb->mergeCollections(collectionNode); + generateAnnotatedList(collectionNode, marker, collectionNode->members()); + } +} + +void HtmlGenerator::generateSection(const NodeVector &nv, const Node *relative, CodeMarker *marker) +{ + bool alignNames = true; + if (!nv.isEmpty()) { + bool twoColumn = false; + if (nv.first()->isProperty()) { + twoColumn = (nv.size() >= 5); + alignNames = false; + } + if (alignNames) { + out() << "
      \n"; + } else { + if (twoColumn) + out() << "
      \n" + << "\n"; + else + out() << "\n"; + i++; + } + if (alignNames) + out() << "
      "; + out() << "
        \n"; + } + + int i = 0; + for (const auto &member : nv) { + if (member->access() == Access::Private) + continue; + + if (alignNames) { + out() << "
      "; + } else { + if (twoColumn && i == (nv.size() + 1) / 2) + out() << "
        \n"; + out() << "
      • "; + } + + generateSynopsis(member, relative, marker, Section::Summary, alignNames); + if (alignNames) + out() << "
      \n"; + else { + out() << "
    \n"; + if (twoColumn) + out() << "\n
\n"; + } + } +} + +void HtmlGenerator::generateSectionList(const Section §ion, const Node *relative, + CodeMarker *marker, Section::Status status) +{ + bool alignNames = true; + const NodeVector &members = + (status == Section::Obsolete ? section.obsoleteMembers() : section.members()); + if (!members.isEmpty()) { + bool hasPrivateSignals = false; + bool isInvokable = false; + bool twoColumn = false; + if (section.style() == Section::AllMembers) { + alignNames = false; + twoColumn = (members.size() >= 16); + } else if (members.first()->isProperty()) { + twoColumn = (members.size() >= 5); + alignNames = false; + } + if (alignNames) { + out() << "
\n"; + } else { + if (twoColumn) + out() << "
\n" + << "\n"; + else + out() << "\n"; + i++; + } + if (alignNames) + out() << "
"; + out() << "
    \n"; + } + + int i = 0; + for (const auto &member : members) { + if (member->access() == Access::Private) + continue; + + if (alignNames) { + out() << "
"; + } else { + if (twoColumn && i == (members.size() + 1) / 2) + out() << "
    \n"; + out() << "
  • "; + } + + QString prefix; + const QStringList &keys = section.keys(status); + if (!keys.isEmpty()) { + prefix = keys.at(i).mid(1); + prefix = prefix.left(keys.at(i).indexOf("::") + 1); + } + generateSynopsis(member, relative, marker, section.style(), alignNames, &prefix); + if (member->isFunction()) { + const auto *fn = static_cast(member); + if (fn->isPrivateSignal()) { + hasPrivateSignals = true; + if (alignNames) + out() << "
[see note below]"; + } else if (fn->isInvokable()) { + isInvokable = true; + if (alignNames) + out() << "[see note below]"; + } + } + if (alignNames) + out() << "
\n"; + else { + out() << "\n"; + if (twoColumn) + out() << "\n
\n"; + } + if (alignNames) { + if (hasPrivateSignals) + generateAddendum(relative, Generator::PrivateSignal, marker); + if (isInvokable) + generateAddendum(relative, Generator::Invokable, marker); + } + } + + if (status != Section::Obsolete && section.style() == Section::Summary + && !section.inheritedMembers().isEmpty()) { + out() << "
    \n"; + generateSectionInheritedList(section, relative); + out() << "
\n"; + } +} + +void HtmlGenerator::generateSectionInheritedList(const Section §ion, const Node *relative) +{ + const QList> &inheritedMembers = section.inheritedMembers(); + for (const auto &member : inheritedMembers) { + out() << "
  • "; + out() << member.second << ' '; + if (member.second == 1) { + out() << section.singular(); + } else { + out() << section.plural(); + } + out() << " inherited from " + << protectEnc(member.first->plainFullName(relative)) << "
  • \n"; + } +} + +void HtmlGenerator::generateSynopsis(const Node *node, const Node *relative, CodeMarker *marker, + Section::Style style, bool alignNames, const QString *prefix) +{ + QString marked = marker->markedUpSynopsis(node, relative, style); + + if (prefix) + marked.prepend(*prefix); + QRegularExpression templateTag("(<[^@>]*>)"); + auto match = templateTag.match(marked); + if (match.hasMatch()) { + QString contents = protectEnc(match.captured(1)); + marked.replace(match.capturedStart(1), match.capturedLength(1), contents); + } + + marked.replace(QRegularExpression("<@param>([a-z]+)_([1-9n])"), "\\1\\2"); + marked.replace("<@param>", ""); + marked.replace("", ""); + + if (style == Section::Summary) { + marked.remove("<@name>"); // was "" + marked.remove(""); // was "" + } + + if (style == Section::AllMembers) { + QRegularExpression extraRegExp("<@extra>.*", QRegularExpression::InvertedGreedinessOption); + marked.remove(extraRegExp); + } else { + marked.replace("<@extra>", ""); + marked.replace("", ""); + } + + if (style != Section::Details) { + marked.remove("<@type>"); + marked.remove(""); + } + + out() << highlightedCode(marked, relative, alignNames); +} + +QString HtmlGenerator::highlightedCode(const QString &markedCode, const Node *relative, + bool alignNames, Node::Genus genus) +{ + QString src = markedCode; + QString html; + html.reserve(src.size()); + QStringView arg; + QStringView par1; + + const QChar charLangle = '<'; + const QChar charAt = '@'; + + static const QString typeTag("type"); + static const QString headerTag("headerfile"); + static const QString funcTag("func"); + static const QString linkTag("link"); + + // replace all <@link> tags: "(<@link node=\"([^\"]+)\">).*()" + // replace all <@func> tags: "(<@func target=\"([^\"]*)\">)(.*)()" + // replace all "(<@(type|headerfile)(?: +[^>]*)?>)(.*)()" tags + bool done = false; + for (int i = 0, srcSize = src.size(); i < srcSize;) { + if (src.at(i) == charLangle && src.at(i + 1) == charAt) { + if (alignNames && !done) { + html += QLatin1String(""); + done = true; + } + i += 2; + if (parseArg(src, linkTag, &i, srcSize, &arg, &par1)) { + html += QLatin1String(""); + const Node *n = CodeMarker::nodeForString(par1.toString()); + QString link = linkForNode(n, relative); + addLink(link, arg, &html); + html += QLatin1String(""); + } else if (parseArg(src, funcTag, &i, srcSize, &arg, &par1)) { + const FunctionNode *fn = m_qdb->findFunctionNode(par1.toString(), relative, genus); + QString link = linkForNode(fn, relative); + addLink(link, arg, &html); + par1 = QStringView(); + } else if (parseArg(src, typeTag, &i, srcSize, &arg, &par1)) { + par1 = QStringView(); + const Node *n = m_qdb->findTypeNode(arg.toString(), relative, genus); + html += QLatin1String(""); + if (n && (n->isQmlBasicType() || n->isJsBasicType())) { + if (relative && (relative->genus() == n->genus() || genus == n->genus())) + addLink(linkForNode(n, relative), arg, &html); + else + html += arg; + } else + addLink(linkForNode(n, relative), arg, &html); + html += QLatin1String(""); + } else if (parseArg(src, headerTag, &i, srcSize, &arg, &par1)) { + par1 = QStringView(); + if (arg.startsWith(QLatin1Char('&'))) + html += arg; + else { + const Node *n = m_qdb->findNodeForInclude(QStringList(arg.toString())); + if (n && n != relative) + addLink(linkForNode(n, relative), arg, &html); + else + html += arg; + } + } else { + html += charLangle; + html += charAt; + } + } else { + html += src.at(i++); + } + } + + // replace all + // "<@comment>" -> ""; + // "<@preprocessor>" -> ""; + // "<@string>" -> ""; + // "<@char>" -> ""; + // "<@number>" -> ""; + // "<@op>" -> ""; + // "<@type>" -> ""; + // "<@name>" -> ""; + // "<@keyword>" -> ""; + // "" -> "" + src = html; + html = QString(); + html.reserve(src.size()); + static const QLatin1String spanTags[] = { + QLatin1String("comment>"), QLatin1String(""), + QLatin1String("preprocessor>"), QLatin1String(""), + QLatin1String("string>"), QLatin1String(""), + QLatin1String("char>"), QLatin1String(""), + QLatin1String("number>"), QLatin1String(""), + QLatin1String("op>"), QLatin1String(""), + QLatin1String("type>"), QLatin1String(""), + QLatin1String("name>"), QLatin1String(""), + QLatin1String("keyword>"), QLatin1String("") + }; + int nTags = 9; + // Update the upper bound of k in the following code to match the length + // of the above array. + for (int i = 0, n = src.size(); i < n;) { + if (src.at(i) == QLatin1Char('<')) { + if (src.at(i + 1) == QLatin1Char('@')) { + i += 2; + bool handled = false; + for (int k = 0; k != nTags; ++k) { + const QLatin1String &tag = spanTags[2 * k]; + if (i + tag.size() <= src.size() && tag == QStringView(src).mid(i, tag.size())) { + html += spanTags[2 * k + 1]; + i += tag.size(); + handled = true; + break; + } + } + if (!handled) { + // drop 'our' unknown tags (the ones still containing '@') + while (i < n && src.at(i) != QLatin1Char('>')) + ++i; + ++i; + } + continue; + } else if (src.at(i + 1) == QLatin1Char('/') && src.at(i + 2) == QLatin1Char('@')) { + i += 3; + bool handled = false; + for (int k = 0; k != nTags; ++k) { + const QLatin1String &tag = spanTags[2 * k]; + if (i + tag.size() <= src.size() && tag == QStringView(src).mid(i, tag.size())) { + html += QLatin1String(""); + i += tag.size(); + handled = true; + break; + } + } + if (!handled) { + // drop 'our' unknown tags (the ones still containing '@') + while (i < n && src.at(i) != QLatin1Char('>')) + ++i; + ++i; + } + continue; + } + } + html += src.at(i); + ++i; + } + return html; +} + +void HtmlGenerator::generateLink(const Atom *atom) +{ + Q_ASSERT(m_inLink); + + if (m_linkNode && m_linkNode->isFunction()) { + auto match = XmlGenerator::m_funcLeftParen.match(atom->string()); + if (match.hasMatch()) { + // C++: move () outside of link + qsizetype leftParenLoc = match.capturedStart(1); + out() << protectEnc(atom->string().left(leftParenLoc)); + endLink(); + out() << protectEnc(atom->string().mid(leftParenLoc)); + return; + } + } + out() << protectEnc(atom->string()); +} + +QString HtmlGenerator::protectEnc(const QString &string) +{ + return protect(string); +} + +QString HtmlGenerator::protect(const QString &string) +{ +#define APPEND(x) \ + if (html.isEmpty()) { \ + html = string; \ + html.truncate(i); \ + } \ + html += (x); + + QString html; + qsizetype n = string.size(); + + for (int i = 0; i < n; ++i) { + QChar ch = string.at(i); + + if (ch == QLatin1Char('&')) { + APPEND("&"); + } else if (ch == QLatin1Char('<')) { + APPEND("<"); + } else if (ch == QLatin1Char('>')) { + APPEND(">"); + } else if (ch == QLatin1Char('"')) { + APPEND("""); + } else if ((ch == QLatin1Char('*') && i + 1 < n && string.at(i) == QLatin1Char('/')) + || (ch == QLatin1Char('.') && i > 2 && string.at(i - 2) == QLatin1Char('.'))) { + // we escape '*/' and the last dot in 'e.g.' and 'i.e.' for the Javadoc generator + APPEND("&#x"); + html += QString::number(ch.unicode(), 16); + html += QLatin1Char(';'); + } else { + if (!html.isEmpty()) + html += ch; + } + } + + if (!html.isEmpty()) + return html; + return string; + +#undef APPEND +} + +QString HtmlGenerator::fileBase(const Node *node) const +{ + QString result = Generator::fileBase(node); + if (!node->isAggregate() && node->isDeprecated()) + result += QLatin1String("-obsolete"); + return result; +} + +QString HtmlGenerator::fileName(const Node *node) +{ + if (node->isExternalPage()) + return node->name(); + return Generator::fileName(node); +} + +void HtmlGenerator::generateFullName(const Node *apparentNode, const Node *relative, + const Node *actualNode) +{ + if (actualNode == nullptr) + actualNode = apparentNode; + bool link = !linkForNode(actualNode, relative).isEmpty(); + if (link) { + out() << "isDeprecated()) + out() << "\" class=\"obsolete"; + out() << "\">"; + } + out() << protectEnc(apparentNode->fullName(relative)); + if (link) + out() << ""; +} + +void HtmlGenerator::generateDetailedMember(const Node *node, const PageNode *relative, + CodeMarker *marker) +{ + const EnumNode *etn; + generateExtractionMark(node, MemberMark); + QString nodeRef = nullptr; + if (node->isSharedCommentNode()) { + const auto *scn = reinterpret_cast(node); + const QList &collective = scn->collective(); + if (collective.size() > 1) + out() << "
    \n"; + for (const auto *sharedNode : collective) { + nodeRef = refForNode(sharedNode); + out() << R"(

    "; + generateSynopsis(sharedNode, relative, marker, Section::Details); + out() << "

    "; + } + if (collective.size() > 1) + out() << "
    "; + out() << '\n'; + } else { + nodeRef = refForNode(node); + if (node->isEnumType() && (etn = static_cast(node))->flagsType()) { + out() << R"(

    "; + generateSynopsis(etn, relative, marker, Section::Details); + out() << "
    "; + generateSynopsis(etn->flagsType(), relative, marker, Section::Details); + out() << "

    \n"; + } else { + out() << R"(

    "; + generateSynopsis(node, relative, marker, Section::Details); + out() << "

    " << '\n'; + } + } + + generateStatus(node, marker); + generateBody(node, marker); + generateOverloadedSignal(node, marker); + generateThreadSafeness(node, marker); + generateSince(node, marker); + + if (node->isProperty()) { + const auto property = static_cast(node); + if (property->propertyType() == PropertyNode::Standard) { + Section section(Section::Accessors, Section::Active); + + section.appendMembers(property->getters().toVector()); + section.appendMembers(property->setters().toVector()); + section.appendMembers(property->resetters().toVector()); + + if (!section.members().isEmpty()) { + out() << "

    Access functions:

    \n"; + generateSectionList(section, node, marker); + } + + Section notifiers(Section::Accessors, Section::Active); + notifiers.appendMembers(property->notifiers().toVector()); + + if (!notifiers.members().isEmpty()) { + out() << "

    Notifier signal:

    \n"; + generateSectionList(notifiers, node, marker); + } + } + } else if (node->isEnumType()) { + const auto *enumTypeNode = static_cast(node); + if (enumTypeNode->flagsType()) { + out() << "

    The " << protectEnc(enumTypeNode->flagsType()->name()) + << " type is a typedef for " + << "QFlags<" + << protectEnc(enumTypeNode->name()) << ">. It stores an OR combination of " + << protectEnc(enumTypeNode->name()) << " values.

    \n"; + } + } + generateAlsoList(node, marker); + generateExtractionMark(node, EndMark); +} + +/*! + This version of the function is called when outputting the link + to an example file or example image, where the \a link is known + to be correct. + */ +void HtmlGenerator::beginLink(const QString &link) +{ + m_link = link; + m_inLink = true; + m_linkNode = nullptr; + + if (!m_link.isEmpty()) + out() << ""; +} + +void HtmlGenerator::beginLink(const QString &link, const Node *node, const Node *relative) +{ + m_link = link; + m_inLink = true; + m_linkNode = node; + if (m_link.isEmpty()) + return; + + if (node == nullptr || (relative != nullptr && node->status() == relative->status())) + out() << ""; + else if (node->isDeprecated()) + out() << ""; + else + out() << ""; +} + +void HtmlGenerator::endLink() +{ + if (!m_inLink) + return; + + m_inLink = false; + m_linkNode = nullptr; + + if (!m_link.isEmpty()) + out() << ""; +} + +/*! + Generates the summary list for the \a members. Only used for + sections of QML element documentation. + */ +void HtmlGenerator::generateQmlSummary(const NodeVector &members, const Node *relative, + CodeMarker *marker) +{ + if (!members.isEmpty()) { + out() << "
      \n"; + for (const auto &member : members) { + out() << "
    • "; + generateQmlItem(member, relative, marker, true); + if (member->isPropertyGroup()) { + const auto *scn = static_cast(member); + if (scn->count() > 0) { + out() << "
        \n"; + const QList &sharedNodes = scn->collective(); + for (const auto &node : sharedNodes) { + if (node->isQmlProperty() || node->isJsProperty()) { + out() << "
      • "; + generateQmlItem(node, relative, marker, true); + out() << "
      • \n"; + } + } + out() << "
      \n"; + } + } + out() << "
    • \n"; + } + out() << "
    \n"; + } +} + +/*! + Outputs the html detailed documentation for a section + on a QML element reference page. + */ +void HtmlGenerator::generateDetailedQmlMember(Node *node, const Aggregate *relative, + CodeMarker *marker) +{ + generateExtractionMark(node, MemberMark); + + QString qmlItemHeader("
    \n" + "
    \n"); + + QString qmlItemStart("\n" + "\n"); + + QString qmlItemFooter("

    \n"); + QString qmlItemEnd("

    \n"); + + std::function generateQmlProperty = [&](QmlPropertyNode *n) { + out() << qmlItemStart.arg(refForNode(n), "tblQmlPropNode"); + + if (!n->isReadOnlySet() && n->declarativeCppNode()) + n->markReadOnly(!n->isWritable()); + + QStringList extra; + if (n->isDefault()) + extra << "default"; + else if (n->isReadOnly()) + extra << "read-only"; + else if (n->isRequired()) + extra << "required"; + else if (!n->defaultValue().isEmpty()) { + extra << "default: " + n->defaultValue(); + } + + if (!n->since().isEmpty()) { + if (!extra.isEmpty()) + extra.last().append(','); + extra << "since " + n->since(); + } + + if (!extra.isEmpty()) + out() << QString("[%1] ") + .arg(extra.join(QLatin1Char(' '))); + + generateQmlItem(n, relative, marker, false); + out() << qmlItemEnd; + }; + + std::function generateQmlMethod = [&](Node *n) { + out() << qmlItemStart.arg(refForNode(n), "tblQmlFuncNode"); + generateSynopsis(n, relative, marker, Section::Details, false); + out() << qmlItemEnd; + }; + + out() << "
    "; + if (node->isPropertyGroup()) { + const auto *scn = static_cast(node); + out() << qmlItemHeader; + if (!scn->name().isEmpty()) { + const QString nodeRef = refForNode(scn); + out() << R"("; + out() << "

    "; + out() << "" << scn->name() << " group"; + out() << "

    \n"; + } + const QList sharedNodes = scn->collective(); + for (const auto &sharedNode : sharedNodes) { + if (sharedNode->isQmlProperty() || sharedNode->isJsProperty()) + generateQmlProperty(static_cast(sharedNode)); + } + out() << qmlItemFooter; + } else if (node->isQmlProperty() || node->isJsProperty()) { + out() << qmlItemHeader; + generateQmlProperty(static_cast(node)); + out() << qmlItemFooter; + } else if (node->isSharedCommentNode()) { + const auto *scn = reinterpret_cast(node); + const QList &sharedNodes = scn->collective(); + if (sharedNodes.size() > 1) + out() << "
    \n"; + out() << qmlItemHeader; + for (const auto &sharedNode : sharedNodes) { + if (sharedNode->isFunction(Node::QML) || sharedNode->isFunction(Node::JS)) + generateQmlMethod(sharedNode); + else if (sharedNode->isQmlProperty() || sharedNode->isJsProperty()) + generateQmlProperty(static_cast(sharedNode)); + } + out() << qmlItemFooter; + if (sharedNodes.size() > 1) + out() << "
    "; // fngroup + } else { // assume the node is a method/signal handler + out() << qmlItemHeader; + generateQmlMethod(node); + out() << qmlItemFooter; + } + + out() << "
    "; + generateStatus(node, marker); + generateBody(node, marker); + generateThreadSafeness(node, marker); + generateSince(node, marker); + generateAlsoList(node, marker); + out() << "
    "; + generateExtractionMark(node, EndMark); +} + +void HtmlGenerator::generateExtractionMark(const Node *node, ExtractionMarkType markType) +{ + if (markType != EndMark) { + out() << "\n"; + } else { + out() << "\n"; + } +} + +QT_END_NAMESPACE diff --git a/src/qdoc/htmlgenerator.h b/src/qdoc/htmlgenerator.h new file mode 100644 index 0000000..07043e6 --- /dev/null +++ b/src/qdoc/htmlgenerator.h @@ -0,0 +1,176 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef HTMLGENERATOR_H +#define HTMLGENERATOR_H + +#include "codemarker.h" +#include "xmlgenerator.h" +#include "filesystem/fileresolver.hpp" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Aggregate; +class Config; +class ExampleNode; +class HelpProjectWriter; +class ManifestWriter; + +class HtmlGenerator : public XmlGenerator +{ +public: + HtmlGenerator(FileResolver& file_resolver); + ~HtmlGenerator() override; + + void initializeGenerator() override; + void terminateGenerator() override; + QString format() override; + void generateDocs() override; + + QString protectEnc(const QString &string); + static QString protect(const QString &string); + +protected: + void generateExampleFilePage(const Node *en, ResolvedFile resolved_file, CodeMarker *marker) override; + qsizetype generateAtom(const Atom *atom, const Node *relative, CodeMarker *marker) override; + void generateCppReferencePage(Aggregate *aggregate, CodeMarker *marker) override; + void generateProxyPage(Aggregate *aggregate, CodeMarker *marker) override; + void generateQmlTypePage(QmlTypeNode *qcn, CodeMarker *marker) override; + void generateQmlBasicTypePage(QmlValueTypeNode *qbtn, CodeMarker *marker) override; + void generatePageNode(PageNode *pn, CodeMarker *marker) override; + void generateCollectionNode(CollectionNode *cn, CodeMarker *marker) override; + void generateGenericCollectionPage(CollectionNode *cn, CodeMarker *marker) override; + [[nodiscard]] QString fileExtension() const override; + +private: + enum SubTitleSize { SmallSubTitle, LargeSubTitle }; + enum ExtractionMarkType { BriefMark, DetailedDescriptionMark, MemberMark, EndMark }; + + void generateNavigationBar(const QString &title, const Node *node, CodeMarker *marker, + const QString &buildversion, bool tableItems = false); + void generateHeader(const QString &title, const Node *node = nullptr, + CodeMarker *marker = nullptr); + void generateTitle(const QString &title, const Text &subTitle, SubTitleSize subTitleSize, + const Node *relative, CodeMarker *marker); + void generateFooter(const Node *node = nullptr); + void generateRequisites(Aggregate *inner, CodeMarker *marker); + void generateQmlRequisites(QmlTypeNode *qcn, CodeMarker *marker); + void generateBrief(const Node *node, CodeMarker *marker, const Node *relative = nullptr, + bool addLink = true); + void generateTableOfContents(const Node *node, CodeMarker *marker, + QList
    *sections = nullptr); + void generateSidebar(); + QString generateAllMembersFile(const Section §ion, CodeMarker *marker); + QString generateAllQmlMembersFile(const Sections §ions, CodeMarker *marker); + QString generateObsoleteMembersFile(const Sections §ions, CodeMarker *marker); + QString generateObsoleteQmlMembersFile(const Sections §ions, CodeMarker *marker); + void generateClassHierarchy(const Node *relative, NodeMultiMap &classMap); + void generateAnnotatedLists(const Node *relative, CodeMarker *marker, + const NodeMultiMap &nodeMap); + void generateAnnotatedList(const Node *relative, CodeMarker *marker, const NodeList &nodes); + void generateCompactList(ListType listType, const Node *relative, const NodeMultiMap &classMap, + bool includeAlphabet, const QString &commonPrefix); + void generateFunctionIndex(const Node *relative); + void generateLegaleseList(const Node *relative, CodeMarker *marker); + bool generateGroupList(CollectionNode *cn); + void generateList(const Node *relative, CodeMarker *marker, const QString &selector); + void generateSectionList(const Section §ion, const Node *relative, CodeMarker *marker, + Section::Status = Section::Active); + void generateQmlSummary(const NodeVector &members, const Node *relative, CodeMarker *marker); + void generateQmlItem(const Node *node, const Node *relative, CodeMarker *marker, bool summary); + void generateDetailedQmlMember(Node *node, const Aggregate *relative, CodeMarker *marker); + + void generateSection(const NodeVector &nv, const Node *relative, CodeMarker *marker); + void generateSynopsis(const Node *node, const Node *relative, CodeMarker *marker, + Section::Style style, bool alignNames = false, + const QString *prefix = nullptr); + void generateSectionInheritedList(const Section §ion, const Node *relative); + QString highlightedCode(const QString &markedCode, const Node *relative, + bool alignNames = false, Node::Genus genus = Node::DontCare); + + void generateFullName(const Node *apparentNode, const Node *relative, + const Node *actualNode = nullptr); + void generateDetailedMember(const Node *node, const PageNode *relative, CodeMarker *marker); + void generateLink(const Atom *atom); + + QString fileBase(const Node *node) const override; + QString fileName(const Node *node); + + void beginLink(const QString &link); + void beginLink(const QString &link, const Node *node, const Node *relative); + void endLink(); + void generateExtractionMark(const Node *node, ExtractionMarkType markType); + void addIncludeFilesToMap(const Aggregate *aggregate, CodeMarker *marker, + QMap &requisites, Text *text, + const QString &headerText); + void addSinceToMap(const Aggregate *aggregate, QMap &requisites, Text *text, + const QString &sinceText) const; + void addCMakeInfoToMap(const Aggregate *aggregate, QMap &requisites, Text *text, + const QString &CMakeInfo) const; + void addQtVariableToMap(const Aggregate *aggregate, QMap &requisites, Text *text, + const QString &qtVariableText) const; + void addInstantiatedByToMap(QMap &requisites, Text *text, + const QString &instantiatedByText, ClassNode *classe) const; + void addInheritsToMap(QMap &requisites, Text *text, const QString &inheritsText, + ClassNode *classe); + void addInheritedByToMap(QMap &requisites, Text *text, + const QString &inheritedBytext, ClassNode *classe); + void generateTheTable(const QStringList &requisiteOrder, const QMap &requisites, + const QString &headerText, const Aggregate *aggregate, + CodeMarker *marker); + inline void openUnorderedList(); + inline void closeUnorderedList(); + + static bool s_inUnorderedList; + + int m_codeIndent { 0 }; + QString m_codePrefix {}; + QString m_codeSuffix {}; + HelpProjectWriter *m_helpProjectWriter { nullptr }; + ManifestWriter *m_manifestWriter { nullptr }; + QString m_headerScripts {}; + QString m_headerStyles {}; + QString m_endHeader {}; + QString m_postHeader {}; + QString m_postPostHeader {}; + QString m_prologue {}; + QString m_footer {}; + QString m_address {}; + bool m_noNavigationBar { false }; + QString m_project {}; + QString m_projectDescription {}; + QString m_projectUrl {}; + QString m_navigationLinks {}; + QString m_navigationSeparator {}; + QString m_homepage {}; + QString m_hometitle {}; + QString m_landingpage {}; + QString m_landingtitle {}; + QString m_cppclassespage {}; + QString m_cppclassestitle {}; + QString m_qmltypespage {}; + QString m_qmltypestitle {}; + QString m_buildversion {}; + QString m_qflagsHref {}; + int tocDepth {}; + + Config *config { nullptr }; + +}; + +#define HTMLGENERATOR_ADDRESS "address" +#define HTMLGENERATOR_FOOTER "footer" +#define HTMLGENERATOR_POSTHEADER "postheader" +#define HTMLGENERATOR_POSTPOSTHEADER "postpostheader" +#define HTMLGENERATOR_PROLOGUE "prologue" +#define HTMLGENERATOR_NONAVIGATIONBAR "nonavigationbar" +#define HTMLGENERATOR_NAVIGATIONSEPARATOR "navigationseparator" +#define HTMLGENERATOR_TOCDEPTH "tocdepth" + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/importrec.h b/src/qdoc/importrec.h new file mode 100644 index 0000000..84f8f35 --- /dev/null +++ b/src/qdoc/importrec.h @@ -0,0 +1,33 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef IMPORTREC_H +#define IMPORTREC_H + +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +struct ImportRec +{ + QString m_moduleName {}; + QString m_majorMinorVersion {}; + QString m_importUri {}; // subdirectory of module directory + + ImportRec(QString name, QString version, QString importUri) + : m_moduleName(std::move(name)), + m_majorMinorVersion(std::move(version)), + m_importUri(std::move(importUri)) + { + } + QString &name() { return m_moduleName; } + QString &version() { return m_majorMinorVersion; } + [[nodiscard]] bool isEmpty() const { return m_moduleName.isEmpty(); } +}; + +QT_END_NAMESPACE + +#endif // IMPORTREC_H diff --git a/src/qdoc/jscodemarker.cpp b/src/qdoc/jscodemarker.cpp new file mode 100644 index 0000000..0b4a08c --- /dev/null +++ b/src/qdoc/jscodemarker.cpp @@ -0,0 +1,115 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "jscodemarker.h" + +#include "atom.h" +#include "node.h" +#include "qmlmarkupvisitor.h" +#include "text.h" + +#ifndef QT_NO_DECLARATIVE +# include +# include +# include +# include +#endif + +QT_BEGIN_NAMESPACE + +/*! + Returns \c true if the \a code is recognized by the parser. + */ +bool JsCodeMarker::recognizeCode(const QString &code) +{ +#ifndef QT_NO_DECLARATIVE + QQmlJS::Engine engine; + QQmlJS::Lexer lexer(&engine); + QQmlJS::Parser parser(&engine); + + const QString &newCode = code; + lexer.setCode(newCode, 1); + + return parser.parseProgram(); +#else + Q_UNUSED(code); + return false; +#endif +} + +/*! + Returns \c true if \a ext is any of a list of file extensions + for the QML language. + */ +bool JsCodeMarker::recognizeExtension(const QString &ext) +{ + return ext == "js"; +} + +/*! + Returns \c true if the \a language is recognized. We recognize JavaScript and + ECMAScript. + */ +bool JsCodeMarker::recognizeLanguage(const QString &language) +{ + return language == "JavaScript" || language == "ECMAScript"; +} + +/*! + Returns the type of atom used to represent JavaScript code in the documentation. +*/ +Atom::AtomType JsCodeMarker::atomType() const +{ + return Atom::JavaScript; +} + +QString JsCodeMarker::markedUpCode(const QString &code, const Node *relative, + const Location &location) +{ + return addMarkUp(code, relative, location); +} + +QString JsCodeMarker::addMarkUp(const QString &code, const Node * /* relative */, + const Location &location) +{ +#ifndef QT_NO_DECLARATIVE + QQmlJS::Engine engine; + QQmlJS::Lexer lexer(&engine); + + QString newCode = code; + QList pragmas = extractPragmas(newCode); + lexer.setCode(newCode, 1); + + QQmlJS::Parser parser(&engine); + QString output; + + if (parser.parseProgram()) { + QQmlJS::AST::Node *ast = parser.rootNode(); + // Pass the unmodified code to the visitor so that pragmas and other + // unhandled source text can be output. + QmlMarkupVisitor visitor(code, pragmas, &engine); + QQmlJS::AST::Node::accept(ast, &visitor); + if (visitor.hasError()) { + location.warning( + location.fileName() + + QStringLiteral("Unable to analyze JavaScript. The output is incomplete.")); + } + output = visitor.markedUpCode(); + } else { + location.warning( + location.fileName() + + QStringLiteral("Unable to parse JavaScript: \"%1\" at line %2, column %3") + .arg(parser.errorMessage()) + .arg(parser.errorLineNumber()) + .arg(parser.errorColumnNumber())); + output = protect(code); + } + return output; +#else + Q_UNUSED(code); + location.warning("QtDeclarative not installed; cannot parse QML or JS."); + return QString(); +#endif +} + +QT_END_NAMESPACE diff --git a/src/qdoc/jscodemarker.h b/src/qdoc/jscodemarker.h new file mode 100644 index 0000000..1967903 --- /dev/null +++ b/src/qdoc/jscodemarker.h @@ -0,0 +1,31 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef JSCODEMARKER_H +#define JSCODEMARKER_H + +#include "qmlcodemarker.h" + +QT_BEGIN_NAMESPACE + +class JsCodeMarker : public QmlCodeMarker +{ +public: + JsCodeMarker() = default; + ~JsCodeMarker() override = default; + + bool recognizeCode(const QString &code) override; + bool recognizeExtension(const QString &ext) override; + bool recognizeLanguage(const QString &language) override; + [[nodiscard]] Atom::AtomType atomType() const override; + + QString markedUpCode(const QString &code, const Node *relative, + const Location &location) override; + +private: + QString addMarkUp(const QString &code, const Node *relative, const Location &location); +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/location.cpp b/src/qdoc/location.cpp new file mode 100644 index 0000000..87cf481 --- /dev/null +++ b/src/qdoc/location.cpp @@ -0,0 +1,419 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "location.h" + +#include "config.h" + +#include +#include +#include + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +int Location::s_tabSize; +int Location::s_warningCount = 0; +int Location::s_warningLimit = -1; +QString Location::s_programName; +QString Location::s_project; +QRegularExpression *Location::s_spuriousRegExp = nullptr; + +/*! + \class Location + + \brief The Location class provides a way to mark a location in a file. + + It maintains a stack of file positions. A file position + consists of the file path, line number, and column number. + The location is used for printing error messages that are + tied to a location in a file. + */ + +/*! + Constructs an empty location. + */ +Location::Location() : m_stk(nullptr), m_stkTop(&m_stkBottom), m_stkDepth(0), m_etc(false) +{ + // nothing. +} + +/*! + Constructs a location with (fileName, 1, 1) on its file + position stack. + */ +Location::Location(const QString &fileName) + : m_stk(nullptr), m_stkTop(&m_stkBottom), m_stkDepth(0), m_etc(false) +{ + push(fileName); +} + +/*! + The copy constructor copies the contents of \a other into + this Location using the assignment operator. + */ +Location::Location(const Location &other) + : m_stk(nullptr), m_stkTop(&m_stkBottom), m_stkDepth(0), m_etc(false) +{ + *this = other; +} + +/*! + The assignment operator does a deep copy of the entire + state of \a other into this Location. + */ +Location &Location::operator=(const Location &other) +{ + QStack *oldStk = m_stk; + + m_stkBottom = other.m_stkBottom; + if (other.m_stk == nullptr) { + m_stk = nullptr; + m_stkTop = &m_stkBottom; + } else { + m_stk = new QStack(*other.m_stk); + m_stkTop = &m_stk->top(); + } + m_stkDepth = other.m_stkDepth; + m_etc = other.m_etc; + delete oldStk; + return *this; +} + +/*! + If the file position on top of the stack has a line number + less than 1, set its line number to 1 and its column number + to 1. Otherwise, do nothing. + */ +void Location::start() +{ + if (m_stkTop->m_lineNo < 1) { + m_stkTop->m_lineNo = 1; + m_stkTop->m_columnNo = 1; + } +} + +/*! + Advance the current file position, using \a ch to decide how to do + that. If \a ch is a \c{'\\n'}, increment the current line number and + set the column number to 1. If \ch is a \c{'\\t'}, increment to the + next tab column. Otherwise, increment the column number by 1. + + The current file position is the one on top of the position stack. + */ +void Location::advance(QChar ch) +{ + if (ch == QLatin1Char('\n')) { + m_stkTop->m_lineNo++; + m_stkTop->m_columnNo = 1; + } else if (ch == QLatin1Char('\t')) { + m_stkTop->m_columnNo = 1 + s_tabSize * (m_stkTop->m_columnNo + s_tabSize - 1) / s_tabSize; + } else { + m_stkTop->m_columnNo++; + } +} + +/*! + Pushes \a filePath onto the file position stack. The current + file position becomes (\a filePath, 1, 1). + + \sa pop() +*/ +void Location::push(const QString &filePath) +{ + if (m_stkDepth++ >= 1) { + if (m_stk == nullptr) + m_stk = new QStack; + m_stk->push(StackEntry()); + m_stkTop = &m_stk->top(); + } + + m_stkTop->m_filePath = filePath; + m_stkTop->m_lineNo = INT_MIN; + m_stkTop->m_columnNo = 1; +} + +/*! + Pops the top of the internal stack. The current file position + becomes the next one in the new top of stack. + + \sa push() +*/ +void Location::pop() +{ + if (--m_stkDepth == 0) { + m_stkBottom = StackEntry(); + } else { + if (!m_stk) + return; + m_stk->pop(); + if (m_stk->isEmpty()) { + delete m_stk; + m_stk = nullptr; + m_stkTop = &m_stkBottom; + } else { + m_stkTop = &m_stk->top(); + } + } +} + +/*! \fn bool Location::isEmpty() const + + Returns \c true if there is no file name set yet; returns \c false + otherwise. The functions filePath(), lineNo() and columnNo() + must not be called on an empty Location object. + */ + +/*! \fn const QString &Location::filePath() const + Returns the current path and file name. If the Location is + empty, the returned string is null. + + \sa lineNo(), columnNo() + */ + +/*! + Returns the file name part of the file path, ie the current + file. Returns an empty string if the file path is empty. + */ +QString Location::fileName() const +{ + QFileInfo fi(filePath()); + return fi.fileName(); +} + +/*! + Returns the suffix of the file name. Returns an empty string + if the file path is empty. + */ +QString Location::fileSuffix() const +{ + QString fp = filePath(); + return (fp.isEmpty() ? fp : fp.mid(fp.lastIndexOf('.') + 1)); +} + +/*! \fn int Location::lineNo() const + Returns the current line number. + Must not be called on an empty Location object. + + \sa filePath(), columnNo() +*/ + +/*! \fn int Location::columnNo() const + Returns the current column number. + Must not be called on an empty Location object. + + \sa filePath(), lineNo() +*/ + +/*! + Writes \a message and \a details to stderr as a formatted + warning message. Does not write the message if qdoc is in + the Prepare phase. + */ +void Location::warning(const QString &message, const QString &details) const +{ + const auto &config = Config::instance(); + if (!config.preparing() || config.singleExec()) + emitMessage(Warning, message, details); +} + +/*! + Writes \a message and \a details to stderr as a formatted + error message. Does not write the message if qdoc is in + the Prepare phase. + */ +void Location::error(const QString &message, const QString &details) const +{ + const auto &config = Config::instance(); + if (!config.preparing() || config.singleExec()) + emitMessage(Error, message, details); +} + +/*! + Returns the error code QDoc should exit with; EXIT_SUCCESS + or the number of documentation warnings if they exceeded + the limit set by warninglimit configuration variable. + */ +int Location::exitCode() +{ + if (s_warningLimit < 0 || s_warningCount <= s_warningLimit) + return EXIT_SUCCESS; + + Location().emitMessage( + Error, + QStringLiteral("Documentation warnings (%1) exceeded the limit (%2) for '%3'.") + .arg(QString::number(s_warningCount), QString::number(s_warningLimit), + s_project), + QString()); + return s_warningCount; +} + +/*! + Writes \a message and \a details to stderr as a formatted + error message and then exits the program. qdoc prints fatal + errors in either phase (Prepare or Generate). + */ +void Location::fatal(const QString &message, const QString &details) const +{ + emitMessage(Error, message, details); + information(message); + information(details); + information("Aborting"); + exit(EXIT_FAILURE); +} + +/*! + Writes \a message and \a details to stderr as a formatted + report message. + */ +void Location::report(const QString &message, const QString &details) const +{ + emitMessage(Report, message, details); +} + +/*! + Gets several parameters from the config, including + tab size, program name, and a regular expression that + appears to be used for matching certain error messages + so that emitMessage() can avoid printing them. + */ +void Location::initialize() +{ + Config &config = Config::instance(); + s_tabSize = config.getInt(CONFIG_TABSIZE); + s_programName = config.programName(); + s_project = config.getString(CONFIG_PROJECT); + if (!config.singleExec()) + s_warningCount = 0; + if (qEnvironmentVariableIsSet("QDOC_ENABLE_WARNINGLIMIT") + || config.getBool(CONFIG_WARNINGLIMIT + Config::dot + "enabled")) + s_warningLimit = config.getInt(CONFIG_WARNINGLIMIT); + + QRegularExpression regExp = config.getRegExp(CONFIG_SPURIOUS); + if (regExp.isValid()) { + s_spuriousRegExp = new QRegularExpression(regExp); + } else { + config.lastLocation().warning( + QStringLiteral("Invalid regular expression '%1'").arg(regExp.pattern())); + } +} + +/*! + Apparently, all this does is delete the regular expression + used for intercepting certain error messages that should + not be emitted by emitMessage(). + */ +void Location::terminate() +{ + delete s_spuriousRegExp; + s_spuriousRegExp = nullptr; +} + +/*! + Prints \a message to \c stdout followed by a \c{'\n'}. + */ +void Location::information(const QString &message) +{ + printf("%s\n", message.toLatin1().data()); + fflush(stdout); +} + +/*! + Report a program bug, including the \a hint. + */ +void Location::internalError(const QString &hint) +{ + Location().fatal(QStringLiteral("Internal error (%1)").arg(hint), + QStringLiteral("There is a bug in %1. Seek advice from your local" + " %2 guru.") + .arg(s_programName, s_programName)); +} + +/*! + Formats \a message and \a details into a single string + and outputs that string to \c stderr. \a type specifies + whether the \a message is an error or a warning. + */ +void Location::emitMessage(MessageType type, const QString &message, const QString &details) const +{ + if (type == Warning && s_spuriousRegExp != nullptr) { + auto match = s_spuriousRegExp->match(message, 0, QRegularExpression::NormalMatch, + QRegularExpression::AnchorAtOffsetMatchOption); + if (match.hasMatch() && match.capturedLength() == message.size()) + return; + } + + QString result = message; + if (!details.isEmpty()) + result += "\n[" + details + QLatin1Char(']'); + result.replace("\n", "\n "); + if (isEmpty()) { + if (type == Error) + result.prepend(QStringLiteral(": error: ")); + else if (type == Warning) { + result.prepend(QStringLiteral(": warning: ")); + ++s_warningCount; + } + } else { + if (type == Error) + result.prepend(QStringLiteral(": (qdoc) error: ")); + else if (type == Warning) { + result.prepend(QStringLiteral(": (qdoc) warning: ")); + ++s_warningCount; + } + } + if (type != Report) + result.prepend(toString()); + fprintf(stderr, "%s\n", result.toLatin1().data()); + fflush(stderr); +} + +/*! + Converts the location to a string to be prepended to error + messages. + */ +QString Location::toString() const +{ + QString str; + + if (isEmpty()) { + str = s_programName; + } else { + Location loc2 = *this; + loc2.setEtc(false); + loc2.pop(); + if (!loc2.isEmpty()) { + QString blah = QStringLiteral("In file included from "); + for (;;) { + str += blah; + str += loc2.top(); + loc2.pop(); + if (loc2.isEmpty()) + break; + str += QStringLiteral(",\n"); + blah.fill(' '); + } + str += QStringLiteral(":\n"); + } + str += top(); + } + return str; +} + +QString Location::top() const +{ + QDir path(filePath()); + QString str = path.absolutePath(); + if (lineNo() >= 1) { + str += QLatin1Char(':'); + str += QString::number(lineNo()); + } + if (etc()) + str += QLatin1String(" (etc.)"); + return str; +} + +QT_END_NAMESPACE diff --git a/src/qdoc/location.h b/src/qdoc/location.h new file mode 100644 index 0000000..8427bc9 --- /dev/null +++ b/src/qdoc/location.h @@ -0,0 +1,92 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef LOCATION_H +#define LOCATION_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QRegularExpression; + +class Location +{ +public: + Location(); + explicit Location(const QString &filePath); + Location(const Location &other); + ~Location() { delete m_stk; } + + Location &operator=(const Location &other); + + void start(); + void advance(QChar ch); + void advanceLines(int n) + { + m_stkTop->m_lineNo += n; + m_stkTop->m_columnNo = 1; + } + + void push(const QString &filePath); + void pop(); + void setEtc(bool etc) { m_etc = etc; } + void setLineNo(int no) { m_stkTop->m_lineNo = no; } + void setColumnNo(int no) { m_stkTop->m_columnNo = no; } + + [[nodiscard]] bool isEmpty() const { return m_stkDepth == 0; } + [[nodiscard]] int depth() const { return m_stkDepth; } + [[nodiscard]] const QString &filePath() const { return m_stkTop->m_filePath; } + [[nodiscard]] QString fileName() const; + [[nodiscard]] QString fileSuffix() const; + [[nodiscard]] int lineNo() const { return m_stkTop->m_lineNo; } + [[nodiscard]] int columnNo() const { return m_stkTop->m_columnNo; } + [[nodiscard]] bool etc() const { return m_etc; } + [[nodiscard]] QString toString() const; + void warning(const QString &message, const QString &details = QString()) const; + void error(const QString &message, const QString &details = QString()) const; + void fatal(const QString &message, const QString &details = QString()) const; + void report(const QString &message, const QString &details = QString()) const; + + static void initialize(); + + static void terminate(); + static void information(const QString &message); + static void internalError(const QString &hint); + static int exitCode(); + +private: + enum MessageType { Warning, Error, Report }; + + struct StackEntry + { + QString m_filePath {}; + int m_lineNo {}; + int m_columnNo {}; + }; + friend class QTypeInfo; + + void emitMessage(MessageType type, const QString &message, const QString &details) const; + [[nodiscard]] QString top() const; + +private: + StackEntry m_stkBottom {}; + QStack *m_stk {}; + StackEntry *m_stkTop {}; + int m_stkDepth {}; + bool m_etc {}; + + static int s_tabSize; + static int s_warningCount; + static int s_warningLimit; + static QString s_programName; + static QString s_project; + static QRegularExpression *s_spuriousRegExp; +}; +Q_DECLARE_TYPEINFO(Location::StackEntry, Q_RELOCATABLE_TYPE); +Q_DECLARE_TYPEINFO(Location, Q_COMPLEX_TYPE); // stkTop = &stkBottom + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/macro.h b/src/qdoc/macro.h new file mode 100644 index 0000000..11e77fa --- /dev/null +++ b/src/qdoc/macro.h @@ -0,0 +1,27 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#ifndef MACRO_H +#define MACRO_H + +#include "location.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +/*! + * Simple structure used by the Doc and DocParser classes. + */ +struct Macro +{ +public: + QString m_defaultDef {}; + Location m_defaultDefLocation {}; + QMap m_otherDefs {}; + int numParams {}; +}; + +QT_END_NAMESPACE + +#endif // MACRO_H diff --git a/src/qdoc/main.cpp b/src/qdoc/main.cpp new file mode 100644 index 0000000..2c4dca4 --- /dev/null +++ b/src/qdoc/main.cpp @@ -0,0 +1,683 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "clangcodeparser.h" +#include "codemarker.h" +#include "codeparser.h" +#include "config.h" +#include "cppcodemarker.h" +#include "doc.h" +#include "docbookgenerator.h" +#include "htmlgenerator.h" +#include "jscodemarker.h" +#include "location.h" +#include "puredocparser.h" +#include "qdocdatabase.h" +#include "qmlcodemarker.h" +#include "qmlcodeparser.h" +#include "utilities.h" +#include "qtranslator.h" +#include "tokenizer.h" +#include "tree.h" +#include "webxmlgenerator.h" + +#include "filesystem/fileresolver.hpp" +#include "boundaries/filesystem/directorypath.hpp" + +#include +#include +#include +#include + +#ifndef QT_BOOTSTRAPPED +# include +#endif + +#include +#include + +QT_BEGIN_NAMESPACE + +bool creationTimeBefore(const QFileInfo &fi1, const QFileInfo &fi2) +{ + return fi1.lastModified() < fi2.lastModified(); +} + +#ifndef QT_NO_TRANSLATION +typedef std::pair Translator; +static QList translators; +#endif + +static ClangCodeParser *clangParser_ = nullptr; + +/*! + Read some XML indexes containing definitions from other + documentation sets. \a config contains a variable that + lists directories where index files can be found. It also + contains the \c depends variable, which lists the modules + that the current module depends on. \a formats contains + a list of output formats; each format may have a different + output subdirectory where index files are located. +*/ +static void loadIndexFiles(const QSet &formats) +{ + Config &config = Config::instance(); + QDocDatabase *qdb = QDocDatabase::qdocDB(); + QStringList indexFiles; + const QStringList configIndexes = config.getStringList(CONFIG_INDEXES); + bool warn = !config.getBool(CONFIG_NOLINKERRORS); + + for (const auto &index : configIndexes) { + QFileInfo fi(index); + if (fi.exists() && fi.isFile()) + indexFiles << index; + else if (warn) + Location().warning(QString("Index file not found: %1").arg(index)); + } + + config.dependModules() += config.getStringList(CONFIG_DEPENDS); + config.dependModules().removeDuplicates(); + bool useNoSubDirs = false; + QSet subDirs; + + for (const auto &format : formats) { + if (config.getBool(format + Config::dot + "nosubdirs")) { + useNoSubDirs = true; + QString singleOutputSubdir = config.getString(format + Config::dot + "outputsubdir"); + if (singleOutputSubdir.isEmpty()) + singleOutputSubdir = "html"; + subDirs << singleOutputSubdir; + } + } + + if (!config.dependModules().empty()) { + if (!config.indexDirs().empty()) { + for (auto &dir : config.indexDirs()) { + if (dir.startsWith("..")) { + const QString prefix(QDir(config.currentDir()) + .relativeFilePath(config.previousCurrentDir())); + if (!prefix.isEmpty()) + dir.prepend(prefix + QLatin1Char('/')); + } + } + /* + Load all dependencies: + Either add all subdirectories of the indexdirs as dependModules, + when an asterisk is used in the 'depends' list, or + when .nosubdirs is set, we need to look for all .index files + in the output subdirectory instead. + */ + bool asteriskUsed = false; + if (config.dependModules().contains("*")) { + config.dependModules().removeOne("*"); + asteriskUsed = true; + if (useNoSubDirs) { + std::for_each(formats.begin(), formats.end(), [&](const QString &format) { + QDir scanDir(config.getOutputDir(format)); + QStringList foundModules = + scanDir.entryList(QStringList("*.index"), QDir::Files); + std::transform( + foundModules.begin(), foundModules.end(), foundModules.begin(), + [](const QString &index) { return QFileInfo(index).baseName(); }); + config.dependModules() << foundModules; + }); + } else { + for (const auto &indexDir : config.indexDirs()) { + QDir scanDir = QDir(indexDir); + scanDir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot); + QFileInfoList dirList = scanDir.entryInfoList(); + for (const auto &dir : dirList) + config.dependModules().append(dir.fileName()); + } + } + // Remove self-dependencies and possible duplicates + config.dependModules().removeAll(config.getString(CONFIG_PROJECT).toLower()); + config.dependModules().removeDuplicates(); + qCCritical(lcQdoc) << "qdocconf file has depends = *; loading all " + << config.dependModules().count() + << " index files found"; + } + for (const auto &module : config.dependModules()) { + QList foundIndices; + // Always look in module-specific subdir, even with *.nosubdirs config + bool useModuleSubDir = !subDirs.contains(module); + subDirs << module; + + for (const auto &dir : config.indexDirs()) { + for (const auto &subDir : subDirs) { + QString fileToLookFor = dir + QLatin1Char('/') + subDir + QLatin1Char('/') + + module + ".index"; + if (QFile::exists(fileToLookFor)) { + QFileInfo tempFileInfo(fileToLookFor); + if (!foundIndices.contains(tempFileInfo)) + foundIndices.append(tempFileInfo); + } + } + } + // Clear the temporary module-specific subdir + if (useModuleSubDir) + subDirs.remove(module); + std::sort(foundIndices.begin(), foundIndices.end(), creationTimeBefore); + QString indexToAdd; + if (foundIndices.size() > 1) { + /* + QDoc should always use the last entry in the multimap when there are + multiple index files for a module, since the last modified file has the + highest UNIX timestamp. + */ + QStringList indexPaths; + indexPaths.reserve(foundIndices.size()); + for (const auto &found : std::as_const(foundIndices)) + indexPaths << found.absoluteFilePath(); + if (warn) { + Location().warning( + QString("Multiple index files found for dependency \"%1\":\n%2") + .arg(module, indexPaths.join('\n'))); + Location().warning( + QString("Using %1 as index file for dependency \"%2\"") + .arg(foundIndices[foundIndices.size() - 1].absoluteFilePath(), + module)); + } + indexToAdd = foundIndices[foundIndices.size() - 1].absoluteFilePath(); + } else if (foundIndices.size() == 1) { + indexToAdd = foundIndices[0].absoluteFilePath(); + } + if (!indexToAdd.isEmpty()) { + if (!indexFiles.contains(indexToAdd)) + indexFiles << indexToAdd; + } else if (!asteriskUsed && warn) { + Location().warning( + QString(R"("%1" Cannot locate index file for dependency "%2")") + .arg(config.getString(CONFIG_PROJECT), module)); + } + } + } else if (warn) { + Location().warning( + QLatin1String("Dependent modules specified, but no index directories were set. " + "There will probably be errors for missing links.")); + } + } + qdb->readIndexes(indexFiles); +} + +/*! + \internal + Prints to stderr the name of the project that QDoc is running for, + in which mode and which phase. + + If QDoc is running in debug mode, also logs the command line arguments. + */ +void logStartEndMessage(const QLatin1String &startStop, const Config &config) +{ + const QString runName = " qdoc for " + + config.getString(CONFIG_PROJECT) + + QLatin1String(" in ") + + QLatin1String(config.singleExec() ? "single" : "dual") + + QLatin1String(" process mode: ") + + QLatin1String(config.preparing() ? "prepare" : "generate") + + QLatin1String(" phase."); + + const QString msg = startStop + runName; + qCInfo(lcQdoc) << msg.toUtf8().data(); +} + +/*! + Processes the qdoc config file \a fileName. This is the controller for all + of QDoc. The \a config instance represents the configuration data for QDoc. + All other classes are initialized with the same config. + */ +static void processQdocconfFile(const QString &fileName) +{ + Config &config = Config::instance(); + config.setPreviousCurrentDir(QDir::currentPath()); + + /* + With the default configuration values in place, load + the qdoc configuration file. Note that the configuration + file may include other configuration files. + + The Location class keeps track of the current location + in the file being processed, mainly for error reporting + purposes. + */ + Location::initialize(); + config.load(fileName); + QString project = config.getString(CONFIG_PROJECT); + if (project.isEmpty()) { + qCCritical(lcQdoc) << QLatin1String("qdoc can't run; no project set in qdocconf file"); + exit(1); + } + Location::terminate(); + + config.setCurrentDir(QFileInfo(fileName).path()); + if (!config.currentDir().isEmpty()) + QDir::setCurrent(config.currentDir()); + + logStartEndMessage(QLatin1String("Start"), config); + + if (config.getDebug()) { + Utilities::startDebugging(QString("command line")); + qCDebug(lcQdoc).noquote() << "Arguments:" << QCoreApplication::arguments(); + } + + // < excludedDirs = QSet(excludedDirList.cbegin(), excludedDirList.cend()); + const auto &excludedFilesList = config.getCanonicalPathList(CONFIG_EXCLUDEFILES); + QSet excludedFiles = + QSet(excludedFilesList.cbegin(), excludedFilesList.cend()); + + qCDebug(lcQdoc, "Adding doc/image dirs found in exampledirs to imagedirs"); + QSet exampleImageDirs; + QStringList exampleImageList = config.getExampleImageFiles(excludedDirs, excludedFiles); + for (const auto &image : exampleImageList) { + if (image.contains("doc/images")) { + QString t = image.left(image.lastIndexOf("doc/images") + 10); + if (!exampleImageDirs.contains(t)) + exampleImageDirs.insert(t); + } + } + + // REMARK: The previous system discerned between search directories based on the kind of file that was searched for. + // For example, an image search was bounded to some directories + // that may or may not be the same as the ones where examples are + // searched for. + // The current Qt documentation does not use this feature. That + // is, the output of QDoc when a unified search list is used is + // the same as the output for that of separated lists. + // For this reason, we currently simplify the process, albeit this + // may at some point change, by joining the various lists into a + // single search list and a unified interface. + // Do note that the configuration still allows for those + // parameters to be user defined in a split-way as this will not + // be able to be changed until Config itself is looked upon. + // Hence, we join the various directory sources into one list for the time being. + // Do note that this means that the amount of searched directories for a file is now increased. + // This shouldn't matter as the amount of directories is expected + // to be generally small and the search routine complexity is + // linear in the amount of directories. + // There are some complications that may arise in very specific + // cases by this choice (some of which where there before under + // possibly different circumstances), making some files + // unreachable. + // See the remarks in FileResolver for more infomration. + std::copy(image_search_directories.begin(), image_search_directories.end(), std::back_inserter(search_directories)); + std::copy(exampleImageDirs.begin(), exampleImageDirs.end(), std::back_inserter(search_directories)); + + std::vector validated_search_directories{}; + for (const QString& path : search_directories) { + auto maybe_validated_path{DirectoryPath::refine(path)}; + if (!maybe_validated_path) + // TODO: [uncentralized-admonition] + qCDebug(lcQdoc).noquote() << u"%1 is not a valid path, it will be ignored when resolving a file"_qs.arg(path); + else validated_search_directories.push_back(*maybe_validated_path); + } + + // TODO>> + + FileResolver file_resolver{std::move(validated_search_directories)}; + + // REMARK: The constructor for generators doesn't actually perform + // initialization of their content. + // Indeed, Generators use the general antipattern of the static + // initialize-terminate non-scoped mutable state that we see in + // many parts of QDoc. + // In their constructor, Generators mainly register themselves into a static list. + // Previously, this was done at the start of main. + // To be able to pass a correct FileResolver or other systems, we + // need to construct them after the configuration has been read + // and has been destructured. + // For this reason, their construction was moved here. + // This function may be called more than once for some of QDoc's + // call, albeit this should not actually happen in Qt's + // documentation. + // Then, constructing the generators here might provide for some + // unexpected behavior as new generators are appended to the list + // and never used, considering that the list is searched in a + // linearly fashion and each generator of some type T, in the + // current codebase, will always be found if another instance of + // that same type would have been found. + // Furthermore, those instances would be destroyed by then, such + // that accessing them would be erroneous. + // To avoid this, the static list was made to be cleared in + // Generator::terminate, which, in theory, will be called before + // the generators will be constructed again. + // We could have used the initialize method for this, but this + // would force us into a limited and more complex semantic, see an + // example of this in DocParser, and would restrain us further to + // the initialize-terminate idiom which is expect to be purged in + // the future. + HtmlGenerator htmlGenerator{file_resolver}; + WebXMLGenerator webXMLGenerator{file_resolver}; + DocBookGenerator docBookGenerator{file_resolver}; + + /* + Initialize all the classes and data structures with the + qdoc configuration. This is safe to do for each qdocconf + file processed, because all the data structures created + are either cleared after they have been used, or they + are cleared in the terminate() functions below. + */ + Location::initialize(); + Tokenizer::initialize(); + CodeMarker::initialize(); + CodeParser::initialize(); + Generator::initialize(); + Doc::initialize(file_resolver); + +#ifndef QT_NO_TRANSLATION + /* + Load the language translators, if the configuration specifies any, + but only if they haven't already been loaded. This works in both + -prepare/-generate mode and -singleexec mode. + */ + const QStringList fileNames = config.getStringList(CONFIG_TRANSLATORS); + for (const auto &file : fileNames) { + bool found = false; + if (!translators.isEmpty()) { + for (const auto &translator : translators) { + if (translator.first == file) { + found = true; + break; + } + } + } + if (!found) { + auto *translator = new QTranslator(nullptr); + if (!translator->load(file)) { + config.lastLocation().error( + QCoreApplication::translate("QDoc", "Cannot load translator '%1'") + .arg(file)); + } else { + QCoreApplication::instance()->installTranslator(translator); + translators.append(Translator(file, translator)); + } + } + } +#endif + + /* + Get the source language (Cpp) from the configuration + and the location in the configuration file where the + source language was set. + */ + Location langLocation = config.lastLocation(); + + /* + Initialize the qdoc database, where all the parsed source files + will be stored. The database includes a tree of nodes, which gets + built as the source files are parsed. The documentation output is + generated by traversing that tree. + + Note: qdocDB() allocates a new instance only if no instance exists. + So it is safe to call qdocDB() any time. + */ + QDocDatabase *qdb = QDocDatabase::qdocDB(); + qdb->setVersion(config.getString(CONFIG_VERSION)); + /* + By default, the only output format is HTML. + */ + QSet outputFormats = config.getOutputFormats(); + Location outputFormatsLocation = config.lastLocation(); + + qdb->clearSearchOrder(); + if (!config.singleExec()) { + if (!config.preparing()) { + qCDebug(lcQdoc, " loading index files"); + loadIndexFiles(outputFormats); + qCDebug(lcQdoc, " done loading index files"); + } + qdb->newPrimaryTree(project); + } else if (config.preparing()) + qdb->newPrimaryTree(project); + else + qdb->setPrimaryTree(project); + + const QString moduleHeader = config.getString(CONFIG_MODULEHEADER); + if (!moduleHeader.isNull()) + clangParser_->setModuleHeader(moduleHeader); + else + clangParser_->setModuleHeader(project); + + // Retrieve the dependencies if loadIndexFiles() was not called + if (config.dependModules().isEmpty()) { + config.dependModules() = config.getStringList(CONFIG_DEPENDS); + config.dependModules().removeDuplicates(); + } + qdb->setSearchOrder(config.dependModules()); + + // Store the title of the index (landing) page + NamespaceNode *root = qdb->primaryTreeRoot(); + if (root) { + QString title = config.getString(CONFIG_NAVIGATION + Config::dot + CONFIG_LANDINGPAGE); + root->tree()->setIndexTitle( + config.getString(CONFIG_NAVIGATION + Config::dot + CONFIG_LANDINGTITLE, title)); + } + + if (config.dualExec() || config.preparing()) { + QStringList headerList; + QStringList sourceList; + + qCDebug(lcQdoc, "Reading headerdirs"); + headerList = + config.getAllFiles(CONFIG_HEADERS, CONFIG_HEADERDIRS, excludedDirs, excludedFiles); + QMap headers; + QMultiMap headerFileNames; + for (const auto &header : headerList) { + if (header.contains(QLatin1String("doc/snippets"))) + continue; + if (headers.contains(header)) + continue; + headers.insert(header, header); + QString t = header.mid(header.lastIndexOf('/') + 1); + headerFileNames.insert(t, t); + } + + qCDebug(lcQdoc, "Reading sourcedirs"); + sourceList = + config.getAllFiles(CONFIG_SOURCES, CONFIG_SOURCEDIRS, excludedDirs, excludedFiles); + QMap sources; + QMultiMap sourceFileNames; + for (const auto &source : sourceList) { + if (source.contains(QLatin1String("doc/snippets"))) + continue; + if (sources.contains(source)) + continue; + sources.insert(source, source); + QString t = source.mid(source.lastIndexOf('/') + 1); + sourceFileNames.insert(t, t); + } + /* + Find all the qdoc files in the example dirs, and add + them to the source files to be parsed. + */ + qCDebug(lcQdoc, "Reading exampledirs"); + QStringList exampleQdocList = config.getExampleQdocFiles(excludedDirs, excludedFiles); + for (const auto &example : exampleQdocList) { + if (!sources.contains(example)) { + sources.insert(example, example); + QString t = example.mid(example.lastIndexOf('/') + 1); + sourceFileNames.insert(t, t); + } + } + /* + Parse each header file in the set using the appropriate parser and add it + to the big tree. + */ + + qCDebug(lcQdoc, "Parsing header files"); + int parsed = 0; + for (auto it = headers.constBegin(); it != headers.constEnd(); ++it) { + CodeParser *codeParser = CodeParser::parserForHeaderFile(it.key()); + if (codeParser) { + ++parsed; + qCDebug(lcQdoc, "Parsing %s", qPrintable(it.key())); + codeParser->parseHeaderFile(config.location(), it.key()); + } + } + + clangParser_->precompileHeaders(); + + /* + Parse each source text file in the set using the appropriate parser and + add it to the big tree. + */ + parsed = 0; + qCInfo(lcQdoc) << "Parse source files for" << project; + for (const auto &key : sources.keys()) { + auto *codeParser = CodeParser::parserForSourceFile(key); + if (codeParser) { + ++parsed; + qCDebug(lcQdoc, "Parsing %s", qPrintable(key)); + codeParser->parseSourceFile(config.location(), key); + } + } + qCInfo(lcQdoc) << "Source files parsed for" << project; + } + /* + Now the primary tree has been built from all the header and + source files. Resolve all the class names, function names, + targets, URLs, links, and other stuff that needs resolving. + */ + qCDebug(lcQdoc, "Resolving stuff prior to generating docs"); + qdb->resolveStuff(); + + /* + The primary tree is built and all the stuff that needed + resolving has been resolved. Now traverse the tree and + generate the documentation output. More than one output + format can be requested. The tree is traversed for each + one. + */ + qCDebug(lcQdoc, "Generating docs"); + for (const auto &format : outputFormats) { + auto *generator = Generator::generatorForFormat(format); + if (generator == nullptr) + outputFormatsLocation.fatal( + QCoreApplication::translate("QDoc", "Unknown output format '%1'").arg(format)); + generator->initializeFormat(); + generator->generateDocs(); + } + + qCDebug(lcQdoc, "Terminating qdoc classes"); + if (Utilities::debugging()) + Utilities::stopDebugging(project); + + logStartEndMessage(QLatin1String("End"), config); + QDocDatabase::qdocDB()->setVersion(QString()); + Generator::terminate(); + CodeParser::terminate(); + CodeMarker::terminate(); + Doc::terminate(); + Tokenizer::terminate(); + Location::terminate(); + QDir::setCurrent(config.previousCurrentDir()); + + qCDebug(lcQdoc, "qdoc classes terminated"); +} + +QT_END_NAMESPACE + +int main(int argc, char **argv) +{ + QT_USE_NAMESPACE + + // Initialize Qt: +#ifndef QT_BOOTSTRAPPED + qSetGlobalQHashSeed(0); // set the hash seed to 0 if it wasn't set yet +#endif + QCoreApplication app(argc, argv); + app.setApplicationVersion(QLatin1String(QT_VERSION_STR)); + + // Instantiate various singletons (used via static methods): + /* + Create code parsers for the languages to be parsed, + and create a tree for C++. + */ + ClangCodeParser clangParser; + clangParser_ = &clangParser; + QmlCodeParser qmlParser; + PureDocParser docParser; + + /* + Create code markers for plain text, C++, + javascript, and QML. + + The plain CodeMarker must be instantiated first because it is used as + fallback when the other markers cannot be used. + + Each marker instance is prepended to the CodeMarker::markers list by the + base class constructor. + */ + CodeMarker fallbackMarker; + CppCodeMarker cppMarker; + JsCodeMarker jsMarker; + QmlCodeMarker qmlMarker; + + Config::instance().init(QCoreApplication::translate("QDoc", "qdoc"), app.arguments()); + Config &config = Config::instance(); + + // Get the list of files to act on: + QStringList qdocFiles = config.qdocFiles(); + if (qdocFiles.isEmpty()) + config.showHelp(); + + if (config.singleExec()) + qdocFiles = Config::loadMaster(qdocFiles.at(0)); + + if (config.singleExec()) { + // single qdoc process for prepare and generate phases + config.setQDocPass(Config::Prepare); + for (const auto &file : std::as_const(qdocFiles)) { + config.dependModules().clear(); + processQdocconfFile(file); + } + config.setQDocPass(Config::Generate); + QDocDatabase::qdocDB()->processForest(); + for (const auto &file : std::as_const(qdocFiles)) { + config.dependModules().clear(); + processQdocconfFile(file); + } + } else { + // separate qdoc processes for prepare and generate phases + for (const auto &file : std::as_const(qdocFiles)) { + config.dependModules().clear(); + processQdocconfFile(file); + } + } + + // Tidy everything away: +#ifndef QT_NO_TRANSLATION + if (!translators.isEmpty()) { + for (const auto &translator : translators) + delete translator.second; + } + translators.clear(); +#endif + QmlTypeNode::terminate(); + +#ifdef DEBUG_SHUTDOWN_CRASH + qDebug() << "main(): Delete qdoc database"; +#endif + QDocDatabase::destroyQdocDB(); +#ifdef DEBUG_SHUTDOWN_CRASH + qDebug() << "main(): qdoc database deleted"; +#endif + + return Location::exitCode(); +} diff --git a/src/qdoc/manifestwriter.cpp b/src/qdoc/manifestwriter.cpp new file mode 100644 index 0000000..61bdab8 --- /dev/null +++ b/src/qdoc/manifestwriter.cpp @@ -0,0 +1,356 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include "manifestwriter.h" + +#include "config.h" +#include "examplenode.h" +#include "generator.h" +#include "qdocdatabase.h" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +/*! + \internal + + For each attribute in a map of attributes, checks if the attribute is + found in \a usedAttributes. If it is not found, issues a warning specific + to the attribute. + */ +void warnAboutUnusedAttributes(const QStringList &usedAttributes, const ExampleNode *example) +{ + QMap attributesToWarnFor; + attributesToWarnFor.insert(QStringLiteral("imageUrl"), + QStringLiteral("Example documentation should have at least one '\\image'")); + attributesToWarnFor.insert(QStringLiteral("projectPath"), + QStringLiteral("Example has no project file")); + + for (auto it = attributesToWarnFor.cbegin(); it != attributesToWarnFor.cend(); ++it) { + if (!usedAttributes.contains(it.key())) + example->doc().location().warning(example->name() + ": " + it.value()); + } +} + +/*! + \internal + + Write the description element. The description for an example is set + with the \brief command. If no brief is available, the element is set + to "No description available". + */ + +void writeDescription(QXmlStreamWriter *writer, const ExampleNode *example) +{ + Q_ASSERT(writer && example); + writer->writeStartElement("description"); + const Text brief = example->doc().briefText(); + if (!brief.isEmpty()) + writer->writeCDATA(brief.toString()); + else + writer->writeCDATA(QString("No description available")); + writer->writeEndElement(); // description +} + +/*! + \internal + + Returns a list of \a files that Qt Creator should open for the \a exampleName. + */ +QMap getFilesToOpen(const QStringList &files, const QString &exampleName) +{ + QMap filesToOpen; + for (const QString &file : files) { + QFileInfo fileInfo(file); + QString fileName = fileInfo.fileName().toLower(); + // open .qml, .cpp and .h files with a + // basename matching the example (project) name + // QMap key indicates the priority - + // the lowest value will be the top-most file + if ((fileInfo.baseName().compare(exampleName, Qt::CaseInsensitive) == 0)) { + if (fileName.endsWith(".qml")) + filesToOpen.insert(0, file); + else if (fileName.endsWith(".cpp")) + filesToOpen.insert(1, file); + else if (fileName.endsWith(".h")) + filesToOpen.insert(2, file); + } + // main.qml takes precedence over main.cpp + else if (fileName.endsWith("main.qml")) { + filesToOpen.insert(3, file); + } else if (fileName.endsWith("main.cpp")) { + filesToOpen.insert(4, file); + } + } + + return filesToOpen; +} + +/*! + \internal + \brief Writes the lists of files to open for the example. + + Writes out the \a filesToOpen and the full \a installPath through \a writer. + */ +void writeFilesToOpen(QXmlStreamWriter &writer, const QString &installPath, + const QMap &filesToOpen) +{ + for (auto it = filesToOpen.constEnd(); it != filesToOpen.constBegin();) { + writer.writeStartElement("fileToOpen"); + if (--it == filesToOpen.constBegin()) { + writer.writeAttribute(QStringLiteral("mainFile"), QStringLiteral("true")); + } + writer.writeCharacters(installPath + it.value()); + writer.writeEndElement(); + } +} + +/*! + \class ManifestWriter + \internal + \brief The ManifestWriter is responsible for writing manifest files. + */ +ManifestWriter::ManifestWriter() +{ + Config &config = Config::instance(); + m_project = config.getString(CONFIG_PROJECT); + m_outputDirectory = config.getOutputDir(); + m_qdb = QDocDatabase::qdocDB(); + + const QString prefix = CONFIG_QHP + Config::dot + m_project + Config::dot; + m_manifestDir = + QLatin1String("qthelp://") + config.getString(prefix + QLatin1String("namespace")); + m_manifestDir += QLatin1Char('/') + config.getString(prefix + QLatin1String("virtualFolder")) + + QLatin1Char('/'); + readManifestMetaContent(); + m_examplesPath = config.getString(CONFIG_EXAMPLESINSTALLPATH); + if (!m_examplesPath.isEmpty()) + m_examplesPath += QLatin1Char('/'); +} + +template +void ManifestWriter::processManifestMetaContent(const QString &fullName, F matchFunc) +{ + for (const auto &index : m_manifestMetaContent) { + const auto &names = index.m_names; + for (const QString &name : names) { + bool match; + qsizetype wildcard = name.indexOf(QChar('*')); + switch (wildcard) { + case -1: // no wildcard used, exact match required + match = (fullName == name); + break; + case 0: // '*' matches all examples + match = true; + break; + default: // match with wildcard at the end + match = fullName.startsWith(name.left(wildcard)); + } + if (match) + matchFunc(index); + } + } +} + +/*! + This function outputs one or more manifest files in XML. + They are used by Creator. + */ +void ManifestWriter::generateManifestFiles() +{ + generateManifestFile("examples", "example"); + generateManifestFile("demos", "demo"); + m_qdb->exampleNodeMap().clear(); + m_manifestMetaContent.clear(); +} + +/*! + This function is called by generateManifestFiles(), once + for each manifest file to be generated. \a manifest is the + type of manifest file. + */ +void ManifestWriter::generateManifestFile(const QString &manifest, const QString &element) +{ + const ExampleNodeMap &exampleNodeMap = m_qdb->exampleNodeMap(); + if (exampleNodeMap.isEmpty()) + return; + + bool demos = (manifest == QLatin1String("demos")); + if (!std::any_of(exampleNodeMap.cbegin(), exampleNodeMap.cend(), + [demos](const ExampleNode *en) { + return demos == en->name().startsWith("demos"); + })) + return; + + const QString outputFileName = manifest + "-manifest.xml"; + QFile outputFile(m_outputDirectory + QLatin1Char('/') + outputFileName); + if (!outputFile.open(QFile::WriteOnly | QFile::Text)) + return; + + QXmlStreamWriter writer(&outputFile); + writer.setAutoFormatting(true); + writer.writeStartDocument(); + writer.writeStartElement("instructionals"); + writer.writeAttribute("module", m_project); + writer.writeStartElement(manifest); + + for (const auto &example : exampleNodeMap.values()) { + QMap usedAttributes; + if (demos != example->name().startsWith("demos")) + continue; + m_tags.clear(); + const QString installPath = retrieveExampleInstallationPath(example); + const QString fullName = m_project + QLatin1Char('/') + example->title(); + + processManifestMetaContent( + fullName, [&](const ManifestMetaFilter &filter) { m_tags += filter.m_tags; }); + includeTagsAddedWithMetaCommand(example); + // omit from the manifest if explicitly marked broken + if (m_tags.contains("broken")) + continue; + + // attributes that are always written for the element + usedAttributes.insert("name", example->title()); + usedAttributes.insert("docUrl", m_manifestDir + Generator::currentGenerator()->fileBase(example) + ".html"); + + if (!example->projectFile().isEmpty()) + usedAttributes.insert("projectPath", installPath + example->projectFile()); + if (!example->imageFileName().isEmpty()) + usedAttributes.insert("imageUrl", m_manifestDir + example->imageFileName()); + + processManifestMetaContent(fullName, [&](const ManifestMetaFilter &filter) { + const auto attributes = filter.m_attributes; + for (const auto &attribute : attributes) { + const QLatin1Char div(':'); + QStringList attrList = attribute.split(div); + if (attrList.size() == 1) + attrList.append(QStringLiteral("true")); + QString attrName = attrList.takeFirst(); + if (!usedAttributes.contains(attrName)) + usedAttributes.insert(attrName, attrList.join(div)); + } + }); + + // write the example/demo element + writer.writeStartElement(element); + for (auto it = usedAttributes.cbegin(); it != usedAttributes.cend(); ++it) + writer.writeAttribute(it.key(), it.value()); + + warnAboutUnusedAttributes(usedAttributes.keys(), example); + writeDescription(&writer, example); + addModuleNameAsTag(); + writeTagsElement(&writer); + + const QString exampleName = example->name().mid(example->name().lastIndexOf('/') + 1); + const auto files = example->files(); + const QMap filesToOpen = getFilesToOpen(files, exampleName); + writeFilesToOpen(writer, installPath, filesToOpen); + + writer.writeEndElement(); // example/demo + } + + writer.writeEndElement(); // examples + writer.writeEndElement(); // instructionals + writer.writeEndDocument(); + outputFile.close(); +} + +/*! + \internal + + Populates the tags and writes the tags element, then clears the tags member. + */ +void ManifestWriter::writeTagsElement(QXmlStreamWriter *writer) +{ + Q_ASSERT(writer); + if (m_tags.isEmpty()) + return; + + writer->writeStartElement("tags"); + QStringList sortedTags = m_tags.values(); + sortedTags.sort(); + writer->writeCharacters(sortedTags.join(",")); + writer->writeEndElement(); // tags +} + +/*! + \internal + + Add words from module name as tags + QtQuickControls -> quickcontrols + QtOpenGL -> opengl + QtQuick3D -> quick3d + */ +void ManifestWriter::addModuleNameAsTag() +{ + QString moduleName = m_project; + if (moduleName.startsWith("Qt")) + moduleName = moduleName.mid(2); + // Some examples are in QtDoc module, but 'doc' as tag makes little sense + if (moduleName == "Doc") + return; + m_tags << moduleName.toLower(); +} + +/*! + \internal + + Include tags added via \meta {tag} {tag1[,tag2,...]} + within \example topic. + */ +void ManifestWriter::includeTagsAddedWithMetaCommand(const ExampleNode *example) +{ + Q_ASSERT(example); + + const QStringMultiMap *metaTagMap = example->doc().metaTagMap(); + if (metaTagMap) { + for (const auto &tag : metaTagMap->values("tag")) { + const auto &tagList = tag.toLower().split(QLatin1Char(','), Qt::SkipEmptyParts); + m_tags += QSet(tagList.constBegin(), tagList.constEnd()); + } + } +} + +/*! + Reads metacontent - additional attributes and tags to apply + when generating manifest files, read from config. + + The manifest metacontent map is cleared immediately after + the manifest files have been generated. + */ +void ManifestWriter::readManifestMetaContent() +{ + Config &config = Config::instance(); + const QStringList names = + config.getStringList(CONFIG_MANIFESTMETA + Config::dot + QStringLiteral("filters")); + + for (const auto &manifest : names) { + ManifestMetaFilter filter; + QString prefix = CONFIG_MANIFESTMETA + Config::dot + manifest + Config::dot; + filter.m_names = config.getStringSet(prefix + QStringLiteral("names")); + filter.m_attributes = config.getStringSet(prefix + QStringLiteral("attributes")); + filter.m_tags = config.getStringSet(prefix + QStringLiteral("tags")); + m_manifestMetaContent.append(filter); + } +} + +/*! + Retrieve the install path for the \a example as specified with + the \\meta command, or fall back to the one defined in .qdocconf. + */ +QString ManifestWriter::retrieveExampleInstallationPath(const ExampleNode *example) const +{ + QString installPath; + if (example->doc().metaTagMap()) + installPath = example->doc().metaTagMap()->value(QLatin1String("installpath")); + if (installPath.isEmpty()) + installPath = m_examplesPath; + if (!installPath.isEmpty() && !installPath.endsWith(QLatin1Char('/'))) + installPath += QLatin1Char('/'); + + return installPath; +} + +QT_END_NAMESPACE diff --git a/src/qdoc/manifestwriter.h b/src/qdoc/manifestwriter.h new file mode 100644 index 0000000..a1e94d3 --- /dev/null +++ b/src/qdoc/manifestwriter.h @@ -0,0 +1,49 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#ifndef MANIFESTWRITER_H +#define MANIFESTWRITER_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class ExampleNode; +class QDocDatabase; +class QXmlStreamWriter; +class ManifestWriter +{ + struct ManifestMetaFilter + { + QSet m_names {}; + QSet m_attributes {}; + QSet m_tags {}; + }; + +public: + ManifestWriter(); + void generateManifestFiles(); + void generateManifestFile(const QString &manifest, const QString &element); + void readManifestMetaContent(); + QString retrieveExampleInstallationPath(const ExampleNode *example) const; + +private: + QSet m_tags {}; + QString m_manifestDir {}; + QString m_examplesPath {}; + QString m_outputDirectory {}; + QString m_project {}; + QDocDatabase *m_qdb { nullptr }; + QList m_manifestMetaContent {}; + + void addModuleNameAsTag(); + void includeTagsAddedWithMetaCommand(const ExampleNode *example); + void writeTagsElement(QXmlStreamWriter *writer); + template + void processManifestMetaContent(const QString &fullName, F matchFunc); +}; + +QT_END_NAMESPACE + +#endif // MANIFESTWRITER_H diff --git a/src/qdoc/namespacenode.cpp b/src/qdoc/namespacenode.cpp new file mode 100644 index 0000000..22686c0 --- /dev/null +++ b/src/qdoc/namespacenode.cpp @@ -0,0 +1,190 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "namespacenode.h" + +#include "codeparser.h" +#include "tree.h" + +QT_BEGIN_NAMESPACE + +/*! + \class NamespaceNode + \brief This class represents a C++ namespace. + + A namespace can be used in multiple C++ modules, so there + can be a NamespaceNode for namespace Xxx in more than one + Node tree. + */ + +/*! \fn NamespaceNode(Aggregate *parent, const QString &name) + Constructs a NamespaceNode with the specified \a parent and \a name. + The node type is Node::Namespace. + */ + +/*! + Returns true if this namespace is to be documented in the + current module. There can be elements declared in this + namespace spread over multiple modules. Those elements are + documented in the modules where they are declared, but they + are linked to from the namespace page in the module where + the namespace itself is documented. + */ +bool NamespaceNode::isDocumentedHere() const +{ + return m_whereDocumented == tree()->camelCaseModuleName(); +} + +/*! + Returns true if this namespace node contains at least one + child that has documentation and is not private or internal. + */ +bool NamespaceNode::hasDocumentedChildren() const +{ + return std::any_of(m_children.cbegin(), m_children.cend(), + [](Node *child) { return child->isInAPI(); }); +} + +/*! + Report qdoc warning for each documented child in a namespace + that is not documented. This function should only be called + when the namespace is not documented. + */ +void NamespaceNode::reportDocumentedChildrenInUndocumentedNamespace() const +{ + for (const auto *node : std::as_const(m_children)) { + if (node->isInAPI()) { + QString msg1 = node->name(); + if (node->isFunction()) + msg1 += "()"; + msg1 += QStringLiteral( + " is documented, but namespace %1 is not documented in any module.") + .arg(name()); + QString msg2 = + QStringLiteral( + "Add /*! '\\%1 %2' ... */ or remove the qdoc comment marker (!) at " + "that line number.") + .arg(COMMAND_NAMESPACE, name()); + + node->doc().location().warning(msg1, msg2); + } + } +} + +/*! + Returns true if this namespace node is not private and + contains at least one public child node with documentation. + */ +bool NamespaceNode::docMustBeGenerated() const +{ + if (isInAPI()) + return true; + return hasDocumentedChildren(); +} + +/*! + Returns a const reference to the namespace node's list of + included children, which contains pointers to all the child + nodes of other namespace nodes that have the same name as + this namespace node. The list is built after the prepare + phase has been run but just before the generate phase. It + is buils by QDocDatabase::resolveNamespaces(). + + \sa QDocDatabase::resolveNamespaces() + */ +const NodeList &NamespaceNode::includedChildren() const +{ + return m_includedChildren; +} + +/*! + This function is only called from QDocDatabase::resolveNamespaces(). + + \sa includedChildren(), QDocDatabase::resolveNamespaces() + */ +void NamespaceNode::includeChild(Node *child) +{ + m_includedChildren.append(child); +} + +/*! \fn Tree* NamespaceNode::tree() const + Returns a pointer to the Tree that contains this NamespaceNode. + This requires traversing the parent() pointers to the root of + the Tree, which is the unnamed NamespaceNode. + */ + +/*! \fn bool NamespaceNode::isFirstClassAggregate() const + Returns \c true. + */ + +/*! \fn bool NamespaceNode::isRelatableType() const + Returns \c true. + */ + +/*! \fn bool NamespaceNode::wasSeen() const + Returns \c true if the \c {\\namespace} command that this NamespaceNode + represents has been parsed by qdoc. When \c false is returned, it means + that only \c {\\relates} commands have been seen that relate elements to + this namespace. + */ + +/*! \fn void NamespaceNode::markSeen() + Sets the data member that indicates that the \c {\\namespace} command this + NamespaceNode represents has been parsed by qdoc. + */ + +/*! \fn void NamespaceNode::markNotSeen() + Clears the data member that indicates that the \c {\\namespace} command this + NamespaceNode represents has been parsed by qdoc. + */ + +/*! \fn void NamespaceNode::setTree(Tree* t) + Sets the Tree pointer to \a t, which means this NamespaceNode is in the Tree \a t. + */ + +/*! \fn QString NamespaceNode::whereDocumented() const + Returns the camel case name of the module where this namespace is documented. + + \sa setWhereDocumented() + */ + +/*! \fn void NamespaceNode::setWhereDocumented(const QString &t) + Sets the camel case name of the module where this namespace is documented to + the module named \a t. + + This function is called when the \c {\\namespace} command is processed to let + qdoc know that this namespace is documented in the current module, so that + when something in another module is marked as related to this namespace, it + can be documented there with a ProxyNode for this namespace. + + \sa whereDocumented() + */ + +/*! \fn void NamespaceNode::setDocumented() + Sets the flag indicating that the \c {\\namespace} command for this + namespace was seen. + */ + +/*! \fn bool NamespaceNode::wasDocumented() const + Returns \c true if a \c {\\namespace} command for this namespace was seen. + Otherwise returns \c false. + */ + +/*! \fn void NamespaceNode::setDocNode(NamespaceNode *ns) + Called in QDocDatabase::resolveNamespaces() to set the pointer to the + NamespaceNode in which this namespace is documented. + + \sa QDocDatabase::resolveNamespaces() + */ + +/*! \fn NamespaceNode *NamespaceNode::docNode() const + Returns a pointer to the NamespaceNode that represents where the namespace + documentation is actually generated. API elements in many different modules + can be included in a single namespace. That namespace is only documented in + one module. The namespace is documented in the module where the \c {\\namespace} + command for the namespace appears. + + \sa QDocDatabase::resolveNamespaces() + */ + +QT_END_NAMESPACE diff --git a/src/qdoc/namespacenode.h b/src/qdoc/namespacenode.h new file mode 100644 index 0000000..80d0688 --- /dev/null +++ b/src/qdoc/namespacenode.h @@ -0,0 +1,48 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef NAMESPACENODE_H +#define NAMESPACENODE_H + +#include "aggregate.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +class Tree; + +class NamespaceNode : public Aggregate +{ +public: + NamespaceNode(Aggregate *parent, const QString &name) : Aggregate(Namespace, parent, name) {} + ~NamespaceNode() override = default; + [[nodiscard]] Tree *tree() const override { return (parent() ? parent()->tree() : m_tree); } + + [[nodiscard]] bool isFirstClassAggregate() const override { return true; } + [[nodiscard]] bool isRelatableType() const override { return true; } + [[nodiscard]] bool wasSeen() const override { return m_seen; } + void markSeen() { m_seen = true; } + void setTree(Tree *t) { m_tree = t; } + [[nodiscard]] const NodeList &includedChildren() const; + void includeChild(Node *child); + void setWhereDocumented(const QString &t) { m_whereDocumented = t; } + [[nodiscard]] bool isDocumentedHere() const; + [[nodiscard]] bool hasDocumentedChildren() const; + void reportDocumentedChildrenInUndocumentedNamespace() const; + [[nodiscard]] bool docMustBeGenerated() const override; + void setDocNode(NamespaceNode *ns) { m_docNode = ns; } + [[nodiscard]] NamespaceNode *docNode() const { return m_docNode; } + +private: + bool m_seen { false }; + Tree *m_tree { nullptr }; + QString m_whereDocumented {}; + NamespaceNode *m_docNode { nullptr }; + NodeList m_includedChildren {}; +}; + +QT_END_NAMESPACE + +#endif // NAMESPACENODE_H diff --git a/src/qdoc/node.cpp b/src/qdoc/node.cpp new file mode 100644 index 0000000..dec7ea2 --- /dev/null +++ b/src/qdoc/node.cpp @@ -0,0 +1,1707 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "node.h" + +#include "aggregate.h" +#include "codemarker.h" +#include "config.h" +#include "enumnode.h" +#include "functionnode.h" +#include "generator.h" +#include "qdocdatabase.h" +#include "qmltypenode.h" +#include "qmlpropertynode.h" +#include "relatedclass.h" +#include "sharedcommentnode.h" +#include "tokenizer.h" +#include "tree.h" + +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +QStringMap Node::operators; +QMap Node::goals; + +/*! + \class Node + \brief The Node class is the base class for all the nodes in QDoc's parse tree. + + Class Node is the base class of all the node subclasses. There is a subclass of Node + for each type of entity that QDoc can document. The types of entities that QDoc can + document are listed in the enum type NodeType. + + After ClangCodeParser has parsed all the header files to build its precompiled header, + it then visits the clang Abstract Syntax Tree (AST). For each node in the AST that it + determines is in the public API and must be documented, it creates an instance of one + of the Node subclasses and adds it to the QDoc Tree. + + Each instance of a sublass of Node has a parent pointer to link it into the Tree. The + parent pointer is obtained by calling \l {parent()}, which returns a pointer to an + instance of the Node subclass, Aggregate, which is never instantiated directly, but + as the base class for certain subclasses of Node that can have children. For example, + ClassNode and QmlTypeNode can have children, so they both inherit Aggregate, while + PropertyNode and QmlPropertyNode can not have children, so they both inherit Node. + + \sa Aggregate, ClassNode, PropertyNode + */ + +/*! + Initialize the map of search goals. This is called once + by QDocDatabase::initializeDB(). The map key is a string + representing a value in the enum Node::NodeType. The map value + is the enum value. + + There should be an entry in the map for each value in the + NodeType enum. + */ +void Node::initialize() +{ + goals.insert("namespace", Node::Namespace); + goals.insert("class", Node::Class); + goals.insert("struct", Node::Struct); + goals.insert("union", Node::Union); + goals.insert("header", Node::HeaderFile); + goals.insert("headerfile", Node::HeaderFile); + goals.insert("page", Node::Page); + goals.insert("enum", Node::Enum); + goals.insert("example", Node::Example); + goals.insert("externalpage", Node::ExternalPage); + goals.insert("typedef", Node::Typedef); + goals.insert("typealias", Node::TypeAlias); + goals.insert("function", Node::Function); + goals.insert("proxy", Node::Proxy); + goals.insert("property", Node::Property); + goals.insert("variable", Node::Variable); + goals.insert("group", Node::Group); + goals.insert("module", Node::Module); + goals.insert("qmltype", Node::QmlType); + goals.insert("qmlmodule", Node::QmlModule); + goals.insert("qmlproperty", Node::QmlProperty); + goals.insert("qmlsignal", Node::Function); + goals.insert("qmlsignalhandler", Node::Function); + goals.insert("qmlmethod", Node::Function); + goals.insert("qmlvaluetype", Node::QmlValueType); + goals.insert("qmlbasictype", Node::QmlValueType); // deprecated! + goals.insert("sharedcomment", Node::SharedComment); + goals.insert("collection", Node::Collection); +} + +/*! + If this Node's type is \a from, change the type to \a to + and return \c true. Otherwise return false. This function + is used to change Qml node types to Javascript node types, + because these nodes are created as Qml nodes before it is + discovered that the entity represented by the node is not + Qml but javascript. + + Note that if the function returns true, which means the node + type was indeed changed, then the node's Genus is also changed + from QML to JS. + + The function also works in the other direction, but there is + no use case for that. + */ +bool Node::changeType(NodeType from, NodeType to) +{ + if (m_nodeType == from) { + m_nodeType = to; + switch (to) { + case QmlType: + case QmlModule: + case QmlProperty: + case QmlValueType: + setGenus(Node::QML); + break; + case JsType: + case JsModule: + case JsProperty: + case JsBasicType: + setGenus(Node::JS); + break; + default: + setGenus(Node::CPP); + break; + } + return true; + } + return false; +} + +/*! + Returns \c true if the node \a n1 is less than node \a n2. The + comparison is performed by comparing properties of the nodes + in order of increasing complexity. + */ +bool Node::nodeNameLessThan(const Node *n1, const Node *n2) +{ +#define LT_RETURN_IF_NOT_EQUAL(a, b) \ + if ((a) != (b)) \ + return (a) < (b); + + if (n1->isPageNode() && n2->isPageNode()) { + LT_RETURN_IF_NOT_EQUAL(n1->fullName(), n2->fullName()); + LT_RETURN_IF_NOT_EQUAL(n1->fullTitle(), n2->fullTitle()); + } + + if (n1->isFunction() && n2->isFunction()) { + const auto *f1 = static_cast(n1); + const auto *f2 = static_cast(n2); + + LT_RETURN_IF_NOT_EQUAL(f1->isConst(), f2->isConst()); + LT_RETURN_IF_NOT_EQUAL(f1->signature(false, false), f2->signature(false, false)); + } + + LT_RETURN_IF_NOT_EQUAL(n1->nodeType(), n2->nodeType()); + LT_RETURN_IF_NOT_EQUAL(n1->name(), n2->name()); + LT_RETURN_IF_NOT_EQUAL(n1->access(), n2->access()); + LT_RETURN_IF_NOT_EQUAL(n1->location().filePath(), n2->location().filePath()); + + return false; +} + +/*! + \enum Node::NodeType + + An unsigned char value that identifies an object as a + particular subclass of Node. + + \value NoType The node type has not been set yet. + \value Namespace The Node subclass is NamespaceNode, which represents a C++ + namespace. + \value Class The Node subclass is ClassNode, which represents a C++ class. + \value Struct The Node subclass is ClassNode, which represents a C struct. + \value Union The Node subclass is ClassNode, which represents a C union + (currently no known uses). + \value HeaderFile The Node subclass is HeaderNode, which represents a header + file. + \value Page The Node subclass is PageNode, which represents a text page from + a .qdoc file. + \value Enum The Node subclass is EnumNode, which represents an enum type or + enum class. + \value Example The Node subclass is ExampleNode, which represents an example + subdirectory. + \value ExternalPage The Node subclass is ExternalPageNode, which is for + linking to an external page. + \value Function The Node subclass is FunctionNode, which can represent C++, + QML, and Javascript functions. + \value Typedef The Node subclass is TypedefNode, which represents a C++ + typedef. + \value Property The Node subclass is PropertyNode, which represents a use of + Q_Property. + \value Variable The Node subclass is VariableNode, which represents a global + variable or class data member. + \value Group The Node subclass is CollectionNode, which represents a group of + documents. + \value Module The Node subclass is CollectionNode, which represents a C++ + module. + \value QmlType The Node subclass is QmlTypeNode, which represents a QML type. + \value QmlModule The Node subclass is CollectionNode, which represents a QML + module. + \value QmlProperty The Node subclass is QmlPropertyNode, which represents a + property in a QML type. + \value QmlBasicType The Node subclass is QmlBasicTypeNode, which represents a + basic type like int, etc. + \value JsType The Node subclass is QmlTypeNode, which represents a javascript + type. + \value JsModule The Node subclass is CollectionNode, which represents a + javascript module. + \value JsProperty The Node subclass is QmlPropertyNode, which represents a + javascript property. + \value JsBasicType The Node subclass is QmlBasicTypeNode, which represents a + basic type like int, etc. + \value SharedComment The Node subclass is SharedCommentNode, which represents + a collection of nodes that share the same documentation comment. + \omitvalue Collection + \value Proxy The Node subclass is ProxyNode, which represents one or more + entities that are documented in the current module but which actually + reside in a different module. + \omitvalue LastType +*/ + +/*! + \enum Node::Genus + + An unsigned char value that specifies whether the Node represents a + C++ element, a QML element, a javascript element, or a text document. + The Genus values are also passed to search functions to specify the + Genus of Tree Node that can satisfy the search. + + \value DontCare The Genus is not specified. Used when calling Tree search functions to indicate + the search can accept any Genus of Node. + \value CPP The Node represents a C++ element. + \value JS The Node represents a javascript element. + \value QML The Node represents a QML element. + \value DOC The Node represents a text document. +*/ + +/*! + \enum Access + + An unsigned char value that indicates the C++ access level. + + \value Public The element has public access. + \value Protected The element has protected access. + \value Private The element has private access. +*/ + +/*! + \enum Node::Status + + An unsigned char that specifies the status of the documentation element in + the documentation set. + + \value Deprecated The element has been deprecated. + \value Preliminary The element is new; the documentation is preliminary. + \value Active The element is current. + \value Internal The element is for internal use only, not to be published. + \value DontDocument The element is not to be documented. +*/ + +/*! + \enum Node::ThreadSafeness + + An unsigned char that specifies the degree of thread-safeness of the element. + + \value UnspecifiedSafeness The thread-safeness is not specified. + \value NonReentrant The element is not reentrant. + \value Reentrant The element is reentrant. + \value ThreadSafe The element is threadsafe. +*/ + +/*! + \enum Node::LinkType + + An unsigned char value that probably should be moved out of the Node base class. + + \value StartLink + \value NextLink + \value PreviousLink + \value ContentsLink + */ + +/*! + \enum Node::PageType + + An unsigned char value that indicates what kind of documentation page + the Node represents. I think it is not very useful anymore. + + \value NoPageType + \value AttributionPage + \value ApiPage + \value ArticlePage + \value ExamplePage + \value HowToPage + \value OverviewPage + \value TutorialPage + \value FAQPage + \omitvalue OnBeyondZebra +*/ + +/*! + \enum Node::FlagValue + + A value used in PropertyNode and QmlPropertyNode that can be -1, 0, or +1. + Properties and QML properties have flags, which can be 0 or 1, false or true, + or not set. FlagValueDefault is the not set value. In other words, if a flag + is set to FlagValueDefault, the meaning is the flag has not been set. + + \value FlagValueDefault -1 Not set. + \value FlagValueFalse 0 False. + \value FlagValueTrue 1 True. +*/ + +/*! + \fn Node::~Node() + + The default destructor is virtual so any subclass of Node can be + deleted by deleting a pointer to Node. + */ + +/*! \fn bool Node::isActive() const + Returns true if this node's status is \c Active. + */ + +/*! \fn bool Node::isClass() const + Returns true if the node type is \c Class. + */ + +/*! \fn bool Node::isCppNode() const + Returns true if this node's Genus value is \c CPP. + */ + +/*! \fn bool Node::isDeprecated() const + Returns true if this node's status is \c Deprecated. + */ + +/*! \fn bool Node::isDontDocument() const + Returns true if this node's status is \c DontDocument. + */ + +/*! \fn bool Node::isEnumType() const + Returns true if the node type is \c Enum. + */ + +/*! \fn bool Node::isExample() const + Returns true if the node type is \c Example. + */ + +/*! \fn bool Node::isExternalPage() const + Returns true if the node type is \c ExternalPage. + */ + +/*! \fn bool Node::isFunction(Genus g = DontCare) const + Returns true if this is a FunctionNode and its Genus is set to \a g. + */ + +/*! \fn bool Node::isGroup() const + Returns true if the node type is \c Group. + */ + +/*! \fn bool Node::isHeader() const + Returns true if the node type is \c HeaderFile. + */ + +/*! \fn bool Node::isIndexNode() const + Returns true if this node was created from something in an index file. + */ + +/*! \fn bool Node::isJsBasicType() const + Returns true if the node type is \c JsBasicType. + */ + +/*! \fn bool Node::isJsModule() const + Returns true if the node type is \c JsModule. + */ + +/*! \fn bool Node::isJsNode() const + Returns true if this node's Genus value is \c JS. + */ + +/*! \fn bool Node::isJsProperty() const + Returns true if the node type is \c JsProperty. + */ + +/*! \fn bool Node::isJsType() const + Returns true if the node type is \c JsType. + */ + +/*! \fn bool Node::isModule() const + Returns true if the node type is \c Module. + */ + +/*! \fn bool Node::isNamespace() const + Returns true if the node type is \c Namespace. + */ + +/*! \fn bool Node::isPage() const + Returns true if the node type is \c Page. + */ + +/*! \fn bool Node::isPreliminary() const + Returns true if this node's status is \c Preliminary. + */ + +/*! \fn bool Node::isPrivate() const + Returns true if this node's access is \c Private. + */ + +/*! \fn bool Node::isProperty() const + Returns true if the node type is \c Property. + */ + +/*! \fn bool Node::isProxyNode() const + Returns true if the node type is \c Proxy. + */ + +/*! \fn bool Node::isPublic() const + Returns true if this node's access is \c Public. + */ + +/*! \fn bool Node::isProtected() const + Returns true if this node's access is \c Protected. + */ + +/*! \fn bool Node::isQmlBasicType() const + Returns true if the node type is \c QmlBasicType. + */ + +/*! \fn bool Node::isQmlModule() const + Returns true if the node type is \c QmlModule. + */ + +/*! \fn bool Node::isQmlNode() const + Returns true if this node's Genus value is \c QML. + */ + +/*! \fn bool Node::isQmlProperty() const + Returns true if the node type is \c QmlProperty. + */ + +/*! \fn bool Node::isQmlType() const + Returns true if the node type is \c QmlType. + */ + +/*! \fn bool Node::isRelatedNonmember() const + Returns true if this is a related nonmember of something. + */ + +/*! \fn bool Node::isStruct() const + Returns true if the node type is \c Struct. + */ + +/*! \fn bool Node::isSharedCommentNode() const + Returns true if the node type is \c SharedComment. + */ + +/*! \fn bool Node::isTypeAlias() const + Returns true if the node type is \c Typedef. + */ + +/*! \fn bool Node::isTypedef() const + Returns true if the node type is \c Typedef. + */ + +/*! \fn bool Node::isUnion() const + Returns true if the node type is \c Union. + */ + +/*! \fn bool Node::isVariable() const + Returns true if the node type is \c Variable. + */ + +/*! \fn bool Node::isGenericCollection() const + Returns true if the node type is \c Collection. + */ + +/*! \fn bool Node::isAbstract() const + Returns true if the ClassNode or QmlTypeNode is marked abstract. +*/ + +/*! \fn bool Node::isAggregate() const + Returns true if this node is an aggregate, which means it + inherits Aggregate and can therefore have children. +*/ + +/*! \fn bool Node::isFirstClassAggregate() const + Returns true if this Node is an Aggregate but not a ProxyNode. +*/ + +/*! \fn bool Node::isAlias() const + Returns true if this QML property is marked as an alias. +*/ + +/*! \fn bool Node::isAttached() const + Returns true if the QML property or QML method node is marked as attached. +*/ + +/*! \fn bool Node::isClassNode() const + Returns true if this is an instance of ClassNode. +*/ + +/*! \fn bool Node::isCollectionNode() const + Returns true if this is an instance of CollectionNode. +*/ + +/*! \fn bool Node::isDefault() const + Returns true if the QML property node is marked as default. +*/ + +/*! \fn bool Node::isMacro() const + returns true if either FunctionNode::isMacroWithParams() or + FunctionNode::isMacroWithoutParams() returns true. +*/ + +/*! \fn bool Node::isPageNode() const + Returns true if this node represents something that generates a documentation + page. In other words, if this Node's subclass inherits PageNode, then this + function will return \e true. +*/ + +/*! \fn bool Node::isQtQuickNode() const + Returns true if this node represents a QML element in the QtQuick module. +*/ + +/*! \fn bool Node::isReadOnly() const + Returns true if the QML property node is marked as a read-only property. +*/ + +/*! \fn bool Node::isRelatableType() const + Returns true if this node is something you can relate things to with + the \e relates command. NamespaceNode, ClassNode, HeaderNode, and + ProxyNode are relatable types. +*/ + +/*! \fn bool Node::isMarkedReimp() const + Returns true if the FunctionNode is marked as a reimplemented function. + That means it is virtual in the base class and it is reimplemented in + the subclass. +*/ + +/*! \fn bool Node::isPropertyGroup() const + Returns true if the node is a SharedCommentNode for documenting + multiple C++ properties or multiple QML properties. +*/ + +/*! \fn bool Node::isStatic() const + Returns true if the FunctionNode represents a static function. +*/ + +/*! \fn bool Node::isTextPageNode() const + Returns true if the node is a PageNode but not an Aggregate. +*/ + +/*! + Returns this node's name member. Appends "()" to the returned + name if this node is a function node, but not if it is a macro + because macro names normally appear without parentheses. + */ +QString Node::plainName() const +{ + if (isFunction() && !isMacro()) + return m_name + QLatin1String("()"); + return m_name; +} + +/*! + Constructs and returns the node's fully qualified name by + recursively ascending the parent links and prepending each + parent name + "::". Breaks out when reaching a HeaderNode, + or when the parent pointer is \a relative. Typically, calls + to this function pass \c nullptr for \a relative. + */ +QString Node::plainFullName(const Node *relative) const +{ + if (m_name.isEmpty()) + return QLatin1String("global"); + if (isHeader()) + return plainName(); + + QStringList parts; + const Node *node = this; + while (node && !node->isHeader()) { + parts.prepend(node->plainName()); + if (node->parent() == relative || node->parent()->name().isEmpty()) + break; + node = node->parent(); + } + return parts.join(QLatin1String("::")); +} + +/*! + Constructs and returns the node's fully qualified signature + by recursively ascending the parent links and prepending each + parent name + "::" to the plain signature. The return type is + not included. + */ +QString Node::plainSignature() const +{ + if (m_name.isEmpty()) + return QLatin1String("global"); + + QString fullName; + const Node *node = this; + while (node) { + fullName.prepend(node->signature(false, true)); + if (node->parent()->name().isEmpty()) + break; + fullName.prepend(QLatin1String("::")); + node = node->parent(); + } + return fullName; +} + +/*! + Constructs and returns this node's full name. The full name is + often just the title(). When it is not the title, it is the + plainFullName(). + */ +QString Node::fullName(const Node *relative) const +{ + if ((isTextPageNode() || isGroup()) && !title().isEmpty()) + return title(); + return plainFullName(relative); +} + +/*! + Try to match this node's type with one of the \a types. + If a match is found, return true. If no match is found, + return false. + */ +bool Node::match(const QList &types) const +{ + return std::any_of(types.cbegin(), types.cend(), + [this](const int type) { return nodeType() == type; }); +} + +/*! + Sets this Node's Doc to \a doc. If \a replace is false and + this Node already has a Doc, and if this doc is not marked + with the \\reimp command, a warning is reported that the + existing Doc is being overridden, and it reports where the + previous Doc was found. If \a replace is true, the Doc is + replaced silently. + */ +void Node::setDoc(const Doc &doc, bool replace) +{ + if (!m_doc.isEmpty() && !replace && !doc.isMarkedReimp()) { + doc.location().warning(QStringLiteral("Overrides a previous doc"), + QStringLiteral("from here: %1").arg(m_doc.location().toString())); + } + m_doc = doc; +} + +/*! + Sets the node's status to \a t. + + \sa Status +*/ +void Node::setStatus(Status t) +{ + m_status = t; + + // Set non-null, empty URL to nodes that are ignored as + // link targets + switch (t) { + case Internal: + if (Config::instance().showInternal()) + break; + Q_FALLTHROUGH(); + case DontDocument: + m_url = QStringLiteral(""); + break; + default: + break; + } +} + +/*! + Construct a node with the given \a type and having the + given \a parent and \a name. The new node is added to the + parent's child list. + */ +Node::Node(NodeType type, Aggregate *parent, QString name) + : m_nodeType(type), + m_indexNodeFlag(false), + m_relatedNonmember(false), + m_hadDoc(false), + m_parent(parent), + m_name(std::move(name)) +{ + if (m_parent) + m_parent->addChild(this); + m_outSubDir = Generator::outputSubdir(); + if (operators.isEmpty()) { + operators.insert("++", "inc"); + operators.insert("--", "dec"); + operators.insert("==", "eq"); + operators.insert("!=", "ne"); + operators.insert("<<", "lt-lt"); + operators.insert(">>", "gt-gt"); + operators.insert("+=", "plus-assign"); + operators.insert("-=", "minus-assign"); + operators.insert("*=", "mult-assign"); + operators.insert("/=", "div-assign"); + operators.insert("%=", "mod-assign"); + operators.insert("&=", "bitwise-and-assign"); + operators.insert("|=", "bitwise-or-assign"); + operators.insert("^=", "bitwise-xor-assign"); + operators.insert("<<=", "bitwise-left-shift-assign"); + operators.insert(">>=", "bitwise-right-shift-assign"); + operators.insert("||", "logical-or"); + operators.insert("&&", "logical-and"); + operators.insert("()", "call"); + operators.insert("[]", "subscript"); + operators.insert("->", "pointer"); + operators.insert("->*", "pointer-star"); + operators.insert("+", "plus"); + operators.insert("-", "minus"); + operators.insert("*", "mult"); + operators.insert("/", "div"); + operators.insert("%", "mod"); + operators.insert("|", "bitwise-or"); + operators.insert("&", "bitwise-and"); + operators.insert("^", "bitwise-xor"); + operators.insert("!", "not"); + operators.insert("~", "bitwise-not"); + operators.insert("<=", "lt-eq"); + operators.insert(">=", "gt-eq"); + operators.insert("<", "lt"); + operators.insert(">", "gt"); + operators.insert("=", "assign"); + operators.insert(",", "comma"); + operators.insert("delete[]", "delete-array"); + operators.insert("delete", "delete"); + operators.insert("new[]", "new-array"); + operators.insert("new", "new"); + } + setPageType(getPageType(type)); + setGenus(getGenus(type)); +} + +/*! + Determines the appropriate PageType value for the NodeType + value \a t and returns that PageType value. + */ +Node::PageType Node::getPageType(Node::NodeType t) +{ + switch (t) { + case Node::Namespace: + case Node::Class: + case Node::Struct: + case Node::Union: + case Node::HeaderFile: + case Node::Enum: + case Node::Function: + case Node::Typedef: + case Node::Property: + case Node::Variable: + case Node::QmlType: + case Node::QmlProperty: + case Node::QmlValueType: + case Node::JsType: + case Node::JsProperty: + case Node::JsBasicType: + case Node::SharedComment: + return Node::ApiPage; + case Node::Example: + return Node::ExamplePage; + case Node::Page: + case Node::ExternalPage: + return Node::NoPageType; + case Node::Group: + case Node::Module: + case Node::QmlModule: + case Node::JsModule: + case Node::Collection: + return Node::OverviewPage; + case Node::Proxy: + default: + return Node::NoPageType; + } +} + +/*! + Determines the appropriate Genus value for the NodeType + value \a t and returns that Genus value. Note that this + function is called in the Node() constructor. It always + returns Node::CPP when \a t is Node::Function, which + means the FunctionNode() constructor must determine its + own Genus value separately, because class FunctionNode + is a subclass of Node. + */ +Node::Genus Node::getGenus(Node::NodeType t) +{ + switch (t) { + case Node::Enum: + case Node::Class: + case Node::Struct: + case Node::Union: + case Node::Module: + case Node::Typedef: + case Node::Property: + case Node::Variable: + case Node::Function: + case Node::Namespace: + case Node::HeaderFile: + return Node::CPP; + case Node::QmlType: + case Node::QmlModule: + case Node::QmlProperty: + case Node::QmlValueType: + return Node::QML; + case Node::JsType: + case Node::JsModule: + case Node::JsProperty: + case Node::JsBasicType: + return Node::JS; + case Node::Page: + case Node::Group: + case Node::Example: + case Node::ExternalPage: + return Node::DOC; + case Node::Collection: + case Node::SharedComment: + case Node::Proxy: + default: + return Node::DontCare; + } +} + +/*! \fn QString Node::url() const + Returns the node's URL, which is the url of the documentation page + created for the node or the url of an external page if the node is + an ExternalPageNode. The url is used for generating a link to the + page the node represents. + + \sa Node::setUrl() + */ + +/*! \fn void Node::setUrl(const QString &url) + Sets the node's URL to \a url, which is the url to the page that the + node represents. This function is only called when an index file is + read. In other words, a node's url is set when qdoc decides where its + page will be and what its name will be, which happens when qdoc writes + the index file for the module being documented. + + \sa QDocIndexFiles + */ + +/*! + Returns this node's type as a string for use as an + attribute value in XML or HTML. + */ +QString Node::nodeTypeString() const +{ + if (isFunction()) { + const auto *fn = static_cast(this); + return fn->kindString(); + } + return nodeTypeString(nodeType()); +} + +/*! + Returns the node type \a t as a string for use as an + attribute value in XML or HTML. + */ +QString Node::nodeTypeString(NodeType t) +{ + switch (t) { + case Namespace: + return QLatin1String("namespace"); + case Class: + return QLatin1String("class"); + case Struct: + return QLatin1String("struct"); + case Union: + return QLatin1String("union"); + case HeaderFile: + return QLatin1String("header"); + case Page: + return QLatin1String("page"); + case Enum: + return QLatin1String("enum"); + case Example: + return QLatin1String("example"); + case ExternalPage: + return QLatin1String("external page"); + case TypeAlias: + case Typedef: + return QLatin1String("typedef"); + case Function: + return QLatin1String("function"); + case Property: + return QLatin1String("property"); + case Proxy: + return QLatin1String("proxy"); + case Variable: + return QLatin1String("variable"); + case Group: + return QLatin1String("group"); + case Module: + return QLatin1String("module"); + + case QmlType: + return QLatin1String("QML type"); + case QmlValueType: + return QLatin1String("QML basic type"); + case QmlModule: + return QLatin1String("QML module"); + case QmlProperty: + return QLatin1String("QML property"); + + case JsType: + return QLatin1String("JS type"); + case JsBasicType: + return QLatin1String("JS basic type"); + case JsModule: + return QLatin1String("JS module"); + case JsProperty: + return QLatin1String("JS property"); + + case SharedComment: + return QLatin1String("shared comment"); + case Collection: + return QLatin1String("collection"); + default: + break; + } + return QString(); +} + +/*! + Set the page type according to the string \a t. + */ +void Node::setPageType(const QString &t) +{ + if ((t == "API") || (t == "api")) + m_pageType = ApiPage; + else if (t == "howto") + m_pageType = HowToPage; + else if (t == "overview") + m_pageType = OverviewPage; + else if (t == "tutorial") + m_pageType = TutorialPage; + else if (t == "faq") + m_pageType = FAQPage; + else if (t == "article") + m_pageType = ArticlePage; + else if (t == "example") + m_pageType = ExamplePage; +} + +/*! Converts the boolean value \a b to an enum representation + of the boolean type, which includes an enum value for the + \e {default value} of the item, i.e. true, false, or default. + */ +Node::FlagValue Node::toFlagValue(bool b) +{ + return b ? FlagValueTrue : FlagValueFalse; +} + +/*! + Converts the enum \a fv back to a boolean value. + If \a fv is neither the true enum value nor the + false enum value, the boolean value returned is + \a defaultValue. + */ +bool Node::fromFlagValue(FlagValue fv, bool defaultValue) +{ + switch (fv) { + case FlagValueTrue: + return true; + case FlagValueFalse: + return false; + default: + return defaultValue; + } +} + +/*! + This function creates a pair that describes a link. + The pair is composed from \a link and \a desc. The + \a linkType is the map index the pair is filed under. + */ +void Node::setLink(LinkType linkType, const QString &link, const QString &desc) +{ + std::pair linkPair; + linkPair.first = link; + linkPair.second = desc; + m_linkMap[linkType] = linkPair; +} + +/*! + Sets the information about the project and version a node was introduced + in, unless the version is lower than the 'ignoresince.' + configuration variable. + */ +void Node::setSince(const QString &since) +{ + QStringList parts = since.split(QLatin1Char(' ')); + QString project; + if (parts.size() > 1) + project = Config::dot + parts.first(); + + QVersionNumber cutoff = + QVersionNumber::fromString(Config::instance().getString(CONFIG_IGNORESINCE + project)) + .normalized(); + + if (!cutoff.isNull() && QVersionNumber::fromString(parts.last()).normalized() < cutoff) + return; + + m_since = parts.join(QLatin1Char(' ')); +} + +/*! + Extract a class name from the type \a string and return it. + */ +QString Node::extractClassName(const QString &string) const +{ + QString result; + for (int i = 0; i <= string.size(); ++i) { + QChar ch; + if (i != string.size()) + ch = string.at(i); + + QChar lower = ch.toLower(); + if ((lower >= QLatin1Char('a') && lower <= QLatin1Char('z')) || ch.digitValue() >= 0 + || ch == QLatin1Char('_') || ch == QLatin1Char(':')) { + result += ch; + } else if (!result.isEmpty()) { + if (result != QLatin1String("const")) + return result; + result.clear(); + } + } + return result; +} + +/*! + Returns the thread safeness value for whatever this node + represents. But if this node has a parent and the thread + safeness value of the parent is the same as the thread + safeness value of this node, what is returned is the + value \c{UnspecifiedSafeness}. Why? + */ +Node::ThreadSafeness Node::threadSafeness() const +{ + if (m_parent && m_safeness == m_parent->inheritedThreadSafeness()) + return UnspecifiedSafeness; + return m_safeness; +} + +/*! + If this node has a parent, the parent's thread safeness + value is returned. Otherwise, this node's thread safeness + value is returned. Why? + */ +Node::ThreadSafeness Node::inheritedThreadSafeness() const +{ + if (m_parent && m_safeness == UnspecifiedSafeness) + return m_parent->inheritedThreadSafeness(); + return m_safeness; +} + +/*! + If this node is a QML or JS type node, return a pointer to + it. If it is a child of a QML or JS type node, return the + pointer to its parent QMLor JS type node. Otherwise return + 0; + */ +QmlTypeNode *Node::qmlTypeNode() +{ + if (isQmlNode() || isJsNode()) { + Node *n = this; + while (n && !(n->isQmlType() || n->isJsType())) + n = n->parent(); + if (n && (n->isQmlType() || n->isJsType())) + return static_cast(n); + } + return nullptr; +} + +/*! + If this node is a QML node, find its QML class node, + and return a pointer to the C++ class node from the + QML class node. That pointer will be null if the QML + class node is a component. It will be non-null if + the QML class node is a QML element. + */ +ClassNode *Node::declarativeCppNode() +{ + QmlTypeNode *qcn = qmlTypeNode(); + if (qcn) + return qcn->classNode(); + return nullptr; +} + +/*! + Returns \c true if the node's status is \c Internal, or if + its parent is a class with \c Internal status. + */ +bool Node::isInternal() const +{ + if (status() == Internal) + return true; + return parent() && parent()->status() == Internal && !parent()->isAbstract(); +} + +/*! \fn void Node::markInternal() + Sets the node's access to Private and its status to Internal. + */ + +/*! + Returns a pointer to the root of the Tree this node is in. + */ +Aggregate *Node::root() const +{ + if (parent() == nullptr) + return (this->isAggregate() ? static_cast(const_cast(this)) : nullptr); + Aggregate *t = parent(); + while (t->parent() != nullptr) + t = t->parent(); + return t; +} + +/*! + Returns a pointer to the Tree this node is in. + */ +Tree *Node::tree() const +{ + return root()->tree(); +} + +/*! + Sets the node's declaration location, its definition + location, or both, depending on the suffix of the file + name from the file path in location \a t. + */ +void Node::setLocation(const Location &t) +{ + QString suffix = t.fileSuffix(); + if (suffix == "h") + m_declLocation = t; + else if (suffix == "cpp") + m_defLocation = t; + else { + m_declLocation = t; + m_defLocation = t; + } +} + +/*! + Returns true if this node is sharing a comment and the + shared comment is not empty. + */ +bool Node::hasSharedDoc() const +{ + return (m_sharedCommentNode && m_sharedCommentNode->hasDoc()); +} + +/*! + Returns the CPP node's qualified name by prepending the + namespaces name + "::" if there isw a namespace. + */ +QString Node::qualifyCppName() +{ + if (m_parent && m_parent->isNamespace() && !m_parent->name().isEmpty()) + return m_parent->name() + "::" + m_name; + return m_name; +} + +/*! + Return the name of this node qualified with the parent name + and "::" if there is a parent name. + */ +QString Node::qualifyWithParentName() +{ + if (m_parent && !m_parent->name().isEmpty()) + return m_parent->name() + "::" + m_name; + return m_name; +} + +/*! + Returns the QML node's qualified name by prepending the logical + module name. + */ +QString Node::qualifyQmlName() +{ + return logicalModuleName() + "::" + m_name; +} + +/*! + Returns \c true if the node is a class node or a QML type node + that is marked as being a wrapper class or wrapper QML type, + or if it is a member of a wrapper class or type. + */ +bool Node::isWrapper() const +{ + return m_parent != nullptr && m_parent->isWrapper(); +} + +/*! + Construct the full document name for this node and return it. + */ +QString Node::fullDocumentName() const +{ + QStringList pieces; + const Node *n = this; + + do { + if (!n->name().isEmpty()) + pieces.insert(0, n->name()); + + if ((n->isQmlType() || n->isJsType()) && !n->logicalModuleName().isEmpty()) { + pieces.insert(0, n->logicalModuleName()); + break; + } + + if (n->isTextPageNode()) + break; + + // Examine the parent if the node is a member + if (!n->parent() || n->isRelatedNonmember()) + break; + + n = n->parent(); + } while (true); + + // Create a name based on the type of the ancestor node. + QString concatenator = "::"; + if (n->isQmlType() || n->isJsType()) + concatenator = QLatin1Char('.'); + + if (n->isTextPageNode()) + concatenator = QLatin1Char('#'); + + return pieces.join(concatenator); +} + +void Node::setDeprecatedSince(const QString &sinceVersion) +{ + if (!m_deprecatedSince.isEmpty()) + qCWarning(lcQdoc) << QStringLiteral( + "Setting deprecated since version for %1 to %2 even though it " + "was already set to %3. This is very unexpected.") + .arg(this->m_name, sinceVersion, this->m_deprecatedSince); + m_deprecatedSince = sinceVersion; +} + +/*! \fn Node *Node::clone(Aggregate *parent) + + When reimplemented in a subclass, this function creates a + clone of this node on the heap and makes the clone a child + of \a parent. A pointer to the clone is returned. + + Here in the base class, this function does nothing and returns + nullptr. + */ + +/*! \fn NodeType Node::nodeType() const + Returns this node's type. + + \sa NodeType +*/ + +/*! \fn Genus Node::genus() const + Returns this node's Genus. + + \sa Genus +*/ + +/*! void Node::setGenus(Genus t) + Sets this node's Genus to \a t. +*/ + +/*! \fn PageType Node::pageType() const + Returns this node's page type. + + \sa PageType +*/ + +/*! \fn void Node::setPageType(PageType t) + Sets this node's page type to \a t. + + \sa PageType +*/ + +/*! \fn QString Node::signature(bool values, bool noReturnType, bool templateParams) const + + If this node is a FunctionNode, this function returns the function's + signature, including default values if \a values is \c true, + function's return type if \a noReturnType is \c false, and + prefixed with 'template ' for function templates + if templateParams is \true. + + If this node is not a FunctionNode, this function returns plainName(). +*/ + +/*! \fn const QString &Node::fileNameBase() const + Returns the node's file name base string, which is built once, when + Generator::fileBase() is called and stored in the Node. +*/ + +/*! \fn bool Node::hasFileNameBase() const + Returns true if the node's file name base has been set. + + \sa Node::fileNameBase() +*/ + +/*! \fn void Node::setFileNameBase(const QString &t) + Sets the node's file name base to \a t. Only called by + Generator::fileBase(). +*/ + +/*! \fn void Node::setAccess(Access t) + Sets the node's access type to \a t. + + \sa Access +*/ + +/*! \fn void Node::setThreadSafeness(ThreadSafeness t) + Sets the node's thread safeness to \a t. + + \sa ThreadSafeness +*/ + +/*! \fn void Node::setPhysicalModuleName(const QString &name) + Sets the node's physical module \a name. +*/ + +/*! \fn void Node::setReconstitutedBrief(const QString &t) + When reading an index file, this function is called with the + reconstituted brief clause \a t to set the node's brief clause. + I think this is needed for linking to something in the brief clause. +*/ + +/*! \fn void Node::setParent(Aggregate *n) + Sets the node's parent pointer to \a n. Such a thing + is not lightly done. All the calls to this function + are in other member functions of Node subclasses. See + the code in the subclass implementations to understand + when this function can be called safely and why it is called. +*/ + +/*! \fn void Node::setIndexNodeFlag(bool isIndexNode = true) + Sets a flag in this Node that indicates the node was created + for something in an index file. This is important to know + because an index node is not to be documented in the current + module. When the index flag is set, it means the Node + represents something in another module, and it will be + documented in that module's documentation. +*/ + +/*! \fn void Node::setRelatedNonmember(bool b) + Sets a flag in the node indicating whether this node is a related nonmember + of something. This function is called when the \c relates command is seen. + */ + +/*! \fn void Node::setOutputFileName(const QString &f) + In a PageNode, this function sets the node's output file name to \a f. + In a non-PageNode, this function does nothing. + */ + +/*! \fn void Node::addMember(Node *node) + In a CollectionNode, this function adds \a node to the collection + node's members list. It does nothing if this node is not a CollectionNode. + */ + +/*! \fn bool Node::hasNamespaces() const + Returns \c true if this is a CollectionNode and its members list + contains namespace nodes. Otherwise it returns \c false. + */ + +/*! \fn bool Node::hasClasses() const + Returns \c true if this is a CollectionNode and its members list + contains class nodes. Otherwise it returns \c false. + */ + +/*! \fn void Node::setAbstract(bool b) + If this node is a ClassNode or a QmlTypeNode, the node's abstract flag + data member is set to \a b. + */ + +/*! \fn void Node::setWrapper() + If this node is a ClassNode or a QmlTypeNode, the node's wrapper flag + data member is set to \c true. + */ + +/*! \fn void Node::getMemberNamespaces(NodeMap& out) + If this is a CollectionNode, \a out is loaded with all the collection + members that are namespaces. + */ + +/*! \fn void getMemberClasses(NodeMap& out) const { } + If this is a CollectionNode, \a out is loaded with all the collection + members that are classes. + */ + +/*! \fn void Node::setDataType(const QString &dataType) + If this node is a PropertyNode or a QmlPropertyNode, its + data type data member is set to \a dataType. Otherwise, + this function does nothing. + */ + +/*! \fn bool Node::wasSeen() const + Returns the \c seen flag data member of this node if it is a NamespaceNode + or a CollectionNode. Otherwise it returns \c false. If \c true is returned, + it means that the location where the namespace or collection is to be + documented has been found. + */ + +/*! \fn void appendGroupName(const QString &t) + If this node is a PageNode, the group name \a t is appended to the node's + list of group names. It is not clear to me what this list of group names + is used for, but it is written to the index file, and it is used in the + navigation bar. + */ + +/*! \fn QString Node::element() const + If this node is a QmlPropertyNode or a FunctionNode, this function + returns the name of the parent node. Otherwise it returns an empty + string. + */ + +/*! \fn void Node::setNoAutoList(bool b) + If this node is a PageNode, the node's \c {no autolist} flag is set to \a b. + Otherwise the function does nothing. + */ + +/*! \fn bool Node::docMustBeGenerated() const + This function is called to perform a test to decide if the node must have + documentation generated. In the Node base class, it always returns \c false. + + In the ProxyNode class it always returns \c true. There aren't many proxy + nodes, but when one appears, it must generate documentation. In the overrides + in NamespaceNode and ClassNode, a meaningful test is performed to decide if + documentation must be generated. + */ + +/*! \fn QString Node::title() const + Returns a string that can be used to print a title in the documentation for + whatever this Node is. In the Node base class, the node's name() is returned. + In a PageNode, the function returns the title data member. In a HeaderNode, + if the title() is empty, the name() is returned. + */ + +/*! \fn QString Node::subtitle() const { return QString(); } + Returns a string that can be used to print a subtitle in the documentation for + whatever this Node is. In the Node base class, the empty string is returned. + In a PageNode, the function returns the subtitle data member. In a HeaderNode, + the subtitle data member is returned. + */ + +/*! \fn QString Node::fullTitle() const + Returns a string that can be used as the full title for the documentation of + this node. In this base class, the name() is returned. In a PageNode, title() + is returned. In a HeaderNode, if the title() is empty, the name() is returned. + If the title() is not empty then name-title is returned. In a CollectionNode, + the title() is returned. + */ + +/*! \fn bool Node::setTitle(const QString &title) + Sets the node's \a title, which is used for the title of + the documentation page, if one is generated for this node. + Returns \c true if the title is set. In this base class, + there is no title string stored, so in the base class, + nothing happens and \c false is returned. The override in + the PageNode class is where the title is set. + */ + +/*! \fn bool Node::setSubtitle(const QString &subtitle) + Sets the node's \a subtitle, which is used for the subtitle + of the documentation page, if one is generated for this node. + Returns \c true if the subtitle is set. In this base class, + there is no subtitle string stored, so in the base class, + nothing happens and \c false is returned. The override in + the PageNode and HeaderNode classes is where the subtitle is + set. + */ + +/*! \fn void Node::markDefault() + If this node is a QmlPropertyNode, it is marked as the default property. + Otherwise the function does nothing. + */ + +/*! \fn void Node::markReadOnly(bool flag) + If this node is a QmlPropertyNode, then the property's read-only + flag is set to \a flag. + */ + +/*! \fn Aggregate *Node::parent() const + Returns the node's parent pointer. +*/ + +/*! \fn const QString &Node::name() const + Returns the node's name data member. +*/ + +/*! \fn QString Node::nameForLists() const + If this node is a PageNode or a HeaderNode, title() is returned. + Otherwise name() is returned. + */ + +/*! \fn QString Node::outputFileName() const + If this node is a PageNode, the name of the output file that will be + generated for the node is returned. Otherwise an empty string is returned. + */ + +/*! \fn QString Node::obsoleteLink() const + If this node is a ClassNode or a QmlTypeNode, the link to the obsolete members + page is returned. Otherwise an empty string is returned. + */ + +/*! \fn void Node::setObsoleteLink(const QString &t) + If this node is a ClassNode or a QmlTypeNode, the link to the obsolete members + page is set to \a t. Otherwise the function does nothing. + */ + +/*! \fn void Node::setQtVariable(const QString &v) + If this node is a CollectionNode, its QT variable is set to \a v. + Otherwise the function does nothing. I don't know what the QT variable + is used for. + */ + +/*! \fn QString Node::qtVariable() const + If this node is a CollectionNode, its QT variable is returned. + Otherwise an empty string is returned. I don't know what the QT + variable is used for. + */ + +/*! \fn bool Node::hasTag(const QString &t) const + If this node is a FunctionNode, the function returns \c true if + the function has the tag \a t. Otherwise the function returns + \c false. I don't know what the tag is used for. + */ + +/*! \fn const QMap > &Node::links() const + Returns a reference to this node's link map. The link map should + probably be moved to the PageNode, because it contains links to the + start page, next page, previous page, and contents page, and these + are only used in PageNode, I think. + */ + +/*! \fn Access Node::access() const + Returns the node's Access setting, which can be \c Public, + \c Protected, or \c Private. + */ + +/*! \fn const Location& Node::declLocation() const + Returns the Location where this node's declaration was seen. + Normally the declaration location is in an \e include file. + The declaration location is used in qdoc error/warning messages + about the declaration. + */ + +/*! \fn const Location& Node::defLocation() const + Returns the Location where this node's dedefinition was seen. + Normally the definition location is in a \e .cpp file. + The definition location is used in qdoc error/warning messages + when the error is discovered at the location of the definition, + although the way to correct the problem often requires changing + the declaration. + */ + +/*! \fn const Location& Node::location() const + If this node's definition location is empty, this function + returns this node's declaration location. Otherwise it + returns the definition location. + + \sa Location + */ + +/*! \fn const Doc &Node::doc() const + Returns a reference to the node's Doc data member. + + \sa Doc + */ + +/*! \fn bool Node::hasDoc() const + Returns \c true if the node has documentation, i.e. if its Doc + data member is not empty. + + \sa Doc + */ + +/*! \fn Status Node::status() const + Returns the node's status value. + + \sa Status + */ + +/*! \fn QString Node::since() const + Returns the node's since string, which can be empty. + */ + +/*! \fn QString Node::templateStuff() const + Returns the node's template parameters string, if this node + represents a templated element. + */ + +/*! \fn bool Node::isSharingComment() const + This function returns \c true if the node is sharing a comment + with other nodes. For example, multiple functions can be documented + with a single qdoc comment by listing the \c {\\fn} signatures for + all the functions in the single qdoc comment. + */ + +/*! \fn QString Node::qmlTypeName() const + If this is a QmlPropertyNode or a FunctionNode representing a QML + or javascript methos, this function returns the qmlTypeName() of + the parent() node. Otherwise it returns the name data member. + */ + +/*! \fn QString Node::qmlFullBaseName() const + If this is a QmlTypeNode, this function returns the QML full + base name. Otherwise it returns an empty string. + */ + +/*! \fn QString Node::logicalModuleName() const + If this is a CollectionNode, this function returns the logical + module name. Otherwise it returns an empty string. + */ + +/*! \fn QString Node::logicalModuleVersion() const + If this is a CollectionNode, this function returns the logical + module version number. Otherwise it returns an empty string. + */ + +/*! \fn QString Node::logicalModuleIdentifier() const + If this is a CollectionNode, this function returns the logical + module identifier. Otherwise it returns an empty string. + */ + +/*! \fn void Node::setLogicalModuleInfo(const QString &arg) + If this node is a CollectionNode, this function splits \a arg + on the blank character to get a logical module name and version + number. If the version number is present, it splits the version + number on the '.' character to get a major version number and a + minor version number. If the version number is present, both the + major and minor version numbers should be there, but the minor + version number is not absolutely necessary. + + The strings are stored in the appropriate data members for use + when the QML or javascript module page is generated. + */ + +/*! \fn void Node::setLogicalModuleInfo(const QStringList &info) + If this node is a CollectionNode, this function accepts the + logical module \a info as a string list. If the logical module + info contains the version number, it splits the version number + on the '.' character to get the major and minor version numbers. + Both major and minor version numbers should be provided, but + the minor version number is not strictly necessary. + + The strings are stored in the appropriate data members for use + when the QML or javascript module page is generated. This overload + of the function is called when qdoc is reading an index file. + */ + +/*! \fn CollectionNode *Node::logicalModule() const + If this is a QmlTypeNode, a pointer to its QML module is returned, + which is a pointer to a CollectionNode. Otherwise the \c nullptr + is returned. + */ + +/*! \fn void Node::setQmlModule(CollectionNode *t) + If this is a QmlTypeNode, this function sets the QML type's QML module + pointer to the CollectionNode \a t. Otherwise the function does nothing. + */ + +/*! \fn ClassNode *Node::classNode() + If this is a QmlTypeNode, this function returns the pointer to + the C++ ClassNode that this QML type represents. Otherwise the + \c nullptr is returned. + */ + +/*! \fn void Node::setClassNode(ClassNode *cn) + If this is a QmlTypeNode, this function sets the C++ class node + to \a cn. The C++ ClassNode is the C++ implementation of the QML + type. + */ + +/*! \fn const QString &Node::outputSubdirectory() const + Returns the node's output subdirector, which is the subdirectory + of the output directory where the node's documentation file is + written. + */ + +/*! \fn void Node::setOutputSubdirectory(const QString &t) + Sets the node's output subdirectory to \a t. This is the subdirector + of the output directory where the node's documentation file will be + written. + */ + +/*! \fn NodeType Node::goal(const QString &t) + When a square-bracket parameter is used in a qdoc command, this + function might be called to convert the text string \a t obtained + from inside the square brackets to be a Goal value, which is returned. + + \sa Goal + */ + +QT_END_NAMESPACE diff --git a/src/qdoc/node.h b/src/qdoc/node.h new file mode 100644 index 0000000..5b6f8cd --- /dev/null +++ b/src/qdoc/node.h @@ -0,0 +1,380 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef NODE_H +#define NODE_H + +#include "access.h" +#include "doc.h" +#include "enumitem.h" +#include "importrec.h" +#include "parameters.h" +#include "relatedclass.h" +#include "usingclause.h" + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Aggregate; +class ClassNode; +class CollectionNode; +class EnumNode; +class ExampleNode; +class FunctionNode; +class Node; +class QDocDatabase; +class QmlTypeNode; +class PageNode; +class PropertyNode; +class QmlPropertyNode; +class SharedCommentNode; +class Tree; +class TypedefNode; + +typedef QMap FunctionMap; +typedef QList NodeList; +typedef QList ClassList; +typedef QList NodeVector; +typedef QMap NodeMap; +typedef QMap NodeMapMap; +typedef QMultiMap NodeMultiMap; +typedef QMap NodeMultiMapMap; +typedef QMap CNMap; +typedef QMultiMap CNMultiMap; + +class Node +{ +public: + enum NodeType : unsigned char { + NoType, + Namespace, + Class, + Struct, + Union, + HeaderFile, + Page, + Enum, + Example, + ExternalPage, + Function, + Typedef, + TypeAlias, + Property, + Variable, + Group, + Module, + QmlType, + QmlModule, + QmlProperty, + QmlValueType, + JsType, + JsModule, + JsProperty, + JsBasicType, + SharedComment, + Collection, + Proxy + }; + + enum Genus : unsigned char { + DontCare = 0x0, + CPP = 0x1, + JS = 0x2, + QML = 0x4, + DOC = 0x8, + API = CPP | JS | QML + }; + + enum Status : unsigned char { + Deprecated, + Preliminary, + Active, + Internal, + DontDocument + }; // don't reorder this enum + + enum ThreadSafeness : unsigned char { + UnspecifiedSafeness, + NonReentrant, + Reentrant, + ThreadSafe + }; + + enum LinkType : unsigned char { StartLink, NextLink, PreviousLink, ContentsLink }; + + enum PageType : unsigned char { + NoPageType, + AttributionPage, + ApiPage, + ArticlePage, + ExamplePage, + HowToPage, + OverviewPage, + TutorialPage, + FAQPage + }; + + enum FlagValue { FlagValueDefault = -1, FlagValueFalse = 0, FlagValueTrue = 1 }; + + virtual ~Node() = default; + virtual Node *clone(Aggregate *) { return nullptr; } // currently only FunctionNode + [[nodiscard]] virtual Tree *tree() const; + [[nodiscard]] Aggregate *root() const; + + [[nodiscard]] NodeType nodeType() const { return m_nodeType; } + [[nodiscard]] QString nodeTypeString() const; + bool changeType(NodeType from, NodeType to); + + [[nodiscard]] Genus genus() const { return m_genus; } + void setGenus(Genus t) { m_genus = t; } + static Genus getGenus(NodeType t); + + [[nodiscard]] PageType pageType() const { return m_pageType; } + void setPageType(PageType t) { m_pageType = t; } + void setPageType(const QString &t); + static PageType getPageType(NodeType t); + + [[nodiscard]] bool isActive() const { return m_status == Active; } + [[nodiscard]] bool isClass() const { return m_nodeType == Class; } + [[nodiscard]] bool isCppNode() const { return genus() == CPP; } + [[nodiscard]] bool isDontDocument() const { return (m_status == DontDocument); } + [[nodiscard]] bool isEnumType() const { return m_nodeType == Enum; } + [[nodiscard]] bool isExample() const { return m_nodeType == Example; } + [[nodiscard]] bool isExternalPage() const { return m_nodeType == ExternalPage; } + [[nodiscard]] bool isFunction(Genus g = DontCare) const + { + return m_nodeType == Function && (genus() == g || g == DontCare); + } + [[nodiscard]] bool isGroup() const { return m_nodeType == Group; } + [[nodiscard]] bool isHeader() const { return m_nodeType == HeaderFile; } + [[nodiscard]] bool isIndexNode() const { return m_indexNodeFlag; } + [[nodiscard]] bool isJsBasicType() const { return m_nodeType == JsBasicType; } + [[nodiscard]] bool isJsModule() const { return m_nodeType == JsModule; } + [[nodiscard]] bool isJsNode() const { return genus() == JS; } + [[nodiscard]] bool isJsProperty() const { return m_nodeType == JsProperty; } + [[nodiscard]] bool isJsType() const { return m_nodeType == JsType; } + [[nodiscard]] bool isModule() const { return m_nodeType == Module; } + [[nodiscard]] bool isNamespace() const { return m_nodeType == Namespace; } + [[nodiscard]] bool isPage() const { return m_nodeType == Page; } + [[nodiscard]] bool isPreliminary() const { return (m_status == Preliminary); } + [[nodiscard]] bool isPrivate() const { return m_access == Access::Private; } + [[nodiscard]] bool isProperty() const { return m_nodeType == Property; } + [[nodiscard]] bool isProxyNode() const { return m_nodeType == Proxy; } + [[nodiscard]] bool isPublic() const { return m_access == Access::Public; } + [[nodiscard]] bool isProtected() const { return m_access == Access::Protected; } + [[nodiscard]] bool isQmlBasicType() const { return m_nodeType == QmlValueType; } + [[nodiscard]] bool isQmlModule() const { return m_nodeType == QmlModule; } + [[nodiscard]] bool isQmlNode() const { return genus() == QML; } + [[nodiscard]] bool isQmlProperty() const { return m_nodeType == QmlProperty; } + [[nodiscard]] bool isQmlType() const { return m_nodeType == QmlType; } + [[nodiscard]] bool isRelatedNonmember() const { return m_relatedNonmember; } + [[nodiscard]] bool isStruct() const { return m_nodeType == Struct; } + [[nodiscard]] bool isSharedCommentNode() const { return m_nodeType == SharedComment; } + [[nodiscard]] bool isTypeAlias() const { return m_nodeType == TypeAlias; } + [[nodiscard]] bool isTypedef() const + { + return m_nodeType == Typedef || m_nodeType == TypeAlias; + } + [[nodiscard]] bool isUnion() const { return m_nodeType == Union; } + [[nodiscard]] bool isVariable() const { return m_nodeType == Variable; } + [[nodiscard]] bool isGenericCollection() const { return (m_nodeType == Node::Collection); } + + [[nodiscard]] virtual bool isDeprecated() const { return (m_status == Deprecated); } + [[nodiscard]] virtual bool isAbstract() const { return false; } + [[nodiscard]] virtual bool isAggregate() const { return false; } // means "can have children" + [[nodiscard]] virtual bool isFirstClassAggregate() const + { + return false; + } // Aggregate but not proxy or prop group" + [[nodiscard]] virtual bool isAlias() const { return false; } + [[nodiscard]] virtual bool isAttached() const { return false; } + [[nodiscard]] virtual bool isClassNode() const { return false; } + [[nodiscard]] virtual bool isCollectionNode() const { return false; } + [[nodiscard]] virtual bool isDefault() const { return false; } + [[nodiscard]] virtual bool isInternal() const; + [[nodiscard]] virtual bool isMacro() const { return false; } + [[nodiscard]] virtual bool isPageNode() const { return false; } // means "generates a doc page" + [[nodiscard]] virtual bool isQtQuickNode() const { return false; } + [[nodiscard]] virtual bool isReadOnly() const { return false; } + [[nodiscard]] virtual bool isRelatableType() const { return false; } + [[nodiscard]] virtual bool isMarkedReimp() const { return false; } + [[nodiscard]] virtual bool isPropertyGroup() const { return false; } + [[nodiscard]] virtual bool isStatic() const { return false; } + [[nodiscard]] virtual bool isTextPageNode() const + { + return false; + } // means PageNode but not Aggregate + [[nodiscard]] virtual bool isWrapper() const; + + [[nodiscard]] QString plainName() const; + QString plainFullName(const Node *relative = nullptr) const; + [[nodiscard]] QString plainSignature() const; + QString fullName(const Node *relative = nullptr) const; + [[nodiscard]] virtual QString signature(bool, bool) const { return plainName(); } + [[nodiscard]] virtual QString signature(bool, bool, bool) const { return plainName(); } + + [[nodiscard]] const QString &fileNameBase() const { return m_fileNameBase; } + [[nodiscard]] bool hasFileNameBase() const { return !m_fileNameBase.isEmpty(); } + void setFileNameBase(const QString &t) { m_fileNameBase = t; } + + void setAccess(Access t) { m_access = t; } + void setLocation(const Location &t); + void setDoc(const Doc &doc, bool replace = false); + void setStatus(Status t); + void setThreadSafeness(ThreadSafeness t) { m_safeness = t; } + void setSince(const QString &since); + void setPhysicalModuleName(const QString &name) { m_physicalModuleName = name; } + void setUrl(const QString &url) { m_url = url; } + void setTemplateDecl(const QString &t) { m_templateDecl = t; } + void setReconstitutedBrief(const QString &t) { m_reconstitutedBrief = t; } + void setParent(Aggregate *n) { m_parent = n; } + void setIndexNodeFlag(bool isIndexNode = true) { m_indexNodeFlag = isIndexNode; } + void setHadDoc() { m_hadDoc = true; } + virtual void setRelatedNonmember(bool b) { m_relatedNonmember = b; } + virtual void setOutputFileName(const QString &) {} + virtual void addMember(Node *) {} + [[nodiscard]] virtual bool hasNamespaces() const { return false; } + [[nodiscard]] virtual bool hasClasses() const { return false; } + virtual void setAbstract(bool) {} + virtual void setWrapper() {} + virtual void getMemberNamespaces(NodeMap &) {} + virtual void getMemberClasses(NodeMap &) const {} + virtual void setDataType(const QString &) {} + [[nodiscard]] virtual bool wasSeen() const { return false; } + virtual void appendGroupName(const QString &) {} + [[nodiscard]] virtual QString element() const { return QString(); } + virtual void setNoAutoList(bool) {} + [[nodiscard]] virtual bool docMustBeGenerated() const { return false; } + + [[nodiscard]] virtual QString title() const { return name(); } + [[nodiscard]] virtual QString subtitle() const { return QString(); } + [[nodiscard]] virtual QString fullTitle() const { return name(); } + virtual bool setTitle(const QString &) { return false; } + virtual bool setSubtitle(const QString &) { return false; } + + void markInternal() + { + setAccess(Access::Private); + setStatus(Internal); + } + virtual void markDefault() {} + virtual void markReadOnly(bool) {} + + [[nodiscard]] bool match(const QList &types) const; + [[nodiscard]] Aggregate *parent() const { return m_parent; } + [[nodiscard]] const QString &name() const { return m_name; } + [[nodiscard]] QString physicalModuleName() const { return m_physicalModuleName; } + [[nodiscard]] QString url() const { return m_url; } + [[nodiscard]] virtual QString nameForLists() const { return m_name; } + [[nodiscard]] virtual QString outputFileName() const { return QString(); } + [[nodiscard]] virtual QString obsoleteLink() const { return QString(); } + virtual void setObsoleteLink(const QString &) {} + virtual void setQtVariable(const QString &) {} + [[nodiscard]] virtual QString qtVariable() const { return QString(); } + virtual void setQtCMakeComponent(const QString &) {} + [[nodiscard]] virtual QString qtCMakeComponent() const { return QString(); } + [[nodiscard]] virtual bool hasTag(const QString &) const { return false; } + + void setDeprecatedSince(const QString &sinceVersion); + [[nodiscard]] const QString &deprecatedSince() const { return m_deprecatedSince; } + + [[nodiscard]] const QMap> &links() const { return m_linkMap; } + void setLink(LinkType linkType, const QString &link, const QString &desc); + [[nodiscard]] const Node *navigationParent() const { return m_navParent; } + void setNavigationParent(const Node *parent) { m_navParent = parent; } + + [[nodiscard]] Access access() const { return m_access; } + [[nodiscard]] const Location &declLocation() const { return m_declLocation; } + [[nodiscard]] const Location &defLocation() const { return m_defLocation; } + [[nodiscard]] const Location &location() const + { + return (m_defLocation.isEmpty() ? m_declLocation : m_defLocation); + } + [[nodiscard]] const Doc &doc() const { return m_doc; } + [[nodiscard]] bool isInAPI() const + { + return !isPrivate() && !isInternal() && !isDontDocument() && hasDoc(); + } + [[nodiscard]] bool hasDoc() const { return (m_hadDoc || !m_doc.isEmpty()); } + [[nodiscard]] bool hadDoc() const { return m_hadDoc; } + [[nodiscard]] Status status() const { return m_status; } + [[nodiscard]] ThreadSafeness threadSafeness() const; + [[nodiscard]] ThreadSafeness inheritedThreadSafeness() const; + [[nodiscard]] QString since() const { return m_since; } + [[nodiscard]] const QString &templateDecl() const { return m_templateDecl; } + [[nodiscard]] const QString &reconstitutedBrief() const { return m_reconstitutedBrief; } + + [[nodiscard]] bool isSharingComment() const { return (m_sharedCommentNode != nullptr); } + [[nodiscard]] bool hasSharedDoc() const; + void setSharedCommentNode(SharedCommentNode *t) { m_sharedCommentNode = t; } + SharedCommentNode *sharedCommentNode() { return m_sharedCommentNode; } + + [[nodiscard]] QString extractClassName(const QString &string) const; + [[nodiscard]] virtual QString qmlTypeName() const { return m_name; } + [[nodiscard]] virtual QString qmlFullBaseName() const { return QString(); } + [[nodiscard]] virtual QString logicalModuleName() const { return QString(); } + [[nodiscard]] virtual QString logicalModuleVersion() const { return QString(); } + [[nodiscard]] virtual QString logicalModuleIdentifier() const { return QString(); } + virtual void setLogicalModuleInfo(const QString &) {} + virtual void setLogicalModuleInfo(const QStringList &) {} + [[nodiscard]] virtual CollectionNode *logicalModule() const { return nullptr; } + virtual void setQmlModule(CollectionNode *) {} + virtual ClassNode *classNode() { return nullptr; } + virtual void setClassNode(ClassNode *) {} + QmlTypeNode *qmlTypeNode(); + ClassNode *declarativeCppNode(); + [[nodiscard]] const QString &outputSubdirectory() const { return m_outSubDir; } + virtual void setOutputSubdirectory(const QString &t) { m_outSubDir = t; } + [[nodiscard]] QString fullDocumentName() const; + QString qualifyCppName(); + QString qualifyQmlName(); + QString qualifyWithParentName(); + + static FlagValue toFlagValue(bool b); + static bool fromFlagValue(FlagValue fv, bool defaultValue); + static QString nodeTypeString(NodeType t); + static void initialize(); + static NodeType goal(const QString &t) { return goals.value(t); } + static bool nodeNameLessThan(const Node *first, const Node *second); + +protected: + Node(NodeType type, Aggregate *parent, QString name); + +private: + NodeType m_nodeType {}; + Genus m_genus {}; + Access m_access { Access::Public }; + ThreadSafeness m_safeness { UnspecifiedSafeness }; + PageType m_pageType { NoPageType }; + Status m_status { Active }; + bool m_indexNodeFlag : 1; + bool m_relatedNonmember : 1; + bool m_hadDoc : 1; + + Aggregate *m_parent { nullptr }; + SharedCommentNode *m_sharedCommentNode { nullptr }; + QString m_name {}; + Location m_declLocation {}; + Location m_defLocation {}; + Doc m_doc {}; + QMap> m_linkMap {}; + QString m_fileNameBase {}; + QString m_physicalModuleName {}; + QString m_url {}; + QString m_since {}; + QString m_templateDecl {}; + QString m_reconstitutedBrief {}; + QString m_outSubDir {}; + static QStringMap operators; + static QMap goals; + QString m_deprecatedSince {}; + const Node *m_navParent { nullptr }; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/openedlist.cpp b/src/qdoc/openedlist.cpp new file mode 100644 index 0000000..f2ee45b --- /dev/null +++ b/src/qdoc/openedlist.cpp @@ -0,0 +1,172 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "openedlist.h" + +#include "atom.h" + +#include + +QT_BEGIN_NAMESPACE + +static const char roman[] = "m\2d\5c\2l\5x\2v\5i"; + +OpenedList::OpenedList(ListStyle style) : sty(style), ini(1), nex(0) {} + +OpenedList::OpenedList(const Location &location, const QString &hint) : sty(Bullet), ini(1) +{ + QRegularExpression hintSyntax("^(\\W*)([0-9]+|[A-Z]+|[a-z]+)(\\W*)$"); + + auto match = hintSyntax.match(hint); + if (match.hasMatch()) { + bool ok; + int asNumeric = hint.toInt(&ok); + int asRoman = fromRoman(match.captured(2)); + int asAlpha = fromAlpha(match.captured(2)); + + if (ok) { + sty = Numeric; + ini = asNumeric; + } else if (asRoman > 0 && asRoman != 100 && asRoman != 500) { + sty = (hint == hint.toLower()) ? LowerRoman : UpperRoman; + ini = asRoman; + } else { + sty = (hint == hint.toLower()) ? LowerAlpha : UpperAlpha; + ini = asAlpha; + } + pref = match.captured(1); + suff = match.captured(3); + } else if (!hint.isEmpty()) { + location.warning(QStringLiteral("Unrecognized list style '%1'").arg(hint)); + } + nex = ini - 1; +} + +QString OpenedList::styleString() const +{ + switch (style()) { + case Bullet: + default: + return ATOM_LIST_BULLET; + case Tag: + return ATOM_LIST_TAG; + case Value: + return ATOM_LIST_VALUE; + case Numeric: + return ATOM_LIST_NUMERIC; + case UpperAlpha: + return ATOM_LIST_UPPERALPHA; + case LowerAlpha: + return ATOM_LIST_LOWERALPHA; + case UpperRoman: + return ATOM_LIST_UPPERROMAN; + case LowerRoman: + return ATOM_LIST_LOWERROMAN; + } +} + +QString OpenedList::numberString() const +{ + return QString::number(number()); + /* + switch ( style() ) { + case Numeric: + return QString::number( number() ); + case UpperAlpha: + return toAlpha( number() ).toUpper(); + case LowerAlpha: + return toAlpha( number() ); + case UpperRoman: + return toRoman( number() ).toUpper(); + case LowerRoman: + return toRoman( number() ); + case Bullet: + default: + return "*"; + }*/ +} + +int OpenedList::fromAlpha(const QString &str) +{ + int n = 0; + int u; + + for (const QChar &character : str) { + u = character.toLower().unicode(); + if (u >= 'a' && u <= 'z') { + n *= 26; + n += u - 'a' + 1; + } else { + return 0; + } + } + return n; +} + +QString OpenedList::toRoman(int n) +{ + /* + See p. 30 of Donald E. Knuth's "TeX: The Program". + */ + QString str; + int j = 0; + int k; + int u; + int v = 1000; + + for (;;) { + while (n >= v) { + str += roman[j]; + n -= v; + } + + if (n <= 0) + break; + + k = j + 2; + u = v / roman[k - 1]; + if (roman[k - 1] == 2) { + k += 2; + u /= 5; + } + if (n + u >= v) { + str += roman[k]; + n += u; + } else { + j += 2; + v /= roman[j - 1]; + } + } + return str; +} + +int OpenedList::fromRoman(const QString &str) +{ + int n = 0; + int j; + int u; + int v = 0; + + for (const QChar &character : str) { + j = 0; + u = 1000; + while (roman[j] != 'i' && roman[j] != character.toLower()) { + j += 2; + u /= roman[j - 1]; + } + if (u < v) { + n -= u; + } else { + n += u; + } + v = u; + } + + if (str.toLower() == toRoman(n)) { + return n; + } else { + return 0; + } +} + +QT_END_NAMESPACE diff --git a/src/qdoc/openedlist.h b/src/qdoc/openedlist.h new file mode 100644 index 0000000..cd0c54e --- /dev/null +++ b/src/qdoc/openedlist.h @@ -0,0 +1,47 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef OPENEDLIST_H +#define OPENEDLIST_H + +#include "location.h" + +#include + +QT_BEGIN_NAMESPACE + +class OpenedList +{ +public: + enum ListStyle { Bullet, Tag, Value, Numeric, UpperAlpha, LowerAlpha, UpperRoman, LowerRoman }; + + OpenedList() : sty(Bullet), ini(1), nex(0) {} + explicit OpenedList(ListStyle style); + OpenedList(const Location &location, const QString &hint); + + void next() { nex++; } + + [[nodiscard]] bool isStarted() const { return nex >= ini; } + [[nodiscard]] ListStyle style() const { return sty; } + [[nodiscard]] QString styleString() const; + [[nodiscard]] int number() const { return nex; } + [[nodiscard]] QString numberString() const; + [[nodiscard]] QString prefix() const { return pref; } + [[nodiscard]] QString suffix() const { return suff; } + +private: + static int fromAlpha(const QString &str); + static QString toRoman(int n); + static int fromRoman(const QString &str); + + ListStyle sty; + int ini; + int nex; + QString pref; + QString suff; +}; +Q_DECLARE_TYPEINFO(OpenedList, Q_RELOCATABLE_TYPE); + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/pagenode.cpp b/src/qdoc/pagenode.cpp new file mode 100644 index 0000000..de3c121 --- /dev/null +++ b/src/qdoc/pagenode.cpp @@ -0,0 +1,139 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "pagenode.h" + +#include "aggregate.h" + +QT_BEGIN_NAMESPACE + +/*! + \class PageNode + \brief A PageNode is a Node that generates a documentation page. + + Not all subclasses of Node produce documentation pages. FunctionNode, + PropertyNode, and EnumNode are all examples of subclasses of Node that + don't produce documentation pages but add documentation to a page. + They are always child nodes of an Aggregate, and Aggregate inherits + PageNode. + + Not every subclass of PageNode inherits Aggregate. ExternalPageNode, + ExampleNode, and CollectionNode are subclasses of PageNode that are + not subclasses of Aggregate. Because they are not subclasses of + Aggregate, they can't have children. But they still generate, or + link to, a documentation page. + */ + +/*! \fn QString PageNode::title() const + Returns the node's title, which is used for the page title. + */ + +/*! \fn QString PageNode::subtitle() const + Returns the node's subtitle, which may be empty. + */ + +/*! + Returns the node's full title. + */ +QString PageNode::fullTitle() const +{ + return title(); +} + +/*! + Sets the node's \a title, which is used for the page title. + Returns true. Adds the node to the parent() nonfunction map + using the \a title as the key. + */ +bool PageNode::setTitle(const QString &title) +{ + m_title = title; + parent()->addChildByTitle(this, title); + return true; +} + +/*! + \fn bool PageNode::setSubtitle(const QString &subtitle) + Sets the node's \a subtitle. Returns true; + */ + +/*! \fn PageNode::PageNode(Aggregate *parent, const QString &name) + This constructor sets the PageNode's \a parent and the \a name is the + argument of the \c {\\page} command. The node type is set to Node::Page. + */ + +/*! \fn PageNode::PageNode(NodeType type, Aggregate *parent, const QString &name) + This constructor is not called directly. It is called by the constructors of + subclasses of PageNode, usually Aggregate. The node type is set to \a type, + and the parent pointer is set to \a parent. \a name is the argument of the topic + command that resulted in the PageNode being created. This could be \c {\\class} + or \c {\\namespace}, for example. + */ + +/*! \fn PageNode::PageNode(Aggregate *parent, const QString &name, PageType ptype) + This constructor is called when the argument to the \c {\\page} command + contains a space, which means the second word of the argument is the page type. + It creates a PageNode that has node type Node::Page, with the specified + \a parent and \name, and the \a ptype is that second word of the argument to + the \c {\\page} command. + + \sa Node::PageType + */ + +/*! \fn PageNode::~PageNode() + The destructor is virtual, and it does nothing. + */ + +/*! \fn bool PageNode::isPageNode() const + Always returns \c true because this is a PageNode. + */ + +/*! \fn bool PageNode::isTextPageNode() const + Returns \c true if this instance of PageNode is not an Aggregate. + The significance of a \c true return value is that this PageNode + doesn't have children, because it is not an Aggregate. + + \sa Aggregate. + */ + +/*! \fn QString PageNode::nameForLists() const + Returns the title(). + */ + +/*! \fn QString PageNode::imageFileName() const + If this PageNode is an ExampleNode, the image file name + data member is returned. Otherwise an empty string is + returned. + */ + +/*! \fn void PageNode::setImageFileName(const QString &ifn) + If this PageNode is an ExampleNode, the image file name + data member is set to \a ifn. Otherwise the function does + nothing. + */ + +/*! \fn bool PageNode::noAutoList() const + Returns the value of the no auto-list flag. + */ + +/*! \fn void PageNode::setNoAutoList(bool b) + Sets the no auto-list flag to \a b. + */ + +/*! \fn const QStringList &PageNode::groupNames() const + Returns a const reference to the string list containing all the group names. + */ + +/*! \fn void PageNode::appendGroupName(const QString &t) + Appends \a t to the list of group names. + */ + +/*! \fn void PageNode::setOutputFileName(const QString &f) + Sets this PageNode's output file name to \a f. + */ + +/*! \fn QString PageNode::outputFileName() const + Returns this PageNode's output file name. + */ + +QT_END_NAMESPACE diff --git a/src/qdoc/pagenode.h b/src/qdoc/pagenode.h new file mode 100644 index 0000000..7f54870 --- /dev/null +++ b/src/qdoc/pagenode.h @@ -0,0 +1,68 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef PAGENODE_H +#define PAGENODE_H + +#include "node.h" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Aggregate; + +class PageNode : public Node +{ +public: + PageNode(Aggregate *parent, const QString &name) : Node(Page, parent, name) {} + PageNode(NodeType type, Aggregate *parent, const QString &name) : Node(type, parent, name) {} + PageNode(Aggregate *parent, const QString &name, PageType ptype) : Node(Page, parent, name) + { + setPageType(ptype); + } + + [[nodiscard]] bool isPageNode() const override { return true; } + [[nodiscard]] bool isTextPageNode() const override + { + return !isAggregate(); + } // PageNode but not Aggregate + + [[nodiscard]] QString title() const override { return m_title; } + [[nodiscard]] QString subtitle() const override { return m_subtitle; } + [[nodiscard]] QString fullTitle() const override; + bool setTitle(const QString &title) override; + bool setSubtitle(const QString &subtitle) override + { + m_subtitle = subtitle; + return true; + } + [[nodiscard]] QString nameForLists() const override { return title(); } + + [[nodiscard]] virtual QString imageFileName() const { return QString(); } + virtual void setImageFileName(const QString &) {} + + [[nodiscard]] bool noAutoList() const { return m_noAutoList; } + void setNoAutoList(bool b) override { m_noAutoList = b; } + [[nodiscard]] const QStringList &groupNames() const { return m_groupNames; } + void appendGroupName(const QString &t) override { m_groupNames.append(t); } + + void setOutputFileName(const QString &f) override { m_outputFileName = f; } + [[nodiscard]] QString outputFileName() const override { return m_outputFileName; } + +protected: + friend class Node; + +protected: + bool m_noAutoList { false }; + QString m_title {}; + QString m_subtitle {}; + QString m_outputFileName {}; + QStringList m_groupNames {}; +}; + +QT_END_NAMESPACE + +#endif // PAGENODE_H diff --git a/src/qdoc/parameters.cpp b/src/qdoc/parameters.cpp new file mode 100644 index 0000000..39f88b4 --- /dev/null +++ b/src/qdoc/parameters.cpp @@ -0,0 +1,542 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "parameters.h" + +#include "codechunk.h" +#include "generator.h" +#include "tokenizer.h" + +QT_BEGIN_NAMESPACE + +QRegularExpression Parameters::s_varComment(R"(^/\*\s*([a-zA-Z_0-9]+)\s*\*/$)"); + +/*! + \class Parameter + \brief The Parameter class describes one function parameter. + + A parameter can be a function parameter or a macro parameter. + It has a name, a data type, and an optional default value. + These are all stored as strings so they can be compared with + a parameter in a function signature to find a match. + */ + +/*! + \fn Parameter::Parameter(const QString &type, const QString &name, const QString &defaultValue) + + Constructs the parameter from the \a type, the optional \a name, + and the optional \a defaultValue. + */ + +/*! + Reconstructs the text signature for the parameter and returns + it. If \a includeValue is true and there is a default value, + the default value is appended with '='. + */ +QString Parameter::signature(bool includeValue) const +{ + QString p = m_type; + if (!p.isEmpty() && !p.endsWith(QChar('*')) && !p.endsWith(QChar('&')) && + !p.endsWith(QChar(' ')) && !m_name.isEmpty()) { + p += QLatin1Char(' '); + } + p += m_name; + if (includeValue && !m_defaultValue.isEmpty()) + p += " = " + m_defaultValue; + return p; +} + +/*! + \class Parameters + + \brief A class for parsing and managing a function parameter list + + The constructor is passed a string that is the text inside the + parentheses of a function declaration. The constructor parses + the parameter list into a vector of class Parameter. + + The Parameters object is then used in function searches to find + the correct function node given the function name and the signature + of its parameters. + */ + +Parameters::Parameters() : m_valid(true), m_privateSignal(false), m_tok(0), m_tokenizer(nullptr) +{ + // nothing. +} + +Parameters::Parameters(const QString &signature) + : m_valid(true), m_privateSignal(false), m_tok(0), m_tokenizer(nullptr) +{ + if (!signature.isEmpty()) { + if (!parse(signature)) { + m_parameters.clear(); + m_valid = false; + } + } +} + +/*! + Get the next token from the string being parsed and store + it in the token variable. + */ +void Parameters::readToken() +{ + m_tok = m_tokenizer->getToken(); +} + +/*! + Return the current lexeme from the string being parsed. + */ +QString Parameters::lexeme() +{ + return m_tokenizer->lexeme(); +} + +/*! + Return the previous lexeme read from the string being parsed. + */ +QString Parameters::previousLexeme() +{ + return m_tokenizer->previousLexeme(); +} + +/*! + If the current token is \a target, read the next token and + return \c true. Otherwise, return false without reading the + next token. + */ +bool Parameters::match(int target) +{ + if (m_tok == target) { + readToken(); + return true; + } + return false; +} + +/*! + Match a template clause in angle brackets, append it to the + \a type, and return \c true. If there is no template clause, + or if an error is detected, return \c false. + */ +void Parameters::matchTemplateAngles(CodeChunk &type) +{ + if (m_tok == Tok_LeftAngle) { + int leftAngleDepth = 0; + int parenAndBraceDepth = 0; + do { + if (m_tok == Tok_LeftAngle) { + leftAngleDepth++; + } else if (m_tok == Tok_RightAngle) { + leftAngleDepth--; + } else if (m_tok == Tok_LeftParen || m_tok == Tok_LeftBrace) { + ++parenAndBraceDepth; + } else if (m_tok == Tok_RightParen || m_tok == Tok_RightBrace) { + if (--parenAndBraceDepth < 0) + return; + } + type.append(lexeme()); + readToken(); + } while (leftAngleDepth > 0 && m_tok != Tok_Eoi); + } +} + +/*! + Uses the current tokenizer to parse the \a name and \a type + of the parameter. + */ +bool Parameters::matchTypeAndName(CodeChunk &type, QString &name) +{ + /* + This code is really hard to follow... sorry. The loop is there to match + Alpha::Beta::Gamma::...::Omega. + */ + for (;;) { + bool virgin = true; + + if (m_tok != Tok_Ident) { + /* + There is special processing for 'Foo::operator int()' + and such elsewhere. This is the only case where we + return something with a trailing gulbrandsen ('Foo::'). + */ + if (m_tok == Tok_operator) + return true; + + /* + People may write 'const unsigned short' or + 'short unsigned const' or any other permutation. + */ + while (match(Tok_const) || match(Tok_volatile)) + type.append(previousLexeme()); + QString pending; + while (m_tok == Tok_signed || m_tok == Tok_int || m_tok == Tok_unsigned + || m_tok == Tok_short || m_tok == Tok_long || m_tok == Tok_int64) { + if (m_tok == Tok_signed) + pending = lexeme(); + else { + if (m_tok == Tok_unsigned && !pending.isEmpty()) + type.append(pending); + pending.clear(); + type.append(lexeme()); + } + readToken(); + virgin = false; + } + if (!pending.isEmpty()) { + type.append(pending); + pending.clear(); + } + while (match(Tok_const) || match(Tok_volatile)) + type.append(previousLexeme()); + + if (match(Tok_Tilde)) + type.append(previousLexeme()); + } + + if (virgin) { + if (match(Tok_Ident)) { + /* + This is a hack until we replace this "parser" + with the real one used in Qt Creator. + Is it still needed? mws 11/12/2018 + */ + if (lexeme() == "(" + && ((previousLexeme() == "QT_PREPEND_NAMESPACE") + || (previousLexeme() == "NS"))) { + readToken(); + readToken(); + type.append(previousLexeme()); + readToken(); + } else + type.append(previousLexeme()); + } else if (match(Tok_void) || match(Tok_int) || match(Tok_char) || match(Tok_double) + || match(Tok_Ellipsis)) { + type.append(previousLexeme()); + } else { + return false; + } + } else if (match(Tok_int) || match(Tok_char) || match(Tok_double)) { + type.append(previousLexeme()); + } + + matchTemplateAngles(type); + + while (match(Tok_const) || match(Tok_volatile)) + type.append(previousLexeme()); + + if (match(Tok_Gulbrandsen)) + type.append(previousLexeme()); + else + break; + } + + while (match(Tok_Ampersand) || match(Tok_Aster) || match(Tok_const) || match(Tok_Caret) + || match(Tok_Ellipsis)) + type.append(previousLexeme()); + + if (match(Tok_LeftParenAster)) { + /* + A function pointer. This would be rather hard to handle without a + tokenizer hack, because a type can be followed with a left parenthesis + in some cases (e.g., 'operator int()'). The tokenizer recognizes '(*' + as a single token. + */ + type.append(" "); // force a space after the type + type.append(previousLexeme()); + type.appendHotspot(); + if (match(Tok_Ident)) + name = previousLexeme(); + if (!match(Tok_RightParen)) + return false; + type.append(previousLexeme()); + if (!match(Tok_LeftParen)) + return false; + type.append(previousLexeme()); + + /* parse the parameters. Ignore the parameter name from the type */ + while (m_tok != Tok_RightParen && m_tok != Tok_Eoi) { + QString dummy; + if (!matchTypeAndName(type, dummy)) + return false; + if (match(Tok_Comma)) + type.append(previousLexeme()); + } + if (!match(Tok_RightParen)) + return false; + type.append(previousLexeme()); + } else { + /* + The common case: Look for an optional identifier, then for + some array brackets. + */ + type.appendHotspot(); + + if (match(Tok_Ident)) { + name = previousLexeme(); + } else if (match(Tok_Comment)) { + /* + A neat hack: Commented-out parameter names are + recognized by qdoc. It's impossible to illustrate + here inside a C-style comment, because it requires + an asterslash. It's also impossible to illustrate + inside a C++-style comment, because the explanation + does not fit on one line. + */ + auto match = s_varComment.match(previousLexeme()); + if (match.hasMatch()) + name = match.captured(1); + } else if (match(Tok_LeftParen)) { + name = "("; + while (m_tok != Tok_RightParen && m_tok != Tok_Eoi) { + name.append(lexeme()); + readToken(); + } + name.append(")"); + readToken(); + if (match(Tok_LeftBracket)) { + name.append("["); + while (m_tok != Tok_RightBracket && m_tok != Tok_Eoi) { + name.append(lexeme()); + readToken(); + } + name.append("]"); + readToken(); + } + } + + if (m_tok == Tok_LeftBracket) { + int bracketDepth0 = m_tokenizer->bracketDepth(); + while ((m_tokenizer->bracketDepth() >= bracketDepth0 && m_tok != Tok_Eoi) + || m_tok == Tok_RightBracket) { + type.append(lexeme()); + readToken(); + } + } + } + return true; +} + +/*! + Parse the next function parameter, if there is one, and + append it to the internal parameter vector. Return true + if a parameter is parsed correctly. Otherwise return false. + */ +bool Parameters::matchParameter() +{ + if (match(Tok_QPrivateSignal)) { + m_privateSignal = true; + return true; + } + + CodeChunk chunk; + QString name; + if (!matchTypeAndName(chunk, name)) + return false; + QString type = chunk.toString(); + QString defaultValue; + match(Tok_Comment); + if (match(Tok_Equal)) { + chunk.clear(); + int pdepth = m_tokenizer->parenDepth(); + while (m_tokenizer->parenDepth() >= pdepth + && (m_tok != Tok_Comma || (m_tokenizer->parenDepth() > pdepth)) + && m_tok != Tok_Eoi) { + chunk.append(lexeme()); + readToken(); + } + defaultValue = chunk.toString(); + } + append(type, name, defaultValue); + return true; +} + +/*! + This function uses a Tokenizer to parse the \a signature, + which is a comma-separated list of parameter declarations. + If an error is detected, the Parameters object is cleared + and \c false is returned. Otherwise \c true is returned. + */ +bool Parameters::parse(const QString &signature) +{ + Tokenizer *outerTokenizer = m_tokenizer; + int outerTok = m_tok; + + QByteArray latin1 = signature.toLatin1(); + Tokenizer stringTokenizer(Location(), latin1); + stringTokenizer.setParsingFnOrMacro(true); + m_tokenizer = &stringTokenizer; + + readToken(); + do { + if (!matchParameter()) { + m_parameters.clear(); + m_valid = false; + break; + } + } while (match(Tok_Comma)); + + m_tokenizer = outerTokenizer; + m_tok = outerTok; + return m_valid; +} + +/*! + Append a Parameter constructed from \a type, \a name, and \a value + to the parameter vector. + */ +void Parameters::append(const QString &type, const QString &name, const QString &value) +{ + m_parameters.append(Parameter(type, name, value)); +} + +/*! + Returns the list of reconstructed parameters. If \a includeValues + is true, the default values are included, if any are present. + */ +QString Parameters::signature(bool includeValues) const +{ + QString result; + if (!m_parameters.empty()) { + for (int i = 0; i < m_parameters.size(); i++) { + if (i > 0) + result += ", "; + result += m_parameters.at(i).signature(includeValues); + } + } + return result; +} + +/*! + Returns the signature of all the parameters with all the + spaces and commas removed. It is unintelligible, but that + is what the caller wants. + + If \a names is true, the parameter names are included. If + \a values is true, the default values are included. + */ +QString Parameters::rawSignature(bool names, bool values) const +{ + QString raw; + const auto params = m_parameters; + for (const auto ¶meter : params) { + raw += parameter.type(); + if (names) + raw += parameter.name(); + if (values) + raw += parameter.defaultValue(); + } + return raw; +} + +/*! + Parse the parameter \a signature by splitting the string, + and store the individual parameters in the parameter vector. + + This method of parsing is naive but sufficient for QML methods + and macros. + */ +void Parameters::set(const QString &signature) +{ + clear(); + if (!signature.isEmpty()) { + QStringList commaSplit = signature.split(','); + m_parameters.resize(commaSplit.size()); + int i = 0; + for (const auto &item : std::as_const(commaSplit)) { + QStringList blankSplit = item.split(' ', Qt::SkipEmptyParts); + QString pDefault; + qsizetype defaultIdx = blankSplit.indexOf(QStringLiteral("=")); + if (defaultIdx != -1) { + if (++defaultIdx < blankSplit.size()) + pDefault = blankSplit.mid(defaultIdx).join(' '); + blankSplit = blankSplit.mid(0, defaultIdx - 1); + } + QString pName = blankSplit.takeLast(); + QString pType = blankSplit.join(' '); + if (pType.isEmpty() && pName == QLatin1String("...")) + qSwap(pType, pName); + else { + int j = 0; + while (j < pName.size() && !pName.at(j).isLetter()) + j++; + if (j > 0) { + pType += QChar(' ') + pName.left(j); + pName = pName.mid(j); + } + } + m_parameters[i++].set(pType, pName, pDefault); + } + } +} + +/*! + Insert all the parameter names into names. + */ +QSet Parameters::getNames() const +{ + QSet names; + const auto params = m_parameters; + for (const auto ¶meter : params) { + if (!parameter.name().isEmpty()) + names.insert(parameter.name()); + } + return names; +} + +/*! + Construct a list of the parameter types and return it. + */ +QString Parameters::generateTypeList() const +{ + QString out; + if (count() > 0) { + for (int i = 0; i < count(); ++i) { + if (i > 0) + out += ", "; + out += m_parameters.at(i).type(); + } + } + return out; +} + +/*! + Construct a list of the parameter type/name pairs and + return it. +*/ +QString Parameters::generateTypeAndNameList() const +{ + QString out; + if (count() > 0) { + for (int i = 0; i < count(); ++i) { + if (i != 0) + out += ", "; + const Parameter &p = m_parameters.at(i); + out += p.type(); + if (out[out.size() - 1].isLetterOrNumber()) + out += QLatin1Char(' '); + out += p.name(); + } + } + return out; +} + +/*! + Returns true if \a parameters contains the same parameter + signature as this. + */ +bool Parameters::match(const Parameters ¶meters) const +{ + if (count() != parameters.count()) + return false; + if (count() == 0) + return true; + for (int i = 0; i < count(); i++) { + if (parameters.at(i).type() != m_parameters.at(i).type()) + return false; + } + return true; +} + +QT_END_NAMESPACE diff --git a/src/qdoc/parameters.h b/src/qdoc/parameters.h new file mode 100644 index 0000000..1417b09 --- /dev/null +++ b/src/qdoc/parameters.h @@ -0,0 +1,113 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef PARAMETERS_H +#define PARAMETERS_H + +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class Location; +class Tokenizer; +class CodeChunk; + +class Parameter +{ +public: + Parameter() = default; + explicit Parameter(QString type, QString name = QString(), QString defaultValue = QString()) + : m_type(std::move(type)), m_name(std::move(name)), m_defaultValue(std::move(defaultValue)) + { + } + + void setName(const QString &name) { m_name = name; } + [[nodiscard]] bool hasType() const { return !m_type.isEmpty(); } + [[nodiscard]] const QString &type() const { return m_type; } + [[nodiscard]] const QString &name() const { return m_name; } + [[nodiscard]] const QString &defaultValue() const { return m_defaultValue; } + void setDefaultValue(const QString &t) { m_defaultValue = t; } + + void set(const QString &type, const QString &name, const QString &defaultValue = QString()) + { + m_type = type; + m_name = name; + m_defaultValue = defaultValue; + } + + [[nodiscard]] QString signature(bool includeValue = false) const; + + [[nodiscard]] const QString &canonicalType() const { return m_canonicalType; } + void setCanonicalType(const QString &t) { m_canonicalType = t; } + +public: + QString m_canonicalType {}; + QString m_type {}; + QString m_name {}; + QString m_defaultValue {}; +}; + +typedef QList ParameterVector; + +class Parameters +{ +public: + Parameters(); + Parameters(const QString &signature); // TODO: Making this explicit breaks QDoc + + void clear() + { + m_parameters.clear(); + m_privateSignal = false; + m_valid = true; + } + [[nodiscard]] const ParameterVector ¶meters() const { return m_parameters; } + [[nodiscard]] bool isPrivateSignal() const { return m_privateSignal; } + [[nodiscard]] bool isEmpty() const { return m_parameters.isEmpty(); } + [[nodiscard]] bool isValid() const { return m_valid; } + [[nodiscard]] int count() const { return m_parameters.size(); } + void reserve(int count) { m_parameters.reserve(count); } + [[nodiscard]] const Parameter &at(int i) const { return m_parameters.at(i); } + Parameter &last() { return m_parameters.last(); } + [[nodiscard]] const Parameter &last() const { return m_parameters.last(); } + inline Parameter &operator[](int index) { return m_parameters[index]; } + void append(const QString &type, const QString &name, const QString &value); + void append(const QString &type, const QString &name) { append(type, name, QString()); } + void append(const QString &type) { append(type, QString(), QString()); } + void pop_back() { m_parameters.pop_back(); } + void setPrivateSignal() { m_privateSignal = true; } + [[nodiscard]] QString signature(bool includeValues = false) const; + [[nodiscard]] QString rawSignature(bool names = false, bool values = false) const; + void set(const QString &signature); + [[nodiscard]] QSet getNames() const; + [[nodiscard]] QString generateTypeList() const; + [[nodiscard]] QString generateTypeAndNameList() const; + [[nodiscard]] bool match(const Parameters ¶meters) const; + +private: + void readToken(); + QString lexeme(); + QString previousLexeme(); + bool match(int target); + void matchTemplateAngles(CodeChunk &type); + bool matchTypeAndName(CodeChunk &type, QString &name); + bool matchParameter(); + bool parse(const QString &signature); + +private: + static QRegularExpression s_varComment; + + bool m_valid {}; + bool m_privateSignal {}; + int m_tok {}; + Tokenizer *m_tokenizer { nullptr }; + ParameterVector m_parameters; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/propertynode.cpp b/src/qdoc/propertynode.cpp new file mode 100644 index 0000000..4b1cb3d --- /dev/null +++ b/src/qdoc/propertynode.cpp @@ -0,0 +1,117 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "propertynode.h" + +#include "aggregate.h" + +QT_BEGIN_NAMESPACE + +/*! + \class PropertyNode + + This class describes one instance of using the Q_PROPERTY macro. + */ + +/*! + The constructor sets the \a parent and the \a name, but + everything else is left to default values. + */ +PropertyNode::PropertyNode(Aggregate *parent, const QString &name) : Node(Property, parent, name) +{ + // nothing +} + +/*! + Sets this property's \e {overridden from} property to + \a baseProperty, which indicates that this property + overrides \a baseProperty. To begin with, all the values + in this property are set to the corresponding values in + \a baseProperty. + + We probably should ensure that the constant and final + attributes are not being overridden improperly. + */ +void PropertyNode::setOverriddenFrom(const PropertyNode *baseProperty) +{ + for (int i = 0; i < NumFunctionRoles; ++i) { + if (m_functions[i].isEmpty()) + m_functions[i] = baseProperty->m_functions[i]; + } + if (m_stored == FlagValueDefault) + m_stored = baseProperty->m_stored; + if (m_designable == FlagValueDefault) + m_designable = baseProperty->m_designable; + if (m_scriptable == FlagValueDefault) + m_scriptable = baseProperty->m_scriptable; + if (m_writable == FlagValueDefault) + m_writable = baseProperty->m_writable; + if (m_user == FlagValueDefault) + m_user = baseProperty->m_user; + m_overrides = baseProperty; +} + +/*! + Returns a string containing the data type qualified with "const" either + prepended to the data type or appended to it, or without the const + qualification, depending circumstances in the PropertyNode internal state. + */ +QString PropertyNode::qualifiedDataType() const +{ + if (m_propertyType != Standard || m_type.startsWith(QLatin1String("const "))) + return m_type; + + if (setters().isEmpty() && resetters().isEmpty()) { + if (m_type.contains(QLatin1Char('*')) || m_type.contains(QLatin1Char('&'))) { + // 'QWidget *' becomes 'QWidget *' const + return m_type + " const"; + } else { + /* + 'int' becomes 'const int' ('int const' is + correct C++, but looks wrong) + */ + return "const " + m_type; + } + } else { + return m_type; + } +} + +/*! + Returns true if this property has an access function named \a name. + */ +bool PropertyNode::hasAccessFunction(const QString &name) const +{ + for (const auto &getter : getters()) { + if (getter->name() == name) + return true; + } + for (const auto &setter : setters()) { + if (setter->name() == name) + return true; + } + for (const auto &resetter : resetters()) { + if (resetter->name() == name) + return true; + } + for (const auto ¬ifier : notifiers()) { + if (notifier->name() == name) + return true; + } + return false; +} + +/*! + Returns true if function \a functionNode has role \a r for this + property. + */ +PropertyNode::FunctionRole PropertyNode::role(const FunctionNode *functionNode) const +{ + for (int i = 0; i < 4; i++) { + if (m_functions[i].contains(const_cast(functionNode))) + return (FunctionRole)i; + } + return Notifier; +} + +QT_END_NAMESPACE diff --git a/src/qdoc/propertynode.h b/src/qdoc/propertynode.h new file mode 100644 index 0000000..4a07707 --- /dev/null +++ b/src/qdoc/propertynode.h @@ -0,0 +1,98 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef PROPERTYNODE_H +#define PROPERTYNODE_H + +#include "functionnode.h" +#include "node.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +class Aggregate; + +class PropertyNode : public Node +{ +public: + enum PropertyType { Standard, Bindable }; + enum FunctionRole { Getter, Setter, Resetter, Notifier }; + enum { NumFunctionRoles = Notifier + 1 }; + + PropertyNode(Aggregate *parent, const QString &name); + + void setDataType(const QString &dataType) override { m_type = dataType; } + void addFunction(FunctionNode *function, FunctionRole role); + void addSignal(FunctionNode *function, FunctionRole role); + void setStored(bool stored) { m_stored = toFlagValue(stored); } + void setDesignable(bool designable) { m_designable = toFlagValue(designable); } + void setScriptable(bool scriptable) { m_scriptable = toFlagValue(scriptable); } + void setWritable(bool writable) { m_writable = toFlagValue(writable); } + void setOverriddenFrom(const PropertyNode *baseProperty); + void setConstant() { m_const = true; } + void setRequired() { m_required = true; } + void setPropertyType(PropertyType type) { m_propertyType = type; } + + [[nodiscard]] const QString &dataType() const { return m_type; } + [[nodiscard]] QString qualifiedDataType() const; + [[nodiscard]] NodeList functions() const; + [[nodiscard]] const NodeList &functions(FunctionRole role) const + { + return m_functions[(int)role]; + } + [[nodiscard]] const NodeList &getters() const { return functions(Getter); } + [[nodiscard]] const NodeList &setters() const { return functions(Setter); } + [[nodiscard]] const NodeList &resetters() const { return functions(Resetter); } + [[nodiscard]] const NodeList ¬ifiers() const { return functions(Notifier); } + [[nodiscard]] bool hasAccessFunction(const QString &name) const; + FunctionRole role(const FunctionNode *functionNode) const; + [[nodiscard]] bool isStored() const { return fromFlagValue(m_stored, storedDefault()); } + [[nodiscard]] bool isWritable() const { return fromFlagValue(m_writable, writableDefault()); } + [[nodiscard]] bool isConstant() const { return m_const; } + [[nodiscard]] bool isRequired() const { return m_required; } + [[nodiscard]] PropertyType propertyType() const { return m_propertyType; } + [[nodiscard]] const PropertyNode *overriddenFrom() const { return m_overrides; } + + [[nodiscard]] bool storedDefault() const { return true; } + [[nodiscard]] bool designableDefault() const { return !setters().isEmpty(); } + [[nodiscard]] bool writableDefault() const { return !setters().isEmpty(); } + +private: + QString m_type {}; + PropertyType m_propertyType { Standard }; + NodeList m_functions[NumFunctionRoles] {}; + FlagValue m_stored { FlagValueDefault }; + FlagValue m_designable { FlagValueDefault }; + FlagValue m_scriptable { FlagValueDefault }; + FlagValue m_writable { FlagValueDefault }; + FlagValue m_user { FlagValueDefault }; + bool m_const { false }; + bool m_required { false }; + const PropertyNode *m_overrides { nullptr }; +}; + +inline void PropertyNode::addFunction(FunctionNode *function, FunctionRole role) +{ + m_functions[(int)role].append(function); + function->addAssociatedProperty(this); +} + +inline void PropertyNode::addSignal(FunctionNode *function, FunctionRole role) +{ + m_functions[(int)role].append(function); + function->addAssociatedProperty(this); +} + +inline NodeList PropertyNode::functions() const +{ + NodeList list; + for (int i = 0; i < NumFunctionRoles; ++i) + list += m_functions[i]; + return list; +} + +QT_END_NAMESPACE + +#endif // PROPERTYNODE_H diff --git a/src/qdoc/proxynode.cpp b/src/qdoc/proxynode.cpp new file mode 100644 index 0000000..49e4be3 --- /dev/null +++ b/src/qdoc/proxynode.cpp @@ -0,0 +1,54 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "proxynode.h" + +#include "tree.h" + +QT_BEGIN_NAMESPACE + +/*! + \class ProxyNode + \brief A class for representing an Aggregate that is documented in a different module. + + This class is used to represent an Aggregate (usually a class) + that is located and documented in a different module. In the + current module, a ProxyNode holds child nodes that are related + to the class in the other module. + + For example, class QHash is located and documented in QtCore. + There are many global functions named qHash() in QtCore that + are all related to class QHash using the \c relates command. + There are also a few qHash() function in QtNetwork that are + related to QHash. These functions must be documented when the + documentation for QtNetwork is generated, but the reference + page for QHash must link to that documentation in its related + nonmembers list. + + The ProxyNode allows qdoc to construct links to the related + functions (or other things?) in QtNetwork from the reference + page in QtCore. + */ + +/*! + Constructs the ProxyNode, which at this point looks like any + other Aggregate, and then finds the Tree this node is in and + appends this node to that Tree's proxy list so it will be + easy to find later. + */ +ProxyNode::ProxyNode(Aggregate *parent, const QString &name) : Aggregate(Node::Proxy, parent, name) +{ + tree()->appendProxy(this); +} + +/*! \fn bool ProxyNode::docMustBeGenerated() const + Returns true because a ProxyNode always means some documentation + must be generated. +*/ + +/*! \fn bool ProxyNode::isRelatableType() const + Returns true because the ProxyNode exists so that elements + can be related to it with the \c {\\relates} command. +*/ + +QT_END_NAMESPACE diff --git a/src/qdoc/proxynode.h b/src/qdoc/proxynode.h new file mode 100644 index 0000000..cced348 --- /dev/null +++ b/src/qdoc/proxynode.h @@ -0,0 +1,23 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef PROXYNODE_H +#define PROXYNODE_H + +#include "aggregate.h" + +#include + +QT_BEGIN_NAMESPACE + +class ProxyNode : public Aggregate +{ +public: + ProxyNode(Aggregate *parent, const QString &name); + [[nodiscard]] bool docMustBeGenerated() const override { return true; } + [[nodiscard]] bool isRelatableType() const override { return true; } +}; + +QT_END_NAMESPACE + +#endif // PROXYNODE_H diff --git a/src/qdoc/puredocparser.cpp b/src/qdoc/puredocparser.cpp new file mode 100644 index 0000000..9e39fb1 --- /dev/null +++ b/src/qdoc/puredocparser.cpp @@ -0,0 +1,101 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "puredocparser.h" + +#include "qdocdatabase.h" +#include "tokenizer.h" + +#include + +QT_BEGIN_NAMESPACE + +/*! + Returns a list of the kinds of files that the pure doc + parser is meant to parse. The elements of the list are + file suffixes. + */ +QStringList PureDocParser::sourceFileNameFilter() +{ + return QStringList() << "*.qdoc" + << "*.qtx" + << "*.qtt" + << "*.js"; +} + +/*! + Parses the source file identified by \a filePath and adds its + parsed contents to the database. The \a location is used for + reporting errors. + */ +void PureDocParser::parseSourceFile(const Location &location, const QString &filePath) +{ + QFile in(filePath); + m_currentFile = filePath; + if (!in.open(QIODevice::ReadOnly)) { + location.error( + QStringLiteral("Can't open source file '%1' (%2)").arg(filePath, strerror(errno))); + m_currentFile.clear(); + return; + } + + Location fileLocation(filePath); + Tokenizer fileTokenizer(fileLocation, in); + m_tokenizer = &fileTokenizer; + m_token = m_tokenizer->getToken(); + + /* + The set of open namespaces is cleared before parsing + each source file. The word "source" here means cpp file. + */ + m_qdb->clearOpenNamespaces(); + + processQdocComments(); + in.close(); + m_currentFile.clear(); +} + +/*! + This is called by parseSourceFile() to do the actual parsing + and tree building. It only processes qdoc comments. It skips + everything else. + */ +bool PureDocParser::processQdocComments() +{ + const QSet &commands = topicCommands() + metaCommands(); + + while (m_token != Tok_Eoi) { + if (m_token == Tok_Doc) { + QString comment = m_tokenizer->lexeme(); // returns an entire qdoc comment. + Location start_loc(m_tokenizer->location()); + m_token = m_tokenizer->getToken(); + + Doc::trimCStyleComment(start_loc, comment); + Location end_loc(m_tokenizer->location()); + + // Doc constructor parses the comment. + Doc doc(start_loc, end_loc, comment, commands, topicCommands()); + const TopicList &topics = doc.topicsUsed(); + if (topics.isEmpty()) { + doc.location().warning(QStringLiteral("This qdoc comment contains no topic command " + "(e.g., '\\%1', '\\%2').") + .arg(COMMAND_MODULE, COMMAND_PAGE)); + continue; + } + if (hasTooManyTopics(doc)) + continue; + + DocList docs; + NodeList nodes; + QString topic = topics[0].m_topic; + + processTopicArgs(doc, topic, nodes, docs); + processMetaCommands(nodes, docs); + } else { + m_token = m_tokenizer->getToken(); + } + } + return true; +} + +QT_END_NAMESPACE diff --git a/src/qdoc/puredocparser.h b/src/qdoc/puredocparser.h new file mode 100644 index 0000000..63a8a3b --- /dev/null +++ b/src/qdoc/puredocparser.h @@ -0,0 +1,30 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef PUREDOCPARSER_H +#define PUREDOCPARSER_H + +#include "cppcodeparser.h" + +QT_BEGIN_NAMESPACE + +class Location; + +class PureDocParser : public CppCodeParser +{ +public: + PureDocParser() = default; + ~PureDocParser() override = default; + + QStringList sourceFileNameFilter() override; + void parseSourceFile(const Location &location, const QString &filePath) override; + +private: + bool processQdocComments(); + Tokenizer *m_tokenizer { nullptr }; + int m_token { 0 }; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/qdoccommandlineparser.cpp b/src/qdoc/qdoccommandlineparser.cpp new file mode 100644 index 0000000..6f02557 --- /dev/null +++ b/src/qdoc/qdoccommandlineparser.cpp @@ -0,0 +1,186 @@ +// Copyright (C) 2019 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "qdoccommandlineparser.h" + +#include "utilities.h" + +#include +#include + +QDocCommandLineParser::QDocCommandLineParser() + : QCommandLineParser(), + defineOption(QStringList() << QStringLiteral("D")), + dependsOption(QStringList() << QStringLiteral("depends")), + highlightingOption(QStringList() << QStringLiteral("highlighting")), + showInternalOption(QStringList() << QStringLiteral("showinternal")), + redirectDocumentationToDevNullOption(QStringList() + << QStringLiteral("redirect-documentation-to-dev-null")), + noExamplesOption(QStringList() << QStringLiteral("no-examples")), + indexDirOption(QStringList() << QStringLiteral("indexdir")), + installDirOption(QStringList() << QStringLiteral("installdir")), + outputDirOption(QStringList() << QStringLiteral("outputdir")), + outputFormatOption(QStringList() << QStringLiteral("outputformat")), + noLinkErrorsOption(QStringList() << QStringLiteral("no-link-errors")), + autoLinkErrorsOption(QStringList() << QStringLiteral("autolink-errors")), + debugOption(QStringList() << QStringLiteral("debug")), + atomsDumpOption("atoms-dump"), + prepareOption(QStringList() << QStringLiteral("prepare")), + generateOption(QStringList() << QStringLiteral("generate")), + logProgressOption(QStringList() << QStringLiteral("log-progress")), + singleExecOption(QStringList() << QStringLiteral("single-exec")), + includePathOption("I", "Add dir to the include path for header files.", "path"), + includePathSystemOption("isystem", "Add dir to the system include path for header files.", + "path"), + frameworkOption("F", "Add macOS framework to the include path for header files.", + "framework"), + timestampsOption(QStringList() << QStringLiteral("timestamps")), + useDocBookExtensions(QStringList() << QStringLiteral("docbook-extensions")) +{ + setApplicationDescription(QCoreApplication::translate("qdoc", "Qt documentation generator")); + addHelpOption(); + addVersionOption(); + + setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions); + + addPositionalArgument("file1.qdocconf ...", QCoreApplication::translate("qdoc", "Input files")); + + defineOption.setDescription(QCoreApplication::translate( + "qdoc", "Define the argument as a macro while parsing sources")); + defineOption.setValueName(QStringLiteral("macro[=def]")); + addOption(defineOption); + + dependsOption.setDescription(QCoreApplication::translate("qdoc", "Specify dependent modules")); + dependsOption.setValueName(QStringLiteral("module")); + addOption(dependsOption); + + highlightingOption.setDescription(QCoreApplication::translate( + "qdoc", "Turn on syntax highlighting (makes qdoc run slower)")); + addOption(highlightingOption); + + showInternalOption.setDescription( + QCoreApplication::translate("qdoc", "Include content marked internal")); + addOption(showInternalOption); + + redirectDocumentationToDevNullOption.setDescription( + QCoreApplication::translate("qdoc", + "Save all documentation content to /dev/null. Useful if " + "someone is interested in qdoc errors only.")); + addOption(redirectDocumentationToDevNullOption); + + noExamplesOption.setDescription( + QCoreApplication::translate("qdoc", "Do not generate documentation for examples")); + addOption(noExamplesOption); + + indexDirOption.setDescription(QCoreApplication::translate( + "qdoc", "Specify a directory where QDoc should search for index files to load")); + indexDirOption.setValueName(QStringLiteral("dir")); + addOption(indexDirOption); + + installDirOption.setDescription(QCoreApplication::translate( + "qdoc", + "Specify the directory where the output will be after running \"make install\"")); + installDirOption.setValueName(QStringLiteral("dir")); + addOption(installDirOption); + + outputDirOption.setDescription(QCoreApplication::translate( + "qdoc", "Specify output directory, overrides setting in qdocconf file")); + outputDirOption.setValueName(QStringLiteral("dir")); + addOption(outputDirOption); + + outputFormatOption.setDescription(QCoreApplication::translate( + "qdoc", "Specify output format, overrides setting in qdocconf file")); + outputFormatOption.setValueName(QStringLiteral("format")); + addOption(outputFormatOption); + + noLinkErrorsOption.setDescription( + QCoreApplication::translate("qdoc", "Do not print link errors (i.e. missing targets)")); + addOption(noLinkErrorsOption); + + autoLinkErrorsOption.setDescription( + QCoreApplication::translate("qdoc", "Show errors when automatic linking fails")); + addOption(autoLinkErrorsOption); + + debugOption.setDescription(QCoreApplication::translate("qdoc", "Enable debug output")); + addOption(debugOption); + + atomsDumpOption.setDescription(QCoreApplication::translate( + "qdoc", + "Shows a human-readable form of the intermediate result of parsing a block-comment.")); + addOption(atomsDumpOption); + + prepareOption.setDescription(QCoreApplication::translate( + "qdoc", "Run qdoc only to generate an index file, not the docs")); + addOption(prepareOption); + + generateOption.setDescription(QCoreApplication::translate( + "qdoc", "Run qdoc to read the index files and generate the docs")); + addOption(generateOption); + + logProgressOption.setDescription( + QCoreApplication::translate("qdoc", "Log progress on stderr.")); + addOption(logProgressOption); + + singleExecOption.setDescription( + QCoreApplication::translate("qdoc", "Run qdoc once over all the qdoc conf files.")); + addOption(singleExecOption); + + includePathOption.setFlags(QCommandLineOption::ShortOptionStyle); + addOption(includePathOption); + + addOption(includePathSystemOption); + + frameworkOption.setFlags(QCommandLineOption::ShortOptionStyle); + addOption(frameworkOption); + + timestampsOption.setDescription( + QCoreApplication::translate("qdoc", "Timestamp each qdoc log line.")); + addOption(timestampsOption); + + useDocBookExtensions.setDescription(QCoreApplication::translate( + "qdoc", "Use the DocBook Library extensions for metadata.")); + addOption(useDocBookExtensions); +} + +/*! + * \internal + * + * Create a list of arguments from the command line and/or file(s). + * This lets QDoc accept arguments contained in a file provided as a + * command-line argument prepended by '@'. + */ +static QStringList argumentsFromCommandLineAndFile(const QStringList &arguments) +{ + QStringList allArguments; + allArguments.reserve(arguments.size()); + for (const QString &argument : arguments) { + // "@file" doesn't start with a '-' so we can't use QCommandLineParser for it + if (argument.startsWith(QLatin1Char('@'))) { + QString optionsFile = argument; + optionsFile.remove(0, 1); + if (optionsFile.isEmpty()) + qFatal("The @ option requires an input file"); + QFile f(optionsFile); + if (!f.open(QIODevice::ReadOnly | QIODevice::Text)) + qFatal("Cannot open options file specified with @: %ls", + qUtf16Printable(optionsFile)); + while (!f.atEnd()) { + QString line = QString::fromLocal8Bit(f.readLine().trimmed()); + if (!line.isEmpty()) + allArguments << line; + } + } else { + allArguments << argument; + } + } + return allArguments; +} + +void QDocCommandLineParser::process(const QStringList &arguments) +{ + auto allArguments = argumentsFromCommandLineAndFile(arguments); + QCommandLineParser::process(allArguments); + + if (isSet(singleExecOption) && isSet(indexDirOption)) + qDebug("WARNING: -indexdir option ignored: Index files are not used in single-exec mode."); +} diff --git a/src/qdoc/qdoccommandlineparser.h b/src/qdoc/qdoccommandlineparser.h new file mode 100644 index 0000000..57b36b5 --- /dev/null +++ b/src/qdoc/qdoccommandlineparser.h @@ -0,0 +1,28 @@ +// Copyright (C) 2019 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef QDOCCOMMANDLINEPARSER_H +#define QDOCCOMMANDLINEPARSER_H + +#include + +QT_BEGIN_NAMESPACE + +struct QDocCommandLineParser : public QCommandLineParser +{ + QDocCommandLineParser(); + void process(const QStringList &arguments); + + QCommandLineOption defineOption, dependsOption, highlightingOption; + QCommandLineOption showInternalOption, redirectDocumentationToDevNullOption; + QCommandLineOption noExamplesOption, indexDirOption, installDirOption; + QCommandLineOption outputDirOption, outputFormatOption; + QCommandLineOption noLinkErrorsOption, autoLinkErrorsOption, debugOption, atomsDumpOption; + QCommandLineOption prepareOption, generateOption, logProgressOption, singleExecOption; + QCommandLineOption includePathOption, includePathSystemOption, frameworkOption; + QCommandLineOption timestampsOption, useDocBookExtensions; +}; + +QT_END_NAMESPACE + +#endif // QDOCCOMMANDLINEPARSER_H diff --git a/src/qdoc/qdocdatabase.cpp b/src/qdoc/qdocdatabase.cpp new file mode 100644 index 0000000..7d4e8bf --- /dev/null +++ b/src/qdoc/qdocdatabase.cpp @@ -0,0 +1,1605 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "qdocdatabase.h" + +#include "atom.h" +#include "collectionnode.h" +#include "functionnode.h" +#include "generator.h" +#include "qdocindexfiles.h" +#include "tree.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +static NodeMultiMap emptyNodeMultiMap_; + +/*! + \class QDocForest + + A class representing a forest of Tree objects. + + This private class manages a collection of Tree objects (a + forest) for the singleton QDocDatabase object. It is only + accessed by that singleton QDocDatabase object, which is a + friend. Each tree in the forest is an instance of class + Tree, which is a mostly private class. Both QDocForest and + QDocDatabase are friends of Tree and have full access. + + There are two kinds of trees in the forest, differing not + in structure but in use. One Tree is the primary tree. It + is the tree representing the module being documented. All + the other trees in the forest are called index trees. Each + one represents the contents of the index file for one of + the modules the current module must be able to link to. + + The instances of subclasses of Node in the primary tree + will contain documentation in an instance of Doc. The + index trees contain no documentation, and each Node in + an index tree is marked as an index node. + + Each tree is named with the name of its module. + + The search order is created by searchOrder(), if it has + not already been created. The search order and module + names arrays have parallel structure, i.e. modulNames_[i] + is the module name of the Tree at searchOrder_[i]. + + The primary tree is always the first tree in the search + order. i.e., when the database is searched, the primary + tree is always searched first, unless a specific tree is + being searched. + */ + +/*! + Destroys the qdoc forest. This requires deleting + each Tree in the forest. Note that the forest has + been transferred into the search order array, so + what is really being used to destroy the forest + is the search order array. + */ +QDocForest::~QDocForest() +{ + for (auto *entry : m_searchOrder) + delete entry; + m_forest.clear(); + m_searchOrder.clear(); + m_indexSearchOrder.clear(); + m_moduleNames.clear(); + m_primaryTree = nullptr; +} + +/*! + Increments the forest's current tree index. If the current + tree index is still within the forest, the function returns + the root node of the current tree. Otherwise it returns \nullptr. + */ +NamespaceNode *QDocForest::nextRoot() +{ + ++m_currentIndex; + return (m_currentIndex < searchOrder().size() ? searchOrder()[m_currentIndex]->root() + : nullptr); +} + +/*! + Initializes the forest prior to a traversal and + returns a pointer to the primary tree. If the + forest is empty, it returns \nullptr. + */ +Tree *QDocForest::firstTree() +{ + m_currentIndex = 0; + return (!searchOrder().isEmpty() ? searchOrder()[0] : nullptr); +} + +/*! + Increments the forest's current tree index. If the current + tree index is still within the forest, the function returns + the pointer to the current tree. Otherwise it returns \nullptr. + */ +Tree *QDocForest::nextTree() +{ + ++m_currentIndex; + return (m_currentIndex < searchOrder().size() ? searchOrder()[m_currentIndex] : nullptr); +} + +/*! + \fn Tree *QDocForest::primaryTree() + + Returns the pointer to the primary tree. + */ + +/*! + Finds the tree for module \a t in the forest and + sets the primary tree to be that tree. After the + primary tree is set, that tree is removed from the + forest. + + \node It gets re-inserted into the forest after the + search order is built. + */ +void QDocForest::setPrimaryTree(const QString &t) +{ + QString T = t.toLower(); + m_primaryTree = findTree(T); + m_forest.remove(T); + if (m_primaryTree == nullptr) + qDebug() << "ERROR: Could not set primary tree to:" << t; +} + +/*! + If the search order array is empty, create the search order. + If the search order array is not empty, do nothing. + */ +void QDocForest::setSearchOrder(const QStringList &t) +{ + if (!m_searchOrder.isEmpty()) + return; + + /* Allocate space for the search order. */ + m_searchOrder.reserve(m_forest.size() + 1); + m_searchOrder.clear(); + m_moduleNames.reserve(m_forest.size() + 1); + m_moduleNames.clear(); + + /* The primary tree is always first in the search order. */ + QString primaryName = primaryTree()->physicalModuleName(); + m_searchOrder.append(m_primaryTree); + m_moduleNames.append(primaryName); + m_forest.remove(primaryName); + + for (const QString &m : t) { + if (primaryName != m) { + auto it = m_forest.find(m); + if (it != m_forest.end()) { + m_searchOrder.append(it.value()); + m_moduleNames.append(m); + m_forest.remove(m); + } + } + } + /* + If any trees remain in the forest, just add them + to the search order sequentially, because we don't + know any better at this point. + */ + if (!m_forest.isEmpty()) { + for (auto it = m_forest.begin(); it != m_forest.end(); ++it) { + m_searchOrder.append(it.value()); + m_moduleNames.append(it.key()); + } + m_forest.clear(); + } + + /* + Rebuild the forest after constructing the search order. + It was destroyed during construction of the search order, + but it is needed for module-specific searches. + + Note that this loop also inserts the primary tree into the + forrest. That is a requirement. + */ + for (int i = 0; i < m_searchOrder.size(); ++i) { + if (!m_forest.contains(m_moduleNames.at(i))) { + m_forest.insert(m_moduleNames.at(i), m_searchOrder.at(i)); + } + } +} + +/*! + Returns an ordered array of Tree pointers that represents + the order in which the trees should be searched. The first + Tree in the array is the tree for the current module, i.e. + the module for which qdoc is generating documentation. + + The other Tree pointers in the array represent the index + files that were loaded in preparation for generating this + module's documentation. Each Tree pointer represents one + index file. The index file Tree points have been ordered + heuristically to, hopefully, minimize searching. Thr order + will probably be changed. + + If the search order array is empty, this function calls + indexSearchOrder(). The search order array is empty while + the index files are being loaded, but some searches must + be performed during this time, notably searches for base + class nodes. These searches require a temporary search + order. The temporary order changes throughout the loading + of the index files, but it is always the tree for the + current index file first, followed by the trees for the + index files that have already been loaded. The only + ordering required in this temporary search order is that + the current tree must be searched first. + */ +const QList &QDocForest::searchOrder() +{ + if (m_searchOrder.isEmpty()) + return indexSearchOrder(); + return m_searchOrder; +} + +/*! + There are two search orders used by qdoc when searching for + things. The normal search order is returned by searchOrder(), + but this normal search order is not known until all the index + files have been read. At that point, setSearchOrder() is + called. + + During the reading of the index files, the vector holding + the normal search order remains empty. Whenever the search + order is requested, if that vector is empty, this function + is called to return a temporary search order, which includes + all the index files that have been read so far, plus the + one being read now. That one is prepended to the front of + the vector. + */ +const QList &QDocForest::indexSearchOrder() +{ + if (m_forest.size() > m_indexSearchOrder.size()) + m_indexSearchOrder.prepend(m_primaryTree); + return m_indexSearchOrder; +} + +/*! + Create a new Tree for the index file for the specified + \a module and add it to the forest. Return the pointer + to its root. + */ +NamespaceNode *QDocForest::newIndexTree(const QString &module) +{ + m_primaryTree = new Tree(module, m_qdb); + m_forest.insert(module.toLower(), m_primaryTree); + return m_primaryTree->root(); +} + +/*! + Create a new Tree for use as the primary tree. This tree + will represent the primary module. \a module is camel case. + */ +void QDocForest::newPrimaryTree(const QString &module) +{ + m_primaryTree = new Tree(module, m_qdb); +} + +/*! + Searches through the forest for a node named \a targetPath + and returns a pointer to it if found. The \a relative node + is the starting point. It only makes sense for the primary + tree, which is searched first. After the primary tree has + been searched, \a relative is set to 0 for searching the + other trees, which are all index trees. With relative set + to 0, the starting point for each index tree is the root + of the index tree. + + If \a targetPath is resolved successfully but it refers to + a \\section title, continue the search, keeping the section + title as a fallback if no higher-priority targets are found. + */ +const Node *QDocForest::findNodeForTarget(QStringList &targetPath, const Node *relative, + Node::Genus genus, QString &ref) +{ + int flags = SearchBaseClasses | SearchEnumValues; + + QString entity = targetPath.takeFirst(); + QStringList entityPath = entity.split("::"); + + QString target; + if (!targetPath.isEmpty()) + target = targetPath.takeFirst(); + + TargetRec::TargetType type = TargetRec::Unknown; + const Node *tocNode = nullptr; + for (const auto *tree : searchOrder()) { + const Node *n = tree->findNodeForTarget(entityPath, target, relative, flags, genus, ref, &type); + if (n) { + // Targets referring to non-section titles are returned immediately + if (type != TargetRec::Contents) + return n; + if (!tocNode) + tocNode = n; + } + relative = nullptr; + } + return tocNode; +} + +/*! + Finds the FunctionNode for the qualified function name + in \a path, that also has the specified \a parameters. + Returns a pointer to the first matching function. + + \a relative is a node in the primary tree where the search + should begin. It is only used when searching the primary + tree. \a genus can be used to force the search to find a + C++ function or a QML function. + */ +const FunctionNode *QDocForest::findFunctionNode(const QStringList &path, + const Parameters ¶meters, const Node *relative, + Node::Genus genus) +{ + for (const auto *tree : searchOrder()) { + const FunctionNode *fn = tree->findFunctionNode(path, parameters, relative, genus); + if (fn) + return fn; + relative = nullptr; + } + return nullptr; +} + +/*! \class QDocDatabase + This class provides exclusive access to the qdoc database, + which consists of a forrest of trees and a lot of maps and + other useful data structures. + */ + +QDocDatabase *QDocDatabase::s_qdocDB = nullptr; +NodeMap QDocDatabase::s_typeNodeMap; +NodeMultiMap QDocDatabase::s_obsoleteClasses; +NodeMultiMap QDocDatabase::s_classesWithObsoleteMembers; +NodeMultiMap QDocDatabase::s_obsoleteQmlTypes; +NodeMultiMap QDocDatabase::s_qmlTypesWithObsoleteMembers; +NodeMultiMap QDocDatabase::s_cppClasses; +NodeMultiMap QDocDatabase::s_qmlBasicTypes; +NodeMultiMap QDocDatabase::s_qmlTypes; +NodeMultiMap QDocDatabase::s_examples; +NodeMultiMapMap QDocDatabase::s_newClassMaps; +NodeMultiMapMap QDocDatabase::s_newQmlTypeMaps; +NodeMultiMapMap QDocDatabase::s_newSinceMaps; + +/*! + Constructs the singleton qdoc database object. The singleton + constructs the \a forest_ object, which is also a singleton. + \a m_showInternal is normally false. If it is true, qdoc will + write documentation for nodes marked \c internal. + + \a singleExec_ is false when qdoc is being used in the standard + way of running qdoc twices for each module, first with -prepare + and then with -generate. First the -prepare phase is run for + each module, then the -generate phase is run for each module. + + When \a singleExec_ is true, qdoc is run only once. During the + single execution, qdoc processes the qdocconf files for all the + modules sequentially in a loop. Each source file for each module + is read exactly once. + */ +QDocDatabase::QDocDatabase() : m_forest(this) +{ + // nothing +} + +/*! + Creates the singleton. Allows only one instance of the class + to be created. Returns a pointer to the singleton. +*/ +QDocDatabase *QDocDatabase::qdocDB() +{ + if (s_qdocDB == nullptr) { + s_qdocDB = new QDocDatabase; + initializeDB(); + } + return s_qdocDB; +} + +/*! + Destroys the singleton. + */ +void QDocDatabase::destroyQdocDB() +{ + if (s_qdocDB != nullptr) { + delete s_qdocDB; + s_qdocDB = nullptr; + } +} + +/*! + Initialize data structures in the singleton qdoc database. + + In particular, the type node map is initialized with a lot + type names that don't refer to documented types. For example, + many C++ standard types are included. These might be documented + here at some point, but for now they are not. Other examples + include \c array and \c data, which are just generic names + used as place holders in function signatures that appear in + the documentation. + + \note Do not add QML basic types into this list as it will + break linking to those types. + + Also calls Node::initialize() to initialize the search goal map. + */ +void QDocDatabase::initializeDB() +{ + Node::initialize(); + s_typeNodeMap.insert("accepted", nullptr); + s_typeNodeMap.insert("actionPerformed", nullptr); + s_typeNodeMap.insert("activated", nullptr); + s_typeNodeMap.insert("alias", nullptr); + s_typeNodeMap.insert("anchors", nullptr); + s_typeNodeMap.insert("any", nullptr); + s_typeNodeMap.insert("array", nullptr); + s_typeNodeMap.insert("autoSearch", nullptr); + s_typeNodeMap.insert("axis", nullptr); + s_typeNodeMap.insert("backClicked", nullptr); + s_typeNodeMap.insert("boomTime", nullptr); + s_typeNodeMap.insert("border", nullptr); + s_typeNodeMap.insert("buttonClicked", nullptr); + s_typeNodeMap.insert("callback", nullptr); + s_typeNodeMap.insert("char", nullptr); + s_typeNodeMap.insert("clicked", nullptr); + s_typeNodeMap.insert("close", nullptr); + s_typeNodeMap.insert("closed", nullptr); + s_typeNodeMap.insert("cond", nullptr); + s_typeNodeMap.insert("data", nullptr); + s_typeNodeMap.insert("dataReady", nullptr); + s_typeNodeMap.insert("dateString", nullptr); + s_typeNodeMap.insert("dateTimeString", nullptr); + s_typeNodeMap.insert("datetime", nullptr); + s_typeNodeMap.insert("day", nullptr); + s_typeNodeMap.insert("deactivated", nullptr); + s_typeNodeMap.insert("drag", nullptr); + s_typeNodeMap.insert("easing", nullptr); + s_typeNodeMap.insert("error", nullptr); + s_typeNodeMap.insert("exposure", nullptr); + s_typeNodeMap.insert("fatalError", nullptr); + s_typeNodeMap.insert("fileSelected", nullptr); + s_typeNodeMap.insert("flags", nullptr); + s_typeNodeMap.insert("float", nullptr); + s_typeNodeMap.insert("focus", nullptr); + s_typeNodeMap.insert("focusZone", nullptr); + s_typeNodeMap.insert("format", nullptr); + s_typeNodeMap.insert("framePainted", nullptr); + s_typeNodeMap.insert("from", nullptr); + s_typeNodeMap.insert("frontClicked", nullptr); + s_typeNodeMap.insert("function", nullptr); + s_typeNodeMap.insert("hasOpened", nullptr); + s_typeNodeMap.insert("hovered", nullptr); + s_typeNodeMap.insert("hoveredTitle", nullptr); + s_typeNodeMap.insert("hoveredUrl", nullptr); + s_typeNodeMap.insert("imageCapture", nullptr); + s_typeNodeMap.insert("imageProcessing", nullptr); + s_typeNodeMap.insert("index", nullptr); + s_typeNodeMap.insert("initialized", nullptr); + s_typeNodeMap.insert("isLoaded", nullptr); + s_typeNodeMap.insert("item", nullptr); + s_typeNodeMap.insert("jsdict", nullptr); + s_typeNodeMap.insert("jsobject", nullptr); + s_typeNodeMap.insert("key", nullptr); + s_typeNodeMap.insert("keysequence", nullptr); + s_typeNodeMap.insert("listViewClicked", nullptr); + s_typeNodeMap.insert("loadRequest", nullptr); + s_typeNodeMap.insert("locale", nullptr); + s_typeNodeMap.insert("location", nullptr); + s_typeNodeMap.insert("long", nullptr); + s_typeNodeMap.insert("message", nullptr); + s_typeNodeMap.insert("messageReceived", nullptr); + s_typeNodeMap.insert("mode", nullptr); + s_typeNodeMap.insert("month", nullptr); + s_typeNodeMap.insert("name", nullptr); + s_typeNodeMap.insert("number", nullptr); + s_typeNodeMap.insert("object", nullptr); + s_typeNodeMap.insert("offset", nullptr); + s_typeNodeMap.insert("ok", nullptr); + s_typeNodeMap.insert("openCamera", nullptr); + s_typeNodeMap.insert("openImage", nullptr); + s_typeNodeMap.insert("openVideo", nullptr); + s_typeNodeMap.insert("padding", nullptr); + s_typeNodeMap.insert("parent", nullptr); + s_typeNodeMap.insert("path", nullptr); + s_typeNodeMap.insert("photoModeSelected", nullptr); + s_typeNodeMap.insert("position", nullptr); + s_typeNodeMap.insert("precision", nullptr); + s_typeNodeMap.insert("presetClicked", nullptr); + s_typeNodeMap.insert("preview", nullptr); + s_typeNodeMap.insert("previewSelected", nullptr); + s_typeNodeMap.insert("progress", nullptr); + s_typeNodeMap.insert("puzzleLost", nullptr); + s_typeNodeMap.insert("qmlSignal", nullptr); + s_typeNodeMap.insert("rectangle", nullptr); + s_typeNodeMap.insert("request", nullptr); + s_typeNodeMap.insert("requestId", nullptr); + s_typeNodeMap.insert("section", nullptr); + s_typeNodeMap.insert("selected", nullptr); + s_typeNodeMap.insert("send", nullptr); + s_typeNodeMap.insert("settingsClicked", nullptr); + s_typeNodeMap.insert("shoe", nullptr); + s_typeNodeMap.insert("short", nullptr); + s_typeNodeMap.insert("signed", nullptr); + s_typeNodeMap.insert("sizeChanged", nullptr); + s_typeNodeMap.insert("size_t", nullptr); + s_typeNodeMap.insert("sockaddr", nullptr); + s_typeNodeMap.insert("someOtherSignal", nullptr); + s_typeNodeMap.insert("sourceSize", nullptr); + s_typeNodeMap.insert("startButtonClicked", nullptr); + s_typeNodeMap.insert("state", nullptr); + s_typeNodeMap.insert("std::initializer_list", nullptr); + s_typeNodeMap.insert("std::list", nullptr); + s_typeNodeMap.insert("std::map", nullptr); + s_typeNodeMap.insert("std::pair", nullptr); + s_typeNodeMap.insert("std::string", nullptr); + s_typeNodeMap.insert("std::vector", nullptr); + s_typeNodeMap.insert("stringlist", nullptr); + s_typeNodeMap.insert("swapPlayers", nullptr); + s_typeNodeMap.insert("symbol", nullptr); + s_typeNodeMap.insert("t", nullptr); + s_typeNodeMap.insert("T", nullptr); + s_typeNodeMap.insert("tagChanged", nullptr); + s_typeNodeMap.insert("timeString", nullptr); + s_typeNodeMap.insert("timeout", nullptr); + s_typeNodeMap.insert("to", nullptr); + s_typeNodeMap.insert("toggled", nullptr); + s_typeNodeMap.insert("type", nullptr); + s_typeNodeMap.insert("unsigned", nullptr); + s_typeNodeMap.insert("urllist", nullptr); + s_typeNodeMap.insert("va_list", nullptr); + s_typeNodeMap.insert("value", nullptr); + s_typeNodeMap.insert("valueEmitted", nullptr); + s_typeNodeMap.insert("videoFramePainted", nullptr); + s_typeNodeMap.insert("videoModeSelected", nullptr); + s_typeNodeMap.insert("videoRecorder", nullptr); + s_typeNodeMap.insert("void", nullptr); + s_typeNodeMap.insert("volatile", nullptr); + s_typeNodeMap.insert("wchar_t", nullptr); + s_typeNodeMap.insert("x", nullptr); + s_typeNodeMap.insert("y", nullptr); + s_typeNodeMap.insert("zoom", nullptr); + s_typeNodeMap.insert("zoomTo", nullptr); +} + +/*! \fn NamespaceNode *QDocDatabase::primaryTreeRoot() + Returns a pointer to the root node of the primary tree. + */ + +/*! + \fn const CNMap &QDocDatabase::groups() + Returns a const reference to the collection of all + group nodes in the primary tree. +*/ + +/*! + \fn const CNMap &QDocDatabase::modules() + Returns a const reference to the collection of all + module nodes in the primary tree. +*/ + +/*! + \fn const CNMap &QDocDatabase::qmlModules() + Returns a const reference to the collection of all + QML module nodes in the primary tree. +*/ + +/*! + \fn const CNMap &QDocDatabase::jsModules() + Returns a const reference to the collection of all + JovaScript module nodes in the primary tree. +*/ + +/*! \fn CollectionNode *QDocDatabase::findGroup(const QString &name) + Find the group node named \a name and return a pointer + to it. If a matching node is not found, add a new group + node named \a name and return a pointer to that one. + + If a new group node is added, its parent is the tree root, + and the new group node is marked \e{not seen}. + */ + +/*! \fn CollectionNode *QDocDatabase::findModule(const QString &name) + Find the module node named \a name and return a pointer + to it. If a matching node is not found, add a new module + node named \a name and return a pointer to that one. + + If a new module node is added, its parent is the tree root, + and the new module node is marked \e{not seen}. + */ + +/*! \fn CollectionNode *QDocDatabase::findQmlModule(const QString &name, bool javaScript) + Find the QML module node named \a name and return a pointer + to it. If a matching node is not found, add a new QML module + node named \a name and return a pointer to that one. + + If \a javaScript is set, the return collection must be a + JavaScript module. + + If a new QML or JavaScript module node is added, its parent + is the tree root, and the new node is marked \e{not seen}. + */ + +/*! \fn CollectionNode *QDocDatabase::addGroup(const QString &name) + Looks up the group named \a name in the primary tree. If + a match is found, a pointer to the node is returned. + Otherwise, a new group node named \a name is created and + inserted into the collection, and the pointer to that node + is returned. + */ + +/*! \fn CollectionNode *QDocDatabase::addModule(const QString &name) + Looks up the module named \a name in the primary tree. If + a match is found, a pointer to the node is returned. + Otherwise, a new module node named \a name is created and + inserted into the collection, and the pointer to that node + is returned. + */ + +/*! \fn CollectionNode *QDocDatabase::addQmlModule(const QString &name) + Looks up the QML module named \a name in the primary tree. + If a match is found, a pointer to the node is returned. + Otherwise, a new QML module node named \a name is created + and inserted into the collection, and the pointer to that + node is returned. + */ + +/*! \fn CollectionNode *QDocDatabase::addJsModule(const QString &name) + Looks up the JavaScript module named \a name in the primary + tree. If a match is found, a pointer to the node is returned. + Otherwise, a new JavaScript module node named \a name is + created and inserted into the collection, and the pointer to + that node is returned. + */ + +/*! \fn CollectionNode *QDocDatabase::addToGroup(const QString &name, Node *node) + Looks up the group node named \a name in the collection + of all group nodes. If a match is not found, a new group + node named \a name is created and inserted into the collection. + Then append \a node to the group's members list, and append the + group node to the member list of the \a node. The parent of the + \a node is not changed by this function. Returns a pointer to + the group node. + */ + +/*! \fn CollectionNode *QDocDatabase::addToModule(const QString &name, Node *node) + Looks up the module node named \a name in the collection + of all module nodes. If a match is not found, a new module + node named \a name is created and inserted into the collection. + Then append \a node to the module's members list. The parent of + \a node is not changed by this function. Returns the module node. + */ + +/*! \fn Collection *QDocDatabase::addToQmlModule(const QString &name, Node *node) + Looks up the QML module named \a name. If it isn't there, + create it. Then append \a node to the QML module's member + list. The parent of \a node is not changed by this function. + */ + +/*! \fn Collection *QDocDatabase::addToJsModule(const QString &name, Node *node) + Looks up the JavaScript module named \a name. If it isn't there, + create it. Then append \a node to the JavaScript module's member + list. The parent of \a node is not changed by this function. + */ + +/*! + Looks up the QML type node identified by the qualified Qml + type \a name and returns a pointer to the QML type node. + */ +QmlTypeNode *QDocDatabase::findQmlType(const QString &name) +{ + QmlTypeNode *qcn = m_forest.lookupQmlType(name); + if (qcn) + return qcn; + return nullptr; +} + +/*! + Looks up the QML type node identified by the Qml module id + \a qmid and QML type \a name and returns a pointer to the + QML type node. The key is \a qmid + "::" + \a name. + + If the QML module id is empty, it looks up the QML type by + \a name only. + */ +QmlTypeNode *QDocDatabase::findQmlType(const QString &qmid, const QString &name) +{ + if (!qmid.isEmpty()) { + QString t = qmid + "::" + name; + QmlTypeNode *qcn = m_forest.lookupQmlType(t); + if (qcn) + return qcn; + } + + QStringList path(name); + Node *n = m_forest.findNodeByNameAndType(path, &Node::isQmlType); + if (n && (n->isQmlType() || n->isJsType())) + return static_cast(n); + return nullptr; +} + +/*! + Looks up the QML basic type node identified by the Qml module id + \a qmid and QML basic type \a name and returns a pointer to the + QML basic type node. The key is \a qmid + "::" + \a name. + + If the QML module id is empty, it looks up the QML basic type by + \a name only. + */ +Aggregate *QDocDatabase::findQmlBasicType(const QString &qmid, const QString &name) +{ + if (!qmid.isEmpty()) { + QString t = qmid + "::" + name; + Aggregate *a = m_forest.lookupQmlBasicType(t); + if (a) + return a; + } + + QStringList path(name); + Node *n = m_forest.findNodeByNameAndType(path, &Node::isQmlBasicType); + if (n && n->isQmlBasicType()) + return static_cast(n); + return nullptr; +} + +/*! + Looks up the QML type node identified by the Qml module id + constructed from the strings in the \a import record and the + QML type \a name and returns a pointer to the QML type node. + If a QML type node is not found, 0 is returned. + */ +QmlTypeNode *QDocDatabase::findQmlType(const ImportRec &import, const QString &name) +{ + if (!import.isEmpty()) { + QStringList dotSplit; + dotSplit = name.split(QLatin1Char('.')); + QString qmName; + if (import.m_importUri.isEmpty()) + qmName = import.m_moduleName; + else + qmName = import.m_importUri; + for (const auto &namePart : dotSplit) { + QString qualifiedName = qmName + "::" + namePart; + QmlTypeNode *qcn = m_forest.lookupQmlType(qualifiedName); + if (qcn) + return qcn; + } + } + return nullptr; +} + +/*! + This function calls a set of functions for each tree in the + forest that has not already been analyzed. In this way, when + running qdoc in \e singleExec mode, each tree is analyzed in + turn, and its classes and types are added to the appropriate + node maps. + */ +void QDocDatabase::processForest() +{ + Tree *t = m_forest.firstTree(); + while (t) { + findAllClasses(t->root()); + findAllFunctions(t->root()); + findAllObsoleteThings(t->root()); + findAllLegaleseTexts(t->root()); + findAllSince(t->root()); + findAllAttributions(t->root()); + t->setTreeHasBeenAnalyzed(); + t = m_forest.nextTree(); + } + resolveNamespaces(); +} + +/*! + This function calls \a func for each tree in the forest, + but only if Tree::treeHasBeenAnalyzed() returns false for + the tree. In this way, when running qdoc in \e singleExec + mode, each tree is analyzed in turn, and its classes and + types are added to the appropriate node maps. + */ +void QDocDatabase::processForest(void (QDocDatabase::*func)(Aggregate *)) +{ + Tree *t = m_forest.firstTree(); + while (t) { + if (!t->treeHasBeenAnalyzed()) { + (this->*(func))(t->root()); + } + t = m_forest.nextTree(); + } +} + +/*! + Constructs the collection of legalese texts, if it has not + already been constructed, and returns a reference to it. + */ +TextToNodeMap &QDocDatabase::getLegaleseTexts() +{ + if (m_legaleseTexts.isEmpty()) + processForest(&QDocDatabase::findAllLegaleseTexts); + return m_legaleseTexts; +} + +/*! + Construct the data structures for obsolete things, if they + have not already been constructed. Returns a reference to + the map of C++ classes with obsolete members. + */ +NodeMultiMap &QDocDatabase::getClassesWithObsoleteMembers() +{ + if (s_obsoleteClasses.isEmpty() && s_obsoleteQmlTypes.isEmpty()) + processForest(&QDocDatabase::findAllObsoleteThings); + return s_classesWithObsoleteMembers; +} + +/*! + Construct the data structures for obsolete things, if they + have not already been constructed. Returns a reference to + the map of obsolete QML types. + */ +NodeMultiMap &QDocDatabase::getObsoleteQmlTypes() +{ + if (s_obsoleteClasses.isEmpty() && s_obsoleteQmlTypes.isEmpty()) + processForest(&QDocDatabase::findAllObsoleteThings); + return s_obsoleteQmlTypes; +} + +/*! + Construct the data structures for obsolete things, if they + have not already been constructed. Returns a reference to + the map of QML types with obsolete members. + */ +NodeMultiMap &QDocDatabase::getQmlTypesWithObsoleteMembers() +{ + if (s_obsoleteClasses.isEmpty() && s_obsoleteQmlTypes.isEmpty()) + processForest(&QDocDatabase::findAllObsoleteThings); + return s_qmlTypesWithObsoleteMembers; +} + +/*! + Construct the data structures for QML basic types, if they + have not already been constructed. Returns a reference to + the map of QML basic types. + */ +NodeMultiMap &QDocDatabase::getQmlValueTypes() +{ + if (s_cppClasses.isEmpty() && s_qmlBasicTypes.isEmpty()) + processForest(&QDocDatabase::findAllClasses); + return s_qmlBasicTypes; +} + +/*! + Construct the data structures for QML types, if they + have not already been constructed. Returns a reference to + the multimap of QML types. + */ +NodeMultiMap &QDocDatabase::getQmlTypes() +{ + if (s_cppClasses.isEmpty() && s_qmlTypes.isEmpty()) + processForest(&QDocDatabase::findAllClasses); + return s_qmlTypes; +} + +/*! + Construct the data structures for examples, if they + have not already been constructed. Returns a reference to + the multimap of example nodes. + */ +NodeMultiMap &QDocDatabase::getExamples() +{ + if (s_cppClasses.isEmpty() && s_examples.isEmpty()) + processForest(&QDocDatabase::findAllClasses); + return s_examples; +} + +/*! + Construct the data structures for attributions, if they + have not already been constructed. Returns a reference to + the multimap of attribution nodes. + */ +NodeMultiMap &QDocDatabase::getAttributions() +{ + if (m_attributions.isEmpty()) + processForest(&QDocDatabase::findAllAttributions); + return m_attributions; +} + +/*! + Construct the data structures for obsolete things, if they + have not already been constructed. Returns a reference to + the map of obsolete C++ clases. + */ +NodeMultiMap &QDocDatabase::getObsoleteClasses() +{ + if (s_obsoleteClasses.isEmpty() && s_obsoleteQmlTypes.isEmpty()) + processForest(&QDocDatabase::findAllObsoleteThings); + return s_obsoleteClasses; +} + +/*! + Construct the C++ class data structures, if they have not + already been constructed. Returns a reference to the map + of all C++ classes. + */ +NodeMultiMap &QDocDatabase::getCppClasses() +{ + if (s_cppClasses.isEmpty() && s_qmlTypes.isEmpty()) + processForest(&QDocDatabase::findAllClasses); + return s_cppClasses; +} + +/*! + Construct the function index data structure and return it. + This data structure is used to output the function index page. + */ +NodeMapMap &QDocDatabase::getFunctionIndex() +{ + if (m_functionIndex.isEmpty()) + processForest(&QDocDatabase::findAllFunctions); + return m_functionIndex; +} + +/*! + Finds all the nodes containing legalese text and puts them + in a map. + */ +void QDocDatabase::findAllLegaleseTexts(Aggregate *node) +{ + for (const auto &childNode : node->childNodes()) { + if (childNode->isPrivate()) + continue; + if (!childNode->doc().legaleseText().isEmpty()) + m_legaleseTexts.insert(childNode->doc().legaleseText(), childNode); + if (childNode->isAggregate()) + findAllLegaleseTexts(static_cast(childNode)); + } +} + +/*! + \fn void QDocDatabase::findAllObsoleteThings(Aggregate *node) + + Finds all nodes with status = Deprecated and sorts them into + maps. They can be C++ classes, QML types, or they can be + functions, enum types, typedefs, methods, etc. + */ + +/*! + \fn void QDocDatabase::findAllSince(Aggregate *node) + + Finds all the nodes in \a node where a \e{since} command appeared + in the qdoc comment and sorts them into maps according to the kind + of node. + + This function is used for generating the "New Classes... in x.y" + section on the \e{What's New in Qt x.y} page. + */ + +/*! + Find the \a key in the map of new class maps, and return a + reference to the value, which is a NodeMap. If \a key is not + found, return a reference to an empty NodeMap. + */ +const NodeMultiMap &QDocDatabase::getClassMap(const QString &key) +{ + if (s_newSinceMaps.isEmpty() && s_newClassMaps.isEmpty() && s_newQmlTypeMaps.isEmpty()) + processForest(&QDocDatabase::findAllSince); + auto it = s_newClassMaps.constFind(key); + if (it != s_newClassMaps.constEnd()) + return it.value(); + return emptyNodeMultiMap_; +} + +/*! + Find the \a key in the map of new QML type maps, and return a + reference to the value, which is a NodeMap. If the \a key is not + found, return a reference to an empty NodeMap. + */ +const NodeMultiMap &QDocDatabase::getQmlTypeMap(const QString &key) +{ + if (s_newSinceMaps.isEmpty() && s_newClassMaps.isEmpty() && s_newQmlTypeMaps.isEmpty()) + processForest(&QDocDatabase::findAllSince); + auto it = s_newQmlTypeMaps.constFind(key); + if (it != s_newQmlTypeMaps.constEnd()) + return it.value(); + return emptyNodeMultiMap_; +} + +/*! + Find the \a key in the map of new \e {since} maps, and return + a reference to the value, which is a NodeMultiMap. If \a key + is not found, return a reference to an empty NodeMultiMap. + */ +const NodeMultiMap &QDocDatabase::getSinceMap(const QString &key) +{ + if (s_newSinceMaps.isEmpty() && s_newClassMaps.isEmpty() && s_newQmlTypeMaps.isEmpty()) + processForest(&QDocDatabase::findAllSince); + auto it = s_newSinceMaps.constFind(key); + if (it != s_newSinceMaps.constEnd()) + return it.value(); + return emptyNodeMultiMap_; +} + +/*! + Performs several housekeeping tasks prior to generating the + documentation. These tasks create required data structures + and resolve links. + */ +void QDocDatabase::resolveStuff() +{ + const auto &config = Config::instance(); + if (config.dualExec() || config.preparing()) { + // order matters + primaryTree()->resolveBaseClasses(primaryTreeRoot()); + primaryTree()->resolvePropertyOverriddenFromPtrs(primaryTreeRoot()); + primaryTreeRoot()->normalizeOverloads(); + primaryTree()->markDontDocumentNodes(); + primaryTree()->removePrivateAndInternalBases(primaryTreeRoot()); + primaryTree()->resolveProperties(); + primaryTreeRoot()->markUndocumentedChildrenInternal(); + primaryTreeRoot()->resolveQmlInheritance(); + primaryTree()->resolveTargets(primaryTreeRoot()); + primaryTree()->resolveCppToQmlLinks(); + primaryTree()->resolveUsingClauses(); + } + if (config.singleExec() && config.generating()) { + primaryTree()->resolveBaseClasses(primaryTreeRoot()); + primaryTree()->resolvePropertyOverriddenFromPtrs(primaryTreeRoot()); + primaryTreeRoot()->resolveQmlInheritance(); + primaryTree()->resolveCppToQmlLinks(); + primaryTree()->resolveUsingClauses(); + } + if (!config.preparing()) { + resolveNamespaces(); + resolveProxies(); + resolveBaseClasses(); + updateNavigation(); + } + if (config.dualExec()) + QDocIndexFiles::destroyQDocIndexFiles(); +} + +void QDocDatabase::resolveBaseClasses() +{ + Tree *t = m_forest.firstTree(); + while (t) { + t->resolveBaseClasses(t->root()); + t = m_forest.nextTree(); + } +} + +/*! + Returns a reference to the namespace map. Constructs the + namespace map if it hasn't been constructed yet. + + \note This function must not be called in the prepare phase. + */ +NodeMultiMap &QDocDatabase::getNamespaces() +{ + resolveNamespaces(); + return m_namespaceIndex; +} + +/*! + Multiple namespace nodes for namespace X can exist in the + qdoc database in different trees. This function first finds + all namespace nodes in all the trees and inserts them into + a multimap. Then it combines all the namespace nodes that + have the same name into a single namespace node of that + name and inserts that combined namespace node into an index. + */ +void QDocDatabase::resolveNamespaces() +{ + if (!m_namespaceIndex.isEmpty()) + return; + + bool linkErrors = !Config::instance().getBool(CONFIG_NOLINKERRORS); + NodeMultiMap namespaceMultimap; + Tree *t = m_forest.firstTree(); + while (t) { + t->root()->findAllNamespaces(namespaceMultimap); + t = m_forest.nextTree(); + } + const QList keys = namespaceMultimap.uniqueKeys(); + for (const QString &key : keys) { + NamespaceNode *ns = nullptr; + NamespaceNode *indexNamespace = nullptr; + const NodeList namespaces = namespaceMultimap.values(key); + qsizetype count = namespaceMultimap.remove(key); + if (count > 0) { + for (auto *node : namespaces) { + ns = static_cast(node); + if (ns->isDocumentedHere()) + break; + else if (ns->hadDoc()) + indexNamespace = ns; // namespace was documented but in another tree + ns = nullptr; + } + if (ns) { + for (auto *node : namespaces) { + auto *nsNode = static_cast(node); + if (nsNode->hadDoc() && nsNode != ns) { + ns->doc().location().warning( + QStringLiteral("Namespace %1 documented more than once") + .arg(nsNode->name()), QStringLiteral("also seen here: %1") + .arg(nsNode->doc().location().toString())); + } + } + } else if (!indexNamespace) { + // Warn about documented children in undocumented namespaces. + // As the namespace can be documented outside this project, + // skip the warning if -no-link-errors is set + if (linkErrors) { + for (auto *node : namespaces) { + if (!node->isIndexNode()) + static_cast(node)->reportDocumentedChildrenInUndocumentedNamespace(); + } + } + } else { + for (auto *node : namespaces) { + auto *nsNode = static_cast(node); + if (nsNode != indexNamespace) + nsNode->setDocNode(indexNamespace); + } + } + } + /* + If there are multiple namespace nodes with the same + name where one of them will be the main reference page + for the namespace, include all nodes in the public + API of the namespace. + */ + if (ns && count > 1) { + for (auto *node : namespaces) { + auto *nameSpaceNode = static_cast(node); + if (nameSpaceNode != ns) { + for (auto it = nameSpaceNode->constBegin(); it != nameSpaceNode->constEnd(); + ++it) { + Node *anotherNs = *it; + if (anotherNs && anotherNs->isPublic() && !anotherNs->isInternal()) + ns->includeChild(anotherNs); + } + } + } + } + /* + Add the main namespace reference node to index, or the last seen + namespace if the main one was not found. + */ + if (!ns) + ns = indexNamespace ? indexNamespace : static_cast(namespaces.last()); + m_namespaceIndex.insert(ns->name(), ns); + } +} + +/*! + Each instance of class Tree that represents an index file + must be traversed to find all instances of class ProxyNode. + For each ProxyNode found, look up the ProxyNode's name in + the primary Tree. If it is found, it means that the proxy + node contains elements (normally just functions) that are + documented in the module represented by the Tree containing + the proxy node but that are related to the node we found in + the primary tree. + */ +void QDocDatabase::resolveProxies() +{ + // The first tree is the primary tree. + // Skip the primary tree. + Tree *t = m_forest.firstTree(); + t = m_forest.nextTree(); + while (t) { + const NodeList &proxies = t->proxies(); + if (!proxies.isEmpty()) { + for (auto *node : proxies) { + const auto *pn = static_cast(node); + if (pn->count() > 0) { + Aggregate *aggregate = primaryTree()->findAggregate(pn->name()); + if (aggregate != nullptr) + aggregate->appendToRelatedByProxy(pn->childNodes()); + } + } + } + t = m_forest.nextTree(); + } +} + +/*! + Finds the function node for the qualified function path in + \a target and returns a pointer to it. The \a target is a + function signature with or without parameters but without + the return type. + + \a relative is the node in the primary tree where the search + begins. It is not used in the other trees, if the node is not + found in the primary tree. \a genus can be used to force the + search to find a C++ function or a QML function. + + The entire forest is searched, but the first match is accepted. + */ +const FunctionNode *QDocDatabase::findFunctionNode(const QString &target, const Node *relative, + Node::Genus genus) +{ + QString signature; + QString function = target; + qsizetype length = target.size(); + if (function.endsWith("()")) + function.chop(2); + if (function.endsWith(QChar(')'))) { + qsizetype position = function.lastIndexOf(QChar('(')); + signature = function.mid(position + 1, length - position - 2); + function = function.left(position); + } + QStringList path = function.split("::"); + return m_forest.findFunctionNode(path, Parameters(signature), relative, genus); +} + +/*! + This function is called for autolinking to a \a type, + which could be a function return type or a parameter + type. The tree node that represents the \a type is + returned. All the trees are searched until a match is + found. When searching the primary tree, the search + begins at \a relative and proceeds up the parent chain. + When searching the index trees, the search begins at the + root. + */ +const Node *QDocDatabase::findTypeNode(const QString &type, const Node *relative, Node::Genus genus) +{ + QStringList path = type.split("::"); + if ((path.size() == 1) && (path.at(0)[0].isLower() || path.at(0) == QString("T"))) { + auto it = s_typeNodeMap.find(path.at(0)); + if (it != s_typeNodeMap.end()) + return it.value(); + } + return m_forest.findTypeNode(path, relative, genus); +} + +/*! + Finds the node that will generate the documentation that + contains the \a target and returns a pointer to it. + + Can this be improved by using the target map in Tree? + */ +const Node *QDocDatabase::findNodeForTarget(const QString &target, const Node *relative) +{ + const Node *node = nullptr; + if (target.isEmpty()) + node = relative; + else if (target.endsWith(".html")) + node = findNodeByNameAndType(QStringList(target), &Node::isPageNode); + else { + QStringList path = target.split("::"); + int flags = SearchBaseClasses | SearchEnumValues; + for (const auto *tree : searchOrder()) { + const Node *n = tree->findNode(path, relative, flags, Node::DontCare); + if (n) + return n; + relative = nullptr; + } + node = findPageNodeByTitle(target); + } + return node; +} + +QStringList QDocDatabase::groupNamesForNode(Node *node) +{ + QStringList result; + CNMap *m = primaryTree()->getCollectionMap(Node::Group); + + if (!m) + return result; + + for (auto it = m->cbegin(); it != m->cend(); ++it) + if (it.value()->members().contains(node)) + result << it.key(); + + return result; +} + +/*! + Reads and parses the qdoc index files listed in \a indexFiles. + */ +void QDocDatabase::readIndexes(const QStringList &indexFiles) +{ + QStringList filesToRead; + for (const QString &file : indexFiles) { + QString fn = file.mid(file.lastIndexOf(QChar('/')) + 1); + if (!isLoaded(fn)) + filesToRead << file; + else + qDebug() << "This index file is already in memory:" << file; + } + QDocIndexFiles::qdocIndexFiles()->readIndexes(filesToRead); +} + +/*! + Generates a qdoc index file and write it to \a fileName. The + index file is generated with the parameters \a url and \a title, + using the generator \a g. + */ +void QDocDatabase::generateIndex(const QString &fileName, const QString &url, const QString &title, + Generator *g) +{ + QString t = fileName.mid(fileName.lastIndexOf(QChar('/')) + 1); + primaryTree()->setIndexFileName(t); + QDocIndexFiles::qdocIndexFiles()->generateIndex(fileName, url, title, g); + QDocIndexFiles::destroyQDocIndexFiles(); +} + +/*! + Find a node of the specified \a type that is reached with + the specified \a path qualified with the name of one of the + open namespaces (might not be any open ones). If the node + is found in an open namespace, prefix \a path with the name + of the open namespace and "::" and return a pointer to the + node. Otherwise return \c nullptr. + + This function only searches in the current primary tree. + */ +Node *QDocDatabase::findNodeInOpenNamespace(QStringList &path, bool (Node::*isMatch)() const) +{ + if (path.isEmpty()) + return nullptr; + Node *n = nullptr; + if (!m_openNamespaces.isEmpty()) { + const auto &openNamespaces = m_openNamespaces; + for (const QString &t : openNamespaces) { + QStringList p; + if (t != path[0]) + p = t.split("::") + path; + else + p = path; + n = primaryTree()->findNodeByNameAndType(p, isMatch); + if (n) { + path = p; + break; + } + } + } + return n; +} + +/*! + Finds all the collection nodes of the specified \a type + and merges them into the collection node map \a cnm. Nodes + that match the \a relative node are not included. + */ +void QDocDatabase::mergeCollections(Node::NodeType type, CNMap &cnm, const Node *relative) +{ + cnm.clear(); + CNMultiMap cnmm; + for (auto *tree : searchOrder()) { + CNMap *m = tree->getCollectionMap(type); + if (m && !m->isEmpty()) { + for (auto it = m->cbegin(); it != m->cend(); ++it) { + if (!it.value()->isInternal()) + cnmm.insert(it.key(), it.value()); + } + } + } + if (cnmm.isEmpty()) + return; + QRegularExpression singleDigit("\\b([0-9])\\b"); + const QStringList keys = cnmm.uniqueKeys(); + for (const auto &key : keys) { + const QList values = cnmm.values(key); + CollectionNode *n = nullptr; + for (auto *value : values) { + if (value && value->wasSeen() && value != relative) { + n = value; + break; + } + } + if (n) { + if (values.size() > 1) { + for (CollectionNode *value : values) { + if (value != n) { + // Allow multiple (major) versions of QML/JS modules + if ((n->isQmlModule() || n->isJsModule()) + && n->logicalModuleIdentifier() != value->logicalModuleIdentifier()) { + if (value->wasSeen() && value != relative + && !value->members().isEmpty()) + cnm.insert(value->fullTitle().toLower(), value); + continue; + } + for (Node *t : value->members()) + n->addMember(t); + } + } + } + QString sortKey = n->fullTitle().toLower(); + if (sortKey.startsWith("the ")) + sortKey.remove(0, 4); + sortKey.replace(singleDigit, "0\\1"); + cnm.insert(sortKey, n); + } + } +} + +/*! + Finds all the collection nodes with the same name + and type as \a c and merges their members into the + members list of \a c. + + For QML and JS modules, only nodes with matching + module identifiers are merged to avoid merging + modules with different (major) versions. + */ +void QDocDatabase::mergeCollections(CollectionNode *c) +{ + if (c == nullptr) + return; + + for (auto *tree : searchOrder()) { + CollectionNode *cn = tree->getCollection(c->name(), c->nodeType()); + if (cn && cn != c) { + if ((cn->isQmlModule() || cn->isJsModule()) + && cn->logicalModuleIdentifier() != c->logicalModuleIdentifier()) + continue; + for (auto *node : cn->members()) + c->addMember(node); + } + } +} + +/*! + Searches for the node that matches the path in \a atom and the + specified \a genus. The \a relative node is used if the first + leg of the path is empty, i.e. if the path begins with '#'. + The function also sets \a ref if there remains an unused leg + in the path after the node is found. The node is returned as + well as the \a ref. If the returned node pointer is null, + \a ref is also not valid. + */ +const Node *QDocDatabase::findNodeForAtom(const Atom *a, const Node *relative, QString &ref, + Node::Genus genus) +{ + const Node *node = nullptr; + + Atom *atom = const_cast(a); + QStringList targetPath = atom->string().split(QLatin1Char('#')); + QString first = targetPath.first().trimmed(); + + Tree *domain = nullptr; + + if (atom->isLinkAtom()) { + domain = atom->domain(); + genus = atom->genus(); + } + + if (first.isEmpty()) + node = relative; // search for a target on the current page. + else if (domain) { + if (first.endsWith(".html")) + node = domain->findNodeByNameAndType(QStringList(first), &Node::isPageNode); + else if (first.endsWith(QChar(')'))) { + QString signature; + QString function = first; + qsizetype length = first.size(); + if (function.endsWith("()")) + function.chop(2); + if (function.endsWith(QChar(')'))) { + qsizetype position = function.lastIndexOf(QChar('(')); + signature = function.mid(position + 1, length - position - 2); + function = function.left(position); + } + QStringList path = function.split("::"); + node = domain->findFunctionNode(path, Parameters(signature), nullptr, genus); + } + if (node == nullptr) { + int flags = SearchBaseClasses | SearchEnumValues; + QStringList nodePath = first.split("::"); + QString target; + targetPath.removeFirst(); + if (!targetPath.isEmpty()) + target = targetPath.takeFirst(); + if (relative && relative->tree()->physicalModuleName() != domain->physicalModuleName()) + relative = nullptr; + return domain->findNodeForTarget(nodePath, target, relative, flags, genus, ref); + } + } else { + if (first.endsWith(".html")) + node = findNodeByNameAndType(QStringList(first), &Node::isPageNode); + else if (first.endsWith(QChar(')'))) + node = findFunctionNode(first, relative, genus); + if (node == nullptr) + return findNodeForTarget(targetPath, relative, genus, ref); + } + + if (node != nullptr && ref.isEmpty()) { + if (!node->url().isEmpty()) + return node; + targetPath.removeFirst(); + if (!targetPath.isEmpty()) { + ref = node->root()->tree()->getRef(targetPath.first(), node); + if (ref.isEmpty()) + node = nullptr; + } + } + return node; +} + +/*! + Updates navigation (previous/next page links and the navigation parent) + for pages listed in the TOC, specified by the \c navigation.toctitles + configuration variable. + + if \c navigation.toctitles.inclusive is \c true, include also the TOC + page(s) themselves as a 'root' item in the navigation bar (breadcrumbs) + that are generated for HTML output. +*/ +void QDocDatabase::updateNavigation() +{ + // Restrict searching only to the local (primary) tree + QList searchOrder = this->searchOrder(); + setLocalSearch(); + + const QString configVar = CONFIG_NAVIGATION + + Config::dot + + CONFIG_TOCTITLES; + bool inclusive = + Config::instance().getBool(configVar + + Config::dot + + CONFIG_INCLUSIVE); + + const auto tocTitles = Config::instance().getStringList(configVar); + + for (const auto &tocTitle : tocTitles) { + if (const auto tocPage = findNodeForTarget(tocTitle, nullptr)) { + Text body = tocPage->doc().body(); + auto *atom = body.firstAtom(); + std::pair prev { nullptr, nullptr }; + std::stack tocStack; + tocStack.push(inclusive ? tocPage : nullptr); + bool inItem = false; + while (atom) { + switch (atom->type()) { + case Atom::ListItemLeft: + // Not known if we're going to have a link, push a temporary + tocStack.push(nullptr); + inItem = true; + break; + case Atom::ListItemRight: + tocStack.pop(); + inItem = false; + break; + case Atom::Link: { + if (!inItem) + break; + QString ref; + auto page = const_cast(findNodeForAtom(atom, nullptr, ref)); + // ignore self-references + if (page && page == prev.first) + break; + if (page && page->isPageNode()) { + if (prev.first) { + prev.first->setLink(Node::NextLink, + page->title(), + atom->linkText()); + page->setLink(Node::PreviousLink, + prev.first->title(), + prev.second->linkText()); + } + if (page == tocPage) + break; + // Find the navigation parent from the stack; we may have null pointers + // for non-link list items, so skip those. + qsizetype popped = 0; + while (tocStack.size() > 1 && !tocStack.top()) { + tocStack.pop(); + ++popped; + } + page->setNavigationParent(tocStack.empty() ? nullptr : tocStack.top()); + while (--popped > 0) + tocStack.push(nullptr); + tocStack.push(page); + prev = { page, atom }; + } + } + break; + default: + break; + } + + if (atom == body.lastAtom()) + break; + atom = atom->next(); + } + } else { + Config::instance().lastLocation().warning( + QStringLiteral("Failed to find table of contents with title '%1'") + .arg(tocTitle)); + } + } + + // Restore search order + setSearchOrder(searchOrder); +} + +QT_END_NAMESPACE diff --git a/src/qdoc/qdocdatabase.h b/src/qdoc/qdocdatabase.h new file mode 100644 index 0000000..28c60f1 --- /dev/null +++ b/src/qdoc/qdocdatabase.h @@ -0,0 +1,412 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef QDOCDATABASE_H +#define QDOCDATABASE_H + +#include "config.h" +#include "examplenode.h" +#include "propertynode.h" +#include "text.h" +#include "tree.h" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +typedef QMultiMap TextToNodeMap; + +class Atom; +class FunctionNode; +class Generator; +class QDocDatabase; + +enum FindFlag { + SearchBaseClasses = 0x1, + SearchEnumValues = 0x2, + TypesOnly = 0x4, + IgnoreModules = 0x8 +}; + +class QDocForest +{ +private: + friend class QDocDatabase; + explicit QDocForest(QDocDatabase *qdb) : m_qdb(qdb), m_primaryTree(nullptr), m_currentIndex(0) + { + } + ~QDocForest(); + + NamespaceNode *nextRoot(); + Tree *firstTree(); + Tree *nextTree(); + Tree *primaryTree() { return m_primaryTree; } + Tree *findTree(const QString &t) { return m_forest.value(t); } + QStringList keys() { return m_forest.keys(); } + NamespaceNode *primaryTreeRoot() { return (m_primaryTree ? m_primaryTree->root() : nullptr); } + bool isEmpty() { return searchOrder().isEmpty(); } + bool done() { return (m_currentIndex >= searchOrder().size()); } + const QList &searchOrder(); + const QList &indexSearchOrder(); + void setSearchOrder(const QStringList &t); + bool isLoaded(const QString &fn) + { + return std::any_of(searchOrder().constBegin(), searchOrder().constEnd(), + [fn](Tree *tree) { return fn == tree->indexFileName(); }); + } + + const Node *findNode(const QStringList &path, const Node *relative, int findFlags, + Node::Genus genus) + { + for (const auto *tree : searchOrder()) { + const Node *n = tree->findNode(path, relative, findFlags, genus); + if (n) + return n; + relative = nullptr; + } + return nullptr; + } + + Node *findNodeByNameAndType(const QStringList &path, bool (Node::*isMatch)() const) + { + for (const auto *tree : searchOrder()) { + Node *n = tree->findNodeByNameAndType(path, isMatch); + if (n) + return n; + } + return nullptr; + } + + ClassNode *findClassNode(const QStringList &path) + { + for (const auto *tree : searchOrder()) { + ClassNode *n = tree->findClassNode(path); + if (n) + return n; + } + return nullptr; + } + + Node *findNodeForInclude(const QStringList &path) + { + for (const auto *tree : searchOrder()) { + Node *n = tree->findNodeForInclude(path); + if (n) + return n; + } + return nullptr; + } + + const FunctionNode *findFunctionNode(const QStringList &path, const Parameters ¶meters, + const Node *relative, Node::Genus genus); + const Node *findNodeForTarget(QStringList &targetPath, const Node *relative, Node::Genus genus, + QString &ref); + + const Node *findTypeNode(const QStringList &path, const Node *relative, Node::Genus genus) + { + int flags = SearchBaseClasses | SearchEnumValues | TypesOnly; + if (relative && genus == Node::DontCare && relative->genus() != Node::DOC) + genus = relative->genus(); + for (const auto *tree : searchOrder()) { + const Node *n = tree->findNode(path, relative, flags, genus); + if (n) + return n; + relative = nullptr; + } + return nullptr; + } + + const PageNode *findPageNodeByTitle(const QString &title) + { + for (const auto *tree : searchOrder()) { + const PageNode *n = tree->findPageNodeByTitle(title); + if (n) + return n; + } + return nullptr; + } + + const CollectionNode *getCollectionNode(const QString &name, Node::NodeType type) + { + for (auto *tree : searchOrder()) { + const CollectionNode *cn = tree->getCollection(name, type); + if (cn) + return cn; + } + return nullptr; + } + + QmlTypeNode *lookupQmlType(const QString &name) + { + for (const auto *tree : searchOrder()) { + QmlTypeNode *qcn = tree->lookupQmlType(name); + if (qcn) + return qcn; + } + return nullptr; + } + + Aggregate *lookupQmlBasicType(const QString &name) + { + for (const auto *tree : searchOrder()) { + Aggregate *a = tree->lookupQmlBasicType(name); + if (a) + return a; + } + return nullptr; + } + void clearSearchOrder() { m_searchOrder.clear(); } + void newPrimaryTree(const QString &module); + void setPrimaryTree(const QString &t); + NamespaceNode *newIndexTree(const QString &module); + +private: + QDocDatabase *m_qdb; + Tree *m_primaryTree; + int m_currentIndex; + QMap m_forest; + QList m_searchOrder; + QList m_indexSearchOrder; + QList m_moduleNames; +}; + +class QDocDatabase +{ +public: + static QDocDatabase *qdocDB(); + static void destroyQdocDB(); + ~QDocDatabase() = default; + + Tree *findTree(const QString &t) { return m_forest.findTree(t); } + + const CNMap &groups() { return primaryTree()->groups(); } + const CNMap &modules() { return primaryTree()->modules(); } + const CNMap &qmlModules() { return primaryTree()->qmlModules(); } + const CNMap &jsModules() { return primaryTree()->jsModules(); } + + CollectionNode *addGroup(const QString &name) { return primaryTree()->addGroup(name); } + CollectionNode *addModule(const QString &name) { return primaryTree()->addModule(name); } + CollectionNode *addQmlModule(const QString &name) { return primaryTree()->addQmlModule(name); } + CollectionNode *addJsModule(const QString &name) { return primaryTree()->addJsModule(name); } + + CollectionNode *addToGroup(const QString &name, Node *node) + { + return primaryTree()->addToGroup(name, node); + } + CollectionNode *addToModule(const QString &name, Node *node) + { + return primaryTree()->addToModule(name, node); + } + CollectionNode *addToQmlModule(const QString &name, Node *node) + { + return primaryTree()->addToQmlModule(name, node); + } + CollectionNode *addToJsModule(const QString &name, Node *node) + { + return primaryTree()->addToJsModule(name, node); + } + + void addExampleNode(ExampleNode *n) { primaryTree()->addExampleNode(n); } + ExampleNodeMap &exampleNodeMap() { return primaryTree()->exampleNodeMap(); } + + QmlTypeNode *findQmlType(const QString &name); + QmlTypeNode *findQmlType(const QString &qmid, const QString &name); + QmlTypeNode *findQmlType(const ImportRec &import, const QString &name); + Aggregate *findQmlBasicType(const QString &qmid, const QString &name); + + static NodeMultiMap &obsoleteClasses() { return s_obsoleteClasses; } + static NodeMultiMap &obsoleteQmlTypes() { return s_obsoleteQmlTypes; } + static NodeMultiMap &classesWithObsoleteMembers() { return s_classesWithObsoleteMembers; } + static NodeMultiMap &qmlTypesWithObsoleteMembers() { return s_qmlTypesWithObsoleteMembers; } + static NodeMultiMap &cppClasses() { return s_cppClasses; } + static NodeMultiMap &qmlBasicTypes() { return s_qmlBasicTypes; } + static NodeMultiMap &qmlTypes() { return s_qmlTypes; } + static NodeMultiMap &examples() { return s_examples; } + static NodeMultiMapMap &newClassMaps() { return s_newClassMaps; } + static NodeMultiMapMap &newQmlTypeMaps() { return s_newQmlTypeMaps; } + static NodeMultiMapMap &newSinceMaps() { return s_newSinceMaps; } + +private: + void findAllClasses(Aggregate *node) { node->findAllClasses(); } + void findAllFunctions(Aggregate *node) { node->findAllFunctions(m_functionIndex); } + void findAllAttributions(Aggregate *node) { node->findAllAttributions(m_attributions); } + void findAllLegaleseTexts(Aggregate *node); + void findAllObsoleteThings(Aggregate *node) { node->findAllObsoleteThings(); } + void findAllSince(Aggregate *node) { node->findAllSince(); } + +public: + /******************************************************************* + special collection access functions + ********************************************************************/ + NodeMultiMap &getCppClasses(); + NodeMultiMap &getObsoleteClasses(); + NodeMultiMap &getClassesWithObsoleteMembers(); + NodeMultiMap &getObsoleteQmlTypes(); + NodeMultiMap &getQmlTypesWithObsoleteMembers(); + NodeMultiMap &getNamespaces(); + NodeMultiMap &getQmlValueTypes(); + NodeMultiMap &getQmlTypes(); + NodeMultiMap &getExamples(); + NodeMultiMap &getAttributions(); + NodeMapMap &getFunctionIndex(); + TextToNodeMap &getLegaleseTexts(); + const NodeMultiMap &getClassMap(const QString &key); + const NodeMultiMap &getQmlTypeMap(const QString &key); + const NodeMultiMap &getSinceMap(const QString &key); + + /******************************************************************* + Many of these will be either eliminated or replaced. + ********************************************************************/ + void resolveStuff(); + void insertTarget(const QString &name, const QString &title, TargetRec::TargetType type, + Node *node, int priority) + { + primaryTree()->insertTarget(name, title, type, node, priority); + } + + /******************************************************************* + The functions declared below are called for the current tree only. + ********************************************************************/ + Aggregate *findRelatesNode(const QStringList &path) + { + return primaryTree()->findRelatesNode(path); + } + Node *findNodeInOpenNamespace(QStringList &path, bool (Node::*)() const); + /*******************************************************************/ + + /***************************************************************************** + This function can handle parameters enclosed in '[' ']' (domain and genus). + ******************************************************************************/ + const Node *findNodeForAtom(const Atom *atom, const Node *relative, QString &ref, + Node::Genus genus = Node::DontCare); + /*******************************************************************/ + + /******************************************************************* + The functions declared below are called for all trees. + ********************************************************************/ + ClassNode *findClassNode(const QStringList &path) { return m_forest.findClassNode(path); } + Node *findNodeForInclude(const QStringList &path) { return m_forest.findNodeForInclude(path); } + const FunctionNode *findFunctionNode(const QString &target, const Node *relative, + Node::Genus genus); + const Node *findTypeNode(const QString &type, const Node *relative, Node::Genus genus); + const Node *findNodeForTarget(const QString &target, const Node *relative); + const PageNode *findPageNodeByTitle(const QString &title) + { + return m_forest.findPageNodeByTitle(title); + } + Node *findNodeByNameAndType(const QStringList &path, bool (Node::*isMatch)() const) + { + return m_forest.findNodeByNameAndType(path, isMatch); + } + const CollectionNode *getCollectionNode(const QString &name, Node::NodeType type) + { + return m_forest.getCollectionNode(name, type); + } + FunctionNode *findFunctionNodeForTag(const QString &tag) + { + return primaryTree()->findFunctionNodeForTag(tag); + } + FunctionNode *findMacroNode(const QString &t) { return primaryTree()->findMacroNode(t); } + + QStringList groupNamesForNode(Node *node); + +private: + const Node *findNodeForTarget(QStringList &targetPath, const Node *relative, Node::Genus genus, + QString &ref) + { + return m_forest.findNodeForTarget(targetPath, relative, genus, ref); + } + const FunctionNode *findFunctionNode(const QStringList &path, const Parameters ¶meters, + const Node *relative, Node::Genus genus) + { + return m_forest.findFunctionNode(path, parameters, relative, genus); + } + + /*******************************************************************/ +public: + void addPropertyFunction(PropertyNode *property, const QString &funcName, + PropertyNode::FunctionRole funcRole) + { + primaryTree()->addPropertyFunction(property, funcName, funcRole); + } + + void setVersion(const QString &v) { m_version = v; } + [[nodiscard]] QString version() const { return m_version; } + + void readIndexes(const QStringList &indexFiles); + void generateIndex(const QString &fileName, const QString &url, const QString &title, + Generator *g); + + void clearOpenNamespaces() { m_openNamespaces.clear(); } + void insertOpenNamespace(const QString &path) { m_openNamespaces.insert(path); } + void processForest(); + + // Try to make this function private. + QDocForest &forest() { return m_forest; } + NamespaceNode *primaryTreeRoot() { return m_forest.primaryTreeRoot(); } + void newPrimaryTree(const QString &module) { m_forest.newPrimaryTree(module); } + void setPrimaryTree(const QString &t) { m_forest.setPrimaryTree(t); } + NamespaceNode *newIndexTree(const QString &module) { return m_forest.newIndexTree(module); } + const QList &searchOrder() { return m_forest.searchOrder(); } + void setLocalSearch() { m_forest.m_searchOrder = QList(1, primaryTree()); } + void setSearchOrder(const QList &searchOrder) { m_forest.m_searchOrder = searchOrder; } + void setSearchOrder(QStringList &t) { m_forest.setSearchOrder(t); } + void mergeCollections(Node::NodeType type, CNMap &cnm, const Node *relative); + void mergeCollections(CollectionNode *c); + void clearSearchOrder() { m_forest.clearSearchOrder(); } + QStringList keys() { return m_forest.keys(); } + void resolveNamespaces(); + void resolveProxies(); + void resolveBaseClasses(); + void updateNavigation(); + +private: + friend class Tree; + + const Node *findNode(const QStringList &path, const Node *relative, int findFlags, + Node::Genus genus) + { + return m_forest.findNode(path, relative, findFlags, genus); + } + void processForest(void (QDocDatabase::*)(Aggregate *)); + bool isLoaded(const QString &t) { return m_forest.isLoaded(t); } + static void initializeDB(); + +private: + QDocDatabase(); + QDocDatabase(QDocDatabase const &) : m_forest(this) { } + QDocDatabase &operator=(QDocDatabase const &); + +public: + Tree *primaryTree() { return m_forest.primaryTree(); } + +private: + static QDocDatabase *s_qdocDB; + static NodeMap s_typeNodeMap; + static NodeMultiMap s_obsoleteClasses; + static NodeMultiMap s_classesWithObsoleteMembers; + static NodeMultiMap s_obsoleteQmlTypes; + static NodeMultiMap s_qmlTypesWithObsoleteMembers; + static NodeMultiMap s_cppClasses; + static NodeMultiMap s_qmlBasicTypes; + static NodeMultiMap s_qmlTypes; + static NodeMultiMap s_examples; + static NodeMultiMapMap s_newClassMaps; + static NodeMultiMapMap s_newQmlTypeMaps; + static NodeMultiMapMap s_newSinceMaps; + + QString m_version {}; + QDocForest m_forest; + + NodeMultiMap m_namespaceIndex {}; + NodeMultiMap m_attributions {}; + NodeMapMap m_functionIndex {}; + TextToNodeMap m_legaleseTexts {}; + QSet m_openNamespaces {}; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/qdocindexfiles.cpp b/src/qdoc/qdocindexfiles.cpp new file mode 100644 index 0000000..a07092d --- /dev/null +++ b/src/qdoc/qdocindexfiles.cpp @@ -0,0 +1,1548 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "qdocindexfiles.h" + +#include "access.h" +#include "atom.h" +#include "classnode.h" +#include "collectionnode.h" +#include "config.h" +#include "enumnode.h" +#include "examplenode.h" +#include "externalpagenode.h" +#include "functionnode.h" +#include "generator.h" +#include "headernode.h" +#include "location.h" +#include "utilities.h" +#include "propertynode.h" +#include "qdocdatabase.h" +#include "qmlpropertynode.h" +#include "typedefnode.h" +#include "variablenode.h" + +#include + +#include + +QT_BEGIN_NAMESPACE + +enum QDocAttr { + QDocAttrNone, + QDocAttrExample, + QDocAttrFile, + QDocAttrImage, + QDocAttrDocument, + QDocAttrExternalPage +}; + +static Node *root_ = nullptr; +static IndexSectionWriter *post_ = nullptr; + +/*! + \class QDocIndexFiles + + This class handles qdoc index files. + */ + +QDocIndexFiles *QDocIndexFiles::s_qdocIndexFiles = nullptr; + +/*! + Constructs the singleton QDocIndexFiles. + */ +QDocIndexFiles::QDocIndexFiles() : m_gen(nullptr) +{ + m_qdb = QDocDatabase::qdocDB(); + m_storeLocationInfo = Config::instance().getBool(CONFIG_LOCATIONINFO); +} + +/*! + Destroys the singleton QDocIndexFiles. + */ +QDocIndexFiles::~QDocIndexFiles() +{ + m_qdb = nullptr; + m_gen = nullptr; +} + +/*! + Creates the singleton. Allows only one instance of the class + to be created. Returns a pointer to the singleton. + */ +QDocIndexFiles *QDocIndexFiles::qdocIndexFiles() +{ + if (s_qdocIndexFiles == nullptr) + s_qdocIndexFiles = new QDocIndexFiles; + return s_qdocIndexFiles; +} + +/*! + Destroys the singleton. + */ +void QDocIndexFiles::destroyQDocIndexFiles() +{ + if (s_qdocIndexFiles != nullptr) { + delete s_qdocIndexFiles; + s_qdocIndexFiles = nullptr; + } +} + +/*! + Reads and parses the list of index files in \a indexFiles. + */ +void QDocIndexFiles::readIndexes(const QStringList &indexFiles) +{ + for (const QString &file : indexFiles) { + qCDebug(lcQdoc) << "Loading index file: " << file; + readIndexFile(file); + } +} + +/*! + Reads and parses the index file at \a path. + */ +void QDocIndexFiles::readIndexFile(const QString &path) +{ + QFile file(path); + if (!file.open(QFile::ReadOnly)) { + qWarning() << "Could not read index file" << path; + return; + } + + QXmlStreamReader reader(&file); + reader.setNamespaceProcessing(false); + + if (!reader.readNextStartElement()) + return; + + if (reader.name() != QLatin1String("INDEX")) + return; + + QXmlStreamAttributes attrs = reader.attributes(); + + QString indexUrl {attrs.value(QLatin1String("url")).toString()}; + + // Decide how we link to nodes loaded from this index file: + // If building a set that will be installed AND the URL of + // the dependency is identical to ours, assume that also + // the dependent html files are available under the same + // directory tree. Otherwise, link using the full index URL. + if (!Config::installDir.isEmpty() && indexUrl == Config::instance().getString(CONFIG_URL)) { + // Generate a relative URL between the install dir and the index file + // when the -installdir command line option is set. + QDir installDir(path.section('/', 0, -3) + '/' + Generator::outputSubdir()); + indexUrl = installDir.relativeFilePath(path).section('/', 0, -2); + } + m_project = attrs.value(QLatin1String("project")).toString(); + QString indexTitle = attrs.value(QLatin1String("indexTitle")).toString(); + m_basesList.clear(); + m_relatedNodes.clear(); + + NamespaceNode *root = m_qdb->newIndexTree(m_project); + if (!root) { + qWarning() << "Issue parsing index tree" << path; + return; + } + + root->tree()->setIndexTitle(indexTitle); + + // Scan all elements in the XML file, constructing a map that contains + // base classes for each class found. + while (reader.readNextStartElement()) { + readIndexSection(reader, root, indexUrl); + } + + // Now that all the base classes have been found for this index, + // arrange them into an inheritance hierarchy. + resolveIndex(); +} + +/*! + Read a
    element from the index file and create the + appropriate node(s). + */ +void QDocIndexFiles::readIndexSection(QXmlStreamReader &reader, Node *current, + const QString &indexUrl) +{ + QXmlStreamAttributes attributes = reader.attributes(); + QStringView elementName = reader.name(); + + QString name = attributes.value(QLatin1String("name")).toString(); + QString href = attributes.value(QLatin1String("href")).toString(); + Node *node; + Location location; + Aggregate *parent = nullptr; + bool hasReadChildren = false; + + if (current->isAggregate()) + parent = static_cast(current); + + if (attributes.hasAttribute(QLatin1String("related"))) { + bool isIntTypeRelatedValue = false; + int relatedIndex = attributes.value(QLatin1String("related")).toInt(&isIntTypeRelatedValue); + if (isIntTypeRelatedValue) { + if (adoptRelatedNode(parent, relatedIndex)) { + reader.skipCurrentElement(); + return; + } + } else { + QList::iterator nodeIterator = + std::find_if(m_relatedNodes.begin(), m_relatedNodes.end(), [&](const Node *relatedNode) { + return (name == relatedNode->name() && href == relatedNode->url().section(QLatin1Char('/'), -1)); + }); + + if (nodeIterator != m_relatedNodes.end() && parent) { + parent->adoptChild(*nodeIterator); + reader.skipCurrentElement(); + return; + } + } + } + + QString filePath; + int lineNo = 0; + if (attributes.hasAttribute(QLatin1String("filepath"))) { + filePath = attributes.value(QLatin1String("filepath")).toString(); + lineNo = attributes.value("lineno").toInt(); + } + if (elementName == QLatin1String("namespace")) { + auto *namespaceNode = new NamespaceNode(parent, name); + node = namespaceNode; + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + name.toLower() + ".html"); + else if (!indexUrl.isNull()) + location = Location(name.toLower() + ".html"); + } else if (elementName == QLatin1String("class") || elementName == QLatin1String("struct") + || elementName == QLatin1String("union")) { + Node::NodeType type = Node::Class; + if (elementName == QLatin1String("class")) + type = Node::Class; + else if (elementName == QLatin1String("struct")) + type = Node::Struct; + else if (elementName == QLatin1String("union")) + type = Node::Union; + node = new ClassNode(type, parent, name); + if (attributes.hasAttribute(QLatin1String("bases"))) { + QString bases = attributes.value(QLatin1String("bases")).toString(); + if (!bases.isEmpty()) + m_basesList.append( + std::pair(static_cast(node), bases)); + } + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + name.toLower() + ".html"); + else if (!indexUrl.isNull()) + location = Location(name.toLower() + ".html"); + bool abstract = false; + if (attributes.value(QLatin1String("abstract")) == QLatin1String("true")) + abstract = true; + node->setAbstract(abstract); + } else if (elementName == QLatin1String("header")) { + node = new HeaderNode(parent, name); + + if (attributes.hasAttribute(QLatin1String("location"))) + name = attributes.value(QLatin1String("location")).toString(); + + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + name); + else if (!indexUrl.isNull()) + location = Location(name); + } else if (elementName == QLatin1String("qmlclass")) { + auto *qmlTypeNode = new QmlTypeNode(parent, name); + qmlTypeNode->setTitle(attributes.value(QLatin1String("title")).toString()); + QString logicalModuleName = attributes.value(QLatin1String("qml-module-name")).toString(); + if (!logicalModuleName.isEmpty()) + m_qdb->addToQmlModule(logicalModuleName, qmlTypeNode); + bool abstract = false; + if (attributes.value(QLatin1String("abstract")) == QLatin1String("true")) + abstract = true; + qmlTypeNode->setAbstract(abstract); + QString qmlFullBaseName = attributes.value(QLatin1String("qml-base-type")).toString(); + if (!qmlFullBaseName.isEmpty()) { + qmlTypeNode->setQmlBaseName(qmlFullBaseName); + } + if (attributes.hasAttribute(QLatin1String("location"))) + name = attributes.value("location").toString(); + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + name); + else if (!indexUrl.isNull()) + location = Location(name); + node = qmlTypeNode; + } else if (elementName == QLatin1String("jstype")) { + auto *qmlTypeNode = new QmlTypeNode(parent, name); + qmlTypeNode->setGenus(Node::JS); + qmlTypeNode->setTitle(attributes.value(QLatin1String("title")).toString()); + QString logicalModuleName = attributes.value(QLatin1String("js-module-name")).toString(); + if (!logicalModuleName.isEmpty()) + m_qdb->addToQmlModule(logicalModuleName, qmlTypeNode); + bool abstract = false; + if (attributes.value(QLatin1String("abstract")) == QLatin1String("true")) + abstract = true; + qmlTypeNode->setAbstract(abstract); + QString qmlFullBaseName = attributes.value(QLatin1String("js-base-type")).toString(); + if (!qmlFullBaseName.isEmpty()) { + qmlTypeNode->setQmlBaseName(qmlFullBaseName); + } + if (attributes.hasAttribute(QLatin1String("location"))) + name = attributes.value("location").toString(); + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + name); + else if (!indexUrl.isNull()) + location = Location(name); + node = qmlTypeNode; + } else if (elementName == QLatin1String("qmlvaluetype") + || elementName == QLatin1String("qmlbasictype")) { + auto *qbtn = new QmlValueTypeNode(parent, name); + qbtn->setTitle(attributes.value(QLatin1String("title")).toString()); + if (attributes.hasAttribute(QLatin1String("location"))) + name = attributes.value("location").toString(); + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + name); + else if (!indexUrl.isNull()) + location = Location(name); + node = qbtn; + } else if (elementName == QLatin1String("jsbasictype")) { + auto *qbtn = new QmlValueTypeNode(parent, name); + qbtn->setGenus(Node::JS); + qbtn->setTitle(attributes.value(QLatin1String("title")).toString()); + if (attributes.hasAttribute(QLatin1String("location"))) + name = attributes.value("location").toString(); + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + name); + else if (!indexUrl.isNull()) + location = Location(name); + node = qbtn; + } else if (elementName == QLatin1String("qmlproperty")) { + QString type = attributes.value(QLatin1String("type")).toString(); + bool attached = false; + if (attributes.value(QLatin1String("attached")) == QLatin1String("true")) + attached = true; + bool readonly = false; + if (attributes.value(QLatin1String("writable")) == QLatin1String("false")) + readonly = true; + auto *qmlPropertyNode = new QmlPropertyNode(parent, name, type, attached); + qmlPropertyNode->markReadOnly(readonly); + if (attributes.value(QLatin1String("required")) == QLatin1String("true")) + qmlPropertyNode->setRequired(); + node = qmlPropertyNode; + } else if (elementName == QLatin1String("jsproperty")) { + QString type = attributes.value(QLatin1String("type")).toString(); + bool attached = false; + if (attributes.value(QLatin1String("attached")) == QLatin1String("true")) + attached = true; + bool readonly = false; + if (attributes.value(QLatin1String("writable")) == QLatin1String("false")) + readonly = true; + auto *qmlPropertyNode = new QmlPropertyNode(parent, name, type, attached); + qmlPropertyNode->setGenus(Node::JS); + qmlPropertyNode->markReadOnly(readonly); + node = qmlPropertyNode; + } else if (elementName == QLatin1String("group")) { + auto *collectionNode = m_qdb->addGroup(name); + collectionNode->setTitle(attributes.value(QLatin1String("title")).toString()); + collectionNode->setSubtitle(attributes.value(QLatin1String("subtitle")).toString()); + if (attributes.value(QLatin1String("seen")) == QLatin1String("true")) + collectionNode->markSeen(); + node = collectionNode; + } else if (elementName == QLatin1String("module")) { + auto *collectionNode = m_qdb->addModule(name); + collectionNode->setTitle(attributes.value(QLatin1String("title")).toString()); + collectionNode->setSubtitle(attributes.value(QLatin1String("subtitle")).toString()); + if (attributes.value(QLatin1String("seen")) == QLatin1String("true")) + collectionNode->markSeen(); + node = collectionNode; + } else if (elementName == QLatin1String("qmlmodule")) { + QString t = attributes.value(QLatin1String("qml-module-name")).toString(); + auto *collectionNode = m_qdb->addQmlModule(t); + QStringList info; + info << t << attributes.value(QLatin1String("qml-module-version")).toString(); + collectionNode->setLogicalModuleInfo(info); + collectionNode->setTitle(attributes.value(QLatin1String("title")).toString()); + collectionNode->setSubtitle(attributes.value(QLatin1String("subtitle")).toString()); + if (attributes.value(QLatin1String("seen")) == QLatin1String("true")) + collectionNode->markSeen(); + node = collectionNode; + } else if (elementName == QLatin1String("jsmodule")) { + QString t = attributes.value(QLatin1String("js-module-name")).toString(); + auto *collectionNode = m_qdb->addJsModule(t); + QStringList info; + info << t << attributes.value(QLatin1String("js-module-version")).toString(); + collectionNode->setLogicalModuleInfo(info); + collectionNode->setTitle(attributes.value(QLatin1String("title")).toString()); + collectionNode->setSubtitle(attributes.value(QLatin1String("subtitle")).toString()); + if (attributes.value(QLatin1String("seen")) == QLatin1String("true")) + collectionNode->markSeen(); + node = collectionNode; + } else if (elementName == QLatin1String("page")) { + QDocAttr subtype = QDocAttrNone; + Node::PageType ptype = Node::NoPageType; + QString attr = attributes.value(QLatin1String("subtype")).toString(); + if (attr == QLatin1String("attribution")) { + subtype = QDocAttrDocument; + ptype = Node::AttributionPage; + } else if (attr == QLatin1String("example")) { + subtype = QDocAttrExample; + ptype = Node::ExamplePage; + } else if (attr == QLatin1String("file")) { + subtype = QDocAttrFile; + ptype = Node::NoPageType; + } else if (attr == QLatin1String("image")) { + subtype = QDocAttrImage; + ptype = Node::NoPageType; + } else if (attr == QLatin1String("page")) { + subtype = QDocAttrDocument; + ptype = Node::ArticlePage; + } else if (attr == QLatin1String("externalpage")) { + subtype = QDocAttrExternalPage; + ptype = Node::ArticlePage; + } else + goto done; + + if (current->isExample()) { + auto *exampleNode = static_cast(current); + if (subtype == QDocAttrFile) { + exampleNode->appendFile(name); + goto done; + } else if (subtype == QDocAttrImage) { + exampleNode->appendImage(name); + goto done; + } + } + PageNode *pageNode = nullptr; + if (subtype == QDocAttrExample) + pageNode = new ExampleNode(parent, name); + else if (subtype == QDocAttrExternalPage) + pageNode = new ExternalPageNode(parent, name); + else + pageNode = new PageNode(parent, name, ptype); + pageNode->setTitle(attributes.value(QLatin1String("title")).toString()); + + if (attributes.hasAttribute(QLatin1String("location"))) + name = attributes.value(QLatin1String("location")).toString(); + + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + name); + else if (!indexUrl.isNull()) + location = Location(name); + + node = pageNode; + + } else if (elementName == QLatin1String("enum")) { + auto *enumNode = new EnumNode(parent, name, attributes.hasAttribute("scoped")); + + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + parent->name().toLower() + ".html"); + else if (!indexUrl.isNull()) + location = Location(parent->name().toLower() + ".html"); + + while (reader.readNextStartElement()) { + QXmlStreamAttributes childAttributes = reader.attributes(); + if (reader.name() == QLatin1String("value")) { + + EnumItem item(childAttributes.value(QLatin1String("name")).toString(), + childAttributes.value(QLatin1String("value")).toString()); + enumNode->addItem(item); + } else if (reader.name() == QLatin1String("keyword")) { + insertTarget(TargetRec::Keyword, childAttributes, enumNode); + } else if (reader.name() == QLatin1String("target")) { + insertTarget(TargetRec::Target, childAttributes, enumNode); + } + reader.skipCurrentElement(); + } + + node = enumNode; + + hasReadChildren = true; + } else if (elementName == QLatin1String("typedef")) { + if (attributes.hasAttribute("aliasedtype")) + node = new TypeAliasNode(parent, name, attributes.value(QLatin1String("aliasedtype")).toString()); + else + node = new TypedefNode(parent, name); + + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + parent->name().toLower() + ".html"); + else if (!indexUrl.isNull()) + location = Location(parent->name().toLower() + ".html"); + } else if (elementName == QLatin1String("property")) { + auto *propNode = new PropertyNode(parent, name); + node = propNode; + if (attributes.value(QLatin1String("bindable")) == QLatin1String("true")) + propNode->setPropertyType(PropertyNode::Bindable); + + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + parent->name().toLower() + ".html"); + else if (!indexUrl.isNull()) + location = Location(parent->name().toLower() + ".html"); + + } else if (elementName == QLatin1String("function")) { + QString t = attributes.value(QLatin1String("meta")).toString(); + bool attached = false; + FunctionNode::Metaness metaness = FunctionNode::Plain; + if (!t.isEmpty()) + metaness = FunctionNode::getMetaness(t); + if (attributes.value(QLatin1String("attached")) == QLatin1String("true")) + attached = true; + auto *fn = new FunctionNode(metaness, parent, name, attached); + + fn->setReturnType(attributes.value(QLatin1String("type")).toString()); + + if (fn->isCppNode()) { + fn->setVirtualness(attributes.value(QLatin1String("virtual")).toString()); + fn->setConst(attributes.value(QLatin1String("const")) == QLatin1String("true")); + fn->setStatic(attributes.value(QLatin1String("static")) == QLatin1String("true")); + fn->setFinal(attributes.value(QLatin1String("final")) == QLatin1String("true")); + fn->setOverride(attributes.value(QLatin1String("override")) == QLatin1String("true")); + qsizetype refness = attributes.value(QLatin1String("refness")).toUInt(); + if (refness == 1) + fn->setRef(true); + else if (refness == 2) + fn->setRefRef(true); + /* + Theoretically, this should ensure that each function + node receives the same overload number and overload + flag it was written with, and it should be unnecessary + to call normalizeOverloads() for index nodes. + */ + if (attributes.value(QLatin1String("overload")) == QLatin1String("true")) + fn->setOverloadNumber(attributes.value(QLatin1String("overload-number")).toUInt()); + else + fn->setOverloadNumber(0); + } + + /* + Note: The "signature" attribute was written to the + index file, but it is not read back in. That is ok + because we reconstruct the parameter list and the + return type, from which the signature was built in + the first place and from which it can be rebuilt. + */ + while (reader.readNextStartElement()) { + QXmlStreamAttributes childAttributes = reader.attributes(); + if (reader.name() == QLatin1String("parameter")) { + // Do not use the default value for the parameter; it is not + // required, and has been known to cause problems. + QString type = childAttributes.value(QLatin1String("type")).toString(); + QString name = childAttributes.value(QLatin1String("name")).toString(); + fn->parameters().append(type, name); + } else if (reader.name() == QLatin1String("keyword")) { + insertTarget(TargetRec::Keyword, childAttributes, fn); + } else if (reader.name() == QLatin1String("target")) { + insertTarget(TargetRec::Target, childAttributes, fn); + } + reader.skipCurrentElement(); + } + + node = fn; + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + parent->name().toLower() + ".html"); + else if (!indexUrl.isNull()) + location = Location(parent->name().toLower() + ".html"); + + hasReadChildren = true; + } else if (elementName == QLatin1String("variable")) { + node = new VariableNode(parent, name); + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + parent->name().toLower() + ".html"); + else if (!indexUrl.isNull()) + location = Location(parent->name().toLower() + ".html"); + } else if (elementName == QLatin1String("keyword")) { + insertTarget(TargetRec::Keyword, attributes, current); + goto done; + } else if (elementName == QLatin1String("target")) { + insertTarget(TargetRec::Target, attributes, current); + goto done; + } else if (elementName == QLatin1String("contents")) { + insertTarget(TargetRec::Contents, attributes, current); + goto done; + } else if (elementName == QLatin1String("proxy")) { + node = new ProxyNode(parent, name); + if (!indexUrl.isEmpty()) + location = Location(indexUrl + QLatin1Char('/') + name.toLower() + ".html"); + else if (!indexUrl.isNull()) + location = Location(name.toLower() + ".html"); + } else { + goto done; + } + + { + if (!href.isEmpty()) { + node->setUrl(href); + // Include the index URL if it exists + if (!node->isExternalPage() && !indexUrl.isEmpty()) + node->setUrl(indexUrl + QLatin1Char('/') + href); + } + + const QString access = attributes.value(QLatin1String("access")).toString(); + if (access == "protected") + node->setAccess(Access::Protected); + else if ((access == "private") || (access == "internal")) + node->setAccess(Access::Private); + else + node->setAccess(Access::Public); + + if (attributes.hasAttribute(QLatin1String("related"))) { + node->setRelatedNonmember(true); + m_relatedNodes << node; + } + + if (attributes.hasAttribute(QLatin1String("threadsafety"))) { + QString threadSafety = attributes.value(QLatin1String("threadsafety")).toString(); + if (threadSafety == QLatin1String("non-reentrant")) + node->setThreadSafeness(Node::NonReentrant); + else if (threadSafety == QLatin1String("reentrant")) + node->setThreadSafeness(Node::Reentrant); + else if (threadSafety == QLatin1String("thread safe")) + node->setThreadSafeness(Node::ThreadSafe); + else + node->setThreadSafeness(Node::UnspecifiedSafeness); + } else + node->setThreadSafeness(Node::UnspecifiedSafeness); + + QString status = attributes.value(QLatin1String("status")).toString(); + // TODO: "obsolete" is kept for backward compatibility, remove in the near future + if (status == QLatin1String("obsolete") || status == QLatin1String("deprecated")) + node->setStatus(Node::Deprecated); + else if (status == QLatin1String("preliminary")) + node->setStatus(Node::Preliminary); + else if (status == QLatin1String("internal")) + node->setStatus(Node::Internal); + else if (status == QLatin1String("ignored")) + node->setStatus(Node::DontDocument); + else + node->setStatus(Node::Active); + + QString physicalModuleName = attributes.value(QLatin1String("module")).toString(); + if (!physicalModuleName.isEmpty()) + m_qdb->addToModule(physicalModuleName, node); + + QString since = attributes.value(QLatin1String("since")).toString(); + if (!since.isEmpty()) { + node->setSince(since); + } + + if (attributes.hasAttribute(QLatin1String("documented"))) { + if (attributes.value(QLatin1String("documented")) == QLatin1String("true")) + node->setHadDoc(); + } + + QString groupsAttr = attributes.value(QLatin1String("groups")).toString(); + if (!groupsAttr.isEmpty()) { + const QStringList groupNames = groupsAttr.split(QLatin1Char(',')); + for (const auto &group : groupNames) { + m_qdb->addToGroup(group, node); + } + } + + // Create some content for the node. + QSet emptySet; + Location t(filePath); + if (!filePath.isEmpty()) { + t.setLineNo(lineNo); + node->setLocation(t); + location = t; + } + Doc doc(location, location, QString(), emptySet, emptySet); // placeholder + node->setDoc(doc); + node->setIndexNodeFlag(); // Important: This node came from an index file. + node->setOutputSubdirectory(m_project.toLower()); + QString briefAttr = attributes.value(QLatin1String("brief")).toString(); + if (!briefAttr.isEmpty()) { + node->setReconstitutedBrief(briefAttr); + } + + if (!hasReadChildren) { + bool useParent = (elementName == QLatin1String("namespace") && name.isEmpty()); + while (reader.readNextStartElement()) { + if (useParent) + readIndexSection(reader, parent, indexUrl); + else + readIndexSection(reader, node, indexUrl); + } + } + } + +done: + while (!reader.isEndElement()) { + if (reader.readNext() == QXmlStreamReader::Invalid) { + break; + } + } +} + +void QDocIndexFiles::insertTarget(TargetRec::TargetType type, + const QXmlStreamAttributes &attributes, Node *node) +{ + int priority; + switch (type) { + case TargetRec::Keyword: + priority = 1; + break; + case TargetRec::Target: + priority = 2; + break; + case TargetRec::Contents: + priority = 3; + break; + default: + return; + } + + QString name = attributes.value(QLatin1String("name")).toString(); + QString title = attributes.value(QLatin1String("title")).toString(); + m_qdb->insertTarget(name, title, type, node, priority); +} + +/*! + This function tries to resolve class inheritance immediately + after the index file is read. It is not always possible to + resolve a class inheritance at this point, because the base + class might be in an index file that hasn't been read yet, or + it might be in one of the header files that will be read for + the current module. These cases will be resolved after all + the index files and header and source files have been read, + just prior to beginning the generate phase for the current + module. + + I don't think this is completely correct because it always + sets the access to public. + */ +void QDocIndexFiles::resolveIndex() +{ + for (const auto &pair : std::as_const(m_basesList)) { + const QStringList bases = pair.second.split(QLatin1Char(',')); + for (const auto &base : bases) { + QStringList basePath = base.split(QString("::")); + Node *n = m_qdb->findClassNode(basePath); + if (n) + pair.first->addResolvedBaseClass(Access::Public, static_cast(n)); + else + pair.first->addUnresolvedBaseClass(Access::Public, basePath); + } + } + // No longer needed. + m_basesList.clear(); +} + +static QString getAccessString(Access t) +{ + + switch (t) { + case Access::Public: + return QLatin1String("public"); + case Access::Protected: + return QLatin1String("protected"); + case Access::Private: + return QLatin1String("private"); + default: + break; + } + return QLatin1String("public"); +} + +static QString getStatusString(Node::Status t) +{ + switch (t) { + case Node::Deprecated: + return QLatin1String("deprecated"); + case Node::Preliminary: + return QLatin1String("preliminary"); + case Node::Active: + return QLatin1String("active"); + case Node::Internal: + return QLatin1String("internal"); + case Node::DontDocument: + return QLatin1String("ignored"); + default: + break; + } + return QLatin1String("active"); +} + +static QString getThreadSafenessString(Node::ThreadSafeness t) +{ + switch (t) { + case Node::NonReentrant: + return QLatin1String("non-reentrant"); + case Node::Reentrant: + return QLatin1String("reentrant"); + case Node::ThreadSafe: + return QLatin1String("thread safe"); + case Node::UnspecifiedSafeness: + default: + break; + } + return QLatin1String("unspecified"); +} + +/*! + Returns the index of \a node in the list of related non-member nodes. +*/ +int QDocIndexFiles::indexForNode(Node *node) +{ + qsizetype i = m_relatedNodes.indexOf(node); + if (i == -1) { + i = m_relatedNodes.size(); + m_relatedNodes << node; + } + return i; +} + +/*! + Adopts the related non-member node identified by \a index to the + parent \a adoptiveParent. Returns \c true if successful. +*/ +bool QDocIndexFiles::adoptRelatedNode(Aggregate *adoptiveParent, int index) +{ + Node *related = m_relatedNodes.value(index); + + if (adoptiveParent && related) { + adoptiveParent->adoptChild(related); + return true; + } + + return false; +} + +/*! + Generate the index section with the given \a writer for the \a node + specified, returning true if an element was written, and returning + false if an element is not written. + + \note Function nodes are processed in generateFunctionSection() + */ +bool QDocIndexFiles::generateIndexSection(QXmlStreamWriter &writer, Node *node, + IndexSectionWriter *post) +{ + if (m_gen == nullptr) + m_gen = Generator::currentGenerator(); + + Q_ASSERT(m_gen); + + post_ = nullptr; + /* + Don't include index nodes in a new index file. + */ + if (node->isIndexNode()) + return false; + + QString nodeName; + QString logicalModuleName; + QString logicalModuleVersion; + QString qmlFullBaseName; + QString baseNameAttr; + QString moduleNameAttr; + QString moduleVerAttr; + + switch (node->nodeType()) { + case Node::Namespace: + nodeName = "namespace"; + break; + case Node::Class: + nodeName = "class"; + break; + case Node::Struct: + nodeName = "struct"; + break; + case Node::Union: + nodeName = "union"; + break; + case Node::HeaderFile: + nodeName = "header"; + break; + case Node::QmlType: + nodeName = "qmlclass"; + if (node->logicalModule() != nullptr) + logicalModuleName = node->logicalModule()->logicalModuleName(); + baseNameAttr = "qml-base-type"; + moduleNameAttr = "qml-module-name"; + moduleVerAttr = "qml-module-version"; + qmlFullBaseName = node->qmlFullBaseName(); + break; + case Node::JsType: + nodeName = "jstype"; + baseNameAttr = "js-base-type"; + moduleNameAttr = "js-module-name"; + moduleVerAttr = "js-module-version"; + if (node->logicalModule() != nullptr) + logicalModuleName = node->logicalModule()->logicalModuleName(); + qmlFullBaseName = node->qmlFullBaseName(); + break; + case Node::QmlValueType: + nodeName = "qmlvaluetype"; + break; + case Node::JsBasicType: + nodeName = "jsbasictype"; + break; + case Node::Page: + case Node::Example: + case Node::ExternalPage: + nodeName = "page"; + break; + case Node::Group: + nodeName = "group"; + break; + case Node::Module: + nodeName = "module"; + break; + case Node::QmlModule: + nodeName = "qmlmodule"; + moduleNameAttr = "qml-module-name"; + moduleVerAttr = "qml-module-version"; + logicalModuleName = node->logicalModuleName(); + logicalModuleVersion = node->logicalModuleVersion(); + break; + case Node::JsModule: + nodeName = "jsmodule"; + moduleNameAttr = "js-module-name"; + moduleVerAttr = "js-module-version"; + logicalModuleName = node->logicalModuleName(); + logicalModuleVersion = node->logicalModuleVersion(); + break; + case Node::Enum: + nodeName = "enum"; + break; + case Node::TypeAlias: + case Node::Typedef: + nodeName = "typedef"; + break; + case Node::Property: + nodeName = "property"; + break; + case Node::Variable: + nodeName = "variable"; + break; + case Node::SharedComment: + if (!node->isPropertyGroup()) + return false; + // Add an entry for property groups so that they can be linked to + nodeName = node->genus() == Node::QML ? "qmlproperty" : "jsproperty"; + break; + case Node::QmlProperty: + nodeName = "qmlproperty"; + break; + case Node::JsProperty: + nodeName = "jsproperty"; + break; + case Node::Proxy: + nodeName = "proxy"; + break; + case Node::Function: // Now processed in generateFunctionSection() + default: + return false; + } + + QString objName = node->name(); + // Special case: only the root node should have an empty name. + if (objName.isEmpty() && node != m_qdb->primaryTreeRoot()) + return false; + + writer.writeStartElement(nodeName); + + if (!node->isTextPageNode() && !node->isCollectionNode() && !node->isHeader()) { + if (node->threadSafeness() != Node::UnspecifiedSafeness) + writer.writeAttribute("threadsafety", getThreadSafenessString(node->threadSafeness())); + } + + writer.writeAttribute("name", objName); + + // Write module and base type info for QML/JS types + if (!moduleNameAttr.isEmpty()) { + if (!logicalModuleName.isEmpty()) + writer.writeAttribute(moduleNameAttr, logicalModuleName); + else + writer.writeAttribute(moduleNameAttr, node->name()); + if (!logicalModuleVersion.isEmpty()) + writer.writeAttribute(moduleVerAttr, logicalModuleVersion); + } + if (!baseNameAttr.isEmpty() && !qmlFullBaseName.isEmpty()) + writer.writeAttribute(baseNameAttr, qmlFullBaseName); + + QString href; + if (!node->isExternalPage()) { + QString fullName = node->fullDocumentName(); + if (fullName != objName) + writer.writeAttribute("fullname", fullName); + href = m_gen->fullDocumentLocation(node); + } else + href = node->name(); + if (node->isQmlNode() || node->isJsNode()) { + Aggregate *p = node->parent(); + if (p && (p->isQmlType() || p->isJsType()) && p->isAbstract()) + href.clear(); + } + if (!href.isEmpty()) + writer.writeAttribute("href", href); + + writer.writeAttribute("status", getStatusString(node->status())); + if (!node->isTextPageNode() && !node->isCollectionNode() && !node->isHeader()) { + writer.writeAttribute("access", getAccessString(node->access())); + if (node->isAbstract()) + writer.writeAttribute("abstract", "true"); + } + const Location &declLocation = node->declLocation(); + if (!declLocation.fileName().isEmpty()) + writer.writeAttribute("location", declLocation.fileName()); + if (m_storeLocationInfo && !declLocation.filePath().isEmpty()) { + writer.writeAttribute("filepath", declLocation.filePath()); + writer.writeAttribute("lineno", QString("%1").arg(declLocation.lineNo())); + } + + if (node->isRelatedNonmember()) + writer.writeAttribute("related", QString::number(indexForNode(node))); + + if (!node->since().isEmpty()) + writer.writeAttribute("since", node->since()); + + if (node->hasDoc()) + writer.writeAttribute("documented", "true"); + + QStringList groups = m_qdb->groupNamesForNode(node); + if (!groups.isEmpty()) + writer.writeAttribute("groups", groups.join(QLatin1Char(','))); + + QString brief = node->doc().trimmedBriefText(node->name()).toString(); + switch (node->nodeType()) { + case Node::Class: + case Node::Struct: + case Node::Union: { + // Classes contain information about their base classes. + const auto *classNode = static_cast(node); + const QList &bases = classNode->baseClasses(); + QSet baseStrings; + for (const auto &related : bases) { + ClassNode *n = related.m_node; + if (n) + baseStrings.insert(n->fullName()); + else if (!related.m_path.isEmpty()) + baseStrings.insert(related.m_path.join(QLatin1String("::"))); + } + if (!baseStrings.isEmpty()) { + QStringList baseStringsAsList = baseStrings.values(); + baseStringsAsList.sort(); + writer.writeAttribute("bases", baseStringsAsList.join(QLatin1Char(','))); + } + if (!node->physicalModuleName().isEmpty()) + writer.writeAttribute("module", node->physicalModuleName()); + if (!brief.isEmpty()) + writer.writeAttribute("brief", brief); + } break; + case Node::HeaderFile: { + const auto *headerNode = static_cast(node); + if (!headerNode->physicalModuleName().isEmpty()) + writer.writeAttribute("module", headerNode->physicalModuleName()); + if (!brief.isEmpty()) + writer.writeAttribute("brief", brief); + writer.writeAttribute("title", headerNode->title()); + writer.writeAttribute("fulltitle", headerNode->fullTitle()); + writer.writeAttribute("subtitle", headerNode->subtitle()); + } break; + case Node::Namespace: { + const auto *namespaceNode = static_cast(node); + if (!namespaceNode->physicalModuleName().isEmpty()) + writer.writeAttribute("module", namespaceNode->physicalModuleName()); + if (!brief.isEmpty()) + writer.writeAttribute("brief", brief); + } break; + case Node::JsType: + case Node::QmlType: { + const auto *qmlTypeNode = static_cast(node); + writer.writeAttribute("title", qmlTypeNode->title()); + writer.writeAttribute("fulltitle", qmlTypeNode->fullTitle()); + writer.writeAttribute("subtitle", qmlTypeNode->subtitle()); + if (!brief.isEmpty()) + writer.writeAttribute("brief", brief); + } break; + case Node::Page: + case Node::Example: + case Node::ExternalPage: { + /* + Page nodes (anything that generates a doc page) + no longer have a subtype. Some of the subtypes + (Example, External, and Header) have been promoted + to be node types. They have become subclasses of + PageNode or, in the case of Header, a subclass of + Aggregate. The processing for other subtypes that + have not (yet) been promoted to be node types is + determined by the PageType enum. + */ + if (node->isExample()) + writer.writeAttribute("subtype", "example"); + else if (node->isExternalPage()) + writer.writeAttribute("subtype", "externalpage"); + else + writer.writeAttribute("subtype", + (node->pageType() == Node::AttributionPage) ? "attribution" : "page"); + + const auto *pageNode = static_cast(node); + writer.writeAttribute("title", pageNode->title()); + writer.writeAttribute("fulltitle", pageNode->fullTitle()); + writer.writeAttribute("subtitle", pageNode->subtitle()); + if (!brief.isEmpty()) + writer.writeAttribute("brief", brief); + } break; + case Node::Group: + case Node::Module: + case Node::JsModule: + case Node::QmlModule: { + const auto *collectionNode = static_cast(node); + writer.writeAttribute("seen", collectionNode->wasSeen() ? "true" : "false"); + writer.writeAttribute("title", collectionNode->title()); + if (!collectionNode->subtitle().isEmpty()) + writer.writeAttribute("subtitle", collectionNode->subtitle()); + if (!collectionNode->physicalModuleName().isEmpty()) + writer.writeAttribute("module", collectionNode->physicalModuleName()); + if (!brief.isEmpty()) + writer.writeAttribute("brief", brief); + } break; + case Node::JsProperty: + case Node::QmlProperty: { + auto *qmlPropertyNode = static_cast(node); + writer.writeAttribute("type", qmlPropertyNode->dataType()); + writer.writeAttribute("attached", qmlPropertyNode->isAttached() ? "true" : "false"); + writer.writeAttribute("writable", qmlPropertyNode->isWritable() ? "true" : "false"); + if (qmlPropertyNode->isRequired()) + writer.writeAttribute("required", "true"); + if (!brief.isEmpty()) + writer.writeAttribute("brief", brief); + } break; + case Node::Property: { + const auto *propertyNode = static_cast(node); + + if (propertyNode->propertyType() == PropertyNode::Bindable) + writer.writeAttribute("bindable", "true"); + + if (!brief.isEmpty()) + writer.writeAttribute("brief", brief); + const auto &getters = propertyNode->getters(); + for (const auto *fnNode : getters) { + if (fnNode) { + const auto *functionNode = static_cast(fnNode); + writer.writeStartElement("getter"); + writer.writeAttribute("name", functionNode->name()); + writer.writeEndElement(); // getter + } + } + const auto &setters = propertyNode->setters(); + for (const auto *fnNode : setters) { + if (fnNode) { + const auto *functionNode = static_cast(fnNode); + writer.writeStartElement("setter"); + writer.writeAttribute("name", functionNode->name()); + writer.writeEndElement(); // setter + } + } + const auto &resetters = propertyNode->resetters(); + for (const auto *fnNode : resetters) { + if (fnNode) { + const auto *functionNode = static_cast(fnNode); + writer.writeStartElement("resetter"); + writer.writeAttribute("name", functionNode->name()); + writer.writeEndElement(); // resetter + } + } + const auto ¬ifiers = propertyNode->notifiers(); + for (const auto *fnNode : notifiers) { + if (fnNode) { + const auto *functionNode = static_cast(fnNode); + writer.writeStartElement("notifier"); + writer.writeAttribute("name", functionNode->name()); + writer.writeEndElement(); // notifier + } + } + } break; + case Node::Variable: { + const auto *variableNode = static_cast(node); + writer.writeAttribute("type", variableNode->dataType()); + writer.writeAttribute("static", variableNode->isStatic() ? "true" : "false"); + if (!brief.isEmpty()) + writer.writeAttribute("brief", brief); + } break; + case Node::Enum: { + const auto *enumNode = static_cast(node); + if (enumNode->isScoped()) + writer.writeAttribute("scoped", "true"); + if (enumNode->flagsType()) + writer.writeAttribute("typedef", enumNode->flagsType()->fullDocumentName()); + const auto &items = enumNode->items(); + for (const auto &item : items) { + writer.writeStartElement("value"); + writer.writeAttribute("name", item.name()); + writer.writeAttribute("value", item.value()); + writer.writeEndElement(); // value + } + } break; + case Node::Typedef: { + const auto *typedefNode = static_cast(node); + if (typedefNode->associatedEnum()) + writer.writeAttribute("enum", typedefNode->associatedEnum()->fullDocumentName()); + } break; + case Node::TypeAlias: + writer.writeAttribute("aliasedtype", static_cast(node)->aliasedType()); + break; + case Node::Function: // Now processed in generateFunctionSection() + default: + break; + } + + /* + For our pages, we canonicalize the target, keyword and content + item names so that they can be used by qdoc for other sets of + documentation. + + The reason we do this here is that we don't want to ruin + externally composed indexes, containing non-qdoc-style target names + when reading in indexes. + + targets and keywords are now allowed in any node, not just inner nodes. + */ + + if (node->doc().hasTargets()) { + bool external = false; + if (node->isExternalPage()) + external = true; + const auto &targets = node->doc().targets(); + for (const Atom *target : targets) { + const QString &title = target->string(); + QString name = Doc::canonicalTitle(title); + writer.writeStartElement("target"); + if (!external) + writer.writeAttribute("name", name); + else + writer.writeAttribute("name", title); + if (name != title) + writer.writeAttribute("title", title); + writer.writeEndElement(); // target + } + } + if (node->doc().hasKeywords()) { + const auto &keywords = node->doc().keywords(); + for (const Atom *keyword : keywords) { + const QString &title = keyword->string(); + QString name = Doc::canonicalTitle(title); + writer.writeStartElement("keyword"); + writer.writeAttribute("name", name); + if (name != title) + writer.writeAttribute("title", title); + writer.writeEndElement(); // keyword + } + } + + /* + Some nodes have a table of contents. For these, we close + the opening tag, create sub-elements for the items in the + table of contents, and then add a closing tag for the + element. Elements for all other nodes are closed in the + opening tag. + */ + if (node->isPageNode() || node->isCollectionNode()) { + if (node->doc().hasTableOfContents()) { + for (int i = 0; i < node->doc().tableOfContents().size(); ++i) { + Atom *item = node->doc().tableOfContents()[i]; + int level = node->doc().tableOfContentsLevels()[i]; + QString title = Text::sectionHeading(item).toString(); + writer.writeStartElement("contents"); + writer.writeAttribute("name", Doc::canonicalTitle(title)); + writer.writeAttribute("title", title); + writer.writeAttribute("level", QString::number(level)); + writer.writeEndElement(); // contents + } + } + } + // WebXMLGenerator - skip the nested elements for example + // files/images, as the generator produces them separately + if (node->isExample() && m_gen->format() != QLatin1String("WebXML")) { + const auto *exampleNode = static_cast(node); + const auto &files = exampleNode->files(); + for (const QString &file : files) { + writer.writeStartElement("page"); + writer.writeAttribute("name", file); + QString href = m_gen->linkForExampleFile(file); + writer.writeAttribute("href", href); + writer.writeAttribute("status", "active"); + writer.writeAttribute("subtype", "file"); + writer.writeAttribute("title", ""); + writer.writeAttribute("fulltitle", Generator::exampleFileTitle(exampleNode, file)); + writer.writeAttribute("subtitle", file); + writer.writeEndElement(); // page + } + const auto &images = exampleNode->images(); + for (const QString &file : images) { + writer.writeStartElement("page"); + writer.writeAttribute("name", file); + QString href = m_gen->linkForExampleFile(file); + writer.writeAttribute("href", href); + writer.writeAttribute("status", "active"); + writer.writeAttribute("subtype", "image"); + writer.writeAttribute("title", ""); + writer.writeAttribute("fulltitle", Generator::exampleFileTitle(exampleNode, file)); + writer.writeAttribute("subtitle", file); + writer.writeEndElement(); // page + } + } + // Append to the section if the callback object was set + if (post) + post->append(writer, node); + + post_ = post; + return true; +} + +/*! + This function writes a element for \a fn to the + index file using \a writer. + */ +void QDocIndexFiles::generateFunctionSection(QXmlStreamWriter &writer, FunctionNode *fn) +{ + QString objName = fn->name(); + writer.writeStartElement("function"); + writer.writeAttribute("name", objName); + + QString fullName = fn->fullDocumentName(); + if (fullName != objName) + writer.writeAttribute("fullname", fullName); + QString href = m_gen->fullDocumentLocation(fn); + if (!href.isEmpty()) + writer.writeAttribute("href", href); + if (fn->threadSafeness() != Node::UnspecifiedSafeness) + writer.writeAttribute("threadsafety", getThreadSafenessString(fn->threadSafeness())); + writer.writeAttribute("status", getStatusString(fn->status())); + writer.writeAttribute("access", getAccessString(fn->access())); + + const Location &declLocation = fn->declLocation(); + if (!declLocation.fileName().isEmpty()) + writer.writeAttribute("location", declLocation.fileName()); + if (m_storeLocationInfo && !declLocation.filePath().isEmpty()) { + writer.writeAttribute("filepath", declLocation.filePath()); + writer.writeAttribute("lineno", QString("%1").arg(declLocation.lineNo())); + } + + if (fn->hasDoc()) + writer.writeAttribute("documented", "true"); + if (fn->isRelatedNonmember()) + writer.writeAttribute("related", QString::number(indexForNode(fn))); + if (!fn->since().isEmpty()) + writer.writeAttribute("since", fn->since()); + + QString brief = fn->doc().trimmedBriefText(fn->name()).toString(); + writer.writeAttribute("meta", fn->metanessString()); + if (fn->isCppNode()) { + writer.writeAttribute("virtual", fn->virtualness()); + writer.writeAttribute("const", fn->isConst() ? "true" : "false"); + writer.writeAttribute("static", fn->isStatic() ? "true" : "false"); + writer.writeAttribute("final", fn->isFinal() ? "true" : "false"); + writer.writeAttribute("override", fn->isOverride() ? "true" : "false"); + /* + This ensures that for functions that have overloads, + the first function written is the one that is not an + overload, and the overloads follow it immediately in + the index file numbered from 1 to n. + */ + if (fn->isOverload() && (fn->overloadNumber() > 0)) { + writer.writeAttribute("overload", "true"); + writer.writeAttribute("overload-number", QString::number(fn->overloadNumber())); + } + if (fn->isRef()) + writer.writeAttribute("refness", QString::number(1)); + else if (fn->isRefRef()) + writer.writeAttribute("refness", QString::number(2)); + if (fn->hasAssociatedProperties()) { + QStringList associatedProperties; + for (const auto *node : fn->associatedProperties()) { + associatedProperties << node->name(); + } + associatedProperties.sort(); + writer.writeAttribute("associated-property", + associatedProperties.join(QLatin1Char(','))); + } + } + + writer.writeAttribute("type", fn->returnType()); + + if (fn->isCppNode()) { + if (!brief.isEmpty()) + writer.writeAttribute("brief", brief); + + /* + Note: The "signature" attribute is written to the + index file, but it is not read back in by qdoc. However, + we need it for the webxml generator. + */ + QString signature = fn->signature(false, false); + // 'const' is already part of FunctionNode::signature() + if (fn->isFinal()) + signature += " final"; + if (fn->isOverride()) + signature += " override"; + if (fn->isPureVirtual()) + signature += " = 0"; + writer.writeAttribute("signature", signature); + + QStringList groups = m_qdb->groupNamesForNode(fn); + if (!groups.isEmpty()) + writer.writeAttribute("groups", groups.join(QLatin1Char(','))); + } + + for (int i = 0; i < fn->parameters().count(); ++i) { + const Parameter ¶meter = fn->parameters().at(i); + writer.writeStartElement("parameter"); + writer.writeAttribute("type", parameter.type()); + writer.writeAttribute("name", parameter.name()); + writer.writeAttribute("default", parameter.defaultValue()); + writer.writeEndElement(); // parameter + } + + // Append to the section if the callback object was set + if (post_) + post_->append(writer, fn); + + writer.writeEndElement(); // function +} + +/*! + This function outputs a element to the index file + for each FunctionNode in \a aggregate using the \a writer. + The \a aggregate has a function map that contains all the + function nodes indexed by function name. But the map is not + used as a multimap, so if the \a aggregate contains multiple + functions with the same name, only one of those functions is + in the function map index. The others are linked to that + function using the next overload pointer. + + So this function generates a element for a function + followed by a function element for each of its overloads. If a + element represents an overload, it has an \c overload + attribute set to \c true and an \c {overload-number} attribute + set to the function's overload number. If the + element does not represent an overload, the element + has neither of these attributes. + */ +void QDocIndexFiles::generateFunctionSections(QXmlStreamWriter &writer, Aggregate *aggregate) +{ + FunctionMap &functionMap = aggregate->functionMap(); + if (!functionMap.isEmpty()) { + for (auto it = functionMap.begin(); it != functionMap.end(); ++it) { + FunctionNode *fn = it.value(); + while (fn) { + if (!fn->isInternal() || Config::instance().showInternal()) + generateFunctionSection(writer, fn); + fn = fn->nextOverload(); + } + } + } +} + +/*! + Generate index sections for the child nodes of the given \a node + using the \a writer specified. +*/ +void QDocIndexFiles::generateIndexSections(QXmlStreamWriter &writer, Node *node, + IndexSectionWriter *post) +{ + /* + Note that groups, modules, and QML modules are written + after all the other nodes. + */ + if (node->isCollectionNode() || node->isGroup() || node->isModule() || node->isQmlModule() + || node->isJsModule()) + return; + + if (node->isInternal() && !Config::instance().showInternal()) + return; + + if (generateIndexSection(writer, node, post)) { + if (node->isAggregate()) { + auto *aggregate = static_cast(node); + // First write the function children, then write the nonfunction children. + generateFunctionSections(writer, aggregate); + const auto &nonFunctionList = aggregate->nonfunctionList(); + for (auto *node : nonFunctionList) + generateIndexSections(writer, node, post); + } + + if (node == root_) { + /* + We wait until the end of the index file to output the group, module, + and QML module elements. By outputting them at the end, when we read + the index file back in, all the group, module, and QML module member + elements will have already been created. It is then only necessary to + create the group, module, or QML module element and add each member to + its member list. + */ + const CNMap &groups = m_qdb->groups(); + if (!groups.isEmpty()) { + for (auto it = groups.constBegin(); it != groups.constEnd(); ++it) { + if (generateIndexSection(writer, it.value(), post)) + writer.writeEndElement(); + } + } + + const CNMap &modules = m_qdb->modules(); + if (!modules.isEmpty()) { + for (auto it = modules.constBegin(); it != modules.constEnd(); ++it) { + if (generateIndexSection(writer, it.value(), post)) + writer.writeEndElement(); + } + } + + const CNMap &qmlModules = m_qdb->qmlModules(); + if (!qmlModules.isEmpty()) { + for (auto it = qmlModules.constBegin(); it != qmlModules.constEnd(); ++it) { + if (generateIndexSection(writer, it.value(), post)) + writer.writeEndElement(); + } + } + + const CNMap &jsModules = m_qdb->jsModules(); + if (!jsModules.isEmpty()) { + for (auto it = jsModules.constBegin(); it != jsModules.constEnd(); ++it) { + if (generateIndexSection(writer, it.value(), post)) + writer.writeEndElement(); + } + } + } + + writer.writeEndElement(); + } +} + +/*! + Writes a qdoc module index in XML to a file named \a fileName. + \a url is the \c url attribute of the element. + \a title is the \c title attribute of the element. + \a g is a pointer to the current Generator in use, stored for later use. + */ +void QDocIndexFiles::generateIndex(const QString &fileName, const QString &url, + const QString &title, Generator *g) +{ + QFile file(fileName); + if (!file.open(QFile::WriteOnly | QFile::Text)) + return; + + qCDebug(lcQdoc) << "Writing index file:" << fileName; + + m_gen = g; + m_relatedNodes.clear(); + QXmlStreamWriter writer(&file); + writer.setAutoFormatting(true); + writer.writeStartDocument(); + writer.writeDTD(""); + + writer.writeStartElement("INDEX"); + writer.writeAttribute("url", url); + writer.writeAttribute("title", title); + writer.writeAttribute("version", m_qdb->version()); + writer.writeAttribute("project", Config::instance().getString(CONFIG_PROJECT)); + + root_ = m_qdb->primaryTreeRoot(); + if (!root_->tree()->indexTitle().isEmpty()) + writer.writeAttribute("indexTitle", root_->tree()->indexTitle()); + + generateIndexSections(writer, root_, nullptr); + + writer.writeEndElement(); // INDEX + writer.writeEndElement(); // QDOCINDEX + writer.writeEndDocument(); + file.close(); +} + +QT_END_NAMESPACE diff --git a/src/qdoc/qdocindexfiles.h b/src/qdoc/qdocindexfiles.h new file mode 100644 index 0000000..f669807 --- /dev/null +++ b/src/qdoc/qdocindexfiles.h @@ -0,0 +1,71 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef QDOCINDEXFILES_H +#define QDOCINDEXFILES_H + +#include "node.h" +#include "tree.h" + +QT_BEGIN_NAMESPACE + +class Atom; +class FunctionNode; +class Generator; +class QDocDatabase; +class WebXMLGenerator; +class QXmlStreamReader; +class QXmlStreamWriter; +class QXmlStreamAttributes; + +// A callback interface for extending index sections +class IndexSectionWriter +{ +public: + virtual ~IndexSectionWriter() = default; + virtual void append(QXmlStreamWriter &writer, Node *node) = 0; +}; + +class QDocIndexFiles +{ + friend class QDocDatabase; + friend class WebXMLGenerator; // for using generateIndexSections() + +private: + static QDocIndexFiles *qdocIndexFiles(); + static void destroyQDocIndexFiles(); + + QDocIndexFiles(); + ~QDocIndexFiles(); + + void readIndexes(const QStringList &indexFiles); + void readIndexFile(const QString &path); + void readIndexSection(QXmlStreamReader &reader, Node *current, const QString &indexUrl); + void insertTarget(TargetRec::TargetType type, const QXmlStreamAttributes &attributes, + Node *node); + void resolveIndex(); + int indexForNode(Node *node); + bool adoptRelatedNode(Aggregate *adoptiveParent, int index); + + void generateIndex(const QString &fileName, const QString &url, const QString &title, + Generator *g); + void generateFunctionSection(QXmlStreamWriter &writer, FunctionNode *fn); + void generateFunctionSections(QXmlStreamWriter &writer, Aggregate *aggregate); + bool generateIndexSection(QXmlStreamWriter &writer, Node *node, + IndexSectionWriter *post = nullptr); + void generateIndexSections(QXmlStreamWriter &writer, Node *node, + IndexSectionWriter *post = nullptr); + +private: + static QDocIndexFiles *s_qdocIndexFiles; + QDocDatabase *m_qdb {}; + Generator *m_gen {}; + QString m_project; + QList> m_basesList; + NodeList m_relatedNodes; + bool m_storeLocationInfo; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/qmlcodemarker.cpp b/src/qdoc/qmlcodemarker.cpp new file mode 100644 index 0000000..dbe7209 --- /dev/null +++ b/src/qdoc/qmlcodemarker.cpp @@ -0,0 +1,197 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "qmlcodemarker.h" + +#include + +#include "atom.h" +#include "node.h" +#include "qmlmarkupvisitor.h" +#include "text.h" + +#ifndef QT_NO_DECLARATIVE +# include +# include +# include +# include +# include +#endif + +QT_BEGIN_NAMESPACE + +/*! + Returns \c true if the \a code is recognized by the parser. + */ +bool QmlCodeMarker::recognizeCode(const QString &code) +{ +#ifndef QT_NO_DECLARATIVE + QQmlJS::Engine engine; + QQmlJS::Lexer lexer(&engine); + QQmlJS::Parser parser(&engine); + + QString newCode = code; + extractPragmas(newCode); + lexer.setCode(newCode, 1); + + return parser.parse(); +#else + Q_UNUSED(code); + return false; +#endif +} + +/*! + Returns \c true if \a ext is any of a list of file extensions + for the QML language. + */ +bool QmlCodeMarker::recognizeExtension(const QString &ext) +{ + return ext == "qml"; +} + +/*! + Returns \c true if the \a language is recognized. Only "QML" is + recognized by this marker. + */ +bool QmlCodeMarker::recognizeLanguage(const QString &language) +{ + return language == "QML"; +} + +/*! + Returns the type of atom used to represent QML code in the documentation. +*/ +Atom::AtomType QmlCodeMarker::atomType() const +{ + return Atom::Qml; +} + +QString QmlCodeMarker::markedUpCode(const QString &code, const Node *relative, + const Location &location) +{ + return addMarkUp(code, relative, location); +} + +/*! + Constructs and returns the marked up name for the \a node. + If the node is any kind of QML or JS function (a method, + signal, or handler), "()" is appended to the marked up name. + */ +QString QmlCodeMarker::markedUpName(const Node *node) +{ + QString name = linkTag(node, taggedNode(node)); + if (node->isFunction()) + name += "()"; + return name; +} + +QString QmlCodeMarker::markedUpIncludes(const QStringList &includes) +{ + QString code; + + for (const auto &include : includes) + code += "import " + include + QLatin1Char('\n'); + + Location location; + return addMarkUp(code, nullptr, location); +} + +QString QmlCodeMarker::addMarkUp(const QString &code, const Node * /* relative */, + const Location &location) +{ +#ifndef QT_NO_DECLARATIVE + QQmlJS::Engine engine; + QQmlJS::Lexer lexer(&engine); + + QString newCode = code; + QList pragmas = extractPragmas(newCode); + lexer.setCode(newCode, 1); + + QQmlJS::Parser parser(&engine); + QString output; + + if (parser.parse()) { + QQmlJS::AST::UiProgram *ast = parser.ast(); + // Pass the unmodified code to the visitor so that pragmas and other + // unhandled source text can be output. + QmlMarkupVisitor visitor(code, pragmas, &engine); + QQmlJS::AST::Node::accept(ast, &visitor); + if (visitor.hasError()) { + location.warning( + location.fileName() + + QStringLiteral("Unable to analyze QML snippet. The output is incomplete.")); + } + output = visitor.markedUpCode(); + } else { + location.warning(QStringLiteral("Unable to parse QML snippet: \"%1\" at line %2, column %3") + .arg(parser.errorMessage()) + .arg(parser.errorLineNumber()) + .arg(parser.errorColumnNumber())); + output = protect(code); + } + + return output; +#else + Q_UNUSED(code); + location.warning("QtDeclarative not installed; cannot parse QML or JS."); + return QString(); +#endif +} + +#ifndef QT_NO_DECLARATIVE +/* + Copied and pasted from + src/declarative/qml/qqmlscriptparser.cpp. +*/ +static void replaceWithSpace(QString &str, int idx, int n) +{ + QChar *data = str.data() + idx; + const QChar space(QLatin1Char(' ')); + for (int ii = 0; ii < n; ++ii) + *data++ = space; +} + +/* + Copied and pasted from + src/declarative/qml/qqmlscriptparser.cpp then modified to + return a list of removed pragmas. + + Searches for ".pragma " or ".import " declarations + in \a script. Currently supported pragmas are: library +*/ +QList QmlCodeMarker::extractPragmas(QString &script) +{ + QList removed; + + QQmlJS::Lexer l(nullptr); + l.setCode(script, 0); + + int token = l.lex(); + + while (true) { + if (token != QQmlJSGrammar::T_DOT) + break; + + int startOffset = l.tokenOffset(); + int startLine = l.tokenStartLine(); + int startColumn = l.tokenStartColumn(); + + token = l.lex(); + + if (token != QQmlJSGrammar::T_PRAGMA && token != QQmlJSGrammar::T_IMPORT) + break; + int endOffset = 0; + while (startLine == l.tokenStartLine()) { + endOffset = l.tokenLength() + l.tokenOffset(); + token = l.lex(); + } + replaceWithSpace(script, startOffset, endOffset - startOffset); + removed.append(QQmlJS::SourceLocation(startOffset, endOffset - startOffset, startLine, + startColumn)); + } + return removed; +} +#endif + +QT_END_NAMESPACE diff --git a/src/qdoc/qmlcodemarker.h b/src/qdoc/qmlcodemarker.h new file mode 100644 index 0000000..b24e1da --- /dev/null +++ b/src/qdoc/qmlcodemarker.h @@ -0,0 +1,42 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef QMLCODEMARKER_H +#define QMLCODEMARKER_H + +#include "cppcodemarker.h" + +#ifndef QT_NO_DECLARATIVE +# include +#endif + +QT_BEGIN_NAMESPACE + +class QmlCodeMarker : public CppCodeMarker +{ +public: + QmlCodeMarker() = default; + ~QmlCodeMarker() override = default; + + bool recognizeCode(const QString &code) override; + bool recognizeExtension(const QString &ext) override; + bool recognizeLanguage(const QString &language) override; + [[nodiscard]] Atom::AtomType atomType() const override; + QString markedUpCode(const QString &code, const Node *relative, + const Location &location) override; + + QString markedUpName(const Node *node) override; + QString markedUpIncludes(const QStringList &includes) override; + + /* Copied from src/declarative/qml/qdeclarativescriptparser.cpp */ +#ifndef QT_NO_DECLARATIVE + QList extractPragmas(QString &script); +#endif + +private: + QString addMarkUp(const QString &code, const Node *relative, const Location &location); +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/qmlcodeparser.cpp b/src/qdoc/qmlcodeparser.cpp new file mode 100644 index 0000000..ac3fbb1 --- /dev/null +++ b/src/qdoc/qmlcodeparser.cpp @@ -0,0 +1,202 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "qmlcodeparser.h" + +#include "node.h" +#include "qmlvisitor.h" + +#ifndef QT_NO_DECLARATIVE +# include +#endif +#include + +QT_BEGIN_NAMESPACE + +/*! + Constructs the QML code parser. + */ +QmlCodeParser::QmlCodeParser() +#ifndef QT_NO_DECLARATIVE + : m_lexer(nullptr), m_parser(nullptr) +#endif +{ +} + +/*! + Initializes the code parser base class. + Also creates a lexer and parser from QQmlJS. + */ +void QmlCodeParser::initializeParser() +{ + CodeParser::initializeParser(); + +#ifndef QT_NO_DECLARATIVE + m_lexer = new QQmlJS::Lexer(&m_engine); + m_parser = new QQmlJS::Parser(&m_engine); +#endif +} + +/*! + Terminates the QML code parser. Deletes the lexer and parser + created by the constructor. + */ +void QmlCodeParser::terminateParser() +{ +#ifndef QT_NO_DECLARATIVE + delete m_lexer; + delete m_parser; +#endif +} + +/*! + Returns "QML". + */ +QString QmlCodeParser::language() +{ + return "QML"; +} + +/*! + Returns a string list containing "*.qml". This is the only + file type parsed by the QMLN parser. + */ +QStringList QmlCodeParser::sourceFileNameFilter() +{ + return QStringList() << "*.qml"; +} + +/*! + Parses the source file at \a filePath and inserts the contents + into the database. The \a location is used for error reporting. + + If it can't open the file at \a filePath, it reports an error + and returns without doing anything. + */ +void QmlCodeParser::parseSourceFile(const Location &location, const QString &filePath) +{ + QFile in(filePath); + m_currentFile = filePath; + if (!in.open(QIODevice::ReadOnly)) { + location.error(QStringLiteral("Cannot open QML file '%1'").arg(filePath)); + m_currentFile.clear(); + return; + } + +#ifndef QT_NO_DECLARATIVE + QString document = in.readAll(); + in.close(); + + Location fileLocation(filePath); + + QString newCode = document; + extractPragmas(newCode); + m_lexer->setCode(newCode, 1); + + if (m_parser->parse()) { + QQmlJS::AST::UiProgram *ast = m_parser->ast(); + QmlDocVisitor visitor(filePath, newCode, &m_engine, topicCommands() + commonMetaCommands(), + topicCommands()); + QQmlJS::AST::Node::accept(ast, &visitor); + if (visitor.hasError()) { + qDebug().nospace() << qPrintable(filePath) << ": Could not analyze QML file. " + << "The output is incomplete."; + } + } + const auto &messages = m_parser->diagnosticMessages(); + for (const auto &msg : messages) { + qDebug().nospace() << qPrintable(filePath) << ':' + << msg.loc.startLine << ": QML syntax error at col " + << msg.loc.startColumn + << ": " << qPrintable(msg.message); + } + m_currentFile.clear(); +#else + location.warning("QtDeclarative not installed; cannot parse QML or JS."); +#endif +} + +static QSet topicCommands_; +/*! + Returns the set of strings representing the topic commands. + */ +const QSet &QmlCodeParser::topicCommands() +{ + if (topicCommands_.isEmpty()) { + topicCommands_ << COMMAND_VARIABLE << COMMAND_QMLCLASS << COMMAND_QMLTYPE + << COMMAND_QMLPROPERTY << COMMAND_QMLPROPERTYGROUP // mws 13/03/2019 + << COMMAND_QMLATTACHEDPROPERTY << COMMAND_QMLSIGNAL + << COMMAND_QMLATTACHEDSIGNAL << COMMAND_QMLMETHOD + << COMMAND_QMLATTACHEDMETHOD << COMMAND_QMLVALUETYPE << COMMAND_QMLBASICTYPE + << COMMAND_JSTYPE + << COMMAND_JSPROPERTY << COMMAND_JSPROPERTYGROUP // mws 13/03/2019 + << COMMAND_JSATTACHEDPROPERTY << COMMAND_JSSIGNAL << COMMAND_JSATTACHEDSIGNAL + << COMMAND_JSMETHOD << COMMAND_JSATTACHEDMETHOD << COMMAND_JSBASICTYPE; + } + return topicCommands_; +} + +#ifndef QT_NO_DECLARATIVE +/*! + Copy and paste from src/declarative/qml/qdeclarativescriptparser.cpp. + This function blanks out the section of the \a str beginning at \a idx + and running for \a n characters. +*/ +static void replaceWithSpace(QString &str, int idx, int n) +{ + QChar *data = str.data() + idx; + const QChar space(QLatin1Char(' ')); + for (int ii = 0; ii < n; ++ii) + *data++ = space; +} + +/*! + Copy & paste from src/declarative/qml/qdeclarativescriptparser.cpp, + then modified to return no values. + + Searches for ".pragma " declarations within \a script. + Currently supported pragmas are: library +*/ +void QmlCodeParser::extractPragmas(QString &script) +{ + const QString pragma(QLatin1String("pragma")); + + QQmlJS::Lexer l(nullptr); + l.setCode(script, 0); + + int token = l.lex(); + + while (true) { + if (token != QQmlJSGrammar::T_DOT) + return; + + int startOffset = l.tokenOffset(); + int startLine = l.tokenStartLine(); + + token = l.lex(); + + if (token != QQmlJSGrammar::T_IDENTIFIER || l.tokenStartLine() != startLine + || script.mid(l.tokenOffset(), l.tokenLength()) != pragma) + return; + + token = l.lex(); + + if (token != QQmlJSGrammar::T_IDENTIFIER || l.tokenStartLine() != startLine) + return; + + QString pragmaValue = script.mid(l.tokenOffset(), l.tokenLength()); + int endOffset = l.tokenLength() + l.tokenOffset(); + + token = l.lex(); + if (l.tokenStartLine() == startLine) + return; + + if (pragmaValue == QLatin1String("library")) + replaceWithSpace(script, startOffset, endOffset - startOffset); + else + return; + } +} +#endif + +QT_END_NAMESPACE diff --git a/src/qdoc/qmlcodeparser.h b/src/qdoc/qmlcodeparser.h new file mode 100644 index 0000000..206c541 --- /dev/null +++ b/src/qdoc/qmlcodeparser.h @@ -0,0 +1,52 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef QMLCODEPARSER_H +#define QMLCODEPARSER_H + +#include "codeparser.h" + +#include + +#ifndef QT_NO_DECLARATIVE +# include +# include +# include +#endif + +QT_BEGIN_NAMESPACE + +class Node; +class QString; + +class QmlCodeParser : public CodeParser +{ +public: + QmlCodeParser(); + ~QmlCodeParser() override = default; + + void initializeParser() override; + void terminateParser() override; + QString language() override; + QStringList sourceFileNameFilter() override; + void parseSourceFile(const Location &location, const QString &filePath) override; + +#ifndef QT_NO_DECLARATIVE + /* Copied from src/declarative/qml/qdeclarativescriptparser.cpp */ + void extractPragmas(QString &script); +#endif + +protected: + const QSet &topicCommands(); + +private: +#ifndef QT_NO_DECLARATIVE + QQmlJS::Engine m_engine {}; + QQmlJS::Lexer *m_lexer { nullptr }; + QQmlJS::Parser *m_parser { nullptr }; +#endif +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/qmlmarkupvisitor.cpp b/src/qdoc/qmlmarkupvisitor.cpp new file mode 100644 index 0000000..c46c60f --- /dev/null +++ b/src/qdoc/qmlmarkupvisitor.cpp @@ -0,0 +1,799 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "qmlmarkupvisitor.h" + +#include +#include + +#ifndef QT_NO_DECLARATIVE +# include +# include +#endif + +QT_BEGIN_NAMESPACE + +#ifndef QT_NO_DECLARATIVE +QmlMarkupVisitor::QmlMarkupVisitor(const QString &source, + const QList &pragmas, + QQmlJS::Engine *engine) +{ + this->m_source = source; + this->m_engine = engine; + + m_cursor = 0; + m_extraIndex = 0; + + // Merge the lists of locations of pragmas and comments in the source code. + int i = 0; + int j = 0; + const QList comments = engine->comments(); + while (i < comments.size() && j < pragmas.size()) { + if (comments[i].offset < pragmas[j].offset) { + m_extraTypes.append(Comment); + m_extraLocations.append(comments[i]); + ++i; + } else { + m_extraTypes.append(Pragma); + m_extraLocations.append(comments[j]); + ++j; + } + } + + while (i < comments.size()) { + m_extraTypes.append(Comment); + m_extraLocations.append(comments[i]); + ++i; + } + + while (j < pragmas.size()) { + m_extraTypes.append(Pragma); + m_extraLocations.append(pragmas[j]); + ++j; + } +} + +// The protect() function is a copy of the one from CppCodeMarker. + +static const QString samp = QLatin1String("&"); +static const QString slt = QLatin1String("<"); +static const QString sgt = QLatin1String(">"); +static const QString squot = QLatin1String("""); + +QString QmlMarkupVisitor::protect(const QString &str) +{ + qsizetype n = str.size(); + QString marked; + marked.reserve(n * 2 + 30); + const QChar *data = str.constData(); + for (int i = 0; i != n; ++i) { + switch (data[i].unicode()) { + case '&': + marked += samp; + break; + case '<': + marked += slt; + break; + case '>': + marked += sgt; + break; + case '"': + marked += squot; + break; + default: + marked += data[i]; + } + } + return marked; +} + +QString QmlMarkupVisitor::markedUpCode() +{ + if (int(m_cursor) < m_source.size()) + addExtra(m_cursor, m_source.size()); + + return m_output; +} + +bool QmlMarkupVisitor::hasError() const +{ + return m_hasRecursionDepthError; +} + +void QmlMarkupVisitor::addExtra(quint32 start, quint32 finish) +{ + if (m_extraIndex >= m_extraLocations.size()) { + QString extra = m_source.mid(start, finish - start); + if (extra.trimmed().isEmpty()) + m_output += extra; + else + m_output += protect(extra); // text that should probably have been caught by the parser + + m_cursor = finish; + return; + } + + while (m_extraIndex < m_extraLocations.size()) { + if (m_extraTypes[m_extraIndex] == Comment) { + if (m_extraLocations[m_extraIndex].offset - 2 >= start) + break; + } else { + if (m_extraLocations[m_extraIndex].offset >= start) + break; + } + m_extraIndex++; + } + + quint32 i = start; + while (i < finish && m_extraIndex < m_extraLocations.size()) { + quint32 j = m_extraLocations[m_extraIndex].offset - 2; + if (i <= j && j < finish) { + if (i < j) + m_output += protect(m_source.mid(i, j - i)); + + quint32 l = m_extraLocations[m_extraIndex].length; + if (m_extraTypes[m_extraIndex] == Comment) { + if (m_source.mid(j, 2) == QLatin1String("/*")) + l += 4; + else + l += 2; + m_output += QLatin1String("<@comment>"); + m_output += protect(m_source.mid(j, l)); + m_output += QLatin1String(""); + } else + m_output += protect(m_source.mid(j, l)); + + m_extraIndex++; + i = j + l; + } else + break; + } + + QString extra = m_source.mid(i, finish - i); + if (extra.trimmed().isEmpty()) + m_output += extra; + else + m_output += protect(extra); // text that should probably have been caught by the parser + + m_cursor = finish; +} + +void QmlMarkupVisitor::addMarkedUpToken(QQmlJS::SourceLocation &location, + const QString &tagName, + const QHash &attributes) +{ + if (!location.isValid()) + return; + + if (m_cursor < location.offset) + addExtra(m_cursor, location.offset); + else if (m_cursor > location.offset) + return; + + m_output += QString(QLatin1String("<@%1")).arg(tagName); + for (const auto &key : attributes) + m_output += QString(QLatin1String(" %1=\"%2\"")).arg(key, attributes[key]); + m_output += QString(QLatin1String(">%2")).arg(protect(sourceText(location)), tagName); + m_cursor += location.length; +} + +QString QmlMarkupVisitor::sourceText(QQmlJS::SourceLocation &location) +{ + return m_source.mid(location.offset, location.length); +} + +void QmlMarkupVisitor::addVerbatim(QQmlJS::SourceLocation first, + QQmlJS::SourceLocation last) +{ + if (!first.isValid()) + return; + + quint32 start = first.begin(); + quint32 finish; + if (last.isValid()) + finish = last.end(); + else + finish = first.end(); + + if (m_cursor < start) + addExtra(m_cursor, start); + else if (m_cursor > start) + return; + + QString text = m_source.mid(start, finish - start); + m_output += protect(text); + m_cursor = finish; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::UiImport *uiimport) +{ + addVerbatim(uiimport->importToken); + if (!uiimport->importUri) + addMarkedUpToken(uiimport->fileNameToken, QLatin1String("headerfile")); + return false; +} + +void QmlMarkupVisitor::endVisit(QQmlJS::AST::UiImport *uiimport) +{ + if (uiimport->version) + addVerbatim(uiimport->version->firstSourceLocation(), + uiimport->version->lastSourceLocation()); + addVerbatim(uiimport->asToken); + addMarkedUpToken(uiimport->importIdToken, QLatin1String("headerfile")); + addVerbatim(uiimport->semicolonToken); +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::UiPublicMember *member) +{ + if (member->type == QQmlJS::AST::UiPublicMember::Property) { + addVerbatim(member->defaultToken()); + addVerbatim(member->readonlyToken()); + addVerbatim(member->propertyToken()); + addVerbatim(member->typeModifierToken); + addMarkedUpToken(member->typeToken, QLatin1String("type")); + addMarkedUpToken(member->identifierToken, QLatin1String("name")); + addVerbatim(member->colonToken); + if (member->binding) + QQmlJS::AST::Node::accept(member->binding, this); + else if (member->statement) + QQmlJS::AST::Node::accept(member->statement, this); + } else { + addVerbatim(member->propertyToken()); + addVerbatim(member->typeModifierToken); + addMarkedUpToken(member->typeToken, QLatin1String("type")); + // addVerbatim(member->identifierToken()); + QQmlJS::AST::Node::accept(member->parameters, this); + } + addVerbatim(member->semicolonToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::UiObjectInitializer *initializer) +{ + addVerbatim(initializer->lbraceToken, initializer->lbraceToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QQmlJS::AST::UiObjectInitializer *initializer) +{ + addVerbatim(initializer->rbraceToken, initializer->rbraceToken); +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::UiObjectBinding *binding) +{ + QQmlJS::AST::Node::accept(binding->qualifiedId, this); + addVerbatim(binding->colonToken); + QQmlJS::AST::Node::accept(binding->qualifiedTypeNameId, this); + QQmlJS::AST::Node::accept(binding->initializer, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::UiScriptBinding *binding) +{ + QQmlJS::AST::Node::accept(binding->qualifiedId, this); + addVerbatim(binding->colonToken); + QQmlJS::AST::Node::accept(binding->statement, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::UiArrayBinding *binding) +{ + QQmlJS::AST::Node::accept(binding->qualifiedId, this); + addVerbatim(binding->colonToken); + addVerbatim(binding->lbracketToken); + QQmlJS::AST::Node::accept(binding->members, this); + addVerbatim(binding->rbracketToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::UiArrayMemberList *list) +{ + for (QQmlJS::AST::UiArrayMemberList *it = list; it; it = it->next) { + QQmlJS::AST::Node::accept(it->member, this); + // addVerbatim(it->commaToken); + } + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::UiQualifiedId *id) +{ + addMarkedUpToken(id->identifierToken, QLatin1String("name")); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::ThisExpression *expression) +{ + addVerbatim(expression->thisToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::IdentifierExpression *identifier) +{ + addMarkedUpToken(identifier->identifierToken, QLatin1String("name")); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::NullExpression *null) +{ + addMarkedUpToken(null->nullToken, QLatin1String("number")); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::TrueLiteral *literal) +{ + addMarkedUpToken(literal->trueToken, QLatin1String("number")); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::FalseLiteral *literal) +{ + addMarkedUpToken(literal->falseToken, QLatin1String("number")); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::NumericLiteral *literal) +{ + addMarkedUpToken(literal->literalToken, QLatin1String("number")); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::StringLiteral *literal) +{ + addMarkedUpToken(literal->literalToken, QLatin1String("string")); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::RegExpLiteral *literal) +{ + addVerbatim(literal->literalToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::ArrayPattern *literal) +{ + addVerbatim(literal->lbracketToken); + QQmlJS::AST::Node::accept(literal->elements, this); + addVerbatim(literal->rbracketToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::ObjectPattern *literal) +{ + addVerbatim(literal->lbraceToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QQmlJS::AST::ObjectPattern *literal) +{ + addVerbatim(literal->rbraceToken); +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::PatternElementList *list) +{ + for (QQmlJS::AST::PatternElementList *it = list; it; it = it->next) { + QQmlJS::AST::Node::accept(it->element, this); + // addVerbatim(it->commaToken); + } + QQmlJS::AST::Node::accept(list->elision, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::Elision *elision) +{ + addVerbatim(elision->commaToken, elision->commaToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::PatternProperty *list) +{ + QQmlJS::AST::Node::accept(list->name, this); + addVerbatim(list->colonToken, list->colonToken); + QQmlJS::AST::Node::accept(list->initializer, this); + // addVerbatim(list->commaToken, list->commaToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::ArrayMemberExpression *expression) +{ + QQmlJS::AST::Node::accept(expression->base, this); + addVerbatim(expression->lbracketToken); + QQmlJS::AST::Node::accept(expression->expression, this); + addVerbatim(expression->rbracketToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::FieldMemberExpression *expression) +{ + QQmlJS::AST::Node::accept(expression->base, this); + addVerbatim(expression->dotToken); + addMarkedUpToken(expression->identifierToken, QLatin1String("name")); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::NewMemberExpression *expression) +{ + addVerbatim(expression->newToken); + QQmlJS::AST::Node::accept(expression->base, this); + addVerbatim(expression->lparenToken); + QQmlJS::AST::Node::accept(expression->arguments, this); + addVerbatim(expression->rparenToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::NewExpression *expression) +{ + addVerbatim(expression->newToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::ArgumentList *list) +{ + addVerbatim(list->commaToken, list->commaToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::PostIncrementExpression *expression) +{ + addVerbatim(expression->incrementToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::PostDecrementExpression *expression) +{ + addVerbatim(expression->decrementToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::DeleteExpression *expression) +{ + addVerbatim(expression->deleteToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::VoidExpression *expression) +{ + addVerbatim(expression->voidToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::TypeOfExpression *expression) +{ + addVerbatim(expression->typeofToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::PreIncrementExpression *expression) +{ + addVerbatim(expression->incrementToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::PreDecrementExpression *expression) +{ + addVerbatim(expression->decrementToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::UnaryPlusExpression *expression) +{ + addVerbatim(expression->plusToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::UnaryMinusExpression *expression) +{ + addVerbatim(expression->minusToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::TildeExpression *expression) +{ + addVerbatim(expression->tildeToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::NotExpression *expression) +{ + addVerbatim(expression->notToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::BinaryExpression *expression) +{ + QQmlJS::AST::Node::accept(expression->left, this); + addMarkedUpToken(expression->operatorToken, QLatin1String("op")); + QQmlJS::AST::Node::accept(expression->right, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::ConditionalExpression *expression) +{ + QQmlJS::AST::Node::accept(expression->expression, this); + addVerbatim(expression->questionToken); + QQmlJS::AST::Node::accept(expression->ok, this); + addVerbatim(expression->colonToken); + QQmlJS::AST::Node::accept(expression->ko, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::Expression *expression) +{ + QQmlJS::AST::Node::accept(expression->left, this); + addVerbatim(expression->commaToken); + QQmlJS::AST::Node::accept(expression->right, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::Block *block) +{ + addVerbatim(block->lbraceToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QQmlJS::AST::Block *block) +{ + addVerbatim(block->rbraceToken); +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::VariableStatement *statement) +{ + addVerbatim(statement->declarationKindToken); + QQmlJS::AST::Node::accept(statement->declarations, this); + // addVerbatim(statement->semicolonToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::VariableDeclarationList *list) +{ + for (QQmlJS::AST::VariableDeclarationList *it = list; it; it = it->next) { + QQmlJS::AST::Node::accept(it->declaration, this); + addVerbatim(it->commaToken); + } + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::EmptyStatement *statement) +{ + addVerbatim(statement->semicolonToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::ExpressionStatement *statement) +{ + QQmlJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->semicolonToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::IfStatement *statement) +{ + addMarkedUpToken(statement->ifToken, QLatin1String("keyword")); + addVerbatim(statement->lparenToken); + QQmlJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + QQmlJS::AST::Node::accept(statement->ok, this); + if (statement->ko) { + addMarkedUpToken(statement->elseToken, QLatin1String("keyword")); + QQmlJS::AST::Node::accept(statement->ko, this); + } + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::DoWhileStatement *statement) +{ + addMarkedUpToken(statement->doToken, QLatin1String("keyword")); + QQmlJS::AST::Node::accept(statement->statement, this); + addMarkedUpToken(statement->whileToken, QLatin1String("keyword")); + addVerbatim(statement->lparenToken); + QQmlJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + addVerbatim(statement->semicolonToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::WhileStatement *statement) +{ + addMarkedUpToken(statement->whileToken, QLatin1String("keyword")); + addVerbatim(statement->lparenToken); + QQmlJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + QQmlJS::AST::Node::accept(statement->statement, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::ForStatement *statement) +{ + addMarkedUpToken(statement->forToken, QLatin1String("keyword")); + addVerbatim(statement->lparenToken); + QQmlJS::AST::Node::accept(statement->initialiser, this); + addVerbatim(statement->firstSemicolonToken); + QQmlJS::AST::Node::accept(statement->condition, this); + addVerbatim(statement->secondSemicolonToken); + QQmlJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + QQmlJS::AST::Node::accept(statement->statement, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::ForEachStatement *statement) +{ + addMarkedUpToken(statement->forToken, QLatin1String("keyword")); + addVerbatim(statement->lparenToken); + QQmlJS::AST::Node::accept(statement->lhs, this); + addVerbatim(statement->inOfToken); + QQmlJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + QQmlJS::AST::Node::accept(statement->statement, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::ContinueStatement *statement) +{ + addMarkedUpToken(statement->continueToken, QLatin1String("keyword")); + addMarkedUpToken(statement->identifierToken, QLatin1String("name")); + addVerbatim(statement->semicolonToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::BreakStatement *statement) +{ + addMarkedUpToken(statement->breakToken, QLatin1String("keyword")); + addMarkedUpToken(statement->identifierToken, QLatin1String("name")); + addVerbatim(statement->semicolonToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::ReturnStatement *statement) +{ + addMarkedUpToken(statement->returnToken, QLatin1String("keyword")); + QQmlJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->semicolonToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::WithStatement *statement) +{ + addMarkedUpToken(statement->withToken, QLatin1String("keyword")); + addVerbatim(statement->lparenToken); + QQmlJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + QQmlJS::AST::Node::accept(statement->statement, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::CaseBlock *block) +{ + addVerbatim(block->lbraceToken); + return true; +} + +void QmlMarkupVisitor::endVisit(QQmlJS::AST::CaseBlock *block) +{ + addVerbatim(block->rbraceToken, block->rbraceToken); +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::SwitchStatement *statement) +{ + addMarkedUpToken(statement->switchToken, QLatin1String("keyword")); + addVerbatim(statement->lparenToken); + QQmlJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->rparenToken); + QQmlJS::AST::Node::accept(statement->block, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::CaseClause *clause) +{ + addMarkedUpToken(clause->caseToken, QLatin1String("keyword")); + QQmlJS::AST::Node::accept(clause->expression, this); + addVerbatim(clause->colonToken); + QQmlJS::AST::Node::accept(clause->statements, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::DefaultClause *clause) +{ + addMarkedUpToken(clause->defaultToken, QLatin1String("keyword")); + addVerbatim(clause->colonToken, clause->colonToken); + return true; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::LabelledStatement *statement) +{ + addMarkedUpToken(statement->identifierToken, QLatin1String("name")); + addVerbatim(statement->colonToken); + QQmlJS::AST::Node::accept(statement->statement, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::ThrowStatement *statement) +{ + addMarkedUpToken(statement->throwToken, QLatin1String("keyword")); + QQmlJS::AST::Node::accept(statement->expression, this); + addVerbatim(statement->semicolonToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::Catch *c) +{ + addMarkedUpToken(c->catchToken, QLatin1String("keyword")); + addVerbatim(c->lparenToken); + addMarkedUpToken(c->identifierToken, QLatin1String("name")); + addVerbatim(c->rparenToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::Finally *f) +{ + addMarkedUpToken(f->finallyToken, QLatin1String("keyword")); + QQmlJS::AST::Node::accept(f->statement, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::TryStatement *statement) +{ + addMarkedUpToken(statement->tryToken, QLatin1String("keyword")); + QQmlJS::AST::Node::accept(statement->statement, this); + QQmlJS::AST::Node::accept(statement->catchExpression, this); + QQmlJS::AST::Node::accept(statement->finallyExpression, this); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::FunctionExpression *expression) +{ + addMarkedUpToken(expression->functionToken, QLatin1String("keyword")); + addMarkedUpToken(expression->identifierToken, QLatin1String("name")); + addVerbatim(expression->lparenToken); + QQmlJS::AST::Node::accept(expression->formals, this); + addVerbatim(expression->rparenToken); + addVerbatim(expression->lbraceToken); + QQmlJS::AST::Node::accept(expression->body, this); + addVerbatim(expression->rbraceToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::FunctionDeclaration *declaration) +{ + addMarkedUpToken(declaration->functionToken, QLatin1String("keyword")); + addMarkedUpToken(declaration->identifierToken, QLatin1String("name")); + addVerbatim(declaration->lparenToken); + QQmlJS::AST::Node::accept(declaration->formals, this); + addVerbatim(declaration->rparenToken); + addVerbatim(declaration->lbraceToken); + QQmlJS::AST::Node::accept(declaration->body, this); + addVerbatim(declaration->rbraceToken); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::FormalParameterList *list) +{ + // addVerbatim(list->commaToken); + QQmlJS::AST::Node::accept(list->element, this); + // addMarkedUpToken(list->identifierToken, QLatin1String("name")); + return false; +} + +bool QmlMarkupVisitor::visit(QQmlJS::AST::DebuggerStatement *statement) +{ + addVerbatim(statement->debuggerToken); + addVerbatim(statement->semicolonToken); + return true; +} + +// Elements and items are represented by UiObjectDefinition nodes. + +bool QmlMarkupVisitor::visit(QQmlJS::AST::UiObjectDefinition *definition) +{ + addMarkedUpToken(definition->qualifiedTypeNameId->identifierToken, QLatin1String("type")); + QQmlJS::AST::Node::accept(definition->initializer, this); + return false; +} + +void QmlMarkupVisitor::throwRecursionDepthError() +{ + m_hasRecursionDepthError = true; +} + +#endif + +QT_END_NAMESPACE diff --git a/src/qdoc/qmlmarkupvisitor.h b/src/qdoc/qmlmarkupvisitor.h new file mode 100644 index 0000000..9c05d4e --- /dev/null +++ b/src/qdoc/qmlmarkupvisitor.h @@ -0,0 +1,142 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef QMLMARKUPVISITOR_H +#define QMLMARKUPVISITOR_H + +#include "node.h" +#include "tree.h" + +#include + +#ifndef QT_NO_DECLARATIVE +# include +# include + +QT_BEGIN_NAMESPACE + +class QmlMarkupVisitor : public QQmlJS::AST::Visitor +{ +public: + enum ExtraType { Comment, Pragma }; + + QmlMarkupVisitor(const QString &code, const QList &pragmas, + QQmlJS::Engine *engine); + ~QmlMarkupVisitor() override = default; + + QString markedUpCode(); + [[nodiscard]] bool hasError() const; + + bool visit(QQmlJS::AST::UiImport *) override; + void endVisit(QQmlJS::AST::UiImport *) override; + + bool visit(QQmlJS::AST::UiPublicMember *) override; + bool visit(QQmlJS::AST::UiObjectDefinition *) override; + + bool visit(QQmlJS::AST::UiObjectInitializer *) override; + void endVisit(QQmlJS::AST::UiObjectInitializer *) override; + + bool visit(QQmlJS::AST::UiObjectBinding *) override; + bool visit(QQmlJS::AST::UiScriptBinding *) override; + bool visit(QQmlJS::AST::UiArrayBinding *) override; + bool visit(QQmlJS::AST::UiArrayMemberList *) override; + bool visit(QQmlJS::AST::UiQualifiedId *) override; + + bool visit(QQmlJS::AST::ThisExpression *) override; + bool visit(QQmlJS::AST::IdentifierExpression *) override; + bool visit(QQmlJS::AST::NullExpression *) override; + bool visit(QQmlJS::AST::TrueLiteral *) override; + bool visit(QQmlJS::AST::FalseLiteral *) override; + bool visit(QQmlJS::AST::NumericLiteral *) override; + bool visit(QQmlJS::AST::StringLiteral *) override; + bool visit(QQmlJS::AST::RegExpLiteral *) override; + bool visit(QQmlJS::AST::ArrayPattern *) override; + + bool visit(QQmlJS::AST::ObjectPattern *) override; + void endVisit(QQmlJS::AST::ObjectPattern *) override; + + bool visit(QQmlJS::AST::PatternElementList *) override; + bool visit(QQmlJS::AST::Elision *) override; + bool visit(QQmlJS::AST::PatternProperty *) override; + bool visit(QQmlJS::AST::ArrayMemberExpression *) override; + bool visit(QQmlJS::AST::FieldMemberExpression *) override; + bool visit(QQmlJS::AST::NewMemberExpression *) override; + bool visit(QQmlJS::AST::NewExpression *) override; + bool visit(QQmlJS::AST::ArgumentList *) override; + bool visit(QQmlJS::AST::PostIncrementExpression *) override; + bool visit(QQmlJS::AST::PostDecrementExpression *) override; + bool visit(QQmlJS::AST::DeleteExpression *) override; + bool visit(QQmlJS::AST::VoidExpression *) override; + bool visit(QQmlJS::AST::TypeOfExpression *) override; + bool visit(QQmlJS::AST::PreIncrementExpression *) override; + bool visit(QQmlJS::AST::PreDecrementExpression *) override; + bool visit(QQmlJS::AST::UnaryPlusExpression *) override; + bool visit(QQmlJS::AST::UnaryMinusExpression *) override; + bool visit(QQmlJS::AST::TildeExpression *) override; + bool visit(QQmlJS::AST::NotExpression *) override; + bool visit(QQmlJS::AST::BinaryExpression *) override; + bool visit(QQmlJS::AST::ConditionalExpression *) override; + bool visit(QQmlJS::AST::Expression *) override; + + bool visit(QQmlJS::AST::Block *) override; + void endVisit(QQmlJS::AST::Block *) override; + + bool visit(QQmlJS::AST::VariableStatement *) override; + bool visit(QQmlJS::AST::VariableDeclarationList *) override; + bool visit(QQmlJS::AST::EmptyStatement *) override; + bool visit(QQmlJS::AST::ExpressionStatement *) override; + bool visit(QQmlJS::AST::IfStatement *) override; + bool visit(QQmlJS::AST::DoWhileStatement *) override; + bool visit(QQmlJS::AST::WhileStatement *) override; + bool visit(QQmlJS::AST::ForStatement *) override; + bool visit(QQmlJS::AST::ForEachStatement *) override; + bool visit(QQmlJS::AST::ContinueStatement *) override; + bool visit(QQmlJS::AST::BreakStatement *) override; + bool visit(QQmlJS::AST::ReturnStatement *) override; + bool visit(QQmlJS::AST::WithStatement *) override; + + bool visit(QQmlJS::AST::CaseBlock *) override; + void endVisit(QQmlJS::AST::CaseBlock *) override; + + bool visit(QQmlJS::AST::SwitchStatement *) override; + bool visit(QQmlJS::AST::CaseClause *) override; + bool visit(QQmlJS::AST::DefaultClause *) override; + bool visit(QQmlJS::AST::LabelledStatement *) override; + bool visit(QQmlJS::AST::ThrowStatement *) override; + bool visit(QQmlJS::AST::TryStatement *) override; + bool visit(QQmlJS::AST::Catch *) override; + bool visit(QQmlJS::AST::Finally *) override; + bool visit(QQmlJS::AST::FunctionDeclaration *) override; + bool visit(QQmlJS::AST::FunctionExpression *) override; + bool visit(QQmlJS::AST::FormalParameterList *) override; + bool visit(QQmlJS::AST::DebuggerStatement *) override; + +protected: + QString protect(const QString &string); + +private: + typedef QHash StringHash; + void addExtra(quint32 start, quint32 finish); + void addMarkedUpToken(QQmlJS::SourceLocation &location, const QString &text, + const StringHash &attributes = StringHash()); + void addVerbatim(QQmlJS::SourceLocation first, + QQmlJS::SourceLocation last = QQmlJS::SourceLocation()); + QString sourceText(QQmlJS::SourceLocation &location); + void throwRecursionDepthError() final; + + QQmlJS::Engine *m_engine { nullptr }; + QList m_extraTypes {}; + QList m_extraLocations {}; + QString m_source {}; + QString m_output {}; + quint32 m_cursor {}; + int m_extraIndex {}; + bool m_hasRecursionDepthError { false }; +}; +Q_DECLARE_TYPEINFO(QmlMarkupVisitor::ExtraType, Q_PRIMITIVE_TYPE); + +QT_END_NAMESPACE + +#endif + +#endif diff --git a/src/qdoc/qmlpropertynode.cpp b/src/qdoc/qmlpropertynode.cpp new file mode 100644 index 0000000..ef660b1 --- /dev/null +++ b/src/qdoc/qmlpropertynode.cpp @@ -0,0 +1,125 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "qmlpropertynode.h" + +#include "classnode.h" +#include "propertynode.h" + +#include +#include "qdocdatabase.h" +#include "utilities.h" + +QT_BEGIN_NAMESPACE + +/*! + Constructor for the QML property node. + */ +QmlPropertyNode::QmlPropertyNode(Aggregate *parent, const QString &name, QString type, + bool attached) + : Node(parent->isJsType() ? JsProperty : QmlProperty, parent, name), + m_type(std::move(type)), + m_attached(attached) +{ + if (m_type == "alias") + m_isAlias = true; + if (name.startsWith("__")) + setStatus(Internal); +} + +/*! + Returns \c true if a QML property or attached property is + not read-only. If the read-only status is not set explicitly + using the \\readonly command, QDoc attempts to resolve it + from the associated C++ class instantiated by the QML type + that this property belongs to. + + \note Depending on how the QML type is implemented, this + information may not be available to QDoc. If so, add a debug + line but do not treat it as a warning. + */ +bool QmlPropertyNode::isWritable() +{ + if (readOnly_ != FlagValueDefault) + return !fromFlagValue(readOnly_, false); + + QmlTypeNode *qcn = qmlTypeNode(); + if (qcn && qcn->classNode()) { + PropertyNode *pn = findCorrespondingCppProperty(); + if (pn) + return pn->isWritable(); + else + qCDebug(lcQdoc).nospace() + << qPrintable(defLocation().toString()) + << ": Automatic resolution of QML property attributes failed for " + << name() + << " (Q_PROPERTY not found in the C++ class hierarchy known to QDoc. " + << "Likely, the type is replaced with a private implementation.)"; +} + return true; +} + +/*! + Returns \c true if this QML property is marked with \required or the + corresponding C++ property uses the REQUIRED keyword. +*/ +bool QmlPropertyNode::isRequired() +{ + if (m_required != FlagValueDefault) + return fromFlagValue(m_required, false); + + PropertyNode *pn = findCorrespondingCppProperty(); + return pn != nullptr && pn->isRequired(); +} + +/*! + Returns a pointer this QML property's corresponding C++ + property, if it has one. + */ +PropertyNode *QmlPropertyNode::findCorrespondingCppProperty() +{ + PropertyNode *pn; + Node *n = parent(); + while (n && !(n->isQmlType() || n->isJsType())) + n = n->parent(); + if (n) { + auto *qcn = static_cast(n); + ClassNode *cn = qcn->classNode(); + if (cn) { + /* + If there is a dot in the property name, first + find the C++ property corresponding to the QML + property group. + */ + QStringList dotSplit = name().split(QChar('.')); + pn = cn->findPropertyNode(dotSplit[0]); + if (pn) { + /* + Now find the C++ property corresponding to + the QML property in the QML property group, + .. + */ + if (dotSplit.size() > 1) { + QStringList path(extractClassName(pn->qualifiedDataType())); + Node *nn = QDocDatabase::qdocDB()->findClassNode(path); + if (nn) { + auto *cn = static_cast(nn); + PropertyNode *pn2 = cn->findPropertyNode(dotSplit[1]); + /* + If found, return the C++ property + corresponding to the QML property. + Otherwise, return the C++ property + corresponding to the QML property + group. + */ + return (pn2 ? pn2 : pn); + } + } else + return pn; + } + } + } + return nullptr; +} + +QT_END_NAMESPACE diff --git a/src/qdoc/qmlpropertynode.h b/src/qdoc/qmlpropertynode.h new file mode 100644 index 0000000..614e379 --- /dev/null +++ b/src/qdoc/qmlpropertynode.h @@ -0,0 +1,72 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef QMLPROPERTYNODE_H +#define QMLPROPERTYNODE_H + +#include "aggregate.h" +#include "node.h" + +#include +#include + +QT_BEGIN_NAMESPACE + +class QmlPropertyNode : public Node +{ +public: + QmlPropertyNode(Aggregate *parent, const QString &name, QString type, bool attached); + + void setDataType(const QString &dataType) override { m_type = dataType; } + void setStored(bool stored) { m_stored = toFlagValue(stored); } + void setDefaultValue(const QString &value) { m_defaultValue = value; } + void setDesignable(bool designable) { m_designable = toFlagValue(designable); } + void setRequired() { m_required = toFlagValue(true); } + + [[nodiscard]] const QString &dataType() const { return m_type; } + [[nodiscard]] const QString &defaultValue() const { return m_defaultValue; } + [[nodiscard]] bool isReadOnlySet() const { return (readOnly_ != FlagValueDefault); } + [[nodiscard]] bool isStored() const { return fromFlagValue(m_stored, true); } + bool isWritable(); + bool isRequired(); + [[nodiscard]] bool isDefault() const override { return m_isDefault; } + [[nodiscard]] bool isReadOnly() const override { return fromFlagValue(readOnly_, false); } + [[nodiscard]] bool isAlias() const override { return m_isAlias; } + [[nodiscard]] bool isAttached() const override { return m_attached; } + [[nodiscard]] bool isQtQuickNode() const override { return parent()->isQtQuickNode(); } + [[nodiscard]] QString qmlTypeName() const override { return parent()->qmlTypeName(); } + [[nodiscard]] QString logicalModuleName() const override + { + return parent()->logicalModuleName(); + } + [[nodiscard]] QString logicalModuleVersion() const override + { + return parent()->logicalModuleVersion(); + } + [[nodiscard]] QString logicalModuleIdentifier() const override + { + return parent()->logicalModuleIdentifier(); + } + [[nodiscard]] QString element() const override { return parent()->name(); } + + void markDefault() override { m_isDefault = true; } + void markReadOnly(bool flag) override { readOnly_ = toFlagValue(flag); } + +private: + PropertyNode *findCorrespondingCppProperty(); + +private: + QString m_type {}; + QString m_defaultValue {}; + FlagValue m_stored { FlagValueDefault }; + FlagValue m_designable { FlagValueDefault }; + bool m_isAlias { false }; + bool m_isDefault { false }; + bool m_attached {}; + FlagValue readOnly_ { FlagValueDefault }; + FlagValue m_required { FlagValueDefault }; +}; + +QT_END_NAMESPACE + +#endif // QMLPROPERTYNODE_H diff --git a/src/qdoc/qmltypenode.cpp b/src/qdoc/qmltypenode.cpp new file mode 100644 index 0000000..5f02b64 --- /dev/null +++ b/src/qdoc/qmltypenode.cpp @@ -0,0 +1,164 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "qmltypenode.h" +#include "collectionnode.h" +#include "qdocdatabase.h" + +#include + +QT_BEGIN_NAMESPACE + +QMultiMap QmlTypeNode::s_inheritedBy; + +/*! + Constructs a Qml type node or a Js type node depending on + the value of \a type, which is Node::QmlType by default, + but which can also be Node::JsType. The new node has the + given \a parent and \a name. + */ +QmlTypeNode::QmlTypeNode(Aggregate *parent, const QString &name, NodeType type) + : Aggregate(type, parent, name) +{ + setTitle(name); +} + +/*! + Clear the static maps so that subsequent runs don't try to use + contents from a previous run. + */ +void QmlTypeNode::terminate() +{ + s_inheritedBy.clear(); +} + +/*! + Record the fact that QML class \a base is inherited by + QML class \a sub. + */ +void QmlTypeNode::addInheritedBy(const Node *base, Node *sub) +{ + if (sub->isInternal()) + return; + if (!s_inheritedBy.contains(base, sub)) + s_inheritedBy.insert(base, sub); +} + +/*! + Loads the list \a subs with the nodes of all the subclasses of \a base. + */ +void QmlTypeNode::subclasses(const Node *base, NodeList &subs) +{ + subs.clear(); + if (s_inheritedBy.count(base) > 0) { + subs = s_inheritedBy.values(base); + } +} + +/*! + If this QML type node has a base type node, + return the fully qualified name of that QML + type, i.e. ::. + */ +QString QmlTypeNode::qmlFullBaseName() const +{ + QString result; + if (m_qmlBaseNode) { + result = m_qmlBaseNode->logicalModuleName() + "::" + m_qmlBaseNode->name(); + } + return result; +} + +/*! + If the QML type's QML module pointer is set, return the QML + module name from the QML module node. Otherwise, return the + empty string. + */ +QString QmlTypeNode::logicalModuleName() const +{ + return (m_logicalModule ? m_logicalModule->logicalModuleName() : QString()); +} + +/*! + If the QML type's QML module pointer is set, return the QML + module version from the QML module node. Otherwise, return + the empty string. + */ +QString QmlTypeNode::logicalModuleVersion() const +{ + return (m_logicalModule ? m_logicalModule->logicalModuleVersion() : QString()); +} + +/*! + If the QML type's QML module pointer is set, return the QML + module identifier from the QML module node. Otherwise, return + the empty string. + */ +QString QmlTypeNode::logicalModuleIdentifier() const +{ + return (m_logicalModule ? m_logicalModule->logicalModuleIdentifier() : QString()); +} + +/*! + Returns true if this QML type inherits \a type. + */ +bool QmlTypeNode::inherits(Aggregate *type) +{ + QmlTypeNode *qtn = qmlBaseNode(); + while (qtn != nullptr) { + if (qtn == type) + return true; + qtn = qtn->qmlBaseNode(); + } + return false; +} + +/*! + Recursively resolves the base node for this QML type when only the name of + the base type is known. + + \a previousSearches is used for speeding up the process. +*/ +void QmlTypeNode::resolveInheritance(NodeMap &previousSearches) +{ + if (m_qmlBaseNode || m_qmlBaseName.isEmpty()) + return; + + auto *base = static_cast(previousSearches.value(m_qmlBaseName)); + if (!previousSearches.contains(m_qmlBaseName)) { + for (const auto &import : std::as_const(m_importList)) { + base = QDocDatabase::qdocDB()->findQmlType(import, m_qmlBaseName); + if (base) + break; + } + if (!base) { + if (m_qmlBaseName.contains(':')) + base = QDocDatabase::qdocDB()->findQmlType(m_qmlBaseName); + else + base = QDocDatabase::qdocDB()->findQmlType(QString(), m_qmlBaseName); + } + previousSearches.insert(m_qmlBaseName, base); + } + + if (base && base != this) { + m_qmlBaseNode = base; + QmlTypeNode::addInheritedBy(base, this); + // Base types read from the index need resolving as they only have the name set + if (base->isIndexNode()) + base->resolveInheritance(previousSearches); + } +} + +/*! + Constructs either a Qml basic type node or a Javascript + basic type node, depending on the value pf \a type, which + must be either Node::QmlBasicType or Node::JsBasicType. + The new node has the given \a parent and \a name. + */ +QmlValueTypeNode::QmlValueTypeNode(Aggregate *parent, const QString &name, Node::NodeType type) + : Aggregate(type, parent, name) +{ + setTitle(name); +} + +QT_END_NAMESPACE diff --git a/src/qdoc/qmltypenode.h b/src/qdoc/qmltypenode.h new file mode 100644 index 0000000..b9c35c0 --- /dev/null +++ b/src/qdoc/qmltypenode.h @@ -0,0 +1,79 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef QMLTYPENODE_H +#define QMLTYPENODE_H + +#include "importrec.h" +#include "aggregate.h" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class ClassNode; +class CollectionNode; + +typedef QList ImportList; + +class QmlTypeNode : public Aggregate +{ +public: + QmlTypeNode(Aggregate *parent, const QString &name, NodeType type = QmlType); + [[nodiscard]] bool isFirstClassAggregate() const override { return true; } + [[nodiscard]] bool isQtQuickNode() const override + { + return (logicalModuleName() == QLatin1String("QtQuick")); + } + ClassNode *classNode() override { return m_classNode; } + void setClassNode(ClassNode *cn) override { m_classNode = cn; } + [[nodiscard]] bool isAbstract() const override { return m_abstract; } + [[nodiscard]] bool isWrapper() const override { return m_wrapper; } + void setAbstract(bool b) override { m_abstract = b; } + void setWrapper() override { m_wrapper = true; } + [[nodiscard]] bool isInternal() const override { return (status() == Internal); } + [[nodiscard]] QString qmlFullBaseName() const override; + [[nodiscard]] QString obsoleteLink() const override { return m_obsoleteLink; } + void setObsoleteLink(const QString &t) override { m_obsoleteLink = t; } + [[nodiscard]] QString logicalModuleName() const override; + [[nodiscard]] QString logicalModuleVersion() const override; + [[nodiscard]] QString logicalModuleIdentifier() const override; + [[nodiscard]] CollectionNode *logicalModule() const override { return m_logicalModule; } + void setQmlModule(CollectionNode *t) override { m_logicalModule = t; } + + void setImportList(const ImportList &il) { m_importList = il; } + [[nodiscard]] const QString &qmlBaseName() const { return m_qmlBaseName; } + void setQmlBaseName(const QString &name) { m_qmlBaseName = name; } + [[nodiscard]] QmlTypeNode *qmlBaseNode() const override { return m_qmlBaseNode; } + void resolveInheritance(NodeMap &previousSearches); + static void addInheritedBy(const Node *base, Node *sub); + static void subclasses(const Node *base, NodeList &subs); + static void terminate(); + bool inherits(Aggregate *type); + +public: + static QMultiMap s_inheritedBy; + +private: + bool m_abstract { false }; + bool m_wrapper { false }; + ClassNode *m_classNode { nullptr }; + QString m_qmlBaseName {}; + QString m_obsoleteLink {}; + CollectionNode *m_logicalModule { nullptr }; + QmlTypeNode *m_qmlBaseNode { nullptr }; + ImportList m_importList {}; +}; + +class QmlValueTypeNode : public Aggregate +{ +public: + QmlValueTypeNode(Aggregate *parent, const QString &name, NodeType type = QmlValueType); + [[nodiscard]] bool isFirstClassAggregate() const override { return true; } +}; + +QT_END_NAMESPACE + +#endif // QMLTYPENODE_H diff --git a/src/qdoc/qmlvisitor.cpp b/src/qdoc/qmlvisitor.cpp new file mode 100644 index 0000000..f082103 --- /dev/null +++ b/src/qdoc/qmlvisitor.cpp @@ -0,0 +1,737 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "qmlvisitor.h" + +#include "aggregate.h" +#include "codechunk.h" +#include "codeparser.h" +#include "functionnode.h" +#include "node.h" +#include "qdocdatabase.h" +#include "qmlpropertynode.h" +#include "tokenizer.h" + +#include +#include +#include + +#ifndef QT_NO_DECLARATIVE +# include +# include +#endif + +QT_BEGIN_NAMESPACE + +#ifndef QT_NO_DECLARATIVE +/*! + The constructor stores all the parameters in local data members. + */ +QmlDocVisitor::QmlDocVisitor(const QString &filePath, const QString &code, QQmlJS::Engine *engine, + const QSet &commands, const QSet &topics) + : m_nestingLevel(0) +{ + m_lastEndOffset = 0; + this->m_filePath = filePath; + this->m_name = QFileInfo(filePath).baseName(); + m_document = code; + this->m_engine = engine; + this->m_commands = commands; + this->m_topics = topics; + m_current = QDocDatabase::qdocDB()->primaryTreeRoot(); +} + +/*! + Returns the location of the nearest comment above the \a offset. + */ +QQmlJS::SourceLocation QmlDocVisitor::precedingComment(quint32 offset) const +{ + const auto comments = m_engine->comments(); + for (auto it = comments.rbegin(); it != comments.rend(); ++it) { + QQmlJS::SourceLocation loc = *it; + + if (loc.begin() <= m_lastEndOffset) { + // Return if we reach the end of the preceding structure. + break; + } else if (m_usedComments.contains(loc.begin())) { + // Return if we encounter a previously used comment. + break; + } else if (loc.begin() > m_lastEndOffset && loc.end() < offset) { + // Only examine multiline comments in order to avoid snippet markers. + if (m_document.at(loc.offset - 1) == QLatin1Char('*')) { + QString comment = m_document.mid(loc.offset, loc.length); + if (comment.startsWith(QLatin1Char('!')) || comment.startsWith(QLatin1Char('*'))) { + return loc; + } + } + } + } + + return QQmlJS::SourceLocation(); +} + +class QmlSignatureParser +{ +public: + QmlSignatureParser(FunctionNode *func, const QString &signature, const Location &loc); + void readToken() { tok_ = tokenizer_->getToken(); } + QString lexeme() { return tokenizer_->lexeme(); } + QString previousLexeme() { return tokenizer_->previousLexeme(); } + + bool match(int target); + bool matchTypeAndName(CodeChunk *type, QString *var); + bool matchParameter(); + bool matchFunctionDecl(); + +private: + QString signature_; + QStringList names_; + Tokenizer *tokenizer_; + int tok_; + FunctionNode *func_; + const Location &location_; +}; + +/*! + Finds the nearest unused qdoc comment above the QML entity + represented by the \a node and processes the qdoc commands + in that comment. The processed documentation is stored in + the \a node. + + If a qdoc comment is found for \a location, true is returned. + If a comment is not found there, false is returned. + */ +bool QmlDocVisitor::applyDocumentation(QQmlJS::SourceLocation location, Node *node) +{ + QQmlJS::SourceLocation loc = precedingComment(location.begin()); + + if (loc.isValid()) { + QString source = m_document.mid(loc.offset, loc.length); + Location start(m_filePath); + start.setLineNo(loc.startLine); + start.setColumnNo(loc.startColumn); + Location finish(m_filePath); + finish.setLineNo(loc.startLine); + finish.setColumnNo(loc.startColumn); + + Doc doc(start, finish, source.mid(1), m_commands, m_topics); + const TopicList &topicsUsed = doc.topicsUsed(); + NodeList nodes; + Node *nodePassedIn = node; + Aggregate *parent = nodePassedIn->parent(); + node->setDoc(doc); + nodes.append(node); + if (!topicsUsed.empty()) { + for (int i = 0; i < topicsUsed.size(); ++i) { + QString topic = topicsUsed.at(i).m_topic; + if (!topic.startsWith(QLatin1String("qml")) + && !topic.startsWith(QLatin1String("js"))) + continue; // maybe a qdoc warning here? mws 18/07/18 + QString args = topicsUsed.at(i).m_args; + if (topic == COMMAND_JSTYPE) { + node->changeType(Node::QmlType, Node::JsType); + } else if (topic.endsWith(QLatin1String("property"))) { + QmlPropArgs qpa; + if (splitQmlPropertyArg(doc, args, qpa)) { + if (qpa.m_name == nodePassedIn->name()) { + if (nodePassedIn->isAlias()) + nodePassedIn->setDataType(qpa.m_type); + } else { + bool isAttached = topic.contains(QLatin1String("attached")); + QmlPropertyNode *n = parent->hasQmlProperty(qpa.m_name, isAttached); + if (n == nullptr) + n = new QmlPropertyNode(parent, qpa.m_name, qpa.m_type, isAttached); + n->setLocation(doc.location()); + n->setDoc(doc); + n->markReadOnly(nodePassedIn->isReadOnly()); + if (nodePassedIn->isDefault()) + n->markDefault(); + if (isAttached) + n->markReadOnly(0); + if ((topic == COMMAND_JSPROPERTY) + || (topic == COMMAND_JSATTACHEDPROPERTY)) + n->changeType(Node::QmlProperty, Node::JsProperty); + nodes.append(n); + } + } else + qDebug() << " FAILED TO PARSE QML OR JS PROPERTY:" << topic << args; + } else if (topic.endsWith(QLatin1String("method")) || topic == COMMAND_QMLSIGNAL) { + if (node->isFunction()) { + auto *fn = static_cast(node); + QmlSignatureParser qsp(fn, args, doc.location()); + if (topic == COMMAND_JSMETHOD || topic == COMMAND_JSATTACHEDMETHOD) + fn->changeMetaness(FunctionNode::QmlMethod, FunctionNode::JsMethod); + } + } + } + } + for (const auto &node : nodes) + applyMetacommands(loc, node, doc); + m_usedComments.insert(loc.offset); + if (doc.isEmpty()) { + return false; + } + return true; + } + Location codeLoc(m_filePath); + codeLoc.setLineNo(location.startLine); + node->setLocation(codeLoc); + return false; +} + +QmlSignatureParser::QmlSignatureParser(FunctionNode *func, const QString &signature, + const Location &loc) + : signature_(signature), func_(func), location_(loc) +{ + QByteArray latin1 = signature.toLatin1(); + Tokenizer stringTokenizer(location_, latin1); + stringTokenizer.setParsingFnOrMacro(true); + tokenizer_ = &stringTokenizer; + readToken(); + matchFunctionDecl(); +} + +/*! + If the current token matches \a target, read the next + token and return true. Otherwise, don't read the next + token, and return false. + */ +bool QmlSignatureParser::match(int target) +{ + if (tok_ == target) { + readToken(); + return true; + } + return false; +} + +/*! + Parse a QML data type into \a type and an optional + variable name into \a var. + */ +bool QmlSignatureParser::matchTypeAndName(CodeChunk *type, QString *var) +{ + /* + This code is really hard to follow... sorry. The loop is there to match + Alpha::Beta::Gamma::...::Omega. + */ + for (;;) { + bool virgin = true; + + if (tok_ != Tok_Ident) { + while (match(Tok_signed) || match(Tok_unsigned) || match(Tok_short) || match(Tok_long) + || match(Tok_int64)) { + type->append(previousLexeme()); + virgin = false; + } + } + + if (virgin) { + if (match(Tok_Ident)) { + type->append(previousLexeme()); + } else if (match(Tok_void) || match(Tok_int) || match(Tok_char) || match(Tok_double) + || match(Tok_Ellipsis)) + type->append(previousLexeme()); + else + return false; + } else if (match(Tok_int) || match(Tok_char) || match(Tok_double)) { + type->append(previousLexeme()); + } + + if (match(Tok_Gulbrandsen)) + type->append(previousLexeme()); + else + break; + } + + while (match(Tok_Ampersand) || match(Tok_Aster) || match(Tok_const) || match(Tok_Caret)) + type->append(previousLexeme()); + + /* + The usual case: Look for an optional identifier, then for + some array brackets. + */ + type->appendHotspot(); + + if ((var != nullptr) && match(Tok_Ident)) + *var = previousLexeme(); + + if (tok_ == Tok_LeftBracket) { + int bracketDepth0 = tokenizer_->bracketDepth(); + while ((tokenizer_->bracketDepth() >= bracketDepth0 && tok_ != Tok_Eoi) + || tok_ == Tok_RightBracket) { + type->append(lexeme()); + readToken(); + } + } + return true; +} + +bool QmlSignatureParser::matchParameter() +{ + QString name; + CodeChunk type; + CodeChunk defaultValue; + + bool result = matchTypeAndName(&type, &name); + if (name.isEmpty()) { + name = type.toString(); + type.clear(); + } + + if (!result) + return false; + if (match(Tok_Equal)) { + int parenDepth0 = tokenizer_->parenDepth(); + while (tokenizer_->parenDepth() >= parenDepth0 + && (tok_ != Tok_Comma || tokenizer_->parenDepth() > parenDepth0) + && tok_ != Tok_Eoi) { + defaultValue.append(lexeme()); + readToken(); + } + } + func_->parameters().append(type.toString(), name, defaultValue.toString()); + return true; +} + +bool QmlSignatureParser::matchFunctionDecl() +{ + CodeChunk returnType; + + qsizetype firstBlank = signature_.indexOf(QChar(' ')); + qsizetype leftParen = signature_.indexOf(QChar('(')); + if ((firstBlank > 0) && (leftParen - firstBlank) > 1) { + if (!matchTypeAndName(&returnType, nullptr)) + return false; + } + + while (match(Tok_Ident)) { + names_.append(previousLexeme()); + if (!match(Tok_Gulbrandsen)) { + previousLexeme(); + names_.pop_back(); + break; + } + } + + if (tok_ != Tok_LeftParen) + return false; + /* + Parsing the parameters should be moved into class Parameters, + but it can wait. mws 14/12/2018 + */ + readToken(); + + func_->setLocation(location_); + func_->setReturnType(returnType.toString()); + + if (tok_ != Tok_RightParen) { + func_->parameters().clear(); + do { + if (!matchParameter()) + return false; + } while (match(Tok_Comma)); + } + if (!match(Tok_RightParen)) + return false; + return true; +} + +/*! + A QML property argument has the form... + + :: + :::: + + This function splits the argument into one of those + two forms. The three part form is the old form, which + was used before the creation of QtQuick 2 and Qt + Components. A is the QML equivalent of a + C++ namespace. So this function splits \a arg on "::" + and stores the parts in the \e {type}, \e {module}, + \e {component}, and \a {name}, fields of \a qpa. If it + is successful, it returns \c true. If not enough parts + are found, a qdoc warning is emitted and false is + returned. + */ +bool QmlDocVisitor::splitQmlPropertyArg(const Doc &doc, const QString &arg, QmlPropArgs &qpa) +{ + qpa.clear(); + QStringList blankSplit = arg.split(QLatin1Char(' ')); + if (blankSplit.size() > 1) { + qpa.m_type = blankSplit[0]; + QStringList colonSplit(blankSplit[1].split("::")); + if (colonSplit.size() == 3) { + qpa.m_module = colonSplit[0]; + qpa.m_component = colonSplit[1]; + qpa.m_name = colonSplit[2]; + return true; + } else if (colonSplit.size() == 2) { + qpa.m_component = colonSplit[0]; + qpa.m_name = colonSplit[1]; + return true; + } else if (colonSplit.size() == 1) { + qpa.m_name = colonSplit[0]; + return true; + } + doc.location().warning( + QStringLiteral("Unrecognizable QML module/component qualifier for %1.").arg(arg)); + } else { + doc.location().warning(QStringLiteral("Missing property type for %1.").arg(arg)); + } + return false; +} + +/*! + Applies the metacommands found in the comment. + */ +void QmlDocVisitor::applyMetacommands(QQmlJS::SourceLocation, Node *node, Doc &doc) +{ + QDocDatabase *qdb = QDocDatabase::qdocDB(); + QSet metacommands = doc.metaCommandsUsed(); + if (metacommands.size() > 0) { + metacommands.subtract(m_topics); + for (const auto &command : std::as_const(metacommands)) { + const ArgList args = doc.metaCommandArgs(command); + if ((command == COMMAND_QMLABSTRACT) || (command == COMMAND_ABSTRACT)) { + if (node->isQmlType() || node->isJsType()) { + node->setAbstract(true); + } + } else if (command == COMMAND_DEPRECATED) { + node->setStatus(Node::Deprecated); + if (!args[0].second.isEmpty()) + node->setDeprecatedSince(args[0].second); + } else if ((command == COMMAND_INQMLMODULE) || (command == COMMAND_INJSMODULE)) { + qdb->addToQmlModule(args[0].first, node); + } else if (command == COMMAND_QMLINHERITS) { + if (node->name() == args[0].first) + doc.location().warning( + QStringLiteral("%1 tries to inherit itself").arg(args[0].first)); + else if (node->isQmlType() || node->isJsType()) { + auto *qmlType = static_cast(node); + qmlType->setQmlBaseName(args[0].first); + } + } else if (command == COMMAND_DEFAULT) { + if (!node->isQmlProperty()) { + doc.location().warning(QStringLiteral("Ignored '\\%1', applies only to '\\%2'") + .arg(command, COMMAND_QMLPROPERTY)); + } else if (args.isEmpty() || args[0].first.isEmpty()) { + doc.location().warning(QStringLiteral("Expected an argument for '\\%1' (maybe you meant '\\%2'?)") + .arg(command, COMMAND_QMLDEFAULT)); + } else { + static_cast(node)->setDefaultValue(args[0].first); + } + } else if (command == COMMAND_QMLDEFAULT) { + node->markDefault(); + } else if (command == COMMAND_QMLREADONLY) { + node->markReadOnly(1); + } else if (command == COMMAND_QMLREQUIRED) { + if (node->isQmlProperty()) + static_cast(node)->setRequired(); + } else if ((command == COMMAND_INGROUP) && !args.isEmpty()) { + for (const auto &argument : args) + QDocDatabase::qdocDB()->addToGroup(argument.first, node); + } else if (command == COMMAND_INTERNAL) { + node->setStatus(Node::Internal); + } else if (command == COMMAND_OBSOLETE) { + node->setStatus(Node::Deprecated); + } else if (command == COMMAND_PRELIMINARY) { + node->setStatus(Node::Preliminary); + } else if (command == COMMAND_SINCE) { + QString arg = args[0].first; //.join(' '); + node->setSince(arg); + } else if (command == COMMAND_WRAPPER) { + node->setWrapper(); + } else { + doc.location().warning( + QStringLiteral("The \\%1 command is ignored in QML files").arg(command)); + } + } + } +} + +/*! + Reconstruct the qualified \a id using dot notation + and return the fully qualified string. + */ +QString QmlDocVisitor::getFullyQualifiedId(QQmlJS::AST::UiQualifiedId *id) +{ + QString result; + if (id) { + result = id->name.toString(); + id = id->next; + while (id != nullptr) { + result += QChar('.') + id->name.toString(); + id = id->next; + } + } + return result; +} + +/*! + Begin the visit of the object \a definition, recording it in the + qdoc database. Increment the object nesting level, which is used + to test whether we are at the public API level. The public level + is level 1. + + Note that this visit() function creates the qdoc object node as a + QmlType. If it is actually a JsType, this fact is discovered when + the qdoc comment is applied to the node. The node's typet is then + changed to JsType. + */ +bool QmlDocVisitor::visit(QQmlJS::AST::UiObjectDefinition *definition) +{ + QString type = getFullyQualifiedId(definition->qualifiedTypeNameId); + m_nestingLevel++; + + if (m_current->isNamespace()) { + QmlTypeNode *component = nullptr; + Node *candidate = m_current->findChildNode(m_name, Node::QML); + if (candidate != nullptr) + component = static_cast(candidate); + else + component = new QmlTypeNode(m_current, m_name); + component->setTitle(m_name); + component->setImportList(m_importList); + m_importList.clear(); + if (applyDocumentation(definition->firstSourceLocation(), component)) + component->setQmlBaseName(type); + m_current = component; + } + + return true; +} + +/*! + End the visit of the object \a definition. In particular, + decrement the object nesting level, which is used to test + whether we are at the public API level. The public API + level is level 1. It won't decrement below 0. + */ +void QmlDocVisitor::endVisit(QQmlJS::AST::UiObjectDefinition *definition) +{ + if (m_nestingLevel > 0) { + --m_nestingLevel; + } + m_lastEndOffset = definition->lastSourceLocation().end(); +} + +bool QmlDocVisitor::visit(QQmlJS::AST::UiImport *import) +{ + QString name = m_document.mid(import->fileNameToken.offset, import->fileNameToken.length); + if (name[0] == '\"') + name = name.mid(1, name.size() - 2); + QString version; + if (import->version) { + const auto start = import->version->firstSourceLocation().begin(); + const auto end = import->version->lastSourceLocation().end(); + version = m_document.mid(start, end - start); + } + QString importUri = getFullyQualifiedId(import->importUri); + m_importList.append(ImportRec(name, version, importUri)); + + return true; +} + +void QmlDocVisitor::endVisit(QQmlJS::AST::UiImport *definition) +{ + m_lastEndOffset = definition->lastSourceLocation().end(); +} + +bool QmlDocVisitor::visit(QQmlJS::AST::UiObjectBinding *) +{ + ++m_nestingLevel; + return true; +} + +void QmlDocVisitor::endVisit(QQmlJS::AST::UiObjectBinding *) +{ + --m_nestingLevel; +} + +bool QmlDocVisitor::visit(QQmlJS::AST::UiArrayBinding *) +{ + return true; +} + +void QmlDocVisitor::endVisit(QQmlJS::AST::UiArrayBinding *) {} + +template +QString qualifiedIdToString(T node); + +template<> +QString qualifiedIdToString(QStringView node) +{ + return node.toString(); +} + +template<> +QString qualifiedIdToString(QQmlJS::AST::UiQualifiedId *node) +{ + QString s; + + for (QQmlJS::AST::UiQualifiedId *it = node; it; it = it->next) { + s.append(it->name); + + if (it->next) + s.append(QLatin1Char('.')); + } + + return s; +} + +/*! + Visits the public \a member declaration, which can be a + signal or a property. It is a custom signal or property. + Only visit the \a member if the nestingLevel is 1. + */ +bool QmlDocVisitor::visit(QQmlJS::AST::UiPublicMember *member) +{ + if (m_nestingLevel > 1) { + return true; + } + switch (member->type) { + case QQmlJS::AST::UiPublicMember::Signal: { + if (m_current->isQmlType() || m_current->isJsType()) { + auto *qmlType = static_cast(m_current); + if (qmlType) { + FunctionNode::Metaness metaness = FunctionNode::QmlSignal; + if (qmlType->isJsType()) + metaness = FunctionNode::JsSignal; + QString name = member->name.toString(); + auto *newSignal = new FunctionNode(metaness, m_current, name); + Parameters ¶meters = newSignal->parameters(); + for (QQmlJS::AST::UiParameterList *it = member->parameters; it; it = it->next) { + const QString type = qualifiedIdToString(it->type); + if (!type.isEmpty() && !it->name.isEmpty()) + parameters.append(type, it->name.toString()); + } + applyDocumentation(member->firstSourceLocation(), newSignal); + } + } + break; + } + case QQmlJS::AST::UiPublicMember::Property: { + QString type = qualifiedIdToString(member->memberType); + if (m_current->isQmlType() || m_current->isJsType()) { + auto *qmlType = static_cast(m_current); + if (qmlType) { + QString name = member->name.toString(); + QmlPropertyNode *qmlPropNode = qmlType->hasQmlProperty(name); + if (qmlPropNode == nullptr) + qmlPropNode = new QmlPropertyNode(qmlType, name, type, false); + qmlPropNode->markReadOnly(member->isReadonly()); + if (member->isDefaultMember()) + qmlPropNode->markDefault(); + if (member->requiredToken().isValid()) + qmlPropNode->setRequired(); + applyDocumentation(member->firstSourceLocation(), qmlPropNode); + } + } + break; + } + default: + return false; + } + + return true; +} + +/*! + End the visit of the \a member. + */ +void QmlDocVisitor::endVisit(QQmlJS::AST::UiPublicMember *member) +{ + m_lastEndOffset = member->lastSourceLocation().end(); +} + +bool QmlDocVisitor::visit(QQmlJS::AST::IdentifierPropertyName *) +{ + return true; +} + +/*! + Begin the visit of the function declaration \a fd, but only + if the nesting level is 1. + */ +bool QmlDocVisitor::visit(QQmlJS::AST::FunctionDeclaration *fd) +{ + if (m_nestingLevel <= 1) { + FunctionNode::Metaness metaness = FunctionNode::QmlMethod; + if (m_current->isJsType()) + metaness = FunctionNode::JsMethod; + else if (!m_current->isQmlType()) + return true; + QString name = fd->name.toString(); + auto *method = new FunctionNode(metaness, m_current, name); + Parameters ¶meters = method->parameters(); + QQmlJS::AST::FormalParameterList *formals = fd->formals; + if (formals) { + QQmlJS::AST::FormalParameterList *fp = formals; + do { + QString defaultValue; + auto initializer = fp->element->initializer; + if (initializer) { + auto loc = initializer->firstSourceLocation(); + defaultValue = m_document.mid(loc.begin(), loc.length); + } + parameters.append(QString(), fp->element->bindingIdentifier.toString(), + defaultValue); + fp = fp->next; + } while (fp && fp != formals); + } + applyDocumentation(fd->firstSourceLocation(), method); + } + return true; +} + +/*! + End the visit of the function declaration, \a fd. + */ +void QmlDocVisitor::endVisit(QQmlJS::AST::FunctionDeclaration *fd) +{ + m_lastEndOffset = fd->lastSourceLocation().end(); +} + +/*! + Begin the visit of the signal handler declaration \a sb, but only + if the nesting level is 1. + + This visit is now deprecated. It has been decided to document + public signals. If a signal handler must be discussed in the + documentation, that discussion must take place in the comment + for the signal. + */ +bool QmlDocVisitor::visit(QQmlJS::AST::UiScriptBinding *) +{ + return true; +} + +void QmlDocVisitor::endVisit(QQmlJS::AST::UiScriptBinding *sb) +{ + m_lastEndOffset = sb->lastSourceLocation().end(); +} + +bool QmlDocVisitor::visit(QQmlJS::AST::UiQualifiedId *) +{ + return true; +} + +void QmlDocVisitor::endVisit(QQmlJS::AST::UiQualifiedId *) +{ + // nothing. +} + +void QmlDocVisitor::throwRecursionDepthError() +{ + hasRecursionDepthError = true; +} + +bool QmlDocVisitor::hasError() const +{ + return hasRecursionDepthError; +} + +#endif + +QT_END_NAMESPACE diff --git a/src/qdoc/qmlvisitor.h b/src/qdoc/qmlvisitor.h new file mode 100644 index 0000000..e1de665 --- /dev/null +++ b/src/qdoc/qmlvisitor.h @@ -0,0 +1,97 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef QMLVISITOR_H +#define QMLVISITOR_H + +#include "node.h" +#include "qmltypenode.h" + +#include + +#ifndef QT_NO_DECLARATIVE +# include +# include +#endif + +QT_BEGIN_NAMESPACE + +class Aggregate; + +struct QmlPropArgs +{ + QString m_type {}; + QString m_module {}; + QString m_component {}; + QString m_name; + + void clear() + { + m_type.clear(); + m_module.clear(); + m_component.clear(); + m_name.clear(); + } +}; + +#ifndef QT_NO_DECLARATIVE +class QmlDocVisitor : public QQmlJS::AST::Visitor +{ +public: + QmlDocVisitor(const QString &filePath, const QString &code, QQmlJS::Engine *engine, + const QSet &commands, const QSet &topics); + ~QmlDocVisitor() override = default; + + bool visit(QQmlJS::AST::UiImport *import) override; + void endVisit(QQmlJS::AST::UiImport *definition) override; + + bool visit(QQmlJS::AST::UiObjectDefinition *definition) override; + void endVisit(QQmlJS::AST::UiObjectDefinition *definition) override; + + bool visit(QQmlJS::AST::UiPublicMember *member) override; + void endVisit(QQmlJS::AST::UiPublicMember *definition) override; + + bool visit(QQmlJS::AST::UiObjectBinding *) override; + void endVisit(QQmlJS::AST::UiObjectBinding *) override; + void endVisit(QQmlJS::AST::UiArrayBinding *) override; + bool visit(QQmlJS::AST::UiArrayBinding *) override; + + bool visit(QQmlJS::AST::IdentifierPropertyName *idproperty) override; + + bool visit(QQmlJS::AST::FunctionDeclaration *) override; + void endVisit(QQmlJS::AST::FunctionDeclaration *) override; + + bool visit(QQmlJS::AST::UiScriptBinding *) override; + void endVisit(QQmlJS::AST::UiScriptBinding *) override; + + bool visit(QQmlJS::AST::UiQualifiedId *) override; + void endVisit(QQmlJS::AST::UiQualifiedId *) override; + + void throwRecursionDepthError() final; + [[nodiscard]] bool hasError() const; + +private: + QString getFullyQualifiedId(QQmlJS::AST::UiQualifiedId *id); + [[nodiscard]] QQmlJS::SourceLocation precedingComment(quint32 offset) const; + bool applyDocumentation(QQmlJS::SourceLocation location, Node *node); + void applyMetacommands(QQmlJS::SourceLocation location, Node *node, Doc &doc); + bool splitQmlPropertyArg(const Doc &doc, const QString &arg, QmlPropArgs &qpa); + + QQmlJS::Engine *m_engine { nullptr }; + quint32 m_lastEndOffset {}; + quint32 m_nestingLevel {}; + QString m_filePath {}; + QString m_name {}; + QString m_document {}; + ImportList m_importList {}; + QSet m_commands {}; + QSet m_topics {}; + QSet m_usedComments {}; + Aggregate *m_current { nullptr }; + bool hasRecursionDepthError { false }; +}; +#endif + +QT_END_NAMESPACE + +#endif diff --git a/src/qdoc/quoter.cpp b/src/qdoc/quoter.cpp new file mode 100644 index 0000000..37799a9 --- /dev/null +++ b/src/qdoc/quoter.cpp @@ -0,0 +1,338 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "quoter.h" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QHash Quoter::s_commentHash; + +static void replaceMultipleNewlines(QString &s) +{ + const qsizetype n = s.size(); + bool slurping = false; + int j = -1; + const QChar newLine = QLatin1Char('\n'); + QChar *d = s.data(); + for (int i = 0; i != n; ++i) { + const QChar c = d[i]; + bool hit = (c == newLine); + if (slurping && hit) + continue; + d[++j] = c; + slurping = hit; + } + s.resize(++j); +} + +// This is equivalent to line.split( QRegularExpression("\n(?!\n|$)") ) but much faster +QStringList Quoter::splitLines(const QString &line) +{ + QStringList result; + qsizetype i = line.size(); + while (true) { + qsizetype j = i - 1; + while (j >= 0 && line.at(j) == QLatin1Char('\n')) + --j; + while (j >= 0 && line.at(j) != QLatin1Char('\n')) + --j; + result.prepend(line.mid(j + 1, i - j - 1)); + if (j < 0) + break; + i = j; + } + return result; +} + +/* + Transforms 'int x = 3 + 4' into 'int x=3+4'. A white space is kept + between 'int' and 'x' because it is meaningful in C++. +*/ +static void trimWhiteSpace(QString &str) +{ + enum { Normal, MetAlnum, MetSpace } state = Normal; + const qsizetype n = str.size(); + + int j = -1; + QChar *d = str.data(); + for (int i = 0; i != n; ++i) { + const QChar c = d[i]; + if (c.isLetterOrNumber()) { + if (state == Normal) { + state = MetAlnum; + } else { + if (state == MetSpace) + str[++j] = c; + state = Normal; + } + str[++j] = c; + } else if (c.isSpace()) { + if (state == MetAlnum) + state = MetSpace; + } else { + state = Normal; + str[++j] = c; + } + } + str.resize(++j); +} + +Quoter::Quoter() : m_silent(false) +{ + /* We're going to hard code these delimiters: + * C++, Qt, Qt Script, Java: + //! [] + * .pro, .py, CMake files: + #! [] + * .html, .qrc, .ui, .xq, .xml files: + + */ + if (s_commentHash.empty()) { + s_commentHash["pro"] = "#!"; + s_commentHash["py"] = "#!"; + s_commentHash["cmake"] = "#!"; + s_commentHash["html"] = "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 Oaq{2TV@#K`DgOWwGHbm6 literal 0 HcmV?d00001 diff --git a/src/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2.png b/src/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2.png new file mode 100644 index 0000000000000000000000000000000000000000..48ccc1c5a6231c84e5d513bfb85c17576c516735 GIT binary patch literal 121915 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 M8JJzK(sPdfAN=SYvH$=8 literal 0 HcmV?d00001 diff --git a/src/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2.skin b/src/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2.skin new file mode 100644 index 0000000..d644c6e --- /dev/null +++ b/src/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2.skin @@ -0,0 +1,25 @@ +SmartPhone2.png SmartPhone2-pressed.png +90 107 +176 220 +21 +"Menu" 0x01100000 70 400 115 427 +"Backspace" 0x01000003 238 400 285 427 +"1" 0x0031 138 437 149 451 142 461 120 462 102 455 95 442 99 435 121 432 +"2" 0x0032 153 445 202 470 +"3" 0x0033 258 435 260 448 243 461 215 462 207 452 218 438 248 431 +"4" 0x0034 138 470 149 484 142 494 120 495 102 488 95 475 99 468 121 465 +"5" 0x0035 153 477 202 502 +"6" 0x0036 258 467 260 480 243 493 215 494 207 484 218 470 248 463 +"7" 0x0037 138 502 149 516 142 526 120 527 102 520 95 507 99 500 121 497 +"8" 0x0038 153 509 202 534 +"9" 0x0039 258 499 260 512 243 525 215 526 207 516 218 502 248 495 +"*" 0x002a 138 534 149 548 142 558 120 559 102 552 95 539 99 532 121 529 +"0" 0x0030 153 542 202 567 +"#" 0x0023 258 532 260 545 243 558 215 559 207 549 218 535 248 528 +"Yes" 0x01010001 91 343 141 393 +"No" 0x01010002 219 343 269 393 +"Select" 0x01010000 160 356 195 389 +"Left" 0x1000012 159 356 149 346 141 354 141 391 149 399 159 389 159 387 +"Down" 0x1000015 160 391 150 400 159 409 199 409 207 403 196 392 194 392 +"Right" 0x1000014 195 354 206 341 215 356 215 391 208 402 197 393 +"Up" 0x1000013 160 354 149 344 158 337 197 337 203 340 194 355 diff --git a/src/shared/deviceskin/skins/SmartPhone2.skin/defaultbuttons.conf b/src/shared/deviceskin/skins/SmartPhone2.skin/defaultbuttons.conf new file mode 100644 index 0000000..b083203 --- /dev/null +++ b/src/shared/deviceskin/skins/SmartPhone2.skin/defaultbuttons.conf @@ -0,0 +1,52 @@ +[Button] +[IMethod] +key_count = 5 +key_hold_action_1 = insertText +key_hold_action_2 = insertText +key_hold_action_3 = insertSymbol +key_hold_action_4 = changeMode +key_hold_arg_1 = 1 +key_hold_arg_2 = 0 +key_id_1 = 1 +key_id_2 = 0 +key_id_3 = * +key_id_4 = # +key_id_5 = * +key_mode_1 = Abc +key_mode_2 = Abc +key_mode_3 = Abc +key_mode_4 = Abc +key_mode_5 = Phone +key_tap_action_1 = insertText +key_tap_action_2 = insertSpace +key_tap_action_3 = modifyText +key_tap_action_4 = changeShift +key_tap_action_5 = insertText +key_tap_arg_1 = .,'?!-@:〓 +key_tap_arg_5 = *+pw +[Menu] +1 = Applications/camera.desktop +2 = Applications/datebook.desktop +3 = Games +4 = Applications/qtmail.desktop +5 = Applications/addressbook.desktop +6 = Settings +7 = Settings/Beaming.desktop +8 = Applications +9 = Documents +Columns = 3 +Default = 5 +Map = 123456789 +Rows = 3 +Animator=Bounce +AnimatorBackground=Radial +[SoftKeys] +[SystemButtons] +Count=5 +Key0=Yes +Key1=Select +Key2=No +Key3=Menu +Key4=Backspace +[Device] +PrimaryInput=Keypad diff --git a/src/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons-pressed.png b/src/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..456a068eee8aba49304b1ae8cea51ac596b61598 GIT binary patch literal 103838 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 YfZm1+?!X>9GJtC~mUb4^7rc}H1FFs0od5s; literal 0 HcmV?d00001 diff --git a/src/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.skin b/src/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.skin new file mode 100644 index 0000000..9afa67f --- /dev/null +++ b/src/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.skin @@ -0,0 +1,31 @@ +[SkinFile] +Up=SmartPhoneWithButtons.png +Down=SmartPhoneWithButtons-pressed.png +Screen=90 107 176 208 +Areas=24 +HasMouseHover=false + +"1" 0x0031 138 459 149 473 142 483 120 484 102 477 95 464 99 457 121 454 +"2" 0x0032 153 467 202 492 +"3" 0x0033 258 457 260 470 243 483 215 484 207 474 218 460 248 453 +"4" 0x0034 138 492 149 506 142 516 120 517 102 510 95 497 99 490 121 487 +"5" 0x0035 153 499 202 524 +"6" 0x0036 258 489 260 502 243 515 215 516 207 506 218 492 248 485 +"7" 0x0037 138 524 149 538 142 548 120 549 102 542 95 529 99 522 121 519 +"8" 0x0038 153 531 202 556 +"9" 0x0039 258 521 260 534 243 547 215 548 207 538 218 524 248 517 +"*" 0x002a 138 556 149 570 142 580 120 581 102 574 95 561 99 554 121 551 +"0" 0x0030 153 564 202 589 +"#" 0x0023 258 554 260 567 243 580 215 581 207 571 218 557 248 550 +"Call" 0x01100004 88 395 130 439 +"Hangup" 0x01100005 227 395 269 439 +"Context1" 0x01100000 145 321 134 333 132 361 134 374 110 343 109 318 +"Back" 0x01000061 249 322 240 354 219 373 223 344 216 325 208 318 +"Select" 0x01010000 160 338 195 371 +"Left" 0x1000012 159 338 149 328 141 336 141 373 149 381 159 371 159 369 +"Down" 0x1000015 160 373 150 382 159 391 199 391 207 385 196 374 194 374 +"Right" 0x1000014 195 336 206 323 215 338 215 373 208 384 197 375 +"Up" 0x1000013 160 336 149 326 158 319 197 319 203 322 194 337 +"Home" 0x1000010 164 402 195 434 +"F1" 0x1000030 138 422 163 448 +"F2" 0x1000031 196 422 220 448 diff --git a/src/shared/deviceskin/skins/SmartPhoneWithButtons.skin/defaultbuttons.conf b/src/shared/deviceskin/skins/SmartPhoneWithButtons.skin/defaultbuttons.conf new file mode 100644 index 0000000..ebd6926 --- /dev/null +++ b/src/shared/deviceskin/skins/SmartPhoneWithButtons.skin/defaultbuttons.conf @@ -0,0 +1,103 @@ +[Translation] +File=QtopiaDefaults +Context=Buttons +[Button] +Count=3 +[Button0] +Name[]=Calendar Button +Key=F1 +PressedActionService=Calendar +PressedActionMessage=raiseToday() +HeldActionService=Calendar +HeldActionMessage=newEvent() +[Button1] +Name[]=Tasks Button +Key=F2 +PressedActionService=Tasks +PressedActionMessage=raise() +HeldActionService=Tasks +HeldActionMessage=newTask() +[Button2] +Name[]=Home Button +Key=Home +PressedActionMappable=0 +PressedActionService=TaskManager +PressedActionMessage=multitask() +HeldActionMappable=0 +HeldActionService=TaskManager +HeldActionMessage=showRunningTasks() +[Menu] +Rows=4 +Columns=3 +Map=123456789*0# +Default=5 +1=Applications/camera.desktop +2=Applications/datebook.desktop +3=Applications +4=Applications/qtmail.desktop +5=Applications/addressbook.desktop +6=Games +7=Settings/Beaming.desktop +8=Applications/simapp.desktop,Applications/calculator.desktop +9=Settings +*=Applications/mediarecorder.desktop +0=Applications/todolist.desktop +#=Documents +Animator=Bounce +AnimatorBackground=Radial +[SoftKeys] +Count=3 +Key0=Context1 +Key1=Select +Key2=Back +[SystemButtons] +Count=5 +Key0=Context1 +Key1=Select +Key2=Back +Key3=Call +Key4=Hangup +[TextButtons] +Buttons=0123456789*# +Hold0='0 +Hold1='1 +Hold2='2 +Hold3='3 +Hold4='4 +Hold5='5 +Hold6='6 +Hold7='7 +Hold8='8 +Hold9='9 +Hold*=symbol +Hold#=mode +Tap0=space +Tap1="\".,'?!-@:1" +Tap2="\"a\xe4\xe5\xe6\xe0\xe1\xe2\x62\x63\xe7\x32" +Tap3="\"de\xe8\xe9\xea\x66\x33" +Tap4="\"ghi\xec\xed\xee\x34" +Tap5="\"jkl5" +Tap6="\"mn\xf1o\xf6\xf8\xf2\xf3\x36" +Tap7="\"pqrs\xdf\x37" +Tap8="\"tu\xfc\xf9\xfav8" +Tap9="\"wxyz9" +Tap*=modify +Tap#=shift +[LocaleTextButtons] +Buttons=23456789 +Tap2[]='abc +Tap3[]='def +Tap4[]='ghi +Tap5[]='jkl +Tap6[]='mno +Tap7[]='pqrs +Tap8[]='tuv +Tap9[]='wxyz +[PhoneTextButtons] +Buttons=*# +Tap*='*+pw +Hold*=+ +Tap#='# +Hold#=mode +[Device] +PrimaryInput=Keypad diff --git a/src/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone-pressed.png b/src/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..01acb86547c716f685ce1c44fc13b7a52ecba713 GIT binary patch literal 88599 zcmaI7Wl&tt6E2J_?jZ#C5E9%Mm*BxAIE!1*;LhUi?j%TX4Q>krcXxIP9$4J<^8eL) ztKLud)7I&lbGE0a`epWpOacFcAfCW4B@8fs z&J2)}*&X+R`kkz21E1BIPTC*FBX0jjvp@F}eg<<}P2>oy@-w$8z{WDUt#Cba1zdK= z5NrOEyFd>Af5J>;(EkSif5HihQ^D7f|4-pAc=7d{|92!eTF3uh|9=T{1YmBj-~7KL z|F0hZ2^-F8quK!zIkEXq2l>wjha)@ZwhF~F@bk&1^P{^i_M$-H{3BOEqohHjb-$bS z0C@ERY`hN(K9>3Vrb@v5Z1Y#9)RzwuR~f=33`5Faup`hjI`C9jCoi<#lNhB9N>*td z2E1%iKX2BwRP6nyxyTBm=vkyu0{GrBYkc>ez_As>779is&51@l{kxDD;uScb9Hf8n z-L~Z3&Qtf@me}*wiJSKHf7Wwe>Acx^Fk;Af&Jezq8#o+BM)xGbmpf&cl3s|0FeB;( zIu=gjpL_k<-lFzjY~Q%bU!QmVpS>H{u7BY9?L!r4o=Clpq#;#W75~Ix(vY2)^oDhO z*ZI2o`XCiAb*hsW_LrUR$E@~pTkgGi*qCl09GUtSQuT&Ez|_X(02A<)M|iep2gS6_ zvt$*$YsmLZM@NUhrKQDlQssGDCC^EF;Xg&y6@&f-=z%~RY=Lw1;tUBpXx;HkZ1OmO zjyDj6H=Z|@)z!~v9u}1UEw|~35A@+!PghrfEzmi7*jWj}P%=7cu*a}0!L^tB#<%9> z`Q+tUXr1U7nnV5SMEw@+H7O8*NeNIMH}e)iTh85IKMJrslp!*3 z0(G_DOkLC?y}jc<*Bvbp-u*F?(Eq%MlzZ4Y{!2m* z9cdsp$h5uaD(k))qlv;bl3=tC1%dy+A;95piDzl{n~+P7jC6@v5BoMYL@qDk5E?jm z@jr`U5BQ`523g-?js-3Pj7>XA7?G`7V-Av-vyegm&4&H~4t<8(G9+}Ntasf$8O-j0 z$DZ5;_MIaGsjLFu;d=gOOl-Ir^#h3|<%0!Ao{$ZFtPblsUnX0;PJ?~Prin~zD+T+1 zQ~ChE33$1QPyJGC1OkEl1?mlP+bEn4#(Gk8SQp)uT6@sB-G>fe{k37b_TjkQQ8}+V z9WAd0>!d4JWCtvK9S)NtqLuoH6@f2>f|M^@tNv$L)#GaCZU+ksOJ7S%t0~jJU6?kG z)d(34lr0-<*8abLCC7Mp+!G6EH_t_{A0$xSfv+++rEaSw!@eeoYxV7!Bp?T7cGR#? z*PP;Tl1GG5VW4fB*<-{YNoa7be?pR}9SLrQ2l zUuX$lF1*XizT7$xFKpX-k|eBmbmHPF88o)s;rQ4(>F0nO$ZKAM-m)lPnE07=r7j@(qfF>6Hp#HnRwHg>5R0Zx0kI3MIU7J7vyJAOo>K$mF50zjp! zSjQIS3BPzv>sFjlbe2nME^Bm=wb&tOUJs<13Nsdxuv=(h!$^RmcC0;(0*sR9 zSJVY&>N~@}U+*)-`B7Qh#e^@DVst62z^&$rn^;kYn{g5QA@q^oXIIK3= z|6Qsx!xWFF5O7vi)3Ukp_Cs=HXJHweelYCv^-2p=v2b&98+lZ0P02GH^~lT0(&IVF z&dAV7>n>Ibm>e6En#|13?(;UQeT`@NthT4yt$3qqtqNJ?e9_KdnoRcTkl1<&H+T1@ zAR@|bE0|BvW9;p{qU9>qYNHozQL$4|Ea&kLNH9%{Z3d2=l5X%}pX(6x`QYKC`{iL> z&gs>Veu(a(03BgR0Vfz_?8bNU<|v6qsN3UY!wax5JUrY6SY0pG`0`F5bo4MaHMI<% zhX|9lU?kAs_&n3AOS^m{H;gNP;U7P`FAtUlw+q_?)lmYZeoc{0f@_mj4JTIqZ=@DeZ6s`0HWpTSG>{^SA zXT9%ANUbJ6z|Q4o-3KK7yX(m%l)pJGP?{%39%D;r<({+C zk6P5%={2C+om_0cfB(J#&?PS@3S=eY;x=HTpK@4l`}!0Mmbm{loHcVy?!Lu^z-a*( z#Uf^tYCaoE5}DcHo>L-fp+lb~MZDb}PCgyuo`ftnSk>)jwlx73{`^ytr)5pAR+`;8 z%9(hiLD+3RV-b7t5}?ibjF3jy>*#-3NbR=~D~#5$h5cIydRYR5`^;B>++eq7TMw^c z(y4*_Zyo(Ndad(mxl7i&(U)DC&spysaA|$|xjE}tR2ywV3voMaZbDILr_Chm%#q9h z-5p06FR{#k*RVU~>$=fU5kXNAd-^Rn8mY0aVn_Jh4jPlz9>UTqnw1PbIzI{2&E=_#l1L=~h zHrXxzkR?Oy#P~#z`5>lsVvjSv67qsW05PejQdJ7yU;-^YexYWd6=3YQaY!X+Bs_>l z!8jV>Wjk4=mrz9*5&CrOG4Dg~^1+w~xb6uc^Ak-c;)nf}IO#v>+j~PZyLH~qqVUfD z3)1P{&Q|yB^G!Fj&Iqj|6k&x4O>YfB@&NW4t-?DBYMZ~ zodi*%_MBPb@K0CqY@PL`N_ZU)tay@w5!NVzhKRp>Sgeqqq8SLbyU5u8po@Q4q$CRf z0bq`Phx(^O^zk1ddn=W(aAz2=1To%ob1Z?2c-qtc_R-N%^A6nTW!~s%Ud)Al5%I(l zaaRwdeBMKp^ym1chx)Mx83^^gcL(&E4Cr_8O>Lt?F(oOyR5FPVw zIT<5~FKvbW)ZHgv4S9nlotJ!SC9lurZ<1nQwk_Zf`j}TH2b$@G=J#M+#M{?2H6JDf zy^BN5F_`5IOgH#@n;Fbe2hxaxJnUS&V?YpNkB9pFFQuXiN5b_Cr}RvmKgQ98Z?vCu z`9KXl)*Fq2;EC()9!8Pk(Nt*YzYPk{ZfCzy{;5l9Fc`|MYzS zmj~zxAgUFJjK~;tViqq_!ehEtNuMr``E7G-Y0mw?&#sLpsKyr$ zrK|h-u>1Ib`n4gkc~cfph~MF)fF7EfJ73YyW5WwJlt}+@BcF_I8BM{nnx3AnCYmvf z#6qa!M2IcnJ{U(iQdMEVhB9RXrd{;J@O&`o*2U&mSR7xmJ4B;6X+u75ef$ZZB@CVeu79Q=j8>Z zpS@#SBg;P|PPu&U+QqnAc{u?FTmYe)Q$2`|-33uJdRV&5Dt;uz!oI@_ATAGh&w+=O;{ScB8J2uT&Rr?3%X?N5XTp16k$K-|CTz5!1oOXN=)6#y2&w zdF<5ZUqIRiKZtMYg%x>OxyHs;`X6c!w)3xbZ4lCUX)ph_PBA}Rh2qh)DUj{*a*Q_5 z+NUt^lgp6O!hydI#y&JiBgoLm5c3JE9@C^LsRPJR++mq~M^o9KkxuCA@dBh)0z4px z;AZlnnXpA7+Th#(xUEsU-)j~%pWby@tR2#7R@e2_=H_^P)!ZukPh5mM*sVu?lgBddY(8X?;3Yq81TKNo#3kWvO%zk;_CQK-cJ%s<|ZO_$bz8IRAHn!HP z?_#E_yLmVfttAT0)2i3vS}~LTABB7!g$qB#(kQ`L2S*E&cpe?8Uv39qW?uI*o~cg% z$vhF@GX(Du(xva%c?AY^XXXld97Ec)GMURD9=Z@au1zht+1Z_aa0IVhS-S&6i zb_<_^#cq*rVQ6Bd1~ulZ5cbDjc5n_!BMs7XyFC%**klvuu5edt=Li1fL@5>EBcJPK ztCvo|F1sMi%`)gXvbpQ3iv4Ap`e}OAJY3*|)v=#*YnTmw^LDJop0O>m@jbcF$9g?M z>){U(-6JolZ^=pyssJtW3nR;R>@mQe+f$)Zyz@8pk~I+9cZO2b8s^d&#YcZ43AKO> z-mEIP7m+HyNE;VjJ|)uK_2Ul&G4XG@eW z;tH{ZMuaLz?lsrb$nEzQL9~B|aDlNuw#@DHyyk`SC*?WGsOIPTjN$U@RB*3~ozJUtJLgxzi8 z1(1kd*TsJth+5oE({~6ox-T|Tw|Ogo;0)_uq&0i!I(g{&7)uYOXgeQa-b~JaEK0Jm zt6^-40l(OGU)!F-g7M04{tykkk_c>`7unEC_|hsujS=jMz*9me_~YdsCQP!S{WokU z?ZX%ZXTn-73Br?_V$};Uj`ANZPwHX(s-LKwgKuSN$>#fXX!J7mKjz|L3%!etx(3Dd ze@UVC7lhkD#(dxNQi=qjUR}YFzL6I`A)XDDvWMG({>1|2=wNb*&^?ie>smS67;C#z zS-o59M-NE6{ix|G_^6~=512mZK@g)W`I{6Vkc)Op(~lT|{OA#I<57qhS9#<3a_yMv zcu?~=QUg%}t``LgSg9wmmW|7Fl)RsxQYV3)ys`=>n{G8exg~`zQ%}9bT?k?~E@HoS zrlkjN0`Ytix^8^BwJ*XAEBe#5YNOMtt1J&-HrZxP*YKvuU9aKAP0`-9waP4-)0G0Y z7-v9UU(sonUE&9M^E$J+j2%ofP_@HGeOudoiZ3*+;|1|Gsl#fMb!>+>5!QJ2GlQ`8@e!dB%GNM%VI$x+{Jul9L$J}ZBtI1G~WAErLdLkpu(Ey4m6sP_v zZ=4E`=&A4IOkHBd5w!7i7GvIw(Rk9SZu$INC3NJ@V>o&>t_PsWQ#J6*Oh{tnUat5( zBCKPQh)&?n9eEA13`__MQEt}I<+LAKdGu|Kk@ms=$9vw!CNC2M2it?uta={DI#pT# zv^~ww`-SlvcNbzW7b>G)cU{gK@{=adC{N?k4KLz6I<~$E7#n$CA1#}0Gf6fG4x{hZ zzdM1pd(^C?WM*aI@)dlEG17Bh9mq8}S?V2NYDcK!D|l;ry;N<`^@oYv#`lzd-{cgn ziV5E}5k7Ow&ovux8y*1G?mAB;TQX+TGyi4uu(GK6n+R$zn~4P6kE0MUbrXB&6MK|w zY>z95jo&N>@S3Es%0(3z-kG#J$P1wJIBEHz>eNavQ7b~Ouv>ddh!{WE&@3|_c{pP$ zs;HFltu;I5Co$BfQ7G$CnA?-vyXKzNDWtQ(lgDm~osUE=Ua3O#>4*RMYo9yk*5Z}6 zk>8b@GY8ZZiP`NP62P>FU&pcg$sL7?VdmR%7zs5t!6EN9l0KqLVvjlZGN(=NCL}ul z5NEbAZUQ~;BQNYqM(JH(ia(*K`}|k!ve@QVnA=&oDw^3ruP@nrGI~Bw-wY#nklT+N zau>TQQz^6H>PmB_gjub7?d3WhRy8y2#ZKH}AQTB?XVd=GWyoi^E*d?!SJYP3c_onXgBTOtI*Bo)Q8(r6@8`2B) zd~Y4=%uJJLij${A(IsOGDBF%5O!KEYiBKCPN=(}g-$DlRSvQQK_I}>C12Vhv;4JYU zE|c&rP>u;C3%l+o%xDqld^!nf{SoS*^bwfRO$79HI+rX=l0qM{))^;;rU#?nVP%&Q zeZnTk!;b8aMCeq$AHFK!9L=eS@&6!ZvL@$($4y#K+JQvF<>z`OOt6Wm3V0%l5gox> z(;4`R3DT%OoFR=}^zYj`_?7P;d4xB({hji-nIA@p+~l)p=wV2UwyxwWQ?jD@VYMId zx5j_ILUWHx=%W=aXK7aMYJ9rSw`4kiIrOz7k z@Cyk@(UDQv4>0ttGM5|K!7fHjeOAv?yZ1WOhmuJ@p2=%eThBdwm#qC2MP54p>eTb) z_C6>Z=Gm23m_A_!Q}n05E{T%+SC*^3uf{*rQ(xN}T`Bw+CWe@E=S+c~{%KbnVxe*a zcfxAvWObV^VjX?A$fsj>zWq9TmkoDF4ZdX(h^X;BsvC^^TY`DB*st7!OjAqv!||hZ znskG(nJ;MHwAeAOj5SVm73aa~a|6-Y(?7Si7zD$HR0&7D>dn}x3YX8<4&8E3Y?gI@ zwg%(-$Tv<=chaM?Z9VPFDh0U~ZEHHU)>W##c}hQd^uHbgCrWGS>%V?UkJw=FrBD7+ zOfBTDXb;;&B_ENx74;NDs>uOwzMhJIm++5`syC?1T#q_$ZJ2fE=~kQVdel4SE%O?4 z(~~(uZ(TAiDcl`aW+6>~Z10H!&WOMKr7f|&aD_-V4aa({eIGO${_d{W^&)v*mxjDy zx-$Pi4gfS90{RoUU@oM&i0LPEn4!9M)G@dD8B!E#xou06L@|WCT3vU5NDz`S6Q*xd zo2<-MaFl)Sy_~NEiQb^m>7rQXJpqM-wvDJIv*%J@2P2R}v$PZ)In@<7`C&1F|h!smgCY z*Uq-MwnXkS{xH1Nl^_*_c^6TJzX5cTD<`#lkAy`Ne!Nq^80SSY_99;&bx2mc+x{hb zRaUV*O8p(8FWjV`ihTA>V5({Db%yMw-?tO7NI4CUXkIDYXnN{_QZsH3%E`Hn-iZhx zvA)8oqu2%2$CCiE4c{l+j7osswt)?`qW7xt2G#`OhSm~D)b9AlA90++t^BEQ=Ho1c zd{nODH&To20C9kb^WJCte(O({d;PI|c7(WLuThX|s)pW%Udj*obSJbSV>v1rdM2V4 zCys%ndpr(=QnV)g*xdV}9h_PC!zk7RPK?Qe7Q~X4O+D(i9OYff?kc^K!}5EQ@GNTL zKKoODX+!{O9C=EJ6LRvU1#XMMq2Ke}o{{e;Yx83#V55Ta^xf?BhWo1h#gMxNV+JHp zJ~#m(LlE`;)5iPsg1I_j)LJ?NceTA@hHkx$&}xg9Yn5jePh6@{k9ALuBTtE%j(ss? z;!V=KrKc6*Y$g<%jtXDRjSbx7^ApN>`jTp6l<~$^vHpq6C$O@!#-ym)DT_V2>w8An z05KAM5a*6AWYtrw-e^LKKv?ZinlA>XU|~}`o3h?J~{k^Un8rq)CMu~R#nf>gv<*7$eD^l zjq;iyv{A!`8_K5Sv>gfdZ{7#11QMAv>baG?;Q>VbG2Ve`2J5K5O-^VA%; zdXw+JqUQDMHyL>Arq-l8Y6U^;KOyKnJfKMgic4BT`_`g!Y2_ZsH3b2J^8*FM?%W3H zFCs^VoN?W853+DHIhWy#PZ_0ka@knhF%cs_D#ut|I&ODP1(8KXli$PIJPp|I%Rlid6GC1RTJf zpu{H%<91N(>NL1h00D4$Aoc7xHP~r)u1sUlx;Y1x?W-QcsmS-g z{U+gNVDf7Y);Ht(PWYi_Biioho_^P+V0K|Y4EI!rAnNurS>wS+Y~l7>e&2&f*_OB; z@%Zfa)=qy6*%>@f3r5{sa~|>WUzy%Y@LOaGRZ;PhC;<*d3@{|!9H7tT@+^Q}J`|z` zlo=-x!|S06Tp8!@#8J;$T}IxQ6nIfRkBLlIvl zgHM7+;aI2B-Tt`G$G=2z@N%EHeD97q+cT<|LR#&P zwe;g4xm1!s?gmZOJTm*kFKYc+?AHIb7b+BKA*1_1J^`fPbu>vxoXDHTsX+qiVlQ`- zw$i9rU?cf6hoz;EoHwvIX)0`>_6`_uD=~oA*2iz6{tyC&cnU| z`d$S%7Hy^+49C*xT?u|qwCBq>@2pu?-gH#kTVK)cc8z5ry;+NgC@@pz^~X?0M@J9t zY`6P4J39yH+)N>!l#XIAf_&hw{`D*FA~OvTkQF-JAK9x+zvr~k^H~HKB{kYxstobe zhr@0Mp3*n1jvp7N`|`z}$emy#E~f!c{U@c}@h2TPT~86<0G9{6if#hmnoKX!-;b~> zFVqEZbCZ3jArtlOO4L_NFVdwb4NH;1>kTjQ=Jdyw&bnvbMj0rf&3pNXQWG;gj_HS@ zYy>0rx1ye=0Si?8)vDJfdDxMPmbc9mh2hm*_up8GJ7*Cc5zSFsLo)q0Lx~-5)A+o5 zaifBMYKFip#3QOmXcxW8=)b_OvWIkp{(1h3wBY}K>wR^rK};PK9ZPHsO%wFp3}i2R z*kyEw*sng5cI*V)iC*3G+}Uo*I^3(Ax1-cd7UtsSbXIRR{y93YH`4DJm9QRJkFu#w z?Yt@ce#7_#=1q60U(>+sM~Nu>*kF!Qi;LLaR=E?1uO%}9MH?h$6tNUX*+?_Hyq65e zHL*BhrZ|mj8dFVefNQn>$bDO&AYBtui3nQcAV0}cAiv7E6Z zru8s4RkMMc*%)pJ^?LjyJ+mZQ790|7d2?*D)DXbyzac1}Shlm_=FlJt*5qiIuPyxf z`qTa(#q5sFtJnX1X+&#%?}lgud|T|b`ewFCjSsZ{LZFn2V)^V3yI)Q;SJe_zn$ zn;gJrn0<5_U=1d~s`TyjKII-jc$-s2-fl>5{Vfn{$|&M=1#x4Dai*U@a;Z9A`cPW3 z8!n!8+PKzfa46z;e|eQex)?p+Js5X(ywX_F_4~Igp$F|&+!{%jAg@4Xnf+Ng?$6N` zLy-zXIh-M_Y3@yOJm{pLm9Lm6JJN=hK9W82`!Tq<<$j2I9}UUJO2_Ks?-o5aZy;F# z6{q*M+q_B$NK!Ig=!ejiZyXFpuAX_Ah1lO+#&`9?26sl&9oJf2ti};f_HiTb>{pwV zhKolLmkW{sZExvfxY;awdpR_56s5m(AV)MJ+Ri{Gv6V5>*bw2g0;WqANT#9vxRFFm*QVo#P-aJ`tq;oczr%nUD#4};hJVl8 zlfcc}E`EXu`bmHKBr-uvPcx6-M>~cA_eR}qn=PEHjgRl9cl^A^pR!SxQnE5fe($Y= zqebxTNC)kp(b^Re6?C>1nMz4zgKp>Vvq2YEq@h>JGxoAhWc{G6Ctof1ZmM4`E12E>jKH=rkv1VK`t4< zWr1qqcvro=&_Z2%*9B@iEZ|7eFdJwIM#Ggtm}mqEZfA(Jy_Ry#+l5{cfMzQEIRq0Aw3>ycj0V2G`*yacyePX<@GE{es;X*>f-a0 z$whEn!owF4)xNwr?xix$(;NTj=&rEUN|mhd2_s0;@8yiF)E>5@eJD;nI6ps6%*@P8 zGV7qXEIk*u$dg9?n9p0#N9Nm!GBlIX4K9inxNygTwh`vb@#Hf~$JLfcSj-~z z{uI%=FMGQ`7;WNy@POq*oBsuPeUzpmUh1>n1|Fetm8>;4RsTS=Nm6()MK;uNYBK6!hPl~sDlfJpB0X3<)dZ2g`xcu{+03;fdj$#uH zn`+;+@_Ayj{h4NX2*{?>IDN#1_-$-qt}HAEK2cS+zhbu&wNc`XXQ$`c-|5!YR%bPx zlNN*%+!RtRZS9&J{~%#u0$YC*z1~u>3|LlU-uX~|pzPZ^#4WUA^IX+J`|xV6{p9wG zD9p!ryq7TV<3u%f~oSw~$o=B5^HKOS0f}VmM&DS_tKnU>MXLsG{kVrfd z8kHwZU+?Fngx^&DMiV&o7jM#DkY#Yrj&BZxb>l#@?&0Nirzapv;EDC)A`WM(f34bi z*tyaSpoqWPKf?}E{}DCMO+Hm;d?RPlpc#Ts8QGbUi_H*zTCm#gP%cq;{dVoKuo=?% za!Y>NI{3oj9S6Vdv3=1t6TbpU)ul7ou_K5%G-FiTpZHB3rsmNk3(EHfG>xho8aE_{D%up|pI; z=Fh?MfoTpJTc)NIgjznMwj)R%VrC8+ z2xpVdnz(GMDRYEa5Z&VisS^g3y>bWt|x%G5AUvW_1qDO#A{JmI7T1i^3bhj@?%a z_qxj&H4SN~T$ctHE|({xBfrq`Vt5V`2a(reda@tOjH;}J-f+0z0MncEw&(XldYz?ANS<$>-e0gp6~)YNw#O!#yNI>W|$ zHG#nm+RR|-0$xPEilrhyVf5ev%et>UT|35UOB45K8bU4AaI(Grbzev|nzniP@Sr>m zcj2c(Orjq9HKQMAk%&YY)kLvYY_>dPAAxJsBRKyR$@@qz@X>JIzzJLvuS`ohJT0H< zDPpS08?|1u$6<<9BgLo2PUg4OL7`-$-m|CDrC^rypH3T!De+*Y*DCv5U`gDx{4uyC-^@Tm+m zwd=2*4e6Sd4|hPBuF=6$hh>qMYi*xmNZwemZHcl}jsaUDw>ZwLta_BNJ!?`Xd#oHu zulzNvVbZK0?WPV}RO1J@X-q8iK@Nfyi#5y8+!HoiJ>6!&3MjvD;cmu(XDCXP9uYoy z(C~;``Mrf?7^g&1awxmv?>9;xLPf-(|dy)wv ze_p@5<-BJ%9Llok&1&T9>{&|Av*m8%B2)6VKZ@kAO#z{f@D{A?Go%l=R`t;cg z5lDR@FPvF_pUIZxDYob}juAreOLDW1e%w16w2SOOFa23&l z`ua0~^~$+JoSS>d4m}s*A!B@%o+-~O99Hc2GZ!&|B{hDxkCMK;LgiYnHDS4%+s>3H zIw>@0i2Qmh1!m3KGkcCM#IcKXqnpv8DtEiUXN-wFAv9t(1J%uhA`=F>UY3Gftp`Os zg=;P}qyXjSo6%>M$@{#{E+clRSq7vwTl;hMD!ykD`lz}datjCwoE1@e|E*eLU~kZv z^tW`eUf^&fMn-nF_9qR_SbC(Qs+zq|IOb-aZ8FW+`3`2H5qh#)94U)fuzPwiCf`8?Ce?dBlG7xS29aZj?9&r6o-)#g$INIro z^?WKtbfglWXbUg{*-jp=!k=nc@h>^%{GFYVaH%@pRJZ)aoX;1qmI1YQ#Q6Ml5Pwwc z8TfgZsbhX^cC&$%`h_8h{I&(hks1>^#koP-cu)|FJc(*2e8jWe9NqlMnN{J}-`eu_ z&Jy9|&$K%)6Y?cOLPA)v159fHXQHPf0?DtTTs^F;IfBMjtWL@VYPF&jzmqTp&HBIj z6-{+A2_y_+?;edZe+Ut6Q+C?|sJ@b*UGw;r7QQ{sCQ!UUxJq)HR zu9S-6HHdy1M4$Dm&-GUSq^UcW4^$Kw5b|xJx63)KPjgsmS%R6A2U95aj;7+H<_C@PL_T7I8JkCX#I_{d z%8};1<+-4~4_QRR3*Rt3eW~3Jg<_?4-Z<1*%#^3;3gvi<{~E1}Gqgnb6Spf@FGzYY(DCaT z?p75z<==#%zP7r3@uIS6{c)-;i4IY->S4h8Cif@k6Jb&-MU>^PsJKGN!MU8uz+}bb zLP3{w(5V4Yd2-V9_G>Fvj9%Hs0~cw)>YKF48f=uUtG8RQ+-8R8edISxtnj>ZO|PIAdg4L?8f(gze|n)!*}_w-Lorp4-t-gHUh7 zKdbM6J<#o$>~eCw(aom{`0>xKS)12>)@d7A$YN%)7Nxt#Bl1=M{8x;?yJ47}1{2Z_ z8fHxrP)z+{z`S=)(4tta0E5eZvz}j_a`2X{vk8U%_|!c*g6biF(n08aUcMlM=E-PV zAE1Sb+fgh-o(1>K&d@0@SH~KbVBUM9a0we!wt(KzB)VUW1N;70c(S%zexpA;SdBe+ zJ%p})Ct72!;;U3MjAV55XULVn)pqu4>D&e9 zhF&Ws;f|gWgjtMW1Sh~6yjXFsYMTPQbn$~GE0}wY+wLSHZU~O39U^p4t{K~DpCdZ* zB6KvF59emdEzVkppsQH5L_W@^r6iGtVP`u7r=WK96!JtL_Uw)KYde&y)cQ()a&1Jw zo$Ws&A?!|kZcA#dOUt5~`5Y_&8^AkUuh6_s=>U`4qW5}EnEm73Q8#)m2GTyxOd&Yx zrle>O4$wI|QO-4z5Wo!MPb#VdWV>q8T~OYiwwdIo5_;;ok|QPP#&w0~*V!(zDM@PG zd3{f=nw{pt3KKlRqCKP(m<;|87iv&71$b z5wMyF^I^y|Zu2slUEj-~TOVpb9HbZtoPNYG{(|=r2s^iV@3!$1=_IaJEiOA&F&lsZ zFAXPMiRymm)w@F{SI=fuXsgG^Iiy7mh;VR&YYdXxmu?OKt5ipSu*e}&=*%!vG|^`k zSC&Hbu_lvq&fbjfc!|C;v57g6q_(l6+N+ByUO$6!`Vm=heFqWqkZ*WJ$}F_J?sVk( z<`RCt^djeZI#<-yS)QHF%I*t_ym8LDpOmvrYMOzdVp;mT zrUMqxcm7cjQOwGkIkT~yiplUO+VUU(_1o#NY(kd|k-`d5=C+d@9BHo;TEIrxuskd4FYeAs&98Z= zj{Dt=5jn-hzk`_RYz@nFIKBkjK4caZIM@z*{bdM5f^yKl7K~^UNJmTxt*gy=Y_r%b zO4uFq4E0eaKwW@2Tyy?fO=Ac50Yl)y94Y=V{k_^P(%jB#UH=V*w`aC6M%K#4pzcIeA$@ zRriD?e){m(*P>ueW?e<%lF1vGU7_+7V&#DCawX;mz**i|KsqAfg zT)#275a_|5F-!U@)rLdl_qJ{OsgY#zO!om4NW+F7_e3#s7 zqx@6oLk5CGi3fDHD_mj~;=q=$V0}!y`z1wNUj3*8+m_I;$VItMi{={u3Z7?kx07+^zIpvk6;T?o;p;U^kTcR3lwl;b|Tuy z#1d}T?pbfZKCil6v5aWVZK@-Ej6(0_x3+pe>*ipxypT3lUo5^zKI0DfYH8)w>f>Bv z@Oo(?bOlSqx0g*4T{>cJSFeRw^36N=_+?xEYX>YL0^R)&6LdPhkI^@Ly=1H+v-{e; zOBBP$A^pe2Z)hmO+E;Ogfr zKwRI0{g44AC7@JypGyO5bg+&vpwJ$fI_llPo@8{yg%MSM@C-#8>7@`3dWQdiY9MFF zN>Smw$2r>Q)VCGbh(uL8iE8H}3LBPC1<&fb6H^oqN&k?G+=rvs>iBsN6yOh7Vk~%Q z&4!7pA^lnOfjI)? zB3aB_Bu@Vdn_QDvLe>l{O3dw7dxq1@IcuQ&R8MRzsBn zsw>1d?Sx4jzCgn-dCJ}kfF}%Wzi|S3w}B2Z@IsCtiMOGM8yw`iKi{H{ z=e=^H^~e@tZM#{0dNtGPle&AS!ch7-i9qRz*3EyF96vw5#AhWTdF;hFKaO0y65PCA zfw5=%j(xV~+hID1JfPx}kpZ>)>Z+b3ob==G1@<^jKq$);Wh}P_A$ z?rtE7AT`&D*dKhY0Gux6ThWRNrBn;sDarun`f6u!Z110$S*783ZvZ^m@XsyuIMVq+ zl?Y0Sx=}hy$5_yqYuRs&S!qfM&X?y+IIHKS!bXsNUN6x@u!k9|Gecn!f6h)8SfNdg zZ1oCU9HY3s4ex?Q6?mgtT0D-U^W$J-EO{+rcH~jFY~zr5?pc+5#f^}#%2k+xqg$&~2wi$f_0Ok}6tG8D}V zy6XS<4!AuQM+iP2+V%-Mowd`>x>;HsySU7=k~eysRDG^ z7g$&&-_J7pgIPuAqO)9zUBOk^p!a1<4>OtDWT9E@%V(ZBY?7SRveeCwS!?FdRH0|aH3>1zw5OgEo8y_kgA=AL8`>#@Kv!-Q%j1Y$R4q%r zuMH?mW`P?_`n}QJ`RwtEd$wKl z-|qLLoc4s4{Ftq{^?U=g+N35s+wc5;lK4l4uPVFnm1YVz{;u#lVL7#mSC{xup`P)l zzcP7`yv%TGn2Vruw}XstdMMr_Nj#k_){4IHjd&)u7Dt)5&WH~A&X+dU>>L4R%v(Lg z+55L9S0_a8YL)7Zf5d7d>E$&CCRZdH*br6PdUkOB6_2Wat*EN^6Z<1^j31fN$^2E6 zYGl;#sC~VuI2NxZeu$$*;O5TFEHfVN19|S1?cKP&X{NX85cm6VZ;*|m9qp8w^F}%&f`l_LR9*m?82 zOg!70I2=vs1keS82@Jes>N z-978mjzSH#JX*YL*ES3C5{M}$>aU<>avmm^C*InUxhxcq)KU4lqp%hjvkY=2D63cB z5NPJIB5yldf@zt}VoQ(Xuhe!#Qb98HbE(w|vmFX%1Lrib)_{%S z5#jDa#4MQAvU~Wcf#>nc`EMP!RiQw2Odgwh5&DmsN4hsi5>i=w6Odyx6?NpA&zry6 z{o*t)_5Ke4%0M;0k$^XG(Mf9Hu4Ji6%LVgbh*LMGgL>!B01A&g^;z=r68O>*COGR2PMKvA zvv7t_ZtAkfp|3NC(hN@B+z1Ljk6Zm2SsvjJ>qu5+nY*K@5S!KRZW5h=9vv)FQwjo1qe**<{;k(H%2V?O{ z`Fm;7gF!^6$cr~`#TMGAwt%VW;lSNPE#T|&@os|QPA0a>q^SWB)1~E#o*XA{&oUko z*-4!N9N6|V_?xZvK;;IkV9;s%ssxf#eX=ipIadIQh=~RxDKV3^jUV>7{p~C%S49+| zMq$H9ob-%?x(n#2$q$9rc%v*~;Ay*}af2l{&ccMgsje>FWCbrpu5i|6>|=ykt0lp= zHLyX1*L}6o2q#;Iys02iE~z8Wq?aAHW?LoNSB}CUNLsOhFi?W8P9wG(%29rfG_DSK zH;y#v4eV1|xmZT9$qc#Jt)+hn3wY$|c+S!X_0sZk#B$aOI6A$k5g3+JhDzELa9Jof(_&#l!unkCA5*&)wh{@8%lP z8*GJD-pP1UWnX0=Yio6!M7Zg~J0sVQkU^D%my)knbYa3Gw-_;M7Hm)k%&A_jC=dvW z74|<6@Org6Z78)p`?bqMqb#cod>MjZtJSf%E0HIYx2Er1uT@}vepa5V8b}V>*&p9i zZGvlAoz)WV# zSFV2hqWSQf=-*b`8c9{yXGbvxqgzStCCxF zVy^~ET|V4c$2(gNcsFM}BqRc!G&xwpbgW5oY@jW2Qdg1Cd_`3FuSiSLl3r4KOl5{( zbI~i6#!lWBMx}}DT7)7gN0?p=6!m6#A95!{Pox|{6VHXM9lfjj1!EScx#1+Zr`%j{^*3QT!D7&p4hy+`=pI$_BH*eT!pAUS2LRBxkm$=`Sa%{9q$2M zsg%{>Rt%%kXuuPggcZ0wux&vni(%?3Od3vR+Q+!qWe8Il!7lQ3&Yf(SW@nxZo%Et^ zZYY|@D@1CUldPHC0Z9Ga}-aIBTp#YJF# zNDjn`0q2M>7naS(0O<-GNTs zgHFxQ=nbN`#$f%R+Y*Nel9srN?ahp`oL4DGCps$|182G?O}0z@gLEU_V0_oqW9(G} z+XTYKcPLO7F$)OTZv1@SFP1MXKnGo8niXhFm7!c+zX6Qj3!{AY?>-1KQ_}_BDkAO(XhfAE6wA`u(eTReOJ z%Xy*w8}z{Kmu+kYOHopT@2`pYSIQNbotlG*+9aG?I3vNgIkKQTBLR1QentVV@Z-oZ zk{bfBV-kelW7jkLVIo*5=#dIU6E6v))>N4vNDw6sz(&q(=hZN*%PJD&X}R+J^QT#7 z5!$RPQcC>9eaP(ujg!%2Q>|2C`|M5$#MP1O1Ni-?rY2y^mN`WY6sYz*p=;bWUM-63 zoF&~RVa}SLc;bmD^PL%W3Kj+(u5@uz?W_adAsHwXU87>XCClZ}HfPS9iMxB4q<1t0Oua`F>Ta)?rSv-%)eJK;W92or&av-hX?Nop#I9AQ(F}Uz=ttD=QJ` z@;uu7cZ|BbW|4sRY&h#ZNlOt9vS#89K7%Hf&_bklq%f(6l><0`sIdXx$=bAJzqOHR zbM>7k>+(BS)=UR-RaY@|ok$W$k*Pf6xo8Bq+&hVnU4>O zdkRIe>46lMMAGRe*cYs_t=vA6;d4%K!+EDXKYks4|-_|0R(HIcP4Qz;mEA%o# z;TSRimR!iJBq^|q5M(7=9+e(cXpNVALkVc3T5D{>?TN>q(3U|$!tKbm3DgyfySm&rA%IQh7KJGm195jo>9rT;;P|4MdR4>|_SprP5yxcsIe8!;62( zT#k@HUn(X2MpdGmE)Z(pZewm|DYgITqg=A=O$HsWM}O18Nh6@#3rk_e-@z>@Guen< zW6f4cEA-{%tIg%*WlbjJOxH{UV5}saSHmU(Z!27OB!6frNLr0$f2ctpS=`D- z)k?)2Yo5k-IqO9i8k$A5Dij%-tSRJ2Hx0ZM(7jTzvyBIgqSS{&>}oWco0A5Z_3x~_ zyBbfi)M(@TA0j1qLWtz%xVf=r*i-UYgdj_y1KtfbWV?u{t9(Putd>Bz8i?&a_~3(4 z`EcMl7*vFfAN2%t)6ANuN$5)`XT!0~u2e=p*DvCi-0(ba4AY~5c1X>cGwKK|A&A$d%#B!MXLYu5 zaznj7+CiE^{)S5ni<`F076}Pp?YX8CF_mG=eUP8IqGcoFZlJbRr~}?j9%Ed9r!$2_ z2D4~KU-mHVz_Y+Rm zM!-4?olgXRCK$3DvvRCbz*Dz8E1}e|ggIMAr9T!aR|C2yXkHE448!U-Vc(_M6vGpF z@-Yf6R*fqt6$(C~l%xP2>nl-)955scr#fsJLo+5ztZ*?g;X$j_mi@qA6MIyft0mfD z_biafk6syiaBj=K+FWVE;^pN~+wHH&DD}ZO0yDWHGxJajt+I-Uy>~n-5*t7YkQP}V zy{Gm$@spl<>ZuT%J(godcLlXch@)nO0bb0*DH|gKUhc0;GbBk3yg>tZGNJKZFU+Hx zCJPFd28W&>y`D=LLOA}rNmi3fRZKl;Rw|%G-JMRDgj@8-fXk&aoLe{ztE&xFZP=7H zFq>Js(_b1%p-P$iYI0~cTaxX0Ff%i;rU@Ls$K+&9UX%ho|>wzd9T(BbCpg^RP4YjkI9J|Ow{9iye;T}XqBK@6Y^U6sU%lp$7uw^Ho0Z| zNx2xJ2vW;N8XMbB!H6ZuDI)OVbSbB2xF{QDi1i<2t77lzjknuX(Sc04I;pJeQIAS8>@%9QUP6w5zk@22U zqzFNmC$i!Rax%1DCp8Si>})b!o+O1g9yY4(*^rVki9gf@P&p6_!w=D!vr!cjY}HrN zhl4#yda`C)d=F{7BJg4^UaXXNCNV>Y;7g5a3in!WP@@cx ztt%1p6)q;&*%-+U-N4xdYJQ(@+b;?CRQxDtq^w1)*(wVc!72so7%kagxJGHDF;KqI zrp>g1xs7>VTpuc&l|A95bTv=A6{Kw7p=@p$?5tSam;3Gdp}VCJ=_o8TZ=$428NK$& zC!b8LNX@Kd1_&e38mW>$MV1<(4K}_!;T49tRuoAMsXk*6>b}AnYHV4M8PP$G4Ld8g z1|e8cS#5(Ybu8H#Y>=lxkDMb0tbtZ68!m*vyX1g(IOK+9Q*JPIUz$y$+zqC-t11v% z+{)MvY|7?rxLM$suCu~w4hFF5VZo70W?0@wfF*n$?>CEQsxj$no(!DvTKw@x(xaiM zz^hquS);q8;OvQ6@9DY1aFelnH-O6B5KZ^2|Ha96oc8Oiu$Y_b5@r$=kpk9Qj)w3= z)hCeU(zrD%3mfBkB%{{QikO{@N3R{^4A*okqehK<1cN`4GkXZcUWUMc&n<-oE^Xc} z%|;uOSHyn6PnF7 z=B#u`;cPv6nnhB`24iz9B^YsdR^v}E2$NvD<~W0(%-2XV-Xa1oPYtOtTJ9UDz?b<8 z;*P53^bK(`5Z-~P`+2eEU|nkI-F4$;>vpRn*>ww?H-)oxgx$oweC+t$SgMiz4-Lnk z4O}geY8h?Bxm4r*RR-0^JvX(RkyVZFpeq!)W7-h57Sx zKbEL9^k8aW*)IpYn?EyCzJ@cr!OW!S*!Vm_I{FaW;>=TLe-O-TH`5JxQ_NSz93AjF z+gLGz%ME&%v9YS8dPd>%Y5b{&!f4ViIT_HE%pXOWp{R`43Y2CB`%+o=Xh3ma7z~#$ zu@V}Sk$=?7SZ!@QJBhRWJAYzl>jSaumbJoVmzALb#0b3TMnCg%+S>*S9d`Z0$c$gX9Z-l-C>v}e)A5|r6MdzeK?e8 zY?7aSJa&td{&Q>?ubGjIpKUX+HfyI;8@6c*oGrU_h0cm&Udq_&vdCk5CZ<~_7~Ttl zCCWkfNFBQq!4pr1V0*v!AQ?Q74&TA%8i8)WbeY?yNXie6@eZd^qMT+L>*ZA_&?taH z16f;II|G0{lj%mEA?yhqHfW4sDV&n4xVt{wPquHn(+QGwkKL-qv;VDaq9vsUJBEwI z_@ihw&TcJi7j0z2g^LWlQ4j^BEd6cwsSP&EEG<}}Ki}`&IeasKp;9fojkWcf*JRtT zt~SRi!M&D)M5h~ipT|{zM?psV-bX}qJmwcH&s1wo7-ipinG!n-^bRtyMy{>-g@vbgq?EXtvv9rQxSn5jIo^ z%+MQ^zVfwkVvYxja65hawAEkN+zdBtWP>NrDh2H)OJSodaFDbWxTGo++<80lF^oEZ zugy`~oX_HigL;=V-CKe%jAKx;LRfcG{VoLEN~JjSY2>({#U5n)QDxfoWVz@Yy}Y^# zjYd;_9_o@;V613Xyvk zac?6I#{BQlF2RTfPZSn-u`y(0HEjBi+41=D=Aj24f*Y>CUI)w27dDa~Y#q8;UN=x_x7+LTJ!o^M<6|PCc3h&y zE5q{AssiGYS4w>MR;vxGtBs*z#S`_3V43eHN>xI&T!C7v5{(7S`O#{%bjAyz_JgAlwV;VKroNA=P)(LpF=RavO~XTwYq1=a#(QolMyV zU5`+6T@ULZ0}J~~1=~=rC_JyECb}0cT$G=?to}B?e;a{!Wq5#>*y7aeL?WUQFD(LX zhh67((}%`V3ob7=VQIA$rXaBp4_X~sCQZ*EHc{bMOR7lQiX~-JjevJ#Wrm^yFE4y~ z(3Bc@5JkeJ%$#X?!96BLi118K48S{_$vAllHgAxGR1_-TI<^G@?!v-i1bSIZv)L_iy$dy?@Q z5u^0k9>g9HIPSQ_z@N_x)G}+p2yd(b6gz-|7;nSYS;(D?FDHYVPsTvEdN+XezSKlb zt`bFV&|O|$flHSb0$)yVxFVHQD7HV^9t~^0nzkS#VVCi&vICfT8w6awd^u6p#|Fa8 zM%tCE=)kKb%P|{}&(_3%Rnbc(HAEdoBs)-A47xrbh4U=vaXGxm2H~(8N*h>FWE`FK zgniAWuRgfMVA)tRy^GGBI~TP-*Lcm0g3Ly?*4j7#Z#Fws1uaFycCo?FoH=6!Rq9w# zhhh~h^jcB^T$YCZ+3w2fs@fzQb~h~wpa|I6SjMh_;X?))iiAG?EXi|l-0_XIEan{E z#(}!z81HZzPNV2f_B0xCHK#2bnGjrB5V3aVa5Wd0HPuGi z=&9j_THFG6NkKuUZT5hnS=p-Ubi)N*9>LjLi#P6f~RS6Q~wWuDoVHPb8*4;-2z<%I!6prc zrV`}H`_4Mx9X`O-QbTg4q9sI6XlA|~7 zMEY!=^3+6<4`;v1Y{qq7H7t;@2$9O7&3zUgOp#K8YveEN*rEZSS!rp5 z=La5mAjw=Ze0gZpe_pxlfOlL>ZM?Pp0y;d1C|E_8;zWwn7JK>lR@X~VE~>T&Le=f%+mqE^#e~`BYCYOiVj zxg_`-)hJZPGR=L=WCqD<#kFb~N(8=6{w-kN0_75ic@K(g8LB}>wCcMHPB`0Xm0FL2Etx9u={zP|W-d zLVqtDZ^U|u0GTp_?ej<7iVnOgUjt^V&x-xV&Y=?Fgm+>6r>n2J$}T-*u>g-TWuwy| z;MVJ9n5b7_Vx|IK#Z!@Uf~s0D#Kyt976<(xEhVO&EaMj$_$E&$irO0NfW|Of6^h#< za8U^F#sY5%8mmocwi;2JjgRSJYH<$Uxc_PLTj&GN^E04PQYrx-(t8y@=WI53c8>XkjJi5^`Db#*F13b)42hz4M%N3>-tX3;fu2i5> zv#UIj6cyUNZNYq}9wLXhuQSfbR->}OGwXqbgAE7-|tyrZ=&vSujbS})g^2soAQq%D=~ zUJZGCdD+%OLiaTf%sq?Xlj1_-Z0NL+5FEwxr0en`w6;JB z&URtMeRvBGyrD&<-pwV9IUAE^hm4o%MOhhR7APiW_IzJbC8BP3z?rk*ro5g}ZG~t> z22gWZih292tgJ*U7J7|YUAU-v`8WVCW~$dpz1xy+aF>=Ke%$CpMhGK7dJ(^@x`5XH zESF~MRl3HRvq3U^u(@3_&z?jEKuAjm87DxefC(GW8mm9_Xc&1P-f;n5&6k&hY+CV4 zuJM`xOD?({s-Wuo$yuG4Z^Q-C(HB1&HB+Z7I2(4%WnzJCp_f8D!v1gZ?WN3Q#BzDX z?;Kyl0q>}+lFV7u4_(PjO*JY3WF$lv+<{zJz_!mW9cWo@a623FF(l%?&v!nwQ6iG7 zL@<*@g}0x6`spZu3C*m#X3=;Z;~hE1E5y^*>C^DZP5AN}3DL7_Q0bj9&jy(T+yP8o zE|=tHpm1_U=nH!YJtI53yVJ^&v|U@^L{U8(O5@pQgq8`3+{L);5Jj-jYkZOF(O{D$ z*t)7~2NqN?(^-F=*d-v^&=n)3gx8a+CHd`UfhDaf%`s&ruCjPFER4Dj?^pnD*hp55 z*Q`9uXIE8#&*$kN^?VFg0CuS$9rzZ1eUZrIXCoeIBZ2F?X~koC@~Xo2*KuXMW>gGk zyF6z@A~Z6iGYG~4^d*uTuIp`U2{>`KM#(`~STF%7*J&B3M*Aob7rE4cJDL2PvXY%G z!etv5;7zdJlmr}+MV<{JX1S(sVmzzc=l8fukOPGEwo0`k2d~p>HiWb!2!}mNEi0WW z`tTBS=AI3fG?0$*7HYwi5;{yBfoef%9fwDn5ugf6c9Sdu7$=K%fUy2jg9o)*&0UD~ zg;j=W&yu^6bMu8zOh-ir< z^iW~pio9<&>#fym&dXt=02s1$TzZD@CnGW`D;Xz2w%{aYs}KZ2wTf^B#|3y>VWX{@ z9mLF1MzP}2jBG~Y#97ew>E4+AX}WjtyRn8zh$bfM@?3QrZtD%ZjC2HAuCI-y2uOW$ z8H-nqobd*!S#^maQJf%1bcKGNmkL1=#-y)kd3m{{pve!cu_=z6I+_P@;meYUy&^>3 zEM?9%P1?;NqnOWOs^i$T*)|8^Mp~fqNFsCHm@R! zHNXh{cfdRRM)?{VCOGmHJzEYN?~*AmXp)1#D5&7F;LIFlBujB~@qJ5R zg@}t=I^=a$9LzQSbVJ8Uk(3sAaFID?C~6Jat(lRGk4XmF3l4Zk9C*VtIPOjZI)Jt^f&B-H*{>HxW9i}+TWvH`yUKg1` zZ8C#ppCi+w17&9a_EIHsEJ)_OFvu20#S(FXW(~D=Eog;lW zT2A>1mTN}25kv4`^Adiv+D#X_>@43zE&Dc>pvomHaIKfE_V2S81~mzs}0Rot2;>$>6yq<^DVG5ZmcPN*T@c-;i6WkP~mZ8yfkx0ffQyAUfvOT z=&Nk%J1ZI7C7rlOkjCwB~=y^njbIAy#TsDd$gIx_D1-7 zQaVVK8+gdDIT5h&Sg26paRuH)=&-s7mXJkid^5b!Ry)dP!5Fk`Gv8~IxC|^TUxZ}^ zzHXDvSvKo!G~2MaxRkmft5sPM){G3w2bW8CTJ}GARzXSO-(1@@Wd?RGR60nq%9!;p z#du|7o{=5x0B>vpU$f*pPnKf^Q5G&7v0il!+{nC5lp6xKWFIbEJ`Wu^Af_i~l?361 ziGBM2X6x~*gw?G`7@?}e!w`e(nFG#DC{ukXoarN(LPWm3o=%2` zgYn3JolX-LmK*AO2F$lV!0<(9u-+2L%sT=uTwH+WYD--=%&9v!Hx1=l2`c5`V?d>{ z539|lT$(qcNXKC|1l#gt6`H>23cP6TrhxWJ8&)rMpe5Id$ENJlF9%(-2&@1-+6`UF z)U`9xLE6S3Gm-}jrSXm%@TN8*_h#TrAxheO{dLzVK%lZ-LGtEOf(CoGHR&+HuNNzL z2%!A|uRm}%HFE1imnH<Hm5 zPX^|*+v(`Ku4ONTfH!O0Ss3qWC{Q}cu>@XhJlViYVPhH{t)z7Z4!kOeLebfP(?+F# zf@~o2ZbO&k|MR?|^`z}Ls%<@^;iji2VC(jIefjEaSO$<5{+_77%_|FsESuyud{yL1 z#=w=klUY(i7A_rRgg0Z@eYEtDywR;76Gg8jmqoVRqjB2ExH5tBD9G6v<>WWNb&9%aqH9aI>{@4Ini(m^op&yp{ zNizw_n;y9~@D8Jrn>ZXAa|})r5avpzP0cFG&1Yq_;s>pn%yd)kWMO7O2fU-*X+*-E zEDL;TX@ssYzOZFD5Q)g0s5AM+s<|dqJvwHxN?`XVWXZjXKVsn6Oe6L%J@ctV9C<;L?Q+1EE04pm5M_jXR-WX z7P>Ubz!M-p{P4q3fJB;>KTaCITQsJyUb;=?ODL;SS~#S3pRu!0gq?aySmTwPzB`^w zS2sV}4-r~sK4D4_q4W@E`4g!rSPhx4km(@F#+AOPWI5QllpZo`w#Dv5E@cW}S-yiP zM3OpAxCATrxB)d(33WU^AV8Jiu2jp~uJl@S6bKN`=Xu1~EuEI9%taSh7HH;t`yxzoeYyUKmF9xaPZ)PFgcFBqG~YX`}m)hu|FN< zK>4qhhbRLVdTF#;9rfKxD%XS$?M_^Zdv&#`O2zaGy!bM_#^p-MxsZ(%J_|*lgjDBs2I?_^?@X%88j-)@-yC%XX^6uoGUxbAd;yai3fUvUr=9`$;P> zYkW>&Bi6>9@kVk3)?edNgRMgln~gTuOxA18)~5dJaJMUqLixg7r_qufj2o$)9dk68 zVfZF_(Z-x8w#+c@z?-NzEJQM~Gw&3X%NVFh1 zPPnS0QbLUVMr{~ApC`x3T3IqH^v0TFyp|0%8wf|6YfDR-r-CYHE&O=-Ww783R~cvK z_4eItH6rM%jSIm<2*Iih^ZIK_qGJ*qXTB*u?v0QXwTgNf#~FAN6^G66#YC1e2$MPc z0ZK%EyDCwRpQtwlLb&C#v*KtArmB$G%bo(zf6xuRapaR%OV zVdI|6k{Zm6`av0>WXQ0U5dgUSvd#*LyQ%#?+H?!fQ4s;qi^$r>mxb{*i+VZ7Iq*KA z@oMbW*l45k`Sa&lH8s8VT2ygW9wk=v&v#{joQ*#2h9n}nIp$lEp_9Gv!VCT6W>6Y$ z(JBi&#v62)NaGc$MJtmmII2crVZ%`ejr1%xV4W3=@(Ph2xn`+D7^H(t4g{|E8so3f zp~6mT2+Zow%aeAPPT$CQ6CDni-i2ohs&F!cvw~Ti`qU5mJZQDnOhAsti-ql`gbO3v z#f&-^i+ml&9e9^Q$zj2i8Y~Q1J;r@`1?!9y#pc2#oE3A0Xp#(2;qp{P*f*pHzCtuf zOczg|!q!=Hz^gOfRU6|?Tqss{0XNt*X~L3<1Ro*{B;udPia3rn{s?W(dmtc$sM+ zEn|&>CmisOfz+^|fhA+OVEzrUXM-O~3Yql4nX`g1UfYA38)bMO$qZ(YM3<63g%6%^ zz?%|8!8?U-IDF&TOqSz|WDL8XT}#TDvk?X0B(oJ3gvS4)&pWx6*~^T`y_EVmLph&^lB45j~2Hvo7 z7sAHYI)p8ED4Fu*wYkWMWZ_F^&Wd6fkrr$s2RWyO;S#3H2RcD9$5+Y*_E@l8$9Ng* z4I4cnHP|`}CH(-<^N{k=KVaExbLMQ6E!y+&^q`=$?0nBW^GvE-krF(Ck{|B7TrB#v zbif-l@-i@;m)8?Bb2s3DNk4dwQCotX=zizf;H+pXMN5tb({OxXflC|6W|VXv3s*7+ zykQ>!i%VHzrZ;X!DI!^ARiS&6yDRH#3{Y5iDI>%2VOu%!h&78X!Wg)cIpB?fw-Gja zg5{cj(;2I#M)=Af_mj_c5bUfN7@O_Uz=;PBt+%n=6f1n?2?xA-W2ffjwI$05D($X@ z8*r?eu%Ua6s>bV*kvmIcw|Sm|zC4s1CoB26rJp&eVT_Di%2sVNyqQ@nt?*^oleA1t zqq?zHDmmbFW@o!WEm$v+ds>9mwW)G2ZLFo%RkM$cv*0$@#->AAUCOf9pP4L2u<4#h zyLIVgLv7`fy=!nOWn2y07%L-p+MSUp&{?XKpjCU}|;( zO6xI6m~sOoWw^9*T852H@Pq^2*iu7>(`ISTdLxJxwHLT8Mt zX{ZccvOzDtumG#8jp5hA1KAa(w@gBHvbrX=o95A=Qww308O+*+DPs!BPvMi}kd1Tc zA8zE?fQ^5Rx$L&FVA6RhgtA0#GATe^E|;NFku0(joGX|P;8tsus9*LL`J}E9)4GE|63uhN#x$VK^Qbn>4 z3Bc9i23{dzuZ~Wu1MPMPIvrmR5*g&+l|9=LOw`Kdc1*>Bz;wmeqwi{|}0(fO% zFDw0{NoK~zmCOOJ4!kOQ&D?oSlz3;4MN&iPN<+^xncJB&XW)q!o`dpK2P%`2MOJZ_ zdHA(K!dEYvUGyd8APvEx{GyTsjd=y|!(wW(fxty-a%xh$KE5bJtKA+drml3{uxxsJ z1+Qa&*AhXuz3M}|;X`v(!0DyaVBJTftbO6^N!j}l@OxYhjEyUq1K!vuU&C3O%wU_j z@jkPjlwtz}z#&-SvoBq`1TUWbXTfV5U{R8jh5;HEE?j`c#YGkKJ`RM#vvOUS2EQW zt~;tufsK8uJZ^_Byv}5_+72#{NvF=pXac=9&rzvVV0wC54H6tIrIKqZXM+J<>{r;o z^7cirta#GctTnJGDJvuhwmfc@#}(t!9**(GhRGKeWksmZQ~bRSgodUYPHeW5+jpGE+yp(SXMCGBlQ!pt8I)vYn$nH4Syy7WJtq zsMPCLNom8EY2SIMFVMw)MMR)ii)4iq?*v|F4L{e+Yn@`)soVM1f)03#X0+7tWk)HS zOC-{)OyDKY24KJpeCd_$x7f9Vo8bGz+us3;Z~B)YM^G1(XyMKeK&!2mhZ}CIs{qeE z2k_M|1N_-%VdDA6;fjem)M~Z9-fm)M7Uqv12k(`yf`ymd2JP)T;m3CEP>+>U=+iUp z4*cZ{7hvj;Ji2AKfPTnIvdAm+J#H zPp*Ed6%?S+;X3=di;FP(KmQ1B`s5!ZK(}w;HCA?fte`x`Ns4+-NER|k1MaU}mdA4r zc*oD43mYFhLDlSNG=uZy60g4&#Hd5;W@IpqUN;-~z(Byl*DwC@rvQ#!2OwFO8gyya zY6VAo1LZPwSHjObdj*Fo!F{vdqM+^hz& z=Gip7e}AQ{z`26}{qmPV=WRc#9{a$`Yq+c(7UNt<@3@2Z?+Q5E;Y!~H)G|8-6Uqp9Eid+OnFo3h) zP-;jk?_(CdG)NDQyRi}Y9q`6>A#8l?1hXdNO#@#FjZ`jY;pPIP0Fs=PREMW!S1+0z zA1Lbf^QQqm|9AM{@a6k$HsuwRm+;&713dm+*tTyU+GrO~rOaRS+@ve4fr=0Vh|NPHa zckZIYe|d;#1GTAjMeij;8?LdX#bLUO z7gA*3KAJN1R2l(R9a zuvBA}L(na0r#6Mb_tV77ub@5( zbmKli8TVkX+*YVA`InjJ>R0mFFK!)2?l-oyghqb;Hfp>7VT#PUB=EK4K5@UeZ`{A` zhnAKU+k7u?PqaD*TNN6J0GO^>*x7>T}-sJ15kt>o!~i z)C+s}Xr|jsfzairo)TEKP*^j9cK_~vs=nbysxW|SZ(ybI0N{JicmGZ6l<&F!{;Z(O zjgM=8KT-j3e+9sse*If20DBF{esSNpfAoXy5A=&1qpsL6ems`;cNlm64)P$!DB(P; zZCT3KovhdZZ_SOh!(;Wp5L~Vh>}H{2V%0d=5sAC2&`RE*Re8MbxXLlr9)CJa8vB ztEGL9pZ=1j^zP*VtOw{)K=A$QA+^l^*^it*{`H&maNHks;}+;<0KM7ojDZ8__^D0z$7TsJ7}%h0kdq6p zWw5MQR1i&?oc`UwfoeTGGV}A!Y;a|QyV!08E(;e>F9ireK^MB*jlcLc^}gy_2kd;9 zCy8Z8PVoKwEkfabkQRLJj+~%NKA`LVt@f*o6;O{)+(JA5&wuFa4h+5kNYyX8f6z~n zE(BkUBgPZsYJZOLha5m2(wK6>ksFIZK)!;?B3hXu4{6bxmg>UxXt0@Y7S`MCT**S? zT4wWfDU$-r)?i!Jz`~e-uv$-f_)jMG?Q_%xK?g>t8eH(__i!bW$I_E=khf3gDO0<) zhmJQphO|X*<^{UZp~Gm)|NRM#DJxB1`Wqt}o_NKU!3^MA#QO?k8~^rkyt(3PXQS-; zT?x9aKKsgtL5umjdcs6ndFOxAlsmpb3Cob`2fqKFX>?9fmbg@-vvj0 zES~{B3l!)U7SRPY!vcfu-XH&hstOBSP;IxB;uiQ)0Pww9z4_3mZt+waQV!6Ki}x)S z=-S(uir%#ASN}spzN5f*$M#_0Tf3c(s(vD{Wq{?0b~UT)FJIr~4GnHn3*Ml@relFYH#TfIy>Q!Csmy>b1D@CNUNX&GY6m}+ zf&IDMKPc$7cpQ6iQxm;#>zDOIB#_!c^$+?9{iXX&cgDLsW{?wj?NtFwJHp<9%8@_Gt|Wy7GK49&J<-QAbS!2h#c<{emLZLxX{@>L>IU`c3yA z`mw9V1mnwN?Ym!rmKVs4lq1MhP#J{G!mtM5O_B)zwW2dw-R9@LkcDA)J6Ez$)sP9Q zO-evKUCO+2^rlf|waiLOn$G2}&G$XARHOWIHb~x2psq)Y% zXKhUijsPGVH_%BFCj@dC1L&^!$(__kP5#-{L+Hg_do=i7G-yEDjLTSnTWSYZO<osUPCM7E@jd^@88fJ)W(37Axs(bonoTo=ZrKa$vx4rC!+I${y=S@p zY}xJqMyGuHYbl>ypN4)yf2~mcMvD1swL>00&RN@l0Zx?Q@EZSdPU^B5T5hBqjf97cHXX z!iAK4=+Dl2cESWI`_^}8&=ptG;DQ2A(6!mI4Y~}-WrM0{{T<(@G5`BJIn#BbzxJtq z+pGGIssm3{qo z8d6x`3AnhPR|G_Tg;$i_7w!z*ph&j}DBVN13ew#$ba(d<(kb2D-Q5yONDZA*Lw5_@ z`F?lZb^nC(uJ`Qo?7g3WDd6X=Oh$YDlM?V9WGFiu#N9KEv$#I{`sbrNrRHQ=Ugw&e2k3+(*Q7-~K{tp#o%;kzLpA)WE*^|Ic~#ErfMtIEKt>b+O(m!kPVm<{qAqQsT^me(AQ`F9igj zo0crs=D{ywh9(38shDJ*VZg;Wy$9yXy?T4^6E=eNz8m@Gv zn&Xh}bcCPSs2*Qe@HhD#yv1$+=m~iOI$)@im-N5|Hp~>FE984)8;)N~t$xP>jBV%d zzX{!=VRIW0iHoO-8eTWASPi%KNXX>By|jk)${$jazFC^D?ez{yY4dMksQScT&g~_U z#=L_F&)LEIjxjVd9dL2$t_h_^WN<%SP2ZZpR~qgtW=hZLpqVsp8kC?$0HH0zv-VT~ z^7J-|qq;gvrE!FtzCvUG0hRE|{-iwXO*G!R9Q^vNj4hOACq#KNy<{?1Xv=8E!dm&haV{d1bo!+8AVC30xz*c&G;kmz@r12Y%~5@(;xnzk9_w?+dREIlP5*MCpb|@k5s@JFJ1K5&&e(1(0-Sw=6Zn#+QlG zeT$3TQA(U$<9Bk4_`P+(;enhE8cDAyDOw=vCe879Cl!-DJt3(;&8BiQaPt&o8xQq= zezFP81h3WXeknXfyiMBmzVLj)rcZnC@+AzrE_Z;_h_TJ5`EeDKu-6A5;|a| zdL37AUFyd0iRfEXvz6FSdbbV=WIaVA&~umx7vSn)`5la*$C(U!t(*2Fu)hM?_T;a~ zeUD>r*=_yPWhGa`ycf?}ZiS)S>*0(r1Na}e-(t;f$P=FYtyK-SpT8XN4gy3}0a)*D z?WVNMT#b%xN~(2KGijG?-#Fy3n)x56Zb&W+O$*~qr9BvgVOFBY$%rTgvK=i4@d6M5 znG8~|mpQJccdVszSoAuY^y>=5Yo`?+Wu*cRye&tE%3%vrC8~;C%5Dlh^Mpl|+)wo* z67|69w8NVB&AL|^(09F$Dw+fUc2mc5Rl0WwA8XqpW3vPkbw=ci5`TZYxybyu`=-9G zCg-uMIo`YHS_s<9A-diFtHyFQ_aDZZ!*zppli!KPVeRn97*x(11bgBEayb|}^Q-3< zO-&bSQ@w*JUfTp88j`B`84u$+=kJ(+KYvf*GVgj&s|?jQn#vQ`F<*iDoKU<^+z$7n zxm(f*^4I*fHU|eT2CsV^NxueCTM{PBP0A3kAjirYd*vH5Rhk@V>><8--t0z>w)WdT z$+Mx=D_IeLw97gww$jkBw7Mg|+?`Q@a~LdFzBf|zDl2@p)afiw=?CIr4d8VQPK;Q= zs&fkjc*>muT6Aa%an*V$dQZmYTyDt+3Me)HZ~_kr0M3QK`N|7G$rBwRIOQzU^9sAT ztFm^uuMzOeE^E?jAn+$;d!+nvps~zoUDv9g@W-yTqok;lziEgw!;hw?879kfN!&f| zyaL12@|WT(whxE;(>L2;b|dbjpoZaY&1^b0+|40L%lkT`Pw_X(js2NnGJ*dl-CM6M z*XEO%)p+hfa2@B_Cwm6Zlq${REamS6%mwxJ95H^o%aNb?ozVCewP@%&c^l|DHAKU= zPgcGnyM49Pa#Gf4sZ38Y-mp=+PGAt)Ph{8aT-IUE{`f+9x3*HQAPnhqPCs}Iv|lO} z{W?98TWo;gDvP~|;3-SclKeGGQ%tknt9r8+%G*>2!GN9}<$9%iPw+8q0~xU$eJR4M zZLFqndn#)imu!94PP_AS@BQ&7pKfOV%;ZqC&tbzfuh||SLZWkjL`mFGA6K5r?}eo} zCovImo4#u}(ndzIa1RH;4pq z^mHiObW|H>9dF{n!8Y|>XKQo&kJ3u1XzjCKLO`WN89^i#n#(OG%9=*u@A#X=$1c0_kW*bMOP(}S6VtCV;!q=!YyX29*H^!+;N$B(hHSOL{&t+C*K@U$Q@2d zNf&!_j|4(}m{k`D)#j-)wbE}i7Rt&zPizPbItLdKhQD{}Q#9hbN)uvu+fV{&UM&9#g6F!2*DF|Jl2 z2?EMq&zqtw)qB?msCGZm!jSh~zu}`VhU1FgY2}2F>D$SD9|ZwAyz|2s{YJ)QyPC=$ zB;u6wwS_V$+$4BgUn&1Pkh;1$PGj;`|3EZaEK*q^NTVZ*Nk4^v>&Ncr+m&SwVawR{w_9kqeY3K#5_;?44q(cD0qf|9k5Im! zTwxgQr{OtJsXb^q06_7@uAxoa{wwV#DwXOp9(*=Zr$iKa|4oC6m3CU%j}o^Qa`jJc zuP$uZY8!XaMc0*Pp&TX^AQC_OMu0km?e?oiLr=n-cgp})32)Dq4|30hlUt1F!yUK2 zP%s-=Ax@RHJguRBPD_@D(YI!Zk8Jo|&F}tCjP3T1Sfsa8i0^nFMOxk^U51gXVtx|$8~7mr*W z+^L+Rz=or5^%eaN4gD(7w1EdPWFUnwlf5x-ZHus8)Uw?o1^%)lpP`Q7*Q@O0xlYC0 zEJhSPNm@?(r4IcGPyA1A!KVGzxr<`ph?-B!KnDvTBmC1(8Sin zm)t4*dHZ62Z55*5JECD7d*r8hzy<-^Zk|>_q!qb*&I5A0_Kf9lI9h78x{d+c}js(w_ zMaz!Q`;)$jZ^WT)HoRzd&&LrbS5BtccjT%E9QmJNZ0L^${&%`DwA1o1H1$6%TRJp} zP$={^ud@pDsRBcmzx50ncj9qZ1xGu3_C4R(iXFXJ>Sum;H(CTgP=;b0uPDlU60`TQ z2O+RAL~mW;DB-s-NJtnJ_3w;0Hx!Z`p+Qxe9b(NseHFK(0&&ca?jZM}RH2BxldyeDyss!B=;{N~%`qxJ#&lrl%BWdm*loAGUwCcr_4PSFHv*<~ z%<@H!40XQ9=e7;0ZjALs9aVYleS)Vbr2GoGi>9o6Vj$XvK4YoBIf4mt`L_|$p~i;+ z>Ai4HkuL{u+w{mx--H_4wz>byZqoGCs1|2C%K=!?bT%_-qjfE1j;o|3_b)5n>UX-E z9saD^03$X62IH}47DCNv>3Lp-QTPo~nI$62ChHAgM%%Gb%YDq+wJP?eyK{OP83(`m zLK#rNDCWpoPRLjd;ib=;jA>rLo50jy_Q)lXzA8>jnG&%!1(<94LrTVmtVbQnU=kS? z`?lML8&zS!ZxIq(c@gT!{oYgN?Oox&4o^KXryhzE;cD$A%+y6sBz;laj_h(@msp1l ze*t&I_jDj#NNzO2%+_nHh8{R#Ycbz`Q-1h4sbHRnFKJC(_f=vOJ990Tc+2vF>)j|_ z#_EU$Puswl1~SYWYB3m!JsSb$Tk=xMH6Xch*Z9m9X|JW&JQ13j0@`mc+?cc&F!%jS;% zrT|Ynf8k{e(wv7**oVb9a+~27H2tpBm<(+KVALCC0u4O*0lsmR!Wl$ICngP97yLF# zZuiCe*+2Qg3KTjugojF7LFDbes-exKW9rNaFCc()UH{8j)wnd6RlL)#sI|mWGJQn6_>*@zZf-l|r_F?G4W@?_=jWeeQXP4zT|_G0ua z{)uS?st-lBHZri~vMUFFD!H^T#Q8`tPGB=@;qS&E>@k^s4R#8l%;F0@eVGRxL7;zW}T>&6HU2b7c__UBL8;-VF-d@gCp z$RO1;xM`Da-_@*lo^?YJ#u^8nF#Pw7BCUfF-u|Iidh1xMSXLuWN3TE7fYmuI2DbUO zsT{{bH6Im8NdBymPrnpCZ4z$a3-^9U850shy<9|-UH|)o8utTyi~q6f{X9SjEzIv> z$n}o1AewRP?YJ%~)?A*J86e?`wTVo#zIi`O-1P}=+X)ZI9o>_c>U~6>F0+2r)*X=1 zY21`A*w3NSY0!FgKWWx{D|{L6!t(m4e?kZ3^&2f?#IYJaASS>J@d!5U9-s2DUD{bi zC0n5EVjGN+tDsztj70R}CH4zGeeD{-0tyj3@SM_)#1?*2mBn@jKA`<}r}3dp!lK85 zQHBBGxCDK`lNx=P$);+_dyV{V_2hqV%-U^32gkxrJu*%e$cQ7fh`p_i5w(mg6bHJi zjz>lH&hrhz?+EwvyYK3VpD>gVsKraIiA|=ei4*xq(Ou)(!URm`e+U@NyNEo$o90Qy z7yeiJ4zKdem~7sH-N38sQAV{)=A>29&K4_J2N>OY8z^ec4n5hPf468vw0kB?cIg2FK_>uf@O$>T2q3vYAzH2q7 zQa~IjPb49;R-PYg@R!Cw=hrWc5`N%Y^~L9lui4p8*TrZ5 zF8r%GKla{eJYJYLOZ8suOJQ!zy|J>_ZK6i*Fnl4^4|v$M|C^OP(2d0yjnX_`lCnML z-^E|;-9*IY+7I<(uH3)uT~l!VT@LR=dEP@`cUWh)`$^a+<%SoDnt1rtl3@=PH`b*; z+wN(+_*LRiv@e56XuV#ex&FACs!|ljj6IiahHYMp_mZ2F1V|x3B`zOh7!mtIUYy?JBH10)*codCb`TZw#uyCa}yIuN|03B~t zAqvmKqj5Podzfc=N1INwFF7o+W~L@9%QR&K@-uqjIS^=`_($SUuAA7Qp;(>k5B*K1 zmNqU+S{8KN&M(WqoO2zM`=k1gvaCP9nA2ANerAQuN0nMoaDDM}n!XN;EVg&N$+303 zL?E3!pibEq7bAM^mc0=q_L-`eu)G$@QjBqNotDV(d+~b5)y}0wAH+>O2Q~pHAv)4T z$zi!3Fxq^lmkc`*urbKNHn_zrH1BH>RO1Pms6FAlYNpWziq@`n;>oeJ)j5*!zD*4v z+sQ!|_Cbwom83Nt!|gbO{$~%jt$H9%rD`1rp^A%fW$mo4UiNHMehG)c zDkiF&ueGEW(H^)ie(}Ij zNu^*?Q*2Hm(3g#nlUAERdkNn?`sda?DL~1Zeajx6=iuG~X$*wCHD{Sb(RrmI3QMuZ zBN(1S_Ws^)w%$bHJLJb(f#>Vl=6YJoj~u={OWjxy_lYSQwKj8}>BKl2KPzPsfkA`r zGM>DS{QX$F_mDhcGjN9|@ANb78~v;NCd-zTEuI|YH|+txHG54if6=>YJJ%_P{Ckg4 zeJr@)vc&3lpy7?<{XKCQpMvvEP@M2?Qn&>V#QS+E&R;4-sNd4#CF|4+W;CLU&`CWl z_(Zxb%xF-hpS=gA#ty8B)g*oE@ce$7>h)OYovCQrS@5BdTR^2huE3Wz#b~BsqV4Dl z^I*~-IzBl*O-puDtOkt|${+C)^!SkAyC2l-)C@m`#cTLE0$TXDX7h~sY`a4LgFg&? zwxL;x+q+54OU;W@Ee;!}p$or*lF?<`>if$A{lNO66u6Cfyc#~MTS2Yourr+rm2SGoKg-_oX%%m;3BA#{eKs~$Y9OMOyz_E`mir?Wp{_P; z!vQSjQ!F{hd%8>|^|I|IGXCaWXtQG3-EnD7DP}r1LzAnAExKD*JJ~<;$t*;1^45SH^g7DWE_*gCJ%QrvTW^iPC?wT1H6HVh;YXCs5vLx z*GGlr^TAvtb?tJ*s-?Z2LhecFzd12moy86z2CA-Kmd|kFNafY7m;M;FamGt=iNa|O z7^VK2T03PxwH014z)rQ(S5qInt*UtRv042vi6QeJ*5@xE40@l9ZAD853l2 zcgM!qCs|&4jo6AoTT2y>(&6T~M~dNeZ0lfDTpT0_xB~U|tW>+vydCT#_sd|JaU8(W z`+G;B4S%#*Gv|lxAz!{Zpm}{|O`OiOs~_UQW6G=REiJh7&JJ3kZdFASb28vTz^sYh zV@_lpY=gUg$IMnbs~|YxCWCos5c;pDx@2bPD?@B4j4bj(_##aqAx(BSZ-QfgvZ!Nz zUMyRst6C$eXG<(n%38K4z@yAMJTrNmiNbVty?f4Qg>YmOYJT~id{L1F<6}aCZMCxC z=3(epm91Vs`I^u+Pl)3H`Ek^50_n&e1j!M()*-x_FQ^dIE)h`hiL3H6w_ zm$9chg6v4viL>7HL}X|>-u?Qz3lJN;cw{W`J;iEXeO*axGPz@&K#FQ4wpD74MyRv# zXy75Az{-nPC#gE|6sP%2;Ir%cUC--1V;5z`Chu@>SPoGI>UF+x947XC&<(*?6+o02 zW=%heCWpe)Xl=N`;MpPGT)joBN#9^IqHn&r(%9+!swS5+_vleHwb1f*&P;`!mhOO> zIU1fwUfymumx9Yhh26vp68WKRxutWPGFL|3LuqP`^Q`BUzD3r>J73j2eq+H_rf1( zaAL>FQsY;P7>o?ww{*IFL4b2E)az0aKx*!5h=GmWY-ICH_+2Ra3p7W#to~D4J%9e9 z7l+t5PC-1nN!7{yl#vyLeyq*JM(2_+861H_kD`-T%qn^e>&C^1T$qI8YrK>a5myqLgorxq((yP`Q8)r)L#Ha3Y+XU%+j9;j8AC#TqGB=Ph14V} zW=o)rCVcrY+@NQ-GNRy^dNx&RoM;`^hVUalpl1V}A7vYv30Vxm7vxYNnaMk|J)(QS z;zlJa-_4^DP0rbv;d0+ortnazCkcgwa1XO+EYoW9@HgK6-x`u7!mLt|pU88ls+T6soxG#);by{4vM3@2l}C3?y0f{P+tc z<*3@%-=VXx3^nU=U8;Bno*NO?;hP>6F93-OR9@4l=%pwiWLoBeRZ~>u))PklCqzE8Oao}n z^5aHIj#2J7>?m+yAYl;4WEdWUdN2HSH@|CQ00e{mXkDGT^hEYSf(DOq5Ki{oCD{giMJq?9SqgRcydJ6VZ8N!twEb)7I6fsW!Jl@hLcJho}X)XsX16^Dncqk z^RQ(L3F*$Of&Bt@Dt+1%>fiN=C}d0NQ$0`25jL+1BeyO#5*g%YWMsZAg(}nH=G287YP@}Tvuj+0UPW^k%ucf@VO2k9v#_UxSyFHT>!C84#S>hXh9u2 zpMJ;}=sYSLn3M(((Ei7n56K$|4k&sLVOagmHw7Gl#1iJxDk5U|NyIdq%QJA1ygk@- zNb0sYL-z9j=U0^wI_?9{&+-$Phz~siMkOt{G`)%~7uP@+!eQRrMW@}~2f8}gTged< z_Ara<)&)MWFT2A3ZfD#Q<1kOS0Z{`&dU}~DgOO>a_>INDr54yN=z3e;g-x|~>ZBnb z6c@tR&`kDxx{jv+$9Buq?A6vXr0C~rcg(>E^O)Uw1Choi4qiu$pEKiHAZpoK?ncurxA%q2h^?F-`?wdjdLNtX@s!$;z%sf zpy;ttIB??o63s`?jrjoB3aSC_;EaY?61JMT>^(xilwg=COrZ-$;8igWY4eUD> z^S1FHOOgf95A2#F#8qOg2M-o&1u1&Pz=ghrAb-U3Nir@Gu8o?}_DtYF1(kP=VP?w6 z0UmkcO;~k71A0bQXLn?Al=Qp3J-@st*#h`?K3XGmIfU$XxfG6;2;|`Vd za&?x~Q2+(RP^1;i5<5ZXWz12@tCQK-yBvu_QFQ2YmcK`oBYQQA9KN-R))_hpk8Sz0 zK`E3JOZe`d7-yopy`3cMY0iLh#hU9knO9)asUh@F!$!T4&~;ncML(ZW7rQ22@mg)6Q~58SV&FLW4fs>oAA z!`~t}Y-*^g&eEDoSO?b`u=ODveRp6R=^K-#xy^3MhHe{^gx~E(CiKq&Z9@}F_pJdS z;sd-q?EWa!cLRtmb;RK#OPPew|{2E`~; z0-kOXy(;YXz7X&fu%;Vz06cL7wtjcO7<}F9zVfq3*rWYg7EbH*>D_x0XG%GEm+QN> zM9lU`^sL9MhDD4TjXI3H9qcsVX|#I(=*%;UWV$UuM+?(Usm8)ZIjFS}TVRSq+qp^B zH26hLK*3%`!6PMV+LiCb;(4@CYlykL*d-1yNN>>wgV7;-oyFfBD?^^VhXcaj4U?LJxip6OQzG81XP!S>UJK(~0n_Iab zUrrxeGX$Q!Ug_(A<++9@k?M?Chb?kfB8m%;_R)Jmp)?~^X9 z4>Rc^FZbIy6^%IT>tDV-T!i+Kxr^78qzt*8Gsh!8Ujp^lds|vGD#<7Lwy`{N+sf3y z@Lig*7wXiG^V;*Al+b>b3oHh-KGlo;R|hG6dQOtUq6*;xt}_mODN4Dl{Rp;w9d3oq zA}btFv?V9|o$@YsnDb=&JLaO;J}rN^Z#msiM4YcJel8sGMyyF43ART4B+(0p2Ccs_ zX8xI{pZpcbC)!66ixqE(AvF?GC8N|5){e)Fn){J{b@b&rW8NG#6OKYH89+UP48aDk zlE+MUe=eRYNN*PuKyY-zMG2<^Fl~~yxF)DF&v{BoZ>QR}g;x7L9ld-OrENX+zj>gV zbJ=b-{KxQ_sx8&N>r{YLRjurd3Rjo1H7l=@l5;=Hr=|x4V6jE?1Y5A{*AESSV=}7O z{;(I;^}GIVtTnT;+&}hYrS%N*s6Xl{sV;e5l9K1cVRc0yRO@Y9+kKmn^U-Q|rno27 z%_+3LEfi#8JDWZ}_XMvQ z(Eaj&mKaibVFI$G2=8NzF03B}qnI?;*;XhZRxB&Fg*fsONiMb`ANm|A8N^WdeoLT; z0Giq_>O!Ud)K zRTS{ar*MJQppDv&V6)hIY5`ItT4DIVG7fsAc#d=G^91X$i?n$}YvN_IngVc*%RYR7 zHRx(}CeRYORtwRfD@PMthMT}$)j-Ja-Zu$ugx0I#f{^yVQ)0u%cMEent9c>zv>|1* zkNOW7l0$`YA{iQ9e4k8qS!7*0&t1VFE(*dbkr64ufIT@1Nvb($bU%^p+r)o+asEjd zlmXEx{?B9AexL0@S0`(i+B$+wUr_DA0rO6>Q@bqwU{UPPzbMEY?bg_iWVhb(+QhmO ztTY%QJ~NU?GT4BTsADOGbsPZF>>}l_X71zE%%C1hjZc6krxR&BoIVPE=OU5Q@He#F zD?=VDQL->rH>*xuDw@NEjimF4QZfuXJi;1NS_AK#AJ%ea0i$!No^e-sRMWXIP3~*1 zN3!SGmk~a&5IZZJ@of@YALb3Lq#l*2RQ^O4qgZ3wVK)$NvyYk(@rTO)-snW8e|rsh zSI@nvUWuiqvPSV8CW^RiXxgeHCf7G}|eZEziM-QsM$`}%Jb+syG&BhN}W zdcYff z=ko1jaHJNc+S5zzEuUXW14DMfic=IFWMH_)F7Ev8b zjDoDu^7u-}Cy3I{vOq&m_kr(wiVl2ts_Y%ax76ruk3tHi9^{-Sloq^o8mw4c=HblV)nGt;#7kQC_~lk z5Ha0P493%~{yyeK1=rx)0ZcZS$qHkrUZ`2^pL$Wsw2EF6nr(vTnREti51UfB-4w&! z@zT{-*v!B8&@L?Nmb!1^ujgT+a@)f(E)su#a`phQaK>X8xSh!zbw1zxegdly(d-9$ z9)FH5RoMNX2N|trCh+~o5C2!Gqpb{ z5QU*b?jc(Dq?Z>Jh68!CpDEMOh>~R#nCzB;f!o1+Qi4~xz^!!JxUwr z87k-!IRkKm&a7){YBDg$XUvrVo_E;w_)NRJKy=)-hZTK<_(IOyz=`%6nx{}KepJio)F{;v!Ah`*%Pimg&Q?GlFcCh zkYWEb)ayxpiWgy{w@h; z2LmuTho`nn`lJHa(Kg);`xw6h`&zV*azRyBODalTv3CcBbXj+Rh}DmI*w{=FqJ>R<6c*O(8;<37F+DsGT6WtTHo7&Vt^jdx@RGN zf~jlwTSxuPX4F3rhwKbT00r|HP$=ASrOAuSZm~}Mh`^;ibE_-u8hi=3RE(pNW&60P zb>6Nxom3kTg|dE0;%z+Z{itITWg^W5#)gPPF#(R9=;wV!v0b+n%cVaK=i0B3_3Z&e z0pxtr4j=QfDgd7DwHTzeV&iWAEU4e?j%q`xQ=h9a4J!LCBMPybPNlm=H}{Y>+KhV9 z4@)0GJ^$<$U?V6(?0VPyYNUG82n)ATPM@%au9!0}S2k3yQ(tAc_QvyN=lt?}`3Kk+ zFp#6Eo?|fJP$$NjmTJpp?AJJdaTyV;qo-paZCH-T`TlxV@kkwetaR?g{b!l^sc^n& z$!ChAxX1?w_{UP?aV`6_DgXW~DAk)L6S7?M8LMWTk3Bul-SMVyus(dwGAnvpl7oG0dqy>-@>?@EfJy0iA&Vt(O!iAaaj6Lot<`r(>l5!>&** zz%HcxuY;Vi8tMA;beyV}DjZs68I8!Ud+k+2f7}-zAWEiVkz!=1S8=DaLwrchUVXaN>#?rbxU-)*> zt8f0?jKUZ`ny+2( zR+d|&=2-=FrNKI|5)cxeKz8|VVK}P!IszNKUhiWRN>a+fIa)74H$gGL5FpAua|Q85 z&XI^jb*kR!hYszoIvbSF=8}oSg6$GuKijW;^SHjaR0RdCgfp98spca#^PT&Haj=NU z<}kBdf=28UJ3=?AbR_LCsz&ZkBtdbM++F1AN(py;ULaHRps z(EU~0ZugYAy0FujT7n7aXQa*U?_?4IeV^|sEXFKRJs_vYgVI(ugRV9{sYJLoBsGIN z6@zB;2a{y{Nty?mXiCM$&WYicwz#@6nfL@E3Hecjk~t7P<6*1aYMZjdl;B=uknsWw zJ2T++MzX?kzb^lJbjHjzx1(f*A-dQg2s`j*D-D3JP>rUD1Q@qsN}XPT55c#`)=xXc zr@^E?cOd}lFw5v~1WF2Npw!rp?51q!?0V58fOmHjxI#^Z6%MDmjVY0HhzBKBr7CW# z5$^~6#nmvi#Kq18%*TnlopipI|B=`7hhqap%`at3305*DiemE|WUkLabhaco(#r+b zy#shM5}PNSo7fe1zmo^mPEmQW*QggAX4=w?f|`8TV~gBkybr=79JH9ih=|J0MxrU@ zyM1m777POP89fR8Qx5gL!JT#BW=+NCo)ipEw$WwJ068k9Z zDGvWA`r+B!nv`2g<74V$Y2rHM@#b~q;JKnFBA9Z#-yJYu-(}E`h51-&5G>+fC}fb(-Szm z0U8N(PKD4wB1K}2xDwLPjkIg3$EmO;R$RJ{eD6_YgnLR`9BROMTSr&)q1+HkkAK&G z-;bjD2A5t4G;kL?;8AAT?}A*Q1X3|Z>U_%T$8>cSW#LhdrFOg||7_?R`)#Wp%vm0I z(GW$tf0ithRHr}JnZ>B1Kw>Ax@Vtz}9wbPw~Vfk+oCJL$QxUoCbISYY|1 zIrAU%7h$q5NU-I7$U4aCdN7ROs)`$e>X^o76ojHyM^T38h*Q^MdrTw-AjDRJ6{jqt zLO+C&ku{pv{Ee@B+sVaF^zoeJc6HWubM@+g+O-Ae(Db+20UYlWP>?HfMwx*gCf4$l8)Qk*n!%5oY%HSrS)R3bg7N z%!Ljd=gVDU`^1^?>sSBy0u>|D4Lzbqp=;OV(dfOmCr^KR@Ilu7j|jj|8r zRF+&mw3tUMGtq@>JGmHna{r$0XXvUr40HsJWV2MJmGqPO7yqh`L zegNh=yLxDQhTQL3tOr~*8|EPM6;w7FNVIjNgw=iTBWqjpe>%|)Y^G&I$rQdXUfq^K zKYv~v5h)2&=F)%HuZFL!iKdh&+enSl_*NxjxEXfe;c*Srs8G0 zR)C=OX8oI$+bxH7b3h{t*ZX z6vBHZuoSBX2CUkxv{=!SLq4oHYa_5Pa?jzCuU8_=$qSGhmc*N$5BV!MCsB1*r^Lol z$_gq9w3`61Hg;9Jy5o8x^}`_p##Uan>&R0`qSdvgT+ZvboixdH2-!E~yXld|Kd zC7zvcmlmQ=aGItOCQg@@iaV5Z9A(Rvz^WdX9ycR)dc+?rbw6owX-UoNy&j@03Ud|) zh$8mg)AhZru2tsfTOa~Q`r=CSxA{MNx6-HQ;t=NzdK#H7K$>N3FR~oYk_U|v12Gk zp8;Z%#e<(;3q&_3QH4*zn2r||_4ev@dfG9|ip_nG23FGB?BFiLZtrHy4&K=bb-{^0 zjWio6Os`V#n~3RIwrExW;HvyI~iAW5{ zLY4M*5YqzVRflNHzhHDkh!z3x3zpK}xOo-g&vum#xuKv|+me?|kg{la^x@!$TwN=NY$T`Mh%U1)wUnR*UVc+^|)B?{;-MP}oQq}4GKQlYA!Dvxd z>rIBI?wz(>(Llrb6KZ~aA{oV(gV`hB?!`;#ezsy;Y8d1KLC>d zWad}<>uC%?&a(iK!2!f(z*^IOJqvpMen(o_hvW@rH_}7xON~)*USetd9{B06Pn{(I zH(D0J(1l7iAK~^fStwlmeLs|HuK8X0#=FdjRZv`5=@T`69+O|0lOMRFt9~-2R$D{3 z1u6~@k4E(I5YrEy`D{TuQgdhlS8Z;D07gTMW~(rax3#`-e9O0vhY#DVC}O;UOsJ+L z!I7gi390htCs|k&W)(}$*P+oMr1d`PG)zyy!zHj_$rA-g_q(PX>xb%|!-~o*jGv(o z1ridga_1pvE%Dxx^RI+yy*&6RjYuE2y2i7x5r-`RMP)|eXk}v396}#%KLSFj7;D0U zG3z)g%|o@AiRoQS!2?yXb%|MHADPov>5PzLO^M|L|>0YKp*4}MDTe#d85Xj;_6tO=;mE%>U2mQrKJSxrk?gZ$uHPud{9 zz*IJZ`$2F}rQ1KM9vfc$^%1%rFf6`aW&GZ##}M~N-57@(<%rG8pvN&o#X9QuCx}+x&i2ah8ub40UmKV&BbitXBaCTk-+8Yf$m24BpJ_Cu7@i zYV&JG_SFMCvo^_V0SSco_G2gl+2<>;h{nKL>=trudTbNDA7M=D=N8AAx~6lSz7uUY zLhp!emoz;F?k^OSBE9OGGx|_XzYjWe0aEXh-EL=G+bL1F*bpV)U&0{)AB7tH zwKnMS^&$nhd`7#ajyFI87(h^Cht7a4Z6mz>06N5$O#Q&L#C(^e^kYp8wsW_-9HM=x zaBd+kKwAf6qw&3D7!I_?#Swk`N>)@S#G-R^57?$7Ow&d1x1phF$l2`gWt+agJ~`Dx zeu5d+bJ$DjkXUh*BPYcw*<-RS$W7{dJnqB!W$bA453E2Ccg?P8mw|PNZ4SDB?4cz9 z2zUpvJe(`%7U%dCficRyRPU9IiG@!VZD6xd13fiNgFMSg5P@D98x800I00qo+TcaU zaZHFd==VabKgYtP*{(hwZ(?>Z++l z-W+l_i}27+3F}XVlfs0gO)2>GL@B{&jMKR95|4tOV$xaG8yWji^qyO%#<<3AuC?NK z7e3cSg%nf1f5RHfVF>5l^xQJlv=vA;AWRKwfrBF%s0hj4MR)!d^e}1}*sWIW79IxAh70u2`Mqa20*~D<=CqmZ2`$YBNU;P+xb=R~p+ynzH5UFx9{$ z=VU~hJ?MdCvOl_60ZiNi?LKbz7Av#RXx9*YM^XA|4aBtsoJPbaGvs&%5waOnQH8W~ zMtOZM`+jNyH>3GhJ9heI2?Elcl4Ny2^@T4}{$YM}MQ;uoSK2c(noLRgGpR&x)4nAh zM7P`cN2HR0?K+9|$}FC}D%H;l6X~A*!xM5HI$$2(P=h5NFpew$^}@>;7aPaVp&cj) zlA(1#S|k&q{2-VruoePNY}a6(srXZS+Lnfjd(^drwp2At3~_LC?ueG|d&7w9PLv2? zx@nvFs(I+NQZ13x;=o#f<|Gf_mF}V^6NFqzXuMpPiXKGLDHZM@mWcPYR{ppM>3agI z^VEs3QUzin^ni^4`bB`QhrLXmsZsR4{ZLjMbp$+{xMQQmuI14L+M7@%;~nSCoxRI6 zhFo9H7`VdXwD;9tr`JB)9hHegrh<+uIDy5!A(w#tNj(oQ@pwTftq3CssMW#BK^8rV z@ymRG2OTkcqK`PfonGr_oi@Zh`Z@861Q#ctM{L+{#&!-zrZzc($a3iri{uSF;sGu# zOt7YuvHwfip|_%oScPxzt;GS^?OACE0#nral|h0IJ%SHCdmo{-Gx{ED1aROxgN!_o z!sI-`)NR76Pngn;=MG?10XF!nzo6iwA)^to=)8k@dlhv5yBvEwl{bporwI*Km%x4T${|EL!3BU7Oxq2Z{R>@{)7E4S>u$6r$8Lm}`(smI` zO0|Nx7I=?fT+ce|tbdxUz>@<2481aR+xd`|T=T0tv)&MRb4*s7@ybdKUMchJAP4z3 zgc-(-&wlo^TBj>j8Q2d|U?{VVS8n~sji(}H?KAD$083@9LV4QRS9R z)NAc(Dq69eTHjeg2iC6DlMowR%TO{Nh7`%D&OP^BeJ!uP`YMeYHA>$T`v?OF0Gx4? z_ZO2LfT0uH;BNp2{BRX(Z|8(JV92b$#e2EDx6}}1RXE5B#1;T{*03YN(-#c9mcxS4 zy6ObMaAmazPRkg#)e6>U8G2mHfCjY!JP$6r?6UWSto-hGztgN5;OnQt$YqcYjcXzB zc39PrEfZC?B`?$qV7j0B)TgwLPL}!s!$aCf&OTP!vnN%acRn4v;%XW+`w}`U7NPNK z*HLP#R$GNRc3o*t+SBJ$+A{4_T6^P7v?QLS)|X$R@@Jl;Bd^WXlM)+pI$U$jHF^op zlM2^>dz&|Jo?ceM*hM1fLc3!zkQlvhy9s>Y~ zaTY-K>Fn%d>H*G4!F8C&asdf)StGZ|w9sSsiH29*6=~A^~zg*!w@_-eYEhbJeKyAobFjjqbAttQ) z^3^%B>G@f+Y3aPzY48Joq}?ySs3$4d)3?9RPY z+Y=oAmRPdE-%?H_OrT%>@|Su-^%^vY%5J=w>Tmlp-JmAL^=c9gRfp_t4jWIVUik>j zy)ns3v9Ef)T1~(i>iy$0&!Z>LK9{O~``^^0CKb+w$pjAv1O@Pf!ZpEogQ^o?zP#j> zQEwc4kuWNVm|(y<{MV=;VwTRA^}x~tLbG3yY({!NcmlBnoXH%0oy;|{g-SsNH%Oq> z{VWpLB$=(+#U?!%Zd~pw_OTP3^FxBK5IR&uA41+x?DD-VD^O8^`Fb(fe2Zar*A~`Y z&H}zHaJin+*@Or_m(ZKdnl&rU&;mbI#HwQ=4V*NIBLDhbihc1b^zVfc`gDP_RKz4{ zOgbApDzP<^&wH~UeuE|EjcTTSPaUiO7rsQ1?|z>KO`fdJg>!O!Fy3%&_zo6q4k2Zu zl5~e^Ga0hjm$ubJmmNp=sR%)B;mv&Bf=DzGdDdq9aP9oEa%`B$tr%I3v*Hul(RG#7*Sfv2qhDQQI ze%V{#{Uj?WL(lc*a;22COWWK19|CXK(o_w(mQ8+Ez zj@|reA~lgdsb<3|>ZkQ$dDt!{5>KqS&m@Y80gV}kgVza$(cFFB`E>ADBlW-Y=X7A_ z4t))?XU}#)1=omcMG8Myxe>*L@MW+Y_DF~bHAKS7Z5uHF%;4H4Gm#0v&4_@r0x_bN zD;lv6u$MPPmQb~wI8C5*IrNm zs<38q)L|~tUW|#;o=i<9KPFQoCRA}GeS*b|LFEed=2vsBpt4;%sr2sur>_AzU8Iua z359C~;9@c%!VODc?8g9{lT5xM2%hY?R$MbCJm)50 z0ET-L{7D&rlcv@idqS{I+$&7ielJ1T{yZY`ElB2@s}y;*$)EJ`!A*LEA}2hGO=fr{ zSnO724)b~tAX}Ul;C@hKqCD-d@6QjY{Ah@C8SFvq`U8W;>1 z0#76y2g$0z5X#j=+jqgm6tAq*dOE~u?N6qbjBz=UEd8CYt}dBwxh|%3mm(BRpP|k* zzp#+@UUmibU$s(S3oO`J<}!HTnz59WsSeQq8VtY)DFpxn6r>k~3zQ}p!!ut3zxQCd zG4UB$!53-38$jLQzPCWv246cbu^slCu<|*09m7sau64Mrty+f*(Degc$#&nbvVv>J zL)wqMf~|WQsIz5J3xT&A8`s#vEhE*?6azlgt5>h8qbB=SG9_&hIjJC^$b6+smm5IA z(oCmHoO&8_u-@+5gFqzgI%SA6H^Hkh1kkmxPgo3qOOfoprpA7e*>1R>Z z88fKp)tB`(fpIbL;F@vmTqx0=OaKwMJz@C?@P!c$>X)=mK!z@9UIU0!-SfC?<~*x>6407j8VxnI;` zs4}s<%Y+5+O0ednIDX~G^GU(!=gE+?ljkt-TA+}@Z0+2;>hIdxS`D~f!3BQT%=vM- z-#RNRV8Ziv?;+Z@6^_4|7f{}VXy|aFNt5ZOg49Z`t7OFsL^%k<3wXKjZoBO^`ps{C z69R8{ZT7@qeU>$$E095p881{1>a(cCN3a59k&;VC2&S%jP&0xyPdS;WN4fT?+#_^y z*jkd_OGbXLrWI|N_d3zDe?u0P%$s=Z5qj{*VY>7~*XiHLr6jk(IL6e|Y1rs7M4LA1 zYlC`$Cj^&}fm6Tj#^p7+uq?)gNd^{-^n!T!uN+bc^EYiGTE2|v?Iqla{zAUs zP5ttqIwvVMJ#h9Mni{1}$qMel%gCldy{O1@JR%+s;}Cd5@O5>(03g}ezfuTUtCZD< zDTmHadKN6WX+a2^hYfcOAc|S(ujkH)BF)EFw-zD-{nSPM@ITzel=>Lwq{vt+?I-nen&G@H{I&};xR z>Ij<=$4w$}3Cd{`RrGVtq&Na#la$@v%ub+_^f8nnc@5Ytz!ndt&OY2bBP#&nhF|?s zJ^6N~pCps0T2jWuQnG+j7H~|?qiSLgR@a1UlZ+47j(f-!rI!ozxV9Jc!C=3regP(o z2bpgqlMPNjOfg7qjBKB$fvlC^!RwbOX#}7}&_F(5>*@MtU0Y{lrRl}ziE6iGj{S!} zN;IUJsCp>%HSG7$A$8q{4-qX~K(u0c`u_j(8(RFsAJb4J*BzA=Ke_M%UUtjNHC`d` zc7t~7t+%FE{pAf9$Q(YZ6JOikK4O1TY5m4$W`OC;%V)nFQ~ zuF1|jjBB?;LOTk;XaFm0D_5@64=u1@ELX8{K41xY5x-;lB*Dpb9d?qPWcm*?_6Mtl zK6C5Vt@>3~9q9f$8kaxd_G`t$@{U*-OE6 zo0?2bYKFBU&!jU^@R~@bFBh>SeDFTUc*e`evEzxp@Ffkt?M=ssCQc?AR7G^kscM_* z{=5mo&J&aYi(eu5YVsZF*WbNIThE4j@B%j5U)jz-oU36HB9H(Z8kijb7)%(f80^?L z^=6i&H@N`UuS^rh6S`WkS$++g@Y|LhyAWrP)+t%Rb#jWvNHirkYu6A>J}FJ*pd;Jr z>YVSq+OD0{fZue1tZ?%Sw-13g1l|lagLEhJD*MBA$-vaG1XcSNB`w79vgF20F54y; zHCm3N8YF+AMxoGo<%xw!gh{h_VT$QO*>}baq8mTqvLLm6OJf#qY|9BY+%qrr4G)UFx120E`XS$FI(?sw(7Sw;k14c1l)Ij)!Hmw1{ZJB(+V{UJLqnwqCbH0puNOg|vDV z(fYN{D>nc<9^@UA6)%~95!$PEG_Hk_Catz1U5P62Fj3DMMPMB^q9RrYb%@JS~VUD50SF!q6*;UUyPS@9Zkc02Q$ zKMcIwKL7d8({F$K+YorWBjc5NT#j1vGmr=aTg2#hUAvf9tu|&cr40?#fF&CXwq`D^ z&V*t%gLD4rexhTIDG1xr%A0*Enz3k#^s=&O?+EQX64dI7Ng z8nh1GiDEYlwkHyFy#UjX?aF<#)#StHosyL+uSt#n@n&=Y(W-ZdHmq|V+!3K_+N~a9 z&-~3%OHDtMX#522qwBEbNvTy-CuGI$FF)XA+evrMQWgTQ4+sNzy>z@n{~K4p95aHI zmJG_xX)A=uG04TJcjHlN=+V~#a2`5$)!VY8Emd$43n8QABuQNez`ecgP zimDA}4VMYNI4%GiOHWKF{HDE5VlZjE3`*JR%K0(7588v-uVQYtKFapc z>9nli^QCV&fP1t)ef5(}q$|52PkVL~J@q)z-_-Zx)WiJbQ=Er-7t0Dhhib^LkU+L9 zeL)5|%8}z0f$h4F5{((#X<3mC zb3+)QGv=3+t5C<=O&hBIN|2s>^lkWC>S{*}BRYM$^Sg*pF(i4Pgq-Qlv2YBq7fcK+MVU2G zi3aulip7A{Cxu@nCIaqV#@8o1;KCKIn*6;$r0StlveLMpsJ7Mt;kdQ>!PD6WV;cim zzUIE_xSw@_tZ)Nq@$*iRA;;ZSmO|jQScxq8W2c0)CRU`hv^1%hZ^YJP!P|k|&RC#y z{V~McH#I8a;go^Vf(|BwSIG=UjwYJ-T8i;P7kBwp&Sc2NawXg4i3D9StkyVQyh!T@ zW5}RZU#BNiyHz?I*KRyELa^;30QP&|DOrJPfgiA5y8a9>_F%w}lf8Q!kA_ajianPA zyk6CaCAsla*Mz{^jV6cf!wbP+A4{JWQ_Lh`>9KU;tbP0TrKK6<$ppb2(%eKN8jjLt zfF_s>3pq0yOdnMG)3)Pfv^jt?l_*z#jEdK&|TB zm>~S%!FA%=aSvfT@vT#`f^kOx4HD59^+bkDNI9_|(3;hn;~==A3uFcNfF$YJKovS{ zuwh$Q{F%>uhJOG1--p24UDXY&qsp}mg0KL1;fODU2=NpVgqm^!6t-H!aldEp-ZV)q z=T?{YpzTl*V1uAzGO=+3oBEz+o^Sjr+x%U}I7F0l#A09Q=#aS#%SOD%@e7QHMl4Dr z8XIWB;X|5L)g3yNmb4r`w7B+ArSR@O^gApo0LPjdM^>;RDk*l{zd9l-M-F#dR@jBi zEBU#XszDYW=x&}3A@EXWDH6Y^wG1_?38X;0y)ZCniHGz5s8ORFgM>NmakY#?$?!_W zP)==crJcnklxRM#E}$vJQh6(HaVAq)4+lWOYB-`TVofa8^InRfLorX|`L zzQDNfU^2v=2>~I8t{1OhHrP*2C}uF4xwNO;fY?C7OGf;Lqnt`g>9p44bb383)J3%G zK&_jG5gV3~xaMrhyu;S@4gLK=kQI1i0C;UqQ|zl+oc7i`W_zKp#;{wt+*2(1r1KI?|(zHe>R@3B9c~<+zTCfen)g z%okywt}f3o8LgvBq{2Nhk$4%3?=*WUa2QOF9yF#fMi(?SP?S(7yCV0_&2?V?osdu@_`5M%{e%8;KSTk%Ud&-@|*L*VTO z?Uq|^NgH&Tz{751$BsSUOMogXD>dtdFiO^|7(oOK04zr8@3wE-Mt#)&HNA^zjuP;{ zDOR(CCqb+=#X#_i2?1*}CQ_kcB&@^ZWg{jNm<(R|{Fp@8ACs}X2Mt$~>5_OG4O5e> zNlj8*gRQUIv15m3G5@T_)_i~|`U`-HztM-#rDIa#GufATKuX{R(2573e$Rf{{2j&# zd1VoCh0op#V2pl$Kg$Zn4tnZrE|{{(sL;@zEL1bN9t~cuWPbSv02HV@26cm2X5q() zZQHiRVCBW6VwTpXCe7PRme6?@T|}pVkd&9vvyp+cRVL_0v{GAZdVYqeFXf9f~b zN9*Sb9oBpul(FbJqlg_!|d^)WlMtv)K(bI}?ELXshIE*D?gHy{paXgi zM`;6!s!23;KtH;oAW9>^=+tiW=D(qhHZ1sf1qdN6BT^=waDg*y7908mD+K@z`UajP zc2aQe-_A7q_qYa(6+oH$0UHA^fCYVl2PqhGK8esf({N6V!~0EE@L)uL;+oNCV8plw z0jN9tR1G2H4H>ViBlKH#Zrr$W`Is?dGD@}Z6MX27qGvXo3QP8a1h&EgMM-Dl2Fg>Z`%GQb!V*r6ru^^@K9ag&pUy zR0L}&EpaB2VlLH#2GUs-y=hJ|PGu|jKgBv@i$iHs@=_#Di@ zuwE#$+P7@kqL;i7P?;_di~>S_%Cu=TVaiGLVfFbrLk80;efrW0HQ9IU*+WT06&-I* zInKjK5{;x!BsEE+>ik0o4y04mWV}c*mmzA>6-A3^^{Q30c;P~~rWyNBLeB|39j@&} zFk1#Pu-fYCYW)fTwo`Dv7aRHqz=!d|0~MeH11bzk7+dsRXOgIAYwxzKoL?BD!IY%p zXd$g#xsu+>Lsszc#C7rm6!SrP1etBQ*F5UZVZ$NtQpzt;CPB{;E}WsB;3X||y%0VC zF@%-DSFxq!)~#Fhj{rham4OKbVc)r92ThwkoyI8e9;TLo&E=)Eq{izQIn~-u!zcgluBu5mtij#@ zBB(3om0hYM4Pb$O!-l0Nm-1m_5kJ`8j}2-NJYZ2T4yzhw!st7IGC;Vibd)$I#^prI z$}}YuWiVi>*Zt~VUR%7F_Nv#QvI4Nh7~2I*ZN079>a*#1<(%p+dfrggU>+sRX>Qq9Ow zG+UkTf|6otujobXios&_m@o-eqv}`qT_KEA>N<+mhDo$VEd^IBU+xNm}`XD@{;qry$HGr54V}cDszt0cd&bAXND+Q1f^SWj8CVFSt zGTLoi!y*A?g^OI`!64@k_7CEl3;Ad+kk6ljJCuit$jR;5$qrFc`zgJJi@X27M^<48R8!eZczf5Bdb+B{-Ja*zmBe ztEuOm++q-W+?J=?f*4$tsE+cu$3e;-j#*K5wTdI!0ge|XyoT`TI z*19$D-gMJVX-{Pd7+G@AYT%XX2`s+=Kr-15fC-ZkpbHDI6fy|$#*G{GE0$_-!;xUm zlb}&einZ8Qt#Yo%N*o>WsQcyDU=+f202n$NB*E+!ssw=Tph1K5wM!#oXFU+!uZ{g! zu>mLnzHqr>7VMWIF<0ve)e(MrhalY)7 ztT4OB1I8{Efc@>&qxn9A@k)=4pt2kS?*~-PAPs9-zYfVHsx5$DCk&lfx}IdCluBA9f%wCoB! zW_OS+Jgl&R@nW0-Xc!MH<1s$@M9lp&Wd$r2@?e9mlzT9Hx%%NvG5%;GP z0%4iRu1$W%H9uB{2LsN5$qR6Rp^TTYp(>&4K^S9*021^y#tZsXfGEHZe`BQ-q|e_C zSz)A=EEz27uRKnbaw}N3snssC4Z#rj@@?b*s&b$Ju+zs1PDM1 zz~bXbzhJ2kh6@tdBmkJBq5K35lOi7w&F7xk1q=)fAb@L<_Z@=myCZv0MPY+XK^|BY zfn_^nBPa-WwX6WVAs=uTgM4rzA!!4V*M)}$dVFy?+0E2OWonYC9i3UT4m+rT#8_o>|1aL)g1N4Iow(=Uo_D`CK zCYLQ(Fysgia?TlnSJnrg=mwPtvs^q3ARC-8$SLr&)Utu(o^vaGz^ zT?}lYj#mhRSMY?FAgKLbQ=gwN!4<#;wt~rH125~bcs~Yr03SdQdNwRI0p0-MT&3lM z0xiw~u!SlC1|As6a6b08?T%TY-VgE!@MG6BtdO8ifIb-V#rYyQ&u~{UZ!lc>P}UWN zjT|!I`US&)o!kDqX5ZzCSkz{F*vLv0p{k)93qAx!rWN#QbJf1zXTj$L-C!qREMChf z`DB-ZjNjomtnXuE3uns0E3*fCqRFKlgdRW(Va9tHL%^&tkpQ}E`F_8L?sm6^F~b;Q zgYPWl1BNwTB?0g_r?6eE*snoObP0KrDGsU*$RFf{OSXHlTrW_>{@b;|a!K3qZvytlR9707eU@%ag&bq8zsOCldxxf{kM1Tp+C5<($H{ ziyEuH@LQHs$Qa}Uate9DXHthN0X!Gz0-$kztg0m2H8Ogi-~F(vfdM{DlG9Dq4E*#B z$^_N^PpW-yktzfTFqVX{0DB23Z)}+J17Q9R69gX9UV!TtKF{X>sAFTcYaRQpAonc&;X}sT zO$6PmymU~b)4qNC=JxO3zgE4ik?IC)a1}$qgx~T^>St}1YXh$r2=n#nflAEm?QTRpS@f6?gz9%LDmMyY@ge& ze&Cyp<=Sd9Y{-7c!5S>f2H+8?_Qzav4>HO|LR&xlk&k?Y9(m-E5O_c6j92QX@|Zk# zsr`Q`-O50g`;a61D=X%iW*4!oIUEsU%Y z0lpEPz*zTKlz}qp0%Rl&G%4dR|8J71PZIJaY5q^uFiR%+x{}V7dGy^s6KK6a)D8sl z+b0_s2U+Ix1Dmt%v8qc}aaQfFLx&F4W!4~PW+ok+b;I@cMAMD_LK zl~q6a0<8_U5-{caTDD_pD;D)dwlHgD2rl*D**?~|zcj|e1d!}c0I#ktLZ@u*eKhP{nYKR7ei=_+e zc&qtx^*qn{zkteI8(_V_Qov}1EcF@SRfdRFAjQBJ1b9g~Az;V|T7m!o2gn9v8#@DT zUAE{4S_pz&EZ6m!3AQ#ETlRb0kL5bRsD zb#93C+ecCWx*!v5o@T~a(BQjx-@bi!7iYGK8Kz&D%oyXXLO_hh<0lP7@xPad?K=i5 z(>x4%Z*jrb4}`s@Xnu@08jy|ln0XGQ7ndeVyeP=}u$Ep!L6FjrljeXIsz@ce#fxA- zLaI8hL0GY1)>1iDf(By!BMini$+g0Y4q;K(Dg?l8q1W;OW)py2fJ>}b8{ixAfS}lN zvU9{IS+rlD20&G#2K3OlBU&gc>bRejQ4)pS+Zl9CUDp8pOQM}&dd=gilJi6ic)j{$ z5ov$I6*0=sOh`z0N;IbHO)&FguPnq;ef06Gn^+^T(gY18_=G40qD&* zC+SWH?Gwi|h6Rj$z=U4)I;8d6fJRVLYGA!r;%x{SJr2r_4u%bnt-AFRJR~>T*t4NR zZ}%TKKpEn<*(0oW?ONe=US4#w0oN-#sJv#R!It-ymR<0y@SH;8OGr|A2;o3A2xEZv z>ao#)ZKUs)Mgg#L;2v`g!;}~_8Mx%Yfdh+=q+OeBIL3G@VHr1WoUaYZifBL>GJ;G|15+QvUYG$0AS0P8IvYMC zbh@A z(ZSvt&IhVK!blAsz_pKsOsT;EVFz?WS`W4yW{hVj-e+fLNe?r2+vU{g#R1^5n2y6E zjT5$-=8_D^h6T`5qW!;mIPDkpS`}kFS4rRv=e33gzzYV4S%$+uU2LhQ$(9L-u<=Dl zM~6RL_FI$=7S3sdug7~VS4#<|gN9{TCO}1yKx--8Rw68euf-q?YlNVi>;^1b^VNh` z?6qd=(R=Y~PiCfIx*24nuD%Vhty*Fx67Z@F0TrNS`}Q4n0Q=_6n^Am?co)j^)7Z6Z zw~-A;eXwKub_tesZSZxoTq?wR4IpOy*8{qi1SAYp<^mUkaLB#}uwa!IKBV+u-5$cR z*=PtsNle!<+u+#1Ui)%07`{H&tKxe%9LY@6lq+I6*D5*idQ(vIl<7#=sAzzhn)OQX z<=^*4*k}KGOm)pv=%sb9W@9#u)zRtE=pi9Md&H`|V{;o)fXQG>Wa`R~0wjDO}$`$W7 zZQ4TZ+O^Zq+;XIjf)M2(%Y*j{z_P`8<7>uKbyy=9Vz3){9qGXaUxWFEbUI%Jz7Eq3 z+0Rn{Ur0+4R>-!P!2jmuAs)ve8-U9)R43X1Ko&Cqv`Z6M{o>>rgZ3rj|6Vefh3gqCxNAWq>s&|@-_b~3~p!5vBSvs{2QDK9Kf=~hN+PO<6@r=xNP02y0PG_Ch zlpjK@^;(+wl6p_PkY@lenN}Z z*MeCJ2tcH`A~E2tL?G*@qxsns9!_Hrz_thRdIbRAE8gDDfa~Xzj$<5IiVLSu=V)Uk z#fTv(U}}!y3ifVHnPE{7l7Q_ue(}t*Y=-No432d}c2+jks_g(#E*7iA0OD7`+!{A-|+4tXmp6RaHNtH>Ydpvz_uuv zBEn+rUa>tRuJuW@@sj9&0A4einn_g7Jo8MNI(2Fccq>!!TU_&ob38(Dx5V$?DM0fL zvH!1VyhFTh$tDn+fbRuj&KvEe2uE@Eon~kNfAGYM9+bqXm1Jt^vHO#P7Z#wwDCp?kX)36l1(qgz5CIDE^65|(BDx*0uM>qc9mmJl zkl%~bX=3pRX#kvV~9gwv`HjqP4hW8bxsK0rl00+WDFRmRRDi_v_&InM%wKs3pOtN2GKfsgC)UZ&- z$eV{4w1U;uh>xc@%?h#bW=jI3;ws?l_#QtKb8y9)R9y!}Bu zi~ot&8^mjj^2nZvsaL*L!YIhkEnJ|S%5KYBC4tu~Gw_Ieq*_`L4Xr?&6GEowGkNce z{g+~EB(}x^X!?uoMDckS@jf{kmt{Yh!jvf3J`_L{lzOh=B5SjseQbAs|V1P=|k%0ghQ-_HQ%e<+4ui?76Q z@4%Q2f{h6Su)Z_^Hxi+UrT(d6i));->TukJ50m}oYbF82*@0;NV*3Irf&k$5adB~D z#Oo0NW^>WOYtm!d+j^Ni%MMNiF7rF?j!uToYiVZ4!C#c;mGWAX>^0~}56pGtUv?SR zv=%H^{uT~XNa?_&0a#l&SOpg49SpZz`Yic@uH`JYg;;7Z7WiDV3(sp) z(g>$boB7R(0xX{(M{~sQO&9n2xdz)D4YCqwHQ1J^EmyRuhGM{534z$pmaw#@I}E@Y zgtIgNqb_QQ>sXI0#^QA?!OVJzPBu=w9xDDN$=eaVQ!>BQERL*TI*vGCY-x)F2TXV& z3)W)h-f@^P&B&B>tvaTH;+XyuA*KDw?<;Lsx(BO2l6~TQ07R3i0~oOZ6j?U0ECUHG zOENw$=$hc$s9{5!CG#`D@4!?mFRzB}sb>POjBzXj0p*M9h;vNF42i*VSv)w4Z1zH$ z$HKu}WD6Ng*ES(DEgHO%hKuuBg$7o?l;~csMcp2-&hVkQ*G~oDuG3(fr-8P>Dr1E6 zf~$9?SrwRX40t`j8%`4|#dC)Y#&IYBF;es^Y@(C=F81Gut+r^KXNW!Ih+)7Gb71gh zl8Ai$Cgb($yaC5sEfBPWmMgXiX9!EI(=UgYO$GJ5?tUi@ZagG4D&0JzL-x+wMP)m5M_js=4? z3j;2B9Vd*}me-NOG%MrS#EvsXC}gEvo5#fPBC=z;w&jbUDL>xtPZQ zj6cwZ3qlIez(fJ0u;qp66x%Q(bFwmh)0P0t>SUtNYK64RLY6A#jM-9bx|U$jDFT3D zrX?e<>G%}zB8-o(DbE5MVR*8+z17?@1ChCy=2(Idv1y*=a!TRH8#1z8n9_tPU${7L z6am#u(=YM<1F=0P?&)V{wWVQ=P?BI9DMm#Mcq);XT*)3F&Jx$YUjPOo{68;1 zshI$iJH@e+#n!;Pvdv~)0Dv#Ajb%H(?BrM=FMA3z~#&xut2~fnj(_op76dt$ZLc!9hSQ@9O zdq`FQ+PB2a;Xj(y9yO@tm-DZ(%MG#AKR!XwE3&As*$cKD(J&7Pu)SE}N%c(r3TatEgRin;aJ<%Jh+UYJ+46$rc&|AD zd3D%C1^Ae4)NfE(EO_G{W z?IV`i(sTRT!4ZCRLhm-KFHaO zv1ntgpa*p>HK{GK{J`dIICp_&$vU~EiYmqo*a6Twb!yA_#MqLOk|b~fKw;Y}WdQ9Y z!oV4DAea)w{~~A(7USepRU6{VXlvp<+<>i6$RjkUk}242i&ibg`4en*jq|~qjkD)E zo@<6>gJp(#WLZ1p0%ZnRGOZXqsnp&30vo6ukaZZZ577E*zejtY^o!RJ(|9Wx@cJDy z<0l-=joRY0=@ba-g~yCHq`$Ay_^9xX>b+*9tkVXSyb#pX)&}1Kt;KQnU_KrQ+5j0) znJ?`$>2d(j$FM-wx^-)6BesT(8p-S8u!M+P3=p=n2?gANc;jo^<6#TQ@1fVVPfyMDl1IquQndEWe1 zEG0;@FC!Em1Fj6)XhElSK4&mBzi%>MvJ+kgY_JXR`v|Gx1ysuOHfr2h&NeuT)=%^1 zdDyN;BGT+VQLtnzk^wyN9x)BTT+xyDW@b`eUN~T~Xs2Md3l}b=F=NKq;GHARzj4C` zxhGTGb$OOi;dmE5)(s9=vh8okSY)#zyf+xPAs*{69S6Or4>SQ-av7 zUbRZ<$is#WlZ$P?{q`HJS-Y0Vj7mn9%R0hk&ENu7FDtcNo@%a)9){I|H&sx`vlwa> zaw#rc=aq#F;TaS+@?H#hkFw&`K{0LhYQRTf`9y4KUcj|=U1qS_CO058Nu|d!-w%4E z0|rpMw^?ndz?Ksn=^)?&TrDnW*6T)0^YgsCT$=XjC;DI@BFpu@S-<{Q>eZ{4j3~w_ zivYUYw*5}|dHEiW>tB$A?X9=oba}=VvSjeGT^9)R7mQGmKA`Khg78{3gv_kFmgO77 zC`_)kPmbn3==Bt>Dy7P5yy21w`q>m7Mdeko-Q{Jw3Kv55)Zfwp&lw~o2y5N9Kmx1D zYRLxKkfF5(gC>)8K-L6T6P%r6;Q=-fj@pI+U`P`)XU?Pv6DHVh$9R9};GrS`ms}}+ zBD59DDwHnB&y&mx&Y?m;?c`)DBzakW%-C^y2}Ra*Up<=TKAvrcOEepk8mf@ydz6AM z8t+EI{O%F=a#x`^6B-;@Vh9ANkgvbZa2=soe`adC3jSb*<{$aWBM+GGBYYMu%k{ol zwQ3dJdFP#x!8QC#|NpVv(u7NDu)H8#7$72LfcD>8zH)`-32x-WdhbD<7q^|bzK*`R3y+fNJEthh8|jxU;^lYZz8bh=Q#kPs zyfG`3H(PkHwaAQsM#gU)UPp;WZYbl{5D_pVgL$A3F!LiRx@i>#_;8>r3cz+a>bOz? zk&oACELKA$mKrMSl!n1qG+qh5MBeawg#p2e4kb!-R#4G8*WunzNe&{GdrD#s1exNq zN(Z_OyfLYviUDzDwI9^r+e?7k$Kq|8yAcN>PPC&*!s(rUQzg%nRosCiQdWrKGGI{_ zi)VY5sMC#=xi6OFpdJI>3Q|Um8dZq(^5UAE<$y{q(Paez-;G*!fSK9#ez9vKHS}nY zMLDOg^k89vYdA}p!_YFH69040(W>c2GwbwQT&v9BTdk^f62FFC*;$(Iur~+*{zTmC zE8=yVBLdi1Ief`N&kTxcle&Q2Vi9d-Wt=IP&xnDyswBJ&#yUvV2}g$xEVj1dC2V~& z!-X5HY9ac{w7n5g6we(4B^Yko$_ToCg=d^qrQKCo;PnfHURA_>(V6cSyFvgQE9Kh` z8F0nxwz`fg{XK`18!G#(D_DgaxeIg=gu5yganG4zvjJFl`dBHSVgoMf1a(uD2cW7j z^NL9gx^g*4P8Ga=Fy6bxmKX>GE)|Dn#c;693SGI5q-2|^RUKrD+c#s;$tw9M%L{ABfDkLuF=5TzWK=BCK_E*E(?E=9Xbr09qsi2R z6M%N6cuq58t>y6hXAF2NX~pvEaI81RfTMn%02mu&blM?osd`@-!I(i7+Y(Z)yo+P4 z;qVDiI9VYUB&UjiajcY>EMaz@1|ASTUhmT?`0Xs#AUn$h+p27NP?`mcYvI6m`0(NM z-FM%`fVVP$EegkJhyib@KI=@)iVID@4NxWzJ3ij{T1kR5gDIC;9u`Y6a4nx=W}&DG zw!DF=1Uknbf4q!Bh7fev z4ABUwy4Y9Od0}M9o{M*Y)bDYZA{YdBrknaOZ7wATv{@ zRX^^y<4WEB`Ou+5lqt@KZSUT_vaT{^>h`=M{}qGi??3*-cVjnBbvT4&MTCiY& zY-5f3^rcld-9}l7iLlor%FZU*y^HAgtwftQiET5{&K&~!GjX#-dATI>DsjD|j5~*D za@CDx95L7gWi1ZS)#AM zRCO*#LvbBQ2AU(TB_~Iovtd$G8rPzkyk>x4X-f)z)(dOatdZ+2xCW4-{QP{m;j>w@ zDwlbAm14Z!>hPjUoMJ^nD!=btJ7FgKhpUwodGjgf$8 zZ>H?X)J%YHvt~drIT-9{)rPFU-${)hd4LWG5d7(RCAtm}e0I1uxZKLhmx65?z z(Ex0?0)R%r@1P(*8w!9JAl$fdW0@YlB+I^i`)JXkMH0N~4IE4hub!+x5YP3{L2)rV z71#oF0ls+7_$*fdZm2-j0O~*$zlRCBox70rz&#XLFTOi_7L9Lr9*xKQ%O(NyTy_vpSfo*{XUDP)K7eEj2&CR2fP7Q3p zEvfcj6!3b#Qwf%EF%e5;1hzq!+3LTZrog(BDgNB^ z=naFkS#47&aQtxDF=g*Ur#)jVSr6Sufql93$vuK0T|SAH-E{}`5MU#y1yR?oM6bWf z55wu~0AR2#bV_Uo4=C_WY$yTbkK|@#U3&vHeeP)qGV9i@qYfQ9ln6@%*aCFTQm<)K zO6bs$s9SeB*s~YqHEK+GscDp~Su58Z@2eS;kzY4&q4Ac!thm@W zMKz_LG(sK6Gq*J0KJibo#PPuVB}5laAQA)Ja`Dlvty<8-|9OGvqVp&qzH{s3$&@775FL;v{vOM2kL59MrS)$pNIQ{XDi6YVM}z7*7;3)YQ6Kmu=$ zJl4N?Gpa=@b8~rtpvi!}uVYd}C6XG@Q6M!SGE(c-ttAVNMrJ5UsR7r54u6mW^!Tf< zQV5*_%mXHFbrL{{6=MSUvg9DHJN}DrDO(U?bjrH~R)5s5m&0a6owixHf;Qr}2KH7b zg4_TGjBEef?bNYZ3auT|Pj$$q$wbEvCHm@rjs#J&mbwN2bxLyuzKCam0YI>%V;0P( zgs;Ak&k(E^>D3R1-2(iunann2$gz|=`efQR>LjWIxkC*nuD$u%1YfxYoY!C$HH_~_ zCcJO~HJI@Y<$UuMrLSLa9|sHW+_|&dA5PgIzV$+WUH-%XjLoV`s8H{y^62ZQ?LM_53ftA?wsp6gYDn-TMBA^zhqn z6Fqdl7&xbp)jw5!x5w8rh#nTlUU`egHcz2dqN%K!CT2JPe3A%*6l4hi7=SiAOR;PW z3Znj+_U%j8_U|V_7Xwmhkeg`a2FyqhGX;HuWd@cSX3w4-W4x7t<$5c=yb2l?fV`;y z|DK~p)8Y?wXDl$Lod7l2dE!_np`1)HolH)o^Tbz|9Xmh)W`RZ+@xSP>4?psN>d*k( zF5QU0m;?Y%dG=YFFy&p<;p4=;pMMd(clKHIr@22;+Pfdp;tR$T?cJxCZ?4|(8X$;4 zL0t3t)@`V7%T`o<$9CGXWlOPHFTfTZjR7~YO7PxLk_0vYZ_l1R zi^YJUN$wQC1?gyO|ACYPP}6lKL2mmt`s~Vy^3cZxs*Y&TV4_(w-LsB0tLPo^(S)zQ zrIsU3ko8D6UPrf$UQKk?IC^;DB5EmSJX;>Tm*|3XDIman%(Kr6!0x1Ej5AK6k8BNJ zYrS}OM5-PEx(5!bnT&WJ5bXR<1Nu`>lY6qCkSg?dX+4?)t zn9)R+T}f|VKUx0U`QyfsHT6SkE6DK14+QwW@)FUfUn+oj{S{g@@iOXi!U^g;LA}_A zbA$N;ciE1EX zfPnT0%^5&}X>o3zdd&kte!eq3mn}Ky052~Z%7scXXw|Bz7(BnmUVK*9V8VIg935YJ zf%d)pBIRHT4tZ6u-!5IcL{*3B>FH7~$r3DgVdrjYwt#b@PQ+)_sx?{HUsJdP9uoI3 zsE=#5Lesud&$@q_)Ocyt3L-JXY1zC5ZMpVJTK3|Serh=FEvP-pa;&%e!O=b_DB& zq@*PJ`&nnu?V_V*um4qPaOjL+reMKh3M-i}0~|Wky0z{FILHy=?I-u$L)LwFQQ);H zas?bL>a#6diLRJLw~3$H`1@A6_1tsmq4UpG{r8#YB|vw{CDkdxw&OIgNp`7$0qhM$ zbmBu|(AwJ|k(vn5g7raBp*1m$#gq}?TSE*g)o%GaEjjaS1sVWX+$T?iu`sqLLoM`S zk7pqlsGJ2M`AnECvIR$V!%_nSmzYV&!7D)w81==5VDRw@j2B&VJ=GR$ zvXhvy@A~XhTD^L;yf3idqAVc}3P8gE`YY;W+g7EC19)+bSnO(djQw3$rC@sx#v--F zKo6N`wy|pe$;Y(p`s=8NToGKMj)~by>b>{V7Qv8v-1>LNf<>+e1oeA<7GzjP==LKQ z)3mM|QlIs`;37J^Lwh-JZr!?-VkO3SOQk@I#AwPIF8~0HHzg%Sf?jzsUPaX6s8gp- z61>tyNBP?eFHrWnbvoTTyOUs0O_f&k)5TZw(q$#zl%PDK%wmYch zUH8$JEt`o>8KpYz#H-1=X)*=Gw06oj-_nE+J|=qVaYq+4r>!tKlVFmsrmBKDwGhX8 ziF09Eo(PkvC_uM?V1Mf$|0iWNZR!jfU}2&zq^Z@;KjcD`G_wL*1aRSe01wG_^H`^G zqz2P$j+q{S7uU-G48R50;yN2O5nCf7SOMTYo-a)Jw1(c{f77Vo$;T*H42rORz-%c} zfwqgb^VzO+D!{p6hQ|XDnEP?V$hz@5b*Ya$K{RJJS<|Mf_o7bd;}0ChD?rp*y^;c# zU+DmHC_+CCddvo0Qw(i3h5-%FPnULQoJIGI8Yvkkt{pN-Sx9@47%x9V402w^`@;`E z#2D|<%yj)Ck+DrLf2X{(Uf3~q@7|q~MTdRj+H2|7S6`+5ix#QQxNooSK-mgJ^mN$< zV4h~1D^GJpV;$0$CW!x^5K@|G>OBH@q5U#g3$}F{SZ;@oYIXeOe>-f6Ssu>MfDR@K zz{4g$bg$?rwHh`Eo7|D_4f2B2at92gW!K)|m{{R=_6xxMLxAm$?NSS+ZNDosD*!G4 z8TxWwz5_BQ(DJ~98^%C^Yvj-He>exr4{Re1Km-T_bj5&6$thwl27yM6m7Xr{V_lyC zl=SzzDDm-!q*>a^l`A944zNxEU=-kbYiN@|evRj{W|jTjdvCgl-oO4PQ>SodFsLV( zU|(^Sn+3ZXvPWW(Y!{}1xc^+Y6vc~a25^s@{1>{iM>kntuq62d&%TV-REh#&vmI4t zjkn6X3|FKAfLgwMIrZw*i&6wQymrmibjufC(yt%BufBjzgbfQf&|Sgg03_86`N1?p zGZx#pQ-79bI9iB~+A_5lefG^a()&9PfW0k{HeVbcoW1>?o%X}#%;kDhW_GyHFp!PMCnE?x!D+Uaq958nfR4`D;2irBv#fm&@ zxBv|?{hwOH{adHBZbkod0j`E*3AzRYWUvcbjs_a1ol1DaJz>EKx@V?#7{N8bV-HLi zOjUfA9;`-*-Fi@i_3I>1MFQUXm?5BE^1!fj9T4Q1$@p;;xZ$r9f8r^WlaZkS_tA&c z^`VZ;dMeQOB?gZ`r_OE-pDj9cy;vJJL$Q`2zezPlXY=7lPIrQPs$l2g}g+p3^-^X3v%0kD3C?pQPg zDDA3Sj}F3v4F87(Gn@mO?jJiG4VN`)kDeL0^>zg^07mYZR)H)Xu?&wr9#q&;f*0^0Kj2y7UIi#`6wl&VagWfa z(Pkhkcnby}Yz^8SLz%ELL7m_?d0>Pzgkw)UN;zUvAgUc@2#- z>N9P27=T1#YWs$zL$zkj=}&jvO_y}(B-=I?0hcUUBCRkgT7fM%7MiO9^NmF(^8{e7 zNR_>I?OMtZ%m}OME$Y{&$4@?ymJJ+0Pfq)cwtn`h^F^>vY%mq7QQfiMG;M!_2AG=c z$&?ZJSjckTtC2u6T@Ac?aVxG#5{>KFUV_mfZGz>;c;TS34F4xsqg?IB!V^Fb|0A{Q z90yQY8VDN6QO2I5R`>6}$GxDa_g@Gc3^Z;`Cxa1ZbS1j=4zl3kg~cgxFJqdg&}TTW zc~8Nh!y4sk6jJd6{45+WkYfNE)~_#3UHFSLKzU~- zURj9mg;_5dpv(1OmnH-4^OUFtdE&-BQsk@DKmwjnFPQsYS6uuEFw zHNRJtO0^j1R_scLz3Yq_GpK9Vu95-wYSNfqyZAy{dgdAQ#3!H9)=#E-kLwic?ROVq| zjjX#C;Svh(ED~GbjIl(0d$D0xutvK<`Z337%Ur zSWTWCKn8=(ZZYt+75AFY&Iq0YJ6PQ3C;|S9PaQ)WKmSafFRMUVHGt7$HiG+R@MS9m zJ~sm`&oI1BBVGU|Ltfzy-J&H8Ja+yI(ut;9fU zZuP*xDtJN1!6Fr;hmIXPQXc`pZ(e#a?HGS9J^S+ln)}|nln*m8vq(#Te7D@dEB;1j z4J$<$3p1`p)2ta?GkG%gtzS<{HG4QHOBmo)rx2Y!3xK9&5rB$mkrDE&)X)8a0(aaa zqjHUz@*YitaX^Eb6jt=n|NoG{v{SHdcmG|^K*GRW5Q-!)I_7C$s;p;gi;6%s#b_hh z^8(mlmU#auC(*+V8`APOUiY7s;Q5;aqF28SS#C=bKIT_nx_%m;bTW+|Ig+mE)H%hF?b@}IAlyPsDIXj$j6%bXqv_jr z&^vSH&~M+(p#067{W~fzPKEL#c4QYI7}M7tf=&Hp@E~d^fCzxQj%|%2=ym{sYH`&R z;|1GedsVPMw!+|rKRpfaIPFVX`_TtP>APht0%K0EK`7*6y3Ep>XDjL9e+!l=b}T+G zuvvXb>8Q*uc|psR99TPLX+?X0qTf&-? z`FSu{nB`R@{TG@lv^s2vtkt4L3u@lHIgLnZO2f|{OQEr6(z3n#=p7iq#xy}4i^3gFwmRZCj1YNZ0& z8k+GI)Kaf~N_X+KH51Mz!luhM(V1`ZtPvTDG>4~*mc^yy<;G^oBAEOXDbk|<4^HkG!f0Am22_c}k`w3+r~Wz(un zn`C4DZSf*cYY0+(@&ApJQ>b3u1WIkyipI5RWj_!653Cem?iQ^n68;xKXK+1tzxM&< zZ2Zl!!hjbZ$4;nL&8;m9kf8@2rLon55*KAW;ZsK`k2Z7aEnZu{uA{)sw-HU$P6x2i zXp%(DzMn_izWPE22s*hd^|kW`Q0F zJ7BoGLU)ALihJgJ^X{3|GgzAMIe-bK(ZBunTd}VNzzcJ|Wd{z@%g;SW7DvH?1x9V{ zh72v3r3VIJbD@dl30}p=aoF45ezyvlh+si>TwzmMvCL_UClg1|(0|!nP6y}Fi&ydO z+tZU*TrOoE+&|h(aS8?;$U;~cMSb{zQaFHO28a!_3`jfJ0Jhi{_gZ4W8PYB`f{=_qQ1@HqPgTSA=(fze2;#eQ(n&%j1ZP3 ze*Kv9%~eF;WoH|c^<1l6W^)ZOu@a5j5_q+6Gd76R;io=k@ z6)fz5{Q{i8jKPSb%@%<{5A_fIA50tXD-tWNils_1UUYhC+N2pT8ZQ{{fB^$46ypWB zLQ6%bFKUIlUQ$!qw=;5dDZVdG@CeNp)7$bWU}4bIISl92&0FZrci*G^^CM_@tjV%# zEgxg>Wwz_bXiYoVP=Py)Bp30U09<%_-8AetYATpFKo?dc8gxkmXe+TH!b~jC+y%r>cKDpeaem@-F ze7L}i`{w+847?~Y;H_l9i|Lzb)ex;kLur6702eG5rB0*96hG-|`t6(vR5PJ2#p}+L zZ_q6A0bWk*SdEP2j}Rk8r*1LhYpOGQ7VQ(@wtv@7*Hjd?z(_w-meWvxKho=9V*o~n z{LjkOG;7{G+OgngwVXNYI_H5E%g8d>Xc%|e`0hQaM%}uUEPx&NmDaj7ozt$3?NW<6 zgmwxuF}P%xwdDZo$EKXrM9cz0XPraq$DTu0-Fgx%<$xP9;x}+`9MiJi`H_~nd^brN%i-EVafj69k1OqQDX#5y2qV>gqHwL^V3cTyrua_MV zdC2zOcnj_9-A`pnfLRrENx0ggb0W|R_E}l3C}Hlby46%?tEqF20ldLtu^CnaoOu^O z++y0tRQtUtv}5j%u4yP-lFJ%^!F*c_fCK!o36f|cDHWhfGV4}v3)V8@8SCASQ4f+huIct=%74EmI@gK zZGqk6@f%`l-+t=*RPfH*vOgd-7K2_%0IwhT`T;LnH~@HI%ggbdO^x@LUw(-J@6lQy zDKPLtascq6(oNuv27F5rcwy(caN$BZt=fL}c*?+(5*jW#3qTjlE+d^rPdJbMCi>I0 zq93mM>Pw=}KULWxcx9eLK}vhrnkpNx%=?8Tj}6ps*3-!z0qP9MY`P^%xb{B z?bE-puMaE;u?LDu_E=iQw0(sW27nl^S(*sjutojA5(JDEK#M(qmXDQ3!MQQBF#)&U zC708>^Dm}DsFzTI6C(mnCI@vIc6iGnPB21fV&hD~48*3n9OucCgKWIh4$uZLh$1{D z>OG{>N$t&~&L6)|!4=EptN@N4r3t)#;A;Xe>IlH=H77$Ki2-jV0A6%V_PZ}n;6+2j zD8Dx5&$Uzh9e!0*jD}bW$Nq+A#tMUqhE{Tt{~>ja@ZRT0N$X1li0Cw z6P2nRdn9?pxnSYIv0}k?H*KI+_uNi@=-@7;r2|%#f<-ehT=x3I%qH>dKhc`YCeb0( z4SUUTd}2r*2vm+VNRWYK{yAh^-lu?=8LyY^N^v*NVZ1VXa=ZfCk)zb_;yv=q;WMyk zw6UE#srURJDNg(*FL;(U@bcoCpVUwpfw#&B$q9u*<$6tEykK=p(c#vvQQ(MdzUYkU zIvtH@kX?H9BD&~OqSMYGtAo-(zk-J?XJs(;zN{=K$s@uK!X_3S4NO;pa1#V}Q2E8M zZ<3_Wi_Zlpq$ed)`m--ln>n+n#{GBGf%M&SaihH1@6lKQCU|zta+~%aK$~v<2W^Cw z4bTLe1(?blaJ%$CyF(@X#EeD&qxHk=$n2?YJH>PZ0Vj|>m@Q&goH3S`)lv1;W8B%Q zjiA0!*JvwfCp&jghG-wHMSFqgSV;hHN%qys2D()ac)cUB*Il?=rW~TP0C;oP|E7R8 zp|0u_(CQGs7E?-@86ltO#pj8{)YSgpk3T1R{$HB$1l`k3PHz*`i*oSmM<+w)Mu3}* zbyepC@FLM8a*bgR0LIi*biR#!`%|q~-lER`_bC1G-E^r9kibOod2TKRP&Zz4IId?t#(Cx@O_CWq zFgV{Ps{P@`OX>F1o+`)?0u*5Y#vl*o3t0o_5rh9O(eAo7Y~UN2ue|$5Wh_;W@p>!L z&nTVKOqWF?gq|fGfYAxSQ1@yEBwJn3@y^0^|NRcK64k;(Ambp>U#`|2G3bErun|PF zzH`SbFf#_{gcOK#l1FrMbokAi6!@kzBWl*%X24mZgD$%D4(i;sJLSIml4Nj58aimu zpb7)N05)tD#UqPB7hy9|8n$UmzyISd+S9U?dhUpT2Jqty$6Ge3J!UVc6KJ<+59WfI z(_kI2g=BQjcx7t#z}+%y@|%CXiOzrhEef1+uN?^J{$rc`sOPNOum6`zWEkP zJ^fTVf9}sRjxpVPhcocrb~`OcGkWO-9bkx@`pCvbj7iSrM!s5U&;;-%hz>IX1!o1;lk_ZMjuzwLy{)VD(3{78Lr+P1NvTPthR( z*3jPI^;gpD6-M-M9fcLZktAm17`5Jvx&U9clql&1LpbChCI#GH6MFZdC6`Q8j5SkB z2LRbk8`TU0;EMqdRtjvF?R9}h0js_0S{m7*Jxzb)A)@F0Np#0ObOMYs-hYQ4``|sI z>9ff?wjTvnZ*T@;QO7OMJ&z`A-0DPj>nz#=vLJJo4b6C)Hfda9reu*oH4-xp_njE< zRuZYfoZggo!9oT)X^SphXyfeJqI2XcMq*~&o%R)V4=T{@G4V>J({h$v(|G=x$@Dtj z0yJmMq|~ve6Ww_)S(7fKn?yfL75@S@oc7WyMEBpV{$D103>bO7_9#6VatDA5Y#0m} zRuR>z(=Ne`LKj_1NpHL=K?W=JaJVQ5mI$!*y2>IJMV$^EDA2VV9qQSO@)|Xy^gjKm zsTc^no?70L0oUpD-BfSk0*c$RnetYypg)!@w%IeXHL&Y++qP|wIFJxl;Fm64szPvz znZwf4$Em>#zzfjDjAGLUhvnk=V#dMg+8K0@8?Nebg~}Q-^2w)Y`oj;>^se1$@jq^( zw6W*V;x6qe?fwTHMm%yT1(vQ+)+*e78aATM0!ss{R}sxyM9UIt&|9K?Jlv&&V+X7k zW&6TwF)k<q--1Nq)>6QgBa~#q$yLF|ff0{>DRyDoleCuG^pw-&%f(aPmix3h^Caj7o_|SAKT+7a;~=ADd8*5(W>YggLWhelKLa;J_xuWw!u7#0)l> zZOY&wly}03v~AQ$w5wTj8SaZcxJd6eS?*XBCh*#B)9u<*j@YvM4YWVUXVvD;p$4;N zP|mmCQ2GWHj0hVTuo|sYD0%Dfs|qUvNVP(*?`Li~~TNqXVud zC8_7WQw=&J-*}sz5Ir+3wWs<&6zrd!NNIxY-uTtGauAir@P9IekpQUYpHaZf+Wzf# z%YVIf^eB3G;UenspBIP_4K6p=alR1eZ`^+%wQEpc+Bd_ty`20E<(j-K;=prBxs0IK4$UH~ox0dz*p`(;OKL}vYU1-68h|D95L5ov&pctrEBjmA^kl0PS#Pgx zQvkd~+#c%A5&#?c(|84%qP(_!C*3F>$!@UO6~7XVAFDuE)S0z(2?hRg6VXSa9St9; z2GfjmzDNgfwc|ygc5Rw?M4% zO2l|8!oY(mJG`zzh-i)m=4V7_*W8*BhzEC>ZX>A+2}5z|j}RD#|o{q;j`9hd=| zi}>9}V@{>>fBcDP@>P_&XrWxdlb!c(H_5Lcx#VYkQ?+TDr7}hUjPT6F6nd?g*7nXi zB(EPGga@>uST5W@S$A#JxeFb*>N;96a>CT%U$3>WEj zotEy?wIvYdV-xQWp>x9}TMQ<!Aa8c~&j&%P$=)zzMc?Q2uS0Q#MF z56c7XCjc>g}sf(A=MWarT(nJ7`5=bhFy1@VNKxEEhcn}lig!3<; zP7MHB~ZIUb$sG3*I`Byw=Pln5DsZQ7~PH*0@J>j=Nv{59M+g zM`pg&Yq*1*@B)nGFkb4^g$UV%IrD;Gs*4vdp|p=aCAwy!`mSKX);VWVVAu$|(8F1GNN$@A%YXwCl?+jMb3cAKEq?P2O8fUqWLoFr{4iSl&O1_8 z2qdXl%gC)eY5F?RHii#&PTsY<0$Uz{0zr4~x=_dgT_f8@uZu3GE7N+)K@+o&gGI#g zjWOOB<2|f`3WVGciS>H5UH~lH^_J!!g+(Q>-eds?4_{o~o^DQDeU1xDzgHS!f3 ziBO)$|d-8-mGoMU8q&_@020Fd4^iCPPAW7p1TK)1dCvyBfvPTBCFf`f=; z(1#SrLjT0V6N0;AFWqJLsPD-@G1-m;VVKd`GK}dmi)V%4FmRv7ppc-QMlgWj-0V8d zUVEa$XNmt?a{XVaU6-yDdf{0+7(EiD79}-6tIu4wUR@6c3s|X85_Lc|iNT`4-RRsu zAf9{Li!V#il`|Lo29CY(B8|L!q79bQe-sS(>MPt<4=b0uq$FkgP44U)a+Z*1f2Ylv zXVK&V{p>6o2RH#~DFAP@0dp$rLRyt)yv%yN8n4NC%QF}{m^iMlt^k4EqNDudrT@~w zMTWbi9gD$8i(_7gD;HVFSt%DF3-AT-UNmxq>Zmh*P~g+8JvG|8i_$;)R4u?k0$8?& z7B{G)G~e{yPRbpyZ=SMhZMjyX#&lwvRuS{P0hGW0{(A{dbyCx4)M>z>844kmPE??o1N)F+a^0=i~SlV7p+E(5)O6?aB(-5sKT!BRfSn)@5=Q-eiju_M)d&s}zwQ1|FE4JPJcD6DbYmwx9`Rd6; z|9U!d_-QF7MIJ&g^Ss*(h<~^)8&5VCw~54wAzGkkDSR!BQl~ zcq^&yTM=9n0Z?G&2Y7Po}?3`+_z=x8*4{rrBUFGR~^jePv9Bpqu^L-fBU` zoCKq7glxR;PZdBsSgwFG>q?(Cm2N!qOnMUbzW;ufsD}WUEnAi5`|$_*w?k^G8Zy$Y zhm_qZm|i3=KP;qSP^p>Jlzu&Sm;zK@JqODL&~DkR7MxJ-dx%E&>LnSX&G2}2->d1G z-d*-*n(+mUXTgDJ^unNIq|m@|ZZKYW?I9j*N^=Fi;u-Hss7Lu@&!MIty)S_kQc$?$ zk$47saZc2YrQNmPeVYP;RiAu=(#*fmD|*rahNXazasBwe6Nb|CJMVKR_k`W9AF!GO zZh=qABhxMzrx1h9g}3~T#DFYt09;r#gwuA*Itv9e zU&IdPoLJK~Z=u)z^$Znk{oM^Vc983!dhONq%qcB*Nb~>sJ(%8o4@w}iuAV4uezCxl z*1wPuPBF2Rg(z0hj`eAoc20t`=H zw%P_LE^ri>-mFQXOcK7V&&!0pny0zvK;dA)h}4#nqRi&-Jn&pGIEZU%yss22Ir4OCNrywdSDn``C~B6Io9@qAu;_*Bv`*zZr_Rp3J&3*{pfoOytShvGJ@L z4j)MmU3dW{*H$4HVSxctz|sWRqFjaj7%#MPPJ54MitivRNDO$7^3tP657|L*-yD}U zoH>3C1<*jX$&yuq-9JzC z;&bXf7B4X%G}e*ZAV)yv*teJB#Nab9H(O47Vddbr(1v4hoOpTePqcseQb(H6TJz1D zey2ypzrl3xv5xH`OGDv+m+Q$);OPZip7n6k5KR8eD<{##T|3M63cVUuB}kxI+RQeb z#1IL1A$?Q@;H{G8WQP-@p*#w*+`_a83xX{gG@!>$J(-pc8c0unGL5!<`mwpPte_y9Y=Y>Aaw&I#3(bz7XCFq7TMZ&BCHp)A9r7Mpu zENo$s3*aR!751qGGwr>Fg(c}6Fzy^`R99)nuY0q4;#%(d2hD2Ig#Pl(v-I>w;#qw6 zt+?(L^sQj*0XyY8DZNxMc`*3tlde%ZcGqrXHLODc{Eux}Ag*DL&iVk$3S1wgi9H!q zAO??20k}=$0}_1wfER2Z8uxJn2GHkA7Lj!CU`eQ1LwfA`$@CcN1l9-n`5yKfa@U26 z!CK)#)&y*`9b++Aw3qJV&!dM<93`&}?HsZKQXCzL8+J)Z43T0mgv&4zW4uRs!9p5O ziP=*JY2Pa%XV9#_2ta*riaIQ=!(_+DZ`&=%@sDyadF{%HbWyWpqUCGV^MEa_-y$4) z26A=>u_d=}PkkFE%0VQY*<718ZKNFW?i6Bl%AyWSay$zXY5(ekik zAK4|YWh)vmegaJz*q@RG14kQ%K8^ShWtGJ9a1vdbQiEwuhVSCqV~n?wm3%MzsGtRn z4~&Jg^7d((L~mSi8ErrRJbF${Z-07c3KeYK;=^dcybLB~E`qUk8y1W`|EJ%_wP;C` zuDg!l)7oZ!-o)-Yuv}sei zcg(5uNP|RL_2%n^XCS5KYRWd6t4EtLM_VvICBPcXt7|qzWo!*^2 zhcipx~w=2DM#<%Ld3A}!iiMjaH)#tlAcTn1_A87HNw@b4+dUuKjKA!;c z_&pgeF=QtcZIhHFHC)_Fxci0Ng18e{N4W2#(KNSTU;6i(Z_$DI^L(zkKuRG|4SHef ztDykf&b`v;nn438xmHbEQa}Pvv=MK>q4EIIq88X9#b>C@;9IRK18um^Dtgp=NF?Z3 z*x*@(lswpvXqH05&KXCcac9x;%)RvWx?gFTV9M#MS5eN2?ajF!dZdR8C)$ z1bc0?OIKSTdf@*BHxx+ z5YJ#>%NDjY6{-CI>;S++#q$~|{%6!bZlhU$?41>Ue;-`$bjh>V#-F+cD?Ue->ql> z4Lj53&6~>&(|hmrP2ISe_6Xouy=jwt|J&k4g?^)6N;7H#_uo1Rl-jx_jceP+zJIh8 z#AQGZF=%no6tFM^0Rr=V@SS%l7gh_r0LU4RO-GPnBdF=iuS@WicDzXN2zO@yZ^#N5 z1BNBRbJkqJj_**5YayLaZ1y}l9_C@9%)0*`qGz6R^y?3&5nXkKwr&V`vO72#8EmHm zalUq^o<aKRRRdnz}XB69$DzrY}<_g#h`@F02Xp21weuG4sPCz zHe7TuegEt;`oY3-fT#C{3v`?(3Y+xWVp)KcHtLle%80cZ}5{t%jEgUl}>k`h208_NO?3_@+3V;Rn$N>HM8GGoN`|c&n zJ3S5>_Q#x>o`Kho)ked73kt%sV6TamQ4)uZpu5kTAQuraa8%TI0bqsUWCjeZN19dR zNPst-^F%n%#URh&H91xTvNXpSZzX2E6`8q$2?1=uexfyg2cw0(DVQw4xV!-w1028$ zdiwE#`F8u~Gj!YQZ%_tXEieNPIr+kDn^&&{5lK!6d2D@6FEF#NOOFm~|im9^O~fKIsSCF~(a-7%#`<<;D!h z1T;)9%Z(;VS!op36TtwA(iD-CY#%}>Myh0eF92h7ye3VWNCsLS1#AW(76AgdE-d&> zdFP$NCRbh?;($k+Eee2b?=_D-te;$jx)gxh{k%WZ4a1J7rZwXw=)%jZyg(Oh4>r;~ z=%Sq#6*jS^uG8!ytQyb;+P7~n_odBvi*leaUqjNuV8Sl_cm}A081Pmi;5DTN*uk9!Oz>gQ-%DP~&39J6>mp^mIAN1-M|D)~Gzab0J%cAe)MSsT&SY|APR;{I{ z*HwcCNb@YN1H?1PEY5Y5(0~h|#fEF}mgKZvRJ}_V%ITg;hmL7anQe~|18vFFes!D{1;4wdh988r)1#p@0jXLQ8Sp@Y()@qe?3JR-+V>6Vm5^V7?wUIHTXtjsS)lN?jH+@=$j0@uvL!% zZzW>ACh&ssCMG6EZBAAiz{{XpU9hf%v;Rb^CSIfB!d9!!b5CXF1n)1fVKc^ose!Ux zEXV7`-et0-zSm;W0!n)GHQN9EOxkZmszL`u(C^ZkhK4IJxk9W1oLgau>Ugkwox5c# zt=zDIwys-8Is5j~!Idk>iei;NzIzXnE^|7_O)!(gEF+TZ zb7>URH_Y=)IVq`IcM6>~j($7yY&wK&87z@-eapn3d5-BDhwJo{X1whH?=2Nqxt5sL zx4ZLJN?)Q9boTDuTh4yU5_rAuk$worV!&HPfj1htfkC$zzJWOtHoWJAgBT%xs=^J?Lb(CJ3sam!I;{&9oFYjKrR78c zJ5Q|kV~V}wq%oA)sk6!ph6q^bOh}6ZMha;F-d3FS5gn0PkjZWUKFBe~$sA!$ggt%} zNgnw%Mr!%wBedhY8TR!-en3#3qLMw9R$<#$EDT};5c57#+eN(q zV8Lj451{4OF|%R7MZ(Ye7hX*3&%2Ng)lYQTEN4`PqX`CFuzR$FOr6IK_0OMi zRt*MUwgf>tK;0(PQ}qr{K6v#ZEGOzcr1Qe<$)IDt{DP{jUndzaNJwb_Z&9Gjz>9vs zz>BT20&kTyC*#J!QJm13y|%hVCBZC-K?{cQ0JY4dWXeQrTDa80Ob8u_)8g#duE3Xb zkTKga^N_LG6=x&nEV~kbb%1YlK4gG^2NgOYf|55#RNoO`ot~UR>5o1|4L5C~77yP` zI~OR|U}&CLgei%sXmJZWf>iVfTagL|cre^e+Ep8X+u+QxwC<9Lv>A1SIz(M-7Ak=j zgDmQN=MJ^U=Qxfw!U;!Z*5G`%*_=K5399->TL9xlJtJHua?2sl92hX#k@(H^;WxriAEBh@T2mF#s-D zP;Q<(vo3cwxi8QwE(HplxdZM9Ds7jingCz09s%@rC&Y$hNPRB8mm%1H#uLv_>$!8N z+M^HBLBZ4z5Qo_>yL84%(FI_JXU8nJN$)qOliJm7#Wyac!Zt_E8~ z7X#qRjLrugZ8uWVPaH=W(1M`)KHlRT0B;Q92-1UvGz_+AD~N?5z&%}nZCf!5f|XAL zFyvC~cj1a3K*xZ$5(98?!M7wq87vyWo4 zwQmmUjSh^?{d;Y3p7o0H0(1euNcM;gOc+vxV9cA+`cSRsU#1SvJV`s}%(gv?pasUj zH##jBcEDh~V7b+=yPlSf7|n>R02f)E0kQx^Sa59LrqbGD)`Pk?XExq?9yv+{2jYR4 z6Mmxp&6M|e&Fcc#z^XAL(it|;zA{8x=+?GPiMho`1Dal^2@FmZ(YYfAyrm&>djQmw zAiN-JepXW8i-xu{pW_6O(%sl2$qTaHDW!QF(76lczWt_TaP#NSuTbC%V8cRbMe4KwT@LV) zD4y%~n{K5{JlBI-mjw$2v)v*X=%$T|iOPhZdz6&mNy%QQ%$g_j;~f(hr1dkuBRXr0 z5z8Xz)O&%!hVh0MXw5W2nlYEu^9$!08t!#fELC3PMS;FnXuf;|{6>-R+gF3LIMwPaL>q+85Y*U>S14$}H`F^~@FtA5`L z!1jBORHgTEHL6SC^~)4p*0aoLq`(;PRszP0Ez;syX*K`=uMF2%zdnUB_vl43BS^Oy zU5gp8c`P-J=Kt^m^}p(BnlyibI(FeD^un{x(WGMs6Cv@UIqfv12o46Gr7a|&LxOFC z34?tBi~+#Vf5p^vSJPw)T{@8(zWNd!5+DL+0|Xc0s(1nJ(X#)|W#%ts zl+;9%al%|+Lp_&AF2fk`RuHMdkMTxgzemc9(LvGRoAu~HTfd*BQo>jP<#H4WeEGEi z*?#!=-_KF69Cdin;J%9ao_MkXUXvxW4#@w{oe@ln)3*ZzFeQc-h^VvWX`oiJyI#JQDfTPr$04`kN5o@cBPiC z(`!~ze0n<7TeyINf?4LRUP*r}T`BCt13NzP|Mq#gff( z@#QoHU|du}O9ov}0@FTi+fpsj9n(tbCRBgJ8le4^und1Z;;c>cu~$pR}fBXh;Yh1Yvc`9ZL&OK1NmU;cNd8ruS6@eQmO;EUC6e4dj{&DX4=y1)D^?JnW<6dwi% zivlWuA2yTOrVJcJd81CG9V186q1J6#opig%`h;?{-DY(HOJ)^t889c%Ni%0q{qJYZ zo%b_bZ~MpB>Sd7xi&aB{5WV+aB1$5Nwpz64y+sd^AWEVpdXE-e*i}AS5M_0%w`cRn-EJTuQ<@IAj=bI*O9^TYY!%$fU|*XwO~5h%uMze$3Tekt6Mj0ei`TE?Ys z349nNqTDbqt6%$6(RmN>gzvH2Gs>@KNbbb!az^DHB^=9n*FGCTQD&? zI8hkhC3O}VMAmh4BZeSX%l#B_o7529cB5L(_QL~SndXK6QNgl6s2R00L2TT5Lm#=( zp58I}U+Os7Idkcp^i?{{dn=3ZULGG&sOQITUT&@8e%1i$lDIPeJ;NO%{Ziv2`2H(6 zi22uNu+EM6DqeMQWeU~D?mSKzM2&yZ!deHV?hXv0KXKZY*dzf~kb|INwHpf*kjk~2 z5desr7nZh-IVS{|0fvsq{VR1pJ){$oePqW%mw66!6FGP4)}zC*vqUJmOS`fhI?vC0 z$EKUG;wP^bL0$|tr!rZ}grrQrUp!CxvtY$6S+g;J+cS6#7E{@1YB-?d_f5|>s_ z$)RIIcx>k-NR9V8aaeNsP1d+CK4WvFXq%19VCwd%j~uvYFUtrWS>1lIcUG2SGjP+m2*-*^t(sjPeM||Lf|8ukM zC7b<({kv=RotlrIRONEX2}JVb#4-UMH`&fwLHzfglJZ!oRmCN}*dgVJ^xt;=`|@eO zh#u)N;digEtfUkaOWyw3he*LjWGYeB`SEm>*~p%X(EO-F}P zTg{`na;72P8v8^2e6G~f@#SY~8_a>^CKkS3?fNeN{Otf*L6yZ40L!|r6;9x`Kd+1C zZgqvYY7FXD)D3PMj{y|$Yx`$|N@I5pF2^;jze=rjh*&TN^k_`i+ZI{&2~=`tYm63Q z0d4oU6BBemr2-P#0*FG+RMx0+8N@JES>|FYgES9^WDgtS*%9t^@P zB(ZYp=pFj9%So4#kDH2*t(+j=dI&`U7XZ7+@11ex9f4CK;|h8mU0Cx@t=s}QodbDP zO56lr=Ha3NhM@YpZ1)ubY{Dx0cMi31-gN`fJc;7vi($FhdhAwxL_$RViw;e{q@S)a zuBcC^sZJqKKXR)Teq-t!JWr-zHvkdbROfylWv#ZUg;_heC(VZE8EjA5`HBz^_I@?J zspciIOsi&`^6%r;t~5JvASy%F1-ApRQSNihCirn0UDz_^V~fU&%qrB)&3rx;7*prJ~;^$Zs$KSE%;&*5Y+eyO@X?Rp8?lO;^#C->VZ{d(&jN zAEP;m_T33A@M~xax;j1~?SZV@=xoh>MX;EK8$8dY>Ea*V8Hwnj`+W~C02TuBJu#H} ztjD{+AO{ym$fM(=8py@1*_R7PaS~cW+MaL%*k}&_yF2p&gl|hbS~MUX=LMRX21VC( zZ~;6b zT*EfsY-HK$4>*X?#@y1>aD>ODBr!gtTsfuua>LRlBo$cY<&`BnG}PqXt^95Q_{x+* zIS)gKsLobzbh^VyJh5l2ZXv~A1HKjTGq%_VG-ABlAw>w`@SsL4C^eVtH>xaf9r)_dr3R9Vxl(bVgv~6Gq zrfAEnH!Q+fpRdWTmwVzUq%1qmY1pNhi(6CkGwxFKDNsHxPJ80+C*5BAV~5Ge*vzJC za!62*hy0`Az?9~0tD|{fm;L2xn*J5_C==8cdwu??@DV#C^r7DV@|TqmRQ`)dWA9Hr z+9RY~>`Z}gjwCefKBUfjx2=lYmOEleTKKZ9cVgb(1yHUvxAoS`aHH)#zs)++sSQ4Dc2D?vXXt z^Oky!2iXVpRv;g>c)n4q#BCVc=m$7{s7#7->Ry-CyVqLecZmx_!@$*22Z0H8?TWZ5 zn@jC>+(rU#slL0Jfwnu*X-yj1DD`YvyO49V;+3)OGM}S9gQiEkNdPbCieL@1nXH6# z@g4|}j*FB3L#CkM%TRMO-i4K8{Zg=Q4qJ1e!*x3SjACi4yMknB-LGf!-q zh~4_##2`{)UWjBPhNhxlkPg814)z)48XSA*+uv-7DQK8Y$zYsvO7Wj08?NP3WET10 zJRr4Bde0LcMEc+j&7^YP*g;R!ThYn%Er3F>=RPPbRL9}=B{N48R0>Y6D zIySP=oxL#BjTMPSmkReJfQg`BGpDs+s;)gp@BnF+Mnp^HeAr>*|LjA9YMXuditCcT zu(WAxN{VsbNly0&n_PJ9Kc#nAcyfSqM)Pt1s1$10-B$=fRyMi)v<7py9sfUN; z4TXrBvNj(gLu{>@a1bK`^bE3#~fj7^~O^KKI> zp<|Je^XL?Iesz(k*?Ud|Po>>JUjw6%2Ek(T_Xe5|7WavmrK%r__N`6Us$jp*LKxq8 zhkN$<+kW!rh~&Bt+Mbbq`y*Mz2!Btu^cg(K3Y2Q+b)Q*E2!Wz6BKYv*)FM0 z3yMn^rKL_hd0K^!EJ-JZmN2ULXoy|I!G>7o5BcxS%#vnzrELU$f=RCmlL2dUwXomWr1T(9Nz)p8(((-vsX41Um7@$vAAYHE)Ep+VUSFn-OB!i24MdX2@JAo*1)SmT;i z$uN4yssuQ@Z$tuOSMil8O_ezmBI-n1jBjS$;XxBVSLF_c0w4$BN3!lz3M=0^Yl07r zaRi8DEJMubb$TCyXObN6D%w_PUl@`X;jpV`U|@0}Z%I|2_p~1b)m>Or4nd8R63C}G z#vDKV7G~yili-puJPtkTY?_2?0mZ0Tv`3Qq*~WfeFJG{pp?_sJd0(F$yC9NF>f?XA zW}e*J&9Q%H*!$Z1u2;nE)lU4KKIwO})3FJ=6G#bCJ8xLX~iw3tD{pmJ^g}D>*jO)JLnrM zNcLx5`~yqoydY8kCwj$Iaa1La&8~}wcTBib=$=eH6-fKKX7zOQf=LiW`|I3BD2e#V z$EnDp^!~^@geyKkDD~%ZvUW48<|Z2+=sN%1 zGyY6DRoN@xPeNVBruJ^Kj{wWZ*BN(%9sMFTl73QjrYdhQ+%JP4$kFGAKYxin4u!5r zl2^qIviY#4aadx6?FTi1(7JLkHKkz(Doyv5TvVm?v#>He;V14kFC4t;3|T#z*Et%` z)BEBWPjKfXkfxQ51XQ>sXjS2v%;sl~2@w2F>>XJSmY=|%R;)OX!Jt*K&Qaj!WVQKD zT2wHW0WlI-dPO&BzFyC~dmA2tpFEtQdDBba8C(zT0vX73*S3ZI!TbOcs>ZBm<{wfg&w&=XF91(0sLF2W?cu#|#D%z$q zE8R=3_tYXITc;|}X(E~5blCUiVnir53gXX^C6;%Uf?lpD1RST1KBoX(el25*Oqg@9 z`e4_A00>b;f@5OALCGkha*;KV5$$cV98r0&C!#1e*L|L{6FO0&T|HOVjb%Jx58BjZ z^+5FM-B1{mBgiG)<~f**y(#gMnnpVuK?r6cBGo}u^i&={psH!bqcQPyWtP~ii?i-N z{;jn{%uY#qe`+l4J^|#Q0ed#CJ-(Vq3iOI)VuX!;Pk+#ulyMl+GfVRZ4$0%csLm%0 zI#I;G?C+8EqA!bz2w?FufMW?rgmiaJMYWV=ROP*w0%#hyc_M;0aiH9s&3nG){=yc1 zf4KN;;4f+4!jBeRXAv~x@~nj#83#pEsh{^)M~!vg4iyZrg+Hcfi01q8JDucV%JtB|^9HeKGE15Yqic!_4>Z`Lvol=Hz3Gs~Dp zmW1KyX@g%&#V+yn?mw}VE_eZmc(p?U>kjtV94PO-*xKE6z>w1Ne+tXm25iVSvI_ zmr{ZOxnMqjl;L4x*N~7)3sq&F+nsKyX?ct1d=zFiD&@YrM4L82x)ad~*W>dMWJ z+;NpIevhND#)G%WM<+Et#S0e-qF9_J4D%Fjui8-}z%wtpk(*}&(UV9lV@2{dVo$$Y(3B13ajn@#;bQ zS#gJ(ejwe-Z<)BSEWgC970I{ZMh4Y0N$GC`^JVbiku$$zRQ>P|mf1 z-hpcm2=er$;*XkV=jOmp*!{hPVh!jSZZqFd52abVs|J zzgm)qP-n5+3$o+YKbAWsivt4#8~fLqVf!09+nc^S!!-GpZJglfR|*I3M@RoGp+0SI zArVz|W}4PNCi&M(m4@BR2}9Ov)~j)>8d5y8jV4n0!r)LQ&+#J^#?-2o7lu=l>9r=z z2FsJGYQo7?;1Mt7>~aU1!K)WUOU|V+0Be5NipELq=a014mj`{U!a&ZsJEIj+Qy{GtDI1sKg)crY9kx1# zKag_X>XxzHU9D~$yWW(gM}!`fC~zWgfxklL+n;(U37H{XokNW%;fqbln(ZSQ$;~{q z`{HVfhtoX<%fdS*7K%KuIT_d?q)A_D%Vx+?92e9eixGdS)lqzT;UUG{XK%JDYlX?F z+ehtl`CGZ+;Xxxy zQ&Yp5L+WE9R8lboV)A$B!HLI>=(n8%<&lO?bhex*$JhX=`doe1#4@mEzP^tDPy51? zM)c+EZDNe@VE8*ipMaoSJDfPp=Fuskok?%@YP-zPteo>+aiD8~th)$ut`NNbd)#9V zU=X+sw)N<%Xu)=@xQB$8mY$mkAJ8p_$W^Gfb|&v_7SOIN9Nb=UjWD*LNPFrQPrf=# zf1!NjGvFUWYfx;awn!3W<`wGORh;^r%vZtQVpEcN=Aw+=#H>*c34kl;H->N%ehvY4 zfP%_msiW0ufAVFE$;;EMrC;@&Xyql}XpRjQ{0x~w)I14+Y@huj$9yh`2@$`Kjx~K7 z8zBBI_cqw?bSU>?+KORG@&In|A$xI@c{wp)U*q24(s5E7`0Fvy(BqU2KqeG<4CH_T z{-MNIG9i5Z-^ITj|JnI(JHG9|i+}I^|M;K~3cy>iau5M66tGT=uW!Nl`oD{RJN~m1 duxUU*0$5+Nj%~^i{R+TeIvV=wwW>DJ{|DIB7^eUL literal 0 HcmV?d00001 diff --git a/src/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone.png b/src/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone.png new file mode 100644 index 0000000000000000000000000000000000000000..e90de0de4671bf0bc8ae9144b65e81cf4bddd45f GIT binary patch literal 61809 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 literal 0 HcmV?d00001 diff --git a/src/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone.skin b/src/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone.skin new file mode 100644 index 0000000..3525d0a --- /dev/null +++ b/src/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone.skin @@ -0,0 +1,16 @@ +[SkinFile] +Up=TouchscreenPhone.png +Down=TouchscreenPhone-pressed.png +Screen=90 107 176 208 +Areas=9 +HasMouseHover=false + +"Context1" 0x01100000 145 321 134 333 132 361 134 374 110 343 109 318 +"Call" 0x01100004 88 395 130 439 +"Hangup" 0x01100005 227 395 269 439 +"Back" 0x01000061 249 322 240 354 219 373 223 344 216 325 208 318 +"Left" 0x1000012 159 338 149 328 141 336 141 373 149 381 159 371 159 369 +"Down" 0x1000015 160 373 150 382 159 391 199 391 207 385 196 374 194 374 +"Right" 0x1000014 195 336 206 323 215 338 215 373 208 384 197 375 +"Up" 0x1000013 160 336 149 326 158 319 197 319 203 322 194 337 +"Select" 0x01010000 160 338 195 371 diff --git a/src/shared/deviceskin/skins/TouchscreenPhone.skin/defaultbuttons.conf b/src/shared/deviceskin/skins/TouchscreenPhone.skin/defaultbuttons.conf new file mode 100644 index 0000000..a13dfdc --- /dev/null +++ b/src/shared/deviceskin/skins/TouchscreenPhone.skin/defaultbuttons.conf @@ -0,0 +1,45 @@ +[Translation] +File=QtopiaDefaults +Context=Buttons +[Menu] +Rows=4 +Columns=3 +Map=123456789*0# +Default=5 +1=Applications/camera.desktop +2=Applications/datebook.desktop +3=Applications +4=Applications/qtmail.desktop +5=Applications/addressbook.desktop +6=Games +7=Settings/Beaming.desktop +8=Applications/simapp.desktop,Applications/calculator.desktop +9=Settings +*=Applications/mediarecorder.desktop +0=Applications/todolist.desktop +#=Documents +Animator=Bounce +AnimatorBackground=Radial +[SoftKeys] +Count=3 +Key0=Context1 +Key1=Select +Key2=Back +[SystemButtons] +Count=5 +Key0=Context1 +Key1=Back +Key2=Select +Key3=Call +Key4=Hangup +[Button] +Count=1 +[Button0] +Name=Power Button +Key=Hangup +HeldActionService=Launcher +HeldActionMessage=execute(QString) +HeldActionArgs=@ByteArray(\0\0\0\x1\0\0\0\n\0\0\0\0\x10\0s\0h\0u\0t\0\x64\0o\0w\0n) +[Device] +PrimaryInput=Touchscreen + diff --git a/src/shared/findwidget/abstractfindwidget.cpp b/src/shared/findwidget/abstractfindwidget.cpp new file mode 100644 index 0000000..254414a --- /dev/null +++ b/src/shared/findwidget/abstractfindwidget.cpp @@ -0,0 +1,272 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +/*! \class AbstractFindWidget + + \brief A search bar that is commonly added below a searchable widget. + + \internal + + This widget implements a search bar which becomes visible when the user + wants to start searching. It is a modern replacement for the commonly used + search dialog. It is usually placed below the target widget using a QVBoxLayout. + + The search is incremental and can be set to case sensitive or whole words + using buttons available on the search bar. + */ + +#include "abstractfindwidget.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +static QIcon createIconSet(const QString &name) +{ + QStringList candidates = QStringList() + << (QString::fromUtf8(":/qt-project.org/shared/images/") + name) +#ifdef Q_OS_MAC + << (QString::fromUtf8(":/qt-project.org/shared/images/mac/") + name); +#else + << (QString::fromUtf8(":/qt-project.org/shared/images/win/") + name); +#endif + + for (const QString &f : std::as_const(candidates)) { + if (QFile::exists(f)) + return QIcon(f); + } + + return QIcon(); +} + +/*! + Constructs an AbstractFindWidget. + + \a flags can change the layout and turn off certain features. + \a parent is passed to the QWidget constructor. + */ +AbstractFindWidget::AbstractFindWidget(FindFlags flags, QWidget *parent) + : QWidget(parent) +{ + QBoxLayout *topLayOut; + QBoxLayout *layOut; + if (flags & NarrowLayout) { + topLayOut = new QVBoxLayout(this); + layOut = new QHBoxLayout; + topLayOut->addLayout(layOut); + } else { + topLayOut = layOut = new QHBoxLayout(this); + } +#ifndef Q_OS_MAC + topLayOut->setSpacing(6); + topLayOut->setContentsMargins(QMargins()); +#endif + + m_toolClose = new QToolButton(this); + m_toolClose->setIcon(createIconSet(QLatin1String("closetab.png"))); + m_toolClose->setAutoRaise(true); + layOut->addWidget(m_toolClose); + connect(m_toolClose, SIGNAL(clicked()), SLOT(deactivate())); + + m_editFind = new QLineEdit(this); + layOut->addWidget(m_editFind); + connect(m_editFind, SIGNAL(returnPressed()), SLOT(findNext())); + connect(m_editFind, SIGNAL(textChanged(QString)), SLOT(findCurrentText())); + connect(m_editFind, SIGNAL(textChanged(QString)), SLOT(updateButtons())); + + m_toolPrevious = new QToolButton(this); + m_toolPrevious->setAutoRaise(true); + m_toolPrevious->setText(tr("&Previous")); + m_toolPrevious->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + m_toolPrevious->setIcon(createIconSet(QLatin1String("previous.png"))); + layOut->addWidget(m_toolPrevious); + connect(m_toolPrevious, SIGNAL(clicked()), SLOT(findPrevious())); + + m_toolNext = new QToolButton(this); + m_toolNext->setAutoRaise(true); + m_toolNext->setText(tr("&Next")); + m_toolNext->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + m_toolNext->setIcon(createIconSet(QLatin1String("next.png"))); + layOut->addWidget(m_toolNext); + connect(m_toolNext, SIGNAL(clicked()), SLOT(findNext())); + + if (flags & NarrowLayout) { + QSizePolicy sp(QSizePolicy::Preferred, QSizePolicy::Fixed); + m_toolPrevious->setSizePolicy(sp); + m_toolPrevious->setMinimumWidth(m_toolPrevious->minimumSizeHint().height()); + m_toolNext->setSizePolicy(sp); + m_toolNext->setMinimumWidth(m_toolNext->minimumSizeHint().height()); + + QSpacerItem *spacerItem = + new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum); + layOut->addItem(spacerItem); + + layOut = new QHBoxLayout; + topLayOut->addLayout(layOut); + } else { + m_editFind->setMinimumWidth(150); + } + + if (!(flags & NoCaseSensitive)) { + m_checkCase = new QCheckBox(tr("&Case sensitive"), this); + layOut->addWidget(m_checkCase); + connect(m_checkCase, SIGNAL(toggled(bool)), SLOT(findCurrentText())); + } else { + m_checkCase = 0; + } + + if (!(flags & NoWholeWords)) { + m_checkWholeWords = new QCheckBox(tr("Whole &words"), this); + layOut->addWidget(m_checkWholeWords); + connect(m_checkWholeWords, SIGNAL(toggled(bool)), SLOT(findCurrentText())); + } else { + m_checkWholeWords = 0; + } + + m_labelWrapped = new QLabel(this); + m_labelWrapped->setTextFormat(Qt::RichText); + m_labelWrapped->setAlignment( + Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter); + m_labelWrapped->setText( + tr("" + " Search wrapped")); + m_labelWrapped->hide(); + layOut->addWidget(m_labelWrapped); + + QSpacerItem *spacerItem = + new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum); + layOut->addItem(spacerItem); + + setMinimumWidth(minimumSizeHint().width()); + + updateButtons(); + hide(); +} + +/*! + Destroys the AbstractFindWidget. + */ +AbstractFindWidget::~AbstractFindWidget() = default; + +/*! + Returns the icon set to be used for the action that initiates a search. + */ +QIcon AbstractFindWidget::findIconSet() +{ + return createIconSet(QLatin1String("searchfind.png")); +} + +/*! + Creates an actions with standard icon and shortcut to activate the widget. + */ +QAction *AbstractFindWidget::createFindAction(QObject *parent) +{ + + auto result = new QAction(AbstractFindWidget::findIconSet(), + tr("&Find in Text..."), parent); + connect(result, &QAction::triggered, this, &AbstractFindWidget::activate); + result->setShortcut(QKeySequence::Find); + return result; +} + +/*! + Activates the find widget, making it visible and having focus on its input + field. + */ +void AbstractFindWidget::activate() +{ + show(); + m_editFind->selectAll(); + m_editFind->setFocus(Qt::ShortcutFocusReason); +} + +/*! + Deactivates the find widget, making it invisible and handing focus to any + associated QTextEdit. + */ +void AbstractFindWidget::deactivate() +{ + hide(); +} + +void AbstractFindWidget::findNext() +{ + findInternal(m_editFind->text(), true, false); +} + +void AbstractFindWidget::findPrevious() +{ + findInternal(m_editFind->text(), true, true); +} + +void AbstractFindWidget::findCurrentText() +{ + findInternal(m_editFind->text(), false, false); +} + +void AbstractFindWidget::keyPressEvent(QKeyEvent *event) +{ + if (event->key() == Qt::Key_Escape) { + deactivate(); + return; + } + + QWidget::keyPressEvent(event); +} + +void AbstractFindWidget::updateButtons() +{ + const bool en = !m_editFind->text().isEmpty(); + m_toolPrevious->setEnabled(en); + m_toolNext->setEnabled(en); +} + +void AbstractFindWidget::findInternal(const QString &ttf, bool skipCurrent, bool backward) +{ + bool found = false; + bool wrapped = false; + find(ttf, skipCurrent, backward, &found, &wrapped); + QPalette p; + p.setColor(QPalette::Active, QPalette::Base, found ? Qt::white : QColor(255, 102, 102)); + m_editFind->setPalette(p); + m_labelWrapped->setVisible(wrapped); +} + +bool AbstractFindWidget::caseSensitive() const +{ + return m_checkCase && m_checkCase->isChecked(); +} + +bool AbstractFindWidget::wholeWords() const +{ + return m_checkWholeWords && m_checkWholeWords->isChecked(); +} + +bool AbstractFindWidget::eventFilter(QObject *object, QEvent *e) +{ + if (isVisible() && e->type() == QEvent::KeyPress) { + QKeyEvent *ke = static_cast(e); + if (ke->key() == Qt::Key_Escape) { + hide(); + return true; + } + } + + return QWidget::eventFilter(object, e); +} + +QT_END_NAMESPACE diff --git a/src/shared/findwidget/abstractfindwidget.h b/src/shared/findwidget/abstractfindwidget.h new file mode 100644 index 0000000..ca3ad0d --- /dev/null +++ b/src/shared/findwidget/abstractfindwidget.h @@ -0,0 +1,79 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef ABSTRACTFINDWIDGET_H +#define ABSTRACTFINDWIDGET_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QAction; +class QCheckBox; +class QEvent; +class QKeyEvent; +class QLabel; +class QLineEdit; +class QObject; +class QToolButton; + +class AbstractFindWidget : public QWidget +{ + Q_OBJECT + +public: + enum FindFlag { + /// Use a layout that is roughly half as wide and twice as high as the regular one. + NarrowLayout = 1, + /// Do not show the "Whole words" checkbox. + NoWholeWords = 2, + /// Do not show the "Case sensitive" checkbox. + NoCaseSensitive = 4 + }; + Q_DECLARE_FLAGS(FindFlags, FindFlag) + + explicit AbstractFindWidget(FindFlags flags = FindFlags(), QWidget *parent = 0); + ~AbstractFindWidget() override; + + bool eventFilter(QObject *object, QEvent *e) override; + + static QIcon findIconSet(); + QAction *createFindAction(QObject *parent); + +public slots: + void activate(); + virtual void deactivate(); + void findNext(); + void findPrevious(); + void findCurrentText(); + +protected: + void keyPressEvent(QKeyEvent *event) override; + +private slots: + void updateButtons(); + +protected: + virtual void find(const QString &textToFind, bool skipCurrent, bool backward, bool *found, bool *wrapped) = 0; + + bool caseSensitive() const; + bool wholeWords() const; + +private: + void findInternal(const QString &textToFind, bool skipCurrent, bool backward); + + QLineEdit *m_editFind; + QLabel *m_labelWrapped; + QToolButton *m_toolNext; + QToolButton *m_toolClose; + QToolButton *m_toolPrevious; + QCheckBox *m_checkCase; + QCheckBox *m_checkWholeWords; +}; + +Q_DECLARE_OPERATORS_FOR_FLAGS(AbstractFindWidget::FindFlags) + +QT_END_NAMESPACE + +#endif // ABSTRACTFINDWIDGET_H diff --git a/src/shared/findwidget/images/mac/closetab.png b/src/shared/findwidget/images/mac/closetab.png new file mode 100644 index 0000000000000000000000000000000000000000..ab9d669eeebed9718363bd06ba84fdfd9e7cd6b5 GIT binary patch literal 516 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf)c~Im*Z=?jtE;Q)=;&BlTH4uz z0FbS#tLxz4;OOY6t*vcrY;0#|=i=((>goy*VC*;Rym}W@bPVXt_v{4bWI$Utd2zKcFE%#ZggFv9Yla9z1yT z=+WcHkDoq$`uzEGpmovF(ca$PK*OD#o#W!-l9G~KTwJoUva++Yi;Iif+uLW(oH={; z>^XDh+`D%V=rEugfYybCgoK8MIyyQW>XKdu^q_o6kY6x^2?(SEK?4XJ0D-GluU>l# z0v|tqT5?z%sC2)li(`m{WbVQ1Vh0^WST8Itzqt7R8J}4qF1|`02mjX#o&J=O|6qPh ztW^KfDn9$C2OYoKd^ON`yn53GBWDif%VMH6PulHvw?8kgNdITRzaVjwbgtfX-n%ny zGF%9px6S#suI0Djmkcuuyx+tsmFw%6F&c<|%X}`hbN6K3WemISa9w+1v4v0P9_xiG z^5I>frpsPC=QC;a^n{j}#2?Q{?cw^dLN8eNq0PlhsiN_wkryqmi|%ZjpS0V4_V*~& bKcCs&oRdi2E+elG^a_KgtDnm{r-UW|i^$5o literal 0 HcmV?d00001 diff --git a/src/shared/findwidget/images/mac/next.png b/src/shared/findwidget/images/mac/next.png new file mode 100644 index 0000000000000000000000000000000000000000..a585cab80c1435972d12fc8e4eabb631a116101f GIT binary patch literal 1310 zcma)4X;6~~5Dg%T)Qd9$R-hn=L5fhWihvMK6@dUzTMJf8y(!REKnFiFaw7t{B5HkXuoebvA_CZiws;@&-$dk8lW%nTu1kM|c^mq~ z5pR?4W^!v@4_Y1hUc!7nna3x&jii5kR%NrSu$HV9$vmSoSbMns?88JA$!{fvV$v_} zkaN(E0s)y?M*6ZceWFt9L<2&}pl?jNjceF(A?XpZOV~E(y)lJu_ep7kRwb)wB3A`} zStshR7fap4cN$qb>^;)3hE2HmeNo>g6^f*8%pD8NmhjHVjOljl-9^rRTjm*CRkg^B z=yvtuLG21RCvfc{k{i)G2LD_nRw1PkiKmdE%ZseTB$sTlHhtE;8DA05nZUmyaD87Kq798&c_h;0}&@&2=0{5oS zJ&INZu8c!9g+@7^zQD{2@CP8jjYA?#K7&ew+;+%rL;VyZ_c8GlqG6mFf~`AV-~Pb2 zF_A2qB3)N!mVuGJrSa^As}1KQQ7iox%-1vez!XZ7@!28erw=$I$=M8mK83z}()R-RKpl@PlFv}}GxoukWdtV)A zM&0#CYjwxgJB3M+N{PE6OaDRtuIG*lO@gcB-+O~i9j!BqS1hJmi_T~g;@E5!>)M4z zs+eKY#d$n7snIYr491Zi`_=_zWX|SsntfKfx*iytUNgPe;d52Hr1S5nw6xD|l?vs> z6RVtrjOG5{Wvc#5WAJz`p3Xh7MYdP^(y7U*f`*}Tm7gRdb)#;huf5=qaYf5kW%Tr= zhuJQ}{mwF}bl7_QJhh(O3?d*t$=uvDBYuDA+~}p`h}g<8IXjfO`}vIC4>m(*^HVQb zXm*EG)buVgv64IO>l=_ui%RI*AC$(6JIakCBJP%y@f?zqT?Q`wDmV1vRK^8HhFlIC zD)Dk>tahwmk4i&+DPSG7+CR%Z*Wkydnig?aNY>hIrDfb|{kDdS_H-+A{fK2RU*0tB zYaKB%Hy@R@>)sFZFf%jru$>qB(M6}G=H?YmQ908am;sWsloSc$S)O2ysqblJ0Kw;1 c={cR&`R7T_c+c>)8tpgH!h<83qQFGX|LB5QfdBvi literal 0 HcmV?d00001 diff --git a/src/shared/findwidget/images/mac/previous.png b/src/shared/findwidget/images/mac/previous.png new file mode 100644 index 0000000000000000000000000000000000000000..612fb34dced693312ee764ee325acaea71c45766 GIT binary patch literal 1080 zcmV-81jqY{P)PC^SxR?!STv26R?J#y8(2mz&}=g z6xe(W$Sdn20W(|$eslns;{w)rC{f-80%rIYhHdZyX$8Q9&wzK`z}6=%V20P#YQT3T2m$`lxhA)=`DQDy@1h}~D)647Qm|fI?~^=M;KVf>Do}jDuh+4ZyX#rj zBS21#A=4SV&H(C!3|1gYNt7J)>-FEW5*pw-3lyFLwh7x!PX0aK#<81K({2SRV3jDX z_UryzMqgD+$}RwV8w}js^;Ldg|0STBafe79g;o247O+Z`dHs6RPn`TZPx4NUzRzd+kqFY4^dZlRP*{5s z9SMZW3VO?g{mDQwDAtkiV$$rjn>{s+zx?_;@PKf9H*sdxI{rSG#F7{?fJBK*ul6K5 zT78&=N2*XVjEo?o$=K-Fk&_bMT(!ef)6n+EpQ-{4_t>Ib{x*(`A*0A}GDO59M54P@ zqNCNTvV}{yLna^=}^ODETU8fuOnJz9Z;7>&l9T#6`) zY2k1^IJXb?I(|a>%y>EB9RDIS68tkuK?3i6OQV=wI2ew zPZF+e3*7wEA9~LI_{?#QMuTJt1Ok|wvte&-17a}=4<6hfJ#yrS9|0KIt^^Or0HiHp zOhPCe00p9`!GQw@>mJ;{`x^ia*k(kq7{DX~$wLB6i6I`nJ`4LA57u9L|GiT*z)u-t zwrvO~DFt{=MobE#ulHYA_4?>Dpv%yJl1Xse>_7xyAwoj3Xf-m7g_(HzbQ*pdMx8Dl z+N>P-eJi2uF98&Q#kTB#z%v+k=292RV4-1LSXjjHupOpR^Bw@_Xc?ve*a-_`Z0Ua# zh|d7qaM?vKAz1uL& z&KK6z)D+g&*YCY~^JWErFH;J{JFqb?UU*Q~)Qo5}icm%x@+-=r%gzSJ^I$O<3~DrK z3d*VisC6$`tq<*Vd|`Qcc^QCLQV-#V4kWU);)6C#2T>FeGZ>)D%>gF}U4W@hF9AW{e@O7ae5q-im4wV&`UhsvQ4Pqb+IVNN6JTQPM99_Bi^T_k2lR5kk1HYLJ_sMU6-E*q_&EpzTz{Zda zyuKj1J|Doq;1o1k0}j2>g4Whn7z~DQ?~YguUauGT?%hLoceitVeB70vpRc)i@nTId z7+k!1_3E8h(^r|vsoVh2PbdVVFi?1P2sb4Zioi~Lfub-30$x0RG!*{$6{64Qo!72iGe3Oz@UheB{F}?=8Vm#iOCFDB$A#vdXFhsUbMEZx;)ei^ z5dy&_-3h5EtTs2sp3K5LX~n$VNM>(a6>3LuZjBn(6b5hfPZfqOzcqo-u? zl`B__Cu<7ds^Vrft2~Ey_6Wx_MEL$V90R47R)SHO7{AgPy3!}(7AiUqo6YU8JHB~j zvwOzfo|Rek$33caPC{`F!H6gkQsIeJA-F2?PQSRE#X;Z!fdkiGC7u=qPWp66VgT+E zOdNY^0fD*s1&7D8GBi&`>2(so1Ysd0^@_6yJrN;R2p_?##9Jz;0@9L%z6UNPyOrmg zc>&y-1kdPyW+(We&MI;YP5QwNnWK~2=C6GY>q>uRohZ1S!_|r2h^1uHwEnkg4 zra89NpHYfhL?kpSVnSg)i9n)+ta7L*gKKkyST}$#sIG6lKxzp-Nnvg?fg~c|Bfd%8 ai2eg-`|TVyIxaN;0000fruJ3jc8<|8pe&b0zCL@6z2E5pzd+(iAlUs$!iqI4S^6p4AC9Nf@vzUPSy(P~ z1SuhEk+Uxp0002ovPDHLkV1ikVxH|v< literal 0 HcmV?d00001 diff --git a/src/shared/findwidget/images/win/next.png b/src/shared/findwidget/images/win/next.png new file mode 100644 index 0000000000000000000000000000000000000000..8df4127a00bb400aeb8ee1185c0d50e75c7427eb GIT binary patch literal 1038 zcmZXSdrZ?;6vr>3*usiD1i|tuC~KVqEh_e@bU;BKg$RW)j5G>kCLlOgFxY`q z-FPzs8Z%^|+gKnx6xd)0tVIi5K}XmuNMWP_AN-{4uV=qH_s@2cdr$5;`F_vm-du4c z_c+CTr#V8168b@KG?5*Qi)2dd%G=U0gf`J5!(&2-lfJCux%a!T>?brNUDN91- z$>?f2`ueP6?WbN<=_u+DS{*N2d{D_|prQaoRCsyxw#ffoRD0g5 zGRF(+i^im7tFp`5xlUqeX(Fo0v?${v-9(OlB);~%_o`gHs%#-zx~Y;iWj$f2`K^*b zA{aE|rE3atbtdVn4D!-sZB-gtoBo2B)p+5cR^5Cx1&I^U+Fa9fMGLlYh2Z=w1{K91 z%^z*LWr=RFNI##cU6JH}XvB;2LlpwDB+Wu1AQKFY1uSg-j8;=|!T4^7Vuq~9=p8aT z=z*FFeX$h@rl}wx^P`Mi;!^*FKONn;=)3W90Ds+;_r^AGFS;c<`h2DJ;u{|(4K?Mx zPxyZlZdCZ~ek&vrj35|tf(Znw6CkBQk2|PZV8jH*C@@5Yr7#$dg@<9VasV{pFvWsr z70^S50auXmK*W)*`%WP5-ohHOTvSgf7FX1?ba|S1;4Tfjf z#*YSl1NLngrk_;4YSKGA#ih~u4ScFtrZX4}c*(XJl}a_cjN{_KsOb1YHI6GT+dXvJ zpR2|Vm&|gPbmi_D^J4|9ggy4=rB;nJgiLHhgOA0~C(=^fT=$iw?pTbo>XQHLE>rJW z@bq9v7=t%k(r^4FlwD!a+}>-xcd{+82z z510*o+6-rV&M*8*s0@-D?+SoEUHDelg2Fa&1>%)vx?c!9uIzOk!aH{@U8cU{Y^dEaG>aT_#(T zDQU;zU0kdk?VN3&9Hnu0HHxiAyUF6vQO51l9daLLx5G7d&2aUX_0^{$>4_zKEi1|e zpI?_VALV#*$^+V3+FI}YDHtl>cK>lte)y|^j>FV=YQlFMKMSAi)24{EpA&SG#QVnh Oxk5v@!FK{vM1KR8n#>9S literal 0 HcmV?d00001 diff --git a/src/shared/findwidget/images/win/previous.png b/src/shared/findwidget/images/win/previous.png new file mode 100644 index 0000000000000000000000000000000000000000..0780bc23dd90aa90276b7fb9c7b3ac66dd47d701 GIT binary patch literal 898 zcmV-|1AY97P)c2lV=3YBRkqxxVMa%Q@+3*It9(8@r(B&pozCk>dB#bIx;~_Zc7}{7vA$ z6x>LJB>-SI;{sVc?71Efw{E9+s6@fwLz1~OCXgjSOi4UE(!DAfDa{DzjtGPkBv?u~ z*esy%sFFB%JltL}I@VRi$}jl$?DT_V3il#r+a#dyLlj;))F@%FDIFPwgq5fH>vs4; zDuu7MNnlxd6(Utf%mrITTD|Up))) zIaTt~AF(coo`oW|okD%bO=DgZv{3kV!fi?c&3Rd$QvMZtiV&52#0D1%qVRe!Q@fn- zG*h<VQ8iBU4;9T0`XB0UONejFCB0QT*)y|GM|cA)a*t4;DPwok)RfJY({(+g7|(nV&^_YZ7S-!%6>~= zPt4B?a*c*nZp-Q?JA}2IzPn!&%b4-RlsR_S4#DR|w478{ws{|H_1Gib3 zLJ*Hj2Ba(w&}#d)A)`IRmS*w$Xlgp8u}&Ik+&oQDEKd{72booyJVCM`LkI;l^D2gu zd`m`#D!P*$qzhOBS*|>Yc5?=y3lGBSw*sribTUc$LCC*y9MtUhD%0plHCui$h&##W z>Dd;-lUPP9vihJ+)~@UbkZ_XW{(FYIxuLy+4dVjtUF0~`-C*6VWT_-=KV(wx8_Lo* zYPWhrB7Ns=^V@V{C4^t_dJxek-_ja~8N1OeBkaVDBC(j;(CMzuKfA~&)FQL{=l?2x Y0Ke*zApqF`eEV2><{9 literal 0 HcmV?d00001 diff --git a/src/shared/findwidget/images/win/searchfind.png b/src/shared/findwidget/images/win/searchfind.png new file mode 100644 index 0000000000000000000000000000000000000000..6ea35e930d2f298790f19ce5e90cb006f925950f GIT binary patch literal 1944 zcmV;J2WR++P)`8uk zCYhUie)pU+=Vln^9PgfHyBDL7R1Rh_!lS4VIR^uUBp^o=kgIVBs)q37JU%#k6}JH_ zan3b-&0v2%gWtG!eE*cDaZ1XCjoZF!rOynUps+i?Az9Nm7zEM6lxUd$`%gzF+k0m& zT)c(90SJ(U`n3e^HNE36t^P$eI7gz0Mx&UYpGT(C1z*pn%6q>)*m-{#?>2YgDu6jo zk+eYP^|MoDhku@hgw^B-hr@XCWCYtwUWTH``100YW0(GT`oE(A{N-u~t^)`qDPWASK0y zEfvR1o{CEcs)k!$Z|T8B##lrj%47r-LQW_kFcpfth?^fbVm`P4L11t=Y>>Ih5Q-ol zKsGT=M3Zbm1mH0M@gKlwP?4LH3a_^xAsR-j)e4I#1*#l^s=*2@BP7=XzS4q(0;0f? zo1FngE`X1QadL7N9qsq<>0Q6%pTiaahX^xctQ)`-p>m4~!y(IZ zN_%^|2B2|$3B3ZG%XCCv5SR%B(b@G7xp^h9+p|!A`7-*ZCt=>P71?=ih>tq8k)EmG zNMJ#k`Q(e#nT4?Br?n>>$B!R>d0=2*CJ+dW0{D_77CFT_72wb`4Ok=E|7ZlUm%CI zMjx=$p^k?G5ej%bo*V!rgo`jHYyk(rH7#xh#>S>my6Y9HLJUh56S4|7!Rl~;F##(T zWsJjUioxaxAsXerus?^cx0aNYqypGTICX)=ge~BD8`icdFto)svqOVJ{%N{C&*^j;0HhHP!m!RF0=UMZagEN^6|k6$7#{MWw9JEirxUU$ ztw@sX3nC<;dWs88MxzluJw1BQVJ1W*2!R0S8iD0DaD5;Nq^H}c4L&f&kZ*mqdgYb* zh#RWHDhqNm=z4g)-Y9?wp%U6U0(@=ql_dH3S(q3f!ua?&HfK1I8D63s3OM3OsETkb z+gwmt=+2<)L3<#gzo0^dnoxiPD>qzQfuh0?9{({6ahdzNz6T~gam++ zSs+Rp7)c0{2?76z+TGSD_jlY-27RN!?okYTN6 zy`n$NW^D|j00;tD?M|tbTu%J6Tj2m2o=GeV7))uHog7oWt=Cp39j2sn7y{rYM)Y%m zfd2H7E~64rBBXyW2V`E?GNI*sTM%}V0G^|<)8$e*W55-!f@O){y@7X(BHo}x8a?G$ zoTTIW(*^ZX%LF3?9q4E)JP$kZ<4sm}>N^{S(kvT8R+<2pogpKQ@wacpS|0ed-!uJf zwVT+iZ?5q*NyCKvRsVSCgO*Oz6sEA6>U^QxX=BVq5}!|MGYt=v+W;;xy^m=`s$R-a zQb`j_IEb3fsqDn}+(P-IFb^~hXz67wDIU^qc0000c54ekZ>00006VoOIv0RI600RN!9r;`8x0f9+G zK~yNujgmb}f>9L5rH|0$5R%kb;F8*qSwko;8BtoMPjA?Zm0709(~F{yI;2sV^(lgu zww8vb8fx$Z1Vz&`dCqx)INe8xhBQ3zhdbQgJ@9tpq7hTPvYN1Qy z11edDlFXpQ7!SgXi6CQivW}bH=8kZhw&8KAhPkK?d{ScW9=9f#!fvMJG0V^C77=@6 zU6PYnjQcPfb)vjn!+1cYjqz>@yKZS=^jedgMjbGVJPMa*F|j@&tYRkehVqh+_JTHy zO?mXgNOJUun0~u7gbx`D@pnwGe_?8#DK@QAWZX*&BOQP5f0pTm@_r5SJB&wbjLC*D z)2fFBz$6WKHy6)sTk&w^NuLnuz={x-oU8=~Z?qYEXX^(|hOD&fm$b0EP9X +#include +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +/*! + Constructs a ItemViewFindWidget. + + \a flags is passed to the AbstractFindWidget constructor. + \a parent is passed to the QWidget constructor. + */ +ItemViewFindWidget::ItemViewFindWidget(FindFlags flags, QWidget *parent) + : AbstractFindWidget(flags, parent) + , m_itemView(0) +{ +} + +/*! + Associates a QAbstractItemView with this find widget. Searches done using this find + widget will then apply to the given QAbstractItemView. + + An event filter is set on the QAbstractItemView which intercepts the ESC key while + the find widget is active, and uses it to deactivate the find widget. + + If the find widget is already associated with a QAbstractItemView, the event filter + is removed from this QAbstractItemView first. + + \a itemView may be NULL. + */ +void ItemViewFindWidget::setItemView(QAbstractItemView *itemView) +{ + if (m_itemView) + m_itemView->removeEventFilter(this); + + m_itemView = itemView; + + if (m_itemView) + m_itemView->installEventFilter(this); +} + +/*! + \reimp + */ +void ItemViewFindWidget::deactivate() +{ + if (m_itemView) + m_itemView->setFocus(); + + AbstractFindWidget::deactivate(); +} + +// Sorting is needed to find the start/end of the selection. +// This is utter black magic. And it is damn slow. +static bool indexLessThan(const QModelIndex &a, const QModelIndex &b) +{ + // First determine the nesting of each index in the tree. + QModelIndex aa = a; + int aDepth = 0; + while (aa.parent() != QModelIndex()) { + // As a side effect, check if one of the items is the parent of the other. + // Children are always displayed below their parents, so sort them further down. + if (aa.parent() == b) + return true; + aa = aa.parent(); + aDepth++; + } + QModelIndex ba = b; + int bDepth = 0; + while (ba.parent() != QModelIndex()) { + if (ba.parent() == a) + return false; + ba = ba.parent(); + bDepth++; + } + // Now find indices at comparable depth. + for (aa = a; aDepth > bDepth; aDepth--) + aa = aa.parent(); + for (ba = b; aDepth < bDepth; bDepth--) + ba = ba.parent(); + // If they have the same parent, sort them within a top-to-bottom, left-to-right rectangle. + if (aa.parent() == ba.parent()) { + if (aa.row() < ba.row()) + return true; + if (aa.row() > ba.row()) + return false; + return aa.column() < ba.column(); + } + // Now try to find indices that have the same grandparent. This ends latest at the root node. + while (aa.parent().parent() != ba.parent().parent()) { + aa = aa.parent(); + ba = ba.parent(); + } + // A bigger row is always displayed further down. + if (aa.parent().row() < ba.parent().row()) + return true; + if (aa.parent().row() > ba.parent().row()) + return false; + // Here's the trick: a child spawned from a bigger column is displayed further *up*. + // That's because the tree lines are on the left and are supposed not to cross each other. + // This case is mostly academical, as "all" models spawn children from the first column. + return aa.parent().column() > ba.parent().column(); +} + +/*! + \reimp + */ +void ItemViewFindWidget::find(const QString &ttf, bool skipCurrent, bool backward, bool *found, bool *wrapped) +{ + if (!m_itemView || !m_itemView->model()->hasChildren()) + return; + + QModelIndex idx; + if (skipCurrent && m_itemView->selectionModel()->hasSelection()) { + QModelIndexList il = m_itemView->selectionModel()->selectedIndexes(); + std::sort(il.begin(), il.end(), indexLessThan); + idx = backward ? il.first() : il.last(); + } else { + idx = m_itemView->currentIndex(); + } + + *found = true; + QModelIndex newIdx = idx; + + if (!ttf.isEmpty()) { + if (newIdx.isValid()) { + int column = newIdx.column(); + if (skipCurrent) + if (QTreeView *tv = qobject_cast(m_itemView)) + if (tv->allColumnsShowFocus()) + column = backward ? 0 : m_itemView->model()->columnCount(newIdx.parent()) - 1; + newIdx = findHelper(ttf, skipCurrent, backward, + newIdx.parent(), newIdx.row(), column); + } + if (!newIdx.isValid()) { + int row = backward ? m_itemView->model()->rowCount() : 0; + int column = backward ? 0 : -1; + newIdx = findHelper(ttf, true, backward, m_itemView->rootIndex(), row, column); + if (!newIdx.isValid()) { + *found = false; + newIdx = idx; + } else { + *wrapped = true; + } + } + } + + if (!isVisible()) + show(); + + m_itemView->setCurrentIndex(newIdx); +} + +// You are not expected to understand the following two functions. +// The traversal order is described in the indexLessThan() comments above. + +static inline bool skipForward(const QAbstractItemModel *model, QModelIndex &parent, int &row, int &column) +{ + forever { + column++; + if (column < model->columnCount(parent)) + return true; + forever { + while (--column >= 0) { + QModelIndex nIdx = model->index(row, column, parent); + if (nIdx.isValid()) { + if (model->hasChildren(nIdx)) { + row = 0; + column = 0; + parent = nIdx; + return true; + } + } + } + if (++row < model->rowCount(parent)) + break; + if (!parent.isValid()) + return false; + row = parent.row(); + column = parent.column(); + parent = parent.parent(); + } + } +} + +static inline bool skipBackward(const QAbstractItemModel *model, QModelIndex &parent, int &row, int &column) +{ + column--; + if (column == -1) { + if (--row < 0) { + if (!parent.isValid()) + return false; + row = parent.row(); + column = parent.column(); + parent = parent.parent(); + } + while (++column < model->columnCount(parent)) { + QModelIndex nIdx = model->index(row, column, parent); + if (nIdx.isValid()) { + if (model->hasChildren(nIdx)) { + row = model->rowCount(nIdx) - 1; + column = -1; + parent = nIdx; + } + } + } + column--; + } + return true; +} + +// QAbstractItemModel::match() does not support backwards searching. Still using it would +// be just a bit inefficient (not much worse than when no match is found). +// The bigger problem is that QAbstractItemView does not provide a method to sort a +// set of indices in traversal order (to find the start and end of the selection). +// Consequently, we do everything by ourselves to be consistent. Of course, this puts +// constraints on the allowable visualizations. +QModelIndex ItemViewFindWidget::findHelper(const QString &textToFind, bool skipCurrent, bool backward, + QModelIndex parent, int row, int column) +{ + const QAbstractItemModel *model = m_itemView->model(); + forever { + if (skipCurrent) { + if (backward) { + if (!skipBackward(model, parent, row, column)) + return QModelIndex(); + } else { + if (!skipForward(model, parent, row, column)) + return QModelIndex(); + } + } + + QModelIndex idx = model->index(row, column, parent); + if (idx.isValid()) { + Qt::CaseSensitivity cs = caseSensitive() ? Qt::CaseSensitive : Qt::CaseInsensitive; + + if (wholeWords()) { + QString rx = QLatin1String("\\b") + QRegularExpression::escape(textToFind) + + QLatin1String("\\b"); + QRegularExpression re(rx); + if (cs == Qt::CaseInsensitive) + re.setPatternOptions(QRegularExpression::CaseInsensitiveOption); + if (idx.data().toString().indexOf(re) >= 0) + return idx; + } else { + if (idx.data().toString().indexOf(textToFind, 0, cs) >= 0) + return idx; + } + } + + skipCurrent = true; + } +} + +QT_END_NAMESPACE diff --git a/src/shared/findwidget/itemviewfindwidget.h b/src/shared/findwidget/itemviewfindwidget.h new file mode 100644 index 0000000..dee3bc3 --- /dev/null +++ b/src/shared/findwidget/itemviewfindwidget.h @@ -0,0 +1,41 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef ITEMVIEWFINDWIDGET_H +#define ITEMVIEWFINDWIDGET_H + +#include "abstractfindwidget.h" + +#include + +QT_BEGIN_NAMESPACE + +class QAbstractItemView; + +class ItemViewFindWidget : public AbstractFindWidget +{ + Q_OBJECT + +public: + explicit ItemViewFindWidget(FindFlags flags = FindFlags(), QWidget *parent = 0); + + QAbstractItemView *itemView() const + { return m_itemView; } + + void setItemView(QAbstractItemView *itemView); + +protected: + void deactivate() override; + void find(const QString &textToFind, bool skipCurrent, + bool backward, bool *found, bool *wrapped) override; + +private: + QModelIndex findHelper(const QString &textToFind, bool skipCurrent, bool backward, + QModelIndex parent, int row, int column); + + QAbstractItemView *m_itemView; +}; + +QT_END_NAMESPACE + +#endif // ITEMVIEWFINDWIDGET_H diff --git a/src/shared/findwidget/texteditfindwidget.cpp b/src/shared/findwidget/texteditfindwidget.cpp new file mode 100644 index 0000000..1b3a1b5 --- /dev/null +++ b/src/shared/findwidget/texteditfindwidget.cpp @@ -0,0 +1,131 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +/*! \class TextEditFindWidget + + \brief A search bar that is commonly added below the searchable text. + + \internal + + This widget implements a search bar which becomes visible when the user + wants to start searching. It is a modern replacement for the commonly used + search dialog. It is usually placed below a QTextEdit using a QVBoxLayout. + + The QTextEdit instance will need to be associated with this class using + setTextEdit(). + + The search is incremental and can be set to case sensitive or whole words + using buttons available on the search bar. + + \sa QTextEdit + */ + +#include "texteditfindwidget.h" + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +/*! + Constructs a TextEditFindWidget. + + \a flags is passed to the AbstractFindWidget constructor. + \a parent is passed to the QWidget constructor. + */ +TextEditFindWidget::TextEditFindWidget(FindFlags flags, QWidget *parent) + : AbstractFindWidget(flags, parent) + , m_textEdit(0) +{ +} + +/*! + Associates a QTextEdit with this find widget. Searches done using this find + widget will then apply to the given QTextEdit. + + An event filter is set on the QTextEdit which intercepts the ESC key while + the find widget is active, and uses it to deactivate the find widget. + + If the find widget is already associated with a QTextEdit, the event filter + is removed from this QTextEdit first. + + \a textEdit may be NULL. + */ +void TextEditFindWidget::setTextEdit(QTextEdit *textEdit) +{ + if (m_textEdit) + m_textEdit->removeEventFilter(this); + + m_textEdit = textEdit; + + if (m_textEdit) + m_textEdit->installEventFilter(this); +} + +/*! + \reimp + */ +void TextEditFindWidget::deactivate() +{ + // Pass focus to the text edit + if (m_textEdit) + m_textEdit->setFocus(); + + AbstractFindWidget::deactivate(); +} + +/*! + \reimp + */ +void TextEditFindWidget::find(const QString &ttf, bool skipCurrent, bool backward, bool *found, bool *wrapped) +{ + if (!m_textEdit) + return; + + QTextCursor cursor = m_textEdit->textCursor(); + QTextDocument *doc = m_textEdit->document(); + + if (!doc || cursor.isNull()) + return; + + if (cursor.hasSelection()) + cursor.setPosition((skipCurrent && !backward) ? cursor.position() : cursor.anchor()); + + *found = true; + QTextCursor newCursor = cursor; + + if (!ttf.isEmpty()) { + QTextDocument::FindFlags options; + + if (backward) + options |= QTextDocument::FindBackward; + + if (caseSensitive()) + options |= QTextDocument::FindCaseSensitively; + + if (wholeWords()) + options |= QTextDocument::FindWholeWords; + + newCursor = doc->find(ttf, cursor, options); + if (newCursor.isNull()) { + QTextCursor ac(doc); + ac.movePosition(options & QTextDocument::FindBackward + ? QTextCursor::End : QTextCursor::Start); + newCursor = doc->find(ttf, ac, options); + if (newCursor.isNull()) { + *found = false; + newCursor = cursor; + } else { + *wrapped = true; + } + } + } + + if (!isVisible()) + show(); + + m_textEdit->setTextCursor(newCursor); +} + +QT_END_NAMESPACE diff --git a/src/shared/findwidget/texteditfindwidget.h b/src/shared/findwidget/texteditfindwidget.h new file mode 100644 index 0000000..603ab65 --- /dev/null +++ b/src/shared/findwidget/texteditfindwidget.h @@ -0,0 +1,36 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef TEXTEDITFINDWIDGET_H +#define TEXTEDITFINDWIDGET_H + +#include "abstractfindwidget.h" + +QT_BEGIN_NAMESPACE + +class QTextEdit; + +class TextEditFindWidget : public AbstractFindWidget +{ + Q_OBJECT + +public: + explicit TextEditFindWidget(FindFlags flags = FindFlags(), QWidget *parent = 0); + + QTextEdit *textEdit() const + { return m_textEdit; } + + void setTextEdit(QTextEdit *textEdit); + +protected: + void deactivate() override; + void find(const QString &textToFind, bool skipCurrent, + bool backward, bool *found, bool *wrapped) override; + +private: + QTextEdit *m_textEdit; +}; + +QT_END_NAMESPACE + +#endif // TEXTEDITFINDWIDGET_H diff --git a/src/shared/fontpanel/fontpanel.cpp b/src/shared/fontpanel/fontpanel.cpp new file mode 100644 index 0000000..b8e5e0b --- /dev/null +++ b/src/shared/fontpanel/fontpanel.cpp @@ -0,0 +1,271 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "fontpanel.h" + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +FontPanel::FontPanel(QWidget *parentWidget) : + QGroupBox(parentWidget), + m_previewLineEdit(new QLineEdit), + m_writingSystemComboBox(new QComboBox), + m_familyComboBox(new QFontComboBox), + m_styleComboBox(new QComboBox), + m_pointSizeComboBox(new QComboBox), + m_previewFontUpdateTimer(0) +{ + setTitle(tr("Font")); + + QFormLayout *formLayout = new QFormLayout(this); + // writing systems + m_writingSystemComboBox->setEditable(false); + + auto writingSystems = QFontDatabase::writingSystems(); + writingSystems.push_front(QFontDatabase::Any); + for (QFontDatabase::WritingSystem ws : std::as_const(writingSystems)) + m_writingSystemComboBox->addItem(QFontDatabase::writingSystemName(ws), QVariant(ws)); + connect(m_writingSystemComboBox, &QComboBox::currentIndexChanged, + this, &FontPanel::slotWritingSystemChanged); + formLayout->addRow(tr("&Writing system"), m_writingSystemComboBox); + + connect(m_familyComboBox, &QFontComboBox::currentFontChanged, + this, &FontPanel::slotFamilyChanged); + formLayout->addRow(tr("&Family"), m_familyComboBox); + + m_styleComboBox->setEditable(false); + connect(m_styleComboBox, &QComboBox::currentIndexChanged, + this, &FontPanel::slotStyleChanged); + formLayout->addRow(tr("&Style"), m_styleComboBox); + + m_pointSizeComboBox->setEditable(false); + connect(m_pointSizeComboBox, &QComboBox::currentIndexChanged, + this, &FontPanel::slotPointSizeChanged); + formLayout->addRow(tr("&Point size"), m_pointSizeComboBox); + + m_previewLineEdit->setReadOnly(true); + formLayout->addRow(m_previewLineEdit); + + setWritingSystem(QFontDatabase::Any); +} + +QFont FontPanel::selectedFont() const +{ + QFont rc = m_familyComboBox->currentFont(); + const QString family = rc.family(); + rc.setPointSize(pointSize()); + const QString styleDescription = styleString(); + if (styleDescription.contains(QLatin1String("Italic"))) + rc.setStyle(QFont::StyleItalic); + else if (styleDescription.contains(QLatin1String("Oblique"))) + rc.setStyle(QFont::StyleOblique); + else + rc.setStyle(QFont::StyleNormal); + rc.setBold(QFontDatabase::bold(family, styleDescription)); + rc.setWeight(QFont::Weight(QFontDatabase::weight(family, styleDescription))); + return rc; +} + +void FontPanel::setSelectedFont(const QFont &f) +{ + m_familyComboBox->setCurrentFont(f); + if (m_familyComboBox->currentIndex() < 0) { + // family not in writing system - find the corresponding one? + QList familyWritingSystems = QFontDatabase::writingSystems(f.family()); + if (familyWritingSystems.isEmpty()) + return; + + setWritingSystem(familyWritingSystems.constFirst()); + m_familyComboBox->setCurrentFont(f); + } + + updateFamily(family()); + + const int pointSizeIndex = closestPointSizeIndex(f.pointSize()); + m_pointSizeComboBox->setCurrentIndex( pointSizeIndex); + + const QString styleString = QFontDatabase::styleString(f); + const int styleIndex = m_styleComboBox->findText(styleString); + m_styleComboBox->setCurrentIndex(styleIndex); + slotUpdatePreviewFont(); +} + + +QFontDatabase::WritingSystem FontPanel::writingSystem() const +{ + const int currentIndex = m_writingSystemComboBox->currentIndex(); + if ( currentIndex == -1) + return QFontDatabase::Latin; + return static_cast(m_writingSystemComboBox->itemData(currentIndex).toInt()); +} + +QString FontPanel::family() const +{ + const int currentIndex = m_familyComboBox->currentIndex(); + return currentIndex != -1 ? m_familyComboBox->currentFont().family() : QString(); +} + +int FontPanel::pointSize() const +{ + const int currentIndex = m_pointSizeComboBox->currentIndex(); + return currentIndex != -1 ? m_pointSizeComboBox->itemData(currentIndex).toInt() : 9; +} + +QString FontPanel::styleString() const +{ + const int currentIndex = m_styleComboBox->currentIndex(); + return currentIndex != -1 ? m_styleComboBox->itemText(currentIndex) : QString(); +} + +void FontPanel::setWritingSystem(QFontDatabase::WritingSystem ws) +{ + m_writingSystemComboBox->setCurrentIndex(m_writingSystemComboBox->findData(QVariant(ws))); + updateWritingSystem(ws); +} + + +void FontPanel::slotWritingSystemChanged(int) +{ + updateWritingSystem(writingSystem()); + delayedPreviewFontUpdate(); +} + +void FontPanel::slotFamilyChanged(const QFont &) +{ + updateFamily(family()); + delayedPreviewFontUpdate(); +} + +void FontPanel::slotStyleChanged(int) +{ + updatePointSizes(family(), styleString()); + delayedPreviewFontUpdate(); +} + +void FontPanel::slotPointSizeChanged(int) +{ + delayedPreviewFontUpdate(); +} + +void FontPanel::updateWritingSystem(QFontDatabase::WritingSystem ws) +{ + + m_previewLineEdit->setText(QFontDatabase::writingSystemSample(ws)); + m_familyComboBox->setWritingSystem (ws); + // Current font not in WS ... set index 0. + if (m_familyComboBox->currentIndex() < 0) { + m_familyComboBox->setCurrentIndex(0); + updateFamily(family()); + } +} + +void FontPanel::updateFamily(const QString &family) +{ + // Update styles and trigger update of point sizes. + // Try to maintain selection or select normal + const QString &oldStyleString = styleString(); + + const QStringList &styles = QFontDatabase::styles(family); + const bool hasStyles = !styles.isEmpty(); + + m_styleComboBox->setCurrentIndex(-1); + m_styleComboBox->clear(); + m_styleComboBox->setEnabled(hasStyles); + + int normalIndex = -1; + const QString normalStyle = QLatin1String("Normal"); + + if (hasStyles) { + for (const QString &style : styles) { + // try to maintain selection or select 'normal' preferably + const int newIndex = m_styleComboBox->count(); + m_styleComboBox->addItem(style); + if (oldStyleString == style) { + m_styleComboBox->setCurrentIndex(newIndex); + } else { + if (oldStyleString == normalStyle) + normalIndex = newIndex; + } + } + if (m_styleComboBox->currentIndex() == -1 && normalIndex != -1) + m_styleComboBox->setCurrentIndex(normalIndex); + } + updatePointSizes(family, styleString()); +} + +int FontPanel::closestPointSizeIndex(int desiredPointSize) const +{ + // try to maintain selection or select closest. + int closestIndex = -1; + int closestAbsError = 0xFFFF; + + const int pointSizeCount = m_pointSizeComboBox->count(); + for (int i = 0; i < pointSizeCount; i++) { + const int itemPointSize = m_pointSizeComboBox->itemData(i).toInt(); + const int absError = qAbs(desiredPointSize - itemPointSize); + if (absError < closestAbsError) { + closestIndex = i; + closestAbsError = absError; + if (closestAbsError == 0) + break; + } else { // past optimum + if (absError > closestAbsError) { + break; + } + } + } + return closestIndex; +} + + +void FontPanel::updatePointSizes(const QString &family, const QString &styleString) +{ + const int oldPointSize = pointSize(); + + auto pointSizes = QFontDatabase::pointSizes(family, styleString); + if (pointSizes.isEmpty()) + pointSizes = QFontDatabase::standardSizes(); + + const bool hasSizes = !pointSizes.isEmpty(); + m_pointSizeComboBox->clear(); + m_pointSizeComboBox->setEnabled(hasSizes); + m_pointSizeComboBox->setCurrentIndex(-1); + + // try to maintain selection or select closest. + if (hasSizes) { + QString n; + for (int pointSize : std::as_const(pointSizes)) + m_pointSizeComboBox->addItem(n.setNum(pointSize), QVariant(pointSize)); + const int closestIndex = closestPointSizeIndex(oldPointSize); + if (closestIndex != -1) + m_pointSizeComboBox->setCurrentIndex(closestIndex); + } +} + +void FontPanel::slotUpdatePreviewFont() +{ + m_previewLineEdit->setFont(selectedFont()); +} + +void FontPanel::delayedPreviewFontUpdate() +{ + if (!m_previewFontUpdateTimer) { + m_previewFontUpdateTimer = new QTimer(this); + connect(m_previewFontUpdateTimer, &QTimer::timeout, + this, &FontPanel::slotUpdatePreviewFont); + m_previewFontUpdateTimer->setInterval(0); + m_previewFontUpdateTimer->setSingleShot(true); + } + if (m_previewFontUpdateTimer->isActive()) + return; + m_previewFontUpdateTimer->start(); +} + +QT_END_NAMESPACE diff --git a/src/shared/fontpanel/fontpanel.h b/src/shared/fontpanel/fontpanel.h new file mode 100644 index 0000000..1750b42 --- /dev/null +++ b/src/shared/fontpanel/fontpanel.h @@ -0,0 +1,69 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of the Qt tools. This header +// file may change from version to version without notice, or even be removed. +// +// We mean it. +// + +#ifndef FONTPANEL_H +#define FONTPANEL_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QComboBox; +class QFontComboBox; +class QTimer; +class QLineEdit; + +class FontPanel: public QGroupBox +{ + Q_OBJECT +public: + FontPanel(QWidget *parentWidget = 0); + + QFont selectedFont() const; + void setSelectedFont(const QFont &); + + QFontDatabase::WritingSystem writingSystem() const; + void setWritingSystem(QFontDatabase::WritingSystem ws); + +private slots: + void slotWritingSystemChanged(int); + void slotFamilyChanged(const QFont &); + void slotStyleChanged(int); + void slotPointSizeChanged(int); + void slotUpdatePreviewFont(); + +private: + QString family() const; + QString styleString() const; + int pointSize() const; + int closestPointSizeIndex(int ps) const; + + void updateWritingSystem(QFontDatabase::WritingSystem ws); + void updateFamily(const QString &family); + void updatePointSizes(const QString &family, const QString &style); + void delayedPreviewFontUpdate(); + + QLineEdit *m_previewLineEdit; + QComboBox *m_writingSystemComboBox; + QFontComboBox* m_familyComboBox; + QComboBox *m_styleComboBox; + QComboBox *m_pointSizeComboBox; + QTimer *m_previewFontUpdateTimer; +}; + +QT_END_NAMESPACE + +#endif // FONTPANEL_H diff --git a/src/shared/qtgradienteditor/images/down.png b/src/shared/qtgradienteditor/images/down.png new file mode 100644 index 0000000000000000000000000000000000000000..29d1d4439a139c662aecca94b6f43a465cfb9cc6 GIT binary patch literal 594 zcmV-Y0j z)Xz`TU>wKswOeUBH_Vo3LZ*V4p&U4v;LVFDq!ObUNJtQHC_UYOy}c$4_Z z287Mpy&>Gkk3$;%;XTGD)-SARcb^V+y#l_lys$a@k{nD+qgKLE+C6xLudGK{sd70w zcE71nDjtqr6rQslcH!s21HbzIZLG4Ku(F%O+U^xp_O4>4nBl-LJ{^?W2788E7ww3c$dW3qz>Ki(HSZqJlD~5#;x#SD}gQ7 zgv0(;bxhbL9Yezjn5K`uZiTiRwq2=|ckJ6DkxX7Tsy45p8>IMse%D zf;Vqf6vh<#P(J!fv{R}3IKcTOvuzkL=(>--JPth;j^KP+u2DCF7oBg1O2Gjh4t<74`k8@{Qu7I|BmjB ziwqBMGCVw_zGWT5`Ay23*D^dmuJP|1!;`xV8`m)0y3BBRFT?N83~QD%TsX;aa5qC! zzQ~rf43F~HF_bS-OG1Nd1;xxMAwOqh?lC9SDxt6UdlP`!*12LE7uvespoA` zt1w)j|IN4j^l|l;eb=ntDSo&kw;}$xs{CHzzl@u5L_e=^4BrWgJ5N_Xmvv4FO#m0% Bsj2_~ literal 0 HcmV?d00001 diff --git a/src/shared/qtgradienteditor/images/editdelete.png b/src/shared/qtgradienteditor/images/editdelete.png new file mode 100644 index 0000000000000000000000000000000000000000..df2a147d246ef62d628d73db36b0b24af98a2ab9 GIT binary patch literal 831 zcmV-F1Hk-=P)R5;6h zl}l(-K@^6Q=FtdACA#^NDs^{Lp)6)L zgDB5eX;UdG_4H6F7*yIgXmIAu0!5NyOCtSU7G=!;6%|3j{gliox-!pOK?G(o&X({YLK$5)lC7F{VZbo703UCXA=&? zO>Nu>w#%A8Rp;5oKacEBBT*BGX+{#I_yE%2i8f!~SeeejbP6SvLH5VQ-~o6A-hwe1 z-+)oOG3-#N-p|7H3rxph%DcJ`E`ihFDtIo2X&L#)9#wa!-__Ey=>18UreVqnx(m*O z14e_~1JA$~|`2HhU^Ra!WRl)GgiU zYU$BXh#q3R4$gpm?mF#|Br$YH!gK>%1c$VCx82fBJaI+hxwpFb)g=^Dbv{zQc<7+k z9t8>W67osVx3S=)K2n#oseNr$I`ov*vgsc2h}xyrpv>h+JHeJUF8ZjWkj` zH1UE>PMpf&iLCQ!iioCJ)~Hi?YjvJaK8_pg59Au!plIt&?SDO~mzDzYD;xj-002ov JPDHLkV1h`%ho%4k literal 0 HcmV?d00001 diff --git a/src/shared/qtgradienteditor/images/minus.png b/src/shared/qtgradienteditor/images/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d6f233d7399c4c07c6c66775f7806acac84b1870 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H3?x5i&EW)6P60k4u0Wb3;FYqWamwl0TmSYg zzPEV)f9L4=uDMg50*&A=3GxeOV9U{Bm1EIh)b!)dNY8G|=4l2>MR>Y6hE&9zJ@3ia zpuppBkxMsqLg3#2p{{ow4y^sCTR&@AtNcZ-!c0XiUIF(fS@*p4-Mvkxubuwr)McGB zHm7G5zmh%w<-tAQYwQ=f{_Q#i|$63?4Gdn(WDhGy5?S*zvKV>UH^L*-tUX z$Jv{I&ffC7bM{5Qj4e}Ezbj}vVjnSc;_|19_y1onFfAQuu24ykUoZnB3o9G9teS?7 zt9NpGMrLu#@0UVzfU@^IT^vIy;%X<}%xf{=arHKHYQL~@ZfotgwYUG*$MH^!I&%2V z@)sJL`rl4pesV%`$+ja*^=&3!b{Hmgs`72G$lh?~sgSmhV3T|L)#5pvnp5W$R3F&x zq^-&N)%9FO2FOm@bA*rKR&a{^p(h(SexKRzobg)f!S5Tb z0(ReeejodN_$Ob%pPGvI-{X5McZ=;}w|{;sE!Zmj;a8K;+WTSWrcUlO+qsq1zw`F> zL$~g{I69@}|MDjqpAy@zuKLv`b1gzCeQUnq?;S;@b8|k;l-+S#KOj|nW)fHH0-#SB NJYD@<);T3K0RYVY#HauO literal 0 HcmV?d00001 diff --git a/src/shared/qtgradienteditor/images/spreadpad.png b/src/shared/qtgradienteditor/images/spreadpad.png new file mode 100644 index 0000000000000000000000000000000000000000..104c0a23d29edbd506b873b7a320c81b23ebfd49 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5DCp_w z;usRq`u3b57lQ&1%farsT#w%W`R^^VMR3ce&ZBxPeIdz{cFAn!>~K9*8oTQGzQ5o8 iMsWi*B7+0^49D5h1Y#KP&EMz^lJIo(b6Mw<&;$U2FDpp^ literal 0 HcmV?d00001 diff --git a/src/shared/qtgradienteditor/images/spreadreflect.png b/src/shared/qtgradienteditor/images/spreadreflect.png new file mode 100644 index 0000000000000000000000000000000000000000..17b82b711a4937944d407621fa4564f4ec21e707 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5C>ZYP z;usR){`Q<9*8v3qmy7u`S(?7@pIa&weB_#l630gKqw*1DGhVSS*kr)CB1c_j<6XJ^ zwcC34-uaNCvGec7^V{yNS8-@yU}R$95Kw?H{;+N^(2uZKqW88T!Wd`;gQu&X%Q~lo FCIHz3G)e#f literal 0 HcmV?d00001 diff --git a/src/shared/qtgradienteditor/images/spreadrepeat.png b/src/shared/qtgradienteditor/images/spreadrepeat.png new file mode 100644 index 0000000000000000000000000000000000000000..7aea898b1de2945fb04613af513ab27dbd5eccf3 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5DCpQ{d>J6P&YF8!TP~KmV5RL#&z1)K7%AYUHx3vIVCg!0Eh`L4*&oF literal 0 HcmV?d00001 diff --git a/src/shared/qtgradienteditor/images/typeconical.png b/src/shared/qtgradienteditor/images/typeconical.png new file mode 100644 index 0000000000000000000000000000000000000000..5479811df61c927c87944c536abbfc00352ebc64 GIT binary patch literal 937 zcmV;a16KTrP)ZC{;OBRpsnO zdL*H_H_0Bsvz}KwJF%C-mqv1CceU&H@r*ql&lzK;<^q3nIl#+H#-x@b&74g#cO7T$ znp&K?d$JS0p5R(Mi^-+?Ag>?&oBtjSKXiThbSj1WR=78Iwl5$M z3Jrk1Gj2c67+`O)@Blz0wRAtkNw{lUhb=XD0uxgvBk5fL9CjI?{-AiMJ%LUn0FAai zGUm*--;uSE10g5?AZ#-Ba*(tEob(x>v1I?J)ex8iB+#2U;l{vrV%zD!L39;>o_Oe+ z#7WQg;Q-o?iic!NAZj_%BqO2bFn6KZZ97Z%1cph7*^j~G!V188(g6&g6nmnCm@1DT z8BwfB@Jq{>_jPCKp5_LHN{?C&4wioQT?Y_9EANq0e!~ZqF$lSugkRL0rF#hb#L%be z*8!x@D_<&ghLHFGVi{+TxUM{GUk)I8>K8)@WO6!B2;yvZ()pl92toI8Sr8w{^o*rQ ziKZ8rgfuy$q@03f;*k(!?fVX(xl{(wqee=`G9)3&0kr(=S~iWLTb4Qxz!Q2IVvwyN z0~|dpyIU?lWI~+>Iw}!SV(JGnVF=ADF(WA$^ai0%A?n_UlydYB-7F{n(rbJ7>K9AGe*k`q=X(21X_p k4gm#+1_h&4C7x z{0jzvc_!v1nM2#65l0gsiE4lacR?Uz9sn`w0YLtR%3aJ+{Z;{NiVgr&2~&Ysj8!Mp zJm?sF1~|9cuXDdvuFUb7uMPr0CCiA+MFJrm(eog~r~zd7bna5IHW#gnOXmmxRRLf* z=?2j=5pxuXA@B*{#O=>H_jcxO<8@A3+bsfsi3Y$niE0=fi3}x%Q3J?L=UTZkU&}Uc z0@&{f;2|cn)r8Df9UvM4Gl4FI3~=P?cdfkJ#%WHUQ{I2i7~pYArfmS(*D#5i3Csc( zvX{y?9o42C0MOf>0iI?xKwDiv33mfsz(V!gLv7q=*w*Wg0iNgm0KH(`4J^qy&3~qs zkD&lKkHGm5I=>8^--w*wik<%%IsZEz!~@A79?6_Pln&ytd=M`tgLpL?%**LNuTQUR VBrZCuWhDRr002ovPDHLkV1l~X@5%rG literal 0 HcmV?d00001 diff --git a/src/shared/qtgradienteditor/images/up.png b/src/shared/qtgradienteditor/images/up.png new file mode 100644 index 0000000000000000000000000000000000000000..e4373122171599c88b78c884b927c6a8b4a90c6a GIT binary patch literal 692 zcmV;l0!#ggP)p2raNh0iv$(l~TMx4kdC6q9nEA|`**D{}k#dX8|6LB>7#;)I^Ped=4Hzs5}YJfl=IMqVOwV3TOn<`fg+FtutHTOl+p4ItW@S@UCRT$s#e2Vdg=lo5D}~>p3$197_jRp z=YhPc7Gm8z$3=Kf7AcnG)$Gyx5pjP)J5;=W_SftyqWmZ>V+N`!8lA3I}LdVVyM axbX+reAIe(fQ}9T00003rU9b}h+zvU zvdt-Gx`Bk+iiy+!DMK?HAf-^(YFA1l#B5Pnlrg*b!*09YySzoz6%sSG$;nG!-@WJi z&OPUSWdOkbO|bus06#GZg-WF|C=`k#JRa|5{JtMij8G!t5WIgxfS-+0skE}LuI}Uh z{{BlIkLN}(7`!z;K7Q3^v-wOWlU*W_7&)T*mm<1b^YpT^vUeR0hd&SqfYa%Owzf7f zo6XSC(E$?^6X5lF!D6ul3kwT7@%bFY%19)CTRAl!86ExJ?RJCdmD=C(_ZzPjG#m?S z-?qZmx;I0+8_hp=T0aWoZoq1@UD0SX7OcyRMDi!iNfuf;H7`9}bM@&%uTP~kcLrHZ z8nD>Sz*c91tl2X2!ilcw_P(z{t!+d5{0IWUG7N)Vc8=NUD;Ok|5Ss zAz~3LA`$FGY36C5N<;lLi&4VHta5m+s2aBDUW2Tc8X>2=88UPYz~T#mt;vJK18%R+ z=YxuhifdT^210<~MpMTn@7L$2rlyGCCe|NE2oVoNBG~70x#r1=s#nd^G*FgM1Z=}jg#HgahLF;AC)A7t zFZlg_&}y}`gQJK9#DkFtiYY|o^NOa{xujz~L&EpI857!m8e<|{u>^@EdJx+~!-}zA zdY&4Z`_$_B_A)sM(@ry}UTz0UN+^Yhd|rIgdNKZl%eD6O>%H5ZaBdJugQ8ci9Q zw;RW1-JYpHxTU29WHQ+h*6&zu25}UBN+>y_y>DQ+`!qi;9YuByx z^z`dk*NdRA$s^`~BcT^p4#l4mN+F`%kQK=-G*BWYS@4+!rBWG6O-+UTG~xAw+csRm z+5?p6r3iT3J0+9iPYIFGrH|*`h~6#%v*&OOm1MP&zc}pS(@7?2*Y4tsv`>zbQoAmCxO$-^EDM zuM)2Mu39aE)>1j_(TII`UwhBaWR9d;BYt=`FL^aJFGoCdPY-==W~9CLPV@idU&Zf9 WSJt-!dAjKU0000&r*aqEiG-2SS)^r%jLd--*+JL5E8^P1os~i;AeGQTwI}6t8MM< z>>PJGoi}|x->l7MyJ0XG+$AL?#@N_c4NG+Id_;F@E>)>iADc`jkJsykfq?<2tE+>W zni|mQbTBwL2ricknwpw?IXO8EczrrzaVV0%-8nV4SgqeN3AMqfDEI8xtn*6(mQprWE;l*i*~v0g}W%|{?6%}Exzb80R+@X3Je zc!yJCa!gd7yEs$W>6lJA-95UpuIqe$^I5mqHW+MaX@QK4jBc#YM1=o!in#>YMx)V1 zn#&7z{~)M5Y0YaeUC{KnU2ikvo+{?s%TpJSMCHer#}BvlE?$udOA}SFB6T+iHWb71lwA;> zm=B!Tm*MH&i7&F+zv&wu9wvfYSbqe;N8A^R;5ED5K1Ehc+gCHP^4OO>oJZxr5pD*~ zD)k?D0uiT%B=e-P%;FpJcs!s`C}@HMh-k$9p$PIQMC9{=>O&JW0sq9se!k(ye!-c5 zRnQi&M4t(q7a9X*asN+kG=biE`5HM1(@r}mU1$OcC6q!$KF|9=e<|vy-5z=BnuGVL ze~8yS!yqmQJ`Y%vEK^2J{}|&O_6BQfYat;ap%?47F0_MX6n{!6IitR#+pli?+7nYh zbS_FaZi{S~bO>6ftnsD^6E$yV+&`PmW{}Bb{)mW((^$WDAs2CJ3W`4^ltw3?lNHG= zv{2HVWN~`DL29nvwry4_mCj&YJA%R{3Yi0zgdSY!6n{!6g@~phE0SAip+row;5B}U zL=s3&PKL}i{Fz;wR$a&1os{VL2)OJsC57To38fH`&&i797FsB2jE&{5+NJ^A~r-vSSyyY3te{)hhtqExg=2d>~g5ijRRfL z8rZ)zacnM0sP_Svl`EWG9FMhNG<)Q+=S4`;w?6uzfMz`(-c!ayW3d#f)ldCSvfwL| zC0az*BY#tf*kc%bo_-f1NoN{=$< +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QtColorButtonPrivate : public QObject +{ + Q_OBJECT + QtColorButton *q_ptr; + Q_DECLARE_PUBLIC(QtColorButton) +public: + QColor m_color; +#ifndef QT_NO_DRAGANDDROP + QColor m_dragColor; + QPoint m_dragStart; + bool m_dragging; +#endif + bool m_backgroundCheckered; + + void slotEditColor(); + QColor shownColor() const; + QPixmap generatePixmap() const; +}; + +void QtColorButtonPrivate::slotEditColor() +{ + const QColor newColor = QColorDialog::getColor(m_color, q_ptr, QString(), QColorDialog::ShowAlphaChannel); + if (!newColor.isValid() || newColor == q_ptr->color()) + return; + q_ptr->setColor(newColor); + emit q_ptr->colorChanged(m_color); +} + +QColor QtColorButtonPrivate::shownColor() const +{ +#ifndef QT_NO_DRAGANDDROP + if (m_dragging) + return m_dragColor; +#endif + return m_color; +} + +QPixmap QtColorButtonPrivate::generatePixmap() const +{ + QPixmap pix(24, 24); + + int pixSize = 20; + QBrush br(shownColor()); + + QPixmap pm(2 * pixSize, 2 * pixSize); + QPainter pmp(&pm); + pmp.fillRect(0, 0, pixSize, pixSize, Qt::lightGray); + pmp.fillRect(pixSize, pixSize, pixSize, pixSize, Qt::lightGray); + pmp.fillRect(0, pixSize, pixSize, pixSize, Qt::darkGray); + pmp.fillRect(pixSize, 0, pixSize, pixSize, Qt::darkGray); + pmp.fillRect(0, 0, 2 * pixSize, 2 * pixSize, shownColor()); + br = QBrush(pm); + + QPainter p(&pix); + int corr = 1; + QRect r = pix.rect().adjusted(corr, corr, -corr, -corr); + p.setBrushOrigin((r.width() % pixSize + pixSize) / 2 + corr, (r.height() % pixSize + pixSize) / 2 + corr); + p.fillRect(r, br); + + p.fillRect(r.width() / 4 + corr, r.height() / 4 + corr, + r.width() / 2, r.height() / 2, + QColor(shownColor().rgb())); + p.drawRect(pix.rect().adjusted(0, 0, -1, -1)); + + return pix; +} + +/////////////// + +QtColorButton::QtColorButton(QWidget *parent) + : QToolButton(parent), d_ptr(new QtColorButtonPrivate) +{ + d_ptr->q_ptr = this; + d_ptr->m_dragging = false; + d_ptr->m_backgroundCheckered = true; + + setAcceptDrops(true); + + connect(this, &QToolButton::clicked, d_ptr.data(), &QtColorButtonPrivate::slotEditColor); + setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred)); +} + +QtColorButton::~QtColorButton() +{ +} + +void QtColorButton::setColor(const QColor &color) +{ + if (d_ptr->m_color == color) + return; + d_ptr->m_color = color; + update(); +} + +QColor QtColorButton::color() const +{ + return d_ptr->m_color; +} + +void QtColorButton::setBackgroundCheckered(bool checkered) +{ + if (d_ptr->m_backgroundCheckered == checkered) + return; + d_ptr->m_backgroundCheckered = checkered; + update(); +} + +bool QtColorButton::isBackgroundCheckered() const +{ + return d_ptr->m_backgroundCheckered; +} + +void QtColorButton::paintEvent(QPaintEvent *event) +{ + QToolButton::paintEvent(event); + if (!isEnabled()) + return; + + const int pixSize = 10; + QBrush br(d_ptr->shownColor()); + if (d_ptr->m_backgroundCheckered) { + QPixmap pm(2 * pixSize, 2 * pixSize); + QPainter pmp(&pm); + pmp.fillRect(0, 0, pixSize, pixSize, Qt::white); + pmp.fillRect(pixSize, pixSize, pixSize, pixSize, Qt::white); + pmp.fillRect(0, pixSize, pixSize, pixSize, Qt::black); + pmp.fillRect(pixSize, 0, pixSize, pixSize, Qt::black); + pmp.fillRect(0, 0, 2 * pixSize, 2 * pixSize, d_ptr->shownColor()); + br = QBrush(pm); + } + + QPainter p(this); + const int corr = 4; + QRect r = rect().adjusted(corr, corr, -corr, -corr); + p.setBrushOrigin((r.width() % pixSize + pixSize) / 2 + corr, (r.height() % pixSize + pixSize) / 2 + corr); + p.fillRect(r, br); + + //const int adjX = qRound(r.width() / 4.0); + //const int adjY = qRound(r.height() / 4.0); + //p.fillRect(r.adjusted(adjX, adjY, -adjX, -adjY), + // QColor(d_ptr->shownColor().rgb())); + /* + p.fillRect(r.adjusted(0, r.height() * 3 / 4, 0, 0), + QColor(d_ptr->shownColor().rgb())); + p.fillRect(r.adjusted(0, 0, 0, -r.height() * 3 / 4), + QColor(d_ptr->shownColor().rgb())); + */ + /* + const QColor frameColor0(0, 0, 0, qRound(0.2 * (0xFF - d_ptr->shownColor().alpha()))); + p.setPen(frameColor0); + p.drawRect(r.adjusted(adjX, adjY, -adjX - 1, -adjY - 1)); + */ + + const QColor frameColor1(0, 0, 0, 26); + p.setPen(frameColor1); + p.drawRect(r.adjusted(1, 1, -2, -2)); + const QColor frameColor2(0, 0, 0, 51); + p.setPen(frameColor2); + p.drawRect(r.adjusted(0, 0, -1, -1)); +} + +void QtColorButton::mousePressEvent(QMouseEvent *event) +{ +#ifndef QT_NO_DRAGANDDROP + if (event->button() == Qt::LeftButton) + d_ptr->m_dragStart = event->pos(); +#endif + QToolButton::mousePressEvent(event); +} + +void QtColorButton::mouseMoveEvent(QMouseEvent *event) +{ +#ifndef QT_NO_DRAGANDDROP + if (event->buttons() & Qt::LeftButton && + (d_ptr->m_dragStart - event->pos()).manhattanLength() > QApplication::startDragDistance()) { + QMimeData *mime = new QMimeData; + mime->setColorData(color()); + QDrag *drg = new QDrag(this); + drg->setMimeData(mime); + drg->setPixmap(d_ptr->generatePixmap()); + setDown(false); + event->accept(); + drg->exec(Qt::CopyAction); + return; + } +#endif + QToolButton::mouseMoveEvent(event); +} + +#ifndef QT_NO_DRAGANDDROP +void QtColorButton::dragEnterEvent(QDragEnterEvent *event) +{ + const QMimeData *mime = event->mimeData(); + if (!mime->hasColor()) + return; + + event->accept(); + d_ptr->m_dragColor = qvariant_cast(mime->colorData()); + d_ptr->m_dragging = true; + update(); +} + +void QtColorButton::dragLeaveEvent(QDragLeaveEvent *event) +{ + event->accept(); + d_ptr->m_dragging = false; + update(); +} + +void QtColorButton::dropEvent(QDropEvent *event) +{ + event->accept(); + d_ptr->m_dragging = false; + if (d_ptr->m_dragColor == color()) + return; + setColor(d_ptr->m_dragColor); + emit colorChanged(color()); +} +#endif + +QT_END_NAMESPACE + +#include "qtcolorbutton.moc" diff --git a/src/shared/qtgradienteditor/qtcolorbutton.h b/src/shared/qtgradienteditor/qtcolorbutton.h new file mode 100644 index 0000000..1dfe56d --- /dev/null +++ b/src/shared/qtgradienteditor/qtcolorbutton.h @@ -0,0 +1,48 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTCOLORBUTTON_H +#define QTCOLORBUTTON_H + +#include + +QT_BEGIN_NAMESPACE + +class QtColorButton : public QToolButton +{ + Q_OBJECT + Q_PROPERTY(bool backgroundCheckered READ isBackgroundCheckered WRITE setBackgroundCheckered) +public: + QtColorButton(QWidget *parent = 0); + ~QtColorButton(); + + bool isBackgroundCheckered() const; + void setBackgroundCheckered(bool checkered); + + QColor color() const; + +public slots: + void setColor(const QColor &color); + +signals: + void colorChanged(const QColor &color); + +protected: + void paintEvent(QPaintEvent *event) override; + void mousePressEvent(QMouseEvent *event) override; + void mouseMoveEvent(QMouseEvent *event) override; +#ifndef QT_NO_DRAGANDDROP + void dragEnterEvent(QDragEnterEvent *event) override; + void dragLeaveEvent(QDragLeaveEvent *event) override; + void dropEvent(QDropEvent *event) override; +#endif + +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtColorButton) + Q_DISABLE_COPY_MOVE(QtColorButton) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtgradienteditor/qtcolorline.cpp b/src/shared/qtgradienteditor/qtcolorline.cpp new file mode 100644 index 0000000..425e547 --- /dev/null +++ b/src/shared/qtgradienteditor/qtcolorline.cpp @@ -0,0 +1,1080 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtcolorline.h" +#include "qdrawutil.h" + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QtColorLinePrivate +{ + QtColorLine *q_ptr; + Q_DECLARE_PUBLIC(QtColorLine) +public: + QtColorLinePrivate(); + + QColor color() const; + void setColor(const QColor &color); + + QtColorLine::ColorComponent colorComponent() const; + void setColorComponent(QtColorLine::ColorComponent component); + + void setIndicatorSize(int size); + int indicatorSize() const; + + void setIndicatorSpace(int space); + int indicatorSpace() const; + + void setFlip(bool flip); + bool flip() const; + + void setBackgroundCheckered(bool checkered); + bool isBackgroundCheckered() const; + + void setOrientation(Qt::Orientation orientation); + Qt::Orientation orientation() const; + + void resizeEvent(QResizeEvent *event); + void paintEvent(QPaintEvent *event); + void mousePressEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + void mouseDoubleClickEvent(QMouseEvent *event); +private: + void checkColor(); + bool isMainPixmapValid() const; + void validate(); + void recreateMainPixmap(); + QSize pixmapSizeFromGeometrySize(const QSize &geometrySize) const; + QPixmap gradientPixmap(int size, Qt::Orientation orientation, const QColor &begin, const QColor &end, bool flipped = false) const; + QPixmap gradientPixmap(Qt::Orientation orientation, const QColor &begin, const QColor &end, bool flipped = false) const; + QPixmap hueGradientPixmap(int size, Qt::Orientation orientation, bool flipped = false, + int saturation = 0xFF, int value = 0xFF, int alpha = 0xFF) const; + QPixmap hueGradientPixmap(Qt::Orientation orientation, bool flipped = false, + int saturation = 0xFF, int value = 0xFF, int alpha = 0xFF) const; + + QList rects(const QPointF &point) const; + + QColor colorFromPoint(const QPointF &point) const; + QPointF pointFromColor(const QColor &color) const; + + QColor m_color; + QtColorLine::ColorComponent m_component; + bool m_flipped; + bool m_backgroundCheckered; + Qt::Orientation m_orientation; + bool m_dragging; + bool m_combiningAlpha; + int m_indicatorSize; + int m_indicatorSpace; + QPointF m_point; + QPoint m_clickOffset; + + QPixmap m_mainPixmap; + QPixmap m_alphalessPixmap; + QPixmap m_semiAlphaPixmap; + QSize m_pixmapSize; + + struct PixData { + QSize size; + QColor color; + QtColorLine::ColorComponent component; + bool flipped; + Qt::Orientation orientation; + }; + + PixData m_lastValidMainPixmapData; +}; + +QtColorLinePrivate::QtColorLinePrivate() + : m_color(Qt::black), m_component(QtColorLine::Value), + m_flipped(false), m_backgroundCheckered(true), m_orientation(Qt::Horizontal), m_dragging(false), m_combiningAlpha(false) +{ + m_indicatorSize = 22; + m_indicatorSpace = 0; + m_pixmapSize = QSize(0, 0); + m_point = pointFromColor(m_color); +} + +void QtColorLinePrivate::setColor(const QColor &color) +{ + if (m_color == color) + return; + if (!color.isValid()) + return; + if (m_dragging) // Warning perhaps here, recursive call + return; + m_color = color; + checkColor(); + m_point = pointFromColor(m_color); + q_ptr->update(); +} + +QColor QtColorLinePrivate::color() const +{ + return m_color; +} + +void QtColorLinePrivate::setColorComponent(QtColorLine::ColorComponent component) +{ + if (m_component == component) + return; + if (m_dragging) // Warning perhaps here, recursive call + return; + m_component = component; + checkColor(); + m_point = pointFromColor(m_color); + q_ptr->update(); +} + +QtColorLine::ColorComponent QtColorLinePrivate::colorComponent() const +{ + return m_component; +} + +void QtColorLinePrivate::setIndicatorSize(int size) +{ + if (size <= 0) + return; + if (m_dragging) // Warning perhaps here, recursive call + return; + if (m_indicatorSize == size) + return; + m_indicatorSize = size; + m_pixmapSize = pixmapSizeFromGeometrySize(q_ptr->contentsRect().size()); + q_ptr->update(); + q_ptr->updateGeometry(); +} + +int QtColorLinePrivate::indicatorSize() const +{ + return m_indicatorSize; +} + +void QtColorLinePrivate::setIndicatorSpace(int space) +{ + if (space < 0) + return; + if (m_dragging) // Warning perhaps here, recursive call + return; + if (m_indicatorSpace == space) + return; + m_indicatorSpace = space; + m_pixmapSize = pixmapSizeFromGeometrySize(q_ptr->contentsRect().size()); + q_ptr->update(); +} + +int QtColorLinePrivate::indicatorSpace() const +{ + return m_indicatorSpace; +} + +void QtColorLinePrivate::setFlip(bool flip) +{ + if (m_dragging) // Warning perhaps here, recursive call + return; + if (m_flipped == flip) + return; + m_flipped = flip; + m_point = pointFromColor(m_color); + q_ptr->update(); +} + +bool QtColorLinePrivate::flip() const +{ + return m_flipped; +} + +void QtColorLinePrivate::setBackgroundCheckered(bool checkered) +{ + if (m_backgroundCheckered == checkered) + return; + m_backgroundCheckered = checkered; + q_ptr->update(); +} + +bool QtColorLinePrivate::isBackgroundCheckered() const +{ + return m_backgroundCheckered; +} + +void QtColorLinePrivate::setOrientation(Qt::Orientation orientation) +{ + if (m_dragging) // Warning perhaps here, recursive call + return; + if (m_orientation == orientation) + return; + + m_orientation = orientation; + if (!q_ptr->testAttribute(Qt::WA_WState_OwnSizePolicy)) { + QSizePolicy sp = q_ptr->sizePolicy(); + sp.transpose(); + q_ptr->setSizePolicy(sp); + q_ptr->setAttribute(Qt::WA_WState_OwnSizePolicy, false); + } + m_point = pointFromColor(m_color); + q_ptr->update(); + q_ptr->updateGeometry(); +} + +Qt::Orientation QtColorLinePrivate::orientation() const +{ + return m_orientation; +} + +void QtColorLinePrivate::checkColor() +{ + switch (m_component) { + case QtColorLine::Red: + case QtColorLine::Green: + case QtColorLine::Blue: + if (m_color.spec() != QColor::Rgb) + m_color = m_color.toRgb(); + break; + case QtColorLine::Hue: + case QtColorLine::Saturation: + case QtColorLine::Value: + if (m_color.spec() != QColor::Hsv) + m_color = m_color.toHsv(); + break; + default: + break; + } + if (m_color.spec() == QColor::Hsv) { + if (m_color.hue() == 360 || m_color.hue() == -1) { + m_color.setHsvF(0.0, m_color.saturationF(), m_color.valueF(), m_color.alphaF()); + } + } +} + +bool QtColorLinePrivate::isMainPixmapValid() const +{ + if (m_mainPixmap.isNull()) { + if (m_pixmapSize.isEmpty()) + return true; + else + return false; + } + if (m_lastValidMainPixmapData.component != m_component) + return false; + if (m_lastValidMainPixmapData.size != m_pixmapSize) + return false; + if (m_lastValidMainPixmapData.flipped != m_flipped) + return false; + if (m_lastValidMainPixmapData.orientation != m_orientation) + return false; + if (m_lastValidMainPixmapData.color == m_color) + return true; + switch (m_component) { + case QtColorLine::Red: + if (m_color.green() == m_lastValidMainPixmapData.color.green() && + m_color.blue() == m_lastValidMainPixmapData.color.blue() && + (!m_combiningAlpha || m_color.alpha() == m_lastValidMainPixmapData.color.alpha())) + return true; + break; + case QtColorLine::Green: + if (m_color.red() == m_lastValidMainPixmapData.color.red() && + m_color.blue() == m_lastValidMainPixmapData.color.blue() && + (!m_combiningAlpha || m_color.alpha() == m_lastValidMainPixmapData.color.alpha())) + return true; + break; + case QtColorLine::Blue: + if (m_color.red() == m_lastValidMainPixmapData.color.red() && + m_color.green() == m_lastValidMainPixmapData.color.green() && + (!m_combiningAlpha || m_color.alpha() == m_lastValidMainPixmapData.color.alpha())) + return true; + break; + case QtColorLine::Hue: + if (m_color.saturation() == m_lastValidMainPixmapData.color.saturation() && + m_color.value() == m_lastValidMainPixmapData.color.value() && + (!m_combiningAlpha || m_color.alpha() == m_lastValidMainPixmapData.color.alpha())) + return true; + break; + case QtColorLine::Saturation: + if (m_color.hue() == m_lastValidMainPixmapData.color.hue() && + m_color.value() == m_lastValidMainPixmapData.color.value() && + (!m_combiningAlpha || m_color.alpha() == m_lastValidMainPixmapData.color.alpha())) + return true; + break; + case QtColorLine::Value: + if (m_color.hue() == m_lastValidMainPixmapData.color.hue() && + m_color.saturation() == m_lastValidMainPixmapData.color.saturation() && + (!m_combiningAlpha || m_color.alpha() == m_lastValidMainPixmapData.color.alpha())) + return true; + break; + case QtColorLine::Alpha: + if (m_color.hue() == m_lastValidMainPixmapData.color.hue() && + m_color.saturation() == m_lastValidMainPixmapData.color.saturation() && + m_color.value() == m_lastValidMainPixmapData.color.value()) + return true; + } + return false; +} + +void QtColorLinePrivate::validate() +{ + if (isMainPixmapValid()) + return; + + recreateMainPixmap(); +} + +QPixmap QtColorLinePrivate::gradientPixmap(Qt::Orientation orientation, const QColor &begin, const QColor &end, bool flipped) const +{ + int size = m_pixmapSize.width(); + if (orientation == Qt::Vertical) + size = m_pixmapSize.height(); + return gradientPixmap(size, orientation, begin, end, flipped); +} + +QPixmap QtColorLinePrivate::gradientPixmap(int size, Qt::Orientation orientation, + const QColor &begin, const QColor &end, bool flipped) const +{ + int gradW = size; + int gradH = size; + int w = size; + int h = size; + if (orientation == Qt::Horizontal) { + gradH = 0; + h = 1; + } else { + gradW = 0; + w = 1; + } + QColor c1 = begin; + QColor c2 = end; + if (flipped) { + c1 = end; + c2 = begin; + } + QLinearGradient lg(0, 0, gradW, gradH); + lg.setColorAt(0, c1); + lg.setColorAt(1, c2); + QImage img(w, h, QImage::Format_ARGB32); + QPainter p(&img); + p.setCompositionMode(QPainter::CompositionMode_Source); + p.fillRect(QRect(0, 0, w, h), lg); + return QPixmap::fromImage(img); +} + +QPixmap QtColorLinePrivate::hueGradientPixmap(Qt::Orientation orientation, bool flipped, + int saturation, int value, int alpha) const +{ + int size = m_pixmapSize.width(); + if (orientation == Qt::Vertical) + size = m_pixmapSize.height(); + return hueGradientPixmap(size, orientation, flipped, saturation, value, alpha); +} + +QPixmap QtColorLinePrivate::hueGradientPixmap(int size, Qt::Orientation orientation, bool flipped, + int saturation, int value, int alpha) const +{ + int gradW = size + 1; + int gradH = size + 1; + int w = size; + int h = size; + if (orientation == Qt::Horizontal) { + gradH = 0; + h = 1; + } else { + gradW = 0; + w = 1; + } + QList colorList; + colorList << QColor::fromHsv(0, saturation, value, alpha); + colorList << QColor::fromHsv(60, saturation, value, alpha); + colorList << QColor::fromHsv(120, saturation, value, alpha); + colorList << QColor::fromHsv(180, saturation, value, alpha); + colorList << QColor::fromHsv(240, saturation, value, alpha); + colorList << QColor::fromHsv(300, saturation, value, alpha); + colorList << QColor::fromHsv(0, saturation, value, alpha); + QLinearGradient lg(0, 0, gradW, gradH); + for (int i = 0; i <= 6; i++) + lg.setColorAt(double(i) / 6.0, flipped ? colorList.at(6 - i) : colorList.at(i)); + QImage img(w, h, QImage::Format_ARGB32); + QPainter p(&img); + p.setCompositionMode(QPainter::CompositionMode_Source); + p.fillRect(QRect(0, 0, w, h), lg); + return QPixmap::fromImage(img); +} + +void QtColorLinePrivate::recreateMainPixmap() +{ + m_lastValidMainPixmapData.size = m_pixmapSize; + m_lastValidMainPixmapData.component = m_component; + m_lastValidMainPixmapData.color = m_color; + m_lastValidMainPixmapData.flipped = m_flipped; + m_lastValidMainPixmapData.orientation = m_orientation; + + if (m_pixmapSize.isEmpty()) { + m_mainPixmap = QPixmap(); + m_alphalessPixmap = QPixmap(); + m_semiAlphaPixmap = QPixmap(); + return; + } + + if (m_mainPixmap.size() != m_pixmapSize) { + m_mainPixmap = QPixmap(m_pixmapSize); + m_alphalessPixmap = QPixmap(m_pixmapSize); + m_semiAlphaPixmap = QPixmap(m_pixmapSize); + } + + Qt::Orientation orient = m_orientation; + const bool flip = m_flipped; + + const int r = m_color.red(); + const int g = m_color.green(); + const int b = m_color.blue(); + const int h = m_color.hue(); + const int s = m_color.saturation(); + const int v = m_color.value(); + const int a = m_color.alpha(); + const double coef = 0.5; + const int semi = qRound(a * coef + 0xFF * (1.0 - coef)); + + if (m_component == QtColorLine::Hue) { + m_alphalessPixmap = hueGradientPixmap(orient, flip, s, v, 0xFF); + if (m_combiningAlpha) { + m_mainPixmap = hueGradientPixmap(orient, flip, s, v, a); + m_semiAlphaPixmap = hueGradientPixmap(orient, flip, s, v, semi); + } + } else if (m_component == QtColorLine::Saturation) { + m_alphalessPixmap = gradientPixmap(orient, QColor::fromHsv(h, 0, v, 0xFF), QColor::fromHsv(h, 0xFF, v, 0xFF), flip); + if (m_combiningAlpha) { + m_mainPixmap = gradientPixmap(orient, QColor::fromHsv(h, 0, v, a), QColor::fromHsv(h, 0xFF, v, a), flip); + m_semiAlphaPixmap = gradientPixmap(orient, QColor::fromHsv(h, 0, v, semi), QColor::fromHsv(h, 0xFF, v, semi), flip); + } + } else if (m_component == QtColorLine::Value) { + m_alphalessPixmap = gradientPixmap(orient, QColor::fromRgb(0, 0, 0, 0xFF), QColor::fromHsv(h, s, 0xFF, 0xFF), flip); + if (m_combiningAlpha) { + m_mainPixmap = gradientPixmap(orient, QColor::fromRgb(0, 0, 0, a), QColor::fromHsv(h, s, 0xFF, a), flip); + m_semiAlphaPixmap = gradientPixmap(orient, QColor::fromRgb(0, 0, 0, semi), QColor::fromHsv(h, s, 0xFF, semi), flip); + } + } else if (m_component == QtColorLine::Red) { + m_alphalessPixmap = gradientPixmap(orient, QColor::fromRgb(0, g, b, 0xFF), QColor::fromRgb(0xFF, g, b, 0xFF), flip); + if (m_combiningAlpha) { + m_mainPixmap = gradientPixmap(orient, QColor::fromRgb(0, g, b, a), QColor::fromRgb(0xFF, g, b, a), flip); + m_semiAlphaPixmap = gradientPixmap(orient, QColor::fromRgb(0, g, b, semi), QColor::fromRgb(0xFF, g, b, semi), flip); + } + } else if (m_component == QtColorLine::Green) { + m_alphalessPixmap = gradientPixmap(orient, QColor::fromRgb(r, 0, b, 0xFF), QColor::fromRgb(r, 0xFF, b, 0xFF), flip); + if (m_combiningAlpha) { + m_mainPixmap = gradientPixmap(orient, QColor::fromRgb(r, 0, b, a), QColor::fromRgb(r, 0xFF, b, a), flip); + m_semiAlphaPixmap = gradientPixmap(orient, QColor::fromRgb(r, 0, b, semi), QColor::fromRgb(r, 0xFF, b, semi), flip); + } + } else if (m_component == QtColorLine::Blue) { + m_alphalessPixmap = gradientPixmap(orient, QColor::fromRgb(r, g, 0, 0xFF), QColor::fromRgb(r, g, 0xFF, 0xFF), flip); + if (m_combiningAlpha) { + m_mainPixmap = gradientPixmap(orient, QColor::fromRgb(r, g, 0, a), QColor::fromRgb(r, g, 0xFF, a), flip); + m_semiAlphaPixmap = gradientPixmap(orient, QColor::fromRgb(r, g, 0, semi), QColor::fromRgb(r, g, 0xFF, semi), flip); + } + } else if (m_component == QtColorLine::Alpha) { + m_mainPixmap = gradientPixmap(orient, QColor::fromRgb(r, g, b, 0), QColor::fromRgb(r, g, b, 0xFF), flip); + +// m_alphalessPixmap = gradientPixmap(orient, QColor::fromRgb(r, g, b, 0xFF), QColor::fromRgb(r, g, b, 0xFF), flip); +// m_semiAlphaPixmap = gradientPixmap(orient, QColor::fromRgb(r, g, b, semi), QColor::fromRgb(r, g, b, semi), flip); + } + if (!m_combiningAlpha && m_component != QtColorLine::Alpha) + m_mainPixmap = m_alphalessPixmap; +} + +QSize QtColorLinePrivate::pixmapSizeFromGeometrySize( + const QSize &geometrySize) const +{ + QSize size(m_indicatorSize + 2 * m_indicatorSpace - 1, + m_indicatorSize + 2 * m_indicatorSpace - 1); + if (m_orientation == Qt::Horizontal) + size.setHeight(0); + else + size.setWidth(0); + return geometrySize - size; +} + +QColor QtColorLinePrivate::colorFromPoint(const QPointF &point) const +{ + QPointF p = point; + if (p.x() < 0) + p.setX(0.0); + else if (p.x() > 1) + p.setX(1.0); + if (p.y() < 0) + p.setY(0.0); + else if (p.y() > 1) + p.setY(1.0); + + double pos = p.x(); + if (m_orientation == Qt::Vertical) + pos = p.y(); + if (m_flipped) + pos = 1.0 - pos; + QColor c; + qreal hue; + switch (m_component) { + case QtColorLine::Red: + c.setRgbF(pos, m_color.greenF(), m_color.blueF(), m_color.alphaF()); + break; + case QtColorLine::Green: + c.setRgbF(m_color.redF(), pos, m_color.blueF(), m_color.alphaF()); + break; + case QtColorLine::Blue: + c.setRgbF(m_color.redF(), m_color.greenF(), pos, m_color.alphaF()); + break; + case QtColorLine::Hue: + hue = pos; + hue *= 35999.0 / 36000.0; + c.setHsvF(hue, m_color.saturationF(), m_color.valueF(), m_color.alphaF()); + break; + case QtColorLine::Saturation: + c.setHsvF(m_color.hueF(), pos, m_color.valueF(), m_color.alphaF()); + break; + case QtColorLine::Value: + c.setHsvF(m_color.hueF(), m_color.saturationF(), pos, m_color.alphaF()); + break; + case QtColorLine::Alpha: + c.setHsvF(m_color.hueF(), m_color.saturationF(), m_color.valueF(), pos); + break; + } + return c; +} + +QPointF QtColorLinePrivate::pointFromColor(const QColor &color) const +{ + qreal hue = color.hueF(); + if (color.hue() == 360) + hue = 0.0; + else + hue *= 36000.0 / 35999.0; + + double pos = 0.0; + switch (m_component) { + case QtColorLine::Red: + pos = color.redF(); + break; + case QtColorLine::Green: + pos = color.greenF(); + break; + case QtColorLine::Blue: + pos = color.blueF(); + break; + case QtColorLine::Hue: + pos = hue; + break; + case QtColorLine::Saturation: + pos = color.saturationF(); + break; + case QtColorLine::Value: + pos = color.valueF(); + break; + case QtColorLine::Alpha: + pos = color.alphaF(); + break; + } + if (m_flipped) + pos = 1.0 - pos; + QPointF p(pos, pos); + if (m_orientation == Qt::Horizontal) + p.setY(0); + else + p.setX(0); + return p; +} + +QList QtColorLinePrivate::rects(const QPointF &point) const +{ + QRect r = q_ptr->geometry(); + r.moveTo(0, 0); + + int x1 = (int)((r.width() - m_indicatorSize - 2 * m_indicatorSpace) * point.x() + 0.5); + int x2 = x1 + m_indicatorSize + 2 * m_indicatorSpace; + int y1 = (int)((r.height() - m_indicatorSize - 2 * m_indicatorSpace) * point.y() + 0.5); + int y2 = y1 + m_indicatorSize + 2 * m_indicatorSpace; + + QList rects; + if (m_orientation == Qt::Horizontal) { + // r0 r1 r2 + QRect r0(0, 0, x1, r.height()); + QRect r1(x1 + m_indicatorSpace, 0, m_indicatorSize, r.height()); + QRect r2(x2, 0, r.width() - x2, r.height()); + + rects << r0 << r1 << r2; + } else { + // r0 + // r1 + // r2 + QRect r0(0, 0, r.width(), y1); + QRect r1(0, y1 + m_indicatorSpace, r.width(), m_indicatorSize); + QRect r2(0, y2, r.width(), r.height() - y2); + + rects << r0 << r1 << r2; + } + return rects; +} + +void QtColorLinePrivate::resizeEvent(QResizeEvent *event) +{ + m_pixmapSize = pixmapSizeFromGeometrySize(event->size()); +} + +void QtColorLinePrivate::paintEvent(QPaintEvent *) +{ + QRect rect = q_ptr->rect(); + + QList r = rects(m_point); + + QColor c = colorFromPoint(m_point); + if (!m_combiningAlpha && m_component != QtColorLine::Alpha) + c.setAlpha(0xFF); + + QPainter p(q_ptr); + if (q_ptr->isEnabled()) { + if (m_backgroundCheckered) { + int pixSize = 20; + QPixmap pm(2 * pixSize, 2 * pixSize); + QPainter pmp(&pm); + pmp.fillRect(0, 0, pixSize, pixSize, Qt::white); + pmp.fillRect(pixSize, pixSize, pixSize, pixSize, Qt::white); + pmp.fillRect(0, pixSize, pixSize, pixSize, Qt::black); + pmp.fillRect(pixSize, 0, pixSize, pixSize, Qt::black); + pmp.end(); + + p.setBrushOrigin((rect.width() % pixSize + pixSize) / 2, (rect.height() % pixSize + pixSize) / 2); + + QRegion region(r[1].adjusted(4, 4, -4, -4)); + region += QRect(rect.topLeft(), QPoint(r[1].left() + 0, rect.bottom())); + region += QRect(QPoint(r[1].right() - 0, rect.top()), rect.bottomRight()); + region += QRect(rect.topLeft(), QPoint(rect.right(), r[1].top() + 0)); + region += QRect(QPoint(rect.left(), r[1].bottom() - 0), rect.bottomRight()); + p.setClipRegion(region); + p.fillRect(rect, pm); + p.setBrushOrigin(0, 0); + p.setClipping(false); + } + + validate(); + + QSize fieldSize = pixmapSizeFromGeometrySize(q_ptr->geometry().size()); + + QPoint posOnField = r[1].topLeft() - QPoint(m_indicatorSpace, m_indicatorSpace); + int x = posOnField.x(); + int y = posOnField.y(); + int w = fieldSize.width(); + int h = fieldSize.height(); + + QRect r0, r2; + if (m_orientation == Qt::Horizontal) { + r0 = QRect(0, 0, x, m_pixmapSize.height()); + r2 = QRect(x + 1, 0, w - x - 1, m_pixmapSize.height()); + } else { + r0 = QRect(0, 0, m_pixmapSize.width(), y); + r2 = QRect(0, y + 1, m_pixmapSize.width(), h - y - 1); + } + + p.setBrush(m_mainPixmap); + p.setPen(Qt::NoPen); + if (r[0].isValid()) { + p.drawRect(r[0]); + } + if (r[2].isValid()) { + p.setBrushOrigin(r[2].topLeft() - r2.topLeft()); + p.drawRect(r[2]); + } + if (m_indicatorSpace) { + p.setBrush(c); + if (m_orientation == Qt::Horizontal) { + p.drawRect(r[1].adjusted(-m_indicatorSpace, 0, -r[1].width(), 0)); + p.drawRect(r[1].adjusted(r[1].width(), 0, m_indicatorSpace, 0)); + } else { + p.drawRect(r[1].adjusted(0, -m_indicatorSpace, 0, -r[1].height())); + p.drawRect(r[1].adjusted(0, r[1].height(), 0, m_indicatorSpace)); + } + } + + QPen pen(c); + p.setPen(pen); + p.setBrush(Qt::NoBrush); + if (r[1].isValid()) { + p.drawRect(r[1].adjusted(0, 0, -1, -1)); + // p.drawRect(r[1].adjusted(1, 1, -2, -2)); + } + double coef = 9.0 / 10; + p.setPen(Qt::NoPen); + if (m_component != QtColorLine::Alpha && m_combiningAlpha) { + p.setBrush(m_alphalessPixmap); + if (r[0].isValid()) { + p.setBrushOrigin(QPoint(0, 0)); + QRect thinRect1 = r[0]; + QRect thinRect2 = r[0]; + QRect thinRect = r[0]; + if (m_orientation == Qt::Horizontal) { + thinRect1.adjust(0, qRound(thinRect1.height() * coef), 0, 0); + thinRect2.adjust(0, 0, 0, -qRound(thinRect2.height() * coef)); + thinRect.adjust(0, qRound(thinRect.height() * coef), 0, -qRound(thinRect.height() * coef)); + } else { + thinRect1.adjust(qRound(thinRect1.width() * coef), 0, 0, 0); + thinRect2.adjust(0, 0, -qRound(thinRect2.width() * coef), 0); + thinRect.adjust(qRound(thinRect.width() * coef), 0, -qRound(thinRect.width() * coef), 0); + } + p.drawRect(thinRect1); + p.drawRect(thinRect2); + //p.drawRect(thinRect); + } + if (r[2].isValid()) { + p.setBrushOrigin(r[2].topLeft() - r2.topLeft()); + QRect thinRect1 = r[2]; + QRect thinRect2 = r[2]; + QRect thinRect = r[2]; + if (m_orientation == Qt::Horizontal) { + thinRect1.adjust(0, qRound(thinRect1.height() * coef), 0, 0); + thinRect2.adjust(0, 0, 0, -qRound(thinRect2.height() * coef)); + thinRect.adjust(0, qRound(thinRect.height() * coef), 0, -qRound(thinRect.height() * coef)); + } else { + thinRect1.adjust(qRound(thinRect1.width() * coef), 0, 0, 0); + thinRect2.adjust(0, 0, -qRound(thinRect2.width() * coef), 0); + thinRect.adjust(qRound(thinRect.width() * coef), 0, -qRound(thinRect.width() * coef), 0); + } + p.drawRect(thinRect1); + p.drawRect(thinRect2); + //p.drawRect(thinRect); + } + /* + +*/ + + + + + + p.setPen(Qt::NoPen); + + p.setBrush(m_semiAlphaPixmap); + if (r[0].isValid()) { + p.setBrushOrigin(QPoint(0, 0)); + QRect thinRect1 = r[0]; + QRect thinRect2 = r[0]; + QRect thinRect = r[0]; + if (m_orientation == Qt::Horizontal) { + thinRect1.adjust(0, qRound(thinRect1.height() * coef) - 1, 0, 0); + thinRect1.setBottom(thinRect1.top()); + thinRect2.adjust(0, 0, 0, -qRound(thinRect2.height() * coef) + 1); + thinRect2.setTop(thinRect2.bottom()); + thinRect.adjust(0, qRound(thinRect.height() * coef), 0, -qRound(thinRect.height() * coef)); + } else { + thinRect1.adjust(qRound(thinRect1.width() * coef) - 1, 0, 0, 0); + thinRect1.setRight(thinRect1.left()); + thinRect2.adjust(0, 0, -qRound(thinRect2.width() * coef) + 1, 0); + thinRect2.setLeft(thinRect2.right()); + thinRect.adjust(qRound(thinRect.width() * coef), 0, -qRound(thinRect.width() * coef), 0); + } + p.drawRect(thinRect1); + p.drawRect(thinRect2); + //p.drawRect(thinRect); + } + if (r[2].isValid()) { + p.setBrushOrigin(r[2].topLeft() - r2.topLeft()); + QRect thinRect1 = r[2]; + QRect thinRect2 = r[2]; + QRect thinRect = r[2]; + if (m_orientation == Qt::Horizontal) { + thinRect1.adjust(0, qRound(thinRect1.height() * coef) - 1, 0, 0); + thinRect1.setBottom(thinRect1.top()); + thinRect2.adjust(0, 0, 0, -qRound(thinRect2.height() * coef) + 1); + thinRect2.setTop(thinRect2.bottom()); + thinRect.adjust(0, qRound(thinRect.height() * coef), 0, -qRound(thinRect.height() * coef)); + } else { + thinRect1.adjust(qRound(thinRect1.width() * coef) - 1, 0, 0, 0); + thinRect1.setRight(thinRect1.left()); + thinRect2.adjust(0, 0, -qRound(thinRect2.width() * coef) + 1, 0); + thinRect2.setLeft(thinRect2.right()); + thinRect.adjust(qRound(thinRect.width() * coef), 0, -qRound(thinRect.width() * coef), 0); + } + p.drawRect(thinRect1); + p.drawRect(thinRect2); + //p.drawRect(thinRect); + } + p.setBrush(m_alphalessPixmap); + QRegion region; + if (m_orientation == Qt::Horizontal) { + region += r[1].adjusted(0, qRound(r[1].height() * coef), 0, 0); + region += r[1].adjusted(0, 0, 0, -qRound(r[1].height() * coef)); + p.setClipRegion(region); + } else { + region += r[1].adjusted(qRound(r[1].width() * coef), 0, 0, 0); + region += r[1].adjusted(0, 0, -qRound(r[1].width() * coef), 0); + p.setClipRegion(region); + } + p.setClipRegion(region); + p.setBrush(Qt::NoBrush); + p.setPen(QPen(QColor(c.rgb()))); + + p.drawRect(r[1].adjusted(0, 0, -1, -1)); + // p.drawRect(r[1].adjusted(1, 1, -2, -2)); +/* + p.setBrush(m_semiAlphaPixmap); + if (m_orientation == Qt::Horizontal) { + QRect top = r[1].adjusted(0, 0, 0, -qRound(r[1].height() * coef) + 1); + top.setTop(top.bottom()); + QRect bottom = r[1].adjusted(0, qRound(r[1].height() * coef) - 1, 0, 0); + top.setBottom(bottom.top()); + p.setClipRect(top); + p.setClipRect(bottom, Qt::UniteClip); + } else { + + } + QColor semiColor(c.rgb()); + semiColor.setAlpha((c.alpha() + 0xFF) / 2); + p.setPen(QPen(semiColor)); + p.drawRect(r[1].adjusted(0, 0, -1, -1)); + // p.drawRect(r[1].adjusted(1, 1, -2, -2)); +*/ + p.setClipping(false); + } + } + + p.setBrush(Qt::NoBrush); + int lw = 4; + //int br = 1; + int br = 0; + r[1].adjust(br, br, -br, -br); + if (r[1].adjusted(lw, lw, -lw, -lw).isValid()) { + QStyleOptionFrame opt; + opt.initFrom(q_ptr); + opt.rect = r[1]; + opt.lineWidth = 2; + opt.midLineWidth = 1; + if (m_dragging) + opt.state |= QStyle::State_Sunken; + else + opt.state |= QStyle::State_Raised; + q_ptr->style()->drawPrimitive(QStyle::PE_Frame, &opt, &p, q_ptr); + QRect colorRect = r[1].adjusted(lw, lw, -lw, -lw); + if (q_ptr->isEnabled()) { + p.fillRect(colorRect, c); + const QColor frameColor(0, 0, 0, 38); + p.setPen(frameColor); + p.drawRect(colorRect.adjusted(0, 0, -1, -1)); + /* + p.fillRect(colorRect.width() / 4 + colorRect.left(), + colorRect.height() / 4 + colorRect.top(), + colorRect.width() / 2, + colorRect.height() / 2, + QColor(c.rgb())); + */ + /* + if (m_component != QtColorLine::Alpha) { + p.fillRect(colorRect.adjusted(0, colorRect.height() * 4 / 5, 0, 0), QColor(c.rgb())); + p.fillRect(colorRect.adjusted(0, 0, 0, -colorRect.height() * 4 / 5), QColor(c.rgb())); + } + */ + } + } +} + +void QtColorLinePrivate::mousePressEvent(QMouseEvent *event) +{ + if (event->button() != Qt::LeftButton) + return; + + QList r = rects(m_point); + QPoint clickPos = event->position().toPoint(); + + QPoint posOnField = r[1].topLeft() - QPoint(m_indicatorSpace, m_indicatorSpace); + m_clickOffset = posOnField - clickPos; + + if (!r[1].contains(clickPos)) + return; + m_dragging = true; + q_ptr->update(); +} + +void QtColorLinePrivate::mouseMoveEvent(QMouseEvent *event) +{ + if (!m_dragging) + return; + QPoint newPos = event->position().toPoint(); + + QSize fieldSize = q_ptr->geometry().size() - + QSize(m_indicatorSize + 2 * m_indicatorSpace - 1, m_indicatorSize + 2 * m_indicatorSpace - 1); + QPoint newPosOnField = newPos + m_clickOffset; + if (newPosOnField.x() < 0) + newPosOnField.setX(0); + else if (newPosOnField.x() > fieldSize.width()) + newPosOnField.setX(fieldSize.width()); + if (newPosOnField.y() < 0) + newPosOnField.setY(0); + else if (newPosOnField.y() > fieldSize.height()) + newPosOnField.setY(fieldSize.height()); + + const double x = double(newPosOnField.x()) / fieldSize.width(); + const double y = double(newPosOnField.y()) / fieldSize.height(); + m_point = QPointF(x, y); + QColor color = colorFromPoint(m_point); + if (m_color == color) + return; + m_color = color; + emit q_ptr->colorChanged(color); // maybe before internal set, 1 line above + q_ptr->update(); +} + +void QtColorLinePrivate::mouseReleaseEvent(QMouseEvent *event) +{ + if (event->button() != Qt::LeftButton) + return; + m_dragging = false; + q_ptr->update(); +} + +void QtColorLinePrivate::mouseDoubleClickEvent(QMouseEvent *event) +{ + if (event->button() != Qt::LeftButton) + return; + + QList r = rects(m_point); + QPoint clickPos = event->position().toPoint(); + if (!r[0].contains(clickPos) && !r[2].contains(clickPos)) + return; + QPoint newPosOnField = clickPos; + if (r[2].contains(clickPos)) + newPosOnField -= QPoint(m_indicatorSize + 2 * m_indicatorSpace - 2, m_indicatorSize + 2 * m_indicatorSpace - 2); + QSize fieldSize = q_ptr->geometry().size() - + QSize(m_indicatorSize + 2 * m_indicatorSpace - 1, m_indicatorSize + 2 * m_indicatorSpace - 1); + + const double x = double(newPosOnField.x()) / fieldSize.width(); + const double y = double(newPosOnField.y()) / fieldSize.height(); + m_point = QPointF(x, y); + QColor color = colorFromPoint(m_point); + if (m_color == color) + return; + m_color = color; + emit q_ptr->colorChanged(color); // maybe before internal set, 1 line above + q_ptr->update(); +} + +//////////////////////////////////////////////////// + +QtColorLine::QtColorLine(QWidget *parent) + : QWidget(parent), d_ptr(new QtColorLinePrivate) +{ + d_ptr->q_ptr = this; + + setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)); +} + +QtColorLine::~QtColorLine() +{ +} + +QSize QtColorLine::minimumSizeHint() const +{ + return QSize(d_ptr->m_indicatorSize, d_ptr->m_indicatorSize); +} + +QSize QtColorLine::sizeHint() const +{ + return QSize(d_ptr->m_indicatorSize, d_ptr->m_indicatorSize); +} + +void QtColorLine::setColor(const QColor &color) +{ + d_ptr->setColor(color); +} + +QColor QtColorLine::color() const +{ + return d_ptr->color(); +} + +void QtColorLine::setColorComponent(QtColorLine::ColorComponent component) +{ + d_ptr->setColorComponent(component); +} + +QtColorLine::ColorComponent QtColorLine::colorComponent() const +{ + return d_ptr->colorComponent(); +} + +void QtColorLine::setIndicatorSize(int size) +{ + d_ptr->setIndicatorSize(size); +} + +int QtColorLine::indicatorSize() const +{ + return d_ptr->indicatorSize(); +} + +void QtColorLine::setIndicatorSpace(int space) +{ + d_ptr->setIndicatorSpace(space); +} + +int QtColorLine::indicatorSpace() const +{ + return d_ptr->indicatorSpace(); +} + +void QtColorLine::setFlip(bool flip) +{ + d_ptr->setFlip(flip); +} + +bool QtColorLine::flip() const +{ + return d_ptr->flip(); +} + +void QtColorLine::setBackgroundCheckered(bool checkered) +{ + d_ptr->setBackgroundCheckered(checkered); +} + +bool QtColorLine::isBackgroundCheckered() const +{ + return d_ptr->isBackgroundCheckered(); +} + +void QtColorLine::setOrientation(Qt::Orientation orientation) +{ + d_ptr->setOrientation(orientation); +} + +Qt::Orientation QtColorLine::orientation() const +{ + return d_ptr->orientation(); +} +void QtColorLine::resizeEvent(QResizeEvent *event) +{ + d_ptr->resizeEvent(event); +} + +void QtColorLine::paintEvent(QPaintEvent *event) +{ + d_ptr->paintEvent(event); +} + +void QtColorLine::mousePressEvent(QMouseEvent *event) +{ + d_ptr->mousePressEvent(event); +} + +void QtColorLine::mouseMoveEvent(QMouseEvent *event) +{ + d_ptr->mouseMoveEvent(event); +} + +void QtColorLine::mouseReleaseEvent(QMouseEvent *event) +{ + d_ptr->mouseReleaseEvent(event); +} + +void QtColorLine::mouseDoubleClickEvent(QMouseEvent *event) +{ + d_ptr->mouseDoubleClickEvent(event); +} + +QT_END_NAMESPACE diff --git a/src/shared/qtgradienteditor/qtcolorline.h b/src/shared/qtgradienteditor/qtcolorline.h new file mode 100644 index 0000000..24d549a --- /dev/null +++ b/src/shared/qtgradienteditor/qtcolorline.h @@ -0,0 +1,82 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTCOLORLINE_H +#define QTCOLORLINE_H + +#include + +QT_BEGIN_NAMESPACE + +class QtColorLine : public QWidget +{ + Q_OBJECT + Q_PROPERTY(QColor color READ color WRITE setColor) + Q_PROPERTY(int indicatorSpace READ indicatorSpace WRITE setIndicatorSpace) + Q_PROPERTY(int indicatorSize READ indicatorSize WRITE setIndicatorSize) + Q_PROPERTY(bool flip READ flip WRITE setFlip) + Q_PROPERTY(bool backgroundCheckered READ isBackgroundCheckered WRITE setBackgroundCheckered) + Q_PROPERTY(ColorComponent colorComponent READ colorComponent WRITE setColorComponent) + Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation) +public: + + enum ColorComponent { + Red, + Green, + Blue, + Hue, + Saturation, + Value, + Alpha + }; + Q_ENUM(ColorComponent) + + QSize minimumSizeHint() const override; + QSize sizeHint() const override; + + QtColorLine(QWidget *parent = 0); + ~QtColorLine(); + + QColor color() const; + + void setIndicatorSize(int size); + int indicatorSize() const; + + void setIndicatorSpace(int space); + int indicatorSpace() const; + + void setFlip(bool flip); + bool flip() const; + + bool isBackgroundCheckered() const; + void setBackgroundCheckered(bool checkered); + + void setOrientation(Qt::Orientation orientation); + Qt::Orientation orientation() const; + + void setColorComponent(ColorComponent component); + ColorComponent colorComponent() const; + +public slots: + void setColor(const QColor &color); + +signals: + void colorChanged(const QColor &color); + +protected: + void resizeEvent(QResizeEvent *event) override; + void paintEvent(QPaintEvent *event) override; + void mousePressEvent(QMouseEvent *event) override; + void mouseMoveEvent(QMouseEvent *event) override; + void mouseReleaseEvent(QMouseEvent *event) override; + void mouseDoubleClickEvent(QMouseEvent *event) override; + +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtColorLine) + Q_DISABLE_COPY_MOVE(QtColorLine) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtgradienteditor/qtgradientdialog.cpp b/src/shared/qtgradienteditor/qtgradientdialog.cpp new file mode 100644 index 0000000..40f3b68 --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientdialog.cpp @@ -0,0 +1,315 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtgradientdialog.h" +#include "ui_qtgradientdialog.h" +#include + +QT_BEGIN_NAMESPACE + +class QtGradientDialogPrivate : public QObject +{ + Q_OBJECT + QtGradientDialog *q_ptr; + Q_DECLARE_PUBLIC(QtGradientDialog) +public: + void slotAboutToShowDetails(bool details, int extensionWidthHint); + + Ui::QtGradientDialog m_ui; +}; + +void QtGradientDialogPrivate::slotAboutToShowDetails(bool details, int extensionWidthHint) +{ + if (details) { + q_ptr->resize(q_ptr->size() + QSize(extensionWidthHint, 0)); + } else { + q_ptr->setMinimumSize(1, 1); + q_ptr->resize(q_ptr->size() - QSize(extensionWidthHint, 0)); + q_ptr->setMinimumSize(0, 0); + } +} + +/*! + \class QtGradientDialog + + \brief The QtGradientDialog class provides a dialog for specifying gradients. + + The gradient dialog's function is to allow users to edit gradients. + For example, you might use this in a drawing program to allow the user to set the brush gradient. + + \table + \row + \li \inlineimage qtgradientdialog.png + \li \inlineimage qtgradientdialogextension.png + \header + \li Details extension hidden + \li Details extension visible + \endtable + + Starting from the top of the dialog there are several buttons: + + \image qtgradientdialogtopbuttons.png + + The first three buttons allow for changing a type of the gradient (QGradient::Type), while the second three allow for + changing spread of the gradient (QGradient::Spread). The last button shows or hides the details extension of the dialog. + Conceptually the default view with hidden details provides the full functional control over gradient editing. + The additional extension with details allows to set gradient's parameters more precisely. The visibility + of extension can be controlled by detailsVisible property. Moreover, if you don't want the user to + switch on or off the visibility of extension you can set the detailsButtonVisible property to false. + + Below top buttons there is an area where edited gradient is interactively previewed. + In addition the user can edit gradient type's specific parameters directly in this area by dragging + appropriate handles. + + \table + \row + \li \inlineimage qtgradientdialoglineareditor.png + \li \inlineimage qtgradientdialogradialeditor.png + \li \inlineimage qtgradientdialogconicaleditor.png + \header + \li Editing linear type + \li Editing radial type + \li Editing conical type + \row + \li The user can change the start and final point positions by dragging the circular handles. + \li The user can change the center and focal point positions by dragging the circular handles + and can change the gradient's radius by dragging horizontal or vertical line. + \li The user can change the center point by dragging the circular handle + and can change the gradient's angle by dragging the big wheel. + \endtable + + In the middle of the dialog there is an area where the user can edit gradient stops. + + \table + \row + \li \inlineimage qtgradientdialogstops.png + \li \inlineimage qtgradientdialogstopszoomed.png + \endtable + + The top part of this area contains stop handles, and bottom part shows the preview of gradient stops path. + In order to create a new gradient stop double click inside the view over the desired position. + If you double click on existing stop handle in the top part of the view, clicked handle will be duplicated + (duplicate will contain the same color). + The stop can be activated by clicking on its handle. You can activate previous or next stop by pressing + left or right key respectively. To jump to the first or last stop press home or end key respectively. + The gradient stops editor supports multiselection. + Clicking a handle holding the shift modifier key down will select a range of stops between + the active stop and clicked one. Clicking a handle holding control modifier key down will remove from or + add to selection the clicked stop depending if it was or wasn't already selected respectively. + Multiselection can also be created using rubberband (by pressing the left mouse button outside + of any handle and dragging). + Sometimes it's hard to select a stop because its handle can be partially covered by other handle. + In that case the user can zoom in the view by spinning mouse wheel. + The selected stop handles can be moved by drag & drop. In order to remove selected stops press delete key. + For convenience context menu is provided with the following actions: + + \list + \li New Stop - creates a new gradient stop + \li Delete - removes the active and all selected stops + \li Flip All - mirrors all stops + \li Select All - selects all stops + \li Zoom In - zooms in + \li Zoom Out - zooms out + \li Zoom All - goes back to original 100% zoom + \endlist + + The bottom part of the QtGradientDialog contains a set of widgets allowing to control the color of + the active and selected stops. + + \table + \row + \li \inlineimage qtgradientdialogcolorhsv.png + \li \inlineimage qtgradientdialogcolorrgb.png + \endtable + + + The color button shows the color of the active gradient stop. It also allows for choosing + a color from standard color dialog and applying it to the + active stop and all selected stops. It's also possible to drag a color directly from the color button + and to drop it in gradient stops editor at desired position (it will create new stop with dragged color) + or at desired stop handle (it will change the color of that handle). + + To the right of color button there is a set of 2 radio buttons which allows to switch between + HVS and RGB color spec. + + Finally there are 4 color sliders working either in HSVA (hue saturation value alpha) or + RGBA (red green blue alpha) mode, depending on which radio button is chosen. The radio buttons + can be controlled programatically by spec() and setSpec() methods. The sliders show the + color of the active stop. By double clicking inside color slider you can set directly the desired color. + Changes of slider's are applied to stop selection in the way that the color + component being changed is applied to stops in selection only, while other components + remain unchanged in selected stops (e.g. when the user is changing the saturation, + new saturation is applied to selected stops preventing original hue, value and alpha in multiselection). + + The convenient static functions getGradient() provide modal gradient dialogs, e.g.: + + \snippet doc/src/snippets/code/tools_shared_qtgradienteditor_qtgradientdialog.cpp 0 + + In order to have more control over the properties of QtGradientDialog use + standard QDialog::exec() method: + + \snippet doc/src/snippets/code/tools_shared_qtgradienteditor_qtgradientdialog.cpp 1 + + \sa {Gradient View Example} +*/ + +/*! + Constructs a gradient dialog with \a parent as parent widget. +*/ + +QtGradientDialog::QtGradientDialog(QWidget *parent) + : QDialog(parent), d_ptr(new QtGradientDialogPrivate()) +{ +// setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); + d_ptr->q_ptr = this; + d_ptr->m_ui.setupUi(this); + QPushButton *button = d_ptr->m_ui.buttonBox->button(QDialogButtonBox::Ok); + if (button) + button->setAutoDefault(false); + button = d_ptr->m_ui.buttonBox->button(QDialogButtonBox::Cancel); + if (button) + button->setAutoDefault(false); + connect(d_ptr->m_ui.gradientEditor, &QtGradientEditor::aboutToShowDetails, + d_ptr.data(), &QtGradientDialogPrivate::slotAboutToShowDetails); +} + +/*! + Destroys the gradient dialog +*/ + +QtGradientDialog::~QtGradientDialog() +{ +} + +/*! + \property QtGradientDialog::gradient + \brief the gradient of the dialog +*/ +void QtGradientDialog::setGradient(const QGradient &gradient) +{ + d_ptr->m_ui.gradientEditor->setGradient(gradient); +} + +QGradient QtGradientDialog::gradient() const +{ + return d_ptr->m_ui.gradientEditor->gradient(); +} + +/*! + \property QtGradientDialog::backgroundCheckered + \brief whether the background of widgets able to show the colors with alpha channel is checkered. + + \table + \row + \li \inlineimage qtgradientdialogbackgroundcheckered.png + \li \inlineimage qtgradientdialogbackgroundtransparent.png + \row + \li \snippet doc/src/snippets/code/tools_shared_qtgradienteditor_qtgradientdialog.cpp 2 + \li \snippet doc/src/snippets/code/tools_shared_qtgradienteditor_qtgradientdialog.cpp 3 + \endtable + + When this property is set to true (the default) widgets inside gradient dialog like color button, + color sliders, gradient stops editor and gradient editor will show checkered background + in case of transparent colors. Otherwise the background of these widgets is transparent. +*/ + +bool QtGradientDialog::isBackgroundCheckered() const +{ + return d_ptr->m_ui.gradientEditor->isBackgroundCheckered(); +} + +void QtGradientDialog::setBackgroundCheckered(bool checkered) +{ + d_ptr->m_ui.gradientEditor->setBackgroundCheckered(checkered); +} + +/*! + \property QtGradientDialog::detailsVisible + \brief whether details extension is visible. + + When this property is set to true the details extension is visible. By default + this property is set to false and the details extension is hidden. + + \sa detailsButtonVisible +*/ +bool QtGradientDialog::detailsVisible() const +{ + return d_ptr->m_ui.gradientEditor->detailsVisible(); +} + +void QtGradientDialog::setDetailsVisible(bool visible) +{ + d_ptr->m_ui.gradientEditor->setDetailsVisible(visible); +} + +/*! + \property QtGradientDialog::detailsButtonVisible + \brief whether the details button allowing for showing and hiding details extension is visible. + + When this property is set to true (the default) the details button is visible and the user + can show and hide details extension interactively. Otherwise the button is hidden and the details + extension is always visible or hidded depending on the value of detailsVisible property. + + \sa detailsVisible +*/ +bool QtGradientDialog::isDetailsButtonVisible() const +{ + return d_ptr->m_ui.gradientEditor->isDetailsButtonVisible(); +} + +void QtGradientDialog::setDetailsButtonVisible(bool visible) +{ + d_ptr->m_ui.gradientEditor->setDetailsButtonVisible(visible); +} + +/*! + Returns the current QColor::Spec used for the color sliders in the dialog. +*/ +QColor::Spec QtGradientDialog::spec() const +{ + return d_ptr->m_ui.gradientEditor->spec(); +} + +/*! + Sets the current QColor::Spec to \a spec used for the color sliders in the dialog. +*/ +void QtGradientDialog::setSpec(QColor::Spec spec) +{ + d_ptr->m_ui.gradientEditor->setSpec(spec); +} + +/*! + Executes a modal gradient dialog, lets the user to specify a gradient, and returns that gradient. + + If the user clicks \gui OK, the gradient specified by the user is returned. If the user clicks \gui Cancel, the \a initial gradient is returned. + + The dialog is constructed with the given \a parent. \a caption is shown as the window title of the dialog and + \a initial is the initial gradient shown in the dialog. If the \a ok parameter is not-null, + the value it refers to is set to true if the user clicks \gui OK, and set to false if the user clicks \gui Cancel. +*/ +QGradient QtGradientDialog::getGradient(bool *ok, const QGradient &initial, QWidget *parent, const QString &caption) +{ + QtGradientDialog dlg(parent); + if (!caption.isEmpty()) + dlg.setWindowTitle(caption); + dlg.setGradient(initial); + const int res = dlg.exec(); + if (ok) { + *ok = (res == QDialog::Accepted) ? true : false; + } + if (res == QDialog::Accepted) + return dlg.gradient(); + return initial; +} + +/*! + This method calls getGradient(ok, QLinearGradient(), parent, caption). +*/ +QGradient QtGradientDialog::getGradient(bool *ok, QWidget *parent, const QString &caption) +{ + return getGradient(ok, QLinearGradient(), parent, caption); +} + +QT_END_NAMESPACE + +#include "qtgradientdialog.moc" diff --git a/src/shared/qtgradienteditor/qtgradientdialog.h b/src/shared/qtgradienteditor/qtgradientdialog.h new file mode 100644 index 0000000..c2d3903 --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientdialog.h @@ -0,0 +1,48 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTGRADIENTDIALOG_H +#define QTGRADIENTDIALOG_H + +#include + +QT_BEGIN_NAMESPACE + +class QtGradientDialog : public QDialog +{ + Q_OBJECT + Q_PROPERTY(QGradient gradient READ gradient WRITE setGradient) + Q_PROPERTY(bool backgroundCheckered READ isBackgroundCheckered WRITE setBackgroundCheckered) + Q_PROPERTY(bool detailsVisible READ detailsVisible WRITE setDetailsVisible) + Q_PROPERTY(bool detailsButtonVisible READ isDetailsButtonVisible WRITE setDetailsButtonVisible) +public: + QtGradientDialog(QWidget *parent = 0); + ~QtGradientDialog(); + + void setGradient(const QGradient &gradient); + QGradient gradient() const; + + bool isBackgroundCheckered() const; + void setBackgroundCheckered(bool checkered); + + bool detailsVisible() const; + void setDetailsVisible(bool visible); + + bool isDetailsButtonVisible() const; + void setDetailsButtonVisible(bool visible); + + QColor::Spec spec() const; + void setSpec(QColor::Spec spec); + + static QGradient getGradient(bool *ok, const QGradient &initial, QWidget *parent = 0, const QString &caption = QString()); + static QGradient getGradient(bool *ok, QWidget *parent = 0, const QString &caption = QString()); + +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtGradientDialog) + Q_DISABLE_COPY_MOVE(QtGradientDialog) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtgradienteditor/qtgradientdialog.ui b/src/shared/qtgradienteditor/qtgradientdialog.ui new file mode 100644 index 0000000..398754a --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientdialog.ui @@ -0,0 +1,85 @@ + + +* Copyright (C) 2016 The Qt Company Ltd. +* SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + + QtGradientDialog + + + + 0 + 0 + 178 + 81 + + + + Edit Gradient + + + + + + + 0 + 0 + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok + + + + + + + + QtGradientEditor + QFrame +
      qtgradienteditor.h
      + 1 +
      +
      + + + + buttonBox + accepted() + QtGradientDialog + accept() + + + 72 + 224 + + + 21 + 243 + + + + + buttonBox + rejected() + QtGradientDialog + reject() + + + 168 + 233 + + + 152 + 251 + + + + +
      diff --git a/src/shared/qtgradienteditor/qtgradienteditor.cpp b/src/shared/qtgradienteditor/qtgradienteditor.cpp new file mode 100644 index 0000000..6f83aaf --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradienteditor.cpp @@ -0,0 +1,924 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtgradienteditor.h" +#include "qtgradientstopscontroller.h" +#include "ui_qtgradienteditor.h" + +#include + +QT_BEGIN_NAMESPACE + +class QtGradientEditorPrivate : public QObject +{ + Q_OBJECT + QtGradientEditor *q_ptr; + Q_DECLARE_PUBLIC(QtGradientEditor) +public: + QtGradientEditorPrivate(QtGradientEditor *q); + + void setBackgroundCheckered(bool checkered); + + void slotGradientStopsChanged(const QGradientStops &stops); + void slotTypeChanged(int type); + void slotSpreadChanged(int spread); + void slotStartLinearXChanged(double value); + void slotStartLinearYChanged(double value); + void slotEndLinearXChanged(double value); + void slotEndLinearYChanged(double value); + void slotCentralRadialXChanged(double value); + void slotCentralRadialYChanged(double value); + void slotFocalRadialXChanged(double value); + void slotFocalRadialYChanged(double value); + void slotRadiusRadialChanged(double value); + void slotCentralConicalXChanged(double value); + void slotCentralConicalYChanged(double value); + void slotAngleConicalChanged(double value); + + void slotDetailsChanged(bool details); + + void startLinearChanged(const QPointF &point); + void endLinearChanged(const QPointF &point); + void centralRadialChanged(const QPointF &point); + void focalRadialChanged(const QPointF &point); + void radiusRadialChanged(qreal radius); + void centralConicalChanged(const QPointF &point); + void angleConicalChanged(qreal angle); + + void setStartLinear(const QPointF &point); + void setEndLinear(const QPointF &point); + void setCentralRadial(const QPointF &point); + void setFocalRadial(const QPointF &point); + void setRadiusRadial(qreal radius); + void setCentralConical(const QPointF &point); + void setAngleConical(qreal angle); + + void setType(QGradient::Type type); + void showDetails(bool details); + + using DoubleSlotPtr = void (QtGradientEditorPrivate::*)(double); + void setupSpinBox(QDoubleSpinBox *spinBox, DoubleSlotPtr slot, double max = 1.0, double step = 0.01, int decimals = 3); + void reset(); + void setLayout(bool details); + void layoutDetails(bool details); + bool row4Visible() const; + bool row5Visible() const; + int extensionWidthHint() const; + + void setCombos(bool combos); + + QGradient gradient() const; + void updateGradient(bool emitSignal); + + Ui::QtGradientEditor m_ui; + QtGradientStopsController *m_gradientStopsController; + + QDoubleSpinBox *startLinearXSpinBox = nullptr; + QDoubleSpinBox *startLinearYSpinBox = nullptr; + QDoubleSpinBox *endLinearXSpinBox = nullptr; + QDoubleSpinBox *endLinearYSpinBox = nullptr; + QDoubleSpinBox *centralRadialXSpinBox = nullptr; + QDoubleSpinBox *centralRadialYSpinBox = nullptr; + QDoubleSpinBox *focalRadialXSpinBox = nullptr; + QDoubleSpinBox *focalRadialYSpinBox = nullptr; + QDoubleSpinBox *radiusRadialSpinBox = nullptr; + QDoubleSpinBox *centralConicalXSpinBox = nullptr; + QDoubleSpinBox *centralConicalYSpinBox = nullptr; + QDoubleSpinBox *angleConicalSpinBox = nullptr; + + QButtonGroup *m_typeGroup = nullptr; + QButtonGroup *m_spreadGroup = nullptr; + + QGradient::Type m_type = QGradient::RadialGradient; + + QGridLayout *m_gridLayout = nullptr; + QWidget *m_hiddenWidget = nullptr; + QGridLayout *m_hiddenLayout = nullptr; + bool m_details = false; + bool m_detailsButtonVisible = true; + bool m_backgroundCheckered = true; + + QGradient m_gradient; + + bool m_combos = true; +}; + +QtGradientEditorPrivate::QtGradientEditorPrivate(QtGradientEditor *q) + : q_ptr(q) + , m_gradientStopsController(new QtGradientStopsController(this)) + , m_gradient(QLinearGradient()) +{ + m_ui.setupUi(q_ptr); + m_gradientStopsController->setUi(&m_ui); + reset(); + setType(QGradient::LinearGradient); + setCombos(!m_combos); + + showDetails(m_details); + setBackgroundCheckered(m_backgroundCheckered); + + setStartLinear(QPointF(0, 0)); + setEndLinear(QPointF(1, 1)); + setCentralRadial(QPointF(0.5, 0.5)); + setFocalRadial(QPointF(0.5, 0.5)); + setRadiusRadial(0.5); + setCentralConical(QPointF(0.5, 0.5)); + setAngleConical(0); + + QIcon icon; + icon.addPixmap(q_ptr->style()->standardPixmap(QStyle::SP_ArrowRight), QIcon::Normal, QIcon::Off); + icon.addPixmap(q_ptr->style()->standardPixmap(QStyle::SP_ArrowLeft), QIcon::Normal, QIcon::On); + m_ui.detailsButton->setIcon(icon); + + connect(m_ui.detailsButton, &QAbstractButton::clicked, + this, &QtGradientEditorPrivate::slotDetailsChanged); + connect(m_gradientStopsController, &QtGradientStopsController::gradientStopsChanged, + this, &QtGradientEditorPrivate::slotGradientStopsChanged); + + QIcon iconLinear(QLatin1String(":/qt-project.org/qtgradienteditor/images/typelinear.png")); + QIcon iconRadial(QLatin1String(":/qt-project.org/qtgradienteditor/images/typeradial.png")); + QIcon iconConical(QLatin1String(":/qt-project.org/qtgradienteditor/images/typeconical.png")); + + m_ui.typeComboBox->addItem(iconLinear, QtGradientEditor::tr("Linear")); + m_ui.typeComboBox->addItem(iconRadial, QtGradientEditor::tr("Radial")); + m_ui.typeComboBox->addItem(iconConical, QtGradientEditor::tr("Conical")); + + m_ui.linearButton->setIcon(iconLinear); + m_ui.radialButton->setIcon(iconRadial); + m_ui.conicalButton->setIcon(iconConical); + + m_typeGroup = new QButtonGroup(this); + m_typeGroup->addButton(m_ui.linearButton, 0); + m_typeGroup->addButton(m_ui.radialButton, 1); + m_typeGroup->addButton(m_ui.conicalButton, 2); + + connect(m_typeGroup, &QButtonGroup::idClicked, + this, &QtGradientEditorPrivate::slotTypeChanged); + connect(m_ui.typeComboBox, &QComboBox::activated, + this, &QtGradientEditorPrivate::slotTypeChanged); + + QIcon iconPad(QLatin1String(":/qt-project.org/qtgradienteditor/images/spreadpad.png")); + QIcon iconRepeat(QLatin1String(":/qt-project.org/qtgradienteditor/images/spreadrepeat.png")); + QIcon iconReflect(QLatin1String(":/qt-project.org/qtgradienteditor/images/spreadreflect.png")); + + m_ui.spreadComboBox->addItem(iconPad, QtGradientEditor::tr("Pad")); + m_ui.spreadComboBox->addItem(iconRepeat, QtGradientEditor::tr("Repeat")); + m_ui.spreadComboBox->addItem(iconReflect, QtGradientEditor::tr("Reflect")); + + m_ui.padButton->setIcon(iconPad); + m_ui.repeatButton->setIcon(iconRepeat); + m_ui.reflectButton->setIcon(iconReflect); + + m_spreadGroup = new QButtonGroup(this); + m_spreadGroup->addButton(m_ui.padButton, 0); + m_spreadGroup->addButton(m_ui.repeatButton, 1); + m_spreadGroup->addButton(m_ui.reflectButton, 2); + connect(m_spreadGroup, &QButtonGroup::idClicked, + this, &QtGradientEditorPrivate::slotSpreadChanged); + connect(m_ui.spreadComboBox, &QComboBox::activated, + this, &QtGradientEditorPrivate::slotSpreadChanged); + + connect(m_ui.gradientWidget, &QtGradientWidget::startLinearChanged, + this, &QtGradientEditorPrivate::startLinearChanged); + connect(m_ui.gradientWidget, &QtGradientWidget::endLinearChanged, + this, &QtGradientEditorPrivate::endLinearChanged); + connect(m_ui.gradientWidget, &QtGradientWidget::centralRadialChanged, + this, &QtGradientEditorPrivate::centralRadialChanged); + connect(m_ui.gradientWidget, &QtGradientWidget::focalRadialChanged, + this, &QtGradientEditorPrivate::focalRadialChanged); + connect(m_ui.gradientWidget, &QtGradientWidget::radiusRadialChanged, + this, &QtGradientEditorPrivate::radiusRadialChanged); + connect(m_ui.gradientWidget, &QtGradientWidget::centralConicalChanged, + this, &QtGradientEditorPrivate::centralConicalChanged); + connect(m_ui.gradientWidget, &QtGradientWidget::angleConicalChanged, + this, &QtGradientEditorPrivate::angleConicalChanged); + + QGradientStops stops = gradient().stops(); + m_gradientStopsController->setGradientStops(stops); + m_ui.gradientWidget->setGradientStops(stops); +} + +QGradient QtGradientEditorPrivate::gradient() const +{ + QGradient *gradient = nullptr; + switch (m_ui.gradientWidget->gradientType()) { + case QGradient::LinearGradient: + gradient = new QLinearGradient(m_ui.gradientWidget->startLinear(), + m_ui.gradientWidget->endLinear()); + break; + case QGradient::RadialGradient: + gradient = new QRadialGradient(m_ui.gradientWidget->centralRadial(), + m_ui.gradientWidget->radiusRadial(), + m_ui.gradientWidget->focalRadial()); + break; + case QGradient::ConicalGradient: + gradient = new QConicalGradient(m_ui.gradientWidget->centralConical(), + m_ui.gradientWidget->angleConical()); + break; + default: + break; + } + if (!gradient) + return QGradient(); + gradient->setStops(m_ui.gradientWidget->gradientStops()); + gradient->setSpread(m_ui.gradientWidget->gradientSpread()); + gradient->setCoordinateMode(QGradient::StretchToDeviceMode); + QGradient gr = *gradient; + delete gradient; + return gr; +} + +void QtGradientEditorPrivate::updateGradient(bool emitSignal) +{ + QGradient grad = gradient(); + if (m_gradient == grad) + return; + + m_gradient = grad; + if (emitSignal) + emit q_ptr->gradientChanged(m_gradient); +} + +void QtGradientEditorPrivate::setCombos(bool combos) +{ + if (m_combos == combos) + return; + + m_combos = combos; + m_ui.linearButton->setVisible(!m_combos); + m_ui.radialButton->setVisible(!m_combos); + m_ui.conicalButton->setVisible(!m_combos); + m_ui.padButton->setVisible(!m_combos); + m_ui.repeatButton->setVisible(!m_combos); + m_ui.reflectButton->setVisible(!m_combos); + m_ui.typeComboBox->setVisible(m_combos); + m_ui.spreadComboBox->setVisible(m_combos); +} + +void QtGradientEditorPrivate::setLayout(bool details) +{ + QHBoxLayout *hboxLayout = new QHBoxLayout(); + hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); + hboxLayout->addWidget(m_ui.typeComboBox); + hboxLayout->addWidget(m_ui.spreadComboBox); + QHBoxLayout *typeLayout = new QHBoxLayout(); + typeLayout->setSpacing(0); + typeLayout->addWidget(m_ui.linearButton); + typeLayout->addWidget(m_ui.radialButton); + typeLayout->addWidget(m_ui.conicalButton); + hboxLayout->addLayout(typeLayout); + QHBoxLayout *spreadLayout = new QHBoxLayout(); + spreadLayout->setSpacing(0); + spreadLayout->addWidget(m_ui.padButton); + spreadLayout->addWidget(m_ui.repeatButton); + spreadLayout->addWidget(m_ui.reflectButton); + hboxLayout->addLayout(spreadLayout); + hboxLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum)); + hboxLayout->addWidget(m_ui.detailsButton); + m_gridLayout->addLayout(hboxLayout, 0, 0, 1, 2); + int span = 1; + if (details) + span = 7; + m_gridLayout->addWidget(m_ui.frame, 1, 0, span, 2); + int row = 2; + if (details) { + row = 8; + span = 4; + } + m_gridLayout->addWidget(m_ui.gradientStopsWidget, row, 0, span, 2); + QHBoxLayout *hboxLayout1 = new QHBoxLayout(); + hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); + hboxLayout1->addWidget(m_ui.colorLabel); + hboxLayout1->addWidget(m_ui.colorButton); + hboxLayout1->addWidget(m_ui.hsvRadioButton); + hboxLayout1->addWidget(m_ui.rgbRadioButton); + hboxLayout1->addItem(new QSpacerItem(16, 23, QSizePolicy::Expanding, QSizePolicy::Minimum)); + int addRow = 0; + if (details) + addRow = 9; + m_gridLayout->addLayout(hboxLayout1, 3 + addRow, 0, 1, 2); + m_gridLayout->addWidget(m_ui.hLabel, 4 + addRow, 0, 1, 1); + m_gridLayout->addWidget(m_ui.frame_2, 4 + addRow, 1, 1, 1); + m_gridLayout->addWidget(m_ui.sLabel, 5 + addRow, 0, 1, 1); + m_gridLayout->addWidget(m_ui.frame_5, 5 + addRow, 1, 1, 1); + m_gridLayout->addWidget(m_ui.vLabel, 6 + addRow, 0, 1, 1); + m_gridLayout->addWidget(m_ui.frame_3, 6 + addRow, 1, 1, 1); + m_gridLayout->addWidget(m_ui.aLabel, 7 + addRow, 0, 1, 1); + m_gridLayout->addWidget(m_ui.frame_4, 7 + addRow, 1, 1, 1); + + if (details) { + layoutDetails(details); + } +} + +void QtGradientEditorPrivate::layoutDetails(bool details) +{ + QGridLayout *gridLayout = m_gridLayout; + int col = 2; + if (!details) { + col = 0; + if (!m_hiddenWidget) { + m_hiddenWidget = new QWidget(); + m_hiddenLayout = new QGridLayout(m_hiddenWidget); + m_hiddenLayout->setContentsMargins(0, 0, 0, 0); + m_hiddenLayout->setSizeConstraint(QLayout::SetFixedSize); + } + gridLayout = m_hiddenLayout; + } + gridLayout->addWidget(m_ui.label1, 1, col + 0, 1, 1); + gridLayout->addWidget(m_ui.spinBox1, 1, col + 1, 1, 1); + gridLayout->addWidget(m_ui.label2, 2, col + 0, 1, 1); + gridLayout->addWidget(m_ui.spinBox2, 2, col + 1, 1, 1); + gridLayout->addWidget(m_ui.label3, 3, col + 0, 1, 1); + gridLayout->addWidget(m_ui.spinBox3, 3, col + 1, 1, 1); + gridLayout->addWidget(m_ui.label4, 4, col + 0, 1, 1); + gridLayout->addWidget(m_ui.spinBox4, 4, col + 1, 1, 1); + gridLayout->addWidget(m_ui.label5, 5, col + 0, 1, 1); + gridLayout->addWidget(m_ui.spinBox5, 5, col + 1, 1, 1); + gridLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding), 6, col + 0, 1, 1); + gridLayout->addWidget(m_ui.line1Widget, 7, col + 0, 1, 2); + gridLayout->addWidget(m_ui.zoomLabel, 8, col + 0, 1, 1); + gridLayout->addWidget(m_ui.zoomWidget, 8, col + 1, 1, 1); + gridLayout->addWidget(m_ui.zoomButtonsWidget, 9, col + 0, 1, 1); + gridLayout->addWidget(m_ui.zoomAllButton, 9, col + 1, 1, 1); + gridLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Preferred), 10, col + 0, 1, 1); + gridLayout->addWidget(m_ui.line2Widget, 11, col + 0, 1, 2); + gridLayout->addWidget(m_ui.positionLabel, 12, col + 0, 1, 1); + gridLayout->addWidget(m_ui.positionWidget, 12, col + 1, 1, 1); + gridLayout->addWidget(m_ui.hueLabel, 13, col + 0, 1, 1); + gridLayout->addWidget(m_ui.hueWidget, 13, col + 1, 1, 1); + gridLayout->addWidget(m_ui.saturationLabel, 14, col + 0, 1, 1); + gridLayout->addWidget(m_ui.saturationWidget, 14, col + 1, 1, 1); + gridLayout->addWidget(m_ui.valueLabel, 15, col + 0, 1, 1); + gridLayout->addWidget(m_ui.valueWidget, 15, col + 1, 1, 1); + gridLayout->addWidget(m_ui.alphaLabel, 16, col + 0, 1, 1); + gridLayout->addWidget(m_ui.alphaWidget, 16, col + 1, 1, 1); + + if (details) { + if (m_hiddenLayout) { + delete m_hiddenLayout; + m_hiddenLayout = 0; + } + if (m_hiddenWidget) { + delete m_hiddenWidget; + m_hiddenWidget = 0; + } + } +} + +int QtGradientEditorPrivate::extensionWidthHint() const +{ + if (m_details) + return q_ptr->size().width() - m_ui.gradientStopsWidget->size().width(); + + const int space = m_ui.spinBox1->geometry().left() - m_ui.label1->geometry().right(); + + return m_hiddenLayout->minimumSize().width() + space; +} + +void QtGradientEditorPrivate::slotDetailsChanged(bool details) +{ + if (m_details == details) + return; + + showDetails(details); +} + +bool QtGradientEditorPrivate::row4Visible() const +{ + if (m_type == QGradient::ConicalGradient) + return false; + return true; +} + +bool QtGradientEditorPrivate::row5Visible() const +{ + if (m_type == QGradient::RadialGradient) + return true; + return false; +} + +void QtGradientEditorPrivate::showDetails(bool details) +{ + bool blocked = m_ui.detailsButton->signalsBlocked(); + m_ui.detailsButton->blockSignals(true); + m_ui.detailsButton->setChecked(details); + m_ui.detailsButton->blockSignals(blocked); + + bool updates = q_ptr->updatesEnabled(); + q_ptr->setUpdatesEnabled(false); + + if (m_gridLayout) { + m_gridLayout->setEnabled(false); + delete m_gridLayout; + m_gridLayout = 0; + } + + if (!details) { + layoutDetails(details); + } + + emit q_ptr->aboutToShowDetails(details, extensionWidthHint()); + m_details = details; + + m_gridLayout = new QGridLayout(q_ptr); + m_gridLayout->setEnabled(false); + m_gridLayout->setObjectName(QString::fromUtf8("gridLayout")); + m_gridLayout->setContentsMargins(0, 0, 0, 0); + + m_ui.label4->setVisible(row4Visible()); + m_ui.label5->setVisible(row5Visible()); + m_ui.spinBox4->setVisible(row4Visible()); + m_ui.spinBox5->setVisible(row5Visible()); + + setLayout(details); + m_gridLayout->setEnabled(true); + + q_ptr->setUpdatesEnabled(updates); + q_ptr->update(); +} + +void QtGradientEditorPrivate::setupSpinBox(QDoubleSpinBox *spinBox, DoubleSlotPtr slot, + double max, double step, int decimals) +{ + bool blocked = spinBox->signalsBlocked(); + spinBox->blockSignals(true); + spinBox->setDecimals(decimals); + spinBox->setMaximum(max); + spinBox->setSingleStep(step); + spinBox->blockSignals(blocked); + QObject::connect(spinBox, &QDoubleSpinBox::valueChanged, this, slot); +} + +void QtGradientEditorPrivate::reset() +{ + startLinearXSpinBox = 0; + startLinearYSpinBox = 0; + endLinearXSpinBox = 0; + endLinearYSpinBox = 0; + centralRadialXSpinBox = 0; + centralRadialYSpinBox = 0; + focalRadialXSpinBox = 0; + focalRadialYSpinBox = 0; + radiusRadialSpinBox = 0; + centralConicalXSpinBox = 0; + centralConicalYSpinBox = 0; + angleConicalSpinBox = 0; +} + +void QtGradientEditorPrivate::setType(QGradient::Type type) +{ + if (m_type == type) + return; + + m_type = type; + m_ui.spinBox1->disconnect(this); + m_ui.spinBox2->disconnect(this); + m_ui.spinBox3->disconnect(this); + m_ui.spinBox4->disconnect(this); + m_ui.spinBox5->disconnect(this); + + reset(); + + bool ena = true; + + if (m_gridLayout) { + ena = m_gridLayout->isEnabled(); + m_gridLayout->setEnabled(false); + } + + bool spreadEnabled = true; + + if (type == QGradient::LinearGradient) { + startLinearXSpinBox = m_ui.spinBox1; + setupSpinBox(startLinearXSpinBox, &QtGradientEditorPrivate::slotStartLinearXChanged); + m_ui.label1->setText(QCoreApplication::translate("QtGradientEditor", "Start X")); + + startLinearYSpinBox = m_ui.spinBox2; + setupSpinBox(startLinearYSpinBox, &QtGradientEditorPrivate::slotStartLinearYChanged); + m_ui.label2->setText(QCoreApplication::translate("QtGradientEditor", "Start Y")); + + endLinearXSpinBox = m_ui.spinBox3; + setupSpinBox(endLinearXSpinBox, &QtGradientEditorPrivate::slotEndLinearXChanged); + m_ui.label3->setText(QCoreApplication::translate("QtGradientEditor", "Final X")); + + endLinearYSpinBox = m_ui.spinBox4; + setupSpinBox(endLinearYSpinBox, &QtGradientEditorPrivate::slotEndLinearYChanged); + m_ui.label4->setText(QCoreApplication::translate("QtGradientEditor", "Final Y")); + + setStartLinear(m_ui.gradientWidget->startLinear()); + setEndLinear(m_ui.gradientWidget->endLinear()); + } else if (type == QGradient::RadialGradient) { + centralRadialXSpinBox = m_ui.spinBox1; + setupSpinBox(centralRadialXSpinBox, &QtGradientEditorPrivate::slotCentralRadialXChanged); + m_ui.label1->setText(QCoreApplication::translate("QtGradientEditor", "Central X")); + + centralRadialYSpinBox = m_ui.spinBox2; + setupSpinBox(centralRadialYSpinBox, &QtGradientEditorPrivate::slotCentralRadialYChanged); + m_ui.label2->setText(QCoreApplication::translate("QtGradientEditor", "Central Y")); + + focalRadialXSpinBox = m_ui.spinBox3; + setupSpinBox(focalRadialXSpinBox, &QtGradientEditorPrivate::slotFocalRadialXChanged); + m_ui.label3->setText(QCoreApplication::translate("QtGradientEditor", "Focal X")); + + focalRadialYSpinBox = m_ui.spinBox4; + setupSpinBox(focalRadialYSpinBox, &QtGradientEditorPrivate::slotFocalRadialYChanged); + m_ui.label4->setText(QCoreApplication::translate("QtGradientEditor", "Focal Y")); + + radiusRadialSpinBox = m_ui.spinBox5; + setupSpinBox(radiusRadialSpinBox, &QtGradientEditorPrivate::slotRadiusRadialChanged, 2.0); + m_ui.label5->setText(QCoreApplication::translate("QtGradientEditor", "Radius")); + + setCentralRadial(m_ui.gradientWidget->centralRadial()); + setFocalRadial(m_ui.gradientWidget->focalRadial()); + setRadiusRadial(m_ui.gradientWidget->radiusRadial()); + } else if (type == QGradient::ConicalGradient) { + centralConicalXSpinBox = m_ui.spinBox1; + setupSpinBox(centralConicalXSpinBox, &QtGradientEditorPrivate::slotCentralConicalXChanged); + m_ui.label1->setText(QCoreApplication::translate("QtGradientEditor", "Central X")); + + centralConicalYSpinBox = m_ui.spinBox2; + setupSpinBox(centralConicalYSpinBox, &QtGradientEditorPrivate::slotCentralConicalYChanged); + m_ui.label2->setText(QCoreApplication::translate("QtGradientEditor", "Central Y")); + + angleConicalSpinBox = m_ui.spinBox3; + setupSpinBox(angleConicalSpinBox, &QtGradientEditorPrivate::slotAngleConicalChanged, 360.0, 1.0, 1); + m_ui.label3->setText(QCoreApplication::translate("QtGradientEditor", "Angle")); + + setCentralConical(m_ui.gradientWidget->centralConical()); + setAngleConical(m_ui.gradientWidget->angleConical()); + + spreadEnabled = false; + } + m_ui.spreadComboBox->setEnabled(spreadEnabled); + m_ui.padButton->setEnabled(spreadEnabled); + m_ui.repeatButton->setEnabled(spreadEnabled); + m_ui.reflectButton->setEnabled(spreadEnabled); + + m_ui.label4->setVisible(row4Visible()); + m_ui.spinBox4->setVisible(row4Visible()); + m_ui.label5->setVisible(row5Visible()); + m_ui.spinBox5->setVisible(row5Visible()); + + if (m_gridLayout) + m_gridLayout->setEnabled(ena); +} + +void QtGradientEditorPrivate::setBackgroundCheckered(bool checkered) +{ + m_backgroundCheckered = checkered; + m_ui.hueColorLine->setBackgroundCheckered(checkered); + m_ui.saturationColorLine->setBackgroundCheckered(checkered); + m_ui.valueColorLine->setBackgroundCheckered(checkered); + m_ui.alphaColorLine->setBackgroundCheckered(checkered); + m_ui.gradientWidget->setBackgroundCheckered(checkered); + m_ui.gradientStopsWidget->setBackgroundCheckered(checkered); + m_ui.colorButton->setBackgroundCheckered(checkered); +} + +void QtGradientEditorPrivate::slotGradientStopsChanged(const QGradientStops &stops) +{ + m_ui.gradientWidget->setGradientStops(stops); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotTypeChanged(int idx) +{ + QGradient::Type type = QGradient::NoGradient; + if (idx == 0) + type = QGradient::LinearGradient; + else if (idx == 1) + type = QGradient::RadialGradient; + else if (idx == 2) + type = QGradient::ConicalGradient; + setType(type); + m_ui.typeComboBox->setCurrentIndex(idx); + m_typeGroup->button(idx)->setChecked(true); + m_ui.gradientWidget->setGradientType(type); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotSpreadChanged(int spread) +{ + if (spread == 0) { + m_ui.gradientWidget->setGradientSpread(QGradient::PadSpread); + } else if (spread == 1) { + m_ui.gradientWidget->setGradientSpread(QGradient::RepeatSpread); + } else if (spread == 2) { + m_ui.gradientWidget->setGradientSpread(QGradient::ReflectSpread); + } + m_ui.spreadComboBox->setCurrentIndex(spread); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotStartLinearXChanged(double value) +{ + QPointF point = m_ui.gradientWidget->startLinear(); + point.setX(value); + m_ui.gradientWidget->setStartLinear(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotStartLinearYChanged(double value) +{ + QPointF point = m_ui.gradientWidget->startLinear(); + point.setY(value); + m_ui.gradientWidget->setStartLinear(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotEndLinearXChanged(double value) +{ + QPointF point = m_ui.gradientWidget->endLinear(); + point.setX(value); + m_ui.gradientWidget->setEndLinear(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotEndLinearYChanged(double value) +{ + QPointF point = m_ui.gradientWidget->endLinear(); + point.setY(value); + m_ui.gradientWidget->setEndLinear(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotCentralRadialXChanged(double value) +{ + QPointF point = m_ui.gradientWidget->centralRadial(); + point.setX(value); + m_ui.gradientWidget->setCentralRadial(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotCentralRadialYChanged(double value) +{ + QPointF point = m_ui.gradientWidget->centralRadial(); + point.setY(value); + m_ui.gradientWidget->setCentralRadial(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotFocalRadialXChanged(double value) +{ + QPointF point = m_ui.gradientWidget->focalRadial(); + point.setX(value); + m_ui.gradientWidget->setFocalRadial(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotFocalRadialYChanged(double value) +{ + QPointF point = m_ui.gradientWidget->focalRadial(); + point.setY(value); + m_ui.gradientWidget->setFocalRadial(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotRadiusRadialChanged(double value) +{ + m_ui.gradientWidget->setRadiusRadial(value); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotCentralConicalXChanged(double value) +{ + QPointF point = m_ui.gradientWidget->centralConical(); + point.setX(value); + m_ui.gradientWidget->setCentralConical(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotCentralConicalYChanged(double value) +{ + QPointF point = m_ui.gradientWidget->centralConical(); + point.setY(value); + m_ui.gradientWidget->setCentralConical(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::slotAngleConicalChanged(double value) +{ + m_ui.gradientWidget->setAngleConical(value); + updateGradient(true); +} + +void QtGradientEditorPrivate::startLinearChanged(const QPointF &point) +{ + setStartLinear(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::endLinearChanged(const QPointF &point) +{ + setEndLinear(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::centralRadialChanged(const QPointF &point) +{ + setCentralRadial(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::focalRadialChanged(const QPointF &point) +{ + setFocalRadial(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::radiusRadialChanged(qreal radius) +{ + setRadiusRadial(radius); + updateGradient(true); +} + +void QtGradientEditorPrivate::centralConicalChanged(const QPointF &point) +{ + setCentralConical(point); + updateGradient(true); +} + +void QtGradientEditorPrivate::angleConicalChanged(qreal angle) +{ + setAngleConical(angle); + updateGradient(true); +} + +void QtGradientEditorPrivate::setStartLinear(const QPointF &point) +{ + if (startLinearXSpinBox) + startLinearXSpinBox->setValue(point.x()); + if (startLinearYSpinBox) + startLinearYSpinBox->setValue(point.y()); +} + +void QtGradientEditorPrivate::setEndLinear(const QPointF &point) +{ + if (endLinearXSpinBox) + endLinearXSpinBox->setValue(point.x()); + if (endLinearYSpinBox) + endLinearYSpinBox->setValue(point.y()); +} + +void QtGradientEditorPrivate::setCentralRadial(const QPointF &point) +{ + if (centralRadialXSpinBox) + centralRadialXSpinBox->setValue(point.x()); + if (centralRadialYSpinBox) + centralRadialYSpinBox->setValue(point.y()); +} + +void QtGradientEditorPrivate::setFocalRadial(const QPointF &point) +{ + if (focalRadialXSpinBox) + focalRadialXSpinBox->setValue(point.x()); + if (focalRadialYSpinBox) + focalRadialYSpinBox->setValue(point.y()); +} + +void QtGradientEditorPrivate::setRadiusRadial(qreal radius) +{ + if (radiusRadialSpinBox) + radiusRadialSpinBox->setValue(radius); +} + +void QtGradientEditorPrivate::setCentralConical(const QPointF &point) +{ + if (centralConicalXSpinBox) + centralConicalXSpinBox->setValue(point.x()); + if (centralConicalYSpinBox) + centralConicalYSpinBox->setValue(point.y()); +} + +void QtGradientEditorPrivate::setAngleConical(qreal angle) +{ + if (angleConicalSpinBox) + angleConicalSpinBox->setValue(angle); +} + +QtGradientEditor::QtGradientEditor(QWidget *parent) + : QWidget(parent), d_ptr(new QtGradientEditorPrivate(this)) +{ +} + +QtGradientEditor::~QtGradientEditor() +{ + if (d_ptr->m_hiddenWidget) + delete d_ptr->m_hiddenWidget; +} + +void QtGradientEditor::setGradient(const QGradient &grad) +{ + if (grad == gradient()) + return; + + QGradient::Type type = grad.type(); + int idx = 0; + switch (type) { + case QGradient::LinearGradient: idx = 0; break; + case QGradient::RadialGradient: idx = 1; break; + case QGradient::ConicalGradient: idx = 2; break; + default: return; + } + d_ptr->setType(type); + d_ptr->m_ui.typeComboBox->setCurrentIndex(idx); + d_ptr->m_ui.gradientWidget->setGradientType(type); + d_ptr->m_typeGroup->button(idx)->setChecked(true); + + QGradient::Spread spread = grad.spread(); + switch (spread) { + case QGradient::PadSpread: idx = 0; break; + case QGradient::RepeatSpread: idx = 1; break; + case QGradient::ReflectSpread: idx = 2; break; + default: idx = 0; break; + } + d_ptr->m_ui.spreadComboBox->setCurrentIndex(idx); + d_ptr->m_ui.gradientWidget->setGradientSpread(spread); + d_ptr->m_spreadGroup->button(idx)->setChecked(true); + + if (type == QGradient::LinearGradient) { + const QLinearGradient *gr = static_cast(&grad); + d_ptr->setStartLinear(gr->start()); + d_ptr->setEndLinear(gr->finalStop()); + d_ptr->m_ui.gradientWidget->setStartLinear(gr->start()); + d_ptr->m_ui.gradientWidget->setEndLinear(gr->finalStop()); + } else if (type == QGradient::RadialGradient) { + const QRadialGradient *gr = static_cast(&grad); + d_ptr->setCentralRadial(gr->center()); + d_ptr->setFocalRadial(gr->focalPoint()); + d_ptr->setRadiusRadial(gr->radius()); + d_ptr->m_ui.gradientWidget->setCentralRadial(gr->center()); + d_ptr->m_ui.gradientWidget->setFocalRadial(gr->focalPoint()); + d_ptr->m_ui.gradientWidget->setRadiusRadial(gr->radius()); + } else if (type == QGradient::ConicalGradient) { + const QConicalGradient *gr = static_cast(&grad); + d_ptr->setCentralConical(gr->center()); + d_ptr->setAngleConical(gr->angle()); + d_ptr->m_ui.gradientWidget->setCentralConical(gr->center()); + d_ptr->m_ui.gradientWidget->setAngleConical(gr->angle()); + } + + d_ptr->m_gradientStopsController->setGradientStops(grad.stops()); + d_ptr->m_ui.gradientWidget->setGradientStops(grad.stops()); + d_ptr->updateGradient(false); +} + +QGradient QtGradientEditor::gradient() const +{ + return d_ptr->m_gradient; +} + +bool QtGradientEditor::isBackgroundCheckered() const +{ + return d_ptr->m_backgroundCheckered; +} + +void QtGradientEditor::setBackgroundCheckered(bool checkered) +{ + if (d_ptr->m_backgroundCheckered == checkered) + return; + + d_ptr->setBackgroundCheckered(checkered); +} + +bool QtGradientEditor::detailsVisible() const +{ + return d_ptr->m_details; +} + +void QtGradientEditor::setDetailsVisible(bool visible) +{ + if (d_ptr->m_details == visible) + return; + + d_ptr->showDetails(visible); +} + +bool QtGradientEditor::isDetailsButtonVisible() const +{ + return d_ptr->m_detailsButtonVisible; +} + +void QtGradientEditor::setDetailsButtonVisible(bool visible) +{ + if (d_ptr->m_detailsButtonVisible == visible) + return; + + d_ptr->m_detailsButtonVisible = visible; + d_ptr->m_ui.detailsButton->setVisible(visible); +} + +QColor::Spec QtGradientEditor::spec() const +{ + return d_ptr->m_gradientStopsController->spec(); +} + +void QtGradientEditor::setSpec(QColor::Spec spec) +{ + d_ptr->m_gradientStopsController->setSpec(spec); +} + +QT_END_NAMESPACE + +#include "qtgradienteditor.moc" diff --git a/src/shared/qtgradienteditor/qtgradienteditor.h b/src/shared/qtgradienteditor/qtgradienteditor.h new file mode 100644 index 0000000..8e0fcad --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradienteditor.h @@ -0,0 +1,49 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTGRADIENTEDITOR_H +#define QTGRADIENTEDITOR_H + +#include + +QT_BEGIN_NAMESPACE + +class QtGradientEditor : public QWidget +{ + Q_OBJECT + Q_PROPERTY(QGradient gradient READ gradient WRITE setGradient) + Q_PROPERTY(bool backgroundCheckered READ isBackgroundCheckered WRITE setBackgroundCheckered) + Q_PROPERTY(bool detailsVisible READ detailsVisible WRITE setDetailsVisible) + Q_PROPERTY(bool detailsButtonVisible READ isDetailsButtonVisible WRITE setDetailsButtonVisible) +public: + QtGradientEditor(QWidget *parent = 0); + ~QtGradientEditor(); + + void setGradient(const QGradient &gradient); + QGradient gradient() const; + + bool isBackgroundCheckered() const; + void setBackgroundCheckered(bool checkered); + + bool detailsVisible() const; + void setDetailsVisible(bool visible); + + bool isDetailsButtonVisible() const; + void setDetailsButtonVisible(bool visible); + + QColor::Spec spec() const; + void setSpec(QColor::Spec spec); + +signals: + void gradientChanged(const QGradient &gradient); + void aboutToShowDetails(bool details, int extenstionWidthHint); + +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtGradientEditor) + Q_DISABLE_COPY_MOVE(QtGradientEditor) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtgradienteditor/qtgradienteditor.ui b/src/shared/qtgradienteditor/qtgradienteditor.ui new file mode 100644 index 0000000..c284677 --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradienteditor.ui @@ -0,0 +1,1341 @@ + + +* Copyright (C) 2016 The Qt Company Ltd. +* SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + + QtGradientEditor + + + + 0 + 0 + 364 + 518 + + + + Form + + + + + 10 + 69 + 193 + 150 + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 6 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + Gradient Editor + + + This area shows a preview of the gradient being edited. It also allows you to edit parameters specific to the gradient's type such as start and final point, radius, etc. by drag & drop. + + + + + + + + + 209 + 69 + 64 + 23 + + + + 1 + + + + + + 279 + 69 + 73 + 23 + + + + false + + + 3 + + + 1.000000000000000 + + + 0.010000000000000 + + + + + + 209 + 99 + 64 + 23 + + + + 2 + + + + + + 279 + 99 + 73 + 23 + + + + false + + + 3 + + + 1.000000000000000 + + + 0.010000000000000 + + + + + + 209 + 129 + 64 + 23 + + + + 3 + + + + + + 279 + 129 + 73 + 23 + + + + false + + + 3 + + + 1.000000000000000 + + + 0.010000000000000 + + + + + + 209 + 159 + 64 + 23 + + + + 4 + + + + + + 279 + 159 + 73 + 23 + + + + false + + + 3 + + + 1.000000000000000 + + + 0.010000000000000 + + + + + + 209 + 189 + 64 + 23 + + + + 5 + + + + + + 279 + 189 + 73 + 23 + + + + false + + + 3 + + + 1.000000000000000 + + + 0.010000000000000 + + + + + + 10 + 225 + 193 + 67 + + + + Gradient Stops Editor + + + This area allows you to edit gradient stops. Double click on the existing stop handle to duplicate it. Double click outside of the existing stop handles to create a new stop. Drag & drop the handle to reposition it. Use right mouse button to popup context menu with extra actions. + + + + + + 209 + 231 + 64 + 23 + + + + Zoom + + + + + + 279 + 260 + 72 + 26 + + + + + 0 + 0 + + + + Reset Zoom + + + Reset Zoom + + + + + + 209 + 304 + 64 + 23 + + + + Position + + + + + + 10 + 335 + 32 + 18 + + + + + 0 + 0 + + + + Hue + + + H + + + + + + 48 + 333 + 155 + 23 + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + Hue + + + + + + + + + 209 + 335 + 64 + 18 + + + + + 0 + 0 + + + + Hue + + + + + + 10 + 364 + 32 + 18 + + + + + 0 + 0 + + + + Saturation + + + S + + + + + + 48 + 362 + 155 + 23 + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + Saturation + + + + + + + + + 209 + 364 + 64 + 18 + + + + + 0 + 0 + + + + Sat + + + + + + 10 + 393 + 32 + 18 + + + + + 0 + 0 + + + + Value + + + V + + + + + + 48 + 391 + 155 + 23 + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + Value + + + + + + + + + 209 + 393 + 64 + 18 + + + + + 0 + 0 + + + + Val + + + + + + 10 + 422 + 32 + 18 + + + + + 0 + 0 + + + + Alpha + + + A + + + + + + 48 + 420 + 155 + 23 + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + Alpha + + + + + + + + + 209 + 422 + 64 + 18 + + + + + 0 + 0 + + + + Alpha + + + + + + 10 + 40 + 79 + 22 + + + + Type + + + + + + 96 + 40 + 72 + 22 + + + + Spread + + + + + + 10 + 298 + 32 + 29 + + + + + 0 + 0 + + + + Color + + + + + + 48 + 300 + 26 + 25 + + + + Current stop's color + + + + + + + + + 80 + 301 + 49 + 23 + + + + + 0 + 0 + + + + Show HSV specification + + + HSV + + + true + + + + + + 135 + 301 + 49 + 23 + + + + + 0 + 0 + + + + Show RGB specification + + + RGB + + + + + + 279 + 304 + 73 + 23 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Current stop's position + + + false + + + 3 + + + 0.000000000000000 + + + 1.000000000000000 + + + 0.010000000000000 + + + 0.000000000000000 + + + + + + + + + 279 + 333 + 73 + 23 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + false + + + 359 + + + + + + + + + 279 + 362 + 73 + 23 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + false + + + 255 + + + + + + + + + 279 + 391 + 73 + 23 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + false + + + 255 + + + + + + + + + 279 + 420 + 73 + 23 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + false + + + 255 + + + + + + + + + 279 + 231 + 73 + 23 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + false + + + % + + + 100 + + + 10000 + + + 100 + + + 100 + + + + + + + + + 209 + 219 + 143 + 16 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + + + + + + 209 + 292 + 143 + 16 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + + + + + + 209 + 260 + 64 + 26 + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Zoom In + + + + + + + Zoom Out + + + + + + + Qt::Horizontal + + + + 0 + 20 + + + + + + + + + + 176 + 40 + 25 + 22 + + + + + 0 + 0 + + + + Toggle details extension + + + > + + + true + + + true + + + + + + 10 + 10 + 30 + 26 + + + + Linear Type + + + ... + + + true + + + true + + + + + + 40 + 10 + 30 + 26 + + + + Radial Type + + + ... + + + true + + + true + + + + + + 70 + 10 + 30 + 26 + + + + Conical Type + + + ... + + + true + + + true + + + + + + 110 + 10 + 30 + 26 + + + + Pad Spread + + + ... + + + true + + + true + + + + + + 140 + 10 + 30 + 26 + + + + Repeat Spread + + + ... + + + true + + + true + + + + + + 170 + 10 + 30 + 26 + + + + Reflect Spread + + + ... + + + true + + + true + + + + + + QtColorButton + QToolButton +
      qtcolorbutton.h
      +
      + + QtColorLine + QWidget +
      qtcolorline.h
      + 1 +
      + + QtGradientStopsWidget + QWidget +
      qtgradientstopswidget.h
      + 1 +
      + + QtGradientWidget + QWidget +
      qtgradientwidget.h
      + 1 +
      +
      + + typeComboBox + spreadComboBox + detailsButton + spinBox1 + spinBox2 + spinBox3 + spinBox4 + spinBox5 + zoomSpinBox + zoomInButton + zoomOutButton + zoomAllButton + colorButton + hsvRadioButton + rgbRadioButton + positionSpinBox + hueSpinBox + saturationSpinBox + valueSpinBox + alphaSpinBox + + + +
      diff --git a/src/shared/qtgradienteditor/qtgradientmanager.cpp b/src/shared/qtgradienteditor/qtgradientmanager.cpp new file mode 100644 index 0000000..c0b165e --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientmanager.cpp @@ -0,0 +1,95 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtgradientmanager.h" +#include +#include + +QT_BEGIN_NAMESPACE + +QtGradientManager::QtGradientManager(QObject *parent) + : QObject(parent) +{ +} + +QMap QtGradientManager::gradients() const +{ + return m_idToGradient; +} + +QString QtGradientManager::uniqueId(const QString &id) const +{ + if (!m_idToGradient.contains(id)) + return id; + + QString base = id; + while (base.size() > 0 && base.at(base.size() - 1).isDigit()) + base = base.left(base.size() - 1); + QString newId = base; + int counter = 0; + while (m_idToGradient.contains(newId)) { + ++counter; + newId = base + QString::number(counter); + } + return newId; +} + +QString QtGradientManager::addGradient(const QString &id, const QGradient &gradient) +{ + QString newId = uniqueId(id); + + m_idToGradient[newId] = gradient; + + emit gradientAdded(newId, gradient); + + return newId; +} + +void QtGradientManager::removeGradient(const QString &id) +{ + if (!m_idToGradient.contains(id)) + return; + + emit gradientRemoved(id); + + m_idToGradient.remove(id); +} + +void QtGradientManager::renameGradient(const QString &id, const QString &newId) +{ + if (!m_idToGradient.contains(id)) + return; + + if (newId == id) + return; + + QString changedId = uniqueId(newId); + QGradient gradient = m_idToGradient.value(id); + + emit gradientRenamed(id, changedId); + + m_idToGradient.remove(id); + m_idToGradient[changedId] = gradient; +} + +void QtGradientManager::changeGradient(const QString &id, const QGradient &newGradient) +{ + if (!m_idToGradient.contains(id)) + return; + + if (m_idToGradient.value(id) == newGradient) + return; + + emit gradientChanged(id, newGradient); + + m_idToGradient[id] = newGradient; +} + +void QtGradientManager::clear() +{ + const QMap grads = gradients(); + for (auto it = grads.cbegin(), end = grads.cend(); it != end; ++it) + removeGradient(it.key()); +} + +QT_END_NAMESPACE diff --git a/src/shared/qtgradienteditor/qtgradientmanager.h b/src/shared/qtgradienteditor/qtgradientmanager.h new file mode 100644 index 0000000..e3373c0 --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientmanager.h @@ -0,0 +1,54 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef GRADIENTMANAGER_H +#define GRADIENTMANAGER_H + +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QGradient; +class QPixmap; +class QColor; + +class QtGradientManager : public QObject +{ + Q_OBJECT +public: + QtGradientManager(QObject *parent = 0); + + QMap gradients() const; + + QString uniqueId(const QString &id) const; + +public slots: + + QString addGradient(const QString &id, const QGradient &gradient); + void renameGradient(const QString &id, const QString &newId); + void changeGradient(const QString &id, const QGradient &newGradient); + void removeGradient(const QString &id); + + //utils + void clear(); + +signals: + + void gradientAdded(const QString &id, const QGradient &gradient); + void gradientRenamed(const QString &id, const QString &newId); + void gradientChanged(const QString &id, const QGradient &newGradient); + void gradientRemoved(const QString &id); + +private: + + QMap m_idToGradient; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtgradienteditor/qtgradientstopscontroller.cpp b/src/shared/qtgradienteditor/qtgradientstopscontroller.cpp new file mode 100644 index 0000000..6f9b86b --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientstopscontroller.cpp @@ -0,0 +1,677 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtgradientstopscontroller.h" +#include "ui_qtgradienteditor.h" +#include "qtgradientstopsmodel.h" + +#include + +QT_BEGIN_NAMESPACE + +class QtGradientStopsControllerPrivate : public QObject +{ + Q_OBJECT + QtGradientStopsController *q_ptr; + Q_DECLARE_PUBLIC(QtGradientStopsController) +public: + typedef QMap PositionColorMap; + typedef QMap PositionStopMap; + + void setUi(Ui::QtGradientEditor *ui); + + void slotHsvClicked(); + void slotRgbClicked(); + + void slotCurrentStopChanged(QtGradientStop *stop); + void slotStopMoved(QtGradientStop *stop, qreal newPos); + void slotStopsSwapped(QtGradientStop *stop1, QtGradientStop *stop2); + void slotStopChanged(QtGradientStop *stop, const QColor &newColor); + void slotStopSelected(QtGradientStop *stop, bool selected); + void slotStopAdded(QtGradientStop *stop); + void slotStopRemoved(QtGradientStop *stop); + void slotUpdatePositionSpinBox(); + + void slotChangeColor(const QColor &color); + void slotChangeHueColor(const QColor &color); + void slotChangeSaturationColor(const QColor &color); + void slotChangeValueColor(const QColor &color); + void slotChangeAlphaColor(const QColor &color); + void slotChangeHue(int color); + void slotChangeSaturation(int color); + void slotChangeValue(int color); + void slotChangeAlpha(int color); + void slotChangePosition(double value); + + void slotChangeZoom(int value); + void slotZoomIn(); + void slotZoomOut(); + void slotZoomAll(); + void slotZoomChanged(double zoom); + + void enableCurrent(bool enable); + void setColorSpinBoxes(const QColor &color); + PositionColorMap stopsData(const PositionStopMap &stops) const; + QGradientStops makeGradientStops(const PositionColorMap &data) const; + void updateZoom(double zoom); + + QtGradientStopsModel *m_model = nullptr; + QColor::Spec m_spec = QColor::Hsv; + + Ui::QtGradientEditor *m_ui; +}; + +void QtGradientStopsControllerPrivate::setUi(Ui::QtGradientEditor *ui) +{ + m_ui = ui; + + m_ui->hueColorLine->setColorComponent(QtColorLine::Hue); + m_ui->saturationColorLine->setColorComponent(QtColorLine::Saturation); + m_ui->valueColorLine->setColorComponent(QtColorLine::Value); + m_ui->alphaColorLine->setColorComponent(QtColorLine::Alpha); + + m_model = new QtGradientStopsModel(this); + m_ui->gradientStopsWidget->setGradientStopsModel(m_model); + connect(m_model, &QtGradientStopsModel::currentStopChanged, + this, &QtGradientStopsControllerPrivate::slotCurrentStopChanged); + connect(m_model, &QtGradientStopsModel::stopMoved, + this, &QtGradientStopsControllerPrivate::slotStopMoved); + connect(m_model, &QtGradientStopsModel::stopsSwapped, + this, &QtGradientStopsControllerPrivate::slotStopsSwapped); + connect(m_model, &QtGradientStopsModel::stopChanged, + this, &QtGradientStopsControllerPrivate::slotStopChanged); + connect(m_model, &QtGradientStopsModel::stopSelected, + this, &QtGradientStopsControllerPrivate::slotStopSelected); + connect(m_model, &QtGradientStopsModel::stopAdded, + this, &QtGradientStopsControllerPrivate::slotStopAdded); + connect(m_model, &QtGradientStopsModel::stopRemoved, + this, &QtGradientStopsControllerPrivate::slotStopRemoved); + + connect(m_ui->hueColorLine, &QtColorLine::colorChanged, + this, &QtGradientStopsControllerPrivate::slotChangeHueColor); + connect(m_ui->saturationColorLine, &QtColorLine::colorChanged, + this, &QtGradientStopsControllerPrivate::slotChangeSaturationColor); + connect(m_ui->valueColorLine, &QtColorLine::colorChanged, + this, &QtGradientStopsControllerPrivate::slotChangeValueColor); + connect(m_ui->alphaColorLine, &QtColorLine::colorChanged, + this, &QtGradientStopsControllerPrivate::slotChangeAlphaColor); + connect(m_ui->colorButton, &QtColorButton::colorChanged, + this, &QtGradientStopsControllerPrivate::slotChangeColor); + + connect(m_ui->hueSpinBox, &QSpinBox::valueChanged, + this, &QtGradientStopsControllerPrivate::slotChangeHue); + connect(m_ui->saturationSpinBox, &QSpinBox::valueChanged, + this, &QtGradientStopsControllerPrivate::slotChangeSaturation); + connect(m_ui->valueSpinBox, &QSpinBox::valueChanged, + this, &QtGradientStopsControllerPrivate::slotChangeValue); + connect(m_ui->alphaSpinBox, &QSpinBox::valueChanged, + this, &QtGradientStopsControllerPrivate::slotChangeAlpha); + + connect(m_ui->positionSpinBox, &QDoubleSpinBox::valueChanged, + this, &QtGradientStopsControllerPrivate::slotChangePosition); + + connect(m_ui->zoomSpinBox, &QSpinBox::valueChanged, + this, &QtGradientStopsControllerPrivate::slotChangeZoom); + connect(m_ui->zoomInButton, &QToolButton::clicked, + this, &QtGradientStopsControllerPrivate::slotZoomIn); + connect(m_ui->zoomOutButton, &QToolButton::clicked, + this, &QtGradientStopsControllerPrivate::slotZoomOut); + connect(m_ui->zoomAllButton, &QToolButton::clicked, + this, &QtGradientStopsControllerPrivate::slotZoomAll); + connect(m_ui->gradientStopsWidget, &QtGradientStopsWidget::zoomChanged, + this, &QtGradientStopsControllerPrivate::slotZoomChanged); + + connect(m_ui->hsvRadioButton, &QRadioButton::clicked, + this, &QtGradientStopsControllerPrivate::slotHsvClicked); + connect(m_ui->rgbRadioButton, &QRadioButton::clicked, + this, &QtGradientStopsControllerPrivate::slotRgbClicked); + + enableCurrent(false); + m_ui->zoomInButton->setIcon(QIcon(QLatin1String(":/qt-project.org/qtgradienteditor/images/zoomin.png"))); + m_ui->zoomOutButton->setIcon(QIcon(QLatin1String(":/qt-project.org/qtgradienteditor/images/zoomout.png"))); + updateZoom(1); +} + +void QtGradientStopsControllerPrivate::enableCurrent(bool enable) +{ + m_ui->positionLabel->setEnabled(enable); + m_ui->colorLabel->setEnabled(enable); + m_ui->hLabel->setEnabled(enable); + m_ui->sLabel->setEnabled(enable); + m_ui->vLabel->setEnabled(enable); + m_ui->aLabel->setEnabled(enable); + m_ui->hueLabel->setEnabled(enable); + m_ui->saturationLabel->setEnabled(enable); + m_ui->valueLabel->setEnabled(enable); + m_ui->alphaLabel->setEnabled(enable); + + m_ui->positionSpinBox->setEnabled(enable); + m_ui->colorButton->setEnabled(enable); + + m_ui->hueColorLine->setEnabled(enable); + m_ui->saturationColorLine->setEnabled(enable); + m_ui->valueColorLine->setEnabled(enable); + m_ui->alphaColorLine->setEnabled(enable); + + m_ui->hueSpinBox->setEnabled(enable); + m_ui->saturationSpinBox->setEnabled(enable); + m_ui->valueSpinBox->setEnabled(enable); + m_ui->alphaSpinBox->setEnabled(enable); +} + +QtGradientStopsControllerPrivate::PositionColorMap QtGradientStopsControllerPrivate::stopsData(const PositionStopMap &stops) const +{ + PositionColorMap data; + PositionStopMap::ConstIterator itStop = stops.constBegin(); + while (itStop != stops.constEnd()) { + QtGradientStop *stop = itStop.value(); + data[stop->position()] = stop->color(); + + ++itStop; + } + return data; +} + +QGradientStops QtGradientStopsControllerPrivate::makeGradientStops(const PositionColorMap &data) const +{ + QGradientStops stops; + PositionColorMap::ConstIterator itData = data.constBegin(); + while (itData != data.constEnd()) { + stops << QPair(itData.key(), itData.value()); + + ++itData; + } + return stops; +} + +void QtGradientStopsControllerPrivate::updateZoom(double zoom) +{ + m_ui->gradientStopsWidget->setZoom(zoom); + m_ui->zoomSpinBox->blockSignals(true); + m_ui->zoomSpinBox->setValue(qRound(zoom * 100)); + m_ui->zoomSpinBox->blockSignals(false); + bool zoomInEnabled = true; + bool zoomOutEnabled = true; + bool zoomAllEnabled = true; + if (zoom <= 1) { + zoomAllEnabled = false; + zoomOutEnabled = false; + } else if (zoom >= 100) { + zoomInEnabled = false; + } + m_ui->zoomInButton->setEnabled(zoomInEnabled); + m_ui->zoomOutButton->setEnabled(zoomOutEnabled); + m_ui->zoomAllButton->setEnabled(zoomAllEnabled); +} + +void QtGradientStopsControllerPrivate::slotHsvClicked() +{ + QString h = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "H"); + QString s = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "S"); + QString v = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "V"); + + m_ui->hLabel->setText(h); + m_ui->sLabel->setText(s); + m_ui->vLabel->setText(v); + + h = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "Hue"); + s = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "Sat"); + v = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "Val"); + + const QString hue = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "Hue"); + const QString saturation = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "Saturation"); + const QString value = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "Value"); + + m_ui->hLabel->setToolTip(hue); + m_ui->hueLabel->setText(h); + m_ui->hueColorLine->setToolTip(hue); + m_ui->hueColorLine->setColorComponent(QtColorLine::Hue); + + m_ui->sLabel->setToolTip(saturation); + m_ui->saturationLabel->setText(s); + m_ui->saturationColorLine->setToolTip(saturation); + m_ui->saturationColorLine->setColorComponent(QtColorLine::Saturation); + + m_ui->vLabel->setToolTip(value); + m_ui->valueLabel->setText(v); + m_ui->valueColorLine->setToolTip(value); + m_ui->valueColorLine->setColorComponent(QtColorLine::Value); + + setColorSpinBoxes(m_ui->colorButton->color()); +} + +void QtGradientStopsControllerPrivate::slotRgbClicked() +{ + QString r = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "R"); + QString g = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "G"); + QString b = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "B"); + + m_ui->hLabel->setText(r); + m_ui->sLabel->setText(g); + m_ui->vLabel->setText(b); + + QString red = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "Red"); + QString green = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "Green"); + QString blue = QCoreApplication::translate("qdesigner_internal::QtGradientStopsController", "Blue"); + + m_ui->hLabel->setToolTip(red); + m_ui->hueLabel->setText(red); + m_ui->hueColorLine->setToolTip(red); + m_ui->hueColorLine->setColorComponent(QtColorLine::Red); + + m_ui->sLabel->setToolTip(green); + m_ui->saturationLabel->setText(green); + m_ui->saturationColorLine->setToolTip(green); + m_ui->saturationColorLine->setColorComponent(QtColorLine::Green); + + m_ui->vLabel->setToolTip(blue); + m_ui->valueLabel->setText(blue); + m_ui->valueColorLine->setToolTip(blue); + m_ui->valueColorLine->setColorComponent(QtColorLine::Blue); + + setColorSpinBoxes(m_ui->colorButton->color()); +} + +void QtGradientStopsControllerPrivate::setColorSpinBoxes(const QColor &color) +{ + m_ui->hueSpinBox->blockSignals(true); + m_ui->saturationSpinBox->blockSignals(true); + m_ui->valueSpinBox->blockSignals(true); + m_ui->alphaSpinBox->blockSignals(true); + if (m_ui->hsvRadioButton->isChecked()) { + if (m_ui->hueSpinBox->maximum() != 359) + m_ui->hueSpinBox->setMaximum(359); + if (m_ui->hueSpinBox->value() != color.hue()) + m_ui->hueSpinBox->setValue(color.hue()); + if (m_ui->saturationSpinBox->value() != color.saturation()) + m_ui->saturationSpinBox->setValue(color.saturation()); + if (m_ui->valueSpinBox->value() != color.value()) + m_ui->valueSpinBox->setValue(color.value()); + } else { + if (m_ui->hueSpinBox->maximum() != 255) + m_ui->hueSpinBox->setMaximum(255); + if (m_ui->hueSpinBox->value() != color.red()) + m_ui->hueSpinBox->setValue(color.red()); + if (m_ui->saturationSpinBox->value() != color.green()) + m_ui->saturationSpinBox->setValue(color.green()); + if (m_ui->valueSpinBox->value() != color.blue()) + m_ui->valueSpinBox->setValue(color.blue()); + } + m_ui->alphaSpinBox->setValue(color.alpha()); + m_ui->hueSpinBox->blockSignals(false); + m_ui->saturationSpinBox->blockSignals(false); + m_ui->valueSpinBox->blockSignals(false); + m_ui->alphaSpinBox->blockSignals(false); +} + +void QtGradientStopsControllerPrivate::slotCurrentStopChanged(QtGradientStop *stop) +{ + if (!stop) { + enableCurrent(false); + return; + } + enableCurrent(true); + + QTimer::singleShot(0, this, &QtGradientStopsControllerPrivate::slotUpdatePositionSpinBox); + + m_ui->colorButton->setColor(stop->color()); + m_ui->hueColorLine->setColor(stop->color()); + m_ui->saturationColorLine->setColor(stop->color()); + m_ui->valueColorLine->setColor(stop->color()); + m_ui->alphaColorLine->setColor(stop->color()); + setColorSpinBoxes(stop->color()); +} + +void QtGradientStopsControllerPrivate::slotStopMoved(QtGradientStop *stop, qreal newPos) +{ + QTimer::singleShot(0, this, &QtGradientStopsControllerPrivate::slotUpdatePositionSpinBox); + + PositionColorMap stops = stopsData(m_model->stops()); + stops.remove(stop->position()); + stops[newPos] = stop->color(); + + QGradientStops gradStops = makeGradientStops(stops); + emit q_ptr->gradientStopsChanged(gradStops); +} + +void QtGradientStopsControllerPrivate::slotStopsSwapped(QtGradientStop *stop1, QtGradientStop *stop2) +{ + QTimer::singleShot(0, this, &QtGradientStopsControllerPrivate::slotUpdatePositionSpinBox); + + PositionColorMap stops = stopsData(m_model->stops()); + const qreal pos1 = stop1->position(); + const qreal pos2 = stop2->position(); + stops[pos1] = stop2->color(); + stops[pos2] = stop1->color(); + + QGradientStops gradStops = makeGradientStops(stops); + emit q_ptr->gradientStopsChanged(gradStops); +} + +void QtGradientStopsControllerPrivate::slotStopAdded(QtGradientStop *stop) +{ + PositionColorMap stops = stopsData(m_model->stops()); + stops[stop->position()] = stop->color(); + + QGradientStops gradStops = makeGradientStops(stops); + emit q_ptr->gradientStopsChanged(gradStops); +} + +void QtGradientStopsControllerPrivate::slotStopRemoved(QtGradientStop *stop) +{ + PositionColorMap stops = stopsData(m_model->stops()); + stops.remove(stop->position()); + + QGradientStops gradStops = makeGradientStops(stops); + emit q_ptr->gradientStopsChanged(gradStops); +} + +void QtGradientStopsControllerPrivate::slotStopChanged(QtGradientStop *stop, const QColor &newColor) +{ + if (m_model->currentStop() == stop) { + m_ui->colorButton->setColor(newColor); + m_ui->hueColorLine->setColor(newColor); + m_ui->saturationColorLine->setColor(newColor); + m_ui->valueColorLine->setColor(newColor); + m_ui->alphaColorLine->setColor(newColor); + setColorSpinBoxes(newColor); + } + + PositionColorMap stops = stopsData(m_model->stops()); + stops[stop->position()] = newColor; + + QGradientStops gradStops = makeGradientStops(stops); + emit q_ptr->gradientStopsChanged(gradStops); +} + +void QtGradientStopsControllerPrivate::slotStopSelected(QtGradientStop *stop, bool selected) +{ + Q_UNUSED(stop); + Q_UNUSED(selected); + QTimer::singleShot(0, this, &QtGradientStopsControllerPrivate::slotUpdatePositionSpinBox); +} + +void QtGradientStopsControllerPrivate::slotUpdatePositionSpinBox() +{ + QtGradientStop *current = m_model->currentStop(); + if (!current) + return; + + qreal min = 0.0; + qreal max = 1.0; + const qreal pos = current->position(); + + QtGradientStop *first = m_model->firstSelected(); + QtGradientStop *last = m_model->lastSelected(); + + if (first && last) { + const qreal minPos = pos - first->position() - 0.0004999; + const qreal maxPos = pos + 1.0 - last->position() + 0.0004999; + + if (max > maxPos) + max = maxPos; + if (min < minPos) + min = minPos; + + if (first->position() == 0.0) + min = pos; + if (last->position() == 1.0) + max = pos; + } + + const int spinMin = qRound(m_ui->positionSpinBox->minimum() * 1000); + const int spinMax = qRound(m_ui->positionSpinBox->maximum() * 1000); + + const int newMin = qRound(min * 1000); + const int newMax = qRound(max * 1000); + + m_ui->positionSpinBox->blockSignals(true); + if (spinMin != newMin || spinMax != newMax) { + m_ui->positionSpinBox->setRange(double(newMin) / 1000, double(newMax) / 1000); + } + if (m_ui->positionSpinBox->value() != pos) + m_ui->positionSpinBox->setValue(pos); + m_ui->positionSpinBox->blockSignals(false); +} + +void QtGradientStopsControllerPrivate::slotChangeColor(const QColor &color) +{ + QtGradientStop *stop = m_model->currentStop(); + if (!stop) + return; + m_model->changeStop(stop, color); + const auto stops = m_model->selectedStops(); + for (QtGradientStop *s : stops) { + if (s != stop) + m_model->changeStop(s, color); + } +} + +void QtGradientStopsControllerPrivate::slotChangeHueColor(const QColor &color) +{ + QtGradientStop *stop = m_model->currentStop(); + if (!stop) + return; + m_model->changeStop(stop, color); + const auto stops = m_model->selectedStops(); + for (QtGradientStop *s : stops) { + if (s != stop) { + QColor c = s->color(); + if (m_ui->hsvRadioButton->isChecked()) + c.setHsvF(color.hueF(), c.saturationF(), c.valueF(), c.alphaF()); + else + c.setRgbF(color.redF(), c.greenF(), c.blueF(), c.alphaF()); + m_model->changeStop(s, c); + } + } +} + +void QtGradientStopsControllerPrivate::slotChangeHue(int color) +{ + QColor c = m_ui->hueColorLine->color(); + if (m_ui->hsvRadioButton->isChecked()) + c.setHsvF(qreal(color) / 360.0, c.saturationF(), c.valueF(), c.alphaF()); + else + c.setRed(color); + slotChangeHueColor(c); +} + +void QtGradientStopsControllerPrivate::slotChangeSaturationColor(const QColor &color) +{ + QtGradientStop *stop = m_model->currentStop(); + if (!stop) + return; + m_model->changeStop(stop, color); + const auto stops = m_model->selectedStops(); + for (QtGradientStop *s : stops) { + if (s != stop) { + QColor c = s->color(); + if (m_ui->hsvRadioButton->isChecked()) { + c.setHsvF(c.hueF(), color.saturationF(), c.valueF(), c.alphaF()); + int hue = c.hue(); + if (hue == 360 || hue == -1) + c.setHsvF(0.0, c.saturationF(), c.valueF(), c.alphaF()); + } else { + c.setRgbF(c.redF(), color.greenF(), c.blueF(), c.alphaF()); + } + m_model->changeStop(s, c); + } + } +} + +void QtGradientStopsControllerPrivate::slotChangeSaturation(int color) +{ + QColor c = m_ui->saturationColorLine->color(); + if (m_ui->hsvRadioButton->isChecked()) + c.setHsvF(c.hueF(), qreal(color) / 255, c.valueF(), c.alphaF()); + else + c.setGreen(color); + slotChangeSaturationColor(c); +} + +void QtGradientStopsControllerPrivate::slotChangeValueColor(const QColor &color) +{ + QtGradientStop *stop = m_model->currentStop(); + if (!stop) + return; + m_model->changeStop(stop, color); + const auto stops = m_model->selectedStops(); + for (QtGradientStop *s : stops) { + if (s != stop) { + QColor c = s->color(); + if (m_ui->hsvRadioButton->isChecked()) { + c.setHsvF(c.hueF(), c.saturationF(), color.valueF(), c.alphaF()); + int hue = c.hue(); + if (hue == 360 || hue == -1) + c.setHsvF(0.0, c.saturationF(), c.valueF(), c.alphaF()); + } else { + c.setRgbF(c.redF(), c.greenF(), color.blueF(), c.alphaF()); + } + m_model->changeStop(s, c); + } + } +} + +void QtGradientStopsControllerPrivate::slotChangeValue(int color) +{ + QColor c = m_ui->valueColorLine->color(); + if (m_ui->hsvRadioButton->isChecked()) + c.setHsvF(c.hueF(), c.saturationF(), qreal(color) / 255, c.alphaF()); + else + c.setBlue(color); + slotChangeValueColor(c); +} + +void QtGradientStopsControllerPrivate::slotChangeAlphaColor(const QColor &color) +{ + QtGradientStop *stop = m_model->currentStop(); + if (!stop) + return; + m_model->changeStop(stop, color); + const auto stops = m_model->selectedStops(); + for (QtGradientStop *s : stops) { + if (s != stop) { + QColor c = s->color(); + if (m_ui->hsvRadioButton->isChecked()) { + c.setHsvF(c.hueF(), c.saturationF(), c.valueF(), color.alphaF()); + int hue = c.hue(); + if (hue == 360 || hue == -1) + c.setHsvF(0.0, c.saturationF(), c.valueF(), c.alphaF()); + } else { + c.setRgbF(c.redF(), c.greenF(), c.blueF(), color.alphaF()); + } + m_model->changeStop(s, c); + } + } +} + +void QtGradientStopsControllerPrivate::slotChangeAlpha(int color) +{ + QColor c = m_ui->alphaColorLine->color(); + if (m_ui->hsvRadioButton->isChecked()) + c.setHsvF(c.hueF(), c.saturationF(), c.valueF(), qreal(color) / 255); + else + c.setAlpha(color); + slotChangeAlphaColor(c); +} + +void QtGradientStopsControllerPrivate::slotChangePosition(double value) +{ + QtGradientStop *stop = m_model->currentStop(); + if (!stop) + return; + + m_model->moveStops(value); +} + +void QtGradientStopsControllerPrivate::slotChangeZoom(int value) +{ + updateZoom(value / 100.0); +} + +void QtGradientStopsControllerPrivate::slotZoomIn() +{ + double newZoom = m_ui->gradientStopsWidget->zoom() * 2; + if (newZoom > 100) + newZoom = 100; + updateZoom(newZoom); +} + +void QtGradientStopsControllerPrivate::slotZoomOut() +{ + double newZoom = m_ui->gradientStopsWidget->zoom() / 2; + if (newZoom < 1) + newZoom = 1; + updateZoom(newZoom); +} + +void QtGradientStopsControllerPrivate::slotZoomAll() +{ + updateZoom(1); +} + +void QtGradientStopsControllerPrivate::slotZoomChanged(double zoom) +{ + updateZoom(zoom); +} + +QtGradientStopsController::QtGradientStopsController(QObject *parent) + : QObject(parent), d_ptr(new QtGradientStopsControllerPrivate()) +{ + d_ptr->q_ptr = this; +} + +void QtGradientStopsController::setUi(Ui::QtGradientEditor *ui) +{ + d_ptr->setUi(ui); +} + +QtGradientStopsController::~QtGradientStopsController() +{ +} + +void QtGradientStopsController::setGradientStops(const QGradientStops &stops) +{ + d_ptr->m_model->clear(); + QtGradientStop *first = nullptr; + for (const QPair &pair : stops) { + QtGradientStop *stop = d_ptr->m_model->addStop(pair.first, pair.second); + if (!first) + first = stop; + } + if (first) + d_ptr->m_model->setCurrentStop(first); +} + +QGradientStops QtGradientStopsController::gradientStops() const +{ + QGradientStops stops; + const auto stopsList = d_ptr->m_model->stops().values(); + for (const QtGradientStop *stop : stopsList) + stops << QPair(stop->position(), stop->color()); + return stops; +} + +QColor::Spec QtGradientStopsController::spec() const +{ + return d_ptr->m_spec; +} + +void QtGradientStopsController::setSpec(QColor::Spec spec) +{ + if (d_ptr->m_spec == spec) + return; + + d_ptr->m_spec = spec; + if (d_ptr->m_spec == QColor::Rgb) { + d_ptr->m_ui->rgbRadioButton->setChecked(true); + d_ptr->slotRgbClicked(); + } else { + d_ptr->m_ui->hsvRadioButton->setChecked(true); + d_ptr->slotHsvClicked(); + } +} + +QT_END_NAMESPACE + +#include "qtgradientstopscontroller.moc" diff --git a/src/shared/qtgradienteditor/qtgradientstopscontroller.h b/src/shared/qtgradienteditor/qtgradientstopscontroller.h new file mode 100644 index 0000000..c93b91c --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientstopscontroller.h @@ -0,0 +1,41 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTGRADIENTSTOPSCONTROLLER_H +#define QTGRADIENTSTOPSCONTROLLER_H + +#include + +QT_BEGIN_NAMESPACE + +namespace Ui { + class QtGradientEditor; +} + +class QtGradientStopsController : public QObject +{ + Q_OBJECT +public: + QtGradientStopsController(QObject *parent = 0); + ~QtGradientStopsController(); + + void setUi(Ui::QtGradientEditor *editor); + + void setGradientStops(const QGradientStops &stops); + QGradientStops gradientStops() const; + + QColor::Spec spec() const; + void setSpec(QColor::Spec spec); + +signals: + void gradientStopsChanged(const QGradientStops &stops); + +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtGradientStopsController) + Q_DISABLE_COPY_MOVE(QtGradientStopsController) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtgradienteditor/qtgradientstopsmodel.cpp b/src/shared/qtgradienteditor/qtgradientstopsmodel.cpp new file mode 100644 index 0000000..4405939 --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientstopsmodel.cpp @@ -0,0 +1,422 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtgradientstopsmodel.h" +#include + +QT_BEGIN_NAMESPACE + +class QtGradientStopPrivate +{ +public: + qreal m_position; + QColor m_color; + QtGradientStopsModel *m_model; +}; + +qreal QtGradientStop::position() const +{ + return d_ptr->m_position; +} + +QColor QtGradientStop::color() const +{ + return d_ptr->m_color; +} + +QtGradientStopsModel *QtGradientStop::gradientModel() const +{ + return d_ptr->m_model; +} + +void QtGradientStop::setColor(const QColor &color) +{ + d_ptr->m_color = color; +} + +void QtGradientStop::setPosition(qreal position) +{ + d_ptr->m_position = position; +} + +QtGradientStop::QtGradientStop(QtGradientStopsModel *model) + : d_ptr(new QtGradientStopPrivate()) +{ + d_ptr->m_position = 0; + d_ptr->m_color = Qt::white; + d_ptr->m_model = model; +} + +QtGradientStop::~QtGradientStop() +{ +} + +class QtGradientStopsModelPrivate +{ + QtGradientStopsModel *q_ptr; + Q_DECLARE_PUBLIC(QtGradientStopsModel) +public: + QMap m_posToStop; + QMap m_stopToPos; + QMap m_selection; + QtGradientStop *m_current; +}; + + + +QtGradientStopsModel::QtGradientStopsModel(QObject *parent) + : QObject(parent), d_ptr(new QtGradientStopsModelPrivate) +{ + d_ptr->q_ptr = this; + d_ptr->m_current = 0; +} + +QtGradientStopsModel::~QtGradientStopsModel() +{ + clear(); +} + +QtGradientStopsModel::PositionStopMap QtGradientStopsModel::stops() const +{ + return d_ptr->m_posToStop; +} + +QtGradientStop *QtGradientStopsModel::at(qreal pos) const +{ + if (d_ptr->m_posToStop.contains(pos)) + return d_ptr->m_posToStop[pos]; + return 0; +} + +QColor QtGradientStopsModel::color(qreal pos) const +{ + PositionStopMap gradStops = stops(); + if (gradStops.isEmpty()) + return QColor::fromRgbF(pos, pos, pos, 1.0); + if (gradStops.contains(pos)) + return gradStops[pos]->color(); + + gradStops[pos] = 0; + PositionStopMap::ConstIterator itStop = gradStops.constFind(pos); + if (itStop == gradStops.constBegin()) { + ++itStop; + return itStop.value()->color(); + } + if (itStop == --gradStops.constEnd()) { + --itStop; + return itStop.value()->color(); + } + PositionStopMap::ConstIterator itPrev = itStop; + PositionStopMap::ConstIterator itNext = itStop; + --itPrev; + ++itNext; + + double prevX = itPrev.key(); + double nextX = itNext.key(); + + double coefX = (pos - prevX) / (nextX - prevX); + QColor prevCol = itPrev.value()->color(); + QColor nextCol = itNext.value()->color(); + + QColor newColor; + newColor.setRgbF((nextCol.redF() - prevCol.redF() ) * coefX + prevCol.redF(), + (nextCol.greenF() - prevCol.greenF()) * coefX + prevCol.greenF(), + (nextCol.blueF() - prevCol.blueF() ) * coefX + prevCol.blueF(), + (nextCol.alphaF() - prevCol.alphaF()) * coefX + prevCol.alphaF()); + return newColor; +} + +QList QtGradientStopsModel::selectedStops() const +{ + return d_ptr->m_selection.keys(); +} + +QtGradientStop *QtGradientStopsModel::currentStop() const +{ + return d_ptr->m_current; +} + +bool QtGradientStopsModel::isSelected(QtGradientStop *stop) const +{ + if (d_ptr->m_selection.contains(stop)) + return true; + return false; +} + +QtGradientStop *QtGradientStopsModel::addStop(qreal pos, const QColor &color) +{ + qreal newPos = pos; + if (pos < 0.0) + newPos = 0.0; + if (pos > 1.0) + newPos = 1.0; + if (d_ptr->m_posToStop.contains(newPos)) + return 0; + QtGradientStop *stop = new QtGradientStop(); + stop->setPosition(newPos); + stop->setColor(color); + + d_ptr->m_posToStop[newPos] = stop; + d_ptr->m_stopToPos[stop] = newPos; + + emit stopAdded(stop); + + return stop; +} + +void QtGradientStopsModel::removeStop(QtGradientStop *stop) +{ + if (!d_ptr->m_stopToPos.contains(stop)) + return; + if (currentStop() == stop) + setCurrentStop(0); + selectStop(stop, false); + + emit stopRemoved(stop); + + qreal pos = d_ptr->m_stopToPos[stop]; + d_ptr->m_stopToPos.remove(stop); + d_ptr->m_posToStop.remove(pos); + delete stop; +} + +void QtGradientStopsModel::moveStop(QtGradientStop *stop, qreal newPos) +{ + if (!d_ptr->m_stopToPos.contains(stop)) + return; + if (d_ptr->m_posToStop.contains(newPos)) + return; + + if (newPos > 1.0) + newPos = 1.0; + else if (newPos < 0.0) + newPos = 0.0; + + emit stopMoved(stop, newPos); + + const qreal oldPos = stop->position(); + stop->setPosition(newPos); + d_ptr->m_stopToPos[stop] = newPos; + d_ptr->m_posToStop.remove(oldPos); + d_ptr->m_posToStop[newPos] = stop; +} + +void QtGradientStopsModel::swapStops(QtGradientStop *stop1, QtGradientStop *stop2) +{ + if (stop1 == stop2) + return; + if (!d_ptr->m_stopToPos.contains(stop1)) + return; + if (!d_ptr->m_stopToPos.contains(stop2)) + return; + + emit stopsSwapped(stop1, stop2); + + const qreal pos1 = stop1->position(); + const qreal pos2 = stop2->position(); + stop1->setPosition(pos2); + stop2->setPosition(pos1); + d_ptr->m_stopToPos[stop1] = pos2; + d_ptr->m_stopToPos[stop2] = pos1; + d_ptr->m_posToStop[pos1] = stop2; + d_ptr->m_posToStop[pos2] = stop1; +} + +void QtGradientStopsModel::changeStop(QtGradientStop *stop, const QColor &newColor) +{ + if (!d_ptr->m_stopToPos.contains(stop)) + return; + if (stop->color() == newColor) + return; + + emit stopChanged(stop, newColor); + + stop->setColor(newColor); +} + +void QtGradientStopsModel::selectStop(QtGradientStop *stop, bool select) +{ + if (!d_ptr->m_stopToPos.contains(stop)) + return; + bool selected = d_ptr->m_selection.contains(stop); + if (select == selected) + return; + + emit stopSelected(stop, select); + + if (select) + d_ptr->m_selection[stop] = true; + else + d_ptr->m_selection.remove(stop); +} + +void QtGradientStopsModel::setCurrentStop(QtGradientStop *stop) +{ + if (stop && !d_ptr->m_stopToPos.contains(stop)) + return; + if (stop == currentStop()) + return; + + emit currentStopChanged(stop); + + d_ptr->m_current = stop; +} + +QtGradientStop *QtGradientStopsModel::firstSelected() const +{ + PositionStopMap stopList = stops(); + PositionStopMap::ConstIterator itStop = stopList.constBegin(); + while (itStop != stopList.constEnd()) { + QtGradientStop *stop = itStop.value(); + if (isSelected(stop)) + return stop; + ++itStop; + }; + return 0; +} + +QtGradientStop *QtGradientStopsModel::lastSelected() const +{ + PositionStopMap stopList = stops(); + PositionStopMap::ConstIterator itStop = stopList.constEnd(); + while (itStop != stopList.constBegin()) { + --itStop; + + QtGradientStop *stop = itStop.value(); + if (isSelected(stop)) + return stop; + }; + return 0; +} + +QtGradientStopsModel *QtGradientStopsModel::clone() const +{ + QtGradientStopsModel *model = new QtGradientStopsModel(); + + QMap stopsToClone = stops(); + for (auto it = stopsToClone.cbegin(), end = stopsToClone.cend(); it != end; ++it) + model->addStop(it.key(), it.value()->color()); + // clone selection and current also + return model; +} + +void QtGradientStopsModel::moveStops(double newPosition) +{ + QtGradientStop *current = currentStop(); + if (!current) + return; + + double newPos = newPosition; + + if (newPos > 1) + newPos = 1; + else if (newPos < 0) + newPos = 0; + + if (newPos == current->position()) + return; + + double offset = newPos - current->position(); + + QtGradientStop *first = firstSelected(); + QtGradientStop *last = lastSelected(); + + if (first && last) { // multiselection + double maxOffset = 1.0 - last->position(); + double minOffset = -first->position(); + + if (offset > maxOffset) + offset = maxOffset; + else if (offset < minOffset) + offset = minOffset; + + } + + if (offset == 0) + return; + + bool forward = (offset > 0) ? false : true; + + PositionStopMap stopList; + + const auto selected = selectedStops(); + for (QtGradientStop *stop : selected) + stopList[stop->position()] = stop; + stopList[current->position()] = current; + + PositionStopMap::ConstIterator itStop = forward ? stopList.constBegin() : stopList.constEnd(); + while (itStop != (forward ? stopList.constEnd() : stopList.constBegin())) { + if (!forward) + --itStop; + QtGradientStop *stop = itStop.value(); + double pos = stop->position() + offset; + if (pos > 1) + pos = 1; + if (pos < 0) + pos = 0; + + if (current == stop) + pos = newPos; + + QtGradientStop *oldStop = at(pos); + if (oldStop && !stopList.values().contains(oldStop)) + removeStop(oldStop); + moveStop(stop, pos); + + if (forward) + ++itStop; + } +} + +void QtGradientStopsModel::clear() +{ + const auto stopsList = stops().values(); + for (QtGradientStop *stop : stopsList) + removeStop(stop); +} + +void QtGradientStopsModel::clearSelection() +{ + const auto stopsList = selectedStops(); + for (QtGradientStop *stop : stopsList) + selectStop(stop, false); +} + +void QtGradientStopsModel::flipAll() +{ + QMap stopsMap = stops(); + QMap swappedList; + for (auto itStop = stopsMap.keyValueEnd(), begin = stopsMap.keyValueBegin(); itStop != begin;) { + --itStop; + QtGradientStop *stop = (*itStop).second; + if (swappedList.contains(stop)) + continue; + const double newPos = 1.0 - (*itStop).first; + if (stopsMap.contains(newPos)) { + QtGradientStop *swapped = stopsMap.value(newPos); + swappedList[swapped] = true; + swapStops(stop, swapped); + } else { + moveStop(stop, newPos); + } + } +} + +void QtGradientStopsModel::selectAll() +{ + const auto stopsMap = stops(); + for (auto it = stopsMap.cbegin(), end = stopsMap.cend(); it != end; ++it) + selectStop(it.value(), true); +} + +void QtGradientStopsModel::deleteStops() +{ + const auto selected = selectedStops(); + for (QtGradientStop *stop : selected) + removeStop(stop); + QtGradientStop *current = currentStop(); + if (current) + removeStop(current); +} + +QT_END_NAMESPACE diff --git a/src/shared/qtgradienteditor/qtgradientstopsmodel.h b/src/shared/qtgradienteditor/qtgradientstopsmodel.h new file mode 100644 index 0000000..f6b7b2b --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientstopsmodel.h @@ -0,0 +1,83 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTGRADIENTSTOPSMODEL_H +#define QTGRADIENTSTOPSMODEL_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QColor; + +class QtGradientStopsModel; + +class QtGradientStop +{ +public: + qreal position() const; + QColor color() const; + QtGradientStopsModel *gradientModel() const; + +private: + void setColor(const QColor &color); + void setPosition(qreal position); + friend class QtGradientStopsModel; + QtGradientStop(QtGradientStopsModel *model = 0); + ~QtGradientStop(); + QScopedPointer d_ptr; +}; + +class QtGradientStopsModel : public QObject +{ + Q_OBJECT +public: + typedef QMap PositionStopMap; + + QtGradientStopsModel(QObject *parent = 0); + ~QtGradientStopsModel(); + + PositionStopMap stops() const; + QtGradientStop *at(qreal pos) const; + QColor color(qreal pos) const; // calculated between points + QList selectedStops() const; + QtGradientStop *currentStop() const; + bool isSelected(QtGradientStop *stop) const; + QtGradientStop *firstSelected() const; + QtGradientStop *lastSelected() const; + QtGradientStopsModel *clone() const; + + QtGradientStop *addStop(qreal pos, const QColor &color); + void removeStop(QtGradientStop *stop); + void moveStop(QtGradientStop *stop, qreal newPos); + void swapStops(QtGradientStop *stop1, QtGradientStop *stop2); + void changeStop(QtGradientStop *stop, const QColor &newColor); + void selectStop(QtGradientStop *stop, bool select); + void setCurrentStop(QtGradientStop *stop); + + void moveStops(double newPosition); // moves current stop to newPos and all selected stops are moved accordingly + void clear(); + void clearSelection(); + void flipAll(); + void selectAll(); + void deleteStops(); + +signals: + void stopAdded(QtGradientStop *stop); + void stopRemoved(QtGradientStop *stop); + void stopMoved(QtGradientStop *stop, qreal newPos); + void stopsSwapped(QtGradientStop *stop1, QtGradientStop *stop2); + void stopChanged(QtGradientStop *stop, const QColor &newColor); + void stopSelected(QtGradientStop *stop, bool selected); + void currentStopChanged(QtGradientStop *stop); + +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtGradientStopsModel) + Q_DISABLE_COPY_MOVE(QtGradientStopsModel) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtgradienteditor/qtgradientstopswidget.cpp b/src/shared/qtgradienteditor/qtgradientstopswidget.cpp new file mode 100644 index 0000000..5be4aa8 --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientstopswidget.cpp @@ -0,0 +1,1107 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtgradientstopswidget.h" +#include "qtgradientstopsmodel.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QtGradientStopsWidgetPrivate : public QObject +{ + Q_OBJECT + QtGradientStopsWidget *q_ptr; + Q_DECLARE_PUBLIC(QtGradientStopsWidget) +public: + typedef QMap PositionColorMap; + typedef QMap StopPositionMap; + + void setGradientStopsModel(QtGradientStopsModel *model); + + void slotStopAdded(QtGradientStop *stop); + void slotStopRemoved(QtGradientStop *stop); + void slotStopMoved(QtGradientStop *stop, qreal newPos); + void slotStopsSwapped(QtGradientStop *stop1, QtGradientStop *stop2); + void slotStopChanged(QtGradientStop *stop, const QColor &newColor); + void slotStopSelected(QtGradientStop *stop, bool selected); + void slotCurrentStopChanged(QtGradientStop *stop); + void slotNewStop(); + void slotDelete(); + void slotFlipAll(); + void slotSelectAll(); + void slotZoomIn(); + void slotZoomOut(); + void slotResetZoom(); + + double fromViewport(int x) const; + double toViewport(double x) const; + QtGradientStop *stopAt(const QPoint &viewportPos) const; + QList stopsAt(const QPoint &viewportPos) const; + void setupMove(QtGradientStop *stop, int x); + void ensureVisible(double x); // x = stop position + void ensureVisible(QtGradientStop *stop); + QtGradientStop *newStop(const QPoint &viewportPos); + + bool m_backgroundCheckered; + QtGradientStopsModel *m_model; + double m_handleSize; + int m_scaleFactor; + double m_zoom; + +#ifndef QT_NO_DRAGANDDROP + QtGradientStop *m_dragStop; + QtGradientStop *m_changedStop; + QtGradientStop *m_clonedStop; + QtGradientStopsModel *m_dragModel; + QColor m_dragColor; + void clearDrag(); + void removeClonedStop(); + void restoreChangedStop(); + void changeStop(qreal pos); + void cloneStop(qreal pos); +#endif + + QRubberBand *m_rubber; + QPoint m_clickPos; + + QList m_stops; + + bool m_moving; + int m_moveOffset; + StopPositionMap m_moveStops; + + PositionColorMap m_moveOriginal; +}; + +void QtGradientStopsWidgetPrivate::setGradientStopsModel(QtGradientStopsModel *model) +{ + if (m_model == model) + return; + + if (m_model) { + disconnect(m_model, &QtGradientStopsModel::stopAdded, + this, &QtGradientStopsWidgetPrivate::slotStopAdded); + disconnect(m_model, &QtGradientStopsModel::stopRemoved, + this, &QtGradientStopsWidgetPrivate::slotStopRemoved); + disconnect(m_model, &QtGradientStopsModel::stopMoved, + this, &QtGradientStopsWidgetPrivate::slotStopMoved); + disconnect(m_model, &QtGradientStopsModel::stopsSwapped, + this, &QtGradientStopsWidgetPrivate::slotStopsSwapped); + disconnect(m_model, &QtGradientStopsModel::stopChanged, + this, &QtGradientStopsWidgetPrivate::slotStopChanged); + disconnect(m_model, &QtGradientStopsModel::stopSelected, + this, &QtGradientStopsWidgetPrivate::slotStopSelected); + disconnect(m_model, &QtGradientStopsModel::currentStopChanged, + this, &QtGradientStopsWidgetPrivate::slotCurrentStopChanged); + + m_stops.clear(); + } + + m_model = model; + + if (m_model) { + connect(m_model, &QtGradientStopsModel::stopAdded, + this, &QtGradientStopsWidgetPrivate::slotStopAdded); + connect(m_model, &QtGradientStopsModel::stopRemoved, + this, &QtGradientStopsWidgetPrivate::slotStopRemoved); + connect(m_model, &QtGradientStopsModel::stopMoved, + this, &QtGradientStopsWidgetPrivate::slotStopMoved); + connect(m_model, &QtGradientStopsModel::stopsSwapped, + this, &QtGradientStopsWidgetPrivate::slotStopsSwapped); + connect(m_model, &QtGradientStopsModel::stopChanged, + this, &QtGradientStopsWidgetPrivate::slotStopChanged); + connect(m_model, &QtGradientStopsModel::stopSelected, + this, &QtGradientStopsWidgetPrivate::slotStopSelected); + connect(m_model, &QtGradientStopsModel::currentStopChanged, + this, &QtGradientStopsWidgetPrivate::slotCurrentStopChanged); + + const QtGradientStopsModel::PositionStopMap stopsMap = m_model->stops(); + for (auto it = stopsMap.cbegin(), end = stopsMap.cend(); it != end; ++it) + slotStopAdded(it.value()); + + const auto selected = m_model->selectedStops(); + for (QtGradientStop *stop : selected) + slotStopSelected(stop, true); + + slotCurrentStopChanged(m_model->currentStop()); + } +} + +double QtGradientStopsWidgetPrivate::fromViewport(int x) const +{ + QSize size = q_ptr->viewport()->size(); + int w = size.width(); + int max = q_ptr->horizontalScrollBar()->maximum(); + int val = q_ptr->horizontalScrollBar()->value(); + return (double(x) * m_scaleFactor + w * val) / (w * (m_scaleFactor + max)); +} + +double QtGradientStopsWidgetPrivate::toViewport(double x) const +{ + QSize size = q_ptr->viewport()->size(); + int w = size.width(); + int max = q_ptr->horizontalScrollBar()->maximum(); + int val = q_ptr->horizontalScrollBar()->value(); + return w * (x * (m_scaleFactor + max) - val) / m_scaleFactor; +} + +QtGradientStop *QtGradientStopsWidgetPrivate::stopAt(const QPoint &viewportPos) const +{ + double posY = m_handleSize / 2; + for (QtGradientStop *stop : m_stops) { + double posX = toViewport(stop->position()); + + double x = viewportPos.x() - posX; + double y = viewportPos.y() - posY; + + if ((m_handleSize * m_handleSize / 4) > (x * x + y * y)) + return stop; + } + return 0; +} + +QList QtGradientStopsWidgetPrivate::stopsAt(const QPoint &viewportPos) const +{ + QList stops; + double posY = m_handleSize / 2; + for (QtGradientStop *stop : m_stops) { + double posX = toViewport(stop->position()); + + double x = viewportPos.x() - posX; + double y = viewportPos.y() - posY; + + if ((m_handleSize * m_handleSize / 4) > (x * x + y * y)) + stops.append(stop); + } + return stops; +} + +void QtGradientStopsWidgetPrivate::setupMove(QtGradientStop *stop, int x) +{ + m_model->setCurrentStop(stop); + + int viewportX = qRound(toViewport(stop->position())); + m_moveOffset = x - viewportX; + + const auto stops = m_stops; + m_stops.clear(); + for (QtGradientStop *s : stops) { + if (m_model->isSelected(s) || s == stop) { + m_moveStops[s] = s->position() - stop->position(); + m_stops.append(s); + } else { + m_moveOriginal[s->position()] = s->color(); + } + } + for (QtGradientStop *s : stops) { + if (!m_model->isSelected(s)) + m_stops.append(s); + } + m_stops.removeAll(stop); + m_stops.prepend(stop); +} + +void QtGradientStopsWidgetPrivate::ensureVisible(double x) +{ + double viewX = toViewport(x); + if (viewX < 0 || viewX > q_ptr->viewport()->size().width()) { + int max = q_ptr->horizontalScrollBar()->maximum(); + int newVal = qRound(x * (max + m_scaleFactor) - m_scaleFactor / 2); + q_ptr->horizontalScrollBar()->setValue(newVal); + } +} + +void QtGradientStopsWidgetPrivate::ensureVisible(QtGradientStop *stop) +{ + if (!stop) + return; + ensureVisible(stop->position()); +} + +QtGradientStop *QtGradientStopsWidgetPrivate::newStop(const QPoint &viewportPos) +{ + QtGradientStop *copyStop = stopAt(viewportPos); + double posX = fromViewport(viewportPos.x()); + QtGradientStop *stop = m_model->at(posX); + if (!stop) { + QColor newColor; + if (copyStop) + newColor = copyStop->color(); + else + newColor = m_model->color(posX); + if (!newColor.isValid()) + newColor = Qt::white; + stop = m_model->addStop(posX, newColor); + } + return stop; +} + +void QtGradientStopsWidgetPrivate::slotStopAdded(QtGradientStop *stop) +{ + m_stops.append(stop); + q_ptr->viewport()->update(); +} + +void QtGradientStopsWidgetPrivate::slotStopRemoved(QtGradientStop *stop) +{ + m_stops.removeAll(stop); + q_ptr->viewport()->update(); +} + +void QtGradientStopsWidgetPrivate::slotStopMoved(QtGradientStop *stop, qreal newPos) +{ + Q_UNUSED(stop); + Q_UNUSED(newPos); + q_ptr->viewport()->update(); +} + +void QtGradientStopsWidgetPrivate::slotStopsSwapped(QtGradientStop *stop1, QtGradientStop *stop2) +{ + Q_UNUSED(stop1); + Q_UNUSED(stop2); + q_ptr->viewport()->update(); +} + +void QtGradientStopsWidgetPrivate::slotStopChanged(QtGradientStop *stop, const QColor &newColor) +{ + Q_UNUSED(stop); + Q_UNUSED(newColor); + q_ptr->viewport()->update(); +} + +void QtGradientStopsWidgetPrivate::slotStopSelected(QtGradientStop *stop, bool selected) +{ + Q_UNUSED(stop); + Q_UNUSED(selected); + q_ptr->viewport()->update(); +} + +void QtGradientStopsWidgetPrivate::slotCurrentStopChanged(QtGradientStop *stop) +{ + Q_UNUSED(stop); + + if (!m_model) + return; + q_ptr->viewport()->update(); + if (stop) { + m_stops.removeAll(stop); + m_stops.prepend(stop); + } +} + +void QtGradientStopsWidgetPrivate::slotNewStop() +{ + if (!m_model) + return; + + QtGradientStop *stop = newStop(m_clickPos); + + if (!stop) + return; + + m_model->clearSelection(); + m_model->selectStop(stop, true); + m_model->setCurrentStop(stop); +} + +void QtGradientStopsWidgetPrivate::slotDelete() +{ + if (!m_model) + return; + + m_model->deleteStops(); +} + +void QtGradientStopsWidgetPrivate::slotFlipAll() +{ + if (!m_model) + return; + + m_model->flipAll(); +} + +void QtGradientStopsWidgetPrivate::slotSelectAll() +{ + if (!m_model) + return; + + m_model->selectAll(); +} + +void QtGradientStopsWidgetPrivate::slotZoomIn() +{ + double newZoom = q_ptr->zoom() * 2; + if (newZoom > 100) + newZoom = 100; + if (newZoom == q_ptr->zoom()) + return; + + q_ptr->setZoom(newZoom); + emit q_ptr->zoomChanged(q_ptr->zoom()); +} + +void QtGradientStopsWidgetPrivate::slotZoomOut() +{ + double newZoom = q_ptr->zoom() / 2; + if (newZoom < 1) + newZoom = 1; + if (newZoom == q_ptr->zoom()) + return; + + q_ptr->setZoom(newZoom); + emit q_ptr->zoomChanged(q_ptr->zoom()); +} + +void QtGradientStopsWidgetPrivate::slotResetZoom() +{ + if (1 == q_ptr->zoom()) + return; + + q_ptr->setZoom(1); + emit q_ptr->zoomChanged(1); +} + +QtGradientStopsWidget::QtGradientStopsWidget(QWidget *parent) + : QAbstractScrollArea(parent), d_ptr(new QtGradientStopsWidgetPrivate) +{ + d_ptr->q_ptr = this; + d_ptr->m_backgroundCheckered = true; + d_ptr->m_model = 0; + d_ptr->m_handleSize = 25.0; + d_ptr->m_scaleFactor = 1000; + d_ptr->m_moving = false; + d_ptr->m_zoom = 1; + d_ptr->m_rubber = new QRubberBand(QRubberBand::Rectangle, this); +#ifndef QT_NO_DRAGANDDROP + d_ptr->m_dragStop = 0; + d_ptr->m_changedStop = 0; + d_ptr->m_clonedStop = 0; + d_ptr->m_dragModel = 0; +#endif + setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); + horizontalScrollBar()->setRange(0, (int)(d_ptr->m_scaleFactor * (d_ptr->m_zoom - 1) + 0.5)); + horizontalScrollBar()->setPageStep(d_ptr->m_scaleFactor); + horizontalScrollBar()->setSingleStep(4); + viewport()->setAutoFillBackground(false); + + setAcceptDrops(true); + + setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred)); +} + +QtGradientStopsWidget::~QtGradientStopsWidget() +{ +} + +QSize QtGradientStopsWidget::sizeHint() const +{ + return QSize(qRound(2 * d_ptr->m_handleSize), qRound(3 * d_ptr->m_handleSize) + horizontalScrollBar()->sizeHint().height()); +} + +QSize QtGradientStopsWidget::minimumSizeHint() const +{ + return QSize(qRound(2 * d_ptr->m_handleSize), qRound(3 * d_ptr->m_handleSize) + horizontalScrollBar()->minimumSizeHint().height()); +} + +void QtGradientStopsWidget::setBackgroundCheckered(bool checkered) +{ + if (d_ptr->m_backgroundCheckered == checkered) + return; + d_ptr->m_backgroundCheckered = checkered; + update(); +} + +bool QtGradientStopsWidget::isBackgroundCheckered() const +{ + return d_ptr->m_backgroundCheckered; +} + +void QtGradientStopsWidget::setGradientStopsModel(QtGradientStopsModel *model) +{ + d_ptr->setGradientStopsModel(model); +} + +void QtGradientStopsWidget::mousePressEvent(QMouseEvent *e) +{ + typedef QtGradientStopsModel::PositionStopMap PositionStopMap; + if (!d_ptr->m_model) + return; + + if (e->button() != Qt::LeftButton) + return; + + d_ptr->m_moving = true; + + d_ptr->m_moveStops.clear(); + d_ptr->m_moveOriginal.clear(); + d_ptr->m_clickPos = e->position().toPoint(); + QtGradientStop *stop = d_ptr->stopAt(e->position().toPoint()); + if (stop) { + if (e->modifiers() & Qt::ControlModifier) { + d_ptr->m_model->selectStop(stop, !d_ptr->m_model->isSelected(stop)); + } else if (e->modifiers() & Qt::ShiftModifier) { + QtGradientStop *oldCurrent = d_ptr->m_model->currentStop(); + if (oldCurrent) { + PositionStopMap stops = d_ptr->m_model->stops(); + PositionStopMap::ConstIterator itSt = stops.constFind(oldCurrent->position()); + if (itSt != stops.constEnd()) { + while (itSt != stops.constFind(stop->position())) { + d_ptr->m_model->selectStop(itSt.value(), true); + if (oldCurrent->position() < stop->position()) + ++itSt; + else + --itSt; + } + } + } + d_ptr->m_model->selectStop(stop, true); + } else { + if (!d_ptr->m_model->isSelected(stop)) { + d_ptr->m_model->clearSelection(); + d_ptr->m_model->selectStop(stop, true); + } + } + d_ptr->setupMove(stop, e->position().toPoint().x()); + } else { + d_ptr->m_model->clearSelection(); + d_ptr->m_rubber->setGeometry(QRect(d_ptr->m_clickPos, QSize())); + d_ptr->m_rubber->show(); + } + viewport()->update(); +} + +void QtGradientStopsWidget::mouseReleaseEvent(QMouseEvent *e) +{ + if (!d_ptr->m_model) + return; + + if (e->button() != Qt::LeftButton) + return; + + d_ptr->m_moving = false; + d_ptr->m_rubber->hide(); + d_ptr->m_moveStops.clear(); + d_ptr->m_moveOriginal.clear(); +} + +void QtGradientStopsWidget::mouseMoveEvent(QMouseEvent *e) +{ + typedef QtGradientStopsWidgetPrivate::PositionColorMap PositionColorMap; + typedef QtGradientStopsModel::PositionStopMap PositionStopMap; + typedef QtGradientStopsWidgetPrivate::StopPositionMap StopPositionMap; + if (!d_ptr->m_model) + return; + + if (!(e->buttons() & Qt::LeftButton)) + return; + + if (!d_ptr->m_moving) + return; + + if (!d_ptr->m_moveStops.isEmpty()) { + double maxOffset = 0.0; + double minOffset = 0.0; + bool first = true; + StopPositionMap::ConstIterator itStop = d_ptr->m_moveStops.constBegin(); + while (itStop != d_ptr->m_moveStops.constEnd()) { + double offset = itStop.value(); + + if (first) { + maxOffset = offset; + minOffset = offset; + first = false; + } else { + if (maxOffset < offset) + maxOffset = offset; + else if (minOffset > offset) + minOffset = offset; + } + ++itStop; + } + + double viewportMin = d_ptr->toViewport(-minOffset); + double viewportMax = d_ptr->toViewport(1.0 - maxOffset); + + PositionStopMap newPositions; + + int viewportX = e->position().toPoint().x() - d_ptr->m_moveOffset; + + if (viewportX > viewport()->size().width()) + viewportX = viewport()->size().width(); + else if (viewportX < 0) + viewportX = 0; + + double posX = d_ptr->fromViewport(viewportX); + + if (viewportX > viewportMax) + posX = 1.0 - maxOffset; + else if (viewportX < viewportMin) + posX = -minOffset; + + itStop = d_ptr->m_moveStops.constBegin(); + while (itStop != d_ptr->m_moveStops.constEnd()) { + QtGradientStop *stop = itStop.key(); + + newPositions[posX + itStop.value()] = stop; + + ++itStop; + } + + bool forward = true; + PositionStopMap::ConstIterator itNewPos = newPositions.constBegin(); + if (itNewPos.value()->position() < itNewPos.key()) + forward = false; + + itNewPos = forward ? newPositions.constBegin() : newPositions.constEnd(); + while (itNewPos != (forward ? newPositions.constEnd() : newPositions.constBegin())) { + if (!forward) + --itNewPos; + QtGradientStop *stop = itNewPos.value(); + double newPos = itNewPos.key(); + if (newPos > 1) + newPos = 1; + else if (newPos < 0) + newPos = 0; + + QtGradientStop *existingStop = d_ptr->m_model->at(newPos); + if (existingStop && !d_ptr->m_moveStops.contains(existingStop)) + d_ptr->m_model->removeStop(existingStop); + d_ptr->m_model->moveStop(stop, newPos); + + if (forward) + ++itNewPos; + } + + PositionColorMap::ConstIterator itOld = d_ptr->m_moveOriginal.constBegin(); + while (itOld != d_ptr->m_moveOriginal.constEnd()) { + double position = itOld.key(); + if (!d_ptr->m_model->at(position)) + d_ptr->m_model->addStop(position, itOld.value()); + + ++itOld; + } + + } else { + QRect r(QRect(d_ptr->m_clickPos, e->position().toPoint()).normalized()); + r.translate(1, 0); + d_ptr->m_rubber->setGeometry(r); + //d_ptr->m_model->clearSelection(); + + int xv1 = d_ptr->m_clickPos.x(); + int xv2 = e->position().toPoint().x(); + if (xv1 > xv2) { + int temp = xv1; + xv1 = xv2; + xv2 = temp; + } + int yv1 = d_ptr->m_clickPos.y(); + int yv2 = e->position().toPoint().y(); + if (yv1 > yv2) { + int temp = yv1; + yv1 = yv2; + yv2 = temp; + } + + QPoint p1, p2; + + if (yv2 < d_ptr->m_handleSize / 2) { + p1 = QPoint(xv1, yv2); + p2 = QPoint(xv2, yv2); + } else if (yv1 > d_ptr->m_handleSize / 2) { + p1 = QPoint(xv1, yv1); + p2 = QPoint(xv2, yv1); + } else { + p1 = QPoint(xv1, qRound(d_ptr->m_handleSize / 2)); + p2 = QPoint(xv2, qRound(d_ptr->m_handleSize / 2)); + } + + const auto beginList = d_ptr->stopsAt(p1); + const auto endList = d_ptr->stopsAt(p2); + + double x1 = d_ptr->fromViewport(xv1); + double x2 = d_ptr->fromViewport(xv2); + + for (QtGradientStop *stop : std::as_const(d_ptr->m_stops)) { + if ((stop->position() >= x1 && stop->position() <= x2) || + beginList.contains(stop) || endList.contains(stop)) + d_ptr->m_model->selectStop(stop, true); + else + d_ptr->m_model->selectStop(stop, false); + } + } +} + +void QtGradientStopsWidget::mouseDoubleClickEvent(QMouseEvent *e) +{ + if (!d_ptr->m_model) + return; + + if (e->button() != Qt::LeftButton) + return; + + if (d_ptr->m_clickPos != e->position().toPoint()) { + mousePressEvent(e); + return; + } + d_ptr->m_moving = true; + d_ptr->m_moveStops.clear(); + d_ptr->m_moveOriginal.clear(); + + QtGradientStop *stop = d_ptr->newStop(e->position().toPoint()); + + if (!stop) + return; + + d_ptr->m_model->clearSelection(); + d_ptr->m_model->selectStop(stop, true); + + d_ptr->setupMove(stop, e->position().toPoint().x()); + + viewport()->update(); +} + +void QtGradientStopsWidget::keyPressEvent(QKeyEvent *e) +{ + typedef QtGradientStopsModel::PositionStopMap PositionStopMap; + if (!d_ptr->m_model) + return; + + if (e->key() == Qt::Key_Delete || e->key() == Qt::Key_Backspace) { + d_ptr->m_model->deleteStops(); + } else if (e->key() == Qt::Key_Left || e->key() == Qt::Key_Right || + e->key() == Qt::Key_Home || e->key() == Qt::Key_End) { + PositionStopMap stops = d_ptr->m_model->stops(); + if (stops.isEmpty()) + return; + QtGradientStop *newCurrent = nullptr; + QtGradientStop *current = d_ptr->m_model->currentStop(); + if (!current || e->key() == Qt::Key_Home || e->key() == Qt::Key_End) { + if (e->key() == Qt::Key_Left || e->key() == Qt::Key_Home) + newCurrent = stops.constBegin().value(); + else if (e->key() == Qt::Key_Right || e->key() == Qt::Key_End) + newCurrent = (--stops.constEnd()).value(); + } else { + PositionStopMap::ConstIterator itStop = stops.constBegin(); + while (itStop.value() != current) + ++itStop; + if (e->key() == Qt::Key_Left && itStop != stops.constBegin()) + --itStop; + else if (e->key() == Qt::Key_Right && itStop != --stops.constEnd()) + ++itStop; + newCurrent = itStop.value(); + } + d_ptr->m_model->clearSelection(); + d_ptr->m_model->selectStop(newCurrent, true); + d_ptr->m_model->setCurrentStop(newCurrent); + d_ptr->ensureVisible(newCurrent); + } else if (e->key() == Qt::Key_A) { + if (e->modifiers() & Qt::ControlModifier) + d_ptr->m_model->selectAll(); + } +} + +void QtGradientStopsWidget::paintEvent(QPaintEvent *e) +{ + Q_UNUSED(e); + if (!d_ptr->m_model) + return; + + QtGradientStopsModel *model = d_ptr->m_model; +#ifndef QT_NO_DRAGANDDROP + if (d_ptr->m_dragModel) + model = d_ptr->m_dragModel; +#endif + + QSize size = viewport()->size(); + int w = size.width(); + double h = size.height() - d_ptr->m_handleSize; + if (w <= 0) + return; + + QPixmap pix(size); + QPainter p; + + if (d_ptr->m_backgroundCheckered) { + int pixSize = 20; + QPixmap pm(2 * pixSize, 2 * pixSize); + QPainter pmp(&pm); + pmp.fillRect(0, 0, pixSize, pixSize, Qt::white); + pmp.fillRect(pixSize, pixSize, pixSize, pixSize, Qt::white); + pmp.fillRect(0, pixSize, pixSize, pixSize, Qt::black); + pmp.fillRect(pixSize, 0, pixSize, pixSize, Qt::black); + + p.begin(&pix); + p.setBrushOrigin((size.width() % pixSize + pixSize) / 2, (size.height() % pixSize + pixSize) / 2); + p.fillRect(viewport()->rect(), pm); + p.setBrushOrigin(0, 0); + } else { + p.begin(viewport()); + } + + const double viewBegin = double(w) * horizontalScrollBar()->value() / d_ptr->m_scaleFactor; + + int val = horizontalScrollBar()->value(); + int max = horizontalScrollBar()->maximum(); + + const double begin = double(val) / (d_ptr->m_scaleFactor + max); + const double end = double(val + d_ptr->m_scaleFactor) / (d_ptr->m_scaleFactor + max); + double width = end - begin; + + if (h > 0) { + QLinearGradient lg(0, 0, w, 0); + QMap stops = model->stops(); + for (auto itStop = stops.cbegin(), send = stops.cend(); itStop != send; ++itStop) { + QtGradientStop *stop = itStop.value(); + double pos = stop->position(); + if (pos >= begin && pos <= end) { + double gradPos = (pos - begin) / width; + QColor c = stop->color(); + lg.setColorAt(gradPos, c); + } + //lg.setColorAt(stop->position(), stop->color()); + } + lg.setColorAt(0, model->color(begin)); + lg.setColorAt(1, model->color(end)); + QImage img(w, 1, QImage::Format_ARGB32_Premultiplied); + QPainter p1(&img); + p1.setCompositionMode(QPainter::CompositionMode_Source); + + /* + if (viewBegin != 0) + p1.translate(-viewBegin, 0); + if (d_ptr->m_zoom != 1) + p1.scale(d_ptr->m_zoom, 1); + */ + p1.fillRect(0, 0, w, 1, lg); + + p.fillRect(QRectF(0, d_ptr->m_handleSize, w, h), QPixmap::fromImage(img)); + } + + + double handleWidth = d_ptr->m_handleSize * d_ptr->m_scaleFactor / (w * (d_ptr->m_scaleFactor + max)); + + QColor insideColor = QColor::fromRgb(0x20, 0x20, 0x20, 0xFF); + QColor drawColor; + QColor back1 = QColor(Qt::lightGray); + QColor back2 = QColor(Qt::darkGray); + QColor back = QColor::fromRgb((back1.red() + back2.red()) / 2, + (back1.green() + back2.green()) / 2, + (back1.blue() + back2.blue()) / 2); + + QPen pen; + p.setRenderHint(QPainter::Antialiasing); + for (auto rit = d_ptr->m_stops.crbegin(), rend = d_ptr->m_stops.crend(); rit != rend; ++rit) { + QtGradientStop *stop = *rit; + double x = stop->position(); + if (x >= begin - handleWidth / 2 && x <= end + handleWidth / 2) { + double viewX = x * w * (d_ptr->m_scaleFactor + max) / d_ptr->m_scaleFactor - viewBegin; + p.save(); + QColor c = stop->color(); +#ifndef QT_NO_DRAGANDDROP + if (stop == d_ptr->m_dragStop) + c = d_ptr->m_dragColor; +#endif + if ((0.3 * c.redF() + 0.59 * c.greenF() + 0.11 * c.blueF()) * c.alphaF() + + (0.3 * back.redF() + 0.59 * back.greenF() + 0.11 * back.blueF()) * (1.0 - c.alphaF()) < 0.5) { + drawColor = QColor::fromRgb(0xC0, 0xC0, 0xC0, 0xB0); + } else { + drawColor = QColor::fromRgb(0x40, 0x40, 0x40, 0x80); + } + QRectF rect(viewX - d_ptr->m_handleSize / 2, 0, d_ptr->m_handleSize, d_ptr->m_handleSize); + rect.adjust(0.5, 0.5, -0.5, -0.5); + if (h > 0) { + pen.setWidthF(1); + QLinearGradient lg(0, d_ptr->m_handleSize, 0, d_ptr->m_handleSize + h / 2); + lg.setColorAt(0, drawColor); + QColor alphaZero = drawColor; + alphaZero.setAlpha(0); + lg.setColorAt(1, alphaZero); + pen.setBrush(lg); + p.setPen(pen); + p.drawLine(QPointF(viewX, d_ptr->m_handleSize), QPointF(viewX, d_ptr->m_handleSize + h / 2)); + + pen.setWidthF(1); + pen.setBrush(drawColor); + p.setPen(pen); + QRectF r1 = rect.adjusted(0.5, 0.5, -0.5, -0.5); + QRectF r2 = rect.adjusted(1.5, 1.5, -1.5, -1.5); + QColor inColor = QColor::fromRgb(0x80, 0x80, 0x80, 0x80); + if (!d_ptr->m_model->isSelected(stop)) { + p.setBrush(c); + p.drawEllipse(rect); + } else { + pen.setBrush(insideColor); + pen.setWidthF(2); + p.setPen(pen); + p.setBrush(Qt::NoBrush); + p.drawEllipse(r1); + + pen.setBrush(inColor); + pen.setWidthF(1); + p.setPen(pen); + p.setBrush(c); + p.drawEllipse(r2); + } + + if (d_ptr->m_model->currentStop() == stop) { + p.setBrush(Qt::NoBrush); + pen.setWidthF(5); + pen.setBrush(drawColor); + int corr = 4; + if (!d_ptr->m_model->isSelected(stop)) { + corr = 3; + pen.setWidthF(7); + } + p.setPen(pen); + p.drawEllipse(rect.adjusted(corr, corr, -corr, -corr)); + } + + } + p.restore(); + } + } + if (d_ptr->m_backgroundCheckered) { + p.end(); + p.begin(viewport()); + p.drawPixmap(0, 0, pix); + } + p.end(); +} + +void QtGradientStopsWidget::focusInEvent(QFocusEvent *e) +{ + Q_UNUSED(e); + viewport()->update(); +} + +void QtGradientStopsWidget::focusOutEvent(QFocusEvent *e) +{ + Q_UNUSED(e); + viewport()->update(); +} + +void QtGradientStopsWidget::contextMenuEvent(QContextMenuEvent *e) +{ + if (!d_ptr->m_model) + return; + + d_ptr->m_clickPos = e->pos(); + + QMenu menu(this); + QAction *newStopAction = new QAction(tr("New Stop"), &menu); + QAction *deleteAction = new QAction(tr("Delete"), &menu); + QAction *flipAllAction = new QAction(tr("Flip All"), &menu); + QAction *selectAllAction = new QAction(tr("Select All"), &menu); + QAction *zoomInAction = new QAction(tr("Zoom In"), &menu); + QAction *zoomOutAction = new QAction(tr("Zoom Out"), &menu); + QAction *zoomAllAction = new QAction(tr("Reset Zoom"), &menu); + if (d_ptr->m_model->selectedStops().isEmpty() && !d_ptr->m_model->currentStop()) + deleteAction->setEnabled(false); + if (zoom() <= 1) { + zoomOutAction->setEnabled(false); + zoomAllAction->setEnabled(false); + } else if (zoom() >= 100) { + zoomInAction->setEnabled(false); + } + connect(newStopAction, &QAction::triggered, d_ptr.data(), &QtGradientStopsWidgetPrivate::slotNewStop); + connect(deleteAction, &QAction::triggered, d_ptr.data(), &QtGradientStopsWidgetPrivate::slotDelete); + connect(flipAllAction, &QAction::triggered, d_ptr.data(), &QtGradientStopsWidgetPrivate::slotFlipAll); + connect(selectAllAction, &QAction::triggered, d_ptr.data(), &QtGradientStopsWidgetPrivate::slotSelectAll); + connect(zoomInAction, &QAction::triggered, d_ptr.data(), &QtGradientStopsWidgetPrivate::slotZoomIn); + connect(zoomOutAction, &QAction::triggered, d_ptr.data(), &QtGradientStopsWidgetPrivate::slotZoomOut); + connect(zoomAllAction, &QAction::triggered, d_ptr.data(), &QtGradientStopsWidgetPrivate::slotResetZoom); + menu.addAction(newStopAction); + menu.addAction(deleteAction); + menu.addAction(flipAllAction); + menu.addAction(selectAllAction); + menu.addSeparator(); + menu.addAction(zoomInAction); + menu.addAction(zoomOutAction); + menu.addAction(zoomAllAction); + menu.exec(e->globalPos()); +} + +void QtGradientStopsWidget::wheelEvent(QWheelEvent *e) +{ + int numDegrees = e->angleDelta().y() / 8; + int numSteps = numDegrees / 15; + + int shift = numSteps; + if (shift < 0) + shift = -shift; + int pow = 1 << shift; + //const double c = 0.7071067; // 2 steps per doubled value + const double c = 0.5946036; // 4 steps pre doubled value + // in general c = pow(2, 1 / n) / 2; where n is the step + double factor = pow * c; + + double newZoom = zoom(); + if (numSteps < 0) + newZoom /= factor; + else + newZoom *= factor; + if (newZoom > 100) + newZoom = 100; + if (newZoom < 1) + newZoom = 1; + + if (newZoom == zoom()) + return; + + setZoom(newZoom); + emit zoomChanged(zoom()); +} + +#ifndef QT_NO_DRAGANDDROP +void QtGradientStopsWidget::dragEnterEvent(QDragEnterEvent *event) +{ + const QMimeData *mime = event->mimeData(); + if (!mime->hasColor()) + return; + event->accept(); + d_ptr->m_dragModel = d_ptr->m_model->clone(); + + d_ptr->m_dragColor = qvariant_cast(mime->colorData()); + update(); +} + +void QtGradientStopsWidget::dragMoveEvent(QDragMoveEvent *event) +{ + QRectF rect = viewport()->rect(); + rect.adjust(0, d_ptr->m_handleSize, 0, 0); + double x = d_ptr->fromViewport(event->position().toPoint().x()); + QtGradientStop *dragStop = d_ptr->stopAt(event->position().toPoint()); + if (dragStop) { + event->accept(); + d_ptr->removeClonedStop(); + d_ptr->changeStop(dragStop->position()); + } else if (rect.contains(event->position().toPoint())) { + event->accept(); + if (d_ptr->m_model->at(x)) { + d_ptr->removeClonedStop(); + d_ptr->changeStop(x); + } else { + d_ptr->restoreChangedStop(); + d_ptr->cloneStop(x); + } + } else { + event->ignore(); + d_ptr->removeClonedStop(); + d_ptr->restoreChangedStop(); + } + + update(); +} + +void QtGradientStopsWidget::dragLeaveEvent(QDragLeaveEvent *event) +{ + event->accept(); + d_ptr->clearDrag(); + update(); +} + +void QtGradientStopsWidget::dropEvent(QDropEvent *event) +{ + event->accept(); + if (!d_ptr->m_dragModel) + return; + + if (d_ptr->m_changedStop) + d_ptr->m_model->changeStop(d_ptr->m_model->at(d_ptr->m_changedStop->position()), d_ptr->m_dragColor); + else if (d_ptr->m_clonedStop) + d_ptr->m_model->addStop(d_ptr->m_clonedStop->position(), d_ptr->m_dragColor); + + d_ptr->clearDrag(); + update(); +} + +void QtGradientStopsWidgetPrivate::clearDrag() +{ + removeClonedStop(); + restoreChangedStop(); + delete m_dragModel; + m_dragModel = 0; +} + +void QtGradientStopsWidgetPrivate::removeClonedStop() +{ + if (!m_clonedStop) + return; + m_dragModel->removeStop(m_clonedStop); + m_clonedStop = 0; +} + +void QtGradientStopsWidgetPrivate::restoreChangedStop() +{ + if (!m_changedStop) + return; + m_dragModel->changeStop(m_changedStop, m_model->at(m_changedStop->position())->color()); + m_changedStop = 0; + m_dragStop = 0; +} + +void QtGradientStopsWidgetPrivate::changeStop(qreal pos) +{ + QtGradientStop *stop = m_dragModel->at(pos); + if (!stop) + return; + + m_dragModel->changeStop(stop, m_dragColor); + m_changedStop = stop; + m_dragStop = m_model->at(stop->position()); +} + +void QtGradientStopsWidgetPrivate::cloneStop(qreal pos) +{ + if (m_clonedStop) { + m_dragModel->moveStop(m_clonedStop, pos); + return; + } + QtGradientStop *stop = m_dragModel->at(pos); + if (stop) + return; + + m_clonedStop = m_dragModel->addStop(pos, m_dragColor); +} + +#endif + +void QtGradientStopsWidget::setZoom(double zoom) +{ + double z = zoom; + if (z < 1) + z = 1; + else if (z > 100) + z = 100; + + if (d_ptr->m_zoom == z) + return; + + d_ptr->m_zoom = z; + int oldMax = horizontalScrollBar()->maximum(); + int oldVal = horizontalScrollBar()->value(); + horizontalScrollBar()->setRange(0, qRound(d_ptr->m_scaleFactor * (d_ptr->m_zoom - 1))); + int newMax = horizontalScrollBar()->maximum(); + const double newVal = (oldVal + double(d_ptr->m_scaleFactor) / 2) * (newMax + d_ptr->m_scaleFactor) + / (oldMax + d_ptr->m_scaleFactor) - double(d_ptr->m_scaleFactor) / 2; + horizontalScrollBar()->setValue(qRound(newVal)); + viewport()->update(); +} + +double QtGradientStopsWidget::zoom() const +{ + return d_ptr->m_zoom; +} + +QT_END_NAMESPACE + +#include "qtgradientstopswidget.moc" diff --git a/src/shared/qtgradienteditor/qtgradientstopswidget.h b/src/shared/qtgradienteditor/qtgradientstopswidget.h new file mode 100644 index 0000000..57db5a3 --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientstopswidget.h @@ -0,0 +1,62 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTGRADIENTSTOPSWIDGET_H +#define QTGRADIENTSTOPSWIDGET_H + +#include + +QT_BEGIN_NAMESPACE + +class QtGradientStopsModel; +class QtGradientStopsWidgetPrivate; + +class QtGradientStopsWidget : public QAbstractScrollArea +{ + Q_OBJECT + Q_PROPERTY(bool backgroundCheckered READ isBackgroundCheckered WRITE setBackgroundCheckered) +public: + QtGradientStopsWidget(QWidget *parent = 0); + ~QtGradientStopsWidget(); + + QSize minimumSizeHint() const override; + QSize sizeHint() const override; + + bool isBackgroundCheckered() const; + void setBackgroundCheckered(bool checkered); + + void setGradientStopsModel(QtGradientStopsModel *model); + + void setZoom(double zoom); + double zoom() const; + +signals: + void zoomChanged(double zoom); + +protected: + void paintEvent(QPaintEvent *e) override; + void mousePressEvent(QMouseEvent *e) override; + void mouseReleaseEvent(QMouseEvent *e) override; + void mouseMoveEvent(QMouseEvent *e) override; + void mouseDoubleClickEvent(QMouseEvent *e) override; + void keyPressEvent(QKeyEvent *e) override; + void focusInEvent(QFocusEvent *e) override; + void focusOutEvent(QFocusEvent *e) override; + void contextMenuEvent(QContextMenuEvent *e) override; + void wheelEvent(QWheelEvent *e) override; +#ifndef QT_NO_DRAGANDDROP + void dragEnterEvent(QDragEnterEvent *event) override; + void dragMoveEvent(QDragMoveEvent *event) override; + void dragLeaveEvent(QDragLeaveEvent *event) override; + void dropEvent(QDropEvent *event) override; +#endif + +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtGradientStopsWidget) + Q_DISABLE_COPY_MOVE(QtGradientStopsWidget) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtgradienteditor/qtgradientutils.cpp b/src/shared/qtgradienteditor/qtgradientutils.cpp new file mode 100644 index 0000000..1ac43ce --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientutils.cpp @@ -0,0 +1,380 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtgradientutils.h" +#include "qtgradientmanager.h" +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +static QString gradientTypeToString(QGradient::Type type) +{ + if (type == QGradient::LinearGradient) + return QLatin1String("LinearGradient"); + if (type == QGradient::RadialGradient) + return QLatin1String("RadialGradient"); + if (type == QGradient::ConicalGradient) + return QLatin1String("ConicalGradient"); + return QLatin1String("NoGradient"); +} + +static QGradient::Type stringToGradientType(const QString &name) +{ + if (name == QLatin1String("LinearGradient")) + return QGradient::LinearGradient; + if (name == QLatin1String("RadialGradient")) + return QGradient::RadialGradient; + if (name == QLatin1String("ConicalGradient")) + return QGradient::ConicalGradient; + return QGradient::NoGradient; +} + +static QString gradientSpreadToString(QGradient::Spread spread) +{ + if (spread == QGradient::PadSpread) + return QLatin1String("PadSpread"); + if (spread == QGradient::RepeatSpread) + return QLatin1String("RepeatSpread"); + if (spread == QGradient::ReflectSpread) + return QLatin1String("ReflectSpread"); + return QLatin1String("PadSpread"); +} + +static QGradient::Spread stringToGradientSpread(const QString &name) +{ + if (name == QLatin1String("PadSpread")) + return QGradient::PadSpread; + if (name == QLatin1String("RepeatSpread")) + return QGradient::RepeatSpread; + if (name == QLatin1String("ReflectSpread")) + return QGradient::ReflectSpread; + return QGradient::PadSpread; +} + +static QString gradientCoordinateModeToString(QGradient::CoordinateMode mode) +{ + if (mode == QGradient::LogicalMode) + return QLatin1String("LogicalMode"); + if (mode == QGradient::StretchToDeviceMode) + return QLatin1String("StretchToDeviceMode"); + if (mode == QGradient::ObjectBoundingMode) + return QLatin1String("ObjectBoundingMode"); + return QLatin1String("StretchToDeviceMode"); +} + +static QGradient::CoordinateMode stringToGradientCoordinateMode(const QString &name) +{ + if (name == QLatin1String("LogicalMode")) + return QGradient::LogicalMode; + if (name == QLatin1String("StretchToDeviceMode")) + return QGradient::StretchToDeviceMode; + if (name == QLatin1String("ObjectBoundingMode")) + return QGradient::ObjectBoundingMode; + return QGradient::StretchToDeviceMode; +} + +static QDomElement saveColor(QDomDocument &doc, const QColor &color) +{ + QDomElement colorElem = doc.createElement(QLatin1String("colorData")); + + colorElem.setAttribute(QLatin1String("r"), QString::number(color.red())); + colorElem.setAttribute(QLatin1String("g"), QString::number(color.green())); + colorElem.setAttribute(QLatin1String("b"), QString::number(color.blue())); + colorElem.setAttribute(QLatin1String("a"), QString::number(color.alpha())); + + return colorElem; +} + +static QDomElement saveGradientStop(QDomDocument &doc, const QGradientStop &stop) +{ + QDomElement stopElem = doc.createElement(QLatin1String("stopData")); + + stopElem.setAttribute(QLatin1String("position"), QString::number(stop.first)); + + const QDomElement colorElem = saveColor(doc, stop.second); + stopElem.appendChild(colorElem); + + return stopElem; +} + +static QDomElement saveGradient(QDomDocument &doc, const QGradient &gradient) +{ + QDomElement gradElem = doc.createElement(QLatin1String("gradientData")); + + const QGradient::Type type = gradient.type(); + gradElem.setAttribute(QLatin1String("type"), gradientTypeToString(type)); + gradElem.setAttribute(QLatin1String("spread"), gradientSpreadToString(gradient.spread())); + gradElem.setAttribute(QLatin1String("coordinateMode"), gradientCoordinateModeToString(gradient.coordinateMode())); + + const QGradientStops stops = gradient.stops(); + for (const QGradientStop &stop : stops) + gradElem.appendChild(saveGradientStop(doc, stop)); + + if (type == QGradient::LinearGradient) { + const QLinearGradient &g = *static_cast(&gradient); + gradElem.setAttribute(QLatin1String("startX"), QString::number(g.start().x())); + gradElem.setAttribute(QLatin1String("startY"), QString::number(g.start().y())); + gradElem.setAttribute(QLatin1String("endX"), QString::number(g.finalStop().x())); + gradElem.setAttribute(QLatin1String("endY"), QString::number(g.finalStop().y())); + } else if (type == QGradient::RadialGradient) { + const QRadialGradient &g = *static_cast(&gradient); + gradElem.setAttribute(QLatin1String("centerX"), QString::number(g.center().x())); + gradElem.setAttribute(QLatin1String("centerY"), QString::number(g.center().y())); + gradElem.setAttribute(QLatin1String("focalX"), QString::number(g.focalPoint().x())); + gradElem.setAttribute(QLatin1String("focalY"), QString::number(g.focalPoint().y())); + gradElem.setAttribute(QLatin1String("radius"), QString::number(g.radius())); + } else if (type == QGradient::ConicalGradient) { + const QConicalGradient &g = *static_cast(&gradient); + gradElem.setAttribute(QLatin1String("centerX"), QString::number(g.center().x())); + gradElem.setAttribute(QLatin1String("centerY"), QString::number(g.center().y())); + gradElem.setAttribute(QLatin1String("angle"), QString::number(g.angle())); + } + + return gradElem; +} + +static QColor loadColor(const QDomElement &elem) +{ + if (elem.tagName() != QLatin1String("colorData")) + return QColor(); + + return QColor(elem.attribute(QLatin1String("r")).toInt(), + elem.attribute(QLatin1String("g")).toInt(), + elem.attribute(QLatin1String("b")).toInt(), + elem.attribute(QLatin1String("a")).toInt()); +} + +static QGradientStop loadGradientStop(const QDomElement &elem) +{ + if (elem.tagName() != QLatin1String("stopData")) + return QGradientStop(); + + const qreal pos = static_cast(elem.attribute(QLatin1String("position")).toDouble()); + return qMakePair(pos, loadColor(elem.firstChild().toElement())); +} + +static QGradient loadGradient(const QDomElement &elem) +{ + if (elem.tagName() != QLatin1String("gradientData")) + return QLinearGradient(); + + const QGradient::Type type = stringToGradientType(elem.attribute(QLatin1String("type"))); + const QGradient::Spread spread = stringToGradientSpread(elem.attribute(QLatin1String("spread"))); + const QGradient::CoordinateMode mode = stringToGradientCoordinateMode(elem.attribute(QLatin1String("coordinateMode"))); + + QGradient gradient = QLinearGradient(); + + if (type == QGradient::LinearGradient) { + QLinearGradient g; + g.setStart(elem.attribute(QLatin1String("startX")).toDouble(), elem.attribute(QLatin1String("startY")).toDouble()); + g.setFinalStop(elem.attribute(QLatin1String("endX")).toDouble(), elem.attribute(QLatin1String("endY")).toDouble()); + gradient = g; + } else if (type == QGradient::RadialGradient) { + QRadialGradient g; + g.setCenter(elem.attribute(QLatin1String("centerX")).toDouble(), elem.attribute(QLatin1String("centerY")).toDouble()); + g.setFocalPoint(elem.attribute(QLatin1String("focalX")).toDouble(), elem.attribute(QLatin1String("focalY")).toDouble()); + g.setRadius(elem.attribute(QLatin1String("radius")).toDouble()); + gradient = g; + } else if (type == QGradient::ConicalGradient) { + QConicalGradient g; + g.setCenter(elem.attribute(QLatin1String("centerX")).toDouble(), elem.attribute(QLatin1String("centerY")).toDouble()); + g.setAngle(elem.attribute(QLatin1String("angle")).toDouble()); + gradient = g; + } + + QDomElement stopElem = elem.firstChildElement(); + while (!stopElem.isNull()) { + QGradientStop stop = loadGradientStop(stopElem); + + gradient.setColorAt(stop.first, stop.second); + + stopElem = stopElem.nextSiblingElement(); + } + + gradient.setSpread(spread); + gradient.setCoordinateMode(mode); + + return gradient; +} + +QString QtGradientUtils::saveState(const QtGradientManager *manager) +{ + QDomDocument doc; + + QDomElement rootElem = doc.createElement(QLatin1String("gradients")); + + QMap grads = manager->gradients(); + for (auto itGrad = grads.cbegin(), end = grads.cend(); itGrad != end; ++itGrad) { + QDomElement idElem = doc.createElement(QLatin1String("gradient")); + idElem.setAttribute(QLatin1String("name"), itGrad.key()); + QDomElement gradElem = saveGradient(doc, itGrad.value()); + idElem.appendChild(gradElem); + + rootElem.appendChild(idElem); + } + + doc.appendChild(rootElem); + + return doc.toString(); +} + +void QtGradientUtils::restoreState(QtGradientManager *manager, const QString &state) +{ + manager->clear(); + + QDomDocument doc; + doc.setContent(state); + + QDomElement rootElem = doc.documentElement(); + + QDomElement gradElem = rootElem.firstChildElement(); + while (!gradElem.isNull()) { + const QString name = gradElem.attribute(QLatin1String("name")); + const QGradient gradient = loadGradient(gradElem.firstChildElement()); + + manager->addGradient(name, gradient); + gradElem = gradElem.nextSiblingElement(); + } +} + +QPixmap QtGradientUtils::gradientPixmap(const QGradient &gradient, const QSize &size, bool checkeredBackground) +{ + QImage image(size, QImage::Format_ARGB32); + QPainter p(&image); + p.setCompositionMode(QPainter::CompositionMode_Source); + + if (checkeredBackground) { + int pixSize = 20; + QPixmap pm(2 * pixSize, 2 * pixSize); + + QPainter pmp(&pm); + pmp.fillRect(0, 0, pixSize, pixSize, Qt::lightGray); + pmp.fillRect(pixSize, pixSize, pixSize, pixSize, Qt::lightGray); + pmp.fillRect(0, pixSize, pixSize, pixSize, Qt::darkGray); + pmp.fillRect(pixSize, 0, pixSize, pixSize, Qt::darkGray); + + p.setBrushOrigin((size.width() % pixSize + pixSize) / 2, (size.height() % pixSize + pixSize) / 2); + p.fillRect(0, 0, size.width(), size.height(), pm); + p.setBrushOrigin(0, 0); + p.setCompositionMode(QPainter::CompositionMode_SourceOver); + } + + const qreal scaleFactor = 0.999999; + p.scale(scaleFactor, scaleFactor); + QGradient grad = gradient; + grad.setCoordinateMode(QGradient::StretchToDeviceMode); + p.fillRect(QRect(0, 0, size.width(), size.height()), grad); + p.drawRect(QRect(0, 0, size.width() - 1, size.height() - 1)); + + return QPixmap::fromImage(image); +} + +static QString styleSheetFillName(const QGradient &gradient) +{ + QString result; + + switch (gradient.type()) { + case QGradient::LinearGradient: + result += QLatin1String("qlineargradient"); + break; + case QGradient::RadialGradient: + result += QLatin1String("qradialgradient"); + break; + case QGradient::ConicalGradient: + result += QLatin1String("qconicalgradient"); + break; + default: + qWarning() << "QtGradientUtils::styleSheetFillName(): gradient type" << gradient.type() << "not supported!"; + break; + } + + return result; +} + +static QStringList styleSheetParameters(const QGradient &gradient) +{ + QStringList result; + + if (gradient.type() != QGradient::ConicalGradient) { + QString spread; + switch (gradient.spread()) { + case QGradient::PadSpread: + spread = QLatin1String("pad"); + break; + case QGradient::ReflectSpread: + spread = QLatin1String("reflect"); + break; + case QGradient::RepeatSpread: + spread = QLatin1String("repeat"); + break; + default: + qWarning() << "QtGradientUtils::styleSheetParameters(): gradient spread" << gradient.spread() << "not supported!"; + break; + } + result << QLatin1String("spread:") + spread; + } + + switch (gradient.type()) { + case QGradient::LinearGradient: { + const QLinearGradient *linearGradient = static_cast(&gradient); + result << QLatin1String("x1:") + QString::number(linearGradient->start().x()) + << QLatin1String("y1:") + QString::number(linearGradient->start().y()) + << QLatin1String("x2:") + QString::number(linearGradient->finalStop().x()) + << QLatin1String("y2:") + QString::number(linearGradient->finalStop().y()); + break; + } + case QGradient::RadialGradient: { + const QRadialGradient *radialGradient = static_cast(&gradient); + result << QLatin1String("cx:") + QString::number(radialGradient->center().x()) + << QLatin1String("cy:") + QString::number(radialGradient->center().y()) + << QLatin1String("radius:") + QString::number(radialGradient->radius()) + << QLatin1String("fx:") + QString::number(radialGradient->focalPoint().x()) + << QLatin1String("fy:") + QString::number(radialGradient->focalPoint().y()); + break; + } + case QGradient::ConicalGradient: { + const QConicalGradient *conicalGradient = static_cast(&gradient); + result << QLatin1String("cx:") + QString::number(conicalGradient->center().x()) + << QLatin1String("cy:") + QString::number(conicalGradient->center().y()) + << QLatin1String("angle:") + QString::number(conicalGradient->angle()); + break; + } + default: + qWarning() << "QtGradientUtils::styleSheetParameters(): gradient type" << gradient.type() << "not supported!"; + break; + } + + return result; +} + +static QStringList styleSheetStops(const QGradient &gradient) +{ + QStringList result; + const QGradientStops &stops = gradient.stops(); + for (const QGradientStop &stop : stops) { + const QColor color = stop.second; + + const QString stopDescription = QLatin1String("stop:") + QString::number(stop.first) + QLatin1String(" rgba(") + + QString::number(color.red()) + QLatin1String(", ") + + QString::number(color.green()) + QLatin1String(", ") + + QString::number(color.blue()) + QLatin1String(", ") + + QString::number(color.alpha()) + QLatin1Char(')'); + result << stopDescription; + } + + return result; +} + +QString QtGradientUtils::styleSheetCode(const QGradient &gradient) +{ + QStringList gradientParameters; + gradientParameters << styleSheetParameters(gradient) << styleSheetStops(gradient); + + return styleSheetFillName(gradient) + QLatin1Char('(') + gradientParameters.join(QLatin1String(", ")) + QLatin1Char(')'); +} + +QT_END_NAMESPACE diff --git a/src/shared/qtgradienteditor/qtgradientutils.h b/src/shared/qtgradienteditor/qtgradientutils.h new file mode 100644 index 0000000..fb71c7f --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientutils.h @@ -0,0 +1,27 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef GRADIENTUTILS_H +#define GRADIENTUTILS_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QtGradientManager; + +class QtGradientUtils +{ +public: + static QString styleSheetCode(const QGradient &gradient); + // utils methods, they could be outside of this class + static QString saveState(const QtGradientManager *manager); + static void restoreState(QtGradientManager *manager, const QString &state); + + static QPixmap gradientPixmap(const QGradient &gradient, const QSize &size = QSize(64, 64), bool checkeredBackground = false); +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtgradienteditor/qtgradientview.cpp b/src/shared/qtgradienteditor/qtgradientview.cpp new file mode 100644 index 0000000..f63cd5e --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientview.cpp @@ -0,0 +1,254 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtgradientview.h" +#include "qtgradientmanager.h" +#include "qtgradientdialog.h" +#include "qtgradientutils.h" + +#include + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +void QtGradientView::slotGradientAdded(const QString &id, const QGradient &gradient) +{ + QListWidgetItem *item = new QListWidgetItem(QtGradientUtils::gradientPixmap(gradient), id, m_ui.listWidget); + item->setToolTip(id); + item->setSizeHint(QSize(72, 84)); + item->setFlags(item->flags() | Qt::ItemIsEditable); + + m_idToItem[id] = item; + m_itemToId[item] = id; +} + +void QtGradientView::slotGradientRenamed(const QString &id, const QString &newId) +{ + if (!m_idToItem.contains(id)) + return; + + QListWidgetItem *item = m_idToItem.value(id); + item->setText(newId); + item->setToolTip(newId); + m_itemToId[item] = newId; + m_idToItem.remove(id); + m_idToItem[newId] = item; +} + +void QtGradientView::slotGradientChanged(const QString &id, const QGradient &newGradient) +{ + if (!m_idToItem.contains(id)) + return; + + QListWidgetItem *item = m_idToItem.value(id); + item->setIcon(QtGradientUtils::gradientPixmap(newGradient)); +} + +void QtGradientView::slotGradientRemoved(const QString &id) +{ + if (!m_idToItem.contains(id)) + return; + + QListWidgetItem *item = m_idToItem.value(id); + delete item; + m_itemToId.remove(item); + m_idToItem.remove(id); +} + +void QtGradientView::slotNewGradient() +{ + bool ok; + QListWidgetItem *item = m_ui.listWidget->currentItem(); + QGradient grad = QLinearGradient(); + if (item) + grad = m_manager->gradients().value(m_itemToId.value(item)); + QGradient gradient = QtGradientDialog::getGradient(&ok, grad, this); + if (!ok) + return; + + QString id = m_manager->addGradient(tr("Grad"), gradient); + m_ui.listWidget->setCurrentItem(m_idToItem.value(id)); +} + +void QtGradientView::slotEditGradient() +{ + bool ok; + QListWidgetItem *item = m_ui.listWidget->currentItem(); + if (!item) + return; + + const QString id = m_itemToId.value(item); + QGradient grad = m_manager->gradients().value(id); + QGradient gradient = QtGradientDialog::getGradient(&ok, grad, this); + if (!ok) + return; + + m_manager->changeGradient(id, gradient); +} + +void QtGradientView::slotRemoveGradient() +{ + QListWidgetItem *item = m_ui.listWidget->currentItem(); + if (!item) + return; + + if (QMessageBox::question(this, tr("Remove Gradient"), + tr("Are you sure you want to remove the selected gradient?"), + QMessageBox::Yes | QMessageBox::Cancel, QMessageBox::Cancel) != QMessageBox::Yes) + return; + + const QString id = m_itemToId.value(item); + m_manager->removeGradient(id); +} + +void QtGradientView::slotRenameGradient() +{ + QListWidgetItem *item = m_ui.listWidget->currentItem(); + if (!item) + return; + + m_ui.listWidget->editItem(item); +} + +void QtGradientView::slotRenameGradientItem(QListWidgetItem *item) +{ + if (!item) + return; + + const QString id = m_itemToId.value(item); + m_manager->renameGradient(id, item->text()); +} + +void QtGradientView::slotCurrentItemChanged(QListWidgetItem *item) +{ + m_editAction->setEnabled(item); + m_renameAction->setEnabled(item); + m_removeAction->setEnabled(item); + emit currentGradientChanged(m_itemToId.value(item)); +} + +void QtGradientView::slotGradientActivated(QListWidgetItem *item) +{ + const QString id = m_itemToId.value(item); + if (!id.isEmpty()) + emit gradientActivated(id); +} + +QtGradientView::QtGradientView(QWidget *parent) + : QWidget(parent) +{ + m_manager = nullptr; + + m_ui.setupUi(this); + + m_ui.listWidget->setViewMode(QListView::IconMode); + m_ui.listWidget->setMovement(QListView::Static); + m_ui.listWidget->setTextElideMode(Qt::ElideRight); + m_ui.listWidget->setResizeMode(QListWidget::Adjust); + m_ui.listWidget->setIconSize(QSize(64, 64)); + m_ui.listWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); + + QPalette pal = m_ui.listWidget->viewport()->palette(); + int pixSize = 18; + QPixmap pm(2 * pixSize, 2 * pixSize); + + QColor c1 = palette().color(QPalette::Midlight); + QColor c2 = palette().color(QPalette::Dark); + QPainter pmp(&pm); + pmp.fillRect(0, 0, pixSize, pixSize, c1); + pmp.fillRect(pixSize, pixSize, pixSize, pixSize, c1); + pmp.fillRect(0, pixSize, pixSize, pixSize, c2); + pmp.fillRect(pixSize, 0, pixSize, pixSize, c2); + + pal.setBrush(QPalette::Base, QBrush(pm)); + m_ui.listWidget->viewport()->setPalette(pal); + + connect(m_ui.listWidget, &QListWidget::itemDoubleClicked, this, &QtGradientView::slotGradientActivated); + connect(m_ui.listWidget, &QListWidget::itemChanged, this, &QtGradientView::slotRenameGradientItem); + connect(m_ui.listWidget, &QListWidget::currentItemChanged, this, &QtGradientView::slotCurrentItemChanged); + + m_newAction = new QAction(QIcon(QLatin1String(":/qt-project.org/qtgradienteditor/images/plus.png")), tr("New..."), this); + m_editAction = new QAction(QIcon(QLatin1String(":/qt-project.org/qtgradienteditor/images/edit.png")), tr("Edit..."), this); + m_renameAction = new QAction(tr("Rename"), this); + m_removeAction = new QAction(QIcon(QLatin1String(":/qt-project.org/qtgradienteditor/images/minus.png")), tr("Remove"), this); + + connect(m_newAction, &QAction::triggered, this, &QtGradientView::slotNewGradient); + connect(m_editAction, &QAction::triggered, this, &QtGradientView::slotEditGradient); + connect(m_removeAction, &QAction::triggered, this, &QtGradientView::slotRemoveGradient); + connect(m_renameAction, &QAction::triggered, this, &QtGradientView::slotRenameGradient); + + m_ui.listWidget->addAction(m_newAction); + m_ui.listWidget->addAction(m_editAction); + m_ui.listWidget->addAction(m_renameAction); + m_ui.listWidget->addAction(m_removeAction); + + m_ui.newButton->setDefaultAction(m_newAction); + m_ui.editButton->setDefaultAction(m_editAction); + m_ui.renameButton->setDefaultAction(m_renameAction); + m_ui.removeButton->setDefaultAction(m_removeAction); + + m_ui.listWidget->setContextMenuPolicy(Qt::ActionsContextMenu); +} + +void QtGradientView::setGradientManager(QtGradientManager *manager) +{ + if (m_manager == manager) + return; + + if (m_manager) { + disconnect(m_manager, &QtGradientManager::gradientAdded, + this, &QtGradientView::slotGradientAdded); + disconnect(m_manager, &QtGradientManager::gradientRenamed, + this, &QtGradientView::slotGradientRenamed); + disconnect(m_manager, &QtGradientManager::gradientChanged, + this, &QtGradientView::slotGradientChanged); + disconnect(m_manager, &QtGradientManager::gradientRemoved, + this, &QtGradientView::slotGradientRemoved); + + m_ui.listWidget->clear(); + m_idToItem.clear(); + m_itemToId.clear(); + } + + m_manager = manager; + + if (!m_manager) + return; + + QMap gradients = m_manager->gradients(); + for (auto itGrad = gradients.cbegin(), end = gradients.cend(); itGrad != end; ++itGrad) + slotGradientAdded(itGrad.key(), itGrad.value()); + + connect(m_manager, &QtGradientManager::gradientAdded, + this, &QtGradientView::slotGradientAdded); + connect(m_manager, &QtGradientManager::gradientRenamed, + this, &QtGradientView::slotGradientRenamed); + connect(m_manager, &QtGradientManager::gradientChanged, + this, &QtGradientView::slotGradientChanged); + connect(m_manager, &QtGradientManager::gradientRemoved, + this, &QtGradientView::slotGradientRemoved); +} + +QtGradientManager *QtGradientView::gradientManager() const +{ + return m_manager; +} + +void QtGradientView::setCurrentGradient(const QString &id) +{ + QListWidgetItem *item = m_idToItem.value(id); + if (!item) + return; + + m_ui.listWidget->setCurrentItem(item); +} + +QString QtGradientView::currentGradient() const +{ + return m_itemToId.value(m_ui.listWidget->currentItem()); +} + +QT_END_NAMESPACE diff --git a/src/shared/qtgradienteditor/qtgradientview.h b/src/shared/qtgradienteditor/qtgradientview.h new file mode 100644 index 0000000..f8f2919 --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientview.h @@ -0,0 +1,61 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef GRADIENTVIEW_H +#define GRADIENTVIEW_H + +#include +#include +#include "ui_qtgradientview.h" + +QT_BEGIN_NAMESPACE + +class QtGradientManager; +class QListViewItem; +class QAction; + +class QtGradientView : public QWidget +{ + Q_OBJECT +public: + QtGradientView(QWidget *parent = 0); + + void setGradientManager(QtGradientManager *manager); + QtGradientManager *gradientManager() const; + + void setCurrentGradient(const QString &id); + QString currentGradient() const; + +signals: + void currentGradientChanged(const QString &id); + void gradientActivated(const QString &id); + +private slots: + void slotGradientAdded(const QString &id, const QGradient &gradient); + void slotGradientRenamed(const QString &id, const QString &newId); + void slotGradientChanged(const QString &id, const QGradient &newGradient); + void slotGradientRemoved(const QString &id); + void slotNewGradient(); + void slotEditGradient(); + void slotRemoveGradient(); + void slotRenameGradient(); + void slotRenameGradientItem(QListWidgetItem *item); + void slotCurrentItemChanged(QListWidgetItem *item); + void slotGradientActivated(QListWidgetItem *item); + +private: + QMap m_idToItem; + QMap m_itemToId; + + QAction *m_newAction; + QAction *m_editAction; + QAction *m_renameAction; + QAction *m_removeAction; + + QtGradientManager *m_manager; + Ui::QtGradientView m_ui; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtgradienteditor/qtgradientview.ui b/src/shared/qtgradienteditor/qtgradientview.ui new file mode 100644 index 0000000..af7267e --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientview.ui @@ -0,0 +1,135 @@ + + QtGradientView + + + + 0 + 0 + 484 + 228 + + + + Gradient View + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + 0 + 0 + + + + New... + + + Qt::ToolButtonTextBesideIcon + + + true + + + + + + + + 0 + 0 + + + + Edit... + + + Qt::ToolButtonTextBesideIcon + + + true + + + + + + + + 0 + 0 + + + + Rename + + + Qt::ToolButtonTextBesideIcon + + + true + + + + + + + + 0 + 0 + + + + Remove + + + Qt::ToolButtonTextBesideIcon + + + true + + + + + + + Qt::Horizontal + + + + 71 + 26 + + + + + + + + + + + + + listWidget + newButton + editButton + renameButton + removeButton + + + + diff --git a/src/shared/qtgradienteditor/qtgradientviewdialog.cpp b/src/shared/qtgradienteditor/qtgradientviewdialog.cpp new file mode 100644 index 0000000..6cb49e3 --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientviewdialog.cpp @@ -0,0 +1,51 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtgradientviewdialog.h" +#include "qtgradientmanager.h" +#include + +QT_BEGIN_NAMESPACE + +QtGradientViewDialog::QtGradientViewDialog(QWidget *parent) + : QDialog(parent) +{ + m_ui.setupUi(this); + m_ui.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + connect(m_ui.gradientView, &QtGradientView::currentGradientChanged, + this, &QtGradientViewDialog::slotGradientSelected); + connect(m_ui.gradientView, &QtGradientView::gradientActivated, + this, &QtGradientViewDialog::slotGradientActivated); +} + +void QtGradientViewDialog::setGradientManager(QtGradientManager *manager) +{ + m_ui.gradientView->setGradientManager(manager); +} + +QGradient QtGradientViewDialog::getGradient(bool *ok, QtGradientManager *manager, QWidget *parent, const QString &caption) +{ + QtGradientViewDialog dlg(parent); + dlg.setGradientManager(manager); + dlg.setWindowTitle(caption); + QGradient grad = QLinearGradient(); + const int res = dlg.exec(); + if (res == QDialog::Accepted) + grad = dlg.m_ui.gradientView->gradientManager()->gradients().value(dlg.m_ui.gradientView->currentGradient()); + if (ok) + *ok = res == QDialog::Accepted; + return grad; +} + +void QtGradientViewDialog::slotGradientSelected(const QString &id) +{ + m_ui.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!id.isEmpty()); +} + +void QtGradientViewDialog::slotGradientActivated(const QString &id) +{ + Q_UNUSED(id); + accept(); +} + +QT_END_NAMESPACE diff --git a/src/shared/qtgradienteditor/qtgradientviewdialog.h b/src/shared/qtgradienteditor/qtgradientviewdialog.h new file mode 100644 index 0000000..ecd089a --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientviewdialog.h @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef GRADIENTVIEWDIALOG_H +#define GRADIENTVIEWDIALOG_H + +#include +#include +#include "ui_qtgradientviewdialog.h" + +QT_BEGIN_NAMESPACE + +class QtGradientManager; + +class QtGradientViewDialog : public QDialog +{ + Q_OBJECT +public: + QtGradientViewDialog(QWidget *parent = 0); + + void setGradientManager(QtGradientManager *manager); + QtGradientManager *gradientManager() const; + + static QGradient getGradient(bool *ok, QtGradientManager *manager, QWidget *parent = 0, const QString &caption = tr("Select Gradient", 0)); + +private slots: + void slotGradientSelected(const QString &id); + void slotGradientActivated(const QString &id); + +private: + Ui::QtGradientViewDialog m_ui; +}; + +QT_END_NAMESPACE + +#endif + diff --git a/src/shared/qtgradienteditor/qtgradientviewdialog.ui b/src/shared/qtgradienteditor/qtgradientviewdialog.ui new file mode 100644 index 0000000..431e883 --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientviewdialog.ui @@ -0,0 +1,85 @@ + + +* Copyright (C) 2016 The Qt Company Ltd. +* SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + + QtGradientViewDialog + + + + 0 + 0 + 178 + 72 + + + + Select Gradient + + + + + + + 0 + 0 + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + QtGradientView + QFrame +
      qtgradientview.h
      + 1 +
      +
      + + + + buttonBox + accepted() + QtGradientViewDialog + accept() + + + 72 + 224 + + + 21 + 243 + + + + + buttonBox + rejected() + QtGradientViewDialog + reject() + + + 168 + 233 + + + 152 + 251 + + + + +
      diff --git a/src/shared/qtgradienteditor/qtgradientwidget.cpp b/src/shared/qtgradienteditor/qtgradientwidget.cpp new file mode 100644 index 0000000..1816a7e --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientwidget.cpp @@ -0,0 +1,756 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtgradientwidget.h" +#include +#include +#include +#include +#include +#include + +#ifndef _USE_MATH_DEFINES +#define _USE_MATH_DEFINES +#endif + +#include "qmath.h" + +QT_BEGIN_NAMESPACE + +class QtGradientWidgetPrivate +{ + QtGradientWidget *q_ptr; + Q_DECLARE_PUBLIC(QtGradientWidget) +public: + QPointF fromViewport(const QPointF &point) const; + QPointF toViewport(const QPointF &point) const; +// void setupDrag(QtGradientStop *stop, int x); + + QPointF checkRange(const QPointF &point) const; + QRectF pointRect(const QPointF &point, double size) const; + + double correctAngle(double angle) const; + void setAngleConical(double angle); + + void paintPoint(QPainter *painter, const QPointF &point, double size) const; + + double m_handleSize; + bool m_backgroundCheckered; + + QGradientStops m_gradientStops; + QGradient::Type m_gradientType; + QGradient::Spread m_gradientSpread; + QPointF m_startLinear; + QPointF m_endLinear; + QPointF m_centralRadial; + QPointF m_focalRadial; + qreal m_radiusRadial; + QPointF m_centralConical; + qreal m_angleConical; + + enum Handle { + NoHandle, + StartLinearHandle, + EndLinearHandle, + CentralRadialHandle, + FocalRadialHandle, + RadiusRadialHandle, + CentralConicalHandle, + AngleConicalHandle + }; + + Handle m_dragHandle; + QPointF m_dragOffset; + //double m_radiusOffset; + double m_radiusFactor; + double m_dragRadius; + double m_angleOffset; + double m_dragAngle; +}; + +double QtGradientWidgetPrivate::correctAngle(double angle) const +{ + double a = angle; + while (a >= 360) + a -= 360; + while (a < 0) + a += 360; + return a; +} + +void QtGradientWidgetPrivate::setAngleConical(double angle) +{ + double a = correctAngle(angle); + if (m_angleConical == a) + return; + m_angleConical = a; + emit q_ptr->angleConicalChanged(m_angleConical); +} + +QRectF QtGradientWidgetPrivate::pointRect(const QPointF &point, double size) const +{ + return QRectF(point.x() - size / 2, point.y() - size / 2, size, size); +} + +QPointF QtGradientWidgetPrivate::checkRange(const QPointF &point) const +{ + QPointF p = point; + if (p.x() > 1) + p.setX(1); + else if (p.x() < 0) + p.setX(0); + if (p.y() > 1) + p.setY(1); + else if (p.y() < 0) + p.setY(0); + return p; +} + +QPointF QtGradientWidgetPrivate::fromViewport(const QPointF &point) const +{ + QSize size = q_ptr->size(); + return QPointF(point.x() / size.width(), point.y() / size.height()); +} + +QPointF QtGradientWidgetPrivate::toViewport(const QPointF &point) const +{ + QSize size = q_ptr->size(); + return QPointF(point.x() * size.width(), point.y() * size.height()); +} + +void QtGradientWidgetPrivate::paintPoint(QPainter *painter, const QPointF &point, double size) const +{ + QPointF pf = toViewport(point); + QRectF rf = pointRect(pf, size); + + QPen pen; + pen.setWidthF(1); + QColor alphaZero = Qt::white; + alphaZero.setAlpha(0); + + painter->save(); + painter->drawEllipse(rf); + + /* + painter->save(); + + QLinearGradient lgV(0, rf.top(), 0, rf.bottom()); + lgV.setColorAt(0, alphaZero); + lgV.setColorAt(0.25, Qt::white); + lgV.setColorAt(0.25, Qt::white); + lgV.setColorAt(1, alphaZero); + pen.setBrush(lgV); + painter->setPen(pen); + + painter->drawLine(QPointF(pf.x(), rf.top()), QPointF(pf.x(), rf.bottom())); + + QLinearGradient lgH(rf.left(), 0, rf.right(), 0); + lgH.setColorAt(0, alphaZero); + lgH.setColorAt(0.5, Qt::white); + lgH.setColorAt(1, alphaZero); + pen.setBrush(lgH); + painter->setPen(pen); + + painter->drawLine(QPointF(rf.left(), pf.y()), QPointF(rf.right(), pf.y())); + + painter->restore(); + */ + + painter->restore(); +} + +/* +void QtGradientWidgetPrivate::setupDrag(QtGradientStop *stop, int x) +{ + m_model->setCurrentStop(stop); + + int viewportX = qRound(toViewport(stop->position())); + m_dragOffset = x - viewportX; + + const auto stops = m_stops; + m_stops.clear(); + for (QtGradientStop *s : stops) { + if (m_model->isSelected(s) || s == stop) { + m_dragStops[s] = s->position() - stop->position(); + m_stops.append(s); + } else { + m_dragOriginal[s->position()] = s->color(); + } + } + for (QtGradientStop *s : stops) { + if (!m_model->isSelected(s)) + m_stops.append(s); + } + m_stops.removeAll(stop); + m_stops.prepend(stop); +} +*/ +//////////////////////////// + +QtGradientWidget::QtGradientWidget(QWidget *parent) + : QWidget(parent), d_ptr(new QtGradientWidgetPrivate) +{ + d_ptr->q_ptr = this; + d_ptr->m_backgroundCheckered = true; + d_ptr->m_handleSize = 20.0; + d_ptr->m_gradientType = QGradient::LinearGradient; + d_ptr->m_startLinear = QPointF(0, 0); + d_ptr->m_endLinear = QPointF(1, 1); + d_ptr->m_centralRadial = QPointF(0.5, 0.5); + d_ptr->m_focalRadial = QPointF(0.5, 0.5); + d_ptr->m_radiusRadial = 0.5; + d_ptr->m_centralConical = QPointF(0.5, 0.5); + d_ptr->m_angleConical = 0; + d_ptr->m_dragHandle = QtGradientWidgetPrivate::NoHandle; + + setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred)); +} + +QtGradientWidget::~QtGradientWidget() +{ +} + +QSize QtGradientWidget::sizeHint() const +{ + return QSize(176, 176); +} + +QSize QtGradientWidget::minimumSizeHint() const +{ + return QSize(128, 128); +} + +int QtGradientWidget::heightForWidth(int w) const +{ + return w; +} + +void QtGradientWidget::setBackgroundCheckered(bool checkered) +{ + if (d_ptr->m_backgroundCheckered == checkered) + return; + d_ptr->m_backgroundCheckered = checkered; + update(); +} + +bool QtGradientWidget::isBackgroundCheckered() const +{ + return d_ptr->m_backgroundCheckered; +} + +void QtGradientWidget::mousePressEvent(QMouseEvent *e) +{ + if (e->button() != Qt::LeftButton) + return; + + QPoint p = e->pos(); + if (d_ptr->m_gradientType == QGradient::LinearGradient) { + QPointF startPoint = d_ptr->toViewport(d_ptr->m_startLinear); + double x = p.x() - startPoint.x(); + double y = p.y() - startPoint.y(); + + if ((d_ptr->m_handleSize * d_ptr->m_handleSize / 4) > (x * x + y * y)) { + d_ptr->m_dragHandle = QtGradientWidgetPrivate::StartLinearHandle; + d_ptr->m_dragOffset = QPointF(x, y); + update(); + return; + } + + QPointF endPoint = d_ptr->toViewport(d_ptr->m_endLinear); + x = p.x() - endPoint.x(); + y = p.y() - endPoint.y(); + + if ((d_ptr->m_handleSize * d_ptr->m_handleSize / 4) > (x * x + y * y)) { + d_ptr->m_dragHandle = QtGradientWidgetPrivate::EndLinearHandle; + d_ptr->m_dragOffset = QPointF(x, y); + update(); + return; + } + } else if (d_ptr->m_gradientType == QGradient::RadialGradient) { + QPointF focalPoint = d_ptr->toViewport(d_ptr->m_focalRadial); + double x = p.x() - focalPoint.x(); + double y = p.y() - focalPoint.y(); + + if ((d_ptr->m_handleSize * d_ptr->m_handleSize / 9) > (x * x + y * y)) { + d_ptr->m_dragHandle = QtGradientWidgetPrivate::FocalRadialHandle; + d_ptr->m_dragOffset = QPointF(x, y); + update(); + return; + } + + QPointF centralPoint = d_ptr->toViewport(d_ptr->m_centralRadial); + x = p.x() - centralPoint.x(); + y = p.y() - centralPoint.y(); + + if ((d_ptr->m_handleSize * d_ptr->m_handleSize / 4) > (x * x + y * y)) { + d_ptr->m_dragHandle = QtGradientWidgetPrivate::CentralRadialHandle; + d_ptr->m_dragOffset = QPointF(x, y); + update(); + return; + } + + QPointF central = d_ptr->toViewport(d_ptr->m_centralRadial); + QRectF r = d_ptr->pointRect(central, 2 * d_ptr->m_handleSize / 3); + QRectF r1(0, r.y(), size().width(), r.height()); + QRectF r2(r.x(), 0, r.width(), r.y()); + QRectF r3(r.x(), r.y() + r.height(), r.width(), size().height() - r.y() - r.height()); + QPointF pF(p.x(), p.y()); + if (r1.contains(pF) || r2.contains(pF) || r3.contains(pF)) { + x = pF.x() / size().width() - d_ptr->m_centralRadial.x(); + y = pF.y() / size().height() - d_ptr->m_centralRadial.y(); + const double clickRadius = hypot(x, y); + //d_ptr->m_radiusOffset = d_ptr->m_radiusRadial - clickRadius; + d_ptr->m_radiusFactor = d_ptr->m_radiusRadial / clickRadius; + if (d_ptr->m_radiusFactor == 0) + d_ptr->m_radiusFactor = 1; + d_ptr->m_dragRadius = d_ptr->m_radiusRadial; + d_ptr->m_dragHandle = QtGradientWidgetPrivate::RadiusRadialHandle; + mouseMoveEvent(e); + update(); + return; + } + } else if (d_ptr->m_gradientType == QGradient::ConicalGradient) { + QPointF centralPoint = d_ptr->toViewport(d_ptr->m_centralConical); + double x = p.x() - centralPoint.x(); + double y = p.y() - centralPoint.y(); + + if ((d_ptr->m_handleSize * d_ptr->m_handleSize / 4) > (x * x + y * y)) { + d_ptr->m_dragHandle = QtGradientWidgetPrivate::CentralConicalHandle; + d_ptr->m_dragOffset = QPointF(x, y); + update(); + return; + } + double radius = size().width(); + if (size().height() < radius) + radius = size().height(); + radius /= 2; + double corr = d_ptr->m_handleSize / 3; + radius -= corr; + QPointF vp = d_ptr->toViewport(d_ptr->m_centralConical); + x = p.x() - vp.x(); + y = p.y() - vp.y(); + if (((radius - corr) * (radius - corr) < (x * x + y * y)) && + ((radius + corr) * (radius + corr) > (x * x + y * y))) { + QPointF central = d_ptr->toViewport(d_ptr->m_centralConical); + QPointF current(e->pos().x(), e->pos().y()); + x = current.x() - central.x(); + y = current.y() - central.y(); + x /= size().width() / 2; + y /= size().height() / 2; + const double angle = qRadiansToDegrees(atan2(-y, x)); + + d_ptr->m_angleOffset = d_ptr->m_angleConical - angle; + d_ptr->m_dragAngle = d_ptr->m_angleConical; + d_ptr->m_dragHandle = QtGradientWidgetPrivate::AngleConicalHandle; + update(); + return; + } + } +} + +void QtGradientWidget::mouseReleaseEvent(QMouseEvent *e) +{ + Q_UNUSED(e); + d_ptr->m_dragHandle = QtGradientWidgetPrivate::NoHandle; + update(); +} + +void QtGradientWidget::mouseMoveEvent(QMouseEvent *e) +{ + if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::NoHandle) + return; + + const QPointF newPos = e->position() - d_ptr->m_dragOffset; + QPointF newPoint = d_ptr->fromViewport(newPos); + if (newPoint.x() < 0) + newPoint.setX(0); + else if (newPoint.x() > 1) + newPoint.setX(1); + if (newPoint.y() < 0) + newPoint.setY(0); + else if (newPoint.y() > 1) + newPoint.setY(1); + + if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::StartLinearHandle) { + d_ptr->m_startLinear = newPoint; + emit startLinearChanged(newPoint); + } else if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::EndLinearHandle) { + d_ptr->m_endLinear = newPoint; + emit endLinearChanged(newPoint); + } else if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::CentralRadialHandle) { + d_ptr->m_centralRadial = newPoint; + emit centralRadialChanged(newPoint); + } else if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::FocalRadialHandle) { + d_ptr->m_focalRadial = newPoint; + emit focalRadialChanged(newPoint); + } else if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::RadiusRadialHandle) { + QPointF centralPoint = d_ptr->toViewport(d_ptr->m_centralRadial); + QPointF pF(e->pos().x(), e->pos().y()); + double x = pF.x() - centralPoint.x(); + double y = pF.y() - centralPoint.y(); + + if ((d_ptr->m_handleSize * d_ptr->m_handleSize / 4) > (x * x + y * y)) { + if (d_ptr->m_radiusRadial != d_ptr->m_dragRadius) { + d_ptr->m_radiusRadial = d_ptr->m_dragRadius; + emit radiusRadialChanged(d_ptr->m_radiusRadial); + } + } else { + x = pF.x() / size().width() - d_ptr->m_centralRadial.x(); + y = pF.y() / size().height() - d_ptr->m_centralRadial.y(); + const double moveRadius = hypot(x, y); + //double newRadius = moveRadius + d_ptr->m_radiusOffset; + double newRadius = moveRadius * d_ptr->m_radiusFactor; + if (newRadius > 2) + newRadius = 2; + d_ptr->m_radiusRadial = newRadius; + emit radiusRadialChanged(d_ptr->m_radiusRadial); + } + } else if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::CentralConicalHandle) { + d_ptr->m_centralConical = newPoint; + emit centralConicalChanged(newPoint); + } else if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::AngleConicalHandle) { + QPointF centralPoint = d_ptr->toViewport(d_ptr->m_centralConical); + QPointF pF(e->pos().x(), e->pos().y()); + double x = pF.x() - centralPoint.x(); + double y = pF.y() - centralPoint.y(); + + if ((d_ptr->m_handleSize * d_ptr->m_handleSize / 4) > (x * x + y * y)) { + if (d_ptr->m_angleConical != d_ptr->m_dragAngle) { + d_ptr->m_angleConical = d_ptr->m_dragAngle; + emit angleConicalChanged(d_ptr->m_angleConical); + } + } else { + QPointF central = d_ptr->toViewport(d_ptr->m_centralConical); + QPointF current = pF; + x = current.x() - central.x(); + y = current.y() - central.y(); + x /= size().width() / 2; + y /= size().height() / 2; + + const double angle = qRadiansToDegrees(atan2(-y, x)) + d_ptr->m_angleOffset; + d_ptr->setAngleConical(angle); + } + } + update(); +} + +void QtGradientWidget::mouseDoubleClickEvent(QMouseEvent *e) +{ + mousePressEvent(e); +} + +void QtGradientWidget::paintEvent(QPaintEvent *e) +{ + Q_UNUSED(e); + + QPainter p(this); + + if (d_ptr->m_backgroundCheckered) { + int pixSize = 40; + QPixmap pm(2 * pixSize, 2 * pixSize); + + QPainter pmp(&pm); + pmp.fillRect(0, 0, pixSize, pixSize, Qt::white); + pmp.fillRect(pixSize, pixSize, pixSize, pixSize, Qt::white); + pmp.fillRect(0, pixSize, pixSize, pixSize, Qt::black); + pmp.fillRect(pixSize, 0, pixSize, pixSize, Qt::black); + + p.setBrushOrigin((size().width() % pixSize + pixSize) / 2, (size().height() % pixSize + pixSize) / 2); + p.fillRect(rect(), pm); + p.setBrushOrigin(0, 0); + } + + QGradient *gradient = nullptr; + switch (d_ptr->m_gradientType) { + case QGradient::LinearGradient: + gradient = new QLinearGradient(d_ptr->m_startLinear, d_ptr->m_endLinear); + break; + case QGradient::RadialGradient: + gradient = new QRadialGradient(d_ptr->m_centralRadial, d_ptr->m_radiusRadial, d_ptr->m_focalRadial); + break; + case QGradient::ConicalGradient: + gradient = new QConicalGradient(d_ptr->m_centralConical, d_ptr->m_angleConical); + break; + default: + break; + } + if (!gradient) + return; + + gradient->setStops(d_ptr->m_gradientStops); + gradient->setSpread(d_ptr->m_gradientSpread); + + p.save(); + p.scale(size().width(), size().height()); + p.fillRect(QRect(0, 0, 1, 1), *gradient); + p.restore(); + + p.setRenderHint(QPainter::Antialiasing); + + QColor c = QColor::fromRgbF(0.5, 0.5, 0.5, 0.5); + QBrush br(c); + p.setBrush(br); + QPen pen(Qt::white); + pen.setWidthF(1); + p.setPen(pen); + QPen dragPen = pen; + dragPen.setWidthF(2); + if (d_ptr->m_gradientType == QGradient::LinearGradient) { + p.save(); + if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::StartLinearHandle) + p.setPen(dragPen); + d_ptr->paintPoint(&p, d_ptr->m_startLinear, d_ptr->m_handleSize); + p.restore(); + + p.save(); + if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::EndLinearHandle) + p.setPen(dragPen); + d_ptr->paintPoint(&p, d_ptr->m_endLinear, d_ptr->m_handleSize); + p.restore(); + } else if (d_ptr->m_gradientType == QGradient::RadialGradient) { + QPointF central = d_ptr->toViewport(d_ptr->m_centralRadial); + + p.save(); + QRectF r = d_ptr->pointRect(central, 2 * d_ptr->m_handleSize / 3); + QRectF r1(0, r.y(), size().width(), r.height()); + QRectF r2(r.x(), 0, r.width(), r.y()); + QRectF r3(r.x(), r.y() + r.height(), r.width(), size().height() - r.y() - r.height()); + p.fillRect(r1, c); + p.fillRect(r2, c); + p.fillRect(r3, c); + p.setBrush(Qt::NoBrush); + p.save(); + if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::CentralRadialHandle) + p.setPen(dragPen); + d_ptr->paintPoint(&p, d_ptr->m_centralRadial, d_ptr->m_handleSize); + p.restore(); + + const QRectF rect = QRectF(central.x() - d_ptr->m_radiusRadial * size().width(), + central.y() - d_ptr->m_radiusRadial * size().height(), + 2 * d_ptr->m_radiusRadial * size().width(), + 2 * d_ptr->m_radiusRadial * size().height()); + QRegion region(r1.toRect()); + region += r2.toRect(); + region += r3.toRect(); + p.setClipRegion(region); + + p.drawEllipse(rect); + if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::RadiusRadialHandle) { + p.save(); + p.setPen(dragPen); + QRectF rect = QRectF(central.x() - d_ptr->m_radiusRadial / d_ptr->m_radiusFactor * size().width(), + central.y() - d_ptr->m_radiusRadial / d_ptr->m_radiusFactor * size().height(), + 2 * d_ptr->m_radiusRadial / d_ptr->m_radiusFactor * size().width(), + 2 * d_ptr->m_radiusRadial / d_ptr->m_radiusFactor * size().height()); + p.drawEllipse(rect); + + p.restore(); + } + p.restore(); + + p.save(); + if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::FocalRadialHandle) + p.setPen(dragPen); + d_ptr->paintPoint(&p, d_ptr->m_focalRadial, 2 * d_ptr->m_handleSize / 3); + p.restore(); + } else if (d_ptr->m_gradientType == QGradient::ConicalGradient) { + double radius = size().width(); + if (size().height() < radius) + radius = size().height(); + radius /= 2; + double corr = d_ptr->m_handleSize / 3; + radius -= corr; + QPointF central = d_ptr->toViewport(d_ptr->m_centralConical); + + p.save(); + p.setBrush(Qt::NoBrush); + QPen pen2(c); + pen2.setWidthF(2 * d_ptr->m_handleSize / 3); + p.setPen(pen2); + p.drawEllipse(d_ptr->pointRect(central, 2 * radius)); + p.restore(); + + p.save(); + p.setBrush(Qt::NoBrush); + int pointCount = 2; + for (int i = 0; i < pointCount; i++) { + const qreal angle = qDegreesToRadians(i * 180.0 / pointCount + d_ptr->m_angleConical); + const QPointF ray(qCos(angle) * size().width() / 2, + -qSin(angle) * size().height() / 2); + const double mod = hypot(ray.x(), ray.y()); + p.drawLine(QPointF(central.x() + ray.x() * (radius - corr) / mod, + central.y() + ray.y() * (radius - corr) / mod), + QPointF(central.x() + ray.x() * (radius + corr) / mod, + central.y() + ray.y() * (radius + corr) / mod)); + p.drawLine(QPointF(central.x() - ray.x() * (radius - corr) / mod, + central.y() - ray.y() * (radius - corr) / mod), + QPointF(central.x() - ray.x() * (radius + corr) / mod, + central.y() - ray.y() * (radius + corr) / mod)); + } + if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::AngleConicalHandle) { + p.save(); + p.setPen(dragPen); + const qreal angle = qDegreesToRadians(d_ptr->m_angleConical - d_ptr->m_angleOffset); + const QPointF ray(qCos(angle) * size().width() / 2, + -qSin(angle) * size().height() / 2); + const double mod = hypot(ray.x(), ray.y()); + p.drawLine(QPointF(central.x() + ray.x() * (radius - corr) / mod, + central.y() + ray.y() * (radius - corr) / mod), + QPointF(central.x() + ray.x() * (radius + corr) / mod, + central.y() + ray.y() * (radius + corr) / mod)); + p.restore(); + } + + p.restore(); + + p.save(); + if (d_ptr->m_dragHandle == QtGradientWidgetPrivate::CentralConicalHandle) + p.setPen(dragPen); + d_ptr->paintPoint(&p, d_ptr->m_centralConical, d_ptr->m_handleSize); + p.restore(); + + } + + delete gradient; +} + +void QtGradientWidget::setGradientStops(const QGradientStops &stops) +{ + d_ptr->m_gradientStops = stops; + update(); +} + +QGradientStops QtGradientWidget::gradientStops() const +{ + return d_ptr->m_gradientStops; +} + +void QtGradientWidget::setGradientType(QGradient::Type type) +{ + if (type == QGradient::NoGradient) + return; + if (d_ptr->m_gradientType == type) + return; + + d_ptr->m_gradientType = type; + update(); +} + +QGradient::Type QtGradientWidget::gradientType() const +{ + return d_ptr->m_gradientType; +} + +void QtGradientWidget::setGradientSpread(QGradient::Spread spread) +{ + if (d_ptr->m_gradientSpread == spread) + return; + + d_ptr->m_gradientSpread = spread; + update(); +} + +QGradient::Spread QtGradientWidget::gradientSpread() const +{ + return d_ptr->m_gradientSpread; +} + +void QtGradientWidget::setStartLinear(const QPointF &point) +{ + if (d_ptr->m_startLinear == point) + return; + + d_ptr->m_startLinear = d_ptr->checkRange(point); + update(); +} + +QPointF QtGradientWidget::startLinear() const +{ + return d_ptr->m_startLinear; +} + +void QtGradientWidget::setEndLinear(const QPointF &point) +{ + if (d_ptr->m_endLinear == point) + return; + + d_ptr->m_endLinear = d_ptr->checkRange(point); + update(); +} + +QPointF QtGradientWidget::endLinear() const +{ + return d_ptr->m_endLinear; +} + +void QtGradientWidget::setCentralRadial(const QPointF &point) +{ + if (d_ptr->m_centralRadial == point) + return; + + d_ptr->m_centralRadial = point; + update(); +} + +QPointF QtGradientWidget::centralRadial() const +{ + return d_ptr->m_centralRadial; +} + +void QtGradientWidget::setFocalRadial(const QPointF &point) +{ + if (d_ptr->m_focalRadial == point) + return; + + d_ptr->m_focalRadial = point; + update(); +} + +QPointF QtGradientWidget::focalRadial() const +{ + return d_ptr->m_focalRadial; +} + +void QtGradientWidget::setRadiusRadial(qreal radius) +{ + if (d_ptr->m_radiusRadial == radius) + return; + + d_ptr->m_radiusRadial = radius; + update(); +} + +qreal QtGradientWidget::radiusRadial() const +{ + return d_ptr->m_radiusRadial; +} + +void QtGradientWidget::setCentralConical(const QPointF &point) +{ + if (d_ptr->m_centralConical == point) + return; + + d_ptr->m_centralConical = point; + update(); +} + +QPointF QtGradientWidget::centralConical() const +{ + return d_ptr->m_centralConical; +} + +void QtGradientWidget::setAngleConical(qreal angle) +{ + if (d_ptr->m_angleConical == angle) + return; + + d_ptr->m_angleConical = angle; + update(); +} + +qreal QtGradientWidget::angleConical() const +{ + return d_ptr->m_angleConical; +} + +QT_END_NAMESPACE diff --git a/src/shared/qtgradienteditor/qtgradientwidget.h b/src/shared/qtgradienteditor/qtgradientwidget.h new file mode 100644 index 0000000..5f3ce36 --- /dev/null +++ b/src/shared/qtgradienteditor/qtgradientwidget.h @@ -0,0 +1,83 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTGRADIENTWIDGET_H +#define QTGRADIENTWIDGET_H + +#include + +QT_BEGIN_NAMESPACE + +class QtGradientWidget : public QWidget +{ + Q_OBJECT + Q_PROPERTY(bool backgroundCheckered READ isBackgroundCheckered WRITE setBackgroundCheckered) +public: + QtGradientWidget(QWidget *parent = 0); + ~QtGradientWidget(); + + QSize minimumSizeHint() const override; + QSize sizeHint() const override; + int heightForWidth(int w) const override; + + bool isBackgroundCheckered() const; + void setBackgroundCheckered(bool checkered); + + QGradientStops gradientStops() const; + + void setGradientType(QGradient::Type type); + QGradient::Type gradientType() const; + + void setGradientSpread(QGradient::Spread spread); + QGradient::Spread gradientSpread() const; + + void setStartLinear(const QPointF &point); + QPointF startLinear() const; + + void setEndLinear(const QPointF &point); + QPointF endLinear() const; + + void setCentralRadial(const QPointF &point); + QPointF centralRadial() const; + + void setFocalRadial(const QPointF &point); + QPointF focalRadial() const; + + void setRadiusRadial(qreal radius); + qreal radiusRadial() const; + + void setCentralConical(const QPointF &point); + QPointF centralConical() const; + + void setAngleConical(qreal angle); + qreal angleConical() const; + +public slots: + void setGradientStops(const QGradientStops &stops); + +signals: + + void startLinearChanged(const QPointF &point); + void endLinearChanged(const QPointF &point); + void centralRadialChanged(const QPointF &point); + void focalRadialChanged(const QPointF &point); + void radiusRadialChanged(qreal radius); + void centralConicalChanged(const QPointF &point); + void angleConicalChanged(qreal angle); + +protected: + void paintEvent(QPaintEvent *e) override; + void mousePressEvent(QMouseEvent *e) override; + void mouseReleaseEvent(QMouseEvent *e) override; + void mouseMoveEvent(QMouseEvent *e) override; + void mouseDoubleClickEvent(QMouseEvent *e) override; + +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtGradientWidget) + Q_DISABLE_COPY_MOVE(QtGradientWidget) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtpropertybrowser/images/cursor-arrow.png b/src/shared/qtpropertybrowser/images/cursor-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..a69ef4eb6158503c7c67c916aea86e65fdc81f72 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK&RR$m{!Z_zjR^ED7=p zW^j0RBMrz2@N{tusfe>Zw~@EOfQR+sk_Oou&-fjcEVpj<&$!X3+c~E>J1*JV{%`IM zZgwlFFx}G*?uS>UO1?P#t>x;u4TbmfTg6u$kN3O$qTon=;uum9xAyEt-c|zv=78lpdFvQ2-{H`#GwYbpmwD+D`;ru|4Sly6 z!u|DfH10id;EhPQ?!aC0$4imznq|kzoDQ|k!q4v~%5Ey$Ds|~#XU>6Rfw7|8GuZ2t ub|G literal 0 HcmV?d00001 diff --git a/src/shared/qtpropertybrowser/images/cursor-closedhand.png b/src/shared/qtpropertybrowser/images/cursor-closedhand.png new file mode 100644 index 0000000000000000000000000000000000000000..b78dd1dac5a827fa698f1993718f22c282019505 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6I14-?iy0WWJ3*My{N(AiKtWee z7sn8d^J_1j=3-FbaJl&N|NMQrDg{-+lDl3uEOL6iyxxIhJsV5IbqBU04WsP|EmPEI sG+%tqc!TF=!@MiLH_pW!e7ccq3Qxekuk)up2O7xW>FVdQ&MBb@057mJumAu6 literal 0 HcmV?d00001 diff --git a/src/shared/qtpropertybrowser/images/cursor-cross.png b/src/shared/qtpropertybrowser/images/cursor-cross.png new file mode 100644 index 0000000000000000000000000000000000000000..fe38e744805f61abefcc555e07d399725c3fd7e6 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK&RR$m{!Z_zjR^ED7=p zW^j0RBMrz=_jGX#;h346aDZ1vLF6&ZrWY3kt_3XM>{%UFuy$6%gUPvacWfgV8N9#n V_FPj?S`E~~;OXk;vd$@?2>`R9Dxv@Y literal 0 HcmV?d00001 diff --git a/src/shared/qtpropertybrowser/images/cursor-forbidden.png b/src/shared/qtpropertybrowser/images/cursor-forbidden.png new file mode 100644 index 0000000000000000000000000000000000000000..2b08c4e2a3cafc992459a8f484e6c8e6c3e74857 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK&RR$m{!Z_zjR^ED7=p zW^j0RBMr#O@pN$vsfa5*w~^P`kb@;)w}Ny_&ztDY@kvlRIOU`3qAsV; zTo+`Y{*UQrTXjS>sKxPHd$OYcrG25=M&E9}?0tT1Yy7oqDMB$hU$uYoMqOpDnka4~ qygb6(Z%*F(qx}EZO#W7L6_Nk?#pi+cGI+ZBxvX&}>iqs75rOW+zd6_S+ yS|~6}xHpZ9x7T5rLt)D22WQ%mvv4FO#t=)GwlEX literal 0 HcmV?d00001 diff --git a/src/shared/qtpropertybrowser/images/cursor-ibeam.png b/src/shared/qtpropertybrowser/images/cursor-ibeam.png new file mode 100644 index 0000000000000000000000000000000000000000..097fc5fa7287da71ffd907b3a11adbda4516aca6 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42QqgTe~DWM4f DkdQT7 literal 0 HcmV?d00001 diff --git a/src/shared/qtpropertybrowser/images/cursor-sizeall.png b/src/shared/qtpropertybrowser/images/cursor-sizeall.png new file mode 100644 index 0000000000000000000000000000000000000000..69f13eb347a6c299e06844729a14f657b282fe8f GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42Qq(Z!J(8lD*)YR5__{zaA2hTRnmr4+Dcjj*u+}&-pB%i42~uelF{r5}E+x CJu-a& literal 0 HcmV?d00001 diff --git a/src/shared/qtpropertybrowser/images/cursor-sizef.png b/src/shared/qtpropertybrowser/images/cursor-sizef.png new file mode 100644 index 0000000000000000000000000000000000000000..3b127a05d34b48a2f4f9b9cc77b681c6b43afcdd GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42QqD?iBlbDB7>)^pUXO@geCxo C3NS_h literal 0 HcmV?d00001 diff --git a/src/shared/qtpropertybrowser/images/cursor-sizeh.png b/src/shared/qtpropertybrowser/images/cursor-sizeh.png new file mode 100644 index 0000000000000000000000000000000000000000..a9f40cbc3d77c566c11c32c0631b4f94f44dd441 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42Qq&V7RQzr9bPir8&?922WQ%mvv4FO#sHOC(Zx> literal 0 HcmV?d00001 diff --git a/src/shared/qtpropertybrowser/images/cursor-sizev.png b/src/shared/qtpropertybrowser/images/cursor-sizev.png new file mode 100644 index 0000000000000000000000000000000000000000..1edbab27a5b05555aaf515931f69ad6bf7e417f0 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK)l42QqM`U1 literal 0 HcmV?d00001 diff --git a/src/shared/qtpropertybrowser/images/cursor-wait.png b/src/shared/qtpropertybrowser/images/cursor-wait.png new file mode 100644 index 0000000000000000000000000000000000000000..69056c479e9b2f009e366dfd71999a7c74f97620 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~)3?z59=Y9ZEoB=)|uK&RR$m{!Z_zjR^ED7=p zW^j0RBMrz2^mK6y;h346;J_ZVI&3Y=<%J7po~YS&;ev>WRgqc?pLgqp;N^OZ7kj)9 zt2OYRn)8&w&_Fn;AZ-e>OWiG&j$ap41wJoZG>h5TTvwNMesusN!}2q-U)D!*O8^aL N@O1TaS?83{1OR$JJ0<`C literal 0 HcmV?d00001 diff --git a/src/shared/qtpropertybrowser/images/cursor-whatsthis.png b/src/shared/qtpropertybrowser/images/cursor-whatsthis.png new file mode 100644 index 0000000000000000000000000000000000000000..b47601c3780eec780fdae43bab7481bbfebdddae GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH3?%tPCZz)@&H$ef*Z*JuL59RLGuTpf8VsdEq+OT~Tw87C;38om{D5bL fNHFu^21W*zFY +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QtButtonPropertyBrowserPrivate +{ + QtButtonPropertyBrowser *q_ptr; + Q_DECLARE_PUBLIC(QtButtonPropertyBrowser) +public: + + void init(QWidget *parent); + + void propertyInserted(QtBrowserItem *index, QtBrowserItem *afterIndex); + void propertyRemoved(QtBrowserItem *index); + void propertyChanged(QtBrowserItem *index); + QWidget *createEditor(QtProperty *property, QWidget *parent) const + { return q_ptr->createEditor(property, parent); } + + void slotEditorDestroyed(); + void slotUpdate(); + void slotToggled(bool checked); + + struct WidgetItem + { + QWidget *widget{nullptr}; // can be null + QLabel *label{nullptr}; // main label with property name + QLabel *widgetLabel{nullptr}; // label substitute showing the current value if there is no widget + QToolButton *button{nullptr}; // expandable button for items with children + QWidget *container{nullptr}; // container which is expanded when the button is clicked + QGridLayout *layout{nullptr}; // layout in container + WidgetItem *parent{nullptr}; + QList children; + bool expanded{false}; + }; +private: + void updateLater(); + void updateItem(WidgetItem *item); + void insertRow(QGridLayout *layout, int row) const; + void removeRow(QGridLayout *layout, int row) const; + int gridRow(WidgetItem *item) const; + int gridSpan(WidgetItem *item) const; + void setExpanded(WidgetItem *item, bool expanded); + QToolButton *createButton(QWidget *panret = 0) const; + + QMap m_indexToItem; + QMap m_itemToIndex; + QMap m_widgetToItem; + QMap m_buttonToItem; + QGridLayout *m_mainLayout; + QList m_children; + QList m_recreateQueue; +}; + +QToolButton *QtButtonPropertyBrowserPrivate::createButton(QWidget *parent) const +{ + QToolButton *button = new QToolButton(parent); + button->setCheckable(true); + button->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed)); + button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + button->setArrowType(Qt::DownArrow); + button->setIconSize(QSize(3, 16)); + /* + QIcon icon; + icon.addPixmap(q_ptr->style()->standardPixmap(QStyle::SP_ArrowDown), QIcon::Normal, QIcon::Off); + icon.addPixmap(q_ptr->style()->standardPixmap(QStyle::SP_ArrowUp), QIcon::Normal, QIcon::On); + button->setIcon(icon); + */ + return button; +} + +int QtButtonPropertyBrowserPrivate::gridRow(WidgetItem *item) const +{ + QList siblings; + if (item->parent) + siblings = item->parent->children; + else + siblings = m_children; + + int row = 0; + for (WidgetItem *sibling : std::as_const(siblings)) { + if (sibling == item) + return row; + row += gridSpan(sibling); + } + return -1; +} + +int QtButtonPropertyBrowserPrivate::gridSpan(WidgetItem *item) const +{ + if (item->container && item->expanded) + return 2; + return 1; +} + +void QtButtonPropertyBrowserPrivate::init(QWidget *parent) +{ + m_mainLayout = new QGridLayout(); + parent->setLayout(m_mainLayout); + QLayoutItem *item = new QSpacerItem(0, 0, + QSizePolicy::Fixed, QSizePolicy::Expanding); + m_mainLayout->addItem(item, 0, 0); +} + +void QtButtonPropertyBrowserPrivate::slotEditorDestroyed() +{ + QWidget *editor = qobject_cast(q_ptr->sender()); + if (!editor) + return; + if (!m_widgetToItem.contains(editor)) + return; + m_widgetToItem[editor]->widget = 0; + m_widgetToItem.remove(editor); +} + +void QtButtonPropertyBrowserPrivate::slotUpdate() +{ + for (WidgetItem *item : std::as_const(m_recreateQueue)) { + WidgetItem *parent = item->parent; + QWidget *w = nullptr; + QGridLayout *l = nullptr; + const int oldRow = gridRow(item); + if (parent) { + w = parent->container; + l = parent->layout; + } else { + w = q_ptr; + l = m_mainLayout; + } + + int span = 1; + if (!item->widget && !item->widgetLabel) + span = 2; + item->label = new QLabel(w); + item->label->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + l->addWidget(item->label, oldRow, 0, 1, span); + + updateItem(item); + } + m_recreateQueue.clear(); +} + +void QtButtonPropertyBrowserPrivate::setExpanded(WidgetItem *item, bool expanded) +{ + if (item->expanded == expanded) + return; + + if (!item->container) + return; + + item->expanded = expanded; + const int row = gridRow(item); + WidgetItem *parent = item->parent; + QGridLayout *l = nullptr; + if (parent) + l = parent->layout; + else + l = m_mainLayout; + + if (expanded) { + insertRow(l, row + 1); + l->addWidget(item->container, row + 1, 0, 1, 2); + item->container->show(); + } else { + l->removeWidget(item->container); + item->container->hide(); + removeRow(l, row + 1); + } + + item->button->setChecked(expanded); + item->button->setArrowType(expanded ? Qt::UpArrow : Qt::DownArrow); +} + +void QtButtonPropertyBrowserPrivate::slotToggled(bool checked) +{ + WidgetItem *item = m_buttonToItem.value(q_ptr->sender()); + if (!item) + return; + + setExpanded(item, checked); + + if (checked) + emit q_ptr->expanded(m_itemToIndex.value(item)); + else + emit q_ptr->collapsed(m_itemToIndex.value(item)); +} + +void QtButtonPropertyBrowserPrivate::updateLater() +{ + QTimer::singleShot(0, q_ptr, SLOT(slotUpdate())); +} + +void QtButtonPropertyBrowserPrivate::propertyInserted(QtBrowserItem *index, QtBrowserItem *afterIndex) +{ + WidgetItem *afterItem = m_indexToItem.value(afterIndex); + WidgetItem *parentItem = m_indexToItem.value(index->parent()); + + WidgetItem *newItem = new WidgetItem(); + newItem->parent = parentItem; + + QGridLayout *layout = nullptr; + QWidget *parentWidget = nullptr; + int row = -1; + if (!afterItem) { + row = 0; + if (parentItem) + parentItem->children.insert(0, newItem); + else + m_children.insert(0, newItem); + } else { + row = gridRow(afterItem) + gridSpan(afterItem); + if (parentItem) + parentItem->children.insert(parentItem->children.indexOf(afterItem) + 1, newItem); + else + m_children.insert(m_children.indexOf(afterItem) + 1, newItem); + } + + if (!parentItem) { + layout = m_mainLayout; + parentWidget = q_ptr; + } else { + if (!parentItem->container) { + m_recreateQueue.removeAll(parentItem); + WidgetItem *grandParent = parentItem->parent; + QGridLayout *l = nullptr; + const int oldRow = gridRow(parentItem); + if (grandParent) { + l = grandParent->layout; + } else { + l = m_mainLayout; + } + QFrame *container = new QFrame(); + container->setFrameShape(QFrame::Panel); + container->setFrameShadow(QFrame::Raised); + parentItem->container = container; + parentItem->button = createButton(); + m_buttonToItem[parentItem->button] = parentItem; + q_ptr->connect(parentItem->button, SIGNAL(toggled(bool)), q_ptr, SLOT(slotToggled(bool))); + parentItem->layout = new QGridLayout(); + container->setLayout(parentItem->layout); + if (parentItem->label) { + l->removeWidget(parentItem->label); + delete parentItem->label; + parentItem->label = nullptr; + } + int span = 1; + if (!parentItem->widget && !parentItem->widgetLabel) + span = 2; + l->addWidget(parentItem->button, oldRow, 0, 1, span); + updateItem(parentItem); + } + layout = parentItem->layout; + parentWidget = parentItem->container; + } + + newItem->label = new QLabel(parentWidget); + newItem->label->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + newItem->widget = createEditor(index->property(), parentWidget); + if (newItem->widget) { + QObject::connect(newItem->widget, SIGNAL(destroyed()), q_ptr, SLOT(slotEditorDestroyed())); + m_widgetToItem[newItem->widget] = newItem; + } else if (index->property()->hasValue()) { + newItem->widgetLabel = new QLabel(parentWidget); + newItem->widgetLabel->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed)); + } + + insertRow(layout, row); + int span = 1; + if (newItem->widget) + layout->addWidget(newItem->widget, row, 1); + else if (newItem->widgetLabel) + layout->addWidget(newItem->widgetLabel, row, 1); + else + span = 2; + layout->addWidget(newItem->label, row, 0, span, 1); + + m_itemToIndex[newItem] = index; + m_indexToItem[index] = newItem; + + updateItem(newItem); +} + +void QtButtonPropertyBrowserPrivate::propertyRemoved(QtBrowserItem *index) +{ + WidgetItem *item = m_indexToItem.value(index); + + m_indexToItem.remove(index); + m_itemToIndex.remove(item); + + WidgetItem *parentItem = item->parent; + + const int row = gridRow(item); + + if (parentItem) + parentItem->children.removeAt(parentItem->children.indexOf(item)); + else + m_children.removeAt(m_children.indexOf(item)); + + const int colSpan = gridSpan(item); + + m_buttonToItem.remove(item->button); + + if (item->widget) + delete item->widget; + if (item->label) + delete item->label; + if (item->widgetLabel) + delete item->widgetLabel; + if (item->button) + delete item->button; + if (item->container) + delete item->container; + + if (!parentItem) { + removeRow(m_mainLayout, row); + if (colSpan > 1) + removeRow(m_mainLayout, row); + } else if (parentItem->children.size() != 0) { + removeRow(parentItem->layout, row); + if (colSpan > 1) + removeRow(parentItem->layout, row); + } else { + const WidgetItem *grandParent = parentItem->parent; + QGridLayout *l = nullptr; + if (grandParent) { + l = grandParent->layout; + } else { + l = m_mainLayout; + } + + const int parentRow = gridRow(parentItem); + const int parentSpan = gridSpan(parentItem); + + l->removeWidget(parentItem->button); + l->removeWidget(parentItem->container); + delete parentItem->button; + delete parentItem->container; + parentItem->button = nullptr; + parentItem->container = nullptr; + parentItem->layout = nullptr; + if (!m_recreateQueue.contains(parentItem)) + m_recreateQueue.append(parentItem); + if (parentSpan > 1) + removeRow(l, parentRow + 1); + + updateLater(); + } + m_recreateQueue.removeAll(item); + + delete item; +} + +void QtButtonPropertyBrowserPrivate::insertRow(QGridLayout *layout, int row) const +{ + QMap itemToPos; + int idx = 0; + while (idx < layout->count()) { + int r, c, rs, cs; + layout->getItemPosition(idx, &r, &c, &rs, &cs); + if (r >= row) { + itemToPos[layout->takeAt(idx)] = QRect(r + 1, c, rs, cs); + } else { + idx++; + } + } + + for (auto it = itemToPos.constBegin(), icend = itemToPos.constEnd(); it != icend; ++it) { + const QRect r = it.value(); + layout->addItem(it.key(), r.x(), r.y(), r.width(), r.height()); + } +} + +void QtButtonPropertyBrowserPrivate::removeRow(QGridLayout *layout, int row) const +{ + QMap itemToPos; + int idx = 0; + while (idx < layout->count()) { + int r, c, rs, cs; + layout->getItemPosition(idx, &r, &c, &rs, &cs); + if (r > row) { + itemToPos[layout->takeAt(idx)] = QRect(r - 1, c, rs, cs); + } else { + idx++; + } + } + + for (auto it = itemToPos.constBegin(), icend = itemToPos.constEnd(); it != icend; ++it) { + const QRect r = it.value(); + layout->addItem(it.key(), r.x(), r.y(), r.width(), r.height()); + } +} + +void QtButtonPropertyBrowserPrivate::propertyChanged(QtBrowserItem *index) +{ + WidgetItem *item = m_indexToItem.value(index); + + updateItem(item); +} + +void QtButtonPropertyBrowserPrivate::updateItem(WidgetItem *item) +{ + QtProperty *property = m_itemToIndex[item]->property(); + if (item->button) { + QFont font = item->button->font(); + font.setUnderline(property->isModified()); + item->button->setFont(font); + item->button->setText(property->propertyName()); + item->button->setToolTip(property->descriptionToolTip()); + item->button->setStatusTip(property->statusTip()); + item->button->setWhatsThis(property->whatsThis()); + item->button->setEnabled(property->isEnabled()); + } + if (item->label) { + QFont font = item->label->font(); + font.setUnderline(property->isModified()); + item->label->setFont(font); + item->label->setText(property->propertyName()); + item->label->setToolTip(property->descriptionToolTip()); + item->label->setStatusTip(property->statusTip()); + item->label->setWhatsThis(property->whatsThis()); + item->label->setEnabled(property->isEnabled()); + } + if (item->widgetLabel) { + QFont font = item->widgetLabel->font(); + font.setUnderline(false); + item->widgetLabel->setFont(font); + item->widgetLabel->setText(property->valueText()); + item->widgetLabel->setToolTip(property->valueText()); + item->widgetLabel->setEnabled(property->isEnabled()); + } + if (item->widget) { + QFont font = item->widget->font(); + font.setUnderline(false); + item->widget->setFont(font); + item->widget->setEnabled(property->isEnabled()); + const QString valueToolTip = property->valueToolTip(); + item->widget->setToolTip(valueToolTip.isEmpty() ? property->valueText() : valueToolTip); + } +} + + + +/*! + \class QtButtonPropertyBrowser + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtButtonPropertyBrowser class provides a drop down QToolButton + based property browser. + + A property browser is a widget that enables the user to edit a + given set of properties. Each property is represented by a label + specifying the property's name, and an editing widget (e.g. a line + edit or a combobox) holding its value. A property can have zero or + more subproperties. + + QtButtonPropertyBrowser provides drop down button for all nested + properties, i.e. subproperties are enclosed by a container associated with + the drop down button. The parent property's name is displayed as button text. For example: + + \image qtbuttonpropertybrowser.png + + Use the QtAbstractPropertyBrowser API to add, insert and remove + properties from an instance of the QtButtonPropertyBrowser + class. The properties themselves are created and managed by + implementations of the QtAbstractPropertyManager class. + + \sa QtTreePropertyBrowser, QtAbstractPropertyBrowser +*/ + +/*! + \fn void QtButtonPropertyBrowser::collapsed(QtBrowserItem *item) + + This signal is emitted when the \a item is collapsed. + + \sa expanded(), setExpanded() +*/ + +/*! + \fn void QtButtonPropertyBrowser::expanded(QtBrowserItem *item) + + This signal is emitted when the \a item is expanded. + + \sa collapsed(), setExpanded() +*/ + +/*! + Creates a property browser with the given \a parent. +*/ +QtButtonPropertyBrowser::QtButtonPropertyBrowser(QWidget *parent) + : QtAbstractPropertyBrowser(parent), d_ptr(new QtButtonPropertyBrowserPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->init(this); +} + +/*! + Destroys this property browser. + + Note that the properties that were inserted into this browser are + \e not destroyed since they may still be used in other + browsers. The properties are owned by the manager that created + them. + + \sa QtProperty, QtAbstractPropertyManager +*/ +QtButtonPropertyBrowser::~QtButtonPropertyBrowser() +{ + const QMap::ConstIterator icend = d_ptr->m_itemToIndex.constEnd(); + for (QMap::ConstIterator it = d_ptr->m_itemToIndex.constBegin(); it != icend; ++it) + delete it.key(); +} + +/*! + \reimp +*/ +void QtButtonPropertyBrowser::itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem) +{ + d_ptr->propertyInserted(item, afterItem); +} + +/*! + \reimp +*/ +void QtButtonPropertyBrowser::itemRemoved(QtBrowserItem *item) +{ + d_ptr->propertyRemoved(item); +} + +/*! + \reimp +*/ +void QtButtonPropertyBrowser::itemChanged(QtBrowserItem *item) +{ + d_ptr->propertyChanged(item); +} + +/*! + Sets the \a item to either collapse or expanded, depending on the value of \a expanded. + + \sa isExpanded(), expanded(), collapsed() +*/ + +void QtButtonPropertyBrowser::setExpanded(QtBrowserItem *item, bool expanded) +{ + QtButtonPropertyBrowserPrivate::WidgetItem *itm = d_ptr->m_indexToItem.value(item); + if (itm) + d_ptr->setExpanded(itm, expanded); +} + +/*! + Returns true if the \a item is expanded; otherwise returns false. + + \sa setExpanded() +*/ + +bool QtButtonPropertyBrowser::isExpanded(QtBrowserItem *item) const +{ + QtButtonPropertyBrowserPrivate::WidgetItem *itm = d_ptr->m_indexToItem.value(item); + if (itm) + return itm->expanded; + return false; +} + +QT_END_NAMESPACE + +#include "moc_qtbuttonpropertybrowser.cpp" diff --git a/src/shared/qtpropertybrowser/qtbuttonpropertybrowser.h b/src/shared/qtpropertybrowser/qtbuttonpropertybrowser.h new file mode 100644 index 0000000..88df58f --- /dev/null +++ b/src/shared/qtpropertybrowser/qtbuttonpropertybrowser.h @@ -0,0 +1,47 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTBUTTONPROPERTYBROWSER_H +#define QTBUTTONPROPERTYBROWSER_H + +#include "qtpropertybrowser.h" + +QT_BEGIN_NAMESPACE + +class QtButtonPropertyBrowserPrivate; + +class QtButtonPropertyBrowser : public QtAbstractPropertyBrowser +{ + Q_OBJECT +public: + + QtButtonPropertyBrowser(QWidget *parent = 0); + ~QtButtonPropertyBrowser(); + + void setExpanded(QtBrowserItem *item, bool expanded); + bool isExpanded(QtBrowserItem *item) const; + +Q_SIGNALS: + + void collapsed(QtBrowserItem *item); + void expanded(QtBrowserItem *item); + +protected: + void itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem) override; + void itemRemoved(QtBrowserItem *item) override; + void itemChanged(QtBrowserItem *item) override; + +private: + + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtButtonPropertyBrowser) + Q_DISABLE_COPY_MOVE(QtButtonPropertyBrowser) + Q_PRIVATE_SLOT(d_func(), void slotUpdate()) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed()) + Q_PRIVATE_SLOT(d_func(), void slotToggled(bool)) + +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtpropertybrowser/qteditorfactory.cpp b/src/shared/qtpropertybrowser/qteditorfactory.cpp new file mode 100644 index 0000000..e53f687 --- /dev/null +++ b/src/shared/qtpropertybrowser/qteditorfactory.cpp @@ -0,0 +1,2493 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qteditorfactory.h" +#include "qtpropertybrowserutils_p.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(Q_CC_MSVC) +# pragma warning(disable: 4786) /* MS VS 6: truncating debug info after 255 characters */ +#endif + +QT_BEGIN_NAMESPACE + +// Set a hard coded left margin to account for the indentation +// of the tree view icon when switching to an editor + +static inline void setupTreeViewEditorMargin(QLayout *lt) +{ + enum { DecorationMargin = 4 }; + if (QApplication::layoutDirection() == Qt::LeftToRight) + lt->setContentsMargins(DecorationMargin, 0, 0, 0); + else + lt->setContentsMargins(0, 0, DecorationMargin, 0); +} + +// ---------- EditorFactoryPrivate : +// Base class for editor factory private classes. Manages mapping of properties to editors and vice versa. + +template +class EditorFactoryPrivate +{ +public: + + typedef QList EditorList; + typedef QMap PropertyToEditorListMap; + typedef QMap EditorToPropertyMap; + + Editor *createEditor(QtProperty *property, QWidget *parent); + void initializeEditor(QtProperty *property, Editor *e); + void slotEditorDestroyed(QObject *object); + + PropertyToEditorListMap m_createdEditors; + EditorToPropertyMap m_editorToProperty; +}; + +template +Editor *EditorFactoryPrivate::createEditor(QtProperty *property, QWidget *parent) +{ + Editor *editor = new Editor(parent); + initializeEditor(property, editor); + return editor; +} + +template +void EditorFactoryPrivate::initializeEditor(QtProperty *property, Editor *editor) +{ + typename PropertyToEditorListMap::iterator it = m_createdEditors.find(property); + if (it == m_createdEditors.end()) + it = m_createdEditors.insert(property, EditorList()); + it.value().append(editor); + m_editorToProperty.insert(editor, property); +} + +template +void EditorFactoryPrivate::slotEditorDestroyed(QObject *object) +{ + const typename EditorToPropertyMap::iterator ecend = m_editorToProperty.end(); + for (typename EditorToPropertyMap::iterator itEditor = m_editorToProperty.begin(); itEditor != ecend; ++itEditor) { + if (itEditor.key() == object) { + Editor *editor = itEditor.key(); + QtProperty *property = itEditor.value(); + const typename PropertyToEditorListMap::iterator pit = m_createdEditors.find(property); + if (pit != m_createdEditors.end()) { + pit.value().removeAll(editor); + if (pit.value().isEmpty()) + m_createdEditors.erase(pit); + } + m_editorToProperty.erase(itEditor); + return; + } + } +} + +// ------------ QtSpinBoxFactory + +class QtSpinBoxFactoryPrivate : public EditorFactoryPrivate +{ + QtSpinBoxFactory *q_ptr; + Q_DECLARE_PUBLIC(QtSpinBoxFactory) +public: + + void slotPropertyChanged(QtProperty *property, int value); + void slotRangeChanged(QtProperty *property, int min, int max); + void slotSingleStepChanged(QtProperty *property, int step); + void slotSetValue(int value); +}; + +void QtSpinBoxFactoryPrivate::slotPropertyChanged(QtProperty *property, int value) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.cend()) + return; + for (QSpinBox *editor : it.value()) { + if (editor->value() != value) { + editor->blockSignals(true); + editor->setValue(value); + editor->blockSignals(false); + } + } +} + +void QtSpinBoxFactoryPrivate::slotRangeChanged(QtProperty *property, int min, int max) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.cend()) + return; + + QtIntPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + + for (QSpinBox *editor : it.value()) { + editor->blockSignals(true); + editor->setRange(min, max); + editor->setValue(manager->value(property)); + editor->blockSignals(false); + } +} + +void QtSpinBoxFactoryPrivate::slotSingleStepChanged(QtProperty *property, int step) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.cend()) + return; + for (QSpinBox *editor : it.value()) { + editor->blockSignals(true); + editor->setSingleStep(step); + editor->blockSignals(false); + } +} + +void QtSpinBoxFactoryPrivate::slotSetValue(int value) +{ + QObject *object = q_ptr->sender(); + const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); + for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) { + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtIntPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } + } +} + +/*! + \class QtSpinBoxFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtSpinBoxFactory class provides QSpinBox widgets for + properties created by QtIntPropertyManager objects. + + \sa QtAbstractEditorFactory, QtIntPropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtSpinBoxFactory::QtSpinBoxFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtSpinBoxFactoryPrivate()) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtSpinBoxFactory::~QtSpinBoxFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtSpinBoxFactory::connectPropertyManager(QtIntPropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotPropertyChanged(QtProperty*,int))); + connect(manager, SIGNAL(rangeChanged(QtProperty*,int,int)), + this, SLOT(slotRangeChanged(QtProperty*,int,int))); + connect(manager, SIGNAL(singleStepChanged(QtProperty*,int)), + this, SLOT(slotSingleStepChanged(QtProperty*,int))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtSpinBoxFactory::createEditor(QtIntPropertyManager *manager, QtProperty *property, + QWidget *parent) +{ + QSpinBox *editor = d_ptr->createEditor(property, parent); + editor->setSingleStep(manager->singleStep(property)); + editor->setRange(manager->minimum(property), manager->maximum(property)); + editor->setValue(manager->value(property)); + editor->setKeyboardTracking(false); + + connect(editor, SIGNAL(valueChanged(int)), this, SLOT(slotSetValue(int))); + connect(editor, SIGNAL(destroyed(QObject*)), + this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtSpinBoxFactory::disconnectPropertyManager(QtIntPropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotPropertyChanged(QtProperty*,int))); + disconnect(manager, SIGNAL(rangeChanged(QtProperty*,int,int)), + this, SLOT(slotRangeChanged(QtProperty*,int,int))); + disconnect(manager, SIGNAL(singleStepChanged(QtProperty*,int)), + this, SLOT(slotSingleStepChanged(QtProperty*,int))); +} + +// QtSliderFactory + +class QtSliderFactoryPrivate : public EditorFactoryPrivate +{ + QtSliderFactory *q_ptr; + Q_DECLARE_PUBLIC(QtSliderFactory) +public: + void slotPropertyChanged(QtProperty *property, int value); + void slotRangeChanged(QtProperty *property, int min, int max); + void slotSingleStepChanged(QtProperty *property, int step); + void slotSetValue(int value); +}; + +void QtSliderFactoryPrivate::slotPropertyChanged(QtProperty *property, int value) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.cend()) + return; + for (QSlider *editor : it.value()) { + editor->blockSignals(true); + editor->setValue(value); + editor->blockSignals(false); + } +} + +void QtSliderFactoryPrivate::slotRangeChanged(QtProperty *property, int min, int max) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.cend()) + return; + + QtIntPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + + for (QSlider *editor : it.value()) { + editor->blockSignals(true); + editor->setRange(min, max); + editor->setValue(manager->value(property)); + editor->blockSignals(false); + } +} + +void QtSliderFactoryPrivate::slotSingleStepChanged(QtProperty *property, int step) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.cend()) + return; + for (QSlider *editor : it.value()) { + editor->blockSignals(true); + editor->setSingleStep(step); + editor->blockSignals(false); + } +} + +void QtSliderFactoryPrivate::slotSetValue(int value) +{ + QObject *object = q_ptr->sender(); + const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); + for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor ) { + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtIntPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } + } +} + +/*! + \class QtSliderFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtSliderFactory class provides QSlider widgets for + properties created by QtIntPropertyManager objects. + + \sa QtAbstractEditorFactory, QtIntPropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtSliderFactory::QtSliderFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtSliderFactoryPrivate()) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtSliderFactory::~QtSliderFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtSliderFactory::connectPropertyManager(QtIntPropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotPropertyChanged(QtProperty*,int))); + connect(manager, SIGNAL(rangeChanged(QtProperty*,int,int)), + this, SLOT(slotRangeChanged(QtProperty*,int,int))); + connect(manager, SIGNAL(singleStepChanged(QtProperty*,int)), + this, SLOT(slotSingleStepChanged(QtProperty*,int))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtSliderFactory::createEditor(QtIntPropertyManager *manager, QtProperty *property, + QWidget *parent) +{ + QSlider *editor = new QSlider(Qt::Horizontal, parent); + d_ptr->initializeEditor(property, editor); + editor->setSingleStep(manager->singleStep(property)); + editor->setRange(manager->minimum(property), manager->maximum(property)); + editor->setValue(manager->value(property)); + + connect(editor, SIGNAL(valueChanged(int)), this, SLOT(slotSetValue(int))); + connect(editor, SIGNAL(destroyed(QObject*)), + this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtSliderFactory::disconnectPropertyManager(QtIntPropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotPropertyChanged(QtProperty*,int))); + disconnect(manager, SIGNAL(rangeChanged(QtProperty*,int,int)), + this, SLOT(slotRangeChanged(QtProperty*,int,int))); + disconnect(manager, SIGNAL(singleStepChanged(QtProperty*,int)), + this, SLOT(slotSingleStepChanged(QtProperty*,int))); +} + +// QtSliderFactory + +class QtScrollBarFactoryPrivate : public EditorFactoryPrivate +{ + QtScrollBarFactory *q_ptr; + Q_DECLARE_PUBLIC(QtScrollBarFactory) +public: + void slotPropertyChanged(QtProperty *property, int value); + void slotRangeChanged(QtProperty *property, int min, int max); + void slotSingleStepChanged(QtProperty *property, int step); + void slotSetValue(int value); +}; + +void QtScrollBarFactoryPrivate::slotPropertyChanged(QtProperty *property, int value) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.cend()) + return; + + for (QScrollBar *editor : it.value()) { + editor->blockSignals(true); + editor->setValue(value); + editor->blockSignals(false); + } +} + +void QtScrollBarFactoryPrivate::slotRangeChanged(QtProperty *property, int min, int max) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.cend()) + return; + + QtIntPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + + for (QScrollBar *editor : it.value()) { + editor->blockSignals(true); + editor->setRange(min, max); + editor->setValue(manager->value(property)); + editor->blockSignals(false); + } +} + +void QtScrollBarFactoryPrivate::slotSingleStepChanged(QtProperty *property, int step) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.cend()) + return; + for (QScrollBar *editor : it.value()) { + editor->blockSignals(true); + editor->setSingleStep(step); + editor->blockSignals(false); + } +} + +void QtScrollBarFactoryPrivate::slotSetValue(int value) +{ + QObject *object = q_ptr->sender(); + const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); + for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtIntPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } +} + +/*! + \class QtScrollBarFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtScrollBarFactory class provides QScrollBar widgets for + properties created by QtIntPropertyManager objects. + + \sa QtAbstractEditorFactory, QtIntPropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtScrollBarFactory::QtScrollBarFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtScrollBarFactoryPrivate()) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtScrollBarFactory::~QtScrollBarFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtScrollBarFactory::connectPropertyManager(QtIntPropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotPropertyChanged(QtProperty*,int))); + connect(manager, SIGNAL(rangeChanged(QtProperty*,int,int)), + this, SLOT(slotRangeChanged(QtProperty*,int,int))); + connect(manager, SIGNAL(singleStepChanged(QtProperty*,int)), + this, SLOT(slotSingleStepChanged(QtProperty*,int))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtScrollBarFactory::createEditor(QtIntPropertyManager *manager, QtProperty *property, + QWidget *parent) +{ + QScrollBar *editor = new QScrollBar(Qt::Horizontal, parent); + d_ptr->initializeEditor(property, editor); + editor->setSingleStep(manager->singleStep(property)); + editor->setRange(manager->minimum(property), manager->maximum(property)); + editor->setValue(manager->value(property)); + connect(editor, SIGNAL(valueChanged(int)), this, SLOT(slotSetValue(int))); + connect(editor, SIGNAL(destroyed(QObject*)), + this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtScrollBarFactory::disconnectPropertyManager(QtIntPropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotPropertyChanged(QtProperty*,int))); + disconnect(manager, SIGNAL(rangeChanged(QtProperty*,int,int)), + this, SLOT(slotRangeChanged(QtProperty*,int,int))); + disconnect(manager, SIGNAL(singleStepChanged(QtProperty*,int)), + this, SLOT(slotSingleStepChanged(QtProperty*,int))); +} + +// QtCheckBoxFactory + +class QtCheckBoxFactoryPrivate : public EditorFactoryPrivate +{ + QtCheckBoxFactory *q_ptr; + Q_DECLARE_PUBLIC(QtCheckBoxFactory) +public: + void slotPropertyChanged(QtProperty *property, bool value); + void slotSetValue(bool value); +}; + +void QtCheckBoxFactoryPrivate::slotPropertyChanged(QtProperty *property, bool value) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.cend()) + return; + + for (QtBoolEdit *editor : it.value()) { + editor->blockCheckBoxSignals(true); + editor->setChecked(value); + editor->blockCheckBoxSignals(false); + } +} + +void QtCheckBoxFactoryPrivate::slotSetValue(bool value) +{ + QObject *object = q_ptr->sender(); + + const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); + for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtBoolPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } +} + +/*! + \class QtCheckBoxFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtCheckBoxFactory class provides QCheckBox widgets for + properties created by QtBoolPropertyManager objects. + + \sa QtAbstractEditorFactory, QtBoolPropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtCheckBoxFactory::QtCheckBoxFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtCheckBoxFactoryPrivate()) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtCheckBoxFactory::~QtCheckBoxFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtCheckBoxFactory::connectPropertyManager(QtBoolPropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,bool)), + this, SLOT(slotPropertyChanged(QtProperty*,bool))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtCheckBoxFactory::createEditor(QtBoolPropertyManager *manager, QtProperty *property, + QWidget *parent) +{ + QtBoolEdit *editor = d_ptr->createEditor(property, parent); + editor->setChecked(manager->value(property)); + + connect(editor, SIGNAL(toggled(bool)), this, SLOT(slotSetValue(bool))); + connect(editor, SIGNAL(destroyed(QObject*)), + this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtCheckBoxFactory::disconnectPropertyManager(QtBoolPropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,bool)), + this, SLOT(slotPropertyChanged(QtProperty*,bool))); +} + +// QtDoubleSpinBoxFactory + +class QtDoubleSpinBoxFactoryPrivate : public EditorFactoryPrivate +{ + QtDoubleSpinBoxFactory *q_ptr; + Q_DECLARE_PUBLIC(QtDoubleSpinBoxFactory) +public: + + void slotPropertyChanged(QtProperty *property, double value); + void slotRangeChanged(QtProperty *property, double min, double max); + void slotSingleStepChanged(QtProperty *property, double step); + void slotDecimalsChanged(QtProperty *property, int prec); + void slotSetValue(double value); +}; + +void QtDoubleSpinBoxFactoryPrivate::slotPropertyChanged(QtProperty *property, double value) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.cend()) + return; + for (QDoubleSpinBox *editor : it.value()) { + if (editor->value() != value) { + editor->blockSignals(true); + editor->setValue(value); + editor->blockSignals(false); + } + } +} + +void QtDoubleSpinBoxFactoryPrivate::slotRangeChanged(QtProperty *property, + double min, double max) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.cend()) + return; + + QtDoublePropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + + for (QDoubleSpinBox *editor : it.value()) { + editor->blockSignals(true); + editor->setRange(min, max); + editor->setValue(manager->value(property)); + editor->blockSignals(false); + } +} + +void QtDoubleSpinBoxFactoryPrivate::slotSingleStepChanged(QtProperty *property, double step) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.cend()) + return; + + QtDoublePropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + + for (QDoubleSpinBox *editor : it.value()) { + editor->blockSignals(true); + editor->setSingleStep(step); + editor->blockSignals(false); + } +} + +void QtDoubleSpinBoxFactoryPrivate::slotDecimalsChanged(QtProperty *property, int prec) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + + QtDoublePropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + + for (QDoubleSpinBox *editor : it.value()) { + editor->blockSignals(true); + editor->setDecimals(prec); + editor->setValue(manager->value(property)); + editor->blockSignals(false); + } +} + +void QtDoubleSpinBoxFactoryPrivate::slotSetValue(double value) +{ + QObject *object = q_ptr->sender(); + const QMap::ConstIterator itcend = m_editorToProperty.constEnd(); + for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != itcend; ++itEditor) { + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtDoublePropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } + } +} + +/*! \class QtDoubleSpinBoxFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtDoubleSpinBoxFactory class provides QDoubleSpinBox + widgets for properties created by QtDoublePropertyManager objects. + + \sa QtAbstractEditorFactory, QtDoublePropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtDoubleSpinBoxFactory::QtDoubleSpinBoxFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtDoubleSpinBoxFactoryPrivate()) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtDoubleSpinBoxFactory::~QtDoubleSpinBoxFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtDoubleSpinBoxFactory::connectPropertyManager(QtDoublePropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,double)), + this, SLOT(slotPropertyChanged(QtProperty*,double))); + connect(manager, SIGNAL(rangeChanged(QtProperty*,double,double)), + this, SLOT(slotRangeChanged(QtProperty*,double,double))); + connect(manager, SIGNAL(singleStepChanged(QtProperty*,double)), + this, SLOT(slotSingleStepChanged(QtProperty*,double))); + connect(manager, SIGNAL(decimalsChanged(QtProperty*,int)), + this, SLOT(slotDecimalsChanged(QtProperty*,int))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtDoubleSpinBoxFactory::createEditor(QtDoublePropertyManager *manager, + QtProperty *property, QWidget *parent) +{ + QDoubleSpinBox *editor = d_ptr->createEditor(property, parent); + editor->setSingleStep(manager->singleStep(property)); + editor->setDecimals(manager->decimals(property)); + editor->setRange(manager->minimum(property), manager->maximum(property)); + editor->setValue(manager->value(property)); + editor->setKeyboardTracking(false); + + connect(editor, SIGNAL(valueChanged(double)), this, SLOT(slotSetValue(double))); + connect(editor, SIGNAL(destroyed(QObject*)), + this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtDoubleSpinBoxFactory::disconnectPropertyManager(QtDoublePropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,double)), + this, SLOT(slotPropertyChanged(QtProperty*,double))); + disconnect(manager, SIGNAL(rangeChanged(QtProperty*,double,double)), + this, SLOT(slotRangeChanged(QtProperty*,double,double))); + disconnect(manager, SIGNAL(singleStepChanged(QtProperty*,double)), + this, SLOT(slotSingleStepChanged(QtProperty*,double))); + disconnect(manager, SIGNAL(decimalsChanged(QtProperty*,int)), + this, SLOT(slotDecimalsChanged(QtProperty*,int))); +} + +// QtLineEditFactory + +class QtLineEditFactoryPrivate : public EditorFactoryPrivate +{ + QtLineEditFactory *q_ptr; + Q_DECLARE_PUBLIC(QtLineEditFactory) +public: + + void slotPropertyChanged(QtProperty *property, const QString &value); + void slotRegExpChanged(QtProperty *property, const QRegularExpression ®Exp); + void slotSetValue(const QString &value); +}; + +void QtLineEditFactoryPrivate::slotPropertyChanged(QtProperty *property, + const QString &value) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + + for (QLineEdit *editor : it.value()) { + if (editor->text() != value) + editor->setText(value); + } +} + +void QtLineEditFactoryPrivate::slotRegExpChanged(QtProperty *property, + const QRegularExpression ®Exp) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + + QtStringPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + + for (QLineEdit *editor : it.value()) { + editor->blockSignals(true); + const QValidator *oldValidator = editor->validator(); + QValidator *newValidator = nullptr; + if (regExp.isValid()) { + newValidator = new QRegularExpressionValidator(regExp, editor); + } + editor->setValidator(newValidator); + if (oldValidator) + delete oldValidator; + editor->blockSignals(false); + } +} + +void QtLineEditFactoryPrivate::slotSetValue(const QString &value) +{ + QObject *object = q_ptr->sender(); + const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); + for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtStringPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } +} + +/*! + \class QtLineEditFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtLineEditFactory class provides QLineEdit widgets for + properties created by QtStringPropertyManager objects. + + \sa QtAbstractEditorFactory, QtStringPropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtLineEditFactory::QtLineEditFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtLineEditFactoryPrivate()) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtLineEditFactory::~QtLineEditFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtLineEditFactory::connectPropertyManager(QtStringPropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,QString)), + this, SLOT(slotPropertyChanged(QtProperty*,QString))); + connect(manager, SIGNAL(regExpChanged(QtProperty*,QRegularExpression)), + this, SLOT(slotRegExpChanged(QtProperty*,QRegularExpression))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtLineEditFactory::createEditor(QtStringPropertyManager *manager, + QtProperty *property, QWidget *parent) +{ + + QLineEdit *editor = d_ptr->createEditor(property, parent); + QRegularExpression regExp = manager->regExp(property); + if (regExp.isValid() && !regExp.pattern().isEmpty()) { + QValidator *validator = new QRegularExpressionValidator(regExp, editor); + editor->setValidator(validator); + } + editor->setText(manager->value(property)); + + connect(editor, SIGNAL(textEdited(QString)), + this, SLOT(slotSetValue(QString))); + connect(editor, SIGNAL(destroyed(QObject*)), + this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtLineEditFactory::disconnectPropertyManager(QtStringPropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,QString)), + this, SLOT(slotPropertyChanged(QtProperty*,QString))); + disconnect(manager, SIGNAL(regExpChanged(QtProperty*,QRegularExpression)), + this, SLOT(slotRegExpChanged(QtProperty*,QRegularExpression))); +} + +// QtDateEditFactory + +class QtDateEditFactoryPrivate : public EditorFactoryPrivate +{ + QtDateEditFactory *q_ptr; + Q_DECLARE_PUBLIC(QtDateEditFactory) +public: + + void slotPropertyChanged(QtProperty *property, QDate value); + void slotRangeChanged(QtProperty *property, QDate min, QDate max); + void slotSetValue(QDate value); +}; + +void QtDateEditFactoryPrivate::slotPropertyChanged(QtProperty *property, QDate value) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + for (QDateEdit *editor : it.value()) { + editor->blockSignals(true); + editor->setDate(value); + editor->blockSignals(false); + } +} + +void QtDateEditFactoryPrivate::slotRangeChanged(QtProperty *property, QDate min, QDate max) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + + QtDatePropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + + for (QDateEdit *editor : it.value()) { + editor->blockSignals(true); + editor->setDateRange(min, max); + editor->setDate(manager->value(property)); + editor->blockSignals(false); + } +} + +void QtDateEditFactoryPrivate::slotSetValue(QDate value) +{ + QObject *object = q_ptr->sender(); + const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); + for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtDatePropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } +} + +/*! + \class QtDateEditFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtDateEditFactory class provides QDateEdit widgets for + properties created by QtDatePropertyManager objects. + + \sa QtAbstractEditorFactory, QtDatePropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtDateEditFactory::QtDateEditFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtDateEditFactoryPrivate()) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtDateEditFactory::~QtDateEditFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtDateEditFactory::connectPropertyManager(QtDatePropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,QDate)), + this, SLOT(slotPropertyChanged(QtProperty*,QDate))); + connect(manager, SIGNAL(rangeChanged(QtProperty*,QDate,QDate)), + this, SLOT(slotRangeChanged(QtProperty*,QDate,QDate))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtDateEditFactory::createEditor(QtDatePropertyManager *manager, QtProperty *property, + QWidget *parent) +{ + QDateEdit *editor = d_ptr->createEditor(property, parent); + editor->setDisplayFormat(QtPropertyBrowserUtils::dateFormat()); + editor->setCalendarPopup(true); + editor->setDateRange(manager->minimum(property), manager->maximum(property)); + editor->setDate(manager->value(property)); + + connect(editor, SIGNAL(dateChanged(QDate)), + this, SLOT(slotSetValue(QDate))); + connect(editor, SIGNAL(destroyed(QObject*)), + this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtDateEditFactory::disconnectPropertyManager(QtDatePropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,QDate)), + this, SLOT(slotPropertyChanged(QtProperty*,QDate))); + disconnect(manager, SIGNAL(rangeChanged(QtProperty*,QDate,QDate)), + this, SLOT(slotRangeChanged(QtProperty*,QDate,QDate))); +} + +// QtTimeEditFactory + +class QtTimeEditFactoryPrivate : public EditorFactoryPrivate +{ + QtTimeEditFactory *q_ptr; + Q_DECLARE_PUBLIC(QtTimeEditFactory) +public: + + void slotPropertyChanged(QtProperty *property, QTime value); + void slotSetValue(QTime value); +}; + +void QtTimeEditFactoryPrivate::slotPropertyChanged(QtProperty *property, QTime value) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + for (QTimeEdit *editor : it.value()) { + editor->blockSignals(true); + editor->setTime(value); + editor->blockSignals(false); + } +} + +void QtTimeEditFactoryPrivate::slotSetValue(QTime value) +{ + QObject *object = q_ptr->sender(); + const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); + for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtTimePropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } +} + +/*! + \class QtTimeEditFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtTimeEditFactory class provides QTimeEdit widgets for + properties created by QtTimePropertyManager objects. + + \sa QtAbstractEditorFactory, QtTimePropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtTimeEditFactory::QtTimeEditFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtTimeEditFactoryPrivate()) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtTimeEditFactory::~QtTimeEditFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtTimeEditFactory::connectPropertyManager(QtTimePropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,QTime)), + this, SLOT(slotPropertyChanged(QtProperty*,QTime))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtTimeEditFactory::createEditor(QtTimePropertyManager *manager, QtProperty *property, + QWidget *parent) +{ + QTimeEdit *editor = d_ptr->createEditor(property, parent); + editor->setDisplayFormat(QtPropertyBrowserUtils::timeFormat()); + editor->setTime(manager->value(property)); + + connect(editor, SIGNAL(timeChanged(QTime)), + this, SLOT(slotSetValue(QTime))); + connect(editor, SIGNAL(destroyed(QObject*)), + this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtTimeEditFactory::disconnectPropertyManager(QtTimePropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,QTime)), + this, SLOT(slotPropertyChanged(QtProperty*,QTime))); +} + +// QtDateTimeEditFactory + +class QtDateTimeEditFactoryPrivate : public EditorFactoryPrivate +{ + QtDateTimeEditFactory *q_ptr; + Q_DECLARE_PUBLIC(QtDateTimeEditFactory) +public: + + void slotPropertyChanged(QtProperty *property, const QDateTime &value); + void slotSetValue(const QDateTime &value); + +}; + +void QtDateTimeEditFactoryPrivate::slotPropertyChanged(QtProperty *property, + const QDateTime &value) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + + for (QDateTimeEdit *editor : it.value()) { + editor->blockSignals(true); + editor->setDateTime(value); + editor->blockSignals(false); + } +} + +void QtDateTimeEditFactoryPrivate::slotSetValue(const QDateTime &value) +{ + QObject *object = q_ptr->sender(); + const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); + for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtDateTimePropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } +} + +/*! + \class QtDateTimeEditFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtDateTimeEditFactory class provides QDateTimeEdit + widgets for properties created by QtDateTimePropertyManager objects. + + \sa QtAbstractEditorFactory, QtDateTimePropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtDateTimeEditFactory::QtDateTimeEditFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtDateTimeEditFactoryPrivate()) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtDateTimeEditFactory::~QtDateTimeEditFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtDateTimeEditFactory::connectPropertyManager(QtDateTimePropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,QDateTime)), + this, SLOT(slotPropertyChanged(QtProperty*,QDateTime))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtDateTimeEditFactory::createEditor(QtDateTimePropertyManager *manager, + QtProperty *property, QWidget *parent) +{ + QDateTimeEdit *editor = d_ptr->createEditor(property, parent); + editor->setDisplayFormat(QtPropertyBrowserUtils::dateTimeFormat()); + editor->setDateTime(manager->value(property)); + + connect(editor, SIGNAL(dateTimeChanged(QDateTime)), + this, SLOT(slotSetValue(QDateTime))); + connect(editor, SIGNAL(destroyed(QObject*)), + this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtDateTimeEditFactory::disconnectPropertyManager(QtDateTimePropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,QDateTime)), + this, SLOT(slotPropertyChanged(QtProperty*,QDateTime))); +} + +// QtKeySequenceEditorFactory + +class QtKeySequenceEditorFactoryPrivate : public EditorFactoryPrivate +{ + QtKeySequenceEditorFactory *q_ptr; + Q_DECLARE_PUBLIC(QtKeySequenceEditorFactory) +public: + + void slotPropertyChanged(QtProperty *property, const QKeySequence &value); + void slotSetValue(const QKeySequence &value); +}; + +void QtKeySequenceEditorFactoryPrivate::slotPropertyChanged(QtProperty *property, + const QKeySequence &value) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + + for (QKeySequenceEdit *editor : it.value()) { + editor->blockSignals(true); + editor->setKeySequence(value); + editor->blockSignals(false); + } +} + +void QtKeySequenceEditorFactoryPrivate::slotSetValue(const QKeySequence &value) +{ + QObject *object = q_ptr->sender(); + const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); + for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtKeySequencePropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } +} + +/*! + \class QtKeySequenceEditorFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtKeySequenceEditorFactory class provides editor + widgets for properties created by QtKeySequencePropertyManager objects. + + \sa QtAbstractEditorFactory +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtKeySequenceEditorFactory::QtKeySequenceEditorFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtKeySequenceEditorFactoryPrivate()) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtKeySequenceEditorFactory::~QtKeySequenceEditorFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtKeySequenceEditorFactory::connectPropertyManager(QtKeySequencePropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,QKeySequence)), + this, SLOT(slotPropertyChanged(QtProperty*,QKeySequence))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtKeySequenceEditorFactory::createEditor(QtKeySequencePropertyManager *manager, + QtProperty *property, QWidget *parent) +{ + QKeySequenceEdit *editor = d_ptr->createEditor(property, parent); + editor->setKeySequence(manager->value(property)); + + connect(editor, SIGNAL(keySequenceChanged(QKeySequence)), + this, SLOT(slotSetValue(QKeySequence))); + connect(editor, SIGNAL(destroyed(QObject*)), + this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtKeySequenceEditorFactory::disconnectPropertyManager(QtKeySequencePropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,QKeySequence)), + this, SLOT(slotPropertyChanged(QtProperty*,QKeySequence))); +} + +// QtCharEdit + +class QtCharEdit : public QWidget +{ + Q_OBJECT +public: + QtCharEdit(QWidget *parent = 0); + + QChar value() const; + bool eventFilter(QObject *o, QEvent *e) override; +public Q_SLOTS: + void setValue(const QChar &value); +Q_SIGNALS: + void valueChanged(const QChar &value); +protected: + void focusInEvent(QFocusEvent *e) override; + void focusOutEvent(QFocusEvent *e) override; + void keyPressEvent(QKeyEvent *e) override; + void keyReleaseEvent(QKeyEvent *e) override; + bool event(QEvent *e) override; +private slots: + void slotClearChar(); +private: + void handleKeyEvent(QKeyEvent *e); + + QChar m_value; + QLineEdit *m_lineEdit; +}; + +QtCharEdit::QtCharEdit(QWidget *parent) + : QWidget(parent), m_lineEdit(new QLineEdit(this)) +{ + QHBoxLayout *layout = new QHBoxLayout(this); + layout->addWidget(m_lineEdit); + layout->setContentsMargins(QMargins()); + m_lineEdit->installEventFilter(this); + m_lineEdit->setReadOnly(true); + m_lineEdit->setFocusProxy(this); + setFocusPolicy(m_lineEdit->focusPolicy()); + setAttribute(Qt::WA_InputMethodEnabled); +} + +bool QtCharEdit::eventFilter(QObject *o, QEvent *e) +{ + if (o == m_lineEdit && e->type() == QEvent::ContextMenu) { + QContextMenuEvent *c = static_cast(e); + QMenu *menu = m_lineEdit->createStandardContextMenu(); + const auto actions = menu->actions(); + for (QAction *action : actions) { + action->setShortcut(QKeySequence()); + QString actionString = action->text(); + const int pos = actionString.lastIndexOf(QLatin1Char('\t')); + if (pos > 0) + actionString = actionString.remove(pos, actionString.size() - pos); + action->setText(actionString); + } + QAction *actionBefore = nullptr; + if (actions.size() > 0) + actionBefore = actions[0]; + QAction *clearAction = new QAction(tr("Clear Char"), menu); + menu->insertAction(actionBefore, clearAction); + menu->insertSeparator(actionBefore); + clearAction->setEnabled(!m_value.isNull()); + connect(clearAction, SIGNAL(triggered()), this, SLOT(slotClearChar())); + menu->exec(c->globalPos()); + delete menu; + e->accept(); + return true; + } + + return QWidget::eventFilter(o, e); +} + +void QtCharEdit::slotClearChar() +{ + if (m_value.isNull()) + return; + setValue(QChar()); + emit valueChanged(m_value); +} + +void QtCharEdit::handleKeyEvent(QKeyEvent *e) +{ + const int key = e->key(); + switch (key) { + case Qt::Key_Control: + case Qt::Key_Shift: + case Qt::Key_Meta: + case Qt::Key_Alt: + case Qt::Key_Super_L: + case Qt::Key_Return: + return; + default: + break; + } + + const QString text = e->text(); + if (text.size() != 1) + return; + + const QChar c = text.at(0); + if (!c.isPrint()) + return; + + if (m_value == c) + return; + + m_value = c; + const QString str = m_value.isNull() ? QString() : QString(m_value); + m_lineEdit->setText(str); + e->accept(); + emit valueChanged(m_value); +} + +void QtCharEdit::setValue(const QChar &value) +{ + if (value == m_value) + return; + + m_value = value; + QString str = value.isNull() ? QString() : QString(value); + m_lineEdit->setText(str); +} + +QChar QtCharEdit::value() const +{ + return m_value; +} + +void QtCharEdit::focusInEvent(QFocusEvent *e) +{ + m_lineEdit->event(e); + m_lineEdit->selectAll(); + QWidget::focusInEvent(e); +} + +void QtCharEdit::focusOutEvent(QFocusEvent *e) +{ + m_lineEdit->event(e); + QWidget::focusOutEvent(e); +} + +void QtCharEdit::keyPressEvent(QKeyEvent *e) +{ + handleKeyEvent(e); + e->accept(); +} + +void QtCharEdit::keyReleaseEvent(QKeyEvent *e) +{ + m_lineEdit->event(e); +} + +bool QtCharEdit::event(QEvent *e) +{ + switch(e->type()) { + case QEvent::Shortcut: + case QEvent::ShortcutOverride: + case QEvent::KeyRelease: + e->accept(); + return true; + default: + break; + } + return QWidget::event(e); +} + +// QtCharEditorFactory + +class QtCharEditorFactoryPrivate : public EditorFactoryPrivate +{ + QtCharEditorFactory *q_ptr; + Q_DECLARE_PUBLIC(QtCharEditorFactory) +public: + + void slotPropertyChanged(QtProperty *property, const QChar &value); + void slotSetValue(const QChar &value); + +}; + +void QtCharEditorFactoryPrivate::slotPropertyChanged(QtProperty *property, + const QChar &value) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + + for (QtCharEdit *editor : it.value()) { + editor->blockSignals(true); + editor->setValue(value); + editor->blockSignals(false); + } +} + +void QtCharEditorFactoryPrivate::slotSetValue(const QChar &value) +{ + QObject *object = q_ptr->sender(); + const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); + for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtCharPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } +} + +/*! + \class QtCharEditorFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtCharEditorFactory class provides editor + widgets for properties created by QtCharPropertyManager objects. + + \sa QtAbstractEditorFactory +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtCharEditorFactory::QtCharEditorFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtCharEditorFactoryPrivate()) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtCharEditorFactory::~QtCharEditorFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtCharEditorFactory::connectPropertyManager(QtCharPropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,QChar)), + this, SLOT(slotPropertyChanged(QtProperty*,QChar))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtCharEditorFactory::createEditor(QtCharPropertyManager *manager, + QtProperty *property, QWidget *parent) +{ + QtCharEdit *editor = d_ptr->createEditor(property, parent); + editor->setValue(manager->value(property)); + + connect(editor, SIGNAL(valueChanged(QChar)), + this, SLOT(slotSetValue(QChar))); + connect(editor, SIGNAL(destroyed(QObject*)), + this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtCharEditorFactory::disconnectPropertyManager(QtCharPropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,QChar)), + this, SLOT(slotPropertyChanged(QtProperty*,QChar))); +} + +// QtEnumEditorFactory + +class QtEnumEditorFactoryPrivate : public EditorFactoryPrivate +{ + QtEnumEditorFactory *q_ptr; + Q_DECLARE_PUBLIC(QtEnumEditorFactory) +public: + + void slotPropertyChanged(QtProperty *property, int value); + void slotEnumNamesChanged(QtProperty *property, const QStringList &); + void slotEnumIconsChanged(QtProperty *property, const QMap &); + void slotSetValue(int value); +}; + +void QtEnumEditorFactoryPrivate::slotPropertyChanged(QtProperty *property, int value) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + + for (QComboBox *editor : it.value()) { + editor->blockSignals(true); + editor->setCurrentIndex(value); + editor->blockSignals(false); + } +} + +void QtEnumEditorFactoryPrivate::slotEnumNamesChanged(QtProperty *property, + const QStringList &enumNames) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + + QtEnumPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + + QMap enumIcons = manager->enumIcons(property); + + for (QComboBox *editor : it.value()) { + editor->blockSignals(true); + editor->clear(); + editor->addItems(enumNames); + const int nameCount = enumNames.size(); + for (int i = 0; i < nameCount; i++) + editor->setItemIcon(i, enumIcons.value(i)); + editor->setCurrentIndex(manager->value(property)); + editor->blockSignals(false); + } +} + +void QtEnumEditorFactoryPrivate::slotEnumIconsChanged(QtProperty *property, + const QMap &enumIcons) +{ + const auto it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + + QtEnumPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + + const QStringList enumNames = manager->enumNames(property); + for (QComboBox *editor : it.value()) { + editor->blockSignals(true); + const int nameCount = enumNames.size(); + for (int i = 0; i < nameCount; i++) + editor->setItemIcon(i, enumIcons.value(i)); + editor->setCurrentIndex(manager->value(property)); + editor->blockSignals(false); + } +} + +void QtEnumEditorFactoryPrivate::slotSetValue(int value) +{ + QObject *object = q_ptr->sender(); + const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); + for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtEnumPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } +} + +/*! + \class QtEnumEditorFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtEnumEditorFactory class provides QComboBox widgets for + properties created by QtEnumPropertyManager objects. + + \sa QtAbstractEditorFactory, QtEnumPropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtEnumEditorFactory::QtEnumEditorFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtEnumEditorFactoryPrivate()) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtEnumEditorFactory::~QtEnumEditorFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtEnumEditorFactory::connectPropertyManager(QtEnumPropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotPropertyChanged(QtProperty*,int))); + connect(manager, SIGNAL(enumNamesChanged(QtProperty*,QStringList)), + this, SLOT(slotEnumNamesChanged(QtProperty*,QStringList))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtEnumEditorFactory::createEditor(QtEnumPropertyManager *manager, QtProperty *property, + QWidget *parent) +{ + QComboBox *editor = d_ptr->createEditor(property, parent); + editor->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed); + editor->view()->setTextElideMode(Qt::ElideRight); + QStringList enumNames = manager->enumNames(property); + editor->addItems(enumNames); + QMap enumIcons = manager->enumIcons(property); + const int enumNamesCount = enumNames.size(); + for (int i = 0; i < enumNamesCount; i++) + editor->setItemIcon(i, enumIcons.value(i)); + editor->setCurrentIndex(manager->value(property)); + + connect(editor, SIGNAL(currentIndexChanged(int)), this, SLOT(slotSetValue(int))); + connect(editor, SIGNAL(destroyed(QObject*)), + this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtEnumEditorFactory::disconnectPropertyManager(QtEnumPropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotPropertyChanged(QtProperty*,int))); + disconnect(manager, SIGNAL(enumNamesChanged(QtProperty*,QStringList)), + this, SLOT(slotEnumNamesChanged(QtProperty*,QStringList))); +} + +// QtCursorEditorFactory + +Q_GLOBAL_STATIC(QtCursorDatabase, cursorDatabase) + +class QtCursorEditorFactoryPrivate +{ + QtCursorEditorFactory *q_ptr; + Q_DECLARE_PUBLIC(QtCursorEditorFactory) +public: + QtCursorEditorFactoryPrivate(); + + void slotPropertyChanged(QtProperty *property, const QCursor &cursor); + void slotEnumChanged(QtProperty *property, int value); + void slotEditorDestroyed(QObject *object); + + QtEnumEditorFactory *m_enumEditorFactory; + QtEnumPropertyManager *m_enumPropertyManager; + + QMap m_propertyToEnum; + QMap m_enumToProperty; + QMap m_enumToEditors; + QMap m_editorToEnum; + bool m_updatingEnum; +}; + +QtCursorEditorFactoryPrivate::QtCursorEditorFactoryPrivate() + : m_updatingEnum(false) +{ + +} + +void QtCursorEditorFactoryPrivate::slotPropertyChanged(QtProperty *property, const QCursor &cursor) +{ + // update enum property + QtProperty *enumProp = m_propertyToEnum.value(property); + if (!enumProp) + return; + + m_updatingEnum = true; + m_enumPropertyManager->setValue(enumProp, cursorDatabase()->cursorToValue(cursor)); + m_updatingEnum = false; +} + +void QtCursorEditorFactoryPrivate::slotEnumChanged(QtProperty *property, int value) +{ + if (m_updatingEnum) + return; + // update cursor property + QtProperty *prop = m_enumToProperty.value(property); + if (!prop) + return; + QtCursorPropertyManager *cursorManager = q_ptr->propertyManager(prop); + if (!cursorManager) + return; +#ifndef QT_NO_CURSOR + cursorManager->setValue(prop, QCursor(cursorDatabase()->valueToCursor(value))); +#endif +} + +void QtCursorEditorFactoryPrivate::slotEditorDestroyed(QObject *object) +{ + // remove from m_editorToEnum map; + // remove from m_enumToEditors map; + // if m_enumToEditors doesn't contains more editors delete enum property; + const QMap::ConstIterator ecend = m_editorToEnum.constEnd(); + for (QMap::ConstIterator itEditor = m_editorToEnum.constBegin(); itEditor != ecend; ++itEditor) + if (itEditor.key() == object) { + QWidget *editor = itEditor.key(); + QtProperty *enumProp = itEditor.value(); + m_editorToEnum.remove(editor); + m_enumToEditors[enumProp].removeAll(editor); + if (m_enumToEditors[enumProp].isEmpty()) { + m_enumToEditors.remove(enumProp); + QtProperty *property = m_enumToProperty.value(enumProp); + m_enumToProperty.remove(enumProp); + m_propertyToEnum.remove(property); + delete enumProp; + } + return; + } +} + +/*! + \class QtCursorEditorFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtCursorEditorFactory class provides QComboBox widgets for + properties created by QtCursorPropertyManager objects. + + \sa QtAbstractEditorFactory, QtCursorPropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtCursorEditorFactory::QtCursorEditorFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtCursorEditorFactoryPrivate()) +{ + d_ptr->q_ptr = this; + + d_ptr->m_enumEditorFactory = new QtEnumEditorFactory(this); + d_ptr->m_enumPropertyManager = new QtEnumPropertyManager(this); + connect(d_ptr->m_enumPropertyManager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotEnumChanged(QtProperty*,int))); + d_ptr->m_enumEditorFactory->addPropertyManager(d_ptr->m_enumPropertyManager); +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtCursorEditorFactory::~QtCursorEditorFactory() +{ +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtCursorEditorFactory::connectPropertyManager(QtCursorPropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,QCursor)), + this, SLOT(slotPropertyChanged(QtProperty*,QCursor))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtCursorEditorFactory::createEditor(QtCursorPropertyManager *manager, QtProperty *property, + QWidget *parent) +{ + QtProperty *enumProp = nullptr; + if (d_ptr->m_propertyToEnum.contains(property)) { + enumProp = d_ptr->m_propertyToEnum[property]; + } else { + enumProp = d_ptr->m_enumPropertyManager->addProperty(property->propertyName()); + d_ptr->m_enumPropertyManager->setEnumNames(enumProp, cursorDatabase()->cursorShapeNames()); + d_ptr->m_enumPropertyManager->setEnumIcons(enumProp, cursorDatabase()->cursorShapeIcons()); +#ifndef QT_NO_CURSOR + d_ptr->m_enumPropertyManager->setValue(enumProp, cursorDatabase()->cursorToValue(manager->value(property))); +#endif + d_ptr->m_propertyToEnum[property] = enumProp; + d_ptr->m_enumToProperty[enumProp] = property; + } + QtAbstractEditorFactoryBase *af = d_ptr->m_enumEditorFactory; + QWidget *editor = af->createEditor(enumProp, parent); + d_ptr->m_enumToEditors[enumProp].append(editor); + d_ptr->m_editorToEnum[editor] = enumProp; + connect(editor, SIGNAL(destroyed(QObject*)), + this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtCursorEditorFactory::disconnectPropertyManager(QtCursorPropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,QCursor)), + this, SLOT(slotPropertyChanged(QtProperty*,QCursor))); +} + +// QtColorEditWidget + +class QtColorEditWidget : public QWidget { + Q_OBJECT + +public: + QtColorEditWidget(QWidget *parent); + + bool eventFilter(QObject *obj, QEvent *ev) override; + +public Q_SLOTS: + void setValue(const QColor &value); + +private Q_SLOTS: + void buttonClicked(); + +Q_SIGNALS: + void valueChanged(const QColor &value); + +private: + QColor m_color; + QLabel *m_pixmapLabel; + QLabel *m_label; + QToolButton *m_button; +}; + +QtColorEditWidget::QtColorEditWidget(QWidget *parent) : + QWidget(parent), + m_pixmapLabel(new QLabel), + m_label(new QLabel), + m_button(new QToolButton) +{ + QHBoxLayout *lt = new QHBoxLayout(this); + setupTreeViewEditorMargin(lt); + lt->setSpacing(0); + lt->addWidget(m_pixmapLabel); + lt->addWidget(m_label); + lt->addItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored)); + + m_button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Ignored); + m_button->setFixedWidth(20); + setFocusProxy(m_button); + setFocusPolicy(m_button->focusPolicy()); + m_button->setText(tr("...")); + m_button->installEventFilter(this); + connect(m_button, SIGNAL(clicked()), this, SLOT(buttonClicked())); + lt->addWidget(m_button); + m_pixmapLabel->setPixmap(QtPropertyBrowserUtils::brushValuePixmap(QBrush(m_color))); + m_label->setText(QtPropertyBrowserUtils::colorValueText(m_color)); +} + +void QtColorEditWidget::setValue(const QColor &c) +{ + if (m_color != c) { + m_color = c; + m_pixmapLabel->setPixmap(QtPropertyBrowserUtils::brushValuePixmap(QBrush(c))); + m_label->setText(QtPropertyBrowserUtils::colorValueText(c)); + } +} + +void QtColorEditWidget::buttonClicked() +{ + const QColor newColor = QColorDialog::getColor(m_color, this, QString(), QColorDialog::ShowAlphaChannel); + if (newColor.isValid() && newColor != m_color) { + setValue(newColor); + emit valueChanged(m_color); + } +} + +bool QtColorEditWidget::eventFilter(QObject *obj, QEvent *ev) +{ + if (obj == m_button) { + switch (ev->type()) { + case QEvent::KeyPress: + case QEvent::KeyRelease: { // Prevent the QToolButton from handling Enter/Escape meant control the delegate + switch (static_cast(ev)->key()) { + case Qt::Key_Escape: + case Qt::Key_Enter: + case Qt::Key_Return: + ev->ignore(); + return true; + default: + break; + } + } + break; + default: + break; + } + } + return QWidget::eventFilter(obj, ev); +} + +// QtColorEditorFactoryPrivate + +class QtColorEditorFactoryPrivate : public EditorFactoryPrivate +{ + QtColorEditorFactory *q_ptr; + Q_DECLARE_PUBLIC(QtColorEditorFactory) +public: + + void slotPropertyChanged(QtProperty *property, const QColor &value); + void slotSetValue(const QColor &value); +}; + +void QtColorEditorFactoryPrivate::slotPropertyChanged(QtProperty *property, + const QColor &value) +{ + const PropertyToEditorListMap::const_iterator it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + + for (QtColorEditWidget *e : it.value()) + e->setValue(value); +} + +void QtColorEditorFactoryPrivate::slotSetValue(const QColor &value) +{ + QObject *object = q_ptr->sender(); + const EditorToPropertyMap::ConstIterator ecend = m_editorToProperty.constEnd(); + for (EditorToPropertyMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtColorPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } +} + +/*! + \class QtColorEditorFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtColorEditorFactory class provides color editing for + properties created by QtColorPropertyManager objects. + + \sa QtAbstractEditorFactory, QtColorPropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtColorEditorFactory::QtColorEditorFactory(QObject *parent) : + QtAbstractEditorFactory(parent), + d_ptr(new QtColorEditorFactoryPrivate()) +{ + d_ptr->q_ptr = this; +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtColorEditorFactory::~QtColorEditorFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtColorEditorFactory::connectPropertyManager(QtColorPropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,QColor)), + this, SLOT(slotPropertyChanged(QtProperty*,QColor))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtColorEditorFactory::createEditor(QtColorPropertyManager *manager, + QtProperty *property, QWidget *parent) +{ + QtColorEditWidget *editor = d_ptr->createEditor(property, parent); + editor->setValue(manager->value(property)); + connect(editor, SIGNAL(valueChanged(QColor)), this, SLOT(slotSetValue(QColor))); + connect(editor, SIGNAL(destroyed(QObject*)), this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtColorEditorFactory::disconnectPropertyManager(QtColorPropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,QColor)), this, SLOT(slotPropertyChanged(QtProperty*,QColor))); +} + +// QtFontEditWidget + +class QtFontEditWidget : public QWidget { + Q_OBJECT + +public: + QtFontEditWidget(QWidget *parent); + + bool eventFilter(QObject *obj, QEvent *ev) override; + +public Q_SLOTS: + void setValue(const QFont &value); + +private Q_SLOTS: + void buttonClicked(); + +Q_SIGNALS: + void valueChanged(const QFont &value); + +private: + QFont m_font; + QLabel *m_pixmapLabel; + QLabel *m_label; + QToolButton *m_button; +}; + +QtFontEditWidget::QtFontEditWidget(QWidget *parent) : + QWidget(parent), + m_pixmapLabel(new QLabel), + m_label(new QLabel), + m_button(new QToolButton) +{ + QHBoxLayout *lt = new QHBoxLayout(this); + setupTreeViewEditorMargin(lt); + lt->setSpacing(0); + lt->addWidget(m_pixmapLabel); + lt->addWidget(m_label); + lt->addItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored)); + + m_button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Ignored); + m_button->setFixedWidth(20); + setFocusProxy(m_button); + setFocusPolicy(m_button->focusPolicy()); + m_button->setText(tr("...")); + m_button->installEventFilter(this); + connect(m_button, SIGNAL(clicked()), this, SLOT(buttonClicked())); + lt->addWidget(m_button); + m_pixmapLabel->setPixmap(QtPropertyBrowserUtils::fontValuePixmap(m_font)); + m_label->setText(QtPropertyBrowserUtils::fontValueText(m_font)); +} + +void QtFontEditWidget::setValue(const QFont &f) +{ + if (m_font != f) { + m_font = f; + m_pixmapLabel->setPixmap(QtPropertyBrowserUtils::fontValuePixmap(f)); + m_label->setText(QtPropertyBrowserUtils::fontValueText(f)); + } +} + +void QtFontEditWidget::buttonClicked() +{ + bool ok = false; + QFont newFont = QFontDialog::getFont(&ok, m_font, this, tr("Select Font")); + if (ok && newFont != m_font) { + QFont f = m_font; + // prevent mask for unchanged attributes, don't change other attributes (like kerning, etc...) + if (m_font.family() != newFont.family()) + f.setFamily(newFont.family()); + if (m_font.pointSize() != newFont.pointSize()) + f.setPointSize(newFont.pointSize()); + if (m_font.bold() != newFont.bold()) + f.setBold(newFont.bold()); + if (m_font.italic() != newFont.italic()) + f.setItalic(newFont.italic()); + if (m_font.underline() != newFont.underline()) + f.setUnderline(newFont.underline()); + if (m_font.strikeOut() != newFont.strikeOut()) + f.setStrikeOut(newFont.strikeOut()); + setValue(f); + emit valueChanged(m_font); + } +} + +bool QtFontEditWidget::eventFilter(QObject *obj, QEvent *ev) +{ + if (obj == m_button) { + switch (ev->type()) { + case QEvent::KeyPress: + case QEvent::KeyRelease: { // Prevent the QToolButton from handling Enter/Escape meant control the delegate + switch (static_cast(ev)->key()) { + case Qt::Key_Escape: + case Qt::Key_Enter: + case Qt::Key_Return: + ev->ignore(); + return true; + default: + break; + } + } + break; + default: + break; + } + } + return QWidget::eventFilter(obj, ev); +} + +// QtFontEditorFactoryPrivate + +class QtFontEditorFactoryPrivate : public EditorFactoryPrivate +{ + QtFontEditorFactory *q_ptr; + Q_DECLARE_PUBLIC(QtFontEditorFactory) +public: + + void slotPropertyChanged(QtProperty *property, const QFont &value); + void slotSetValue(const QFont &value); +}; + +void QtFontEditorFactoryPrivate::slotPropertyChanged(QtProperty *property, + const QFont &value) +{ + const PropertyToEditorListMap::const_iterator it = m_createdEditors.constFind(property); + if (it == m_createdEditors.constEnd()) + return; + + for (QtFontEditWidget *e : it.value()) + e->setValue(value); +} + +void QtFontEditorFactoryPrivate::slotSetValue(const QFont &value) +{ + QObject *object = q_ptr->sender(); + const EditorToPropertyMap::ConstIterator ecend = m_editorToProperty.constEnd(); + for (EditorToPropertyMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) + if (itEditor.key() == object) { + QtProperty *property = itEditor.value(); + QtFontPropertyManager *manager = q_ptr->propertyManager(property); + if (!manager) + return; + manager->setValue(property, value); + return; + } +} + +/*! + \class QtFontEditorFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtFontEditorFactory class provides font editing for + properties created by QtFontPropertyManager objects. + + \sa QtAbstractEditorFactory, QtFontPropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtFontEditorFactory::QtFontEditorFactory(QObject *parent) : + QtAbstractEditorFactory(parent), + d_ptr(new QtFontEditorFactoryPrivate()) +{ + d_ptr->q_ptr = this; +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtFontEditorFactory::~QtFontEditorFactory() +{ + qDeleteAll(d_ptr->m_editorToProperty.keys()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtFontEditorFactory::connectPropertyManager(QtFontPropertyManager *manager) +{ + connect(manager, SIGNAL(valueChanged(QtProperty*,QFont)), + this, SLOT(slotPropertyChanged(QtProperty*,QFont))); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtFontEditorFactory::createEditor(QtFontPropertyManager *manager, + QtProperty *property, QWidget *parent) +{ + QtFontEditWidget *editor = d_ptr->createEditor(property, parent); + editor->setValue(manager->value(property)); + connect(editor, SIGNAL(valueChanged(QFont)), this, SLOT(slotSetValue(QFont))); + connect(editor, SIGNAL(destroyed(QObject*)), this, SLOT(slotEditorDestroyed(QObject*))); + return editor; +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtFontEditorFactory::disconnectPropertyManager(QtFontPropertyManager *manager) +{ + disconnect(manager, SIGNAL(valueChanged(QtProperty*,QFont)), this, SLOT(slotPropertyChanged(QtProperty*,QFont))); +} + +QT_END_NAMESPACE + +#include "moc_qteditorfactory.cpp" +#include "qteditorfactory.moc" diff --git a/src/shared/qtpropertybrowser/qteditorfactory.h b/src/shared/qtpropertybrowser/qteditorfactory.h new file mode 100644 index 0000000..e970cc0 --- /dev/null +++ b/src/shared/qtpropertybrowser/qteditorfactory.h @@ -0,0 +1,360 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTEDITORFACTORY_H +#define QTEDITORFACTORY_H + +#include "qtpropertymanager.h" + +QT_BEGIN_NAMESPACE + +class QRegularExpression; + +class QtSpinBoxFactoryPrivate; + +class QtSpinBoxFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtSpinBoxFactory(QObject *parent = 0); + ~QtSpinBoxFactory(); +protected: + void connectPropertyManager(QtIntPropertyManager *manager) override; + QWidget *createEditor(QtIntPropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtIntPropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtSpinBoxFactory) + Q_DISABLE_COPY_MOVE(QtSpinBoxFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, int, int)) + Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(int)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) +}; + +class QtSliderFactoryPrivate; + +class QtSliderFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtSliderFactory(QObject *parent = 0); + ~QtSliderFactory(); +protected: + void connectPropertyManager(QtIntPropertyManager *manager) override; + QWidget *createEditor(QtIntPropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtIntPropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtSliderFactory) + Q_DISABLE_COPY_MOVE(QtSliderFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, int, int)) + Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(int)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) +}; + +class QtScrollBarFactoryPrivate; + +class QtScrollBarFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtScrollBarFactory(QObject *parent = 0); + ~QtScrollBarFactory(); +protected: + void connectPropertyManager(QtIntPropertyManager *manager) override; + QWidget *createEditor(QtIntPropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtIntPropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtScrollBarFactory) + Q_DISABLE_COPY_MOVE(QtScrollBarFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, int, int)) + Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(int)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) +}; + +class QtCheckBoxFactoryPrivate; + +class QtCheckBoxFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtCheckBoxFactory(QObject *parent = 0); + ~QtCheckBoxFactory(); +protected: + void connectPropertyManager(QtBoolPropertyManager *manager) override; + QWidget *createEditor(QtBoolPropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtBoolPropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtCheckBoxFactory) + Q_DISABLE_COPY_MOVE(QtCheckBoxFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, bool)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(bool)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) +}; + +class QtDoubleSpinBoxFactoryPrivate; + +class QtDoubleSpinBoxFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtDoubleSpinBoxFactory(QObject *parent = 0); + ~QtDoubleSpinBoxFactory(); +protected: + void connectPropertyManager(QtDoublePropertyManager *manager) override; + QWidget *createEditor(QtDoublePropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtDoublePropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtDoubleSpinBoxFactory) + Q_DISABLE_COPY_MOVE(QtDoubleSpinBoxFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, double)) + Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, double, double)) + Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, double)) + Q_PRIVATE_SLOT(d_func(), void slotDecimalsChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(double)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) +}; + +class QtLineEditFactoryPrivate; + +class QtLineEditFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtLineEditFactory(QObject *parent = 0); + ~QtLineEditFactory(); +protected: + void connectPropertyManager(QtStringPropertyManager *manager) override; + QWidget *createEditor(QtStringPropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtStringPropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtLineEditFactory) + Q_DISABLE_COPY_MOVE(QtLineEditFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QString &)) + Q_PRIVATE_SLOT(d_func(), void slotRegExpChanged(QtProperty *, const QRegularExpression &)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QString &)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) +}; + +class QtDateEditFactoryPrivate; + +class QtDateEditFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtDateEditFactory(QObject *parent = 0); + ~QtDateEditFactory(); +protected: + void connectPropertyManager(QtDatePropertyManager *manager) override; + QWidget *createEditor(QtDatePropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtDatePropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtDateEditFactory) + Q_DISABLE_COPY_MOVE(QtDateEditFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, QDate)) + Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, QDate, QDate)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(QDate)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) +}; + +class QtTimeEditFactoryPrivate; + +class QtTimeEditFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtTimeEditFactory(QObject *parent = 0); + ~QtTimeEditFactory(); +protected: + void connectPropertyManager(QtTimePropertyManager *manager) override; + QWidget *createEditor(QtTimePropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtTimePropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtTimeEditFactory) + Q_DISABLE_COPY_MOVE(QtTimeEditFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, QTime)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(QTime)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) +}; + +class QtDateTimeEditFactoryPrivate; + +class QtDateTimeEditFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtDateTimeEditFactory(QObject *parent = 0); + ~QtDateTimeEditFactory(); +protected: + void connectPropertyManager(QtDateTimePropertyManager *manager) override; + QWidget *createEditor(QtDateTimePropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtDateTimePropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtDateTimeEditFactory) + Q_DISABLE_COPY_MOVE(QtDateTimeEditFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QDateTime &)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QDateTime &)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) +}; + +class QtKeySequenceEditorFactoryPrivate; + +class QtKeySequenceEditorFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtKeySequenceEditorFactory(QObject *parent = 0); + ~QtKeySequenceEditorFactory(); +protected: + void connectPropertyManager(QtKeySequencePropertyManager *manager) override; + QWidget *createEditor(QtKeySequencePropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtKeySequencePropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtKeySequenceEditorFactory) + Q_DISABLE_COPY_MOVE(QtKeySequenceEditorFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QKeySequence &)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QKeySequence &)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) +}; + +class QtCharEditorFactoryPrivate; + +class QtCharEditorFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtCharEditorFactory(QObject *parent = 0); + ~QtCharEditorFactory(); +protected: + void connectPropertyManager(QtCharPropertyManager *manager) override; + QWidget *createEditor(QtCharPropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtCharPropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtCharEditorFactory) + Q_DISABLE_COPY_MOVE(QtCharEditorFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QChar &)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QChar &)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) +}; + +class QtEnumEditorFactoryPrivate; + +class QtEnumEditorFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtEnumEditorFactory(QObject *parent = 0); + ~QtEnumEditorFactory(); +protected: + void connectPropertyManager(QtEnumPropertyManager *manager) override; + QWidget *createEditor(QtEnumPropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtEnumPropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtEnumEditorFactory) + Q_DISABLE_COPY_MOVE(QtEnumEditorFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotEnumNamesChanged(QtProperty *, + const QStringList &)) + Q_PRIVATE_SLOT(d_func(), void slotEnumIconsChanged(QtProperty *, + const QMap &)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(int)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) +}; + +class QtCursorEditorFactoryPrivate; + +class QtCursorEditorFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtCursorEditorFactory(QObject *parent = 0); + ~QtCursorEditorFactory(); +protected: + void connectPropertyManager(QtCursorPropertyManager *manager) override; + QWidget *createEditor(QtCursorPropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtCursorPropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtCursorEditorFactory) + Q_DISABLE_COPY_MOVE(QtCursorEditorFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QCursor &)) + Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) +}; + +class QtColorEditorFactoryPrivate; + +class QtColorEditorFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtColorEditorFactory(QObject *parent = 0); + ~QtColorEditorFactory(); +protected: + void connectPropertyManager(QtColorPropertyManager *manager) override; + QWidget *createEditor(QtColorPropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtColorPropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtColorEditorFactory) + Q_DISABLE_COPY_MOVE(QtColorEditorFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QColor &)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QColor &)) +}; + +class QtFontEditorFactoryPrivate; + +class QtFontEditorFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtFontEditorFactory(QObject *parent = 0); + ~QtFontEditorFactory(); +protected: + void connectPropertyManager(QtFontPropertyManager *manager) override; + QWidget *createEditor(QtFontPropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtFontPropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtFontEditorFactory) + Q_DISABLE_COPY_MOVE(QtFontEditorFactory) + Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QFont &)) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) + Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QFont &)) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtpropertybrowser/qtgroupboxpropertybrowser.cpp b/src/shared/qtpropertybrowser/qtgroupboxpropertybrowser.cpp new file mode 100644 index 0000000..29e9940 --- /dev/null +++ b/src/shared/qtpropertybrowser/qtgroupboxpropertybrowser.cpp @@ -0,0 +1,473 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtgroupboxpropertybrowser.h" +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QtGroupBoxPropertyBrowserPrivate +{ + QtGroupBoxPropertyBrowser *q_ptr; + Q_DECLARE_PUBLIC(QtGroupBoxPropertyBrowser) +public: + + void init(QWidget *parent); + + void propertyInserted(QtBrowserItem *index, QtBrowserItem *afterIndex); + void propertyRemoved(QtBrowserItem *index); + void propertyChanged(QtBrowserItem *index); + QWidget *createEditor(QtProperty *property, QWidget *parent) const + { return q_ptr->createEditor(property, parent); } + + void slotEditorDestroyed(); + void slotUpdate(); + + struct WidgetItem + { + QWidget *widget{nullptr}; // can be null + QLabel *label{nullptr}; + QLabel *widgetLabel{nullptr}; + QGroupBox *groupBox{nullptr}; + QGridLayout *layout{nullptr}; + QFrame *line{nullptr}; + WidgetItem *parent{nullptr}; + QList children; + }; +private: + void updateLater(); + void updateItem(WidgetItem *item); + void insertRow(QGridLayout *layout, int row) const; + void removeRow(QGridLayout *layout, int row) const; + + bool hasHeader(WidgetItem *item) const; + + QMap m_indexToItem; + QMap m_itemToIndex; + QMap m_widgetToItem; + QGridLayout *m_mainLayout; + QList m_children; + QList m_recreateQueue; +}; + +void QtGroupBoxPropertyBrowserPrivate::init(QWidget *parent) +{ + m_mainLayout = new QGridLayout(); + parent->setLayout(m_mainLayout); + QLayoutItem *item = new QSpacerItem(0, 0, + QSizePolicy::Fixed, QSizePolicy::Expanding); + m_mainLayout->addItem(item, 0, 0); +} + +void QtGroupBoxPropertyBrowserPrivate::slotEditorDestroyed() +{ + QWidget *editor = qobject_cast(q_ptr->sender()); + if (!editor) + return; + if (!m_widgetToItem.contains(editor)) + return; + m_widgetToItem[editor]->widget = 0; + m_widgetToItem.remove(editor); +} + +void QtGroupBoxPropertyBrowserPrivate::slotUpdate() +{ + for (WidgetItem *item : std::as_const(m_recreateQueue)) { + WidgetItem *par = item->parent; + QWidget *w = nullptr; + QGridLayout *l = nullptr; + int oldRow = -1; + if (!par) { + w = q_ptr; + l = m_mainLayout; + oldRow = m_children.indexOf(item); + } else { + w = par->groupBox; + l = par->layout; + oldRow = par->children.indexOf(item); + if (hasHeader(par)) + oldRow += 2; + } + + if (item->widget) { + item->widget->setParent(w); + } else if (item->widgetLabel) { + item->widgetLabel->setParent(w); + } else { + item->widgetLabel = new QLabel(w); + } + int span = 1; + if (item->widget) + l->addWidget(item->widget, oldRow, 1, 1, 1); + else if (item->widgetLabel) + l->addWidget(item->widgetLabel, oldRow, 1, 1, 1); + else + span = 2; + item->label = new QLabel(w); + item->label->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + l->addWidget(item->label, oldRow, 0, 1, span); + + updateItem(item); + } + m_recreateQueue.clear(); +} + +void QtGroupBoxPropertyBrowserPrivate::updateLater() +{ + QTimer::singleShot(0, q_ptr, SLOT(slotUpdate())); +} + +void QtGroupBoxPropertyBrowserPrivate::propertyInserted(QtBrowserItem *index, QtBrowserItem *afterIndex) +{ + WidgetItem *afterItem = m_indexToItem.value(afterIndex); + WidgetItem *parentItem = m_indexToItem.value(index->parent()); + + WidgetItem *newItem = new WidgetItem(); + newItem->parent = parentItem; + + QGridLayout *layout = nullptr; + QWidget *parentWidget = nullptr; + int row = -1; + if (!afterItem) { + row = 0; + if (parentItem) + parentItem->children.insert(0, newItem); + else + m_children.insert(0, newItem); + } else { + if (parentItem) { + row = parentItem->children.indexOf(afterItem) + 1; + parentItem->children.insert(row, newItem); + } else { + row = m_children.indexOf(afterItem) + 1; + m_children.insert(row, newItem); + } + } + if (parentItem && hasHeader(parentItem)) + row += 2; + + if (!parentItem) { + layout = m_mainLayout; + parentWidget = q_ptr;; + } else { + if (!parentItem->groupBox) { + m_recreateQueue.removeAll(parentItem); + WidgetItem *par = parentItem->parent; + QWidget *w = nullptr; + QGridLayout *l = nullptr; + int oldRow = -1; + if (!par) { + w = q_ptr; + l = m_mainLayout; + oldRow = m_children.indexOf(parentItem); + } else { + w = par->groupBox; + l = par->layout; + oldRow = par->children.indexOf(parentItem); + if (hasHeader(par)) + oldRow += 2; + } + parentItem->groupBox = new QGroupBox(w); + parentItem->layout = new QGridLayout(); + parentItem->groupBox->setLayout(parentItem->layout); + if (parentItem->label) { + l->removeWidget(parentItem->label); + delete parentItem->label; + parentItem->label = nullptr; + } + if (parentItem->widget) { + l->removeWidget(parentItem->widget); + parentItem->widget->setParent(parentItem->groupBox); + parentItem->layout->addWidget(parentItem->widget, 0, 0, 1, 2); + parentItem->line = new QFrame(parentItem->groupBox); + } else if (parentItem->widgetLabel) { + l->removeWidget(parentItem->widgetLabel); + delete parentItem->widgetLabel; + parentItem->widgetLabel = nullptr; + } + if (parentItem->line) { + parentItem->line->setFrameShape(QFrame::HLine); + parentItem->line->setFrameShadow(QFrame::Sunken); + parentItem->layout->addWidget(parentItem->line, 1, 0, 1, 2); + } + l->addWidget(parentItem->groupBox, oldRow, 0, 1, 2); + updateItem(parentItem); + } + layout = parentItem->layout; + parentWidget = parentItem->groupBox; + } + + newItem->label = new QLabel(parentWidget); + newItem->label->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + newItem->widget = createEditor(index->property(), parentWidget); + if (!newItem->widget) { + newItem->widgetLabel = new QLabel(parentWidget); + } else { + QObject::connect(newItem->widget, SIGNAL(destroyed()), q_ptr, SLOT(slotEditorDestroyed())); + m_widgetToItem[newItem->widget] = newItem; + } + + insertRow(layout, row); + int span = 1; + if (newItem->widget) + layout->addWidget(newItem->widget, row, 1); + else if (newItem->widgetLabel) + layout->addWidget(newItem->widgetLabel, row, 1); + else + span = 2; + layout->addWidget(newItem->label, row, 0, 1, span); + + m_itemToIndex[newItem] = index; + m_indexToItem[index] = newItem; + + updateItem(newItem); +} + +void QtGroupBoxPropertyBrowserPrivate::propertyRemoved(QtBrowserItem *index) +{ + WidgetItem *item = m_indexToItem.value(index); + + m_indexToItem.remove(index); + m_itemToIndex.remove(item); + + WidgetItem *parentItem = item->parent; + + int row = -1; + + if (parentItem) { + row = parentItem->children.indexOf(item); + parentItem->children.removeAt(row); + if (hasHeader(parentItem)) + row += 2; + } else { + row = m_children.indexOf(item); + m_children.removeAt(row); + } + + if (item->widget) + delete item->widget; + if (item->label) + delete item->label; + if (item->widgetLabel) + delete item->widgetLabel; + if (item->groupBox) + delete item->groupBox; + + if (!parentItem) { + removeRow(m_mainLayout, row); + } else if (parentItem->children.size() != 0) { + removeRow(parentItem->layout, row); + } else { + WidgetItem *par = parentItem->parent; + QGridLayout *l = (par ? par->layout : m_mainLayout); + if (parentItem->widget) { + parentItem->widget->hide(); + parentItem->widget->setParent(0); + } else if (parentItem->widgetLabel) { + parentItem->widgetLabel->hide(); + parentItem->widgetLabel->setParent(0); + } else { + //parentItem->widgetLabel = new QLabel(w); + } + l->removeWidget(parentItem->groupBox); + delete parentItem->groupBox; + parentItem->groupBox = nullptr; + parentItem->line = nullptr; + parentItem->layout = nullptr; + if (!m_recreateQueue.contains(parentItem)) + m_recreateQueue.append(parentItem); + updateLater(); + } + m_recreateQueue.removeAll(item); + + delete item; +} + +void QtGroupBoxPropertyBrowserPrivate::insertRow(QGridLayout *layout, int row) const +{ + QMap itemToPos; + int idx = 0; + while (idx < layout->count()) { + int r, c, rs, cs; + layout->getItemPosition(idx, &r, &c, &rs, &cs); + if (r >= row) { + itemToPos[layout->takeAt(idx)] = QRect(r + 1, c, rs, cs); + } else { + idx++; + } + } + + const QMap::ConstIterator icend = itemToPos.constEnd(); + for (QMap::ConstIterator it = itemToPos.constBegin(); it != icend; ++it) { + const QRect r = it.value(); + layout->addItem(it.key(), r.x(), r.y(), r.width(), r.height()); + } +} + +void QtGroupBoxPropertyBrowserPrivate::removeRow(QGridLayout *layout, int row) const +{ + QMap itemToPos; + int idx = 0; + while (idx < layout->count()) { + int r, c, rs, cs; + layout->getItemPosition(idx, &r, &c, &rs, &cs); + if (r > row) { + itemToPos[layout->takeAt(idx)] = QRect(r - 1, c, rs, cs); + } else { + idx++; + } + } + + const QMap::ConstIterator icend = itemToPos.constEnd(); + for (QMap::ConstIterator it = itemToPos.constBegin(); it != icend; ++it) { + const QRect r = it.value(); + layout->addItem(it.key(), r.x(), r.y(), r.width(), r.height()); + } +} + +bool QtGroupBoxPropertyBrowserPrivate::hasHeader(WidgetItem *item) const +{ + if (item->widget) + return true; + return false; +} + +void QtGroupBoxPropertyBrowserPrivate::propertyChanged(QtBrowserItem *index) +{ + WidgetItem *item = m_indexToItem.value(index); + + updateItem(item); +} + +void QtGroupBoxPropertyBrowserPrivate::updateItem(WidgetItem *item) +{ + QtProperty *property = m_itemToIndex[item]->property(); + if (item->groupBox) { + QFont font = item->groupBox->font(); + font.setUnderline(property->isModified()); + item->groupBox->setFont(font); + item->groupBox->setTitle(property->propertyName()); + item->groupBox->setToolTip(property->descriptionToolTip()); + item->groupBox->setStatusTip(property->statusTip()); + item->groupBox->setWhatsThis(property->whatsThis()); + item->groupBox->setEnabled(property->isEnabled()); + } + if (item->label) { + QFont font = item->label->font(); + font.setUnderline(property->isModified()); + item->label->setFont(font); + item->label->setText(property->propertyName()); + item->label->setToolTip(property->descriptionToolTip()); + item->label->setStatusTip(property->statusTip()); + item->label->setWhatsThis(property->whatsThis()); + item->label->setEnabled(property->isEnabled()); + } + if (item->widgetLabel) { + QFont font = item->widgetLabel->font(); + font.setUnderline(false); + item->widgetLabel->setFont(font); + item->widgetLabel->setText(property->valueText()); + item->widgetLabel->setEnabled(property->isEnabled()); + } + if (item->widget) { + QFont font = item->widget->font(); + font.setUnderline(false); + item->widget->setFont(font); + item->widget->setEnabled(property->isEnabled()); + const QString valueToolTip = property->valueToolTip(); + item->widget->setToolTip(valueToolTip.isEmpty() ? property->valueText() : valueToolTip); + } + //item->setIcon(1, property->valueIcon()); +} + + + +/*! + \class QtGroupBoxPropertyBrowser + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtGroupBoxPropertyBrowser class provides a QGroupBox + based property browser. + + A property browser is a widget that enables the user to edit a + given set of properties. Each property is represented by a label + specifying the property's name, and an editing widget (e.g. a line + edit or a combobox) holding its value. A property can have zero or + more subproperties. + + QtGroupBoxPropertyBrowser provides group boxes for all nested + properties, i.e. subproperties are enclosed by a group box with + the parent property's name as its title. For example: + + \image qtgroupboxpropertybrowser.png + + Use the QtAbstractPropertyBrowser API to add, insert and remove + properties from an instance of the QtGroupBoxPropertyBrowser + class. The properties themselves are created and managed by + implementations of the QtAbstractPropertyManager class. + + \sa QtTreePropertyBrowser, QtAbstractPropertyBrowser +*/ + +/*! + Creates a property browser with the given \a parent. +*/ +QtGroupBoxPropertyBrowser::QtGroupBoxPropertyBrowser(QWidget *parent) + : QtAbstractPropertyBrowser(parent), d_ptr(new QtGroupBoxPropertyBrowserPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->init(this); +} + +/*! + Destroys this property browser. + + Note that the properties that were inserted into this browser are + \e not destroyed since they may still be used in other + browsers. The properties are owned by the manager that created + them. + + \sa QtProperty, QtAbstractPropertyManager +*/ +QtGroupBoxPropertyBrowser::~QtGroupBoxPropertyBrowser() +{ + const QMap::ConstIterator icend = d_ptr->m_itemToIndex.constEnd(); + for (QMap::ConstIterator it = d_ptr->m_itemToIndex.constBegin(); it != icend; ++it) + delete it.key(); +} + +/*! + \reimp +*/ +void QtGroupBoxPropertyBrowser::itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem) +{ + d_ptr->propertyInserted(item, afterItem); +} + +/*! + \reimp +*/ +void QtGroupBoxPropertyBrowser::itemRemoved(QtBrowserItem *item) +{ + d_ptr->propertyRemoved(item); +} + +/*! + \reimp +*/ +void QtGroupBoxPropertyBrowser::itemChanged(QtBrowserItem *item) +{ + d_ptr->propertyChanged(item); +} + +QT_END_NAMESPACE + +#include "moc_qtgroupboxpropertybrowser.cpp" diff --git a/src/shared/qtpropertybrowser/qtgroupboxpropertybrowser.h b/src/shared/qtpropertybrowser/qtgroupboxpropertybrowser.h new file mode 100644 index 0000000..df1792a --- /dev/null +++ b/src/shared/qtpropertybrowser/qtgroupboxpropertybrowser.h @@ -0,0 +1,38 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTGROUPBOXPROPERTYBROWSER_H +#define QTGROUPBOXPROPERTYBROWSER_H + +#include "qtpropertybrowser.h" + +QT_BEGIN_NAMESPACE + +class QtGroupBoxPropertyBrowserPrivate; + +class QtGroupBoxPropertyBrowser : public QtAbstractPropertyBrowser +{ + Q_OBJECT +public: + + QtGroupBoxPropertyBrowser(QWidget *parent = 0); + ~QtGroupBoxPropertyBrowser(); + +protected: + void itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem) override; + void itemRemoved(QtBrowserItem *item) override; + void itemChanged(QtBrowserItem *item) override; + +private: + + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtGroupBoxPropertyBrowser) + Q_DISABLE_COPY_MOVE(QtGroupBoxPropertyBrowser) + Q_PRIVATE_SLOT(d_func(), void slotUpdate()) + Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed()) + +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtpropertybrowser/qtpropertybrowser.cpp b/src/shared/qtpropertybrowser/qtpropertybrowser.cpp new file mode 100644 index 0000000..1be34a1 --- /dev/null +++ b/src/shared/qtpropertybrowser/qtpropertybrowser.cpp @@ -0,0 +1,1915 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtpropertybrowser.h" +#include +#include +#include + +#if defined(Q_CC_MSVC) +# pragma warning(disable: 4786) /* MS VS 6: truncating debug info after 255 characters */ +#endif + +QT_BEGIN_NAMESPACE + +class QtPropertyPrivate +{ +public: + QtPropertyPrivate(QtAbstractPropertyManager *manager) : m_enabled(true), m_modified(false), m_manager(manager) {} + QtProperty *q_ptr; + + QSet m_parentItems; + QList m_subItems; + + QString m_valueToolTip; + QString m_descriptionToolTip; + QString m_statusTip; + QString m_whatsThis; + QString m_name; + bool m_enabled; + bool m_modified; + + QtAbstractPropertyManager * const m_manager; +}; + +class QtAbstractPropertyManagerPrivate +{ + QtAbstractPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtAbstractPropertyManager) +public: + void propertyDestroyed(QtProperty *property); + void propertyChanged(QtProperty *property) const; + void propertyRemoved(QtProperty *property, + QtProperty *parentProperty) const; + void propertyInserted(QtProperty *property, QtProperty *parentProperty, + QtProperty *afterProperty) const; + + QSet m_properties; +}; + +/*! + \class QtProperty + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtProperty class encapsulates an instance of a property. + + Properties are created by objects of QtAbstractPropertyManager + subclasses; a manager can create properties of a given type, and + is used in conjunction with the QtAbstractPropertyBrowser class. A + property is always owned by the manager that created it, which can + be retrieved using the propertyManager() function. + + QtProperty contains the most common property attributes, and + provides functions for retrieving as well as setting their values: + + \table + \header \li Getter \li Setter + \row + \li propertyName() \li setPropertyName() + \row + \li statusTip() \li setStatusTip() + \row + \li descriptionToolTip() \li setDescriptionToolTip() + \row + \li valueToolTip() \li setValueToolTip() + \row + \li toolTip() \deprecated in 5.6 \li setToolTip() \deprecated in 5.6 + \row + \li whatsThis() \li setWhatsThis() + \row + \li isEnabled() \li setEnabled() + \row + \li isModified() \li setModified() + \row + \li valueText() \li Nop + \row + \li valueIcon() \li Nop + \endtable + + It is also possible to nest properties: QtProperty provides the + addSubProperty(), insertSubProperty() and removeSubProperty() functions to + manipulate the set of subproperties. Use the subProperties() + function to retrieve a property's current set of subproperties. + Note that nested properties are not owned by the parent property, + i.e. each subproperty is owned by the manager that created it. + + \sa QtAbstractPropertyManager, QtBrowserItem +*/ + +/*! + Creates a property with the given \a manager. + + This constructor is only useful when creating a custom QtProperty + subclass (e.g. QtVariantProperty). To create a regular QtProperty + object, use the QtAbstractPropertyManager::addProperty() + function instead. + + \sa QtAbstractPropertyManager::addProperty() +*/ +QtProperty::QtProperty(QtAbstractPropertyManager *manager) + : d_ptr(new QtPropertyPrivate(manager)) +{ + d_ptr->q_ptr = this; +} + +/*! + Destroys this property. + + Note that subproperties are detached but not destroyed, i.e. they + can still be used in another context. + + \sa QtAbstractPropertyManager::clear() + +*/ +QtProperty::~QtProperty() +{ + for (QtProperty *property : std::as_const(d_ptr->m_parentItems)) + property->d_ptr->m_manager->d_ptr->propertyRemoved(this, property); + + d_ptr->m_manager->d_ptr->propertyDestroyed(this); + + for (QtProperty *property : std::as_const(d_ptr->m_subItems)) + property->d_ptr->m_parentItems.remove(this); + + for (QtProperty *property : std::as_const(d_ptr->m_parentItems)) + property->d_ptr->m_subItems.removeAll(this); +} + +/*! + Returns the set of subproperties. + + Note that subproperties are not owned by \e this property, but by + the manager that created them. + + \sa insertSubProperty(), removeSubProperty() +*/ +QList QtProperty::subProperties() const +{ + return d_ptr->m_subItems; +} + +/*! + Returns a pointer to the manager that owns this property. +*/ +QtAbstractPropertyManager *QtProperty::propertyManager() const +{ + return d_ptr->m_manager; +} + +/* Note: As of 17.7.2015 for Qt 5.6, the existing 'toolTip' of the Property + * Browser solution was split into valueToolTip() and descriptionToolTip() + * to be able to implement custom tool tip for QTBUG-45442. This could + * be back-ported to the solution. */ + +/*! + Returns the property value's tool tip. + + This is suitable for tool tips over the value (item delegate). + + \since 5.6 + \sa setValueToolTip() +*/ +QString QtProperty::valueToolTip() const +{ + return d_ptr->m_valueToolTip; +} + +/*! + Returns the property description's tool tip. + + This is suitable for tool tips over the description (label). + + \since 5.6 + \sa setDescriptionToolTip() +*/ +QString QtProperty::descriptionToolTip() const +{ + return d_ptr->m_descriptionToolTip; +} + +/*! + Returns the property's status tip. + + \sa setStatusTip() +*/ +QString QtProperty::statusTip() const +{ + return d_ptr->m_statusTip; +} + +/*! + Returns the property's "What's This" help text. + + \sa setWhatsThis() +*/ +QString QtProperty::whatsThis() const +{ + return d_ptr->m_whatsThis; +} + +/*! + Returns the property's name. + + \sa setPropertyName() +*/ +QString QtProperty::propertyName() const +{ + return d_ptr->m_name; +} + +/*! + Returns whether the property is enabled. + + \sa setEnabled() +*/ +bool QtProperty::isEnabled() const +{ + return d_ptr->m_enabled; +} + +/*! + Returns whether the property is modified. + + \sa setModified() +*/ +bool QtProperty::isModified() const +{ + return d_ptr->m_modified; +} + +/*! + Returns whether the property has a value. + + \sa QtAbstractPropertyManager::hasValue() +*/ +bool QtProperty::hasValue() const +{ + return d_ptr->m_manager->hasValue(this); +} + +/*! + Returns an icon representing the current state of this property. + + If the given property type can not generate such an icon, this + function returns an invalid icon. + + \sa QtAbstractPropertyManager::valueIcon() +*/ +QIcon QtProperty::valueIcon() const +{ + return d_ptr->m_manager->valueIcon(this); +} + +/*! + Returns a string representing the current state of this property. + + If the given property type can not generate such a string, this + function returns an empty string. + + \sa QtAbstractPropertyManager::valueText() +*/ +QString QtProperty::valueText() const +{ + return d_ptr->m_manager->valueText(this); +} + +/*! + Sets the property value's tool tip to the given \a text. + + \since 5.6 + \sa valueToolTip() +*/ +void QtProperty::setValueToolTip(const QString &text) +{ + if (d_ptr->m_valueToolTip == text) + return; + + d_ptr->m_valueToolTip = text; + propertyChanged(); +} + +/*! + Sets the property description's tool tip to the given \a text. + + \since 5.6 + \sa descriptionToolTip() +*/ +void QtProperty::setDescriptionToolTip(const QString &text) +{ + if (d_ptr->m_descriptionToolTip == text) + return; + + d_ptr->m_descriptionToolTip = text; + propertyChanged(); +} + +/*! + Sets the property's status tip to the given \a text. + + \sa statusTip() +*/ +void QtProperty::setStatusTip(const QString &text) +{ + if (d_ptr->m_statusTip == text) + return; + + d_ptr->m_statusTip = text; + propertyChanged(); +} + +/*! + Sets the property's "What's This" help text to the given \a text. + + \sa whatsThis() +*/ +void QtProperty::setWhatsThis(const QString &text) +{ + if (d_ptr->m_whatsThis == text) + return; + + d_ptr->m_whatsThis = text; + propertyChanged(); +} + +/*! + \fn void QtProperty::setPropertyName(const QString &name) + + Sets the property's name to the given \a name. + + \sa propertyName() +*/ +void QtProperty::setPropertyName(const QString &text) +{ + if (d_ptr->m_name == text) + return; + + d_ptr->m_name = text; + propertyChanged(); +} + +/*! + Enables or disables the property according to the passed \a enable value. + + \sa isEnabled() +*/ +void QtProperty::setEnabled(bool enable) +{ + if (d_ptr->m_enabled == enable) + return; + + d_ptr->m_enabled = enable; + propertyChanged(); +} + +/*! + Sets the property's modified state according to the passed \a modified value. + + \sa isModified() +*/ +void QtProperty::setModified(bool modified) +{ + if (d_ptr->m_modified == modified) + return; + + d_ptr->m_modified = modified; + propertyChanged(); +} + +/*! + Appends the given \a property to this property's subproperties. + + If the given \a property already is added, this function does + nothing. + + \sa insertSubProperty(), removeSubProperty() +*/ +void QtProperty::addSubProperty(QtProperty *property) +{ + QtProperty *after = nullptr; + if (d_ptr->m_subItems.size() > 0) + after = d_ptr->m_subItems.last(); + insertSubProperty(property, after); +} + +/*! + \fn void QtProperty::insertSubProperty(QtProperty *property, QtProperty *precedingProperty) + + Inserts the given \a property after the specified \a + precedingProperty into this property's list of subproperties. If + \a precedingProperty is 0, the specified \a property is inserted + at the beginning of the list. + + If the given \a property already is inserted, this function does + nothing. + + \sa addSubProperty(), removeSubProperty() +*/ +void QtProperty::insertSubProperty(QtProperty *property, + QtProperty *afterProperty) +{ + if (!property) + return; + + if (property == this) + return; + + // traverse all children of item. if this item is a child of item then cannot add. + auto pendingList = property->subProperties(); + QMap visited; + while (!pendingList.isEmpty()) { + QtProperty *i = pendingList.first(); + if (i == this) + return; + pendingList.removeFirst(); + if (visited.contains(i)) + continue; + visited[i] = true; + pendingList += i->subProperties(); + } + + pendingList = subProperties(); + int pos = 0; + int newPos = 0; + QtProperty *properAfterProperty = nullptr; + while (pos < pendingList.size()) { + QtProperty *i = pendingList.at(pos); + if (i == property) + return; // if item is already inserted in this item then cannot add. + if (i == afterProperty) { + newPos = pos + 1; + properAfterProperty = afterProperty; + } + pos++; + } + + d_ptr->m_subItems.insert(newPos, property); + property->d_ptr->m_parentItems.insert(this); + + d_ptr->m_manager->d_ptr->propertyInserted(property, this, properAfterProperty); +} + +/*! + Removes the given \a property from the list of subproperties + without deleting it. + + \sa addSubProperty(), insertSubProperty() +*/ +void QtProperty::removeSubProperty(QtProperty *property) +{ + if (!property) + return; + + d_ptr->m_manager->d_ptr->propertyRemoved(property, this); + + auto pendingList = subProperties(); + int pos = 0; + while (pos < pendingList.size()) { + if (pendingList.at(pos) == property) { + d_ptr->m_subItems.removeAt(pos); + property->d_ptr->m_parentItems.remove(this); + + return; + } + pos++; + } +} + +/*! + \internal +*/ +void QtProperty::propertyChanged() +{ + d_ptr->m_manager->d_ptr->propertyChanged(this); +} + +//////////////////////////////// + +void QtAbstractPropertyManagerPrivate::propertyDestroyed(QtProperty *property) +{ + if (m_properties.contains(property)) { + emit q_ptr->propertyDestroyed(property); + q_ptr->uninitializeProperty(property); + m_properties.remove(property); + } +} + +void QtAbstractPropertyManagerPrivate::propertyChanged(QtProperty *property) const +{ + emit q_ptr->propertyChanged(property); +} + +void QtAbstractPropertyManagerPrivate::propertyRemoved(QtProperty *property, + QtProperty *parentProperty) const +{ + emit q_ptr->propertyRemoved(property, parentProperty); +} + +void QtAbstractPropertyManagerPrivate::propertyInserted(QtProperty *property, + QtProperty *parentProperty, QtProperty *afterProperty) const +{ + emit q_ptr->propertyInserted(property, parentProperty, afterProperty); +} + +/*! + \class QtAbstractPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtAbstractPropertyManager provides an interface for + property managers. + + A manager can create and manage properties of a given type, and is + used in conjunction with the QtAbstractPropertyBrowser class. + + When using a property browser widget, the properties are created + and managed by implementations of the QtAbstractPropertyManager + class. To ensure that the properties' values will be displayed + using suitable editing widgets, the managers are associated with + objects of QtAbstractEditorFactory subclasses. The property browser + will use these associations to determine which factories it should + use to create the preferred editing widgets. + + The QtAbstractPropertyManager class provides common functionality + like creating a property using the addProperty() function, and + retrieving the properties created by the manager using the + properties() function. The class also provides signals that are + emitted when the manager's properties change: propertyInserted(), + propertyRemoved(), propertyChanged() and propertyDestroyed(). + + QtAbstractPropertyManager subclasses are supposed to provide their + own type specific API. Note that several ready-made + implementations are available: + + \list + \li QtBoolPropertyManager + \li QtColorPropertyManager + \li QtDatePropertyManager + \li QtDateTimePropertyManager + \li QtDoublePropertyManager + \li QtEnumPropertyManager + \li QtFlagPropertyManager + \li QtFontPropertyManager + \li QtGroupPropertyManager + \li QtIntPropertyManager + \li QtPointPropertyManager + \li QtRectPropertyManager + \li QtSizePropertyManager + \li QtSizePolicyPropertyManager + \li QtStringPropertyManager + \li QtTimePropertyManager + \li QtVariantPropertyManager + \endlist + + \sa QtAbstractEditorFactoryBase, QtAbstractPropertyBrowser, QtProperty +*/ + +/*! + \fn void QtAbstractPropertyManager::propertyInserted(QtProperty *newProperty, + QtProperty *parentProperty, QtProperty *precedingProperty) + + This signal is emitted when a new subproperty is inserted into an + existing property, passing pointers to the \a newProperty, \a + parentProperty and \a precedingProperty as parameters. + + If \a precedingProperty is 0, the \a newProperty was inserted at + the beginning of the \a parentProperty's subproperties list. + + Note that signal is emitted only if the \a parentProperty is created + by this manager. + + \sa QtAbstractPropertyBrowser::itemInserted() +*/ + +/*! + \fn void QtAbstractPropertyManager::propertyChanged(QtProperty *property) + + This signal is emitted whenever a property's data changes, passing + a pointer to the \a property as parameter. + + Note that signal is only emitted for properties that are created by + this manager. + + \sa QtAbstractPropertyBrowser::itemChanged() +*/ + +/*! + \fn void QtAbstractPropertyManager::propertyRemoved(QtProperty *property, QtProperty *parent) + + This signal is emitted when a subproperty is removed, passing + pointers to the removed \a property and the \a parent property as + parameters. + + Note that signal is emitted only when the \a parent property is + created by this manager. + + \sa QtAbstractPropertyBrowser::itemRemoved() +*/ + +/*! + \fn void QtAbstractPropertyManager::propertyDestroyed(QtProperty *property) + + This signal is emitted when the specified \a property is about to + be destroyed. + + Note that signal is only emitted for properties that are created + by this manager. + + \sa clear(), uninitializeProperty() +*/ + +/*! + \fn void QtAbstractPropertyBrowser::currentItemChanged(QtBrowserItem *current) + + This signal is emitted when the current item changes. The current item is specified by \a current. + + \sa QtAbstractPropertyBrowser::setCurrentItem() +*/ + +/*! + Creates an abstract property manager with the given \a parent. +*/ +QtAbstractPropertyManager::QtAbstractPropertyManager(QObject *parent) + : QObject(parent), d_ptr(new QtAbstractPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys the manager. All properties created by the manager are + destroyed. +*/ +QtAbstractPropertyManager::~QtAbstractPropertyManager() +{ + clear(); +} + +/*! + Destroys all the properties that this manager has created. + + \sa propertyDestroyed(), uninitializeProperty() +*/ +void QtAbstractPropertyManager::clear() const +{ + while (!d_ptr->m_properties.isEmpty()) + delete *d_ptr->m_properties.cbegin(); +} + +/*! + Returns the set of properties created by this manager. + + \sa addProperty() +*/ +QSet QtAbstractPropertyManager::properties() const +{ + return d_ptr->m_properties; +} + +/*! + Returns whether the given \a property has a value. + + The default implementation of this function returns true. + + \sa QtProperty::hasValue() +*/ +bool QtAbstractPropertyManager::hasValue(const QtProperty *property) const +{ + Q_UNUSED(property); + return true; +} + +/*! + Returns an icon representing the current state of the given \a + property. + + The default implementation of this function returns an invalid + icon. + + \sa QtProperty::valueIcon() +*/ +QIcon QtAbstractPropertyManager::valueIcon(const QtProperty *property) const +{ + Q_UNUSED(property); + return QIcon(); +} + +/*! + Returns a string representing the current state of the given \a + property. + + The default implementation of this function returns an empty + string. + + \sa QtProperty::valueText() +*/ +QString QtAbstractPropertyManager::valueText(const QtProperty *property) const +{ + Q_UNUSED(property); + return QString(); +} + +/*! + Creates a property with the given \a name which then is owned by this manager. + + Internally, this function calls the createProperty() and + initializeProperty() functions. + + \sa initializeProperty(), properties() +*/ +QtProperty *QtAbstractPropertyManager::addProperty(const QString &name) +{ + QtProperty *property = createProperty(); + if (property) { + property->setPropertyName(name); + d_ptr->m_properties.insert(property); + initializeProperty(property); + } + return property; +} + +/*! + Creates a property. + + The base implementation produce QtProperty instances; Reimplement + this function to make this manager produce objects of a QtProperty + subclass. + + \sa addProperty(), initializeProperty() +*/ +QtProperty *QtAbstractPropertyManager::createProperty() +{ + return new QtProperty(this); +} + +/*! + \fn void QtAbstractPropertyManager::initializeProperty(QtProperty *property) = 0 + + This function is called whenever a new valid property pointer has + been created, passing the pointer as parameter. + + The purpose is to let the manager know that the \a property has + been created so that it can provide additional attributes for the + new property, e.g. QtIntPropertyManager adds \l + {QtIntPropertyManager::value()}{value}, \l + {QtIntPropertyManager::minimum()}{minimum} and \l + {QtIntPropertyManager::maximum()}{maximum} attributes. Since each manager + subclass adds type specific attributes, this function is pure + virtual and must be reimplemented when deriving from the + QtAbstractPropertyManager class. + + \sa addProperty(), createProperty() +*/ + +/*! + This function is called just before the specified \a property is destroyed. + + The purpose is to let the property manager know that the \a + property is being destroyed so that it can remove the property's + additional attributes. + + \sa clear(), propertyDestroyed() +*/ +void QtAbstractPropertyManager::uninitializeProperty(QtProperty *property) +{ + Q_UNUSED(property); +} + +//////////////////////////////////// + +/*! + \class QtAbstractEditorFactoryBase + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtAbstractEditorFactoryBase provides an interface for + editor factories. + + An editor factory is a class that is able to create an editing + widget of a specified type (e.g. line edits or comboboxes) for a + given QtProperty object, and it is used in conjunction with the + QtAbstractPropertyManager and QtAbstractPropertyBrowser classes. + + When using a property browser widget, the properties are created + and managed by implementations of the QtAbstractPropertyManager + class. To ensure that the properties' values will be displayed + using suitable editing widgets, the managers are associated with + objects of QtAbstractEditorFactory subclasses. The property browser + will use these associations to determine which factories it should + use to create the preferred editing widgets. + + Typically, an editor factory is created by subclassing the + QtAbstractEditorFactory template class which inherits + QtAbstractEditorFactoryBase. But note that several ready-made + implementations are available: + + \list + \li QtCheckBoxFactory + \li QtDateEditFactory + \li QtDateTimeEditFactory + \li QtDoubleSpinBoxFactory + \li QtEnumEditorFactory + \li QtLineEditFactory + \li QtScrollBarFactory + \li QtSliderFactory + \li QtSpinBoxFactory + \li QtTimeEditFactory + \li QtVariantEditorFactory + \endlist + + \sa QtAbstractPropertyManager, QtAbstractPropertyBrowser +*/ + +/*! + \fn virtual QWidget *QtAbstractEditorFactoryBase::createEditor(QtProperty *property, + QWidget *parent) = 0 + + Creates an editing widget (with the given \a parent) for the given + \a property. + + This function is reimplemented in QtAbstractEditorFactory template class + which also provides a pure virtual convenience overload of this + function enabling access to the property's manager. + + \sa QtAbstractEditorFactory::createEditor() +*/ + +/*! + \fn QtAbstractEditorFactoryBase::QtAbstractEditorFactoryBase(QObject *parent = 0) + + Creates an abstract editor factory with the given \a parent. +*/ + +/*! + \fn virtual void QtAbstractEditorFactoryBase::breakConnection(QtAbstractPropertyManager *manager) = 0 + + \internal + + Detaches property manager from factory. + This method is reimplemented in QtAbstractEditorFactory template subclass. + You don't need to reimplement it in your subclasses. Instead implement more convenient + QtAbstractEditorFactory::disconnectPropertyManager() which gives you access to particular manager subclass. +*/ + +/*! + \fn virtual void QtAbstractEditorFactoryBase::managerDestroyed(QObject *manager) = 0 + + \internal + + This method is called when property manager is being destroyed. + Basically it notifies factory not to produce editors for properties owned by \a manager. + You don't need to reimplement it in your subclass. This method is implemented in + QtAbstractEditorFactory template subclass. +*/ + +/*! + \class QtAbstractEditorFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtAbstractEditorFactory is the base template class for editor + factories. + + An editor factory is a class that is able to create an editing + widget of a specified type (e.g. line edits or comboboxes) for a + given QtProperty object, and it is used in conjunction with the + QtAbstractPropertyManager and QtAbstractPropertyBrowser classes. + + Note that the QtAbstractEditorFactory functions are using the + PropertyManager template argument class which can be any + QtAbstractPropertyManager subclass. For example: + + \snippet doc/src/snippets/code/tools_shared_qtpropertybrowser_qtpropertybrowser.cpp 0 + + Note that QtSpinBoxFactory by definition creates editing widgets + \e only for properties created by QtIntPropertyManager. + + When using a property browser widget, the properties are created + and managed by implementations of the QtAbstractPropertyManager + class. To ensure that the properties' values will be displayed + using suitable editing widgets, the managers are associated with + objects of QtAbstractEditorFactory subclasses. The property browser will + use these associations to determine which factories it should use + to create the preferred editing widgets. + + A QtAbstractEditorFactory object is capable of producing editors for + several property managers at the same time. To create an + association between this factory and a given manager, use the + addPropertyManager() function. Use the removePropertyManager() function to make + this factory stop producing editors for a given property + manager. Use the propertyManagers() function to retrieve the set of + managers currently associated with this factory. + + Several ready-made implementations of the QtAbstractEditorFactory class + are available: + + \list + \li QtCheckBoxFactory + \li QtDateEditFactory + \li QtDateTimeEditFactory + \li QtDoubleSpinBoxFactory + \li QtEnumEditorFactory + \li QtLineEditFactory + \li QtScrollBarFactory + \li QtSliderFactory + \li QtSpinBoxFactory + \li QtTimeEditFactory + \li QtVariantEditorFactory + \endlist + + When deriving from the QtAbstractEditorFactory class, several pure virtual + functions must be implemented: the connectPropertyManager() function is + used by the factory to connect to the given manager's signals, the + createEditor() function is supposed to create an editor for the + given property controlled by the given manager, and finally the + disconnectPropertyManager() function is used by the factory to disconnect + from the specified manager's signals. + + \sa QtAbstractEditorFactoryBase, QtAbstractPropertyManager +*/ + +/*! + \fn QtAbstractEditorFactory::QtAbstractEditorFactory(QObject *parent = 0) + + Creates an editor factory with the given \a parent. + + \sa addPropertyManager() +*/ + +/*! + \fn QWidget *QtAbstractEditorFactory::createEditor(QtProperty *property, QWidget *parent) + + Creates an editing widget (with the given \a parent) for the given + \a property. +*/ + +/*! + \fn void QtAbstractEditorFactory::addPropertyManager(PropertyManager *manager) + + Adds the given \a manager to this factory's set of managers, + making this factory produce editing widgets for properties created + by the given manager. + + The PropertyManager type is a template argument class, and represents the chosen + QtAbstractPropertyManager subclass. + + \sa propertyManagers(), removePropertyManager() +*/ + +/*! + \fn void QtAbstractEditorFactory::removePropertyManager(PropertyManager *manager) + + Removes the given \a manager from this factory's set of + managers. The PropertyManager type is a template argument class, and may be + any QtAbstractPropertyManager subclass. + + \sa propertyManagers(), addPropertyManager() +*/ + +/*! + \fn virtual void QtAbstractEditorFactory::connectPropertyManager(PropertyManager *manager) = 0 + + Connects this factory to the given \a manager's signals. The + PropertyManager type is a template argument class, and represents + the chosen QtAbstractPropertyManager subclass. + + This function is used internally by the addPropertyManager() function, and + makes it possible to update an editing widget when the associated + property's data changes. This is typically done in custom slots + responding to the signals emitted by the property's manager, + e.g. QtIntPropertyManager::valueChanged() and + QtIntPropertyManager::rangeChanged(). + + \sa propertyManagers(), disconnectPropertyManager() +*/ + +/*! + \fn virtual QWidget *QtAbstractEditorFactory::createEditor(PropertyManager *manager, QtProperty *property, + QWidget *parent) = 0 + + Creates an editing widget with the given \a parent for the + specified \a property created by the given \a manager. The + PropertyManager type is a template argument class, and represents + the chosen QtAbstractPropertyManager subclass. + + This function must be implemented in derived classes: It is + recommended to store a pointer to the widget and map it to the + given \a property, since the widget must be updated whenever the + associated property's data changes. This is typically done in + custom slots responding to the signals emitted by the property's + manager, e.g. QtIntPropertyManager::valueChanged() and + QtIntPropertyManager::rangeChanged(). + + \sa connectPropertyManager() +*/ + +/*! + \fn virtual void QtAbstractEditorFactory::disconnectPropertyManager(PropertyManager *manager) = 0 + + Disconnects this factory from the given \a manager's signals. The + PropertyManager type is a template argument class, and represents + the chosen QtAbstractPropertyManager subclass. + + This function is used internally by the removePropertyManager() function. + + \sa propertyManagers(), connectPropertyManager() +*/ + +/*! + \fn QSet QtAbstractEditorFactory::propertyManagers() const + + Returns the factory's set of associated managers. The + PropertyManager type is a template argument class, and represents + the chosen QtAbstractPropertyManager subclass. + + \sa addPropertyManager(), removePropertyManager() +*/ + +/*! + \fn PropertyManager *QtAbstractEditorFactory::propertyManager(QtProperty *property) const + + Returns the property manager for the given \a property, or 0 if + the given \a property doesn't belong to any of this factory's + registered managers. + + The PropertyManager type is a template argument class, and represents the chosen + QtAbstractPropertyManager subclass. + + \sa propertyManagers() +*/ + +/*! + \fn virtual void QtAbstractEditorFactory::managerDestroyed(QObject *manager) + + \internal +*/ + +//////////////////////////////////// +class QtBrowserItemPrivate +{ +public: + QtBrowserItemPrivate(QtAbstractPropertyBrowser *browser, QtProperty *property, QtBrowserItem *parent) + : m_browser(browser), m_property(property), m_parent(parent), q_ptr(0) {} + + void addChild(QtBrowserItem *index, QtBrowserItem *after); + void removeChild(QtBrowserItem *index); + + QtAbstractPropertyBrowser * const m_browser; + QtProperty *m_property; + QtBrowserItem *m_parent; + + QtBrowserItem *q_ptr; + + QList m_children; + +}; + +void QtBrowserItemPrivate::addChild(QtBrowserItem *index, QtBrowserItem *after) +{ + if (m_children.contains(index)) + return; + int idx = m_children.indexOf(after) + 1; // we insert after returned idx, if it was -1 then we set idx to 0; + m_children.insert(idx, index); +} + +void QtBrowserItemPrivate::removeChild(QtBrowserItem *index) +{ + m_children.removeAll(index); +} + + +/*! + \class QtBrowserItem + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtBrowserItem class represents a property in + a property browser instance. + + Browser items are created whenever a QtProperty is inserted to the + property browser. A QtBrowserItem uniquely identifies a + browser's item. Thus, if the same QtProperty is inserted multiple + times, each occurrence gets its own unique QtBrowserItem. The + items are owned by QtAbstractPropertyBrowser and automatically + deleted when they are removed from the browser. + + You can traverse a browser's properties by calling parent() and + children(). The property and the browser associated with an item + are available as property() and browser(). + + \sa QtAbstractPropertyBrowser, QtProperty +*/ + +/*! + Returns the property which is accosiated with this item. Note that + several items can be associated with the same property instance in + the same property browser. + + \sa QtAbstractPropertyBrowser::items() +*/ + +QtProperty *QtBrowserItem::property() const +{ + return d_ptr->m_property; +} + +/*! + Returns the parent item of \e this item. Returns 0 if \e this item + is associated with top-level property in item's property browser. + + \sa children() +*/ + +QtBrowserItem *QtBrowserItem::parent() const +{ + return d_ptr->m_parent; +} + +/*! + Returns the children items of \e this item. The properties + reproduced from children items are always the same as + reproduced from associated property' children, for example: + + \snippet doc/src/snippets/code/tools_shared_qtpropertybrowser_qtpropertybrowser.cpp 1 + + The \e childrenItems list represents the same list as \e childrenProperties. +*/ + +QList QtBrowserItem::children() const +{ + return d_ptr->m_children; +} + +/*! + Returns the property browser which owns \e this item. +*/ + +QtAbstractPropertyBrowser *QtBrowserItem::browser() const +{ + return d_ptr->m_browser; +} + +QtBrowserItem::QtBrowserItem(QtAbstractPropertyBrowser *browser, QtProperty *property, QtBrowserItem *parent) + : d_ptr(new QtBrowserItemPrivate(browser, property, parent)) +{ + d_ptr->q_ptr = this; +} + +QtBrowserItem::~QtBrowserItem() +{ +} + + +//////////////////////////////////// + +typedef QMap > Map1; +typedef QMap > > Map2; +Q_GLOBAL_STATIC(Map1, m_viewToManagerToFactory) +Q_GLOBAL_STATIC(Map2, m_managerToFactoryToViews) + +class QtAbstractPropertyBrowserPrivate +{ + QtAbstractPropertyBrowser *q_ptr; + Q_DECLARE_PUBLIC(QtAbstractPropertyBrowser) +public: + QtAbstractPropertyBrowserPrivate(); + + void insertSubTree(QtProperty *property, + QtProperty *parentProperty); + void removeSubTree(QtProperty *property, + QtProperty *parentProperty); + void createBrowserIndexes(QtProperty *property, QtProperty *parentProperty, QtProperty *afterProperty); + void removeBrowserIndexes(QtProperty *property, QtProperty *parentProperty); + QtBrowserItem *createBrowserIndex(QtProperty *property, QtBrowserItem *parentIndex, QtBrowserItem *afterIndex); + void removeBrowserIndex(QtBrowserItem *index); + void clearIndex(QtBrowserItem *index); + + void slotPropertyInserted(QtProperty *property, + QtProperty *parentProperty, QtProperty *afterProperty); + void slotPropertyRemoved(QtProperty *property, QtProperty *parentProperty); + void slotPropertyDestroyed(QtProperty *property); + void slotPropertyDataChanged(QtProperty *property); + + QList m_subItems; + QMap > m_managerToProperties; + QMap > m_propertyToParents; + + QMap m_topLevelPropertyToIndex; + QList m_topLevelIndexes; + QMap > m_propertyToIndexes; + + QtBrowserItem *m_currentItem; +}; + +QtAbstractPropertyBrowserPrivate::QtAbstractPropertyBrowserPrivate() : + m_currentItem(0) +{ +} + +void QtAbstractPropertyBrowserPrivate::insertSubTree(QtProperty *property, + QtProperty *parentProperty) +{ + if (m_propertyToParents.contains(property)) { + // property was already inserted, so its manager is connected + // and all its children are inserted and theirs managers are connected + // we just register new parent (parent has to be new). + m_propertyToParents[property].append(parentProperty); + // don't need to update m_managerToProperties map since + // m_managerToProperties[manager] already contains property. + return; + } + QtAbstractPropertyManager *manager = property->propertyManager(); + if (m_managerToProperties[manager].isEmpty()) { + // connect manager's signals + q_ptr->connect(manager, SIGNAL(propertyInserted(QtProperty *, + QtProperty *, QtProperty *)), + q_ptr, SLOT(slotPropertyInserted(QtProperty *, + QtProperty *, QtProperty *))); + q_ptr->connect(manager, SIGNAL(propertyRemoved(QtProperty *, + QtProperty *)), + q_ptr, SLOT(slotPropertyRemoved(QtProperty*,QtProperty*))); + q_ptr->connect(manager, SIGNAL(propertyDestroyed(QtProperty*)), + q_ptr, SLOT(slotPropertyDestroyed(QtProperty*))); + q_ptr->connect(manager, SIGNAL(propertyChanged(QtProperty*)), + q_ptr, SLOT(slotPropertyDataChanged(QtProperty*))); + } + m_managerToProperties[manager].append(property); + m_propertyToParents[property].append(parentProperty); + + const auto subList = property->subProperties(); + for (QtProperty *subProperty : subList) + insertSubTree(subProperty, property); +} + +void QtAbstractPropertyBrowserPrivate::removeSubTree(QtProperty *property, + QtProperty *parentProperty) +{ + if (!m_propertyToParents.contains(property)) { + // ASSERT + return; + } + + m_propertyToParents[property].removeAll(parentProperty); + if (!m_propertyToParents[property].isEmpty()) + return; + + m_propertyToParents.remove(property); + QtAbstractPropertyManager *manager = property->propertyManager(); + m_managerToProperties[manager].removeAll(property); + if (m_managerToProperties[manager].isEmpty()) { + // disconnect manager's signals + q_ptr->disconnect(manager, SIGNAL(propertyInserted(QtProperty *, + QtProperty *, QtProperty *)), + q_ptr, SLOT(slotPropertyInserted(QtProperty *, + QtProperty *, QtProperty *))); + q_ptr->disconnect(manager, SIGNAL(propertyRemoved(QtProperty *, + QtProperty *)), + q_ptr, SLOT(slotPropertyRemoved(QtProperty*,QtProperty*))); + q_ptr->disconnect(manager, SIGNAL(propertyDestroyed(QtProperty*)), + q_ptr, SLOT(slotPropertyDestroyed(QtProperty*))); + q_ptr->disconnect(manager, SIGNAL(propertyChanged(QtProperty*)), + q_ptr, SLOT(slotPropertyDataChanged(QtProperty*))); + + m_managerToProperties.remove(manager); + } + + const auto subList = property->subProperties(); + for (QtProperty *subProperty : subList) + removeSubTree(subProperty, property); +} + +void QtAbstractPropertyBrowserPrivate::createBrowserIndexes(QtProperty *property, QtProperty *parentProperty, QtProperty *afterProperty) +{ + QMap parentToAfter; + if (afterProperty) { + const auto it = m_propertyToIndexes.constFind(afterProperty); + if (it == m_propertyToIndexes.constEnd()) + return; + + for (QtBrowserItem *idx : it.value()) { + QtBrowserItem *parentIdx = idx->parent(); + if ((parentProperty && parentIdx && parentIdx->property() == parentProperty) || (!parentProperty && !parentIdx)) + parentToAfter[idx->parent()] = idx; + } + } else if (parentProperty) { + const auto it = m_propertyToIndexes.find(parentProperty); + if (it == m_propertyToIndexes.constEnd()) + return; + + for (QtBrowserItem *idx : it.value()) + parentToAfter[idx] = 0; + } else { + parentToAfter[0] = 0; + } + + const QMap::ConstIterator pcend = parentToAfter.constEnd(); + for (QMap::ConstIterator it = parentToAfter.constBegin(); it != pcend; ++it) + createBrowserIndex(property, it.key(), it.value()); +} + +QtBrowserItem *QtAbstractPropertyBrowserPrivate::createBrowserIndex(QtProperty *property, + QtBrowserItem *parentIndex, QtBrowserItem *afterIndex) +{ + QtBrowserItem *newIndex = new QtBrowserItem(q_ptr, property, parentIndex); + if (parentIndex) { + parentIndex->d_ptr->addChild(newIndex, afterIndex); + } else { + m_topLevelPropertyToIndex[property] = newIndex; + m_topLevelIndexes.insert(m_topLevelIndexes.indexOf(afterIndex) + 1, newIndex); + } + m_propertyToIndexes[property].append(newIndex); + + q_ptr->itemInserted(newIndex, afterIndex); + + const auto subItems = property->subProperties(); + QtBrowserItem *afterChild = nullptr; + for (QtProperty *child : subItems) + afterChild = createBrowserIndex(child, newIndex, afterChild); + return newIndex; +} + +void QtAbstractPropertyBrowserPrivate::removeBrowserIndexes(QtProperty *property, QtProperty *parentProperty) +{ + QList toRemove; + const auto it = m_propertyToIndexes.constFind(property); + if (it == m_propertyToIndexes.constEnd()) + return; + + for (QtBrowserItem *idx : it.value()) { + QtBrowserItem *parentIdx = idx->parent(); + if ((parentProperty && parentIdx && parentIdx->property() == parentProperty) || (!parentProperty && !parentIdx)) + toRemove.append(idx); + } + + for (QtBrowserItem *index : std::as_const(toRemove)) + removeBrowserIndex(index); +} + +void QtAbstractPropertyBrowserPrivate::removeBrowserIndex(QtBrowserItem *index) +{ + const auto children = index->children(); + for (int i = children.size(); i > 0; i--) { + removeBrowserIndex(children.at(i - 1)); + } + + q_ptr->itemRemoved(index); + + if (index->parent()) { + index->parent()->d_ptr->removeChild(index); + } else { + m_topLevelPropertyToIndex.remove(index->property()); + m_topLevelIndexes.removeAll(index); + } + + QtProperty *property = index->property(); + + m_propertyToIndexes[property].removeAll(index); + if (m_propertyToIndexes[property].isEmpty()) + m_propertyToIndexes.remove(property); + + delete index; +} + +void QtAbstractPropertyBrowserPrivate::clearIndex(QtBrowserItem *index) +{ + const auto children = index->children(); + for (QtBrowserItem *item : children) + clearIndex(item); + delete index; +} + +void QtAbstractPropertyBrowserPrivate::slotPropertyInserted(QtProperty *property, + QtProperty *parentProperty, QtProperty *afterProperty) +{ + if (!m_propertyToParents.contains(parentProperty)) + return; + createBrowserIndexes(property, parentProperty, afterProperty); + insertSubTree(property, parentProperty); + //q_ptr->propertyInserted(property, parentProperty, afterProperty); +} + +void QtAbstractPropertyBrowserPrivate::slotPropertyRemoved(QtProperty *property, + QtProperty *parentProperty) +{ + if (!m_propertyToParents.contains(parentProperty)) + return; + removeSubTree(property, parentProperty); // this line should be probably moved down after propertyRemoved call + //q_ptr->propertyRemoved(property, parentProperty); + removeBrowserIndexes(property, parentProperty); +} + +void QtAbstractPropertyBrowserPrivate::slotPropertyDestroyed(QtProperty *property) +{ + if (!m_subItems.contains(property)) + return; + q_ptr->removeProperty(property); +} + +void QtAbstractPropertyBrowserPrivate::slotPropertyDataChanged(QtProperty *property) +{ + if (!m_propertyToParents.contains(property)) + return; + + const auto it = m_propertyToIndexes.constFind(property); + if (it == m_propertyToIndexes.constEnd()) + return; + + const auto indexes = it.value(); + for (QtBrowserItem *idx : indexes) + q_ptr->itemChanged(idx); + //q_ptr->propertyChanged(property); +} + +/*! + \class QtAbstractPropertyBrowser + \internal + \inmodule QtDesigner + \since 4.4 + + \brief QtAbstractPropertyBrowser provides a base class for + implementing property browsers. + + A property browser is a widget that enables the user to edit a + given set of properties. Each property is represented by a label + specifying the property's name, and an editing widget (e.g. a line + edit or a combobox) holding its value. A property can have zero or + more subproperties. + + \image qtpropertybrowser.png + + The top level properties can be retrieved using the + properties() function. To traverse each property's + subproperties, use the QtProperty::subProperties() function. In + addition, the set of top level properties can be manipulated using + the addProperty(), insertProperty() and removeProperty() + functions. Note that the QtProperty class provides a corresponding + set of functions making it possible to manipulate the set of + subproperties as well. + + To remove all the properties from the property browser widget, use + the clear() function. This function will clear the editor, but it + will not delete the properties since they can still be used in + other editors. + + The properties themselves are created and managed by + implementations of the QtAbstractPropertyManager class. A manager + can handle (i.e. create and manage) properties of a given type. In + the property browser the managers are associated with + implementations of the QtAbstractEditorFactory: A factory is a + class able to create an editing widget of a specified type. + + When using a property browser widget, managers must be created for + each of the required property types before the properties + themselves can be created. To ensure that the properties' values + will be displayed using suitable editing widgets, the managers + must be associated with objects of the preferred factory + implementations using the setFactoryForManager() function. The + property browser will use these associations to determine which + factory it should use to create the preferred editing widget. + + Note that a factory can be associated with many managers, but a + manager can only be associated with one single factory within the + context of a single property browser. The associations between + managers and factories can at any time be removed using the + unsetFactoryForManager() function. + + Whenever the property data changes or a property is inserted or + removed, the itemChanged(), itemInserted() or + itemRemoved() functions are called, respectively. These + functions must be reimplemented in derived classes in order to + update the property browser widget. Be aware that some property + instances can appear several times in an abstract tree + structure. For example: + + \table 100% + \row + \li + \snippet doc/src/snippets/code/tools_shared_qtpropertybrowser_qtpropertybrowser.cpp 2 + \li \image qtpropertybrowser-duplicate.png + \endtable + + The addProperty() function returns a QtBrowserItem that uniquely + identifies the created item. + + To make a property editable in the property browser, the + createEditor() function must be called to provide the + property with a suitable editing widget. + + Note that there are two ready-made property browser + implementations: + + \list + \li QtGroupBoxPropertyBrowser + \li QtTreePropertyBrowser + \endlist + + \sa QtAbstractPropertyManager, QtAbstractEditorFactoryBase +*/ + +/*! + \fn void QtAbstractPropertyBrowser::setFactoryForManager(PropertyManager *manager, + QtAbstractEditorFactory *factory) + + Connects the given \a manager to the given \a factory, ensuring + that properties of the \a manager's type will be displayed with an + editing widget suitable for their value. + + For example: + + \snippet doc/src/snippets/code/tools_shared_qtpropertybrowser_qtpropertybrowser.cpp 3 + + In this example the \c myInteger property's value is displayed + with a QSpinBox widget, while the \c myDouble property's value is + displayed with a QDoubleSpinBox widget. + + Note that a factory can be associated with many managers, but a + manager can only be associated with one single factory. If the + given \a manager already is associated with another factory, the + old association is broken before the new one established. + + This function ensures that the given \a manager and the given \a + factory are compatible, and it automatically calls the + QtAbstractEditorFactory::addPropertyManager() function if necessary. + + \sa unsetFactoryForManager() +*/ + +/*! + \fn virtual void QtAbstractPropertyBrowser::itemInserted(QtBrowserItem *insertedItem, + QtBrowserItem *precedingItem) = 0 + + This function is called to update the widget whenever a property + is inserted or added to the property browser, passing pointers to + the \a insertedItem of property and the specified + \a precedingItem as parameters. + + If \a precedingItem is 0, the \a insertedItem was put at + the beginning of its parent item's list of subproperties. If + the parent of \a insertedItem is 0, the \a insertedItem was added as a top + level property of \e this property browser. + + This function must be reimplemented in derived classes. Note that + if the \a insertedItem's property has subproperties, this + method will be called for those properties as soon as the current call is finished. + + \sa insertProperty(), addProperty() +*/ + +/*! + \fn virtual void QtAbstractPropertyBrowser::itemRemoved(QtBrowserItem *item) = 0 + + This function is called to update the widget whenever a property + is removed from the property browser, passing the pointer to the + \a item of the property as parameters. The passed \a item is + deleted just after this call is finished. + + If the the parent of \a item is 0, the removed \a item was a + top level property in this editor. + + This function must be reimplemented in derived classes. Note that + if the removed \a item's property has subproperties, this + method will be called for those properties just before the current call is started. + + \sa removeProperty() +*/ + +/*! + \fn virtual void QtAbstractPropertyBrowser::itemChanged(QtBrowserItem *item) = 0 + + This function is called whenever a property's data changes, + passing a pointer to the \a item of property as parameter. + + This function must be reimplemented in derived classes in order to + update the property browser widget whenever a property's name, + tool tip, status tip, "what's this" text, value text or value icon + changes. + + Note that if the property browser contains several occurrences of + the same property, this method will be called once for each + occurrence (with a different item each time). + + \sa QtProperty, items() +*/ + +/*! + Creates an abstract property browser with the given \a parent. +*/ +QtAbstractPropertyBrowser::QtAbstractPropertyBrowser(QWidget *parent) + : QWidget(parent), d_ptr(new QtAbstractPropertyBrowserPrivate) +{ + d_ptr->q_ptr = this; + +} + +/*! + Destroys the property browser, and destroys all the items that were + created by this property browser. + + Note that the properties that were displayed in the editor are not + deleted since they still can be used in other editors. Neither + does the destructor delete the property managers and editor + factories that were used by this property browser widget unless + this widget was their parent. + + \sa QtAbstractPropertyManager::~QtAbstractPropertyManager() +*/ +QtAbstractPropertyBrowser::~QtAbstractPropertyBrowser() +{ + const auto indexes = topLevelItems(); + for (QtBrowserItem *item : indexes) + d_ptr->clearIndex(item); +} + +/*! + Returns the property browser's list of top level properties. + + To traverse the subproperties, use the QtProperty::subProperties() + function. + + \sa addProperty(), insertProperty(), removeProperty() +*/ +QList QtAbstractPropertyBrowser::properties() const +{ + return d_ptr->m_subItems; +} + +/*! + Returns the property browser's list of all items associated + with the given \a property. + + There is one item per instance of the property in the browser. + + \sa topLevelItem() +*/ + +QList QtAbstractPropertyBrowser::items(QtProperty *property) const +{ + return d_ptr->m_propertyToIndexes.value(property); +} + +/*! + Returns the top-level items associated with the given \a property. + + Returns 0 if \a property wasn't inserted into this property + browser or isn't a top-level one. + + \sa topLevelItems(), items() +*/ + +QtBrowserItem *QtAbstractPropertyBrowser::topLevelItem(QtProperty *property) const +{ + return d_ptr->m_topLevelPropertyToIndex.value(property); +} + +/*! + Returns the list of top-level items. + + \sa topLevelItem() +*/ + +QList QtAbstractPropertyBrowser::topLevelItems() const +{ + return d_ptr->m_topLevelIndexes; +} + +/*! + Removes all the properties from the editor, but does not delete + them since they can still be used in other editors. + + \sa removeProperty(), QtAbstractPropertyManager::clear() +*/ +void QtAbstractPropertyBrowser::clear() +{ + const auto subList = properties(); + for (auto rit = subList.crbegin(), rend = subList.crend(); rit != rend; ++rit) + removeProperty(*rit); +} + +/*! + Appends the given \a property (and its subproperties) to the + property browser's list of top level properties. Returns the item + created by property browser which is associated with the \a property. + In order to get all children items created by the property + browser in this call, the returned item should be traversed. + + If the specified \a property is already added, this function does + nothing and returns 0. + + \sa insertProperty(), QtProperty::addSubProperty(), properties() +*/ +QtBrowserItem *QtAbstractPropertyBrowser::addProperty(QtProperty *property) +{ + QtProperty *afterProperty = nullptr; + if (d_ptr->m_subItems.size() > 0) + afterProperty = d_ptr->m_subItems.last(); + return insertProperty(property, afterProperty); +} + +/*! + \fn QtBrowserItem *QtAbstractPropertyBrowser::insertProperty(QtProperty *property, + QtProperty *afterProperty) + + Inserts the given \a property (and its subproperties) after + the specified \a afterProperty in the browser's list of top + level properties. Returns item created by property browser which + is associated with the \a property. In order to get all children items + created by the property browser in this call returned item should be traversed. + + If the specified \a afterProperty is 0, the given \a property is + inserted at the beginning of the list. If \a property is + already inserted, this function does nothing and returns 0. + + \sa addProperty(), QtProperty::insertSubProperty(), properties() +*/ +QtBrowserItem *QtAbstractPropertyBrowser::insertProperty(QtProperty *property, + QtProperty *afterProperty) +{ + if (!property) + return 0; + + // if item is already inserted in this item then cannot add. + auto pendingList = properties(); + int pos = 0; + int newPos = 0; + while (pos < pendingList.size()) { + QtProperty *prop = pendingList.at(pos); + if (prop == property) + return 0; + if (prop == afterProperty) { + newPos = pos + 1; + } + pos++; + } + d_ptr->createBrowserIndexes(property, 0, afterProperty); + + // traverse inserted subtree and connect to manager's signals + d_ptr->insertSubTree(property, 0); + + d_ptr->m_subItems.insert(newPos, property); + //propertyInserted(property, 0, properAfterProperty); + return topLevelItem(property); +} + +/*! + Removes the specified \a property (and its subproperties) from the + property browser's list of top level properties. All items + that were associated with the given \a property and its children + are deleted. + + Note that the properties are \e not deleted since they can still + be used in other editors. + + \sa clear(), QtProperty::removeSubProperty(), properties() +*/ +void QtAbstractPropertyBrowser::removeProperty(QtProperty *property) +{ + if (!property) + return; + + auto pendingList = properties(); + int pos = 0; + while (pos < pendingList.size()) { + if (pendingList.at(pos) == property) { + d_ptr->m_subItems.removeAt(pos); //perhaps this two lines + d_ptr->removeSubTree(property, 0); //should be moved down after propertyRemoved call. + //propertyRemoved(property, 0); + + d_ptr->removeBrowserIndexes(property, 0); + + // when item is deleted, item will call removeItem for top level items, + // and itemRemoved for nested items. + + return; + } + pos++; + } +} + +/*! + Creates an editing widget (with the given \a parent) for the given + \a property according to the previously established associations + between property managers and editor factories. + + If the property is created by a property manager which was not + associated with any of the existing factories in \e this property + editor, the function returns 0. + + To make a property editable in the property browser, the + createEditor() function must be called to provide the + property with a suitable editing widget. + + Reimplement this function to provide additional decoration for the + editing widgets created by the installed factories. + + \sa setFactoryForManager() +*/ +QWidget *QtAbstractPropertyBrowser::createEditor(QtProperty *property, + QWidget *parent) +{ + QtAbstractEditorFactoryBase *factory = nullptr; + QtAbstractPropertyManager *manager = property->propertyManager(); + + if (m_viewToManagerToFactory()->contains(this) && + (*m_viewToManagerToFactory())[this].contains(manager)) { + factory = (*m_viewToManagerToFactory())[this][manager]; + } + + if (!factory) + return 0; + QWidget *w = factory->createEditor(property, parent); + // Since some editors can be QComboBoxes, and we changed their focus policy in Qt 5 + // to make them feel more native on Mac, we need to relax the focus policy to something + // more permissive to keep the combo box from losing focus, allowing it to stay alive, + // when the user clicks on it to show the popup. + if (w) + w->setFocusPolicy(Qt::WheelFocus); + return w; +} + +bool QtAbstractPropertyBrowser::addFactory(QtAbstractPropertyManager *abstractManager, + QtAbstractEditorFactoryBase *abstractFactory) +{ + bool connectNeeded = false; + if (!m_managerToFactoryToViews()->contains(abstractManager) || + !(*m_managerToFactoryToViews())[abstractManager].contains(abstractFactory)) { + connectNeeded = true; + } else if ((*m_managerToFactoryToViews())[abstractManager][abstractFactory] + .contains(this)) { + return connectNeeded; + } + + if (m_viewToManagerToFactory()->contains(this) && + (*m_viewToManagerToFactory())[this].contains(abstractManager)) { + unsetFactoryForManager(abstractManager); + } + + (*m_managerToFactoryToViews())[abstractManager][abstractFactory].append(this); + (*m_viewToManagerToFactory())[this][abstractManager] = abstractFactory; + + return connectNeeded; +} + +/*! + Removes the association between the given \a manager and the + factory bound to it, automatically calling the + QtAbstractEditorFactory::removePropertyManager() function if necessary. + + \sa setFactoryForManager() +*/ +void QtAbstractPropertyBrowser::unsetFactoryForManager(QtAbstractPropertyManager *manager) +{ + if (!m_viewToManagerToFactory()->contains(this) || + !(*m_viewToManagerToFactory())[this].contains(manager)) { + return; + } + + QtAbstractEditorFactoryBase *abstractFactory = + (*m_viewToManagerToFactory())[this][manager]; + (*m_viewToManagerToFactory())[this].remove(manager); + if ((*m_viewToManagerToFactory())[this].isEmpty()) { + (*m_viewToManagerToFactory()).remove(this); + } + + (*m_managerToFactoryToViews())[manager][abstractFactory].removeAll(this); + if ((*m_managerToFactoryToViews())[manager][abstractFactory].isEmpty()) { + (*m_managerToFactoryToViews())[manager].remove(abstractFactory); + abstractFactory->breakConnection(manager); + if ((*m_managerToFactoryToViews())[manager].isEmpty()) { + (*m_managerToFactoryToViews()).remove(manager); + } + } +} + +/*! + Returns the current item in the property browser. + + \sa setCurrentItem() +*/ +QtBrowserItem *QtAbstractPropertyBrowser::currentItem() const +{ + return d_ptr->m_currentItem; +} + +/*! + Sets the current item in the property browser to \a item. + + \sa currentItem(), currentItemChanged() +*/ +void QtAbstractPropertyBrowser::setCurrentItem(QtBrowserItem *item) +{ + QtBrowserItem *oldItem = d_ptr->m_currentItem; + d_ptr->m_currentItem = item; + if (oldItem != item) + emit currentItemChanged(item); +} + +QT_END_NAMESPACE + +#include "moc_qtpropertybrowser.cpp" diff --git a/src/shared/qtpropertybrowser/qtpropertybrowser.h b/src/shared/qtpropertybrowser/qtpropertybrowser.h new file mode 100644 index 0000000..d60758e --- /dev/null +++ b/src/shared/qtpropertybrowser/qtpropertybrowser.h @@ -0,0 +1,267 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTPROPERTYBROWSER_H +#define QTPROPERTYBROWSER_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QtAbstractPropertyManager; +class QtPropertyPrivate; + +class QtProperty +{ +public: + virtual ~QtProperty(); + + QList subProperties() const; + + QtAbstractPropertyManager *propertyManager() const; + + QString toolTip() const { return valueToolTip(); } // Compatibility + QString valueToolTip() const; + QString descriptionToolTip() const; + QString statusTip() const; + QString whatsThis() const; + QString propertyName() const; + bool isEnabled() const; + bool isModified() const; + + bool hasValue() const; + QIcon valueIcon() const; + QString valueText() const; + + void setToolTip(const QString &text) { setValueToolTip(text); } // Compatibility + void setValueToolTip(const QString &text); + void setDescriptionToolTip(const QString &text); + void setStatusTip(const QString &text); + void setWhatsThis(const QString &text); + void setPropertyName(const QString &text); + void setEnabled(bool enable); + void setModified(bool modified); + + void addSubProperty(QtProperty *property); + void insertSubProperty(QtProperty *property, QtProperty *afterProperty); + void removeSubProperty(QtProperty *property); +protected: + explicit QtProperty(QtAbstractPropertyManager *manager); + void propertyChanged(); +private: + friend class QtAbstractPropertyManager; + QScopedPointer d_ptr; +}; + +class QtAbstractPropertyManagerPrivate; + +class QtAbstractPropertyManager : public QObject +{ + Q_OBJECT +public: + + explicit QtAbstractPropertyManager(QObject *parent = 0); + ~QtAbstractPropertyManager(); + + QSet properties() const; + void clear() const; + + QtProperty *addProperty(const QString &name = QString()); +Q_SIGNALS: + + void propertyInserted(QtProperty *property, + QtProperty *parent, QtProperty *after); + void propertyChanged(QtProperty *property); + void propertyRemoved(QtProperty *property, QtProperty *parent); + void propertyDestroyed(QtProperty *property); +protected: + virtual bool hasValue(const QtProperty *property) const; + virtual QIcon valueIcon(const QtProperty *property) const; + virtual QString valueText(const QtProperty *property) const; + virtual void initializeProperty(QtProperty *property) = 0; + virtual void uninitializeProperty(QtProperty *property); + virtual QtProperty *createProperty(); +private: + friend class QtProperty; + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtAbstractPropertyManager) + Q_DISABLE_COPY_MOVE(QtAbstractPropertyManager) +}; + +class QtAbstractEditorFactoryBase : public QObject +{ + Q_OBJECT +public: + virtual QWidget *createEditor(QtProperty *property, QWidget *parent) = 0; +protected: + explicit QtAbstractEditorFactoryBase(QObject *parent = 0) + : QObject(parent) {} + + virtual void breakConnection(QtAbstractPropertyManager *manager) = 0; +protected Q_SLOTS: + virtual void managerDestroyed(QObject *manager) = 0; + + friend class QtAbstractPropertyBrowser; +}; + +template +class QtAbstractEditorFactory : public QtAbstractEditorFactoryBase +{ +public: + explicit QtAbstractEditorFactory(QObject *parent) : QtAbstractEditorFactoryBase(parent) {} + QWidget *createEditor(QtProperty *property, QWidget *parent) override + { + for (PropertyManager *manager : std::as_const(m_managers)) { + if (manager == property->propertyManager()) { + return createEditor(manager, property, parent); + } + } + return 0; + } + void addPropertyManager(PropertyManager *manager) + { + if (m_managers.contains(manager)) + return; + m_managers.insert(manager); + connectPropertyManager(manager); + connect(manager, SIGNAL(destroyed(QObject *)), + this, SLOT(managerDestroyed(QObject *))); + } + void removePropertyManager(PropertyManager *manager) + { + if (!m_managers.contains(manager)) + return; + disconnect(manager, SIGNAL(destroyed(QObject *)), + this, SLOT(managerDestroyed(QObject *))); + disconnectPropertyManager(manager); + m_managers.remove(manager); + } + QSet propertyManagers() const + { + return m_managers; + } + PropertyManager *propertyManager(QtProperty *property) const + { + QtAbstractPropertyManager *manager = property->propertyManager(); + for (PropertyManager *m : std::as_const(m_managers)) { + if (m == manager) { + return m; + } + } + return 0; + } +protected: + virtual void connectPropertyManager(PropertyManager *manager) = 0; + virtual QWidget *createEditor(PropertyManager *manager, QtProperty *property, + QWidget *parent) = 0; + virtual void disconnectPropertyManager(PropertyManager *manager) = 0; + void managerDestroyed(QObject *manager) override + { + for (PropertyManager *m : std::as_const(m_managers)) { + if (m == manager) { + m_managers.remove(m); + return; + } + } + } +private: + void breakConnection(QtAbstractPropertyManager *manager) override + { + for (PropertyManager *m : std::as_const(m_managers)) { + if (m == manager) { + removePropertyManager(m); + return; + } + } + } +private: + QSet m_managers; + friend class QtAbstractPropertyEditor; +}; + +class QtAbstractPropertyBrowser; +class QtBrowserItemPrivate; + +class QtBrowserItem +{ +public: + QtProperty *property() const; + QtBrowserItem *parent() const; + QList children() const; + QtAbstractPropertyBrowser *browser() const; +private: + explicit QtBrowserItem(QtAbstractPropertyBrowser *browser, QtProperty *property, QtBrowserItem *parent); + ~QtBrowserItem(); + QScopedPointer d_ptr; + friend class QtAbstractPropertyBrowserPrivate; +}; + +class QtAbstractPropertyBrowserPrivate; + +class QtAbstractPropertyBrowser : public QWidget +{ + Q_OBJECT +public: + + explicit QtAbstractPropertyBrowser(QWidget *parent = 0); + ~QtAbstractPropertyBrowser(); + + QList properties() const; + QList items(QtProperty *property) const; + QtBrowserItem *topLevelItem(QtProperty *property) const; + QList topLevelItems() const; + void clear(); + + template + void setFactoryForManager(PropertyManager *manager, + QtAbstractEditorFactory *factory) { + QtAbstractPropertyManager *abstractManager = manager; + QtAbstractEditorFactoryBase *abstractFactory = factory; + + if (addFactory(abstractManager, abstractFactory)) + factory->addPropertyManager(manager); + } + + void unsetFactoryForManager(QtAbstractPropertyManager *manager); + + QtBrowserItem *currentItem() const; + void setCurrentItem(QtBrowserItem *); + +Q_SIGNALS: + void currentItemChanged(QtBrowserItem *); + +public Q_SLOTS: + + QtBrowserItem *addProperty(QtProperty *property); + QtBrowserItem *insertProperty(QtProperty *property, QtProperty *afterProperty); + void removeProperty(QtProperty *property); + +protected: + + virtual void itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem) = 0; + virtual void itemRemoved(QtBrowserItem *item) = 0; + // can be tooltip, statustip, whatsthis, name, icon, text. + virtual void itemChanged(QtBrowserItem *item) = 0; + + virtual QWidget *createEditor(QtProperty *property, QWidget *parent); +private: + + bool addFactory(QtAbstractPropertyManager *abstractManager, + QtAbstractEditorFactoryBase *abstractFactory); + + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtAbstractPropertyBrowser) + Q_DISABLE_COPY_MOVE(QtAbstractPropertyBrowser) + Q_PRIVATE_SLOT(d_func(), void slotPropertyInserted(QtProperty *, + QtProperty *, QtProperty *)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyRemoved(QtProperty *, + QtProperty *)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyDataChanged(QtProperty *)) + +}; + +QT_END_NAMESPACE + +#endif // QTPROPERTYBROWSER_H diff --git a/src/shared/qtpropertybrowser/qtpropertybrowserutils.cpp b/src/shared/qtpropertybrowser/qtpropertybrowserutils.cpp new file mode 100644 index 0000000..c43e83d --- /dev/null +++ b/src/shared/qtpropertybrowser/qtpropertybrowserutils.cpp @@ -0,0 +1,270 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtpropertybrowserutils_p.h" +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +QtCursorDatabase::QtCursorDatabase() +{ + appendCursor(Qt::ArrowCursor, QCoreApplication::translate("QtCursorDatabase", "Arrow"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-arrow.png"))); + appendCursor(Qt::UpArrowCursor, QCoreApplication::translate("QtCursorDatabase", "Up Arrow"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-uparrow.png"))); + appendCursor(Qt::CrossCursor, QCoreApplication::translate("QtCursorDatabase", "Cross"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-cross.png"))); + appendCursor(Qt::WaitCursor, QCoreApplication::translate("QtCursorDatabase", "Wait"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-wait.png"))); + appendCursor(Qt::IBeamCursor, QCoreApplication::translate("QtCursorDatabase", "IBeam"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-ibeam.png"))); + appendCursor(Qt::SizeVerCursor, QCoreApplication::translate("QtCursorDatabase", "Size Vertical"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-sizev.png"))); + appendCursor(Qt::SizeHorCursor, QCoreApplication::translate("QtCursorDatabase", "Size Horizontal"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-sizeh.png"))); + appendCursor(Qt::SizeFDiagCursor, QCoreApplication::translate("QtCursorDatabase", "Size Backslash"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-sizef.png"))); + appendCursor(Qt::SizeBDiagCursor, QCoreApplication::translate("QtCursorDatabase", "Size Slash"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-sizeb.png"))); + appendCursor(Qt::SizeAllCursor, QCoreApplication::translate("QtCursorDatabase", "Size All"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-sizeall.png"))); + appendCursor(Qt::BlankCursor, QCoreApplication::translate("QtCursorDatabase", "Blank"), + QIcon()); + appendCursor(Qt::SplitVCursor, QCoreApplication::translate("QtCursorDatabase", "Split Vertical"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-vsplit.png"))); + appendCursor(Qt::SplitHCursor, QCoreApplication::translate("QtCursorDatabase", "Split Horizontal"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-hsplit.png"))); + appendCursor(Qt::PointingHandCursor, QCoreApplication::translate("QtCursorDatabase", "Pointing Hand"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-hand.png"))); + appendCursor(Qt::ForbiddenCursor, QCoreApplication::translate("QtCursorDatabase", "Forbidden"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-forbidden.png"))); + appendCursor(Qt::OpenHandCursor, QCoreApplication::translate("QtCursorDatabase", "Open Hand"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-openhand.png"))); + appendCursor(Qt::ClosedHandCursor, QCoreApplication::translate("QtCursorDatabase", "Closed Hand"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-closedhand.png"))); + appendCursor(Qt::WhatsThisCursor, QCoreApplication::translate("QtCursorDatabase", "What's This"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-whatsthis.png"))); + appendCursor(Qt::BusyCursor, QCoreApplication::translate("QtCursorDatabase", "Busy"), + QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-busy.png"))); +} + +void QtCursorDatabase::clear() +{ + m_cursorNames.clear(); + m_cursorIcons.clear(); + m_valueToCursorShape.clear(); + m_cursorShapeToValue.clear(); +} + +void QtCursorDatabase::appendCursor(Qt::CursorShape shape, const QString &name, const QIcon &icon) +{ + if (m_cursorShapeToValue.contains(shape)) + return; + const int value = m_cursorNames.size(); + m_cursorNames.append(name); + m_cursorIcons.insert(value, icon); + m_valueToCursorShape.insert(value, shape); + m_cursorShapeToValue.insert(shape, value); +} + +QStringList QtCursorDatabase::cursorShapeNames() const +{ + return m_cursorNames; +} + +QMap QtCursorDatabase::cursorShapeIcons() const +{ + return m_cursorIcons; +} + +QString QtCursorDatabase::cursorToShapeName(const QCursor &cursor) const +{ + int val = cursorToValue(cursor); + if (val >= 0) + return m_cursorNames.at(val); + return QString(); +} + +QIcon QtCursorDatabase::cursorToShapeIcon(const QCursor &cursor) const +{ + int val = cursorToValue(cursor); + return m_cursorIcons.value(val); +} + +int QtCursorDatabase::cursorToValue(const QCursor &cursor) const +{ +#ifndef QT_NO_CURSOR + Qt::CursorShape shape = cursor.shape(); + if (m_cursorShapeToValue.contains(shape)) + return m_cursorShapeToValue[shape]; +#endif + return -1; +} + +#ifndef QT_NO_CURSOR +QCursor QtCursorDatabase::valueToCursor(int value) const +{ + if (m_valueToCursorShape.contains(value)) + return QCursor(m_valueToCursorShape[value]); + return QCursor(); +} +#endif + +QPixmap QtPropertyBrowserUtils::brushValuePixmap(const QBrush &b) +{ + QImage img(16, 16, QImage::Format_ARGB32_Premultiplied); + img.fill(0); + + QPainter painter(&img); + painter.setCompositionMode(QPainter::CompositionMode_Source); + painter.fillRect(0, 0, img.width(), img.height(), b); + QColor color = b.color(); + if (color.alpha() != 255) { // indicate alpha by an inset + QBrush opaqueBrush = b; + color.setAlpha(255); + opaqueBrush.setColor(color); + painter.fillRect(img.width() / 4, img.height() / 4, + img.width() / 2, img.height() / 2, opaqueBrush); + } + painter.end(); + return QPixmap::fromImage(img); +} + +QIcon QtPropertyBrowserUtils::brushValueIcon(const QBrush &b) +{ + return QIcon(brushValuePixmap(b)); +} + +QString QtPropertyBrowserUtils::colorValueText(const QColor &c) +{ + return QCoreApplication::translate("QtPropertyBrowserUtils", "[%1, %2, %3] (%4)") + .arg(c.red()).arg(c.green()).arg(c.blue()).arg(c.alpha()); +} + +QPixmap QtPropertyBrowserUtils::fontValuePixmap(const QFont &font) +{ + QFont f = font; + QImage img(16, 16, QImage::Format_ARGB32_Premultiplied); + img.fill(0); + QPainter p(&img); + p.setRenderHint(QPainter::TextAntialiasing, true); + p.setRenderHint(QPainter::Antialiasing, true); + f.setPointSize(13); + p.setFont(f); + QTextOption t; + t.setAlignment(Qt::AlignCenter); + p.drawText(QRect(0, 0, 16, 16), QString(QLatin1Char('A')), t); + return QPixmap::fromImage(img); +} + +QIcon QtPropertyBrowserUtils::fontValueIcon(const QFont &f) +{ + return QIcon(fontValuePixmap(f)); +} + +QString QtPropertyBrowserUtils::fontValueText(const QFont &f) +{ + return QCoreApplication::translate("QtPropertyBrowserUtils", "[%1, %2]") + .arg(f.family()).arg(f.pointSize()); +} + +QString QtPropertyBrowserUtils::dateFormat() +{ + QLocale loc; + QString format = loc.dateFormat(QLocale::ShortFormat); + // Change dd.MM.yy, MM/dd/yy to 4 digit years + if (format.count(QLatin1Char('y')) == 2) + format.insert(format.indexOf(QLatin1Char('y')), QLatin1String("yy")); + return format; +} + +QString QtPropertyBrowserUtils::timeFormat() +{ + QLocale loc; + // ShortFormat is missing seconds on UNIX. + return loc.timeFormat(QLocale::LongFormat); +} + +QString QtPropertyBrowserUtils::dateTimeFormat() +{ + QString format = dateFormat(); + format += QLatin1Char(' '); + format += timeFormat(); + return format; +} + +QtBoolEdit::QtBoolEdit(QWidget *parent) : + QWidget(parent), + m_checkBox(new QCheckBox(this)), + m_textVisible(true) +{ + QHBoxLayout *lt = new QHBoxLayout; + if (QApplication::layoutDirection() == Qt::LeftToRight) + lt->setContentsMargins(4, 0, 0, 0); + else + lt->setContentsMargins(0, 0, 4, 0); + lt->addWidget(m_checkBox); + setLayout(lt); + connect(m_checkBox, SIGNAL(toggled(bool)), this, SIGNAL(toggled(bool))); + setFocusProxy(m_checkBox); + m_checkBox->setText(tr("True")); +} + +void QtBoolEdit::setTextVisible(bool textVisible) +{ + if (m_textVisible == textVisible) + return; + + m_textVisible = textVisible; + if (m_textVisible) + m_checkBox->setText(isChecked() ? tr("True") : tr("False")); + else + m_checkBox->setText(QString()); +} + +Qt::CheckState QtBoolEdit::checkState() const +{ + return m_checkBox->checkState(); +} + +void QtBoolEdit::setCheckState(Qt::CheckState state) +{ + m_checkBox->setCheckState(state); +} + +bool QtBoolEdit::isChecked() const +{ + return m_checkBox->isChecked(); +} + +void QtBoolEdit::setChecked(bool c) +{ + m_checkBox->setChecked(c); + if (!m_textVisible) + return; + m_checkBox->setText(isChecked() ? tr("True") : tr("False")); +} + +bool QtBoolEdit::blockCheckBoxSignals(bool block) +{ + return m_checkBox->blockSignals(block); +} + +void QtBoolEdit::mousePressEvent(QMouseEvent *event) +{ + if (event->buttons() == Qt::LeftButton) { + m_checkBox->click(); + event->accept(); + } else { + QWidget::mousePressEvent(event); + } +} + +QT_END_NAMESPACE diff --git a/src/shared/qtpropertybrowser/qtpropertybrowserutils_p.h b/src/shared/qtpropertybrowser/qtpropertybrowserutils_p.h new file mode 100644 index 0000000..38f8672 --- /dev/null +++ b/src/shared/qtpropertybrowser/qtpropertybrowserutils_p.h @@ -0,0 +1,94 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of Qt Designer. This header +// file may change from version to version without notice, or even be removed. +// +// We mean it. +// + +#ifndef QTPROPERTYBROWSERUTILS_H +#define QTPROPERTYBROWSERUTILS_H + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QMouseEvent; +class QCheckBox; +class QLineEdit; + +class QtCursorDatabase +{ +public: + QtCursorDatabase(); + void clear(); + + QStringList cursorShapeNames() const; + QMap cursorShapeIcons() const; + QString cursorToShapeName(const QCursor &cursor) const; + QIcon cursorToShapeIcon(const QCursor &cursor) const; + int cursorToValue(const QCursor &cursor) const; +#ifndef QT_NO_CURSOR + QCursor valueToCursor(int value) const; +#endif +private: + void appendCursor(Qt::CursorShape shape, const QString &name, const QIcon &icon); + QStringList m_cursorNames; + QMap m_cursorIcons; + QMap m_valueToCursorShape; + QMap m_cursorShapeToValue; +}; + +class QtPropertyBrowserUtils +{ +public: + static QPixmap brushValuePixmap(const QBrush &b); + static QIcon brushValueIcon(const QBrush &b); + static QString colorValueText(const QColor &c); + static QPixmap fontValuePixmap(const QFont &f); + static QIcon fontValueIcon(const QFont &f); + static QString fontValueText(const QFont &f); + static QString dateFormat(); + static QString timeFormat(); + static QString dateTimeFormat(); +}; + +class QtBoolEdit : public QWidget { + Q_OBJECT +public: + QtBoolEdit(QWidget *parent = 0); + + bool textVisible() const { return m_textVisible; } + void setTextVisible(bool textVisible); + + Qt::CheckState checkState() const; + void setCheckState(Qt::CheckState state); + + bool isChecked() const; + void setChecked(bool c); + + bool blockCheckBoxSignals(bool block); + +Q_SIGNALS: + void toggled(bool); + +protected: + void mousePressEvent(QMouseEvent * event) override; + +private: + QCheckBox *m_checkBox; + bool m_textVisible; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtpropertybrowser/qtpropertymanager.cpp b/src/shared/qtpropertybrowser/qtpropertymanager.cpp new file mode 100644 index 0000000..18dd16a --- /dev/null +++ b/src/shared/qtpropertybrowser/qtpropertymanager.cpp @@ -0,0 +1,6394 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtpropertymanager.h" +#include "qtpropertybrowserutils_p.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#if defined(Q_CC_MSVC) +# pragma warning(disable: 4786) /* MS VS 6: truncating debug info after 255 characters */ +#endif + +QT_BEGIN_NAMESPACE + +template +static void setSimpleMinimumData(PrivateData *data, const Value &minVal) +{ + data->minVal = minVal; + if (data->maxVal < data->minVal) + data->maxVal = data->minVal; + + if (data->val < data->minVal) + data->val = data->minVal; +} + +template +static void setSimpleMaximumData(PrivateData *data, const Value &maxVal) +{ + data->maxVal = maxVal; + if (data->minVal > data->maxVal) + data->minVal = data->maxVal; + + if (data->val > data->maxVal) + data->val = data->maxVal; +} + +template +static void setSizeMinimumData(PrivateData *data, const Value &newMinVal) +{ + data->minVal = newMinVal; + if (data->maxVal.width() < data->minVal.width()) + data->maxVal.setWidth(data->minVal.width()); + if (data->maxVal.height() < data->minVal.height()) + data->maxVal.setHeight(data->minVal.height()); + + if (data->val.width() < data->minVal.width()) + data->val.setWidth(data->minVal.width()); + if (data->val.height() < data->minVal.height()) + data->val.setHeight(data->minVal.height()); +} + +template +static void setSizeMaximumData(PrivateData *data, const Value &newMaxVal) +{ + data->maxVal = newMaxVal; + if (data->minVal.width() > data->maxVal.width()) + data->minVal.setWidth(data->maxVal.width()); + if (data->minVal.height() > data->maxVal.height()) + data->minVal.setHeight(data->maxVal.height()); + + if (data->val.width() > data->maxVal.width()) + data->val.setWidth(data->maxVal.width()); + if (data->val.height() > data->maxVal.height()) + data->val.setHeight(data->maxVal.height()); +} + +template +static SizeValue qBoundSize(const SizeValue &minVal, const SizeValue &val, const SizeValue &maxVal) +{ + SizeValue croppedVal = val; + if (minVal.width() > val.width()) + croppedVal.setWidth(minVal.width()); + else if (maxVal.width() < val.width()) + croppedVal.setWidth(maxVal.width()); + + if (minVal.height() > val.height()) + croppedVal.setHeight(minVal.height()); + else if (maxVal.height() < val.height()) + croppedVal.setHeight(maxVal.height()); + + return croppedVal; +} + +// Match the exact signature of qBound for VS 6. +QSize qBound(QSize minVal, QSize val, QSize maxVal) +{ + return qBoundSize(minVal, val, maxVal); +} + +QSizeF qBound(QSizeF minVal, QSizeF val, QSizeF maxVal) +{ + return qBoundSize(minVal, val, maxVal); +} + +namespace { + +namespace { +template +void orderBorders(Value &minVal, Value &maxVal) +{ + if (minVal > maxVal) + qSwap(minVal, maxVal); +} + +template +static void orderSizeBorders(Value &minVal, Value &maxVal) +{ + Value fromSize = minVal; + Value toSize = maxVal; + if (fromSize.width() > toSize.width()) { + fromSize.setWidth(maxVal.width()); + toSize.setWidth(minVal.width()); + } + if (fromSize.height() > toSize.height()) { + fromSize.setHeight(maxVal.height()); + toSize.setHeight(minVal.height()); + } + minVal = fromSize; + maxVal = toSize; +} + +void orderBorders(QSize &minVal, QSize &maxVal) +{ + orderSizeBorders(minVal, maxVal); +} + +void orderBorders(QSizeF &minVal, QSizeF &maxVal) +{ + orderSizeBorders(minVal, maxVal); +} + +} +} +//////// + +template +static Value getData(const QMap &propertyMap, + Value PrivateData::*data, + const QtProperty *property, const Value &defaultValue = Value()) +{ + const auto it = propertyMap.constFind(property); + if (it == propertyMap.constEnd()) + return defaultValue; + return it.value().*data; +} + +template +static Value getValue(const QMap &propertyMap, + const QtProperty *property, const Value &defaultValue = Value()) +{ + return getData(propertyMap, &PrivateData::val, property, defaultValue); +} + +template +static Value getMinimum(const QMap &propertyMap, + const QtProperty *property, const Value &defaultValue = Value()) +{ + return getData(propertyMap, &PrivateData::minVal, property, defaultValue); +} + +template +static Value getMaximum(const QMap &propertyMap, + const QtProperty *property, const Value &defaultValue = Value()) +{ + return getData(propertyMap, &PrivateData::maxVal, property, defaultValue); +} + +template +static void setSimpleValue(QMap &propertyMap, + PropertyManager *manager, + void (PropertyManager::*propertyChangedSignal)(QtProperty *), + void (PropertyManager::*valueChangedSignal)(QtProperty *, ValueChangeParameter), + QtProperty *property, const Value &val) +{ + const auto it = propertyMap.find(property); + if (it == propertyMap.end()) + return; + + if (it.value() == val) + return; + + it.value() = val; + + emit (manager->*propertyChangedSignal)(property); + emit (manager->*valueChangedSignal)(property, val); +} + +template +static void setValueInRange(PropertyManager *manager, PropertyManagerPrivate *managerPrivate, + void (PropertyManager::*propertyChangedSignal)(QtProperty *), + void (PropertyManager::*valueChangedSignal)(QtProperty *, ValueChangeParameter), + QtProperty *property, const Value &val, + void (PropertyManagerPrivate::*setSubPropertyValue)(QtProperty *, ValueChangeParameter)) +{ + const auto it = managerPrivate->m_values.find(property); + if (it == managerPrivate->m_values.end()) + return; + + auto &data = it.value(); + + if (data.val == val) + return; + + const Value oldVal = data.val; + + data.val = qBound(data.minVal, val, data.maxVal); + + if (data.val == oldVal) + return; + + if (setSubPropertyValue) + (managerPrivate->*setSubPropertyValue)(property, data.val); + + emit (manager->*propertyChangedSignal)(property); + emit (manager->*valueChangedSignal)(property, data.val); +} + +template +static void setBorderValues(PropertyManager *manager, PropertyManagerPrivate *managerPrivate, + void (PropertyManager::*propertyChangedSignal)(QtProperty *), + void (PropertyManager::*valueChangedSignal)(QtProperty *, ValueChangeParameter), + void (PropertyManager::*rangeChangedSignal)(QtProperty *, ValueChangeParameter, ValueChangeParameter), + QtProperty *property, ValueChangeParameter minVal, ValueChangeParameter maxVal, + void (PropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, + ValueChangeParameter, ValueChangeParameter, ValueChangeParameter)) +{ + const auto it = managerPrivate->m_values.find(property); + if (it == managerPrivate->m_values.end()) + return; + + Value fromVal = minVal; + Value toVal = maxVal; + orderBorders(fromVal, toVal); + + auto &data = it.value(); + + if (data.minVal == fromVal && data.maxVal == toVal) + return; + + const Value oldVal = data.val; + + data.setMinimumValue(fromVal); + data.setMaximumValue(toVal); + + emit (manager->*rangeChangedSignal)(property, data.minVal, data.maxVal); + + if (setSubPropertyRange) + (managerPrivate->*setSubPropertyRange)(property, data.minVal, data.maxVal, data.val); + + if (data.val == oldVal) + return; + + emit (manager->*propertyChangedSignal)(property); + emit (manager->*valueChangedSignal)(property, data.val); +} + +template +static void setBorderValue(PropertyManager *manager, PropertyManagerPrivate *managerPrivate, + void (PropertyManager::*propertyChangedSignal)(QtProperty *), + void (PropertyManager::*valueChangedSignal)(QtProperty *, ValueChangeParameter), + void (PropertyManager::*rangeChangedSignal)(QtProperty *, ValueChangeParameter, ValueChangeParameter), + QtProperty *property, + Value (PrivateData::*getRangeVal)() const, + void (PrivateData::*setRangeVal)(ValueChangeParameter), const Value &borderVal, + void (PropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, + ValueChangeParameter, ValueChangeParameter, ValueChangeParameter)) +{ + const auto it = managerPrivate->m_values.find(property); + if (it == managerPrivate->m_values.end()) + return; + + PrivateData &data = it.value(); + + if ((data.*getRangeVal)() == borderVal) + return; + + const Value oldVal = data.val; + + (data.*setRangeVal)(borderVal); + + emit (manager->*rangeChangedSignal)(property, data.minVal, data.maxVal); + + if (setSubPropertyRange) + (managerPrivate->*setSubPropertyRange)(property, data.minVal, data.maxVal, data.val); + + if (data.val == oldVal) + return; + + emit (manager->*propertyChangedSignal)(property); + emit (manager->*valueChangedSignal)(property, data.val); +} + +template +static void setMinimumValue(PropertyManager *manager, PropertyManagerPrivate *managerPrivate, + void (PropertyManager::*propertyChangedSignal)(QtProperty *), + void (PropertyManager::*valueChangedSignal)(QtProperty *, ValueChangeParameter), + void (PropertyManager::*rangeChangedSignal)(QtProperty *, ValueChangeParameter, ValueChangeParameter), + QtProperty *property, const Value &minVal) +{ + void (PropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, + ValueChangeParameter, ValueChangeParameter, ValueChangeParameter) = 0; + setBorderValue(manager, managerPrivate, + propertyChangedSignal, valueChangedSignal, rangeChangedSignal, + property, &PropertyManagerPrivate::Data::minimumValue, &PropertyManagerPrivate::Data::setMinimumValue, minVal, setSubPropertyRange); +} + +template +static void setMaximumValue(PropertyManager *manager, PropertyManagerPrivate *managerPrivate, + void (PropertyManager::*propertyChangedSignal)(QtProperty *), + void (PropertyManager::*valueChangedSignal)(QtProperty *, ValueChangeParameter), + void (PropertyManager::*rangeChangedSignal)(QtProperty *, ValueChangeParameter, ValueChangeParameter), + QtProperty *property, const Value &maxVal) +{ + void (PropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, + ValueChangeParameter, ValueChangeParameter, ValueChangeParameter) = 0; + setBorderValue(manager, managerPrivate, + propertyChangedSignal, valueChangedSignal, rangeChangedSignal, + property, &PropertyManagerPrivate::Data::maximumValue, &PropertyManagerPrivate::Data::setMaximumValue, maxVal, setSubPropertyRange); +} + +class QtMetaEnumWrapper : public QObject +{ + Q_OBJECT + Q_PROPERTY(QSizePolicy::Policy policy READ policy) +public: + QSizePolicy::Policy policy() const { return QSizePolicy::Ignored; } +private: + QtMetaEnumWrapper(QObject *parent) : QObject(parent) {} +}; + +class QtMetaEnumProvider +{ +public: + QtMetaEnumProvider(); + + QStringList policyEnumNames() const { return m_policyEnumNames; } + QStringList languageEnumNames() const { return m_languageEnumNames; } + QStringList territoryEnumNames(QLocale::Language language) const { return m_territoryEnumNames.value(language); } + + QSizePolicy::Policy indexToSizePolicy(int index) const; + int sizePolicyToIndex(QSizePolicy::Policy policy) const; + + void indexToLocale(int languageIndex, int territoryIndex, QLocale::Language *language, QLocale::Territory *territory) const; + void localeToIndex(QLocale::Language language, QLocale::Territory territory, int *languageIndex, int *territoryIndex) const; + +private: + void initLocale(); + + QStringList m_policyEnumNames; + QStringList m_languageEnumNames; + QMap m_territoryEnumNames; + QMap m_indexToLanguage; + QMap m_languageToIndex; + QMap > m_indexToTerritory; + QMap > m_territoryToIndex; + QMetaEnum m_policyEnum; +}; + +static QList sortTerritories(const QList &territories) +{ + QMultiMap nameToTerritory; + for (QLocale::Territory territory : territories) + nameToTerritory.insert(QLocale::territoryToString(territory), territory); + return nameToTerritory.values(); +} + +void QtMetaEnumProvider::initLocale() +{ + QMultiMap nameToLanguage; + for (int l = QLocale::C, last = QLocale::LastLanguage; l <= last; ++l) { + const QLocale::Language language = static_cast(l); + QLocale locale(language); + if (locale.language() == language) + nameToLanguage.insert(QLocale::languageToString(language), language); + } + + const QLocale system = QLocale::system(); + if (!nameToLanguage.contains(QLocale::languageToString(system.language()))) + nameToLanguage.insert(QLocale::languageToString(system.language()), system.language()); + + const auto languages = nameToLanguage.values(); + for (QLocale::Language language : languages) { + const auto localesForLanguage = QLocale::matchingLocales(language, QLocale::AnyScript, QLocale::AnyTerritory); + QList territories; + territories.reserve(localesForLanguage.size()); + for (const auto &locale : localesForLanguage) + territories << locale.territory(); + if (territories.isEmpty() && language == system.language()) + territories << system.territory(); + + if (!territories.isEmpty() && !m_languageToIndex.contains(language)) { + territories = sortTerritories(territories); + int langIdx = m_languageEnumNames.size(); + m_indexToLanguage[langIdx] = language; + m_languageToIndex[language] = langIdx; + QStringList territoryNames; + int territoryIdx = 0; + for (QLocale::Territory territory : std::as_const(territories)) { + territoryNames << QLocale::territoryToString(territory); + m_indexToTerritory[langIdx][territoryIdx] = territory; + m_territoryToIndex[language][territory] = territoryIdx; + ++territoryIdx; + } + m_languageEnumNames << QLocale::languageToString(language); + m_territoryEnumNames[language] = territoryNames; + } + } +} + +QtMetaEnumProvider::QtMetaEnumProvider() +{ + QMetaProperty p; + + p = QtMetaEnumWrapper::staticMetaObject.property( + QtMetaEnumWrapper::staticMetaObject.propertyOffset() + 0); + m_policyEnum = p.enumerator(); + const int keyCount = m_policyEnum.keyCount(); + for (int i = 0; i < keyCount; i++) + m_policyEnumNames << QLatin1String(m_policyEnum.key(i)); + + initLocale(); +} + +QSizePolicy::Policy QtMetaEnumProvider::indexToSizePolicy(int index) const +{ + return static_cast(m_policyEnum.value(index)); +} + +int QtMetaEnumProvider::sizePolicyToIndex(QSizePolicy::Policy policy) const +{ + const int keyCount = m_policyEnum.keyCount(); + for (int i = 0; i < keyCount; i++) + if (indexToSizePolicy(i) == policy) + return i; + return -1; +} + +void QtMetaEnumProvider::indexToLocale(int languageIndex, int territoryIndex, QLocale::Language *language, QLocale::Territory *territory) const +{ + QLocale::Language l = QLocale::C; + QLocale::Territory c = QLocale::AnyTerritory; + if (m_indexToLanguage.contains(languageIndex)) { + l = m_indexToLanguage[languageIndex]; + if (m_indexToTerritory.contains(languageIndex) && m_indexToTerritory[languageIndex].contains(territoryIndex)) + c = m_indexToTerritory[languageIndex][territoryIndex]; + } + if (language) + *language = l; + if (territory) + *territory = c; +} + +void QtMetaEnumProvider::localeToIndex(QLocale::Language language, QLocale::Territory territory, int *languageIndex, int *territoryIndex) const +{ + int l = -1; + int c = -1; + if (m_languageToIndex.contains(language)) { + l = m_languageToIndex[language]; + if (m_territoryToIndex.contains(language) && m_territoryToIndex[language].contains(territory)) + c = m_territoryToIndex[language][territory]; + } + + if (languageIndex) + *languageIndex = l; + if (territoryIndex) + *territoryIndex = c; +} + +Q_GLOBAL_STATIC(QtMetaEnumProvider, metaEnumProvider) + +// QtGroupPropertyManager + +/*! + \class QtGroupPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtGroupPropertyManager provides and manages group properties. + + This class is intended to provide a grouping element without any value. + + \sa QtAbstractPropertyManager +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtGroupPropertyManager::QtGroupPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent) +{ + +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtGroupPropertyManager::~QtGroupPropertyManager() +{ + +} + +/*! + \reimp +*/ +bool QtGroupPropertyManager::hasValue(const QtProperty *property) const +{ + Q_UNUSED(property); + return false; +} + +/*! + \reimp +*/ +void QtGroupPropertyManager::initializeProperty(QtProperty *property) +{ + Q_UNUSED(property); +} + +/*! + \reimp +*/ +void QtGroupPropertyManager::uninitializeProperty(QtProperty *property) +{ + Q_UNUSED(property); +} + +// QtIntPropertyManager + +class QtIntPropertyManagerPrivate +{ + QtIntPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtIntPropertyManager) +public: + + struct Data + { + int val{0}; + int minVal{-INT_MAX}; + int maxVal{INT_MAX}; + int singleStep{1}; + int minimumValue() const { return minVal; } + int maximumValue() const { return maxVal; } + void setMinimumValue(int newMinVal) { setSimpleMinimumData(this, newMinVal); } + void setMaximumValue(int newMaxVal) { setSimpleMaximumData(this, newMaxVal); } + }; + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; +}; + +/*! + \class QtIntPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtIntPropertyManager provides and manages int properties. + + An int property has a current value, and a range specifying the + valid values. The range is defined by a minimum and a maximum + value. + + The property's value and range can be retrieved using the value(), + minimum() and maximum() functions, and can be set using the + setValue(), setMinimum() and setMaximum() slots. Alternatively, + the range can be defined in one go using the setRange() slot. + + In addition, QtIntPropertyManager provides the valueChanged() signal which + is emitted whenever a property created by this manager changes, + and the rangeChanged() signal which is emitted whenever such a + property changes its range of valid values. + + \sa QtAbstractPropertyManager, QtSpinBoxFactory, QtSliderFactory, QtScrollBarFactory +*/ + +/*! + \fn void QtIntPropertyManager::valueChanged(QtProperty *property, int value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. + + \sa setValue() +*/ + +/*! + \fn void QtIntPropertyManager::rangeChanged(QtProperty *property, int minimum, int maximum) + + This signal is emitted whenever a property created by this manager + changes its range of valid values, passing a pointer to the + \a property and the new \a minimum and \a maximum values. + + \sa setRange() +*/ + +/*! + \fn void QtIntPropertyManager::singleStepChanged(QtProperty *property, int step) + + This signal is emitted whenever a property created by this manager + changes its single step property, passing a pointer to the + \a property and the new \a step value + + \sa setSingleStep() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtIntPropertyManager::QtIntPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtIntPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtIntPropertyManager::~QtIntPropertyManager() +{ + clear(); +} + +/*! + Returns the given \a property's value. + + If the given property is not managed by this manager, this + function returns 0. + + \sa setValue() +*/ +int QtIntPropertyManager::value(const QtProperty *property) const +{ + return getValue(d_ptr->m_values, property, 0); +} + +/*! + Returns the given \a property's minimum value. + + \sa setMinimum(), maximum(), setRange() +*/ +int QtIntPropertyManager::minimum(const QtProperty *property) const +{ + return getMinimum(d_ptr->m_values, property, 0); +} + +/*! + Returns the given \a property's maximum value. + + \sa setMaximum(), minimum(), setRange() +*/ +int QtIntPropertyManager::maximum(const QtProperty *property) const +{ + return getMaximum(d_ptr->m_values, property, 0); +} + +/*! + Returns the given \a property's step value. + + The step is typically used to increment or decrement a property value while pressing an arrow key. + + \sa setSingleStep() +*/ +int QtIntPropertyManager::singleStep(const QtProperty *property) const +{ + return getData(d_ptr->m_values, &QtIntPropertyManagerPrivate::Data::singleStep, property, 0); +} + +/*! + \reimp +*/ +QString QtIntPropertyManager::valueText(const QtProperty *property) const +{ + const QtIntPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + return QString::number(it.value().val); +} + +/*! + \fn void QtIntPropertyManager::setValue(QtProperty *property, int value) + + Sets the value of the given \a property to \a value. + + If the specified \a value is not valid according to the given \a + property's range, the \a value is adjusted to the nearest valid + value within the range. + + \sa value(), setRange(), valueChanged() +*/ +void QtIntPropertyManager::setValue(QtProperty *property, int val) +{ + void (QtIntPropertyManagerPrivate::*setSubPropertyValue)(QtProperty *, int) = 0; + setValueInRange(this, d_ptr.data(), + &QtIntPropertyManager::propertyChanged, + &QtIntPropertyManager::valueChanged, + property, val, setSubPropertyValue); +} + +/*! + Sets the minimum value for the given \a property to \a minVal. + + When setting the minimum value, the maximum and current values are + adjusted if necessary (ensuring that the range remains valid and + that the current value is within the range). + + \sa minimum(), setRange(), rangeChanged() +*/ +void QtIntPropertyManager::setMinimum(QtProperty *property, int minVal) +{ + setMinimumValue(this, d_ptr.data(), + &QtIntPropertyManager::propertyChanged, + &QtIntPropertyManager::valueChanged, + &QtIntPropertyManager::rangeChanged, + property, minVal); +} + +/*! + Sets the maximum value for the given \a property to \a maxVal. + + When setting maximum value, the minimum and current values are + adjusted if necessary (ensuring that the range remains valid and + that the current value is within the range). + + \sa maximum(), setRange(), rangeChanged() +*/ +void QtIntPropertyManager::setMaximum(QtProperty *property, int maxVal) +{ + setMaximumValue(this, d_ptr.data(), + &QtIntPropertyManager::propertyChanged, + &QtIntPropertyManager::valueChanged, + &QtIntPropertyManager::rangeChanged, + property, maxVal); +} + +/*! + \fn void QtIntPropertyManager::setRange(QtProperty *property, int minimum, int maximum) + + Sets the range of valid values. + + This is a convenience function defining the range of valid values + in one go; setting the \a minimum and \a maximum values for the + given \a property with a single function call. + + When setting a new range, the current value is adjusted if + necessary (ensuring that the value remains within range). + + \sa setMinimum(), setMaximum(), rangeChanged() +*/ +void QtIntPropertyManager::setRange(QtProperty *property, int minVal, int maxVal) +{ + void (QtIntPropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, int, int, int) = 0; + setBorderValues(this, d_ptr.data(), + &QtIntPropertyManager::propertyChanged, + &QtIntPropertyManager::valueChanged, + &QtIntPropertyManager::rangeChanged, + property, minVal, maxVal, setSubPropertyRange); +} + +/*! + Sets the step value for the given \a property to \a step. + + The step is typically used to increment or decrement a property value while pressing an arrow key. + + \sa singleStep() +*/ +void QtIntPropertyManager::setSingleStep(QtProperty *property, int step) +{ + const QtIntPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtIntPropertyManagerPrivate::Data data = it.value(); + + if (step < 0) + step = 0; + + if (data.singleStep == step) + return; + + data.singleStep = step; + + it.value() = data; + + emit singleStepChanged(property, data.singleStep); +} + +/*! + \reimp +*/ +void QtIntPropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QtIntPropertyManagerPrivate::Data(); +} + +/*! + \reimp +*/ +void QtIntPropertyManager::uninitializeProperty(QtProperty *property) +{ + d_ptr->m_values.remove(property); +} + +// QtDoublePropertyManager + +class QtDoublePropertyManagerPrivate +{ + QtDoublePropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtDoublePropertyManager) +public: + + struct Data + { + double val{0}; + double minVal{-DBL_MAX}; + double maxVal{DBL_MAX}; + double singleStep{1}; + int decimals{2}; + double minimumValue() const { return minVal; } + double maximumValue() const { return maxVal; } + void setMinimumValue(double newMinVal) { setSimpleMinimumData(this, newMinVal); } + void setMaximumValue(double newMaxVal) { setSimpleMaximumData(this, newMaxVal); } + }; + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; +}; + +/*! + \class QtDoublePropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtDoublePropertyManager provides and manages double properties. + + A double property has a current value, and a range specifying the + valid values. The range is defined by a minimum and a maximum + value. + + The property's value and range can be retrieved using the value(), + minimum() and maximum() functions, and can be set using the + setValue(), setMinimum() and setMaximum() slots. + Alternatively, the range can be defined in one go using the + setRange() slot. + + In addition, QtDoublePropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes, and the rangeChanged() signal which is emitted whenever + such a property changes its range of valid values. + + \sa QtAbstractPropertyManager, QtDoubleSpinBoxFactory +*/ + +/*! + \fn void QtDoublePropertyManager::valueChanged(QtProperty *property, double value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. + + \sa setValue() +*/ + +/*! + \fn void QtDoublePropertyManager::rangeChanged(QtProperty *property, double minimum, double maximum) + + This signal is emitted whenever a property created by this manager + changes its range of valid values, passing a pointer to the + \a property and the new \a minimum and \a maximum values + + \sa setRange() +*/ + +/*! + \fn void QtDoublePropertyManager::decimalsChanged(QtProperty *property, int prec) + + This signal is emitted whenever a property created by this manager + changes its precision of value, passing a pointer to the + \a property and the new \a prec value + + \sa setDecimals() +*/ + +/*! + \fn void QtDoublePropertyManager::singleStepChanged(QtProperty *property, double step) + + This signal is emitted whenever a property created by this manager + changes its single step property, passing a pointer to the + \a property and the new \a step value + + \sa setSingleStep() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtDoublePropertyManager::QtDoublePropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtDoublePropertyManagerPrivate) +{ + d_ptr->q_ptr = this; +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtDoublePropertyManager::~QtDoublePropertyManager() +{ + clear(); +} + +/*! + Returns the given \a property's value. + + If the given property is not managed by this manager, this + function returns 0. + + \sa setValue() +*/ +double QtDoublePropertyManager::value(const QtProperty *property) const +{ + return getValue(d_ptr->m_values, property, 0.0); +} + +/*! + Returns the given \a property's minimum value. + + \sa maximum(), setRange() +*/ +double QtDoublePropertyManager::minimum(const QtProperty *property) const +{ + return getMinimum(d_ptr->m_values, property, 0.0); +} + +/*! + Returns the given \a property's maximum value. + + \sa minimum(), setRange() +*/ +double QtDoublePropertyManager::maximum(const QtProperty *property) const +{ + return getMaximum(d_ptr->m_values, property, 0.0); +} + +/*! + Returns the given \a property's step value. + + The step is typically used to increment or decrement a property value while pressing an arrow key. + + \sa setSingleStep() +*/ +double QtDoublePropertyManager::singleStep(const QtProperty *property) const +{ + return getData(d_ptr->m_values, &QtDoublePropertyManagerPrivate::Data::singleStep, property, 0); +} + +/*! + Returns the given \a property's precision, in decimals. + + \sa setDecimals() +*/ +int QtDoublePropertyManager::decimals(const QtProperty *property) const +{ + return getData(d_ptr->m_values, &QtDoublePropertyManagerPrivate::Data::decimals, property, 0); +} + +/*! + \reimp +*/ +QString QtDoublePropertyManager::valueText(const QtProperty *property) const +{ + const QtDoublePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + return QString::number(it.value().val, 'f', it.value().decimals); +} + +/*! + \fn void QtDoublePropertyManager::setValue(QtProperty *property, double value) + + Sets the value of the given \a property to \a value. + + If the specified \a value is not valid according to the given + \a property's range, the \a value is adjusted to the nearest valid value + within the range. + + \sa value(), setRange(), valueChanged() +*/ +void QtDoublePropertyManager::setValue(QtProperty *property, double val) +{ + void (QtDoublePropertyManagerPrivate::*setSubPropertyValue)(QtProperty *, double) = 0; + setValueInRange(this, d_ptr.data(), + &QtDoublePropertyManager::propertyChanged, + &QtDoublePropertyManager::valueChanged, + property, val, setSubPropertyValue); +} + +/*! + Sets the step value for the given \a property to \a step. + + The step is typically used to increment or decrement a property value while pressing an arrow key. + + \sa singleStep() +*/ +void QtDoublePropertyManager::setSingleStep(QtProperty *property, double step) +{ + const QtDoublePropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtDoublePropertyManagerPrivate::Data data = it.value(); + + if (step < 0) + step = 0; + + if (data.singleStep == step) + return; + + data.singleStep = step; + + it.value() = data; + + emit singleStepChanged(property, data.singleStep); +} + +/*! + \fn void QtDoublePropertyManager::setDecimals(QtProperty *property, int prec) + + Sets the precision of the given \a property to \a prec. + + The valid decimal range is 0-13. The default is 2. + + \sa decimals() +*/ +void QtDoublePropertyManager::setDecimals(QtProperty *property, int prec) +{ + const QtDoublePropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtDoublePropertyManagerPrivate::Data data = it.value(); + + if (prec > 13) + prec = 13; + else if (prec < 0) + prec = 0; + + if (data.decimals == prec) + return; + + data.decimals = prec; + + it.value() = data; + + emit decimalsChanged(property, data.decimals); +} + +/*! + Sets the minimum value for the given \a property to \a minVal. + + When setting the minimum value, the maximum and current values are + adjusted if necessary (ensuring that the range remains valid and + that the current value is within in the range). + + \sa minimum(), setRange(), rangeChanged() +*/ +void QtDoublePropertyManager::setMinimum(QtProperty *property, double minVal) +{ + setMinimumValue(this, d_ptr.data(), + &QtDoublePropertyManager::propertyChanged, + &QtDoublePropertyManager::valueChanged, + &QtDoublePropertyManager::rangeChanged, + property, minVal); +} + +/*! + Sets the maximum value for the given \a property to \a maxVal. + + When setting the maximum value, the minimum and current values are + adjusted if necessary (ensuring that the range remains valid and + that the current value is within in the range). + + \sa maximum(), setRange(), rangeChanged() +*/ +void QtDoublePropertyManager::setMaximum(QtProperty *property, double maxVal) +{ + setMaximumValue(this, d_ptr.data(), + &QtDoublePropertyManager::propertyChanged, + &QtDoublePropertyManager::valueChanged, + &QtDoublePropertyManager::rangeChanged, + property, maxVal); +} + +/*! + \fn void QtDoublePropertyManager::setRange(QtProperty *property, double minimum, double maximum) + + Sets the range of valid values. + + This is a convenience function defining the range of valid values + in one go; setting the \a minimum and \a maximum values for the + given \a property with a single function call. + + When setting a new range, the current value is adjusted if + necessary (ensuring that the value remains within range). + + \sa setMinimum(), setMaximum(), rangeChanged() +*/ +void QtDoublePropertyManager::setRange(QtProperty *property, double minVal, double maxVal) +{ + void (QtDoublePropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, double, double, double) = 0; + setBorderValues(this, d_ptr.data(), + &QtDoublePropertyManager::propertyChanged, + &QtDoublePropertyManager::valueChanged, + &QtDoublePropertyManager::rangeChanged, + property, minVal, maxVal, setSubPropertyRange); +} + +/*! + \reimp +*/ +void QtDoublePropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QtDoublePropertyManagerPrivate::Data(); +} + +/*! + \reimp +*/ +void QtDoublePropertyManager::uninitializeProperty(QtProperty *property) +{ + d_ptr->m_values.remove(property); +} + +// QtStringPropertyManager + +class QtStringPropertyManagerPrivate +{ + QtStringPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtStringPropertyManager) +public: + + struct Data + { + QString val; + QRegularExpression regExp; + }; + + typedef QMap PropertyValueMap; + QMap m_values; +}; + +/*! + \class QtStringPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtStringPropertyManager provides and manages QString properties. + + A string property's value can be retrieved using the value() + function, and set using the setValue() slot. + + The current value can be checked against a regular expression. To + set the regular expression use the setRegExp() slot, use the + regExp() function to retrieve the currently set expression. + + In addition, QtStringPropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes, and the regExpChanged() signal which is emitted whenever + such a property changes its currently set regular expression. + + \sa QtAbstractPropertyManager, QtLineEditFactory +*/ + +/*! + \fn void QtStringPropertyManager::valueChanged(QtProperty *property, const QString &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the + new \a value as parameters. + + \sa setValue() +*/ + +/*! + \fn void QtStringPropertyManager::regExpChanged(QtProperty *property, const QRegularExpression ®Exp) + + This signal is emitted whenever a property created by this manager + changes its currenlty set regular expression, passing a pointer to + the \a property and the new \a regExp as parameters. + + \sa setRegExp() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtStringPropertyManager::QtStringPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtStringPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtStringPropertyManager::~QtStringPropertyManager() +{ + clear(); +} + +/*! + Returns the given \a property's value. + + If the given property is not managed by this manager, this + function returns an empty string. + + \sa setValue() +*/ +QString QtStringPropertyManager::value(const QtProperty *property) const +{ + return getValue(d_ptr->m_values, property); +} + +/*! + Returns the given \a property's currently set regular expression. + + If the given \a property is not managed by this manager, this + function returns an empty expression. + + \sa setRegExp() +*/ +QRegularExpression QtStringPropertyManager::regExp(const QtProperty *property) const +{ + return getData(d_ptr->m_values, &QtStringPropertyManagerPrivate::Data::regExp, property, QRegularExpression()); +} + +/*! + \reimp +*/ +QString QtStringPropertyManager::valueText(const QtProperty *property) const +{ + const QtStringPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + return it.value().val; +} + +/*! + \fn void QtStringPropertyManager::setValue(QtProperty *property, const QString &value) + + Sets the value of the given \a property to \a value. + + If the specified \a value doesn't match the given \a property's + regular expression, this function does nothing. + + \sa value(), setRegExp(), valueChanged() +*/ +void QtStringPropertyManager::setValue(QtProperty *property, const QString &val) +{ + const QtStringPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtStringPropertyManagerPrivate::Data data = it.value(); + + if (data.val == val) + return; + + if (data.regExp.isValid() && !data.regExp.pattern().isEmpty() + && !data.regExp.match(val).hasMatch()) { + return; + } + + data.val = val; + + it.value() = data; + + emit propertyChanged(property); + emit valueChanged(property, data.val); +} + +/*! + Sets the regular expression of the given \a property to \a regExp. + + \sa regExp(), setValue(), regExpChanged() +*/ +void QtStringPropertyManager::setRegExp(QtProperty *property, const QRegularExpression ®Exp) +{ + const QtStringPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtStringPropertyManagerPrivate::Data data = it.value() ; + + if (data.regExp == regExp) + return; + + data.regExp = regExp; + + it.value() = data; + + emit regExpChanged(property, data.regExp); +} + +/*! + \reimp +*/ +void QtStringPropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QtStringPropertyManagerPrivate::Data(); +} + +/*! + \reimp +*/ +void QtStringPropertyManager::uninitializeProperty(QtProperty *property) +{ + d_ptr->m_values.remove(property); +} + +// QtBoolPropertyManager +// Return an icon containing a check box indicator +static QIcon drawCheckBox(bool value) +{ + QStyleOptionButton opt; + opt.state |= value ? QStyle::State_On : QStyle::State_Off; + opt.state |= QStyle::State_Enabled; + const QStyle *style = QApplication::style(); + // Figure out size of an indicator and make sure it is not scaled down in a list view item + // by making the pixmap as big as a list view icon and centering the indicator in it. + // (if it is smaller, it can't be helped) + const int indicatorWidth = style->pixelMetric(QStyle::PM_IndicatorWidth, &opt); + const int indicatorHeight = style->pixelMetric(QStyle::PM_IndicatorHeight, &opt); + const int listViewIconSize = indicatorWidth; + const int pixmapWidth = indicatorWidth; + const int pixmapHeight = qMax(indicatorHeight, listViewIconSize); + + opt.rect = QRect(0, 0, indicatorWidth, indicatorHeight); + QPixmap pixmap = QPixmap(pixmapWidth, pixmapHeight); + pixmap.fill(Qt::transparent); + { + // Center? + const int xoff = (pixmapWidth > indicatorWidth) ? (pixmapWidth - indicatorWidth) / 2 : 0; + const int yoff = (pixmapHeight > indicatorHeight) ? (pixmapHeight - indicatorHeight) / 2 : 0; + QPainter painter(&pixmap); + painter.translate(xoff, yoff); + style->drawPrimitive(QStyle::PE_IndicatorCheckBox, &opt, &painter); + } + return QIcon(pixmap); +} + +class QtBoolPropertyManagerPrivate +{ + QtBoolPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtBoolPropertyManager) +public: + QtBoolPropertyManagerPrivate(); + + QMap m_values; + const QIcon m_checkedIcon; + const QIcon m_uncheckedIcon; +}; + +QtBoolPropertyManagerPrivate::QtBoolPropertyManagerPrivate() : + m_checkedIcon(drawCheckBox(true)), + m_uncheckedIcon(drawCheckBox(false)) +{ +} + +/*! + \class QtBoolPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtBoolPropertyManager class provides and manages boolean properties. + + The property's value can be retrieved using the value() function, + and set using the setValue() slot. + + In addition, QtBoolPropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes. + + \sa QtAbstractPropertyManager, QtCheckBoxFactory +*/ + +/*! + \fn void QtBoolPropertyManager::valueChanged(QtProperty *property, bool value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the + new \a value as parameters. +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtBoolPropertyManager::QtBoolPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtBoolPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtBoolPropertyManager::~QtBoolPropertyManager() +{ + clear(); +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by \e this manager, this + function returns false. + + \sa setValue() +*/ +bool QtBoolPropertyManager::value(const QtProperty *property) const +{ + return d_ptr->m_values.value(property, false); +} + +/*! + \reimp +*/ +QString QtBoolPropertyManager::valueText(const QtProperty *property) const +{ + const QMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + + static const QString trueText = tr("True"); + static const QString falseText = tr("False"); + return it.value() ? trueText : falseText; +} + +/*! + \reimp +*/ +QIcon QtBoolPropertyManager::valueIcon(const QtProperty *property) const +{ + const QMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QIcon(); + + return it.value() ? d_ptr->m_checkedIcon : d_ptr->m_uncheckedIcon; +} + +/*! + \fn void QtBoolPropertyManager::setValue(QtProperty *property, bool value) + + Sets the value of the given \a property to \a value. + + \sa value() +*/ +void QtBoolPropertyManager::setValue(QtProperty *property, bool val) +{ + setSimpleValue(d_ptr->m_values, this, + &QtBoolPropertyManager::propertyChanged, + &QtBoolPropertyManager::valueChanged, + property, val); +} + +/*! + \reimp +*/ +void QtBoolPropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = false; +} + +/*! + \reimp +*/ +void QtBoolPropertyManager::uninitializeProperty(QtProperty *property) +{ + d_ptr->m_values.remove(property); +} + +// QtDatePropertyManager + +class QtDatePropertyManagerPrivate +{ + QtDatePropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtDatePropertyManager) +public: + explicit QtDatePropertyManagerPrivate(QtDatePropertyManager *q); + + struct Data + { + QDate val{QDate::currentDate()}; + QDate minVal{QDate(1752, 9, 14)}; + QDate maxVal{QDate(9999, 12, 31)}; + QDate minimumValue() const { return minVal; } + QDate maximumValue() const { return maxVal; } + void setMinimumValue(QDate newMinVal) { setSimpleMinimumData(this, newMinVal); } + void setMaximumValue(QDate newMaxVal) { setSimpleMaximumData(this, newMaxVal); } + }; + + QString m_format; + + typedef QMap PropertyValueMap; + QMap m_values; +}; + +QtDatePropertyManagerPrivate::QtDatePropertyManagerPrivate(QtDatePropertyManager *q) : + q_ptr(q), + m_format(QtPropertyBrowserUtils::dateFormat()) +{ +} + +/*! + \class QtDatePropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtDatePropertyManager provides and manages QDate properties. + + A date property has a current value, and a range specifying the + valid dates. The range is defined by a minimum and a maximum + value. + + The property's values can be retrieved using the minimum(), + maximum() and value() functions, and can be set using the + setMinimum(), setMaximum() and setValue() slots. Alternatively, + the range can be defined in one go using the setRange() slot. + + In addition, QtDatePropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes, and the rangeChanged() signal which is emitted whenever + such a property changes its range of valid dates. + + \sa QtAbstractPropertyManager, QtDateEditFactory, QtDateTimePropertyManager +*/ + +/*! + \fn void QtDatePropertyManager::valueChanged(QtProperty *property, QDate value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. + + \sa setValue() +*/ + +/*! + \fn void QtDatePropertyManager::rangeChanged(QtProperty *property, QDate minimum, QDate maximum) + + This signal is emitted whenever a property created by this manager + changes its range of valid dates, passing a pointer to the \a + property and the new \a minimum and \a maximum dates. + + \sa setRange() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtDatePropertyManager::QtDatePropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtDatePropertyManagerPrivate(this)) +{ +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtDatePropertyManager::~QtDatePropertyManager() +{ + clear(); +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by \e this manager, this + function returns an invalid date. + + \sa setValue() +*/ +QDate QtDatePropertyManager::value(const QtProperty *property) const +{ + return getValue(d_ptr->m_values, property); +} + +/*! + Returns the given \a property's minimum date. + + \sa maximum(), setRange() +*/ +QDate QtDatePropertyManager::minimum(const QtProperty *property) const +{ + return getMinimum(d_ptr->m_values, property); +} + +/*! + Returns the given \a property's maximum date. + + \sa minimum(), setRange() +*/ +QDate QtDatePropertyManager::maximum(const QtProperty *property) const +{ + return getMaximum(d_ptr->m_values, property); +} + +/*! + \reimp +*/ +QString QtDatePropertyManager::valueText(const QtProperty *property) const +{ + const QtDatePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + return it.value().val.toString(d_ptr->m_format); +} + +/*! + \fn void QtDatePropertyManager::setValue(QtProperty *property, QDate value) + + Sets the value of the given \a property to \a value. + + If the specified \a value is not a valid date according to the + given \a property's range, the value is adjusted to the nearest + valid value within the range. + + \sa value(), setRange(), valueChanged() +*/ +void QtDatePropertyManager::setValue(QtProperty *property, QDate val) +{ + void (QtDatePropertyManagerPrivate::*setSubPropertyValue)(QtProperty *, QDate) = 0; + setValueInRange(this, d_ptr.data(), + &QtDatePropertyManager::propertyChanged, + &QtDatePropertyManager::valueChanged, + property, val, setSubPropertyValue); +} + +/*! + Sets the minimum value for the given \a property to \a minVal. + + When setting the minimum value, the maximum and current values are + adjusted if necessary (ensuring that the range remains valid and + that the current value is within in the range). + + \sa minimum(), setRange() +*/ +void QtDatePropertyManager::setMinimum(QtProperty *property, QDate minVal) +{ + setMinimumValue(this, d_ptr.data(), + &QtDatePropertyManager::propertyChanged, + &QtDatePropertyManager::valueChanged, + &QtDatePropertyManager::rangeChanged, + property, minVal); +} + +/*! + Sets the maximum value for the given \a property to \a maxVal. + + When setting the maximum value, the minimum and current + values are adjusted if necessary (ensuring that the range remains + valid and that the current value is within in the range). + + \sa maximum(), setRange() +*/ +void QtDatePropertyManager::setMaximum(QtProperty *property, QDate maxVal) +{ + setMaximumValue(this, d_ptr.data(), + &QtDatePropertyManager::propertyChanged, + &QtDatePropertyManager::valueChanged, + &QtDatePropertyManager::rangeChanged, + property, maxVal); +} + +/*! + \fn void QtDatePropertyManager::setRange(QtProperty *property, QDate minimum, QDate maximum) + + Sets the range of valid dates. + + This is a convenience function defining the range of valid dates + in one go; setting the \a minimum and \a maximum values for the + given \a property with a single function call. + + When setting a new date range, the current value is adjusted if + necessary (ensuring that the value remains in date range). + + \sa setMinimum(), setMaximum(), rangeChanged() +*/ +void QtDatePropertyManager::setRange(QtProperty *property, QDate minVal, QDate maxVal) +{ + void (QtDatePropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, QDate, QDate, QDate) = 0; + setBorderValues(this, d_ptr.data(), + &QtDatePropertyManager::propertyChanged, + &QtDatePropertyManager::valueChanged, + &QtDatePropertyManager::rangeChanged, + property, minVal, maxVal, setSubPropertyRange); +} + +/*! + \reimp +*/ +void QtDatePropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QtDatePropertyManagerPrivate::Data(); +} + +/*! + \reimp +*/ +void QtDatePropertyManager::uninitializeProperty(QtProperty *property) +{ + d_ptr->m_values.remove(property); +} + +// QtTimePropertyManager + +class QtTimePropertyManagerPrivate +{ + QtTimePropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtTimePropertyManager) +public: + explicit QtTimePropertyManagerPrivate(QtTimePropertyManager *q); + + const QString m_format; + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; +}; + +QtTimePropertyManagerPrivate::QtTimePropertyManagerPrivate(QtTimePropertyManager *q) : + q_ptr(q), + m_format(QtPropertyBrowserUtils::timeFormat()) +{ +} + +/*! + \class QtTimePropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtTimePropertyManager provides and manages QTime properties. + + A time property's value can be retrieved using the value() + function, and set using the setValue() slot. + + In addition, QtTimePropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes. + + \sa QtAbstractPropertyManager, QtTimeEditFactory +*/ + +/*! + \fn void QtTimePropertyManager::valueChanged(QtProperty *property, QTime value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the + new \a value as parameters. + + \sa setValue() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtTimePropertyManager::QtTimePropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtTimePropertyManagerPrivate(this)) +{ +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtTimePropertyManager::~QtTimePropertyManager() +{ + clear(); +} + +/*! + Returns the given \a property's value. + + If the given property is not managed by this manager, this + function returns an invalid time object. + + \sa setValue() +*/ +QTime QtTimePropertyManager::value(const QtProperty *property) const +{ + return d_ptr->m_values.value(property, QTime()); +} + +/*! + \reimp +*/ +QString QtTimePropertyManager::valueText(const QtProperty *property) const +{ + const QtTimePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + return it.value().toString(d_ptr->m_format); +} + +/*! + \fn void QtTimePropertyManager::setValue(QtProperty *property, QTime value) + + Sets the value of the given \a property to \a value. + + \sa value(), valueChanged() +*/ +void QtTimePropertyManager::setValue(QtProperty *property, QTime val) +{ + setSimpleValue(d_ptr->m_values, this, + &QtTimePropertyManager::propertyChanged, + &QtTimePropertyManager::valueChanged, + property, val); +} + +/*! + \reimp +*/ +void QtTimePropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QTime::currentTime(); +} + +/*! + \reimp +*/ +void QtTimePropertyManager::uninitializeProperty(QtProperty *property) +{ + d_ptr->m_values.remove(property); +} + +// QtDateTimePropertyManager + +class QtDateTimePropertyManagerPrivate +{ + QtDateTimePropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtDateTimePropertyManager) +public: + explicit QtDateTimePropertyManagerPrivate(QtDateTimePropertyManager *q); + + const QString m_format; + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; +}; + +QtDateTimePropertyManagerPrivate::QtDateTimePropertyManagerPrivate(QtDateTimePropertyManager *q) : + q_ptr(q), + m_format(QtPropertyBrowserUtils::dateTimeFormat()) +{ +} + +/*! \class QtDateTimePropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtDateTimePropertyManager provides and manages QDateTime properties. + + A date and time property has a current value which can be + retrieved using the value() function, and set using the setValue() + slot. In addition, QtDateTimePropertyManager provides the + valueChanged() signal which is emitted whenever a property created + by this manager changes. + + \sa QtAbstractPropertyManager, QtDateTimeEditFactory, QtDatePropertyManager +*/ + +/*! + \fn void QtDateTimePropertyManager::valueChanged(QtProperty *property, const QDateTime &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtDateTimePropertyManager::QtDateTimePropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtDateTimePropertyManagerPrivate(this)) +{ +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtDateTimePropertyManager::~QtDateTimePropertyManager() +{ + clear(); +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by this manager, this + function returns an invalid QDateTime object. + + \sa setValue() +*/ +QDateTime QtDateTimePropertyManager::value(const QtProperty *property) const +{ + return d_ptr->m_values.value(property, QDateTime()); +} + +/*! + \reimp +*/ +QString QtDateTimePropertyManager::valueText(const QtProperty *property) const +{ + const QtDateTimePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + return it.value().toString(d_ptr->m_format); +} + +/*! + \fn void QtDateTimePropertyManager::setValue(QtProperty *property, const QDateTime &value) + + Sets the value of the given \a property to \a value. + + \sa value(), valueChanged() +*/ +void QtDateTimePropertyManager::setValue(QtProperty *property, const QDateTime &val) +{ + setSimpleValue(d_ptr->m_values, this, + &QtDateTimePropertyManager::propertyChanged, + &QtDateTimePropertyManager::valueChanged, + property, val); +} + +/*! + \reimp +*/ +void QtDateTimePropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QDateTime::currentDateTime(); +} + +/*! + \reimp +*/ +void QtDateTimePropertyManager::uninitializeProperty(QtProperty *property) +{ + d_ptr->m_values.remove(property); +} + +// QtKeySequencePropertyManager + +class QtKeySequencePropertyManagerPrivate +{ + QtKeySequencePropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtKeySequencePropertyManager) +public: + + QString m_format; + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; +}; + +/*! \class QtKeySequencePropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtKeySequencePropertyManager provides and manages QKeySequence properties. + + A key sequence's value can be retrieved using the value() + function, and set using the setValue() slot. + + In addition, QtKeySequencePropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes. + + \sa QtAbstractPropertyManager +*/ + +/*! + \fn void QtKeySequencePropertyManager::valueChanged(QtProperty *property, const QKeySequence &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtKeySequencePropertyManager::QtKeySequencePropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtKeySequencePropertyManagerPrivate) +{ + d_ptr->q_ptr = this; +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtKeySequencePropertyManager::~QtKeySequencePropertyManager() +{ + clear(); +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by this manager, this + function returns an empty QKeySequence object. + + \sa setValue() +*/ +QKeySequence QtKeySequencePropertyManager::value(const QtProperty *property) const +{ + return d_ptr->m_values.value(property, QKeySequence()); +} + +/*! + \reimp +*/ +QString QtKeySequencePropertyManager::valueText(const QtProperty *property) const +{ + const QtKeySequencePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + return it.value().toString(QKeySequence::NativeText); +} + +/*! + \fn void QtKeySequencePropertyManager::setValue(QtProperty *property, const QKeySequence &value) + + Sets the value of the given \a property to \a value. + + \sa value(), valueChanged() +*/ +void QtKeySequencePropertyManager::setValue(QtProperty *property, const QKeySequence &val) +{ + setSimpleValue(d_ptr->m_values, this, + &QtKeySequencePropertyManager::propertyChanged, + &QtKeySequencePropertyManager::valueChanged, + property, val); +} + +/*! + \reimp +*/ +void QtKeySequencePropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QKeySequence(); +} + +/*! + \reimp +*/ +void QtKeySequencePropertyManager::uninitializeProperty(QtProperty *property) +{ + d_ptr->m_values.remove(property); +} + +// QtCharPropertyManager + +class QtCharPropertyManagerPrivate +{ + QtCharPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtCharPropertyManager) +public: + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; +}; + +/*! \class QtCharPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtCharPropertyManager provides and manages QChar properties. + + A char's value can be retrieved using the value() + function, and set using the setValue() slot. + + In addition, QtCharPropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes. + + \sa QtAbstractPropertyManager +*/ + +/*! + \fn void QtCharPropertyManager::valueChanged(QtProperty *property, const QChar &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtCharPropertyManager::QtCharPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtCharPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtCharPropertyManager::~QtCharPropertyManager() +{ + clear(); +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by this manager, this + function returns an null QChar object. + + \sa setValue() +*/ +QChar QtCharPropertyManager::value(const QtProperty *property) const +{ + return d_ptr->m_values.value(property, QChar()); +} + +/*! + \reimp +*/ +QString QtCharPropertyManager::valueText(const QtProperty *property) const +{ + const QtCharPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + const QChar c = it.value(); + return c.isNull() ? QString() : QString(c); +} + +/*! + \fn void QtCharPropertyManager::setValue(QtProperty *property, const QChar &value) + + Sets the value of the given \a property to \a value. + + \sa value(), valueChanged() +*/ +void QtCharPropertyManager::setValue(QtProperty *property, const QChar &val) +{ + setSimpleValue(d_ptr->m_values, this, + &QtCharPropertyManager::propertyChanged, + &QtCharPropertyManager::valueChanged, + property, val); +} + +/*! + \reimp +*/ +void QtCharPropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QChar(); +} + +/*! + \reimp +*/ +void QtCharPropertyManager::uninitializeProperty(QtProperty *property) +{ + d_ptr->m_values.remove(property); +} + +// QtLocalePropertyManager + +class QtLocalePropertyManagerPrivate +{ + QtLocalePropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtLocalePropertyManager) +public: + + QtLocalePropertyManagerPrivate(); + + void slotEnumChanged(QtProperty *property, int value); + void slotPropertyDestroyed(QtProperty *property); + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; + + QtEnumPropertyManager *m_enumPropertyManager; + + QMap m_propertyToLanguage; + QMap m_propertyToTerritory; + + QMap m_languageToProperty; + QMap m_territoryToProperty; +}; + +QtLocalePropertyManagerPrivate::QtLocalePropertyManagerPrivate() +{ +} + +void QtLocalePropertyManagerPrivate::slotEnumChanged(QtProperty *property, int value) +{ + if (QtProperty *prop = m_languageToProperty.value(property, 0)) { + const QLocale loc = m_values[prop]; + QLocale::Language newLanguage = loc.language(); + QLocale::Territory newTerritory = loc.territory(); + metaEnumProvider()->indexToLocale(value, 0, &newLanguage, 0); + QLocale newLoc(newLanguage, newTerritory); + q_ptr->setValue(prop, newLoc); + } else if (QtProperty *prop = m_territoryToProperty.value(property, 0)) { + const QLocale loc = m_values[prop]; + QLocale::Language newLanguage = loc.language(); + QLocale::Territory newTerritory = loc.territory(); + metaEnumProvider()->indexToLocale(m_enumPropertyManager->value(m_propertyToLanguage.value(prop)), value, &newLanguage, &newTerritory); + QLocale newLoc(newLanguage, newTerritory); + q_ptr->setValue(prop, newLoc); + } +} + +void QtLocalePropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) +{ + if (QtProperty *subProp = m_languageToProperty.value(property, 0)) { + m_propertyToLanguage[subProp] = 0; + m_languageToProperty.remove(property); + } else if (QtProperty *subProp = m_territoryToProperty.value(property, 0)) { + m_propertyToTerritory[subProp] = 0; + m_territoryToProperty.remove(property); + } +} + +/*! + \class QtLocalePropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtLocalePropertyManager provides and manages QLocale properties. + + A locale property has nested \e language and \e country + subproperties. The top-level property's value can be retrieved + using the value() function, and set using the setValue() slot. + + The subproperties are created by QtEnumPropertyManager object. + These submanager can be retrieved using the subEnumPropertyManager() + function. In order to provide editing widgets for the subproperties + in a property browser widget, this manager must be associated with editor factory. + + In addition, QtLocalePropertyManager provides the valueChanged() + signal which is emitted whenever a property created by this + manager changes. + + \sa QtAbstractPropertyManager, QtEnumPropertyManager +*/ + +/*! + \fn void QtLocalePropertyManager::valueChanged(QtProperty *property, const QLocale &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the + new \a value as parameters. + + \sa setValue() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtLocalePropertyManager::QtLocalePropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtLocalePropertyManagerPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->m_enumPropertyManager = new QtEnumPropertyManager(this); + connect(d_ptr->m_enumPropertyManager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotEnumChanged(QtProperty*,int))); + + connect(d_ptr->m_enumPropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtLocalePropertyManager::~QtLocalePropertyManager() +{ + clear(); +} + +/*! + Returns the manager that creates the nested \e language + and \e country subproperties. + + In order to provide editing widgets for the mentioned subproperties + in a property browser widget, this manager must be associated with + an editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtEnumPropertyManager *QtLocalePropertyManager::subEnumPropertyManager() const +{ + return d_ptr->m_enumPropertyManager; +} + +/*! + Returns the given \a property's value. + + If the given property is not managed by this manager, this + function returns the default locale. + + \sa setValue() +*/ +QLocale QtLocalePropertyManager::value(const QtProperty *property) const +{ + return d_ptr->m_values.value(property, QLocale()); +} + +/*! + \reimp +*/ +QString QtLocalePropertyManager::valueText(const QtProperty *property) const +{ + const QtLocalePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + + const QLocale loc = it.value(); + + int langIdx = 0; + int territoryIdx = 0; + const QtMetaEnumProvider *me = metaEnumProvider(); + me->localeToIndex(loc.language(), loc.territory(), &langIdx, &territoryIdx); + if (langIdx < 0) { + qWarning("QtLocalePropertyManager::valueText: Unknown language %d", loc.language()); + return tr(""); + } + const QString languageName = me->languageEnumNames().at(langIdx); + if (territoryIdx < 0) { + qWarning("QtLocalePropertyManager::valueText: Unknown territory %d for %s", loc.territory(), qPrintable(languageName)); + return languageName; + } + const QString countryName = me->territoryEnumNames(loc.language()).at(territoryIdx); + return tr("%1, %2").arg(languageName, countryName); +} + +/*! + \fn void QtLocalePropertyManager::setValue(QtProperty *property, const QLocale &value) + + Sets the value of the given \a property to \a value. Nested + properties are updated automatically. + + \sa value(), valueChanged() +*/ +void QtLocalePropertyManager::setValue(QtProperty *property, const QLocale &val) +{ + const QtLocalePropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + const QLocale loc = it.value(); + if (loc == val) + return; + + it.value() = val; + + int langIdx = 0; + int territoryIdx = 0; + metaEnumProvider()->localeToIndex(val.language(), val.territory(), &langIdx, &territoryIdx); + if (loc.language() != val.language()) { + d_ptr->m_enumPropertyManager->setValue(d_ptr->m_propertyToLanguage.value(property), langIdx); + d_ptr->m_enumPropertyManager->setEnumNames(d_ptr->m_propertyToTerritory.value(property), + metaEnumProvider()->territoryEnumNames(val.language())); + } + d_ptr->m_enumPropertyManager->setValue(d_ptr->m_propertyToTerritory.value(property), territoryIdx); + + emit propertyChanged(property); + emit valueChanged(property, val); +} + +/*! + \reimp +*/ +void QtLocalePropertyManager::initializeProperty(QtProperty *property) +{ + QLocale val; + d_ptr->m_values[property] = val; + + int langIdx = 0; + int territoryIdx = 0; + metaEnumProvider()->localeToIndex(val.language(), val.territory(), &langIdx, &territoryIdx); + + QtProperty *languageProp = d_ptr->m_enumPropertyManager->addProperty(); + languageProp->setPropertyName(tr("Language")); + d_ptr->m_enumPropertyManager->setEnumNames(languageProp, metaEnumProvider()->languageEnumNames()); + d_ptr->m_enumPropertyManager->setValue(languageProp, langIdx); + d_ptr->m_propertyToLanguage[property] = languageProp; + d_ptr->m_languageToProperty[languageProp] = property; + property->addSubProperty(languageProp); + + QtProperty *territoryProp = d_ptr->m_enumPropertyManager->addProperty(); + territoryProp->setPropertyName(tr("Country")); + d_ptr->m_enumPropertyManager->setEnumNames(territoryProp, metaEnumProvider()->territoryEnumNames(val.language())); + d_ptr->m_enumPropertyManager->setValue(territoryProp, territoryIdx); + d_ptr->m_propertyToTerritory[property] = territoryProp; + d_ptr->m_territoryToProperty[territoryProp] = property; + property->addSubProperty(territoryProp); +} + +/*! + \reimp +*/ +void QtLocalePropertyManager::uninitializeProperty(QtProperty *property) +{ + QtProperty *languageProp = d_ptr->m_propertyToLanguage[property]; + if (languageProp) { + d_ptr->m_languageToProperty.remove(languageProp); + delete languageProp; + } + d_ptr->m_propertyToLanguage.remove(property); + + QtProperty *countryProp = d_ptr->m_propertyToTerritory[property]; + if (countryProp) { + d_ptr->m_territoryToProperty.remove(countryProp); + delete countryProp; + } + d_ptr->m_propertyToTerritory.remove(property); + + d_ptr->m_values.remove(property); +} + +// QtPointPropertyManager + +class QtPointPropertyManagerPrivate +{ + QtPointPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtPointPropertyManager) +public: + + void slotIntChanged(QtProperty *property, int value); + void slotPropertyDestroyed(QtProperty *property); + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; + + QtIntPropertyManager *m_intPropertyManager; + + QMap m_propertyToX; + QMap m_propertyToY; + + QMap m_xToProperty; + QMap m_yToProperty; +}; + +void QtPointPropertyManagerPrivate::slotIntChanged(QtProperty *property, int value) +{ + if (QtProperty *xprop = m_xToProperty.value(property, 0)) { + QPoint p = m_values[xprop]; + p.setX(value); + q_ptr->setValue(xprop, p); + } else if (QtProperty *yprop = m_yToProperty.value(property, 0)) { + QPoint p = m_values[yprop]; + p.setY(value); + q_ptr->setValue(yprop, p); + } +} + +void QtPointPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) +{ + if (QtProperty *pointProp = m_xToProperty.value(property, 0)) { + m_propertyToX[pointProp] = 0; + m_xToProperty.remove(property); + } else if (QtProperty *pointProp = m_yToProperty.value(property, 0)) { + m_propertyToY[pointProp] = 0; + m_yToProperty.remove(property); + } +} + +/*! \class QtPointPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtPointPropertyManager provides and manages QPoint properties. + + A point property has nested \e x and \e y subproperties. The + top-level property's value can be retrieved using the value() + function, and set using the setValue() slot. + + The subproperties are created by a QtIntPropertyManager object. This + manager can be retrieved using the subIntPropertyManager() function. In + order to provide editing widgets for the subproperties in a + property browser widget, this manager must be associated with an + editor factory. + + In addition, QtPointPropertyManager provides the valueChanged() signal which + is emitted whenever a property created by this manager changes. + + \sa QtAbstractPropertyManager, QtIntPropertyManager, QtPointFPropertyManager +*/ + +/*! + \fn void QtPointPropertyManager::valueChanged(QtProperty *property, const QPoint &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the + new \a value as parameters. + + \sa setValue() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtPointPropertyManager::QtPointPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtPointPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->m_intPropertyManager = new QtIntPropertyManager(this); + connect(d_ptr->m_intPropertyManager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotIntChanged(QtProperty*,int))); + connect(d_ptr->m_intPropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtPointPropertyManager::~QtPointPropertyManager() +{ + clear(); +} + +/*! + Returns the manager that creates the nested \e x and \e y + subproperties. + + In order to provide editing widgets for the subproperties in a + property browser widget, this manager must be associated with an + editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtIntPropertyManager *QtPointPropertyManager::subIntPropertyManager() const +{ + return d_ptr->m_intPropertyManager; +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by this manager, this + function returns a point with coordinates (0, 0). + + \sa setValue() +*/ +QPoint QtPointPropertyManager::value(const QtProperty *property) const +{ + return d_ptr->m_values.value(property, QPoint()); +} + +/*! + \reimp +*/ +QString QtPointPropertyManager::valueText(const QtProperty *property) const +{ + const QtPointPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + const QPoint v = it.value(); + return tr("(%1, %2)").arg(QString::number(v.x())) + .arg(QString::number(v.y())); +} + +/*! + \fn void QtPointPropertyManager::setValue(QtProperty *property, const QPoint &value) + + Sets the value of the given \a property to \a value. Nested + properties are updated automatically. + + \sa value(), valueChanged() +*/ +void QtPointPropertyManager::setValue(QtProperty *property, const QPoint &val) +{ + const QtPointPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + if (it.value() == val) + return; + + it.value() = val; + d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToX[property], val.x()); + d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToY[property], val.y()); + + emit propertyChanged(property); + emit valueChanged(property, val); +} + +/*! + \reimp +*/ +void QtPointPropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QPoint(0, 0); + + QtProperty *xProp = d_ptr->m_intPropertyManager->addProperty(); + xProp->setPropertyName(tr("X")); + d_ptr->m_intPropertyManager->setValue(xProp, 0); + d_ptr->m_propertyToX[property] = xProp; + d_ptr->m_xToProperty[xProp] = property; + property->addSubProperty(xProp); + + QtProperty *yProp = d_ptr->m_intPropertyManager->addProperty(); + yProp->setPropertyName(tr("Y")); + d_ptr->m_intPropertyManager->setValue(yProp, 0); + d_ptr->m_propertyToY[property] = yProp; + d_ptr->m_yToProperty[yProp] = property; + property->addSubProperty(yProp); +} + +/*! + \reimp +*/ +void QtPointPropertyManager::uninitializeProperty(QtProperty *property) +{ + QtProperty *xProp = d_ptr->m_propertyToX[property]; + if (xProp) { + d_ptr->m_xToProperty.remove(xProp); + delete xProp; + } + d_ptr->m_propertyToX.remove(property); + + QtProperty *yProp = d_ptr->m_propertyToY[property]; + if (yProp) { + d_ptr->m_yToProperty.remove(yProp); + delete yProp; + } + d_ptr->m_propertyToY.remove(property); + + d_ptr->m_values.remove(property); +} + +// QtPointFPropertyManager + +class QtPointFPropertyManagerPrivate +{ + QtPointFPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtPointFPropertyManager) +public: + + struct Data + { + QPointF val; + int decimals{2}; + }; + + void slotDoubleChanged(QtProperty *property, double value); + void slotPropertyDestroyed(QtProperty *property); + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; + + QtDoublePropertyManager *m_doublePropertyManager; + + QMap m_propertyToX; + QMap m_propertyToY; + + QMap m_xToProperty; + QMap m_yToProperty; +}; + +void QtPointFPropertyManagerPrivate::slotDoubleChanged(QtProperty *property, double value) +{ + if (QtProperty *prop = m_xToProperty.value(property, 0)) { + QPointF p = m_values[prop].val; + p.setX(value); + q_ptr->setValue(prop, p); + } else if (QtProperty *prop = m_yToProperty.value(property, 0)) { + QPointF p = m_values[prop].val; + p.setY(value); + q_ptr->setValue(prop, p); + } +} + +void QtPointFPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) +{ + if (QtProperty *pointProp = m_xToProperty.value(property, 0)) { + m_propertyToX[pointProp] = 0; + m_xToProperty.remove(property); + } else if (QtProperty *pointProp = m_yToProperty.value(property, 0)) { + m_propertyToY[pointProp] = 0; + m_yToProperty.remove(property); + } +} + +/*! \class QtPointFPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtPointFPropertyManager provides and manages QPointF properties. + + A point property has nested \e x and \e y subproperties. The + top-level property's value can be retrieved using the value() + function, and set using the setValue() slot. + + The subproperties are created by a QtDoublePropertyManager object. This + manager can be retrieved using the subDoublePropertyManager() function. In + order to provide editing widgets for the subproperties in a + property browser widget, this manager must be associated with an + editor factory. + + In addition, QtPointFPropertyManager provides the valueChanged() signal which + is emitted whenever a property created by this manager changes. + + \sa QtAbstractPropertyManager, QtDoublePropertyManager, QtPointPropertyManager +*/ + +/*! + \fn void QtPointFPropertyManager::valueChanged(QtProperty *property, const QPointF &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the + new \a value as parameters. + + \sa setValue() +*/ + +/*! + \fn void QtPointFPropertyManager::decimalsChanged(QtProperty *property, int prec) + + This signal is emitted whenever a property created by this manager + changes its precision of value, passing a pointer to the + \a property and the new \a prec value + + \sa setDecimals() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtPointFPropertyManager::QtPointFPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtPointFPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->m_doublePropertyManager = new QtDoublePropertyManager(this); + connect(d_ptr->m_doublePropertyManager, SIGNAL(valueChanged(QtProperty*,double)), + this, SLOT(slotDoubleChanged(QtProperty*,double))); + connect(d_ptr->m_doublePropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtPointFPropertyManager::~QtPointFPropertyManager() +{ + clear(); +} + +/*! + Returns the manager that creates the nested \e x and \e y + subproperties. + + In order to provide editing widgets for the subproperties in a + property browser widget, this manager must be associated with an + editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtDoublePropertyManager *QtPointFPropertyManager::subDoublePropertyManager() const +{ + return d_ptr->m_doublePropertyManager; +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by this manager, this + function returns a point with coordinates (0, 0). + + \sa setValue() +*/ +QPointF QtPointFPropertyManager::value(const QtProperty *property) const +{ + return getValue(d_ptr->m_values, property); +} + +/*! + Returns the given \a property's precision, in decimals. + + \sa setDecimals() +*/ +int QtPointFPropertyManager::decimals(const QtProperty *property) const +{ + return getData(d_ptr->m_values, &QtPointFPropertyManagerPrivate::Data::decimals, property, 0); +} + +/*! + \reimp +*/ +QString QtPointFPropertyManager::valueText(const QtProperty *property) const +{ + const QtPointFPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + const QPointF v = it.value().val; + const int dec = it.value().decimals; + return tr("(%1, %2)").arg(QString::number(v.x(), 'f', dec)) + .arg(QString::number(v.y(), 'f', dec)); +} + +/*! + \fn void QtPointFPropertyManager::setValue(QtProperty *property, const QPointF &value) + + Sets the value of the given \a property to \a value. Nested + properties are updated automatically. + + \sa value(), valueChanged() +*/ +void QtPointFPropertyManager::setValue(QtProperty *property, const QPointF &val) +{ + const QtPointFPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + if (it.value().val == val) + return; + + it.value().val = val; + d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToX[property], val.x()); + d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToY[property], val.y()); + + emit propertyChanged(property); + emit valueChanged(property, val); +} + +/*! + \fn void QtPointFPropertyManager::setDecimals(QtProperty *property, int prec) + + Sets the precision of the given \a property to \a prec. + + The valid decimal range is 0-13. The default is 2. + + \sa decimals() +*/ +void QtPointFPropertyManager::setDecimals(QtProperty *property, int prec) +{ + const QtPointFPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtPointFPropertyManagerPrivate::Data data = it.value(); + + if (prec > 13) + prec = 13; + else if (prec < 0) + prec = 0; + + if (data.decimals == prec) + return; + + data.decimals = prec; + d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToX[property], prec); + d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToY[property], prec); + + it.value() = data; + + emit decimalsChanged(property, data.decimals); +} + +/*! + \reimp +*/ +void QtPointFPropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QtPointFPropertyManagerPrivate::Data(); + + QtProperty *xProp = d_ptr->m_doublePropertyManager->addProperty(); + xProp->setPropertyName(tr("X")); + d_ptr->m_doublePropertyManager->setDecimals(xProp, decimals(property)); + d_ptr->m_doublePropertyManager->setValue(xProp, 0); + d_ptr->m_propertyToX[property] = xProp; + d_ptr->m_xToProperty[xProp] = property; + property->addSubProperty(xProp); + + QtProperty *yProp = d_ptr->m_doublePropertyManager->addProperty(); + yProp->setPropertyName(tr("Y")); + d_ptr->m_doublePropertyManager->setDecimals(yProp, decimals(property)); + d_ptr->m_doublePropertyManager->setValue(yProp, 0); + d_ptr->m_propertyToY[property] = yProp; + d_ptr->m_yToProperty[yProp] = property; + property->addSubProperty(yProp); +} + +/*! + \reimp +*/ +void QtPointFPropertyManager::uninitializeProperty(QtProperty *property) +{ + QtProperty *xProp = d_ptr->m_propertyToX[property]; + if (xProp) { + d_ptr->m_xToProperty.remove(xProp); + delete xProp; + } + d_ptr->m_propertyToX.remove(property); + + QtProperty *yProp = d_ptr->m_propertyToY[property]; + if (yProp) { + d_ptr->m_yToProperty.remove(yProp); + delete yProp; + } + d_ptr->m_propertyToY.remove(property); + + d_ptr->m_values.remove(property); +} + +// QtSizePropertyManager + +class QtSizePropertyManagerPrivate +{ + QtSizePropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtSizePropertyManager) +public: + + void slotIntChanged(QtProperty *property, int value); + void slotPropertyDestroyed(QtProperty *property); + void setValue(QtProperty *property, const QSize &val); + void setRange(QtProperty *property, + const QSize &minVal, const QSize &maxVal, const QSize &val); + + struct Data + { + QSize val{0, 0}; + QSize minVal{0, 0}; + QSize maxVal{INT_MAX, INT_MAX}; + QSize minimumValue() const { return minVal; } + QSize maximumValue() const { return maxVal; } + void setMinimumValue(const QSize &newMinVal) { setSizeMinimumData(this, newMinVal); } + void setMaximumValue(const QSize &newMaxVal) { setSizeMaximumData(this, newMaxVal); } + }; + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; + + QtIntPropertyManager *m_intPropertyManager; + + QMap m_propertyToW; + QMap m_propertyToH; + + QMap m_wToProperty; + QMap m_hToProperty; +}; + +void QtSizePropertyManagerPrivate::slotIntChanged(QtProperty *property, int value) +{ + if (QtProperty *prop = m_wToProperty.value(property, 0)) { + QSize s = m_values[prop].val; + s.setWidth(value); + q_ptr->setValue(prop, s); + } else if (QtProperty *prop = m_hToProperty.value(property, 0)) { + QSize s = m_values[prop].val; + s.setHeight(value); + q_ptr->setValue(prop, s); + } +} + +void QtSizePropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) +{ + if (QtProperty *pointProp = m_wToProperty.value(property, 0)) { + m_propertyToW[pointProp] = 0; + m_wToProperty.remove(property); + } else if (QtProperty *pointProp = m_hToProperty.value(property, 0)) { + m_propertyToH[pointProp] = 0; + m_hToProperty.remove(property); + } +} + +void QtSizePropertyManagerPrivate::setValue(QtProperty *property, const QSize &val) +{ + m_intPropertyManager->setValue(m_propertyToW.value(property), val.width()); + m_intPropertyManager->setValue(m_propertyToH.value(property), val.height()); +} + +void QtSizePropertyManagerPrivate::setRange(QtProperty *property, + const QSize &minVal, const QSize &maxVal, const QSize &val) +{ + QtProperty *wProperty = m_propertyToW.value(property); + QtProperty *hProperty = m_propertyToH.value(property); + m_intPropertyManager->setRange(wProperty, minVal.width(), maxVal.width()); + m_intPropertyManager->setValue(wProperty, val.width()); + m_intPropertyManager->setRange(hProperty, minVal.height(), maxVal.height()); + m_intPropertyManager->setValue(hProperty, val.height()); +} + +/*! + \class QtSizePropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtSizePropertyManager provides and manages QSize properties. + + A size property has nested \e width and \e height + subproperties. The top-level property's value can be retrieved + using the value() function, and set using the setValue() slot. + + The subproperties are created by a QtIntPropertyManager object. This + manager can be retrieved using the subIntPropertyManager() function. In + order to provide editing widgets for the subproperties in a + property browser widget, this manager must be associated with an + editor factory. + + A size property also has a range of valid values defined by a + minimum size and a maximum size. These sizes can be retrieved + using the minimum() and the maximum() functions, and set using the + setMinimum() and setMaximum() slots. Alternatively, the range can + be defined in one go using the setRange() slot. + + In addition, QtSizePropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes, and the rangeChanged() signal which is emitted whenever + such a property changes its range of valid sizes. + + \sa QtAbstractPropertyManager, QtIntPropertyManager, QtSizeFPropertyManager +*/ + +/*! + \fn void QtSizePropertyManager::valueChanged(QtProperty *property, const QSize &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. + + \sa setValue() +*/ + +/*! + \fn void QtSizePropertyManager::rangeChanged(QtProperty *property, const QSize &minimum, const QSize &maximum) + + This signal is emitted whenever a property created by this manager + changes its range of valid sizes, passing a pointer to the \a + property and the new \a minimum and \a maximum sizes. + + \sa setRange() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtSizePropertyManager::QtSizePropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtSizePropertyManagerPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->m_intPropertyManager = new QtIntPropertyManager(this); + connect(d_ptr->m_intPropertyManager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotIntChanged(QtProperty*,int))); + connect(d_ptr->m_intPropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtSizePropertyManager::~QtSizePropertyManager() +{ + clear(); +} + +/*! + Returns the manager that creates the nested \e width and \e height + subproperties. + + In order to provide editing widgets for the \e width and \e height + properties in a property browser widget, this manager must be + associated with an editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtIntPropertyManager *QtSizePropertyManager::subIntPropertyManager() const +{ + return d_ptr->m_intPropertyManager; +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by this manager, this + function returns an invalid size + + \sa setValue() +*/ +QSize QtSizePropertyManager::value(const QtProperty *property) const +{ + return getValue(d_ptr->m_values, property); +} + +/*! + Returns the given \a property's minimum size value. + + \sa setMinimum(), maximum(), setRange() +*/ +QSize QtSizePropertyManager::minimum(const QtProperty *property) const +{ + return getMinimum(d_ptr->m_values, property); +} + +/*! + Returns the given \a property's maximum size value. + + \sa setMaximum(), minimum(), setRange() +*/ +QSize QtSizePropertyManager::maximum(const QtProperty *property) const +{ + return getMaximum(d_ptr->m_values, property); +} + +/*! + \reimp +*/ +QString QtSizePropertyManager::valueText(const QtProperty *property) const +{ + const QtSizePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + const QSize v = it.value().val; + return tr("%1 x %2").arg(QString::number(v.width())) + .arg(QString::number(v.height())); +} + +/*! + \fn void QtSizePropertyManager::setValue(QtProperty *property, const QSize &value) + + Sets the value of the given \a property to \a value. + + If the specified \a value is not valid according to the given \a + property's size range, the \a value is adjusted to the nearest + valid value within the size range. + + \sa value(), setRange(), valueChanged() +*/ +void QtSizePropertyManager::setValue(QtProperty *property, const QSize &val) +{ + setValueInRange(this, d_ptr.data(), + &QtSizePropertyManager::propertyChanged, + &QtSizePropertyManager::valueChanged, + property, val, &QtSizePropertyManagerPrivate::setValue); +} + +/*! + Sets the minimum size value for the given \a property to \a minVal. + + When setting the minimum size value, the maximum and current + values are adjusted if necessary (ensuring that the size range + remains valid and that the current value is within the range). + + \sa minimum(), setRange(), rangeChanged() +*/ +void QtSizePropertyManager::setMinimum(QtProperty *property, const QSize &minVal) +{ + setBorderValue(this, d_ptr.data(), + &QtSizePropertyManager::propertyChanged, + &QtSizePropertyManager::valueChanged, + &QtSizePropertyManager::rangeChanged, + property, + &QtSizePropertyManagerPrivate::Data::minimumValue, + &QtSizePropertyManagerPrivate::Data::setMinimumValue, + minVal, &QtSizePropertyManagerPrivate::setRange); +} + +/*! + Sets the maximum size value for the given \a property to \a maxVal. + + When setting the maximum size value, the minimum and current + values are adjusted if necessary (ensuring that the size range + remains valid and that the current value is within the range). + + \sa maximum(), setRange(), rangeChanged() +*/ +void QtSizePropertyManager::setMaximum(QtProperty *property, const QSize &maxVal) +{ + setBorderValue(this, d_ptr.data(), + &QtSizePropertyManager::propertyChanged, + &QtSizePropertyManager::valueChanged, + &QtSizePropertyManager::rangeChanged, + property, + &QtSizePropertyManagerPrivate::Data::maximumValue, + &QtSizePropertyManagerPrivate::Data::setMaximumValue, + maxVal, &QtSizePropertyManagerPrivate::setRange); +} + +/*! + \fn void QtSizePropertyManager::setRange(QtProperty *property, const QSize &minimum, const QSize &maximum) + + Sets the range of valid values. + + This is a convenience function defining the range of valid values + in one go; setting the \a minimum and \a maximum values for the + given \a property with a single function call. + + When setting a new range, the current value is adjusted if + necessary (ensuring that the value remains within the range). + + \sa setMinimum(), setMaximum(), rangeChanged() +*/ +void QtSizePropertyManager::setRange(QtProperty *property, const QSize &minVal, const QSize &maxVal) +{ + setBorderValues(this, d_ptr.data(), + &QtSizePropertyManager::propertyChanged, + &QtSizePropertyManager::valueChanged, + &QtSizePropertyManager::rangeChanged, + property, minVal, maxVal, &QtSizePropertyManagerPrivate::setRange); +} + +/*! + \reimp +*/ +void QtSizePropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QtSizePropertyManagerPrivate::Data(); + + QtProperty *wProp = d_ptr->m_intPropertyManager->addProperty(); + wProp->setPropertyName(tr("Width")); + d_ptr->m_intPropertyManager->setValue(wProp, 0); + d_ptr->m_intPropertyManager->setMinimum(wProp, 0); + d_ptr->m_propertyToW[property] = wProp; + d_ptr->m_wToProperty[wProp] = property; + property->addSubProperty(wProp); + + QtProperty *hProp = d_ptr->m_intPropertyManager->addProperty(); + hProp->setPropertyName(tr("Height")); + d_ptr->m_intPropertyManager->setValue(hProp, 0); + d_ptr->m_intPropertyManager->setMinimum(hProp, 0); + d_ptr->m_propertyToH[property] = hProp; + d_ptr->m_hToProperty[hProp] = property; + property->addSubProperty(hProp); +} + +/*! + \reimp +*/ +void QtSizePropertyManager::uninitializeProperty(QtProperty *property) +{ + QtProperty *wProp = d_ptr->m_propertyToW[property]; + if (wProp) { + d_ptr->m_wToProperty.remove(wProp); + delete wProp; + } + d_ptr->m_propertyToW.remove(property); + + QtProperty *hProp = d_ptr->m_propertyToH[property]; + if (hProp) { + d_ptr->m_hToProperty.remove(hProp); + delete hProp; + } + d_ptr->m_propertyToH.remove(property); + + d_ptr->m_values.remove(property); +} + +// QtSizeFPropertyManager + +class QtSizeFPropertyManagerPrivate +{ + QtSizeFPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtSizeFPropertyManager) +public: + + void slotDoubleChanged(QtProperty *property, double value); + void slotPropertyDestroyed(QtProperty *property); + void setValue(QtProperty *property, const QSizeF &val); + void setRange(QtProperty *property, + const QSizeF &minVal, const QSizeF &maxVal, const QSizeF &val); + + struct Data + { + QSizeF val{0, 0}; + QSizeF minVal{0, 0}; + QSizeF maxVal{std::numeric_limits::max(), std::numeric_limits::max()}; + int decimals{2}; + QSizeF minimumValue() const { return minVal; } + QSizeF maximumValue() const { return maxVal; } + void setMinimumValue(const QSizeF &newMinVal) { setSizeMinimumData(this, newMinVal); } + void setMaximumValue(const QSizeF &newMaxVal) { setSizeMaximumData(this, newMaxVal); } + }; + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; + + QtDoublePropertyManager *m_doublePropertyManager; + + QMap m_propertyToW; + QMap m_propertyToH; + + QMap m_wToProperty; + QMap m_hToProperty; +}; + +void QtSizeFPropertyManagerPrivate::slotDoubleChanged(QtProperty *property, double value) +{ + if (QtProperty *prop = m_wToProperty.value(property, 0)) { + QSizeF s = m_values[prop].val; + s.setWidth(value); + q_ptr->setValue(prop, s); + } else if (QtProperty *prop = m_hToProperty.value(property, 0)) { + QSizeF s = m_values[prop].val; + s.setHeight(value); + q_ptr->setValue(prop, s); + } +} + +void QtSizeFPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) +{ + if (QtProperty *pointProp = m_wToProperty.value(property, 0)) { + m_propertyToW[pointProp] = 0; + m_wToProperty.remove(property); + } else if (QtProperty *pointProp = m_hToProperty.value(property, 0)) { + m_propertyToH[pointProp] = 0; + m_hToProperty.remove(property); + } +} + +void QtSizeFPropertyManagerPrivate::setValue(QtProperty *property, const QSizeF &val) +{ + m_doublePropertyManager->setValue(m_propertyToW.value(property), val.width()); + m_doublePropertyManager->setValue(m_propertyToH.value(property), val.height()); +} + +void QtSizeFPropertyManagerPrivate::setRange(QtProperty *property, + const QSizeF &minVal, const QSizeF &maxVal, const QSizeF &val) +{ + m_doublePropertyManager->setRange(m_propertyToW[property], minVal.width(), maxVal.width()); + m_doublePropertyManager->setValue(m_propertyToW[property], val.width()); + m_doublePropertyManager->setRange(m_propertyToH[property], minVal.height(), maxVal.height()); + m_doublePropertyManager->setValue(m_propertyToH[property], val.height()); +} + +/*! + \class QtSizeFPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtSizeFPropertyManager provides and manages QSizeF properties. + + A size property has nested \e width and \e height + subproperties. The top-level property's value can be retrieved + using the value() function, and set using the setValue() slot. + + The subproperties are created by a QtDoublePropertyManager object. This + manager can be retrieved using the subDoublePropertyManager() function. In + order to provide editing widgets for the subproperties in a + property browser widget, this manager must be associated with an + editor factory. + + A size property also has a range of valid values defined by a + minimum size and a maximum size. These sizes can be retrieved + using the minimum() and the maximum() functions, and set using the + setMinimum() and setMaximum() slots. Alternatively, the range can + be defined in one go using the setRange() slot. + + In addition, QtSizeFPropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes, and the rangeChanged() signal which is emitted whenever + such a property changes its range of valid sizes. + + \sa QtAbstractPropertyManager, QtDoublePropertyManager, QtSizePropertyManager +*/ + +/*! + \fn void QtSizeFPropertyManager::valueChanged(QtProperty *property, const QSizeF &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. + + \sa setValue() +*/ + +/*! + \fn void QtSizeFPropertyManager::rangeChanged(QtProperty *property, const QSizeF &minimum, const QSizeF &maximum) + + This signal is emitted whenever a property created by this manager + changes its range of valid sizes, passing a pointer to the \a + property and the new \a minimum and \a maximum sizes. + + \sa setRange() +*/ + +/*! + \fn void QtSizeFPropertyManager::decimalsChanged(QtProperty *property, int prec) + + This signal is emitted whenever a property created by this manager + changes its precision of value, passing a pointer to the + \a property and the new \a prec value + + \sa setDecimals() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtSizeFPropertyManager::QtSizeFPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtSizeFPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->m_doublePropertyManager = new QtDoublePropertyManager(this); + connect(d_ptr->m_doublePropertyManager, SIGNAL(valueChanged(QtProperty*,double)), + this, SLOT(slotDoubleChanged(QtProperty*,double))); + connect(d_ptr->m_doublePropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtSizeFPropertyManager::~QtSizeFPropertyManager() +{ + clear(); +} + +/*! + Returns the manager that creates the nested \e width and \e height + subproperties. + + In order to provide editing widgets for the \e width and \e height + properties in a property browser widget, this manager must be + associated with an editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtDoublePropertyManager *QtSizeFPropertyManager::subDoublePropertyManager() const +{ + return d_ptr->m_doublePropertyManager; +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by this manager, this + function returns an invalid size + + \sa setValue() +*/ +QSizeF QtSizeFPropertyManager::value(const QtProperty *property) const +{ + return getValue(d_ptr->m_values, property); +} + +/*! + Returns the given \a property's precision, in decimals. + + \sa setDecimals() +*/ +int QtSizeFPropertyManager::decimals(const QtProperty *property) const +{ + return getData(d_ptr->m_values, &QtSizeFPropertyManagerPrivate::Data::decimals, property, 0); +} + +/*! + Returns the given \a property's minimum size value. + + \sa setMinimum(), maximum(), setRange() +*/ +QSizeF QtSizeFPropertyManager::minimum(const QtProperty *property) const +{ + return getMinimum(d_ptr->m_values, property); +} + +/*! + Returns the given \a property's maximum size value. + + \sa setMaximum(), minimum(), setRange() +*/ +QSizeF QtSizeFPropertyManager::maximum(const QtProperty *property) const +{ + return getMaximum(d_ptr->m_values, property); +} + +/*! + \reimp +*/ +QString QtSizeFPropertyManager::valueText(const QtProperty *property) const +{ + const QtSizeFPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + const QSizeF v = it.value().val; + const int dec = it.value().decimals; + return tr("%1 x %2").arg(QString::number(v.width(), 'f', dec)) + .arg(QString::number(v.height(), 'f', dec)); +} + +/*! + \fn void QtSizeFPropertyManager::setValue(QtProperty *property, const QSizeF &value) + + Sets the value of the given \a property to \a value. + + If the specified \a value is not valid according to the given \a + property's size range, the \a value is adjusted to the nearest + valid value within the size range. + + \sa value(), setRange(), valueChanged() +*/ +void QtSizeFPropertyManager::setValue(QtProperty *property, const QSizeF &val) +{ + setValueInRange(this, d_ptr.data(), + &QtSizeFPropertyManager::propertyChanged, + &QtSizeFPropertyManager::valueChanged, + property, val, &QtSizeFPropertyManagerPrivate::setValue); +} + +/*! + \fn void QtSizeFPropertyManager::setDecimals(QtProperty *property, int prec) + + Sets the precision of the given \a property to \a prec. + + The valid decimal range is 0-13. The default is 2. + + \sa decimals() +*/ +void QtSizeFPropertyManager::setDecimals(QtProperty *property, int prec) +{ + const QtSizeFPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtSizeFPropertyManagerPrivate::Data data = it.value(); + + if (prec > 13) + prec = 13; + else if (prec < 0) + prec = 0; + + if (data.decimals == prec) + return; + + data.decimals = prec; + d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToW[property], prec); + d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToH[property], prec); + + it.value() = data; + + emit decimalsChanged(property, data.decimals); +} + +/*! + Sets the minimum size value for the given \a property to \a minVal. + + When setting the minimum size value, the maximum and current + values are adjusted if necessary (ensuring that the size range + remains valid and that the current value is within the range). + + \sa minimum(), setRange(), rangeChanged() +*/ +void QtSizeFPropertyManager::setMinimum(QtProperty *property, const QSizeF &minVal) +{ + setBorderValue(this, d_ptr.data(), + &QtSizeFPropertyManager::propertyChanged, + &QtSizeFPropertyManager::valueChanged, + &QtSizeFPropertyManager::rangeChanged, + property, + &QtSizeFPropertyManagerPrivate::Data::minimumValue, + &QtSizeFPropertyManagerPrivate::Data::setMinimumValue, + minVal, &QtSizeFPropertyManagerPrivate::setRange); +} + +/*! + Sets the maximum size value for the given \a property to \a maxVal. + + When setting the maximum size value, the minimum and current + values are adjusted if necessary (ensuring that the size range + remains valid and that the current value is within the range). + + \sa maximum(), setRange(), rangeChanged() +*/ +void QtSizeFPropertyManager::setMaximum(QtProperty *property, const QSizeF &maxVal) +{ + setBorderValue(this, d_ptr.data(), + &QtSizeFPropertyManager::propertyChanged, + &QtSizeFPropertyManager::valueChanged, + &QtSizeFPropertyManager::rangeChanged, + property, + &QtSizeFPropertyManagerPrivate::Data::maximumValue, + &QtSizeFPropertyManagerPrivate::Data::setMaximumValue, + maxVal, &QtSizeFPropertyManagerPrivate::setRange); +} + +/*! + \fn void QtSizeFPropertyManager::setRange(QtProperty *property, const QSizeF &minimum, const QSizeF &maximum) + + Sets the range of valid values. + + This is a convenience function defining the range of valid values + in one go; setting the \a minimum and \a maximum values for the + given \a property with a single function call. + + When setting a new range, the current value is adjusted if + necessary (ensuring that the value remains within the range). + + \sa setMinimum(), setMaximum(), rangeChanged() +*/ +void QtSizeFPropertyManager::setRange(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal) +{ + setBorderValues(this, d_ptr.data(), + &QtSizeFPropertyManager::propertyChanged, + &QtSizeFPropertyManager::valueChanged, + &QtSizeFPropertyManager::rangeChanged, + property, minVal, maxVal, &QtSizeFPropertyManagerPrivate::setRange); +} + +/*! + \reimp +*/ +void QtSizeFPropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QtSizeFPropertyManagerPrivate::Data(); + + QtProperty *wProp = d_ptr->m_doublePropertyManager->addProperty(); + wProp->setPropertyName(tr("Width")); + d_ptr->m_doublePropertyManager->setDecimals(wProp, decimals(property)); + d_ptr->m_doublePropertyManager->setValue(wProp, 0); + d_ptr->m_doublePropertyManager->setMinimum(wProp, 0); + d_ptr->m_propertyToW[property] = wProp; + d_ptr->m_wToProperty[wProp] = property; + property->addSubProperty(wProp); + + QtProperty *hProp = d_ptr->m_doublePropertyManager->addProperty(); + hProp->setPropertyName(tr("Height")); + d_ptr->m_doublePropertyManager->setDecimals(hProp, decimals(property)); + d_ptr->m_doublePropertyManager->setValue(hProp, 0); + d_ptr->m_doublePropertyManager->setMinimum(hProp, 0); + d_ptr->m_propertyToH[property] = hProp; + d_ptr->m_hToProperty[hProp] = property; + property->addSubProperty(hProp); +} + +/*! + \reimp +*/ +void QtSizeFPropertyManager::uninitializeProperty(QtProperty *property) +{ + QtProperty *wProp = d_ptr->m_propertyToW[property]; + if (wProp) { + d_ptr->m_wToProperty.remove(wProp); + delete wProp; + } + d_ptr->m_propertyToW.remove(property); + + QtProperty *hProp = d_ptr->m_propertyToH[property]; + if (hProp) { + d_ptr->m_hToProperty.remove(hProp); + delete hProp; + } + d_ptr->m_propertyToH.remove(property); + + d_ptr->m_values.remove(property); +} + +// QtRectPropertyManager + +class QtRectPropertyManagerPrivate +{ + QtRectPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtRectPropertyManager) +public: + + void slotIntChanged(QtProperty *property, int value); + void slotPropertyDestroyed(QtProperty *property); + void setConstraint(QtProperty *property, const QRect &constraint, const QRect &val); + + struct Data + { + QRect val{0, 0, 0, 0}; + QRect constraint; + }; + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; + + QtIntPropertyManager *m_intPropertyManager; + + QMap m_propertyToX; + QMap m_propertyToY; + QMap m_propertyToW; + QMap m_propertyToH; + + QMap m_xToProperty; + QMap m_yToProperty; + QMap m_wToProperty; + QMap m_hToProperty; +}; + +void QtRectPropertyManagerPrivate::slotIntChanged(QtProperty *property, int value) +{ + if (QtProperty *prop = m_xToProperty.value(property, 0)) { + QRect r = m_values[prop].val; + r.moveLeft(value); + q_ptr->setValue(prop, r); + } else if (QtProperty *prop = m_yToProperty.value(property)) { + QRect r = m_values[prop].val; + r.moveTop(value); + q_ptr->setValue(prop, r); + } else if (QtProperty *prop = m_wToProperty.value(property, 0)) { + Data data = m_values[prop]; + QRect r = data.val; + r.setWidth(value); + if (!data.constraint.isNull() && data.constraint.x() + data.constraint.width() < r.x() + r.width()) { + r.moveLeft(data.constraint.left() + data.constraint.width() - r.width()); + } + q_ptr->setValue(prop, r); + } else if (QtProperty *prop = m_hToProperty.value(property, 0)) { + Data data = m_values[prop]; + QRect r = data.val; + r.setHeight(value); + if (!data.constraint.isNull() && data.constraint.y() + data.constraint.height() < r.y() + r.height()) { + r.moveTop(data.constraint.top() + data.constraint.height() - r.height()); + } + q_ptr->setValue(prop, r); + } +} + +void QtRectPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) +{ + if (QtProperty *pointProp = m_xToProperty.value(property, 0)) { + m_propertyToX[pointProp] = 0; + m_xToProperty.remove(property); + } else if (QtProperty *pointProp = m_yToProperty.value(property, 0)) { + m_propertyToY[pointProp] = 0; + m_yToProperty.remove(property); + } else if (QtProperty *pointProp = m_wToProperty.value(property, 0)) { + m_propertyToW[pointProp] = 0; + m_wToProperty.remove(property); + } else if (QtProperty *pointProp = m_hToProperty.value(property, 0)) { + m_propertyToH[pointProp] = 0; + m_hToProperty.remove(property); + } +} + +void QtRectPropertyManagerPrivate::setConstraint(QtProperty *property, + const QRect &constraint, const QRect &val) +{ + const bool isNull = constraint.isNull(); + const int left = isNull ? INT_MIN : constraint.left(); + const int right = isNull ? INT_MAX : constraint.left() + constraint.width(); + const int top = isNull ? INT_MIN : constraint.top(); + const int bottom = isNull ? INT_MAX : constraint.top() + constraint.height(); + const int width = isNull ? INT_MAX : constraint.width(); + const int height = isNull ? INT_MAX : constraint.height(); + + m_intPropertyManager->setRange(m_propertyToX[property], left, right); + m_intPropertyManager->setRange(m_propertyToY[property], top, bottom); + m_intPropertyManager->setRange(m_propertyToW[property], 0, width); + m_intPropertyManager->setRange(m_propertyToH[property], 0, height); + + m_intPropertyManager->setValue(m_propertyToX[property], val.x()); + m_intPropertyManager->setValue(m_propertyToY[property], val.y()); + m_intPropertyManager->setValue(m_propertyToW[property], val.width()); + m_intPropertyManager->setValue(m_propertyToH[property], val.height()); +} + +/*! + \class QtRectPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtRectPropertyManager provides and manages QRect properties. + + A rectangle property has nested \e x, \e y, \e width and \e height + subproperties. The top-level property's value can be retrieved + using the value() function, and set using the setValue() slot. + + The subproperties are created by a QtIntPropertyManager object. This + manager can be retrieved using the subIntPropertyManager() function. In + order to provide editing widgets for the subproperties in a + property browser widget, this manager must be associated with an + editor factory. + + A rectangle property also has a constraint rectangle which can be + retrieved using the constraint() function, and set using the + setConstraint() slot. + + In addition, QtRectPropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes, and the constraintChanged() signal which is emitted + whenever such a property changes its constraint rectangle. + + \sa QtAbstractPropertyManager, QtIntPropertyManager, QtRectFPropertyManager +*/ + +/*! + \fn void QtRectPropertyManager::valueChanged(QtProperty *property, const QRect &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. + + \sa setValue() +*/ + +/*! + \fn void QtRectPropertyManager::constraintChanged(QtProperty *property, const QRect &constraint) + + This signal is emitted whenever property changes its constraint + rectangle, passing a pointer to the \a property and the new \a + constraint rectangle as parameters. + + \sa setConstraint() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtRectPropertyManager::QtRectPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtRectPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->m_intPropertyManager = new QtIntPropertyManager(this); + connect(d_ptr->m_intPropertyManager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotIntChanged(QtProperty*,int))); + connect(d_ptr->m_intPropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtRectPropertyManager::~QtRectPropertyManager() +{ + clear(); +} + +/*! + Returns the manager that creates the nested \e x, \e y, \e width + and \e height subproperties. + + In order to provide editing widgets for the mentioned + subproperties in a property browser widget, this manager must be + associated with an editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtIntPropertyManager *QtRectPropertyManager::subIntPropertyManager() const +{ + return d_ptr->m_intPropertyManager; +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by this manager, this + function returns an invalid rectangle. + + \sa setValue(), constraint() +*/ +QRect QtRectPropertyManager::value(const QtProperty *property) const +{ + return getValue(d_ptr->m_values, property); +} + +/*! + Returns the given \a property's constraining rectangle. If returned value is null QRect it means there is no constraint applied. + + \sa value(), setConstraint() +*/ +QRect QtRectPropertyManager::constraint(const QtProperty *property) const +{ + return getData(d_ptr->m_values, &QtRectPropertyManagerPrivate::Data::constraint, property, QRect()); +} + +/*! + \reimp +*/ +QString QtRectPropertyManager::valueText(const QtProperty *property) const +{ + const QtRectPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + const QRect v = it.value().val; + return tr("[(%1, %2), %3 x %4]").arg(QString::number(v.x())) + .arg(QString::number(v.y())) + .arg(QString::number(v.width())) + .arg(QString::number(v.height())); +} + +/*! + \fn void QtRectPropertyManager::setValue(QtProperty *property, const QRect &value) + + Sets the value of the given \a property to \a value. Nested + properties are updated automatically. + + If the specified \a value is not inside the given \a property's + constraining rectangle, the value is adjusted accordingly to fit + within the constraint. + + \sa value(), setConstraint(), valueChanged() +*/ +void QtRectPropertyManager::setValue(QtProperty *property, const QRect &val) +{ + const QtRectPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtRectPropertyManagerPrivate::Data data = it.value(); + + QRect newRect = val.normalized(); + if (!data.constraint.isNull() && !data.constraint.contains(newRect)) { + const QRect r1 = data.constraint; + const QRect r2 = newRect; + newRect.setLeft(qMax(r1.left(), r2.left())); + newRect.setRight(qMin(r1.right(), r2.right())); + newRect.setTop(qMax(r1.top(), r2.top())); + newRect.setBottom(qMin(r1.bottom(), r2.bottom())); + if (newRect.width() < 0 || newRect.height() < 0) + return; + } + + if (data.val == newRect) + return; + + data.val = newRect; + + it.value() = data; + d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToX[property], newRect.x()); + d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToY[property], newRect.y()); + d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToW[property], newRect.width()); + d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToH[property], newRect.height()); + + emit propertyChanged(property); + emit valueChanged(property, data.val); +} + +/*! + Sets the given \a property's constraining rectangle to \a + constraint. + + When setting the constraint, the current value is adjusted if + necessary (ensuring that the current rectangle value is inside the + constraint). In order to reset the constraint pass a null QRect value. + + \sa setValue(), constraint(), constraintChanged() +*/ +void QtRectPropertyManager::setConstraint(QtProperty *property, const QRect &constraint) +{ + const QtRectPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtRectPropertyManagerPrivate::Data data = it.value(); + + QRect newConstraint = constraint.normalized(); + if (data.constraint == newConstraint) + return; + + const QRect oldVal = data.val; + + data.constraint = newConstraint; + + if (!data.constraint.isNull() && !data.constraint.contains(oldVal)) { + QRect r1 = data.constraint; + QRect r2 = data.val; + + if (r2.width() > r1.width()) + r2.setWidth(r1.width()); + if (r2.height() > r1.height()) + r2.setHeight(r1.height()); + if (r2.left() < r1.left()) + r2.moveLeft(r1.left()); + else if (r2.right() > r1.right()) + r2.moveRight(r1.right()); + if (r2.top() < r1.top()) + r2.moveTop(r1.top()); + else if (r2.bottom() > r1.bottom()) + r2.moveBottom(r1.bottom()); + + data.val = r2; + } + + it.value() = data; + + emit constraintChanged(property, data.constraint); + + d_ptr->setConstraint(property, data.constraint, data.val); + + if (data.val == oldVal) + return; + + emit propertyChanged(property); + emit valueChanged(property, data.val); +} + +/*! + \reimp +*/ +void QtRectPropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QtRectPropertyManagerPrivate::Data(); + + QtProperty *xProp = d_ptr->m_intPropertyManager->addProperty(); + xProp->setPropertyName(tr("X")); + d_ptr->m_intPropertyManager->setValue(xProp, 0); + d_ptr->m_propertyToX[property] = xProp; + d_ptr->m_xToProperty[xProp] = property; + property->addSubProperty(xProp); + + QtProperty *yProp = d_ptr->m_intPropertyManager->addProperty(); + yProp->setPropertyName(tr("Y")); + d_ptr->m_intPropertyManager->setValue(yProp, 0); + d_ptr->m_propertyToY[property] = yProp; + d_ptr->m_yToProperty[yProp] = property; + property->addSubProperty(yProp); + + QtProperty *wProp = d_ptr->m_intPropertyManager->addProperty(); + wProp->setPropertyName(tr("Width")); + d_ptr->m_intPropertyManager->setValue(wProp, 0); + d_ptr->m_intPropertyManager->setMinimum(wProp, 0); + d_ptr->m_propertyToW[property] = wProp; + d_ptr->m_wToProperty[wProp] = property; + property->addSubProperty(wProp); + + QtProperty *hProp = d_ptr->m_intPropertyManager->addProperty(); + hProp->setPropertyName(tr("Height")); + d_ptr->m_intPropertyManager->setValue(hProp, 0); + d_ptr->m_intPropertyManager->setMinimum(hProp, 0); + d_ptr->m_propertyToH[property] = hProp; + d_ptr->m_hToProperty[hProp] = property; + property->addSubProperty(hProp); +} + +/*! + \reimp +*/ +void QtRectPropertyManager::uninitializeProperty(QtProperty *property) +{ + QtProperty *xProp = d_ptr->m_propertyToX[property]; + if (xProp) { + d_ptr->m_xToProperty.remove(xProp); + delete xProp; + } + d_ptr->m_propertyToX.remove(property); + + QtProperty *yProp = d_ptr->m_propertyToY[property]; + if (yProp) { + d_ptr->m_yToProperty.remove(yProp); + delete yProp; + } + d_ptr->m_propertyToY.remove(property); + + QtProperty *wProp = d_ptr->m_propertyToW[property]; + if (wProp) { + d_ptr->m_wToProperty.remove(wProp); + delete wProp; + } + d_ptr->m_propertyToW.remove(property); + + QtProperty *hProp = d_ptr->m_propertyToH[property]; + if (hProp) { + d_ptr->m_hToProperty.remove(hProp); + delete hProp; + } + d_ptr->m_propertyToH.remove(property); + + d_ptr->m_values.remove(property); +} + +// QtRectFPropertyManager + +class QtRectFPropertyManagerPrivate +{ + QtRectFPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtRectFPropertyManager) +public: + + void slotDoubleChanged(QtProperty *property, double value); + void slotPropertyDestroyed(QtProperty *property); + void setConstraint(QtProperty *property, const QRectF &constraint, const QRectF &val); + + struct Data + { + QRectF val{0, 0, 0, 0}; + QRectF constraint; + int decimals{2}; + }; + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; + + QtDoublePropertyManager *m_doublePropertyManager; + + QMap m_propertyToX; + QMap m_propertyToY; + QMap m_propertyToW; + QMap m_propertyToH; + + QMap m_xToProperty; + QMap m_yToProperty; + QMap m_wToProperty; + QMap m_hToProperty; +}; + +void QtRectFPropertyManagerPrivate::slotDoubleChanged(QtProperty *property, double value) +{ + if (QtProperty *prop = m_xToProperty.value(property, 0)) { + QRectF r = m_values[prop].val; + r.moveLeft(value); + q_ptr->setValue(prop, r); + } else if (QtProperty *prop = m_yToProperty.value(property, 0)) { + QRectF r = m_values[prop].val; + r.moveTop(value); + q_ptr->setValue(prop, r); + } else if (QtProperty *prop = m_wToProperty.value(property, 0)) { + Data data = m_values[prop]; + QRectF r = data.val; + r.setWidth(value); + if (!data.constraint.isNull() && data.constraint.x() + data.constraint.width() < r.x() + r.width()) { + r.moveLeft(data.constraint.left() + data.constraint.width() - r.width()); + } + q_ptr->setValue(prop, r); + } else if (QtProperty *prop = m_hToProperty.value(property, 0)) { + Data data = m_values[prop]; + QRectF r = data.val; + r.setHeight(value); + if (!data.constraint.isNull() && data.constraint.y() + data.constraint.height() < r.y() + r.height()) { + r.moveTop(data.constraint.top() + data.constraint.height() - r.height()); + } + q_ptr->setValue(prop, r); + } +} + +void QtRectFPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) +{ + if (QtProperty *pointProp = m_xToProperty.value(property, 0)) { + m_propertyToX[pointProp] = 0; + m_xToProperty.remove(property); + } else if (QtProperty *pointProp = m_yToProperty.value(property, 0)) { + m_propertyToY[pointProp] = 0; + m_yToProperty.remove(property); + } else if (QtProperty *pointProp = m_wToProperty.value(property, 0)) { + m_propertyToW[pointProp] = 0; + m_wToProperty.remove(property); + } else if (QtProperty *pointProp = m_hToProperty.value(property, 0)) { + m_propertyToH[pointProp] = 0; + m_hToProperty.remove(property); + } +} + +void QtRectFPropertyManagerPrivate::setConstraint(QtProperty *property, + const QRectF &constraint, const QRectF &val) +{ + const bool isNull = constraint.isNull(); + const float left = isNull ? FLT_MIN : constraint.left(); + const float right = isNull ? FLT_MAX : constraint.left() + constraint.width(); + const float top = isNull ? FLT_MIN : constraint.top(); + const float bottom = isNull ? FLT_MAX : constraint.top() + constraint.height(); + const float width = isNull ? FLT_MAX : constraint.width(); + const float height = isNull ? FLT_MAX : constraint.height(); + + m_doublePropertyManager->setRange(m_propertyToX[property], left, right); + m_doublePropertyManager->setRange(m_propertyToY[property], top, bottom); + m_doublePropertyManager->setRange(m_propertyToW[property], 0, width); + m_doublePropertyManager->setRange(m_propertyToH[property], 0, height); + + m_doublePropertyManager->setValue(m_propertyToX[property], val.x()); + m_doublePropertyManager->setValue(m_propertyToY[property], val.y()); + m_doublePropertyManager->setValue(m_propertyToW[property], val.width()); + m_doublePropertyManager->setValue(m_propertyToH[property], val.height()); +} + +/*! + \class QtRectFPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtRectFPropertyManager provides and manages QRectF properties. + + A rectangle property has nested \e x, \e y, \e width and \e height + subproperties. The top-level property's value can be retrieved + using the value() function, and set using the setValue() slot. + + The subproperties are created by a QtDoublePropertyManager object. This + manager can be retrieved using the subDoublePropertyManager() function. In + order to provide editing widgets for the subproperties in a + property browser widget, this manager must be associated with an + editor factory. + + A rectangle property also has a constraint rectangle which can be + retrieved using the constraint() function, and set using the + setConstraint() slot. + + In addition, QtRectFPropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes, and the constraintChanged() signal which is emitted + whenever such a property changes its constraint rectangle. + + \sa QtAbstractPropertyManager, QtDoublePropertyManager, QtRectPropertyManager +*/ + +/*! + \fn void QtRectFPropertyManager::valueChanged(QtProperty *property, const QRectF &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. + + \sa setValue() +*/ + +/*! + \fn void QtRectFPropertyManager::constraintChanged(QtProperty *property, const QRectF &constraint) + + This signal is emitted whenever property changes its constraint + rectangle, passing a pointer to the \a property and the new \a + constraint rectangle as parameters. + + \sa setConstraint() +*/ + +/*! + \fn void QtRectFPropertyManager::decimalsChanged(QtProperty *property, int prec) + + This signal is emitted whenever a property created by this manager + changes its precision of value, passing a pointer to the + \a property and the new \a prec value + + \sa setDecimals() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtRectFPropertyManager::QtRectFPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtRectFPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->m_doublePropertyManager = new QtDoublePropertyManager(this); + connect(d_ptr->m_doublePropertyManager, SIGNAL(valueChanged(QtProperty*,double)), + this, SLOT(slotDoubleChanged(QtProperty*,double))); + connect(d_ptr->m_doublePropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtRectFPropertyManager::~QtRectFPropertyManager() +{ + clear(); +} + +/*! + Returns the manager that creates the nested \e x, \e y, \e width + and \e height subproperties. + + In order to provide editing widgets for the mentioned + subproperties in a property browser widget, this manager must be + associated with an editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtDoublePropertyManager *QtRectFPropertyManager::subDoublePropertyManager() const +{ + return d_ptr->m_doublePropertyManager; +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by this manager, this + function returns an invalid rectangle. + + \sa setValue(), constraint() +*/ +QRectF QtRectFPropertyManager::value(const QtProperty *property) const +{ + return getValue(d_ptr->m_values, property); +} + +/*! + Returns the given \a property's precision, in decimals. + + \sa setDecimals() +*/ +int QtRectFPropertyManager::decimals(const QtProperty *property) const +{ + return getData(d_ptr->m_values, &QtRectFPropertyManagerPrivate::Data::decimals, property, 0); +} + +/*! + Returns the given \a property's constraining rectangle. If returned value is null QRectF it means there is no constraint applied. + + \sa value(), setConstraint() +*/ +QRectF QtRectFPropertyManager::constraint(const QtProperty *property) const +{ + return getData(d_ptr->m_values, &QtRectFPropertyManagerPrivate::Data::constraint, property, QRect()); +} + +/*! + \reimp +*/ +QString QtRectFPropertyManager::valueText(const QtProperty *property) const +{ + const QtRectFPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + const QRectF v = it.value().val; + const int dec = it.value().decimals; + return QString(tr("[(%1, %2), %3 x %4]").arg(QString::number(v.x(), 'f', dec)) + .arg(QString::number(v.y(), 'f', dec)) + .arg(QString::number(v.width(), 'f', dec)) + .arg(QString::number(v.height(), 'f', dec))); +} + +/*! + \fn void QtRectFPropertyManager::setValue(QtProperty *property, const QRectF &value) + + Sets the value of the given \a property to \a value. Nested + properties are updated automatically. + + If the specified \a value is not inside the given \a property's + constraining rectangle, the value is adjusted accordingly to fit + within the constraint. + + \sa value(), setConstraint(), valueChanged() +*/ +void QtRectFPropertyManager::setValue(QtProperty *property, const QRectF &val) +{ + const QtRectFPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtRectFPropertyManagerPrivate::Data data = it.value(); + + QRectF newRect = val.normalized(); + if (!data.constraint.isNull() && !data.constraint.contains(newRect)) { + const QRectF r1 = data.constraint; + const QRectF r2 = newRect; + newRect.setLeft(qMax(r1.left(), r2.left())); + newRect.setRight(qMin(r1.right(), r2.right())); + newRect.setTop(qMax(r1.top(), r2.top())); + newRect.setBottom(qMin(r1.bottom(), r2.bottom())); + if (newRect.width() < 0 || newRect.height() < 0) + return; + } + + if (data.val == newRect) + return; + + data.val = newRect; + + it.value() = data; + d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToX[property], newRect.x()); + d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToY[property], newRect.y()); + d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToW[property], newRect.width()); + d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToH[property], newRect.height()); + + emit propertyChanged(property); + emit valueChanged(property, data.val); +} + +/*! + Sets the given \a property's constraining rectangle to \a + constraint. + + When setting the constraint, the current value is adjusted if + necessary (ensuring that the current rectangle value is inside the + constraint). In order to reset the constraint pass a null QRectF value. + + \sa setValue(), constraint(), constraintChanged() +*/ +void QtRectFPropertyManager::setConstraint(QtProperty *property, const QRectF &constraint) +{ + const QtRectFPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtRectFPropertyManagerPrivate::Data data = it.value(); + + QRectF newConstraint = constraint.normalized(); + if (data.constraint == newConstraint) + return; + + const QRectF oldVal = data.val; + + data.constraint = newConstraint; + + if (!data.constraint.isNull() && !data.constraint.contains(oldVal)) { + QRectF r1 = data.constraint; + QRectF r2 = data.val; + + if (r2.width() > r1.width()) + r2.setWidth(r1.width()); + if (r2.height() > r1.height()) + r2.setHeight(r1.height()); + if (r2.left() < r1.left()) + r2.moveLeft(r1.left()); + else if (r2.right() > r1.right()) + r2.moveRight(r1.right()); + if (r2.top() < r1.top()) + r2.moveTop(r1.top()); + else if (r2.bottom() > r1.bottom()) + r2.moveBottom(r1.bottom()); + + data.val = r2; + } + + it.value() = data; + + emit constraintChanged(property, data.constraint); + + d_ptr->setConstraint(property, data.constraint, data.val); + + if (data.val == oldVal) + return; + + emit propertyChanged(property); + emit valueChanged(property, data.val); +} + +/*! + \fn void QtRectFPropertyManager::setDecimals(QtProperty *property, int prec) + + Sets the precision of the given \a property to \a prec. + + The valid decimal range is 0-13. The default is 2. + + \sa decimals() +*/ +void QtRectFPropertyManager::setDecimals(QtProperty *property, int prec) +{ + const QtRectFPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtRectFPropertyManagerPrivate::Data data = it.value(); + + if (prec > 13) + prec = 13; + else if (prec < 0) + prec = 0; + + if (data.decimals == prec) + return; + + data.decimals = prec; + d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToX[property], prec); + d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToY[property], prec); + d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToW[property], prec); + d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToH[property], prec); + + it.value() = data; + + emit decimalsChanged(property, data.decimals); +} + +/*! + \reimp +*/ +void QtRectFPropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QtRectFPropertyManagerPrivate::Data(); + + QtProperty *xProp = d_ptr->m_doublePropertyManager->addProperty(); + xProp->setPropertyName(tr("X")); + d_ptr->m_doublePropertyManager->setDecimals(xProp, decimals(property)); + d_ptr->m_doublePropertyManager->setValue(xProp, 0); + d_ptr->m_propertyToX[property] = xProp; + d_ptr->m_xToProperty[xProp] = property; + property->addSubProperty(xProp); + + QtProperty *yProp = d_ptr->m_doublePropertyManager->addProperty(); + yProp->setPropertyName(tr("Y")); + d_ptr->m_doublePropertyManager->setDecimals(yProp, decimals(property)); + d_ptr->m_doublePropertyManager->setValue(yProp, 0); + d_ptr->m_propertyToY[property] = yProp; + d_ptr->m_yToProperty[yProp] = property; + property->addSubProperty(yProp); + + QtProperty *wProp = d_ptr->m_doublePropertyManager->addProperty(); + wProp->setPropertyName(tr("Width")); + d_ptr->m_doublePropertyManager->setDecimals(wProp, decimals(property)); + d_ptr->m_doublePropertyManager->setValue(wProp, 0); + d_ptr->m_doublePropertyManager->setMinimum(wProp, 0); + d_ptr->m_propertyToW[property] = wProp; + d_ptr->m_wToProperty[wProp] = property; + property->addSubProperty(wProp); + + QtProperty *hProp = d_ptr->m_doublePropertyManager->addProperty(); + hProp->setPropertyName(tr("Height")); + d_ptr->m_doublePropertyManager->setDecimals(hProp, decimals(property)); + d_ptr->m_doublePropertyManager->setValue(hProp, 0); + d_ptr->m_doublePropertyManager->setMinimum(hProp, 0); + d_ptr->m_propertyToH[property] = hProp; + d_ptr->m_hToProperty[hProp] = property; + property->addSubProperty(hProp); +} + +/*! + \reimp +*/ +void QtRectFPropertyManager::uninitializeProperty(QtProperty *property) +{ + QtProperty *xProp = d_ptr->m_propertyToX[property]; + if (xProp) { + d_ptr->m_xToProperty.remove(xProp); + delete xProp; + } + d_ptr->m_propertyToX.remove(property); + + QtProperty *yProp = d_ptr->m_propertyToY[property]; + if (yProp) { + d_ptr->m_yToProperty.remove(yProp); + delete yProp; + } + d_ptr->m_propertyToY.remove(property); + + QtProperty *wProp = d_ptr->m_propertyToW[property]; + if (wProp) { + d_ptr->m_wToProperty.remove(wProp); + delete wProp; + } + d_ptr->m_propertyToW.remove(property); + + QtProperty *hProp = d_ptr->m_propertyToH[property]; + if (hProp) { + d_ptr->m_hToProperty.remove(hProp); + delete hProp; + } + d_ptr->m_propertyToH.remove(property); + + d_ptr->m_values.remove(property); +} + +// QtEnumPropertyManager + +class QtEnumPropertyManagerPrivate +{ + QtEnumPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtEnumPropertyManager) +public: + + struct Data + { + int val{-1}; + QStringList enumNames; + QMap enumIcons; + }; + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; +}; + +/*! + \class QtEnumPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtEnumPropertyManager provides and manages enum properties. + + Each enum property has an associated list of enum names which can + be retrieved using the enumNames() function, and set using the + corresponding setEnumNames() function. An enum property's value is + represented by an index in this list, and can be retrieved and set + using the value() and setValue() slots respectively. + + Each enum value can also have an associated icon. The mapping from + values to icons can be set using the setEnumIcons() function and + queried with the enumIcons() function. + + In addition, QtEnumPropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes. The enumNamesChanged() or enumIconsChanged() signal is emitted + whenever the list of enum names or icons is altered. + + \sa QtAbstractPropertyManager, QtEnumEditorFactory +*/ + +/*! + \fn void QtEnumPropertyManager::valueChanged(QtProperty *property, int value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. + + \sa setValue() +*/ + +/*! + \fn void QtEnumPropertyManager::enumNamesChanged(QtProperty *property, const QStringList &names) + + This signal is emitted whenever a property created by this manager + changes its enum names, passing a pointer to the \a property and + the new \a names as parameters. + + \sa setEnumNames() +*/ + +/*! + \fn void QtEnumPropertyManager::enumIconsChanged(QtProperty *property, const QMap &icons) + + This signal is emitted whenever a property created by this manager + changes its enum icons, passing a pointer to the \a property and + the new mapping of values to \a icons as parameters. + + \sa setEnumIcons() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtEnumPropertyManager::QtEnumPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtEnumPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtEnumPropertyManager::~QtEnumPropertyManager() +{ + clear(); +} + +/*! + Returns the given \a property's value which is an index in the + list returned by enumNames() + + If the given property is not managed by this manager, this + function returns -1. + + \sa enumNames(), setValue() +*/ +int QtEnumPropertyManager::value(const QtProperty *property) const +{ + return getValue(d_ptr->m_values, property, -1); +} + +/*! + Returns the given \a property's list of enum names. + + \sa value(), setEnumNames() +*/ +QStringList QtEnumPropertyManager::enumNames(const QtProperty *property) const +{ + return getData(d_ptr->m_values, &QtEnumPropertyManagerPrivate::Data::enumNames, property, QStringList()); +} + +/*! + Returns the given \a property's map of enum values to their icons. + + \sa value(), setEnumIcons() +*/ +QMap QtEnumPropertyManager::enumIcons(const QtProperty *property) const +{ + return getData >(d_ptr->m_values, &QtEnumPropertyManagerPrivate::Data::enumIcons, property, QMap()); +} + +/*! + \reimp +*/ +QString QtEnumPropertyManager::valueText(const QtProperty *property) const +{ + const QtEnumPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + + const QtEnumPropertyManagerPrivate::Data &data = it.value(); + + const int v = data.val; + if (v >= 0 && v < data.enumNames.size()) + return data.enumNames.at(v); + return QString(); +} + +/*! + \reimp +*/ +QIcon QtEnumPropertyManager::valueIcon(const QtProperty *property) const +{ + const QtEnumPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QIcon(); + + const QtEnumPropertyManagerPrivate::Data &data = it.value(); + + const int v = data.val; + return data.enumIcons.value(v); +} + +/*! + \fn void QtEnumPropertyManager::setValue(QtProperty *property, int value) + + Sets the value of the given \a property to \a value. + + The specified \a value must be less than the size of the given \a + property's enumNames() list, and larger than (or equal to) 0. + + \sa value(), valueChanged() +*/ +void QtEnumPropertyManager::setValue(QtProperty *property, int val) +{ + const QtEnumPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtEnumPropertyManagerPrivate::Data data = it.value(); + + if (val >= data.enumNames.size()) + return; + + if (val < 0 && data.enumNames.size() > 0) + return; + + if (val < 0) + val = -1; + + if (data.val == val) + return; + + data.val = val; + + it.value() = data; + + emit propertyChanged(property); + emit valueChanged(property, data.val); +} + +/*! + Sets the given \a property's list of enum names to \a + enumNames. The \a property's current value is reset to 0 + indicating the first item of the list. + + If the specified \a enumNames list is empty, the \a property's + current value is set to -1. + + \sa enumNames(), enumNamesChanged() +*/ +void QtEnumPropertyManager::setEnumNames(QtProperty *property, const QStringList &enumNames) +{ + const QtEnumPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtEnumPropertyManagerPrivate::Data data = it.value(); + + if (data.enumNames == enumNames) + return; + + data.enumNames = enumNames; + + data.val = -1; + + if (enumNames.size() > 0) + data.val = 0; + + it.value() = data; + + emit enumNamesChanged(property, data.enumNames); + + emit propertyChanged(property); + emit valueChanged(property, data.val); +} + +/*! + Sets the given \a property's map of enum values to their icons to \a + enumIcons. + + Each enum value can have associated icon. This association is represented with passed \a enumIcons map. + + \sa enumNames(), enumNamesChanged() +*/ +void QtEnumPropertyManager::setEnumIcons(QtProperty *property, const QMap &enumIcons) +{ + const QtEnumPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + it.value().enumIcons = enumIcons; + + emit enumIconsChanged(property, it.value().enumIcons); + + emit propertyChanged(property); +} + +/*! + \reimp +*/ +void QtEnumPropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QtEnumPropertyManagerPrivate::Data(); +} + +/*! + \reimp +*/ +void QtEnumPropertyManager::uninitializeProperty(QtProperty *property) +{ + d_ptr->m_values.remove(property); +} + +// QtFlagPropertyManager + +class QtFlagPropertyManagerPrivate +{ + QtFlagPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtFlagPropertyManager) +public: + + void slotBoolChanged(QtProperty *property, bool value); + void slotPropertyDestroyed(QtProperty *property); + + struct Data + { + int val{-1}; + QStringList flagNames; + }; + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; + + QtBoolPropertyManager *m_boolPropertyManager; + + QMap > m_propertyToFlags; + + QMap m_flagToProperty; +}; + +void QtFlagPropertyManagerPrivate::slotBoolChanged(QtProperty *property, bool value) +{ + QtProperty *prop = m_flagToProperty.value(property, 0); + if (prop == 0) + return; + + const auto pfit = m_propertyToFlags.constFind(prop); + if (pfit == m_propertyToFlags.constEnd()) + return; + int level = 0; + for (QtProperty *p : pfit.value()) { + if (p == property) { + int v = m_values[prop].val; + if (value) { + v |= (1 << level); + } else { + v &= ~(1 << level); + } + q_ptr->setValue(prop, v); + return; + } + level++; + } +} + +void QtFlagPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) +{ + QtProperty *flagProperty = m_flagToProperty.value(property, 0); + if (flagProperty == 0) + return; + + m_propertyToFlags[flagProperty].replace(m_propertyToFlags[flagProperty].indexOf(property), 0); + m_flagToProperty.remove(property); +} + +/*! + \class QtFlagPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtFlagPropertyManager provides and manages flag properties. + + Each flag property has an associated list of flag names which can + be retrieved using the flagNames() function, and set using the + corresponding setFlagNames() function. + + The flag manager provides properties with nested boolean + subproperties representing each flag, i.e. a flag property's value + is the binary combination of the subproperties' values. A + property's value can be retrieved and set using the value() and + setValue() slots respectively. The combination of flags is represented + by single int value - that's why it's possible to store up to + 32 independent flags in one flag property. + + The subproperties are created by a QtBoolPropertyManager object. This + manager can be retrieved using the subBoolPropertyManager() function. In + order to provide editing widgets for the subproperties in a + property browser widget, this manager must be associated with an + editor factory. + + In addition, QtFlagPropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes, and the flagNamesChanged() signal which is emitted + whenever the list of flag names is altered. + + \sa QtAbstractPropertyManager, QtBoolPropertyManager +*/ + +/*! + \fn void QtFlagPropertyManager::valueChanged(QtProperty *property, int value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. + + \sa setValue() +*/ + +/*! + \fn void QtFlagPropertyManager::flagNamesChanged(QtProperty *property, const QStringList &names) + + This signal is emitted whenever a property created by this manager + changes its flag names, passing a pointer to the \a property and the + new \a names as parameters. + + \sa setFlagNames() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtFlagPropertyManager::QtFlagPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtFlagPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->m_boolPropertyManager = new QtBoolPropertyManager(this); + connect(d_ptr->m_boolPropertyManager, SIGNAL(valueChanged(QtProperty*,bool)), + this, SLOT(slotBoolChanged(QtProperty*,bool))); + connect(d_ptr->m_boolPropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtFlagPropertyManager::~QtFlagPropertyManager() +{ + clear(); +} + +/*! + Returns the manager that produces the nested boolean subproperties + representing each flag. + + In order to provide editing widgets for the subproperties in a + property browser widget, this manager must be associated with an + editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtBoolPropertyManager *QtFlagPropertyManager::subBoolPropertyManager() const +{ + return d_ptr->m_boolPropertyManager; +} + +/*! + Returns the given \a property's value. + + If the given property is not managed by this manager, this + function returns 0. + + \sa flagNames(), setValue() +*/ +int QtFlagPropertyManager::value(const QtProperty *property) const +{ + return getValue(d_ptr->m_values, property, 0); +} + +/*! + Returns the given \a property's list of flag names. + + \sa value(), setFlagNames() +*/ +QStringList QtFlagPropertyManager::flagNames(const QtProperty *property) const +{ + return getData(d_ptr->m_values, &QtFlagPropertyManagerPrivate::Data::flagNames, property, QStringList()); +} + +/*! + \reimp +*/ +QString QtFlagPropertyManager::valueText(const QtProperty *property) const +{ + const QtFlagPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + + const QtFlagPropertyManagerPrivate::Data &data = it.value(); + + QString str; + int level = 0; + const QChar bar = QLatin1Char('|'); + const QStringList::const_iterator fncend = data.flagNames.constEnd(); + for (QStringList::const_iterator it = data.flagNames.constBegin(); it != fncend; ++it) { + if (data.val & (1 << level)) { + if (!str.isEmpty()) + str += bar; + str += *it; + } + + level++; + } + return str; +} + +/*! + \fn void QtFlagPropertyManager::setValue(QtProperty *property, int value) + + Sets the value of the given \a property to \a value. Nested + properties are updated automatically. + + The specified \a value must be less than the binary combination of + the property's flagNames() list size (i.e. less than 2\sup n, + where \c n is the size of the list) and larger than (or equal to) + 0. + + \sa value(), valueChanged() +*/ +void QtFlagPropertyManager::setValue(QtProperty *property, int val) +{ + const QtFlagPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtFlagPropertyManagerPrivate::Data data = it.value(); + + if (data.val == val) + return; + + if (val > (1 << data.flagNames.size()) - 1) + return; + + if (val < 0) + return; + + data.val = val; + + it.value() = data; + + const auto pfit = d_ptr->m_propertyToFlags.constFind(property); + int level = 0; + if (pfit != d_ptr->m_propertyToFlags.constEnd()) { + for (QtProperty *prop : pfit.value()) { + if (prop) + d_ptr->m_boolPropertyManager->setValue(prop, val & (1 << level)); + level++; + } + } + + emit propertyChanged(property); + emit valueChanged(property, data.val); +} + +/*! + Sets the given \a property's list of flag names to \a flagNames. The + property's current value is reset to 0 indicating the first item + of the list. + + \sa flagNames(), flagNamesChanged() +*/ +void QtFlagPropertyManager::setFlagNames(QtProperty *property, const QStringList &flagNames) +{ + const QtFlagPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + QtFlagPropertyManagerPrivate::Data data = it.value(); + + if (data.flagNames == flagNames) + return; + + data.flagNames = flagNames; + data.val = 0; + + it.value() = data; + + const auto pfit = d_ptr->m_propertyToFlags.find(property); + if (pfit != d_ptr->m_propertyToFlags.end()) { + for (QtProperty *prop : std::as_const(pfit.value())) { + if (prop) { + delete prop; + d_ptr->m_flagToProperty.remove(prop); + } + } + pfit.value().clear(); + } + + for (const QString &flagName : flagNames) { + QtProperty *prop = d_ptr->m_boolPropertyManager->addProperty(); + prop->setPropertyName(flagName); + property->addSubProperty(prop); + d_ptr->m_propertyToFlags[property].append(prop); + d_ptr->m_flagToProperty[prop] = property; + } + + emit flagNamesChanged(property, data.flagNames); + + emit propertyChanged(property); + emit valueChanged(property, data.val); +} + +/*! + \reimp +*/ +void QtFlagPropertyManager::initializeProperty(QtProperty *property) +{ + d_ptr->m_values[property] = QtFlagPropertyManagerPrivate::Data(); + + d_ptr->m_propertyToFlags[property] = QList(); +} + +/*! + \reimp +*/ +void QtFlagPropertyManager::uninitializeProperty(QtProperty *property) +{ + const auto it = d_ptr->m_propertyToFlags.find(property); + if (it != d_ptr->m_propertyToFlags.end()) { + for (QtProperty *prop : std::as_const(it.value())) { + if (prop) { + d_ptr->m_flagToProperty.remove(prop); + delete prop; + } + } + } + d_ptr->m_propertyToFlags.erase(it); + + d_ptr->m_values.remove(property); +} + +// QtSizePolicyPropertyManager + +class QtSizePolicyPropertyManagerPrivate +{ + QtSizePolicyPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtSizePolicyPropertyManager) +public: + + QtSizePolicyPropertyManagerPrivate(); + + void slotIntChanged(QtProperty *property, int value); + void slotEnumChanged(QtProperty *property, int value); + void slotPropertyDestroyed(QtProperty *property); + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; + + QtIntPropertyManager *m_intPropertyManager; + QtEnumPropertyManager *m_enumPropertyManager; + + QMap m_propertyToHPolicy; + QMap m_propertyToVPolicy; + QMap m_propertyToHStretch; + QMap m_propertyToVStretch; + + QMap m_hPolicyToProperty; + QMap m_vPolicyToProperty; + QMap m_hStretchToProperty; + QMap m_vStretchToProperty; +}; + +QtSizePolicyPropertyManagerPrivate::QtSizePolicyPropertyManagerPrivate() +{ +} + +void QtSizePolicyPropertyManagerPrivate::slotIntChanged(QtProperty *property, int value) +{ + if (QtProperty *prop = m_hStretchToProperty.value(property, 0)) { + QSizePolicy sp = m_values[prop]; + sp.setHorizontalStretch(value); + q_ptr->setValue(prop, sp); + } else if (QtProperty *prop = m_vStretchToProperty.value(property, 0)) { + QSizePolicy sp = m_values[prop]; + sp.setVerticalStretch(value); + q_ptr->setValue(prop, sp); + } +} + +void QtSizePolicyPropertyManagerPrivate::slotEnumChanged(QtProperty *property, int value) +{ + if (QtProperty *prop = m_hPolicyToProperty.value(property, 0)) { + QSizePolicy sp = m_values[prop]; + sp.setHorizontalPolicy(metaEnumProvider()->indexToSizePolicy(value)); + q_ptr->setValue(prop, sp); + } else if (QtProperty *prop = m_vPolicyToProperty.value(property, 0)) { + QSizePolicy sp = m_values[prop]; + sp.setVerticalPolicy(metaEnumProvider()->indexToSizePolicy(value)); + q_ptr->setValue(prop, sp); + } +} + +void QtSizePolicyPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) +{ + if (QtProperty *pointProp = m_hStretchToProperty.value(property, 0)) { + m_propertyToHStretch[pointProp] = 0; + m_hStretchToProperty.remove(property); + } else if (QtProperty *pointProp = m_vStretchToProperty.value(property, 0)) { + m_propertyToVStretch[pointProp] = 0; + m_vStretchToProperty.remove(property); + } else if (QtProperty *pointProp = m_hPolicyToProperty.value(property, 0)) { + m_propertyToHPolicy[pointProp] = 0; + m_hPolicyToProperty.remove(property); + } else if (QtProperty *pointProp = m_vPolicyToProperty.value(property, 0)) { + m_propertyToVPolicy[pointProp] = 0; + m_vPolicyToProperty.remove(property); + } +} + +/*! + \class QtSizePolicyPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtSizePolicyPropertyManager provides and manages QSizePolicy properties. + + A size policy property has nested \e horizontalPolicy, \e + verticalPolicy, \e horizontalStretch and \e verticalStretch + subproperties. The top-level property's value can be retrieved + using the value() function, and set using the setValue() slot. + + The subproperties are created by QtIntPropertyManager and QtEnumPropertyManager + objects. These managers can be retrieved using the subIntPropertyManager() + and subEnumPropertyManager() functions respectively. In order to provide + editing widgets for the subproperties in a property browser widget, + these managers must be associated with editor factories. + + In addition, QtSizePolicyPropertyManager provides the valueChanged() + signal which is emitted whenever a property created by this + manager changes. + + \sa QtAbstractPropertyManager, QtIntPropertyManager, QtEnumPropertyManager +*/ + +/*! + \fn void QtSizePolicyPropertyManager::valueChanged(QtProperty *property, const QSizePolicy &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the + new \a value as parameters. + + \sa setValue() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtSizePolicyPropertyManager::QtSizePolicyPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtSizePolicyPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->m_intPropertyManager = new QtIntPropertyManager(this); + connect(d_ptr->m_intPropertyManager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotIntChanged(QtProperty*,int))); + d_ptr->m_enumPropertyManager = new QtEnumPropertyManager(this); + connect(d_ptr->m_enumPropertyManager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotEnumChanged(QtProperty*,int))); + + connect(d_ptr->m_intPropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); + connect(d_ptr->m_enumPropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtSizePolicyPropertyManager::~QtSizePolicyPropertyManager() +{ + clear(); +} + +/*! + Returns the manager that creates the nested \e horizontalStretch + and \e verticalStretch subproperties. + + In order to provide editing widgets for the mentioned subproperties + in a property browser widget, this manager must be associated with + an editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtIntPropertyManager *QtSizePolicyPropertyManager::subIntPropertyManager() const +{ + return d_ptr->m_intPropertyManager; +} + +/*! + Returns the manager that creates the nested \e horizontalPolicy + and \e verticalPolicy subproperties. + + In order to provide editing widgets for the mentioned subproperties + in a property browser widget, this manager must be associated with + an editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtEnumPropertyManager *QtSizePolicyPropertyManager::subEnumPropertyManager() const +{ + return d_ptr->m_enumPropertyManager; +} + +/*! + Returns the given \a property's value. + + If the given property is not managed by this manager, this + function returns the default size policy. + + \sa setValue() +*/ +QSizePolicy QtSizePolicyPropertyManager::value(const QtProperty *property) const +{ + return d_ptr->m_values.value(property, QSizePolicy()); +} + +/*! + \reimp +*/ +QString QtSizePolicyPropertyManager::valueText(const QtProperty *property) const +{ + const QtSizePolicyPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + + const QSizePolicy sp = it.value(); + const QtMetaEnumProvider *mep = metaEnumProvider(); + const int hIndex = mep->sizePolicyToIndex(sp.horizontalPolicy()); + const int vIndex = mep->sizePolicyToIndex(sp.verticalPolicy()); + //! Unknown size policy on reading invalid uic3 files + const QString hPolicy = hIndex != -1 ? mep->policyEnumNames().at(hIndex) : tr(""); + const QString vPolicy = vIndex != -1 ? mep->policyEnumNames().at(vIndex) : tr(""); + const QString str = tr("[%1, %2, %3, %4]").arg(hPolicy, vPolicy).arg(sp.horizontalStretch()).arg(sp.verticalStretch()); + return str; +} + +/*! + \fn void QtSizePolicyPropertyManager::setValue(QtProperty *property, const QSizePolicy &value) + + Sets the value of the given \a property to \a value. Nested + properties are updated automatically. + + \sa value(), valueChanged() +*/ +void QtSizePolicyPropertyManager::setValue(QtProperty *property, const QSizePolicy &val) +{ + const QtSizePolicyPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + if (it.value() == val) + return; + + it.value() = val; + + d_ptr->m_enumPropertyManager->setValue(d_ptr->m_propertyToHPolicy[property], + metaEnumProvider()->sizePolicyToIndex(val.horizontalPolicy())); + d_ptr->m_enumPropertyManager->setValue(d_ptr->m_propertyToVPolicy[property], + metaEnumProvider()->sizePolicyToIndex(val.verticalPolicy())); + d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToHStretch[property], + val.horizontalStretch()); + d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToVStretch[property], + val.verticalStretch()); + + emit propertyChanged(property); + emit valueChanged(property, val); +} + +/*! + \reimp +*/ +void QtSizePolicyPropertyManager::initializeProperty(QtProperty *property) +{ + QSizePolicy val; + d_ptr->m_values[property] = val; + + QtProperty *hPolicyProp = d_ptr->m_enumPropertyManager->addProperty(); + hPolicyProp->setPropertyName(tr("Horizontal Policy")); + d_ptr->m_enumPropertyManager->setEnumNames(hPolicyProp, metaEnumProvider()->policyEnumNames()); + d_ptr->m_enumPropertyManager->setValue(hPolicyProp, + metaEnumProvider()->sizePolicyToIndex(val.horizontalPolicy())); + d_ptr->m_propertyToHPolicy[property] = hPolicyProp; + d_ptr->m_hPolicyToProperty[hPolicyProp] = property; + property->addSubProperty(hPolicyProp); + + QtProperty *vPolicyProp = d_ptr->m_enumPropertyManager->addProperty(); + vPolicyProp->setPropertyName(tr("Vertical Policy")); + d_ptr->m_enumPropertyManager->setEnumNames(vPolicyProp, metaEnumProvider()->policyEnumNames()); + d_ptr->m_enumPropertyManager->setValue(vPolicyProp, + metaEnumProvider()->sizePolicyToIndex(val.verticalPolicy())); + d_ptr->m_propertyToVPolicy[property] = vPolicyProp; + d_ptr->m_vPolicyToProperty[vPolicyProp] = property; + property->addSubProperty(vPolicyProp); + + QtProperty *hStretchProp = d_ptr->m_intPropertyManager->addProperty(); + hStretchProp->setPropertyName(tr("Horizontal Stretch")); + d_ptr->m_intPropertyManager->setValue(hStretchProp, val.horizontalStretch()); + d_ptr->m_intPropertyManager->setRange(hStretchProp, 0, 0xff); + d_ptr->m_propertyToHStretch[property] = hStretchProp; + d_ptr->m_hStretchToProperty[hStretchProp] = property; + property->addSubProperty(hStretchProp); + + QtProperty *vStretchProp = d_ptr->m_intPropertyManager->addProperty(); + vStretchProp->setPropertyName(tr("Vertical Stretch")); + d_ptr->m_intPropertyManager->setValue(vStretchProp, val.verticalStretch()); + d_ptr->m_intPropertyManager->setRange(vStretchProp, 0, 0xff); + d_ptr->m_propertyToVStretch[property] = vStretchProp; + d_ptr->m_vStretchToProperty[vStretchProp] = property; + property->addSubProperty(vStretchProp); + +} + +/*! + \reimp +*/ +void QtSizePolicyPropertyManager::uninitializeProperty(QtProperty *property) +{ + QtProperty *hPolicyProp = d_ptr->m_propertyToHPolicy[property]; + if (hPolicyProp) { + d_ptr->m_hPolicyToProperty.remove(hPolicyProp); + delete hPolicyProp; + } + d_ptr->m_propertyToHPolicy.remove(property); + + QtProperty *vPolicyProp = d_ptr->m_propertyToVPolicy[property]; + if (vPolicyProp) { + d_ptr->m_vPolicyToProperty.remove(vPolicyProp); + delete vPolicyProp; + } + d_ptr->m_propertyToVPolicy.remove(property); + + QtProperty *hStretchProp = d_ptr->m_propertyToHStretch[property]; + if (hStretchProp) { + d_ptr->m_hStretchToProperty.remove(hStretchProp); + delete hStretchProp; + } + d_ptr->m_propertyToHStretch.remove(property); + + QtProperty *vStretchProp = d_ptr->m_propertyToVStretch[property]; + if (vStretchProp) { + d_ptr->m_vStretchToProperty.remove(vStretchProp); + delete vStretchProp; + } + d_ptr->m_propertyToVStretch.remove(property); + + d_ptr->m_values.remove(property); +} + +// QtFontPropertyManager: +// QtFontPropertyManagerPrivate has a mechanism for reacting +// to QApplication::fontDatabaseChanged() [4.5], which is emitted +// when someone loads an application font. The signals are compressed +// using a timer with interval 0, which then causes the family +// enumeration manager to re-set its strings and index values +// for each property. + +class QtFontPropertyManagerPrivate +{ + QtFontPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtFontPropertyManager) +public: + + QtFontPropertyManagerPrivate(); + + void slotIntChanged(QtProperty *property, int value); + void slotEnumChanged(QtProperty *property, int value); + void slotBoolChanged(QtProperty *property, bool value); + void slotPropertyDestroyed(QtProperty *property); + void slotFontDatabaseChanged(); + void slotFontDatabaseDelayedChange(); + + QStringList m_familyNames; + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; + + QtIntPropertyManager *m_intPropertyManager; + QtEnumPropertyManager *m_enumPropertyManager; + QtBoolPropertyManager *m_boolPropertyManager; + + QMap m_propertyToFamily; + QMap m_propertyToPointSize; + QMap m_propertyToBold; + QMap m_propertyToItalic; + QMap m_propertyToUnderline; + QMap m_propertyToStrikeOut; + QMap m_propertyToKerning; + + QMap m_familyToProperty; + QMap m_pointSizeToProperty; + QMap m_boldToProperty; + QMap m_italicToProperty; + QMap m_underlineToProperty; + QMap m_strikeOutToProperty; + QMap m_kerningToProperty; + + bool m_settingValue; + QTimer *m_fontDatabaseChangeTimer; +}; + +QtFontPropertyManagerPrivate::QtFontPropertyManagerPrivate() : + m_settingValue(false), + m_fontDatabaseChangeTimer(0) +{ +} + +void QtFontPropertyManagerPrivate::slotIntChanged(QtProperty *property, int value) +{ + if (m_settingValue) + return; + if (QtProperty *prop = m_pointSizeToProperty.value(property, 0)) { + QFont f = m_values[prop]; + f.setPointSize(value); + q_ptr->setValue(prop, f); + } +} + +void QtFontPropertyManagerPrivate::slotEnumChanged(QtProperty *property, int value) +{ + if (m_settingValue) + return; + if (QtProperty *prop = m_familyToProperty.value(property, 0)) { + QFont f = m_values[prop]; + f.setFamily(m_familyNames.at(value)); + q_ptr->setValue(prop, f); + } +} + +void QtFontPropertyManagerPrivate::slotBoolChanged(QtProperty *property, bool value) +{ + if (m_settingValue) + return; + if (QtProperty *prop = m_boldToProperty.value(property, 0)) { + QFont f = m_values[prop]; + f.setBold(value); + q_ptr->setValue(prop, f); + } else if (QtProperty *prop = m_italicToProperty.value(property, 0)) { + QFont f = m_values[prop]; + f.setItalic(value); + q_ptr->setValue(prop, f); + } else if (QtProperty *prop = m_underlineToProperty.value(property, 0)) { + QFont f = m_values[prop]; + f.setUnderline(value); + q_ptr->setValue(prop, f); + } else if (QtProperty *prop = m_strikeOutToProperty.value(property, 0)) { + QFont f = m_values[prop]; + f.setStrikeOut(value); + q_ptr->setValue(prop, f); + } else if (QtProperty *prop = m_kerningToProperty.value(property, 0)) { + QFont f = m_values[prop]; + f.setKerning(value); + q_ptr->setValue(prop, f); + } +} + +void QtFontPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) +{ + if (QtProperty *pointProp = m_pointSizeToProperty.value(property, 0)) { + m_propertyToPointSize[pointProp] = 0; + m_pointSizeToProperty.remove(property); + } else if (QtProperty *pointProp = m_familyToProperty.value(property, 0)) { + m_propertyToFamily[pointProp] = 0; + m_familyToProperty.remove(property); + } else if (QtProperty *pointProp = m_boldToProperty.value(property, 0)) { + m_propertyToBold[pointProp] = 0; + m_boldToProperty.remove(property); + } else if (QtProperty *pointProp = m_italicToProperty.value(property, 0)) { + m_propertyToItalic[pointProp] = 0; + m_italicToProperty.remove(property); + } else if (QtProperty *pointProp = m_underlineToProperty.value(property, 0)) { + m_propertyToUnderline[pointProp] = 0; + m_underlineToProperty.remove(property); + } else if (QtProperty *pointProp = m_strikeOutToProperty.value(property, 0)) { + m_propertyToStrikeOut[pointProp] = 0; + m_strikeOutToProperty.remove(property); + } else if (QtProperty *pointProp = m_kerningToProperty.value(property, 0)) { + m_propertyToKerning[pointProp] = 0; + m_kerningToProperty.remove(property); + } +} + +void QtFontPropertyManagerPrivate::slotFontDatabaseChanged() +{ + if (!m_fontDatabaseChangeTimer) { + m_fontDatabaseChangeTimer = new QTimer(q_ptr); + m_fontDatabaseChangeTimer->setInterval(0); + m_fontDatabaseChangeTimer->setSingleShot(true); + QObject::connect(m_fontDatabaseChangeTimer, SIGNAL(timeout()), q_ptr, SLOT(slotFontDatabaseDelayedChange())); + } + if (!m_fontDatabaseChangeTimer->isActive()) + m_fontDatabaseChangeTimer->start(); +} + +void QtFontPropertyManagerPrivate::slotFontDatabaseDelayedChange() +{ + typedef QMap PropertyPropertyMap; + // rescan available font names + const QStringList oldFamilies = m_familyNames; + m_familyNames = QFontDatabase::families(); + + // Adapt all existing properties + if (!m_propertyToFamily.isEmpty()) { + PropertyPropertyMap::const_iterator cend = m_propertyToFamily.constEnd(); + for (PropertyPropertyMap::const_iterator it = m_propertyToFamily.constBegin(); it != cend; ++it) { + QtProperty *familyProp = it.value(); + const int oldIdx = m_enumPropertyManager->value(familyProp); + int newIdx = m_familyNames.indexOf(oldFamilies.at(oldIdx)); + if (newIdx < 0) + newIdx = 0; + m_enumPropertyManager->setEnumNames(familyProp, m_familyNames); + m_enumPropertyManager->setValue(familyProp, newIdx); + } + } +} + +/*! + \class QtFontPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtFontPropertyManager provides and manages QFont properties. + + A font property has nested \e family, \e pointSize, \e bold, \e + italic, \e underline, \e strikeOut and \e kerning subproperties. The top-level + property's value can be retrieved using the value() function, and + set using the setValue() slot. + + The subproperties are created by QtIntPropertyManager, QtEnumPropertyManager and + QtBoolPropertyManager objects. These managers can be retrieved using the + corresponding subIntPropertyManager(), subEnumPropertyManager() and + subBoolPropertyManager() functions. In order to provide editing widgets + for the subproperties in a property browser widget, these managers + must be associated with editor factories. + + In addition, QtFontPropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes. + + \sa QtAbstractPropertyManager, QtEnumPropertyManager, QtIntPropertyManager, QtBoolPropertyManager +*/ + +/*! + \fn void QtFontPropertyManager::valueChanged(QtProperty *property, const QFont &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the + new \a value as parameters. + + \sa setValue() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtFontPropertyManager::QtFontPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtFontPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; + QObject::connect(qApp, SIGNAL(fontDatabaseChanged()), this, SLOT(slotFontDatabaseChanged())); + + d_ptr->m_intPropertyManager = new QtIntPropertyManager(this); + connect(d_ptr->m_intPropertyManager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotIntChanged(QtProperty*,int))); + d_ptr->m_enumPropertyManager = new QtEnumPropertyManager(this); + connect(d_ptr->m_enumPropertyManager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotEnumChanged(QtProperty*,int))); + d_ptr->m_boolPropertyManager = new QtBoolPropertyManager(this); + connect(d_ptr->m_boolPropertyManager, SIGNAL(valueChanged(QtProperty*,bool)), + this, SLOT(slotBoolChanged(QtProperty*,bool))); + + connect(d_ptr->m_intPropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); + connect(d_ptr->m_enumPropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); + connect(d_ptr->m_boolPropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtFontPropertyManager::~QtFontPropertyManager() +{ + clear(); +} + +/*! + Returns the manager that creates the \e pointSize subproperty. + + In order to provide editing widgets for the \e pointSize property + in a property browser widget, this manager must be associated + with an editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtIntPropertyManager *QtFontPropertyManager::subIntPropertyManager() const +{ + return d_ptr->m_intPropertyManager; +} + +/*! + Returns the manager that create the \e family subproperty. + + In order to provide editing widgets for the \e family property + in a property browser widget, this manager must be associated + with an editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtEnumPropertyManager *QtFontPropertyManager::subEnumPropertyManager() const +{ + return d_ptr->m_enumPropertyManager; +} + +/*! + Returns the manager that creates the \e bold, \e italic, \e underline, + \e strikeOut and \e kerning subproperties. + + In order to provide editing widgets for the mentioned properties + in a property browser widget, this manager must be associated with + an editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtBoolPropertyManager *QtFontPropertyManager::subBoolPropertyManager() const +{ + return d_ptr->m_boolPropertyManager; +} + +/*! + Returns the given \a property's value. + + If the given property is not managed by this manager, this + function returns a font object that uses the application's default + font. + + \sa setValue() +*/ +QFont QtFontPropertyManager::value(const QtProperty *property) const +{ + return d_ptr->m_values.value(property, QFont()); +} + +/*! + \reimp +*/ +QString QtFontPropertyManager::valueText(const QtProperty *property) const +{ + const QtFontPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + + return QtPropertyBrowserUtils::fontValueText(it.value()); +} + +/*! + \reimp +*/ +QIcon QtFontPropertyManager::valueIcon(const QtProperty *property) const +{ + const QtFontPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QIcon(); + + return QtPropertyBrowserUtils::fontValueIcon(it.value()); +} + +/*! + \fn void QtFontPropertyManager::setValue(QtProperty *property, const QFont &value) + + Sets the value of the given \a property to \a value. Nested + properties are updated automatically. + + \sa value(), valueChanged() +*/ +void QtFontPropertyManager::setValue(QtProperty *property, const QFont &val) +{ + const QtFontPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + const QFont oldVal = it.value(); + if (oldVal == val && oldVal.resolveMask() == val.resolveMask()) + return; + + it.value() = val; + + int idx = d_ptr->m_familyNames.indexOf(val.family()); + if (idx == -1) + idx = 0; + bool settingValue = d_ptr->m_settingValue; + d_ptr->m_settingValue = true; + d_ptr->m_enumPropertyManager->setValue(d_ptr->m_propertyToFamily[property], idx); + d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToPointSize[property], val.pointSize()); + d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToBold[property], val.bold()); + d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToItalic[property], val.italic()); + d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToUnderline[property], val.underline()); + d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToStrikeOut[property], val.strikeOut()); + d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToKerning[property], val.kerning()); + d_ptr->m_settingValue = settingValue; + + emit propertyChanged(property); + emit valueChanged(property, val); +} + +/*! + \reimp +*/ +void QtFontPropertyManager::initializeProperty(QtProperty *property) +{ + QFont val; + d_ptr->m_values[property] = val; + + QtProperty *familyProp = d_ptr->m_enumPropertyManager->addProperty(); + familyProp->setPropertyName(tr("Family")); + if (d_ptr->m_familyNames.isEmpty()) + d_ptr->m_familyNames = QFontDatabase::families(); + d_ptr->m_enumPropertyManager->setEnumNames(familyProp, d_ptr->m_familyNames); + int idx = d_ptr->m_familyNames.indexOf(val.family()); + if (idx == -1) + idx = 0; + d_ptr->m_enumPropertyManager->setValue(familyProp, idx); + d_ptr->m_propertyToFamily[property] = familyProp; + d_ptr->m_familyToProperty[familyProp] = property; + property->addSubProperty(familyProp); + + QtProperty *pointSizeProp = d_ptr->m_intPropertyManager->addProperty(); + pointSizeProp->setPropertyName(tr("Point Size")); + d_ptr->m_intPropertyManager->setValue(pointSizeProp, val.pointSize()); + d_ptr->m_intPropertyManager->setMinimum(pointSizeProp, 1); + d_ptr->m_propertyToPointSize[property] = pointSizeProp; + d_ptr->m_pointSizeToProperty[pointSizeProp] = property; + property->addSubProperty(pointSizeProp); + + QtProperty *boldProp = d_ptr->m_boolPropertyManager->addProperty(); + boldProp->setPropertyName(tr("Bold")); + d_ptr->m_boolPropertyManager->setValue(boldProp, val.bold()); + d_ptr->m_propertyToBold[property] = boldProp; + d_ptr->m_boldToProperty[boldProp] = property; + property->addSubProperty(boldProp); + + QtProperty *italicProp = d_ptr->m_boolPropertyManager->addProperty(); + italicProp->setPropertyName(tr("Italic")); + d_ptr->m_boolPropertyManager->setValue(italicProp, val.italic()); + d_ptr->m_propertyToItalic[property] = italicProp; + d_ptr->m_italicToProperty[italicProp] = property; + property->addSubProperty(italicProp); + + QtProperty *underlineProp = d_ptr->m_boolPropertyManager->addProperty(); + underlineProp->setPropertyName(tr("Underline")); + d_ptr->m_boolPropertyManager->setValue(underlineProp, val.underline()); + d_ptr->m_propertyToUnderline[property] = underlineProp; + d_ptr->m_underlineToProperty[underlineProp] = property; + property->addSubProperty(underlineProp); + + QtProperty *strikeOutProp = d_ptr->m_boolPropertyManager->addProperty(); + strikeOutProp->setPropertyName(tr("Strikeout")); + d_ptr->m_boolPropertyManager->setValue(strikeOutProp, val.strikeOut()); + d_ptr->m_propertyToStrikeOut[property] = strikeOutProp; + d_ptr->m_strikeOutToProperty[strikeOutProp] = property; + property->addSubProperty(strikeOutProp); + + QtProperty *kerningProp = d_ptr->m_boolPropertyManager->addProperty(); + kerningProp->setPropertyName(tr("Kerning")); + d_ptr->m_boolPropertyManager->setValue(kerningProp, val.kerning()); + d_ptr->m_propertyToKerning[property] = kerningProp; + d_ptr->m_kerningToProperty[kerningProp] = property; + property->addSubProperty(kerningProp); +} + +/*! + \reimp +*/ +void QtFontPropertyManager::uninitializeProperty(QtProperty *property) +{ + QtProperty *familyProp = d_ptr->m_propertyToFamily[property]; + if (familyProp) { + d_ptr->m_familyToProperty.remove(familyProp); + delete familyProp; + } + d_ptr->m_propertyToFamily.remove(property); + + QtProperty *pointSizeProp = d_ptr->m_propertyToPointSize[property]; + if (pointSizeProp) { + d_ptr->m_pointSizeToProperty.remove(pointSizeProp); + delete pointSizeProp; + } + d_ptr->m_propertyToPointSize.remove(property); + + QtProperty *boldProp = d_ptr->m_propertyToBold[property]; + if (boldProp) { + d_ptr->m_boldToProperty.remove(boldProp); + delete boldProp; + } + d_ptr->m_propertyToBold.remove(property); + + QtProperty *italicProp = d_ptr->m_propertyToItalic[property]; + if (italicProp) { + d_ptr->m_italicToProperty.remove(italicProp); + delete italicProp; + } + d_ptr->m_propertyToItalic.remove(property); + + QtProperty *underlineProp = d_ptr->m_propertyToUnderline[property]; + if (underlineProp) { + d_ptr->m_underlineToProperty.remove(underlineProp); + delete underlineProp; + } + d_ptr->m_propertyToUnderline.remove(property); + + QtProperty *strikeOutProp = d_ptr->m_propertyToStrikeOut[property]; + if (strikeOutProp) { + d_ptr->m_strikeOutToProperty.remove(strikeOutProp); + delete strikeOutProp; + } + d_ptr->m_propertyToStrikeOut.remove(property); + + QtProperty *kerningProp = d_ptr->m_propertyToKerning[property]; + if (kerningProp) { + d_ptr->m_kerningToProperty.remove(kerningProp); + delete kerningProp; + } + d_ptr->m_propertyToKerning.remove(property); + + d_ptr->m_values.remove(property); +} + +// QtColorPropertyManager + +class QtColorPropertyManagerPrivate +{ + QtColorPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtColorPropertyManager) +public: + + void slotIntChanged(QtProperty *property, int value); + void slotPropertyDestroyed(QtProperty *property); + + typedef QMap PropertyValueMap; + PropertyValueMap m_values; + + QtIntPropertyManager *m_intPropertyManager; + + QMap m_propertyToR; + QMap m_propertyToG; + QMap m_propertyToB; + QMap m_propertyToA; + + QMap m_rToProperty; + QMap m_gToProperty; + QMap m_bToProperty; + QMap m_aToProperty; +}; + +void QtColorPropertyManagerPrivate::slotIntChanged(QtProperty *property, int value) +{ + if (QtProperty *prop = m_rToProperty.value(property, 0)) { + QColor c = m_values[prop]; + c.setRed(value); + q_ptr->setValue(prop, c); + } else if (QtProperty *prop = m_gToProperty.value(property, 0)) { + QColor c = m_values[prop]; + c.setGreen(value); + q_ptr->setValue(prop, c); + } else if (QtProperty *prop = m_bToProperty.value(property, 0)) { + QColor c = m_values[prop]; + c.setBlue(value); + q_ptr->setValue(prop, c); + } else if (QtProperty *prop = m_aToProperty.value(property, 0)) { + QColor c = m_values[prop]; + c.setAlpha(value); + q_ptr->setValue(prop, c); + } +} + +void QtColorPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) +{ + if (QtProperty *pointProp = m_rToProperty.value(property, 0)) { + m_propertyToR[pointProp] = 0; + m_rToProperty.remove(property); + } else if (QtProperty *pointProp = m_gToProperty.value(property, 0)) { + m_propertyToG[pointProp] = 0; + m_gToProperty.remove(property); + } else if (QtProperty *pointProp = m_bToProperty.value(property, 0)) { + m_propertyToB[pointProp] = 0; + m_bToProperty.remove(property); + } else if (QtProperty *pointProp = m_aToProperty.value(property, 0)) { + m_propertyToA[pointProp] = 0; + m_aToProperty.remove(property); + } +} + +/*! + \class QtColorPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtColorPropertyManager provides and manages QColor properties. + + A color property has nested \e red, \e green and \e blue + subproperties. The top-level property's value can be retrieved + using the value() function, and set using the setValue() slot. + + The subproperties are created by a QtIntPropertyManager object. This + manager can be retrieved using the subIntPropertyManager() function. In + order to provide editing widgets for the subproperties in a + property browser widget, this manager must be associated with an + editor factory. + + In addition, QtColorPropertyManager provides the valueChanged() signal + which is emitted whenever a property created by this manager + changes. + + \sa QtAbstractPropertyManager, QtAbstractPropertyBrowser, QtIntPropertyManager +*/ + +/*! + \fn void QtColorPropertyManager::valueChanged(QtProperty *property, const QColor &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. + + \sa setValue() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtColorPropertyManager::QtColorPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtColorPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->m_intPropertyManager = new QtIntPropertyManager(this); + connect(d_ptr->m_intPropertyManager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotIntChanged(QtProperty*,int))); + + connect(d_ptr->m_intPropertyManager, SIGNAL(propertyDestroyed(QtProperty*)), + this, SLOT(slotPropertyDestroyed(QtProperty*))); +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtColorPropertyManager::~QtColorPropertyManager() +{ + clear(); +} + +/*! + Returns the manager that produces the nested \e red, \e green and + \e blue subproperties. + + In order to provide editing widgets for the subproperties in a + property browser widget, this manager must be associated with an + editor factory. + + \sa QtAbstractPropertyBrowser::setFactoryForManager() +*/ +QtIntPropertyManager *QtColorPropertyManager::subIntPropertyManager() const +{ + return d_ptr->m_intPropertyManager; +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by \e this manager, this + function returns an invalid color. + + \sa setValue() +*/ +QColor QtColorPropertyManager::value(const QtProperty *property) const +{ + return d_ptr->m_values.value(property, QColor()); +} + +/*! + \reimp +*/ + +QString QtColorPropertyManager::valueText(const QtProperty *property) const +{ + const QtColorPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + + return QtPropertyBrowserUtils::colorValueText(it.value()); +} + +/*! + \reimp +*/ + +QIcon QtColorPropertyManager::valueIcon(const QtProperty *property) const +{ + const QtColorPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QIcon(); + return QtPropertyBrowserUtils::brushValueIcon(QBrush(it.value())); +} + +/*! + \fn void QtColorPropertyManager::setValue(QtProperty *property, const QColor &value) + + Sets the value of the given \a property to \a value. Nested + properties are updated automatically. + + \sa value(), valueChanged() +*/ +void QtColorPropertyManager::setValue(QtProperty *property, const QColor &val) +{ + const QtColorPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + if (it.value() == val) + return; + + it.value() = val; + + d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToR[property], val.red()); + d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToG[property], val.green()); + d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToB[property], val.blue()); + d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToA[property], val.alpha()); + + emit propertyChanged(property); + emit valueChanged(property, val); +} + +/*! + \reimp +*/ +void QtColorPropertyManager::initializeProperty(QtProperty *property) +{ + QColor val; + d_ptr->m_values[property] = val; + + QtProperty *rProp = d_ptr->m_intPropertyManager->addProperty(); + rProp->setPropertyName(tr("Red")); + d_ptr->m_intPropertyManager->setValue(rProp, val.red()); + d_ptr->m_intPropertyManager->setRange(rProp, 0, 0xFF); + d_ptr->m_propertyToR[property] = rProp; + d_ptr->m_rToProperty[rProp] = property; + property->addSubProperty(rProp); + + QtProperty *gProp = d_ptr->m_intPropertyManager->addProperty(); + gProp->setPropertyName(tr("Green")); + d_ptr->m_intPropertyManager->setValue(gProp, val.green()); + d_ptr->m_intPropertyManager->setRange(gProp, 0, 0xFF); + d_ptr->m_propertyToG[property] = gProp; + d_ptr->m_gToProperty[gProp] = property; + property->addSubProperty(gProp); + + QtProperty *bProp = d_ptr->m_intPropertyManager->addProperty(); + bProp->setPropertyName(tr("Blue")); + d_ptr->m_intPropertyManager->setValue(bProp, val.blue()); + d_ptr->m_intPropertyManager->setRange(bProp, 0, 0xFF); + d_ptr->m_propertyToB[property] = bProp; + d_ptr->m_bToProperty[bProp] = property; + property->addSubProperty(bProp); + + QtProperty *aProp = d_ptr->m_intPropertyManager->addProperty(); + aProp->setPropertyName(tr("Alpha")); + d_ptr->m_intPropertyManager->setValue(aProp, val.alpha()); + d_ptr->m_intPropertyManager->setRange(aProp, 0, 0xFF); + d_ptr->m_propertyToA[property] = aProp; + d_ptr->m_aToProperty[aProp] = property; + property->addSubProperty(aProp); +} + +/*! + \reimp +*/ +void QtColorPropertyManager::uninitializeProperty(QtProperty *property) +{ + QtProperty *rProp = d_ptr->m_propertyToR[property]; + if (rProp) { + d_ptr->m_rToProperty.remove(rProp); + delete rProp; + } + d_ptr->m_propertyToR.remove(property); + + QtProperty *gProp = d_ptr->m_propertyToG[property]; + if (gProp) { + d_ptr->m_gToProperty.remove(gProp); + delete gProp; + } + d_ptr->m_propertyToG.remove(property); + + QtProperty *bProp = d_ptr->m_propertyToB[property]; + if (bProp) { + d_ptr->m_bToProperty.remove(bProp); + delete bProp; + } + d_ptr->m_propertyToB.remove(property); + + QtProperty *aProp = d_ptr->m_propertyToA[property]; + if (aProp) { + d_ptr->m_aToProperty.remove(aProp); + delete aProp; + } + d_ptr->m_propertyToA.remove(property); + + d_ptr->m_values.remove(property); +} + +// QtCursorPropertyManager + +// Make sure icons are removed as soon as QApplication is destroyed, otherwise, +// handles are leaked on X11. +static void clearCursorDatabase(); +namespace { +struct CursorDatabase : public QtCursorDatabase +{ + CursorDatabase() + { + qAddPostRoutine(clearCursorDatabase); + } +}; +} +Q_GLOBAL_STATIC(QtCursorDatabase, cursorDatabase) + +static void clearCursorDatabase() +{ + cursorDatabase()->clear(); +} + +class QtCursorPropertyManagerPrivate +{ + QtCursorPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtCursorPropertyManager) +public: + typedef QMap PropertyValueMap; + PropertyValueMap m_values; +}; + +/*! + \class QtCursorPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtCursorPropertyManager provides and manages QCursor properties. + + A cursor property has a current value which can be + retrieved using the value() function, and set using the setValue() + slot. In addition, QtCursorPropertyManager provides the + valueChanged() signal which is emitted whenever a property created + by this manager changes. + + \sa QtAbstractPropertyManager +*/ + +/*! + \fn void QtCursorPropertyManager::valueChanged(QtProperty *property, const QCursor &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the new + \a value as parameters. + + \sa setValue() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtCursorPropertyManager::QtCursorPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtCursorPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtCursorPropertyManager::~QtCursorPropertyManager() +{ + clear(); +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by this manager, this + function returns a default QCursor object. + + \sa setValue() +*/ +#ifndef QT_NO_CURSOR +QCursor QtCursorPropertyManager::value(const QtProperty *property) const +{ + return d_ptr->m_values.value(property, QCursor()); +} +#endif + +/*! + \reimp +*/ +QString QtCursorPropertyManager::valueText(const QtProperty *property) const +{ + const QtCursorPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QString(); + + return cursorDatabase()->cursorToShapeName(it.value()); +} + +/*! + \reimp +*/ +QIcon QtCursorPropertyManager::valueIcon(const QtProperty *property) const +{ + const QtCursorPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); + if (it == d_ptr->m_values.constEnd()) + return QIcon(); + + return cursorDatabase()->cursorToShapeIcon(it.value()); +} + +/*! + \fn void QtCursorPropertyManager::setValue(QtProperty *property, const QCursor &value) + + Sets the value of the given \a property to \a value. + + \sa value(), valueChanged() +*/ +void QtCursorPropertyManager::setValue(QtProperty *property, const QCursor &value) +{ +#ifndef QT_NO_CURSOR + const QtCursorPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); + if (it == d_ptr->m_values.end()) + return; + + if (it.value().shape() == value.shape() && value.shape() != Qt::BitmapCursor) + return; + + it.value() = value; + + emit propertyChanged(property); + emit valueChanged(property, value); +#endif +} + +/*! + \reimp +*/ +void QtCursorPropertyManager::initializeProperty(QtProperty *property) +{ +#ifndef QT_NO_CURSOR + d_ptr->m_values[property] = QCursor(); +#endif +} + +/*! + \reimp +*/ +void QtCursorPropertyManager::uninitializeProperty(QtProperty *property) +{ + d_ptr->m_values.remove(property); +} + +QT_END_NAMESPACE + +#include "moc_qtpropertymanager.cpp" +#include "qtpropertymanager.moc" diff --git a/src/shared/qtpropertybrowser/qtpropertymanager.h b/src/shared/qtpropertybrowser/qtpropertymanager.h new file mode 100644 index 0000000..6522d96 --- /dev/null +++ b/src/shared/qtpropertybrowser/qtpropertymanager.h @@ -0,0 +1,709 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTPROPERTYMANAGER_H +#define QTPROPERTYMANAGER_H + +#include "qtpropertybrowser.h" + +QT_BEGIN_NAMESPACE + +class QDate; +class QTime; +class QDateTime; +class QLocale; +class QRegularExpression; + +class QtGroupPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtGroupPropertyManager(QObject *parent = 0); + ~QtGroupPropertyManager(); + +protected: + bool hasValue(const QtProperty *property) const override; + + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +}; + +class QtIntPropertyManagerPrivate; + +class QtIntPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtIntPropertyManager(QObject *parent = 0); + ~QtIntPropertyManager(); + + int value(const QtProperty *property) const; + int minimum(const QtProperty *property) const; + int maximum(const QtProperty *property) const; + int singleStep(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, int val); + void setMinimum(QtProperty *property, int minVal); + void setMaximum(QtProperty *property, int maxVal); + void setRange(QtProperty *property, int minVal, int maxVal); + void setSingleStep(QtProperty *property, int step); +Q_SIGNALS: + void valueChanged(QtProperty *property, int val); + void rangeChanged(QtProperty *property, int minVal, int maxVal); + void singleStepChanged(QtProperty *property, int step); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtIntPropertyManager) + Q_DISABLE_COPY_MOVE(QtIntPropertyManager) +}; + +class QtBoolPropertyManagerPrivate; + +class QtBoolPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtBoolPropertyManager(QObject *parent = 0); + ~QtBoolPropertyManager(); + + bool value(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, bool val); +Q_SIGNALS: + void valueChanged(QtProperty *property, bool val); +protected: + QString valueText(const QtProperty *property) const override; + QIcon valueIcon(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtBoolPropertyManager) + Q_DISABLE_COPY_MOVE(QtBoolPropertyManager) +}; + +class QtDoublePropertyManagerPrivate; + +class QtDoublePropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtDoublePropertyManager(QObject *parent = 0); + ~QtDoublePropertyManager(); + + double value(const QtProperty *property) const; + double minimum(const QtProperty *property) const; + double maximum(const QtProperty *property) const; + double singleStep(const QtProperty *property) const; + int decimals(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, double val); + void setMinimum(QtProperty *property, double minVal); + void setMaximum(QtProperty *property, double maxVal); + void setRange(QtProperty *property, double minVal, double maxVal); + void setSingleStep(QtProperty *property, double step); + void setDecimals(QtProperty *property, int prec); +Q_SIGNALS: + void valueChanged(QtProperty *property, double val); + void rangeChanged(QtProperty *property, double minVal, double maxVal); + void singleStepChanged(QtProperty *property, double step); + void decimalsChanged(QtProperty *property, int prec); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtDoublePropertyManager) + Q_DISABLE_COPY_MOVE(QtDoublePropertyManager) +}; + +class QtStringPropertyManagerPrivate; + +class QtStringPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtStringPropertyManager(QObject *parent = 0); + ~QtStringPropertyManager(); + + QString value(const QtProperty *property) const; + QRegularExpression regExp(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QString &val); + void setRegExp(QtProperty *property, const QRegularExpression ®Exp); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QString &val); + void regExpChanged(QtProperty *property, const QRegularExpression ®Exp); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtStringPropertyManager) + Q_DISABLE_COPY_MOVE(QtStringPropertyManager) +}; + +class QtDatePropertyManagerPrivate; + +class QtDatePropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtDatePropertyManager(QObject *parent = 0); + ~QtDatePropertyManager(); + + QDate value(const QtProperty *property) const; + QDate minimum(const QtProperty *property) const; + QDate maximum(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, QDate val); + void setMinimum(QtProperty *property, QDate minVal); + void setMaximum(QtProperty *property, QDate maxVal); + void setRange(QtProperty *property, QDate minVal, QDate maxVal); +Q_SIGNALS: + void valueChanged(QtProperty *property, QDate val); + void rangeChanged(QtProperty *property, QDate minVal, QDate maxVal); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtDatePropertyManager) + Q_DISABLE_COPY_MOVE(QtDatePropertyManager) +}; + +class QtTimePropertyManagerPrivate; + +class QtTimePropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtTimePropertyManager(QObject *parent = 0); + ~QtTimePropertyManager(); + + QTime value(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, QTime val); +Q_SIGNALS: + void valueChanged(QtProperty *property, QTime val); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtTimePropertyManager) + Q_DISABLE_COPY_MOVE(QtTimePropertyManager) +}; + +class QtDateTimePropertyManagerPrivate; + +class QtDateTimePropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtDateTimePropertyManager(QObject *parent = 0); + ~QtDateTimePropertyManager(); + + QDateTime value(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QDateTime &val); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QDateTime &val); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtDateTimePropertyManager) + Q_DISABLE_COPY_MOVE(QtDateTimePropertyManager) +}; + +class QtKeySequencePropertyManagerPrivate; + +class QtKeySequencePropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtKeySequencePropertyManager(QObject *parent = 0); + ~QtKeySequencePropertyManager(); + + QKeySequence value(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QKeySequence &val); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QKeySequence &val); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtKeySequencePropertyManager) + Q_DISABLE_COPY_MOVE(QtKeySequencePropertyManager) +}; + +class QtCharPropertyManagerPrivate; + +class QtCharPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtCharPropertyManager(QObject *parent = 0); + ~QtCharPropertyManager(); + + QChar value(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QChar &val); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QChar &val); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtCharPropertyManager) + Q_DISABLE_COPY_MOVE(QtCharPropertyManager) +}; + +class QtEnumPropertyManager; +class QtLocalePropertyManagerPrivate; + +class QtLocalePropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtLocalePropertyManager(QObject *parent = 0); + ~QtLocalePropertyManager(); + + QtEnumPropertyManager *subEnumPropertyManager() const; + + QLocale value(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QLocale &val); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QLocale &val); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtLocalePropertyManager) + Q_DISABLE_COPY_MOVE(QtLocalePropertyManager) + Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) +}; + +class QtPointPropertyManagerPrivate; + +class QtPointPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtPointPropertyManager(QObject *parent = 0); + ~QtPointPropertyManager(); + + QtIntPropertyManager *subIntPropertyManager() const; + + QPoint value(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QPoint &val); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QPoint &val); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtPointPropertyManager) + Q_DISABLE_COPY_MOVE(QtPointPropertyManager) + Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) +}; + +class QtPointFPropertyManagerPrivate; + +class QtPointFPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtPointFPropertyManager(QObject *parent = 0); + ~QtPointFPropertyManager(); + + QtDoublePropertyManager *subDoublePropertyManager() const; + + QPointF value(const QtProperty *property) const; + int decimals(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QPointF &val); + void setDecimals(QtProperty *property, int prec); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QPointF &val); + void decimalsChanged(QtProperty *property, int prec); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtPointFPropertyManager) + Q_DISABLE_COPY_MOVE(QtPointFPropertyManager) + Q_PRIVATE_SLOT(d_func(), void slotDoubleChanged(QtProperty *, double)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) +}; + +class QtSizePropertyManagerPrivate; + +class QtSizePropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtSizePropertyManager(QObject *parent = 0); + ~QtSizePropertyManager(); + + QtIntPropertyManager *subIntPropertyManager() const; + + QSize value(const QtProperty *property) const; + QSize minimum(const QtProperty *property) const; + QSize maximum(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QSize &val); + void setMinimum(QtProperty *property, const QSize &minVal); + void setMaximum(QtProperty *property, const QSize &maxVal); + void setRange(QtProperty *property, const QSize &minVal, const QSize &maxVal); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QSize &val); + void rangeChanged(QtProperty *property, const QSize &minVal, const QSize &maxVal); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtSizePropertyManager) + Q_DISABLE_COPY_MOVE(QtSizePropertyManager) + Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) +}; + +class QtSizeFPropertyManagerPrivate; + +class QtSizeFPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtSizeFPropertyManager(QObject *parent = 0); + ~QtSizeFPropertyManager(); + + QtDoublePropertyManager *subDoublePropertyManager() const; + + QSizeF value(const QtProperty *property) const; + QSizeF minimum(const QtProperty *property) const; + QSizeF maximum(const QtProperty *property) const; + int decimals(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QSizeF &val); + void setMinimum(QtProperty *property, const QSizeF &minVal); + void setMaximum(QtProperty *property, const QSizeF &maxVal); + void setRange(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal); + void setDecimals(QtProperty *property, int prec); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QSizeF &val); + void rangeChanged(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal); + void decimalsChanged(QtProperty *property, int prec); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtSizeFPropertyManager) + Q_DISABLE_COPY_MOVE(QtSizeFPropertyManager) + Q_PRIVATE_SLOT(d_func(), void slotDoubleChanged(QtProperty *, double)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) +}; + +class QtRectPropertyManagerPrivate; + +class QtRectPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtRectPropertyManager(QObject *parent = 0); + ~QtRectPropertyManager(); + + QtIntPropertyManager *subIntPropertyManager() const; + + QRect value(const QtProperty *property) const; + QRect constraint(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QRect &val); + void setConstraint(QtProperty *property, const QRect &constraint); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QRect &val); + void constraintChanged(QtProperty *property, const QRect &constraint); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtRectPropertyManager) + Q_DISABLE_COPY_MOVE(QtRectPropertyManager) + Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) +}; + +class QtRectFPropertyManagerPrivate; + +class QtRectFPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtRectFPropertyManager(QObject *parent = 0); + ~QtRectFPropertyManager(); + + QtDoublePropertyManager *subDoublePropertyManager() const; + + QRectF value(const QtProperty *property) const; + QRectF constraint(const QtProperty *property) const; + int decimals(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QRectF &val); + void setConstraint(QtProperty *property, const QRectF &constraint); + void setDecimals(QtProperty *property, int prec); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QRectF &val); + void constraintChanged(QtProperty *property, const QRectF &constraint); + void decimalsChanged(QtProperty *property, int prec); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtRectFPropertyManager) + Q_DISABLE_COPY_MOVE(QtRectFPropertyManager) + Q_PRIVATE_SLOT(d_func(), void slotDoubleChanged(QtProperty *, double)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) +}; + +class QtEnumPropertyManagerPrivate; + +class QtEnumPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtEnumPropertyManager(QObject *parent = 0); + ~QtEnumPropertyManager(); + + int value(const QtProperty *property) const; + QStringList enumNames(const QtProperty *property) const; + QMap enumIcons(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, int val); + void setEnumNames(QtProperty *property, const QStringList &names); + void setEnumIcons(QtProperty *property, const QMap &icons); +Q_SIGNALS: + void valueChanged(QtProperty *property, int val); + void enumNamesChanged(QtProperty *property, const QStringList &names); + void enumIconsChanged(QtProperty *property, const QMap &icons); +protected: + QString valueText(const QtProperty *property) const override; + QIcon valueIcon(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtEnumPropertyManager) + Q_DISABLE_COPY_MOVE(QtEnumPropertyManager) +}; + +class QtFlagPropertyManagerPrivate; + +class QtFlagPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtFlagPropertyManager(QObject *parent = 0); + ~QtFlagPropertyManager(); + + QtBoolPropertyManager *subBoolPropertyManager() const; + + int value(const QtProperty *property) const; + QStringList flagNames(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, int val); + void setFlagNames(QtProperty *property, const QStringList &names); +Q_SIGNALS: + void valueChanged(QtProperty *property, int val); + void flagNamesChanged(QtProperty *property, const QStringList &names); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtFlagPropertyManager) + Q_DISABLE_COPY_MOVE(QtFlagPropertyManager) + Q_PRIVATE_SLOT(d_func(), void slotBoolChanged(QtProperty *, bool)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) +}; + +class QtSizePolicyPropertyManagerPrivate; + +class QtSizePolicyPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtSizePolicyPropertyManager(QObject *parent = 0); + ~QtSizePolicyPropertyManager(); + + QtIntPropertyManager *subIntPropertyManager() const; + QtEnumPropertyManager *subEnumPropertyManager() const; + + QSizePolicy value(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QSizePolicy &val); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QSizePolicy &val); +protected: + QString valueText(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtSizePolicyPropertyManager) + Q_DISABLE_COPY_MOVE(QtSizePolicyPropertyManager) + Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) +}; + +class QtFontPropertyManagerPrivate; + +class QtFontPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtFontPropertyManager(QObject *parent = 0); + ~QtFontPropertyManager(); + + QtIntPropertyManager *subIntPropertyManager() const; + QtEnumPropertyManager *subEnumPropertyManager() const; + QtBoolPropertyManager *subBoolPropertyManager() const; + + QFont value(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QFont &val); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QFont &val); +protected: + QString valueText(const QtProperty *property) const override; + QIcon valueIcon(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtFontPropertyManager) + Q_DISABLE_COPY_MOVE(QtFontPropertyManager) + Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotBoolChanged(QtProperty *, bool)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) + Q_PRIVATE_SLOT(d_func(), void slotFontDatabaseChanged()) + Q_PRIVATE_SLOT(d_func(), void slotFontDatabaseDelayedChange()) +}; + +class QtColorPropertyManagerPrivate; + +class QtColorPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtColorPropertyManager(QObject *parent = 0); + ~QtColorPropertyManager(); + + QtIntPropertyManager *subIntPropertyManager() const; + + QColor value(const QtProperty *property) const; + +public Q_SLOTS: + void setValue(QtProperty *property, const QColor &val); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QColor &val); +protected: + QString valueText(const QtProperty *property) const override; + QIcon valueIcon(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtColorPropertyManager) + Q_DISABLE_COPY_MOVE(QtColorPropertyManager) + Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) +}; + +class QtCursorPropertyManagerPrivate; + +class QtCursorPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtCursorPropertyManager(QObject *parent = 0); + ~QtCursorPropertyManager(); + +#ifndef QT_NO_CURSOR + QCursor value(const QtProperty *property) const; +#endif + +public Q_SLOTS: + void setValue(QtProperty *property, const QCursor &val); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QCursor &val); +protected: + QString valueText(const QtProperty *property) const override; + QIcon valueIcon(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtCursorPropertyManager) + Q_DISABLE_COPY_MOVE(QtCursorPropertyManager) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtpropertybrowser/qttreepropertybrowser.cpp b/src/shared/qtpropertybrowser/qttreepropertybrowser.cpp new file mode 100644 index 0000000..1a867ee --- /dev/null +++ b/src/shared/qtpropertybrowser/qttreepropertybrowser.cpp @@ -0,0 +1,1002 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qttreepropertybrowser.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QtPropertyEditorView; + +class QtTreePropertyBrowserPrivate +{ + QtTreePropertyBrowser *q_ptr; + Q_DECLARE_PUBLIC(QtTreePropertyBrowser) + +public: + QtTreePropertyBrowserPrivate(); + void init(QWidget *parent); + + void propertyInserted(QtBrowserItem *index, QtBrowserItem *afterIndex); + void propertyRemoved(QtBrowserItem *index); + void propertyChanged(QtBrowserItem *index); + QWidget *createEditor(QtProperty *property, QWidget *parent) const + { return q_ptr->createEditor(property, parent); } + QtProperty *indexToProperty(const QModelIndex &index) const; + QTreeWidgetItem *indexToItem(const QModelIndex &index) const; + QtBrowserItem *indexToBrowserItem(const QModelIndex &index) const; + bool lastColumn(int column) const; + void disableItem(QTreeWidgetItem *item) const; + void enableItem(QTreeWidgetItem *item) const; + bool hasValue(QTreeWidgetItem *item) const; + + void slotCollapsed(const QModelIndex &index); + void slotExpanded(const QModelIndex &index); + + QColor calculatedBackgroundColor(QtBrowserItem *item) const; + + QtPropertyEditorView *treeWidget() const { return m_treeWidget; } + bool markPropertiesWithoutValue() const { return m_markPropertiesWithoutValue; } + + QtBrowserItem *currentItem() const; + void setCurrentItem(QtBrowserItem *browserItem, bool block); + void editItem(QtBrowserItem *browserItem); + + void slotCurrentBrowserItemChanged(QtBrowserItem *item); + void slotCurrentTreeItemChanged(QTreeWidgetItem *newItem, QTreeWidgetItem *); + + QTreeWidgetItem *editedItem() const; + +private: + void updateItem(QTreeWidgetItem *item); + + QMap m_indexToItem; + QMap m_itemToIndex; + + QMap m_indexToBackgroundColor; + + QtPropertyEditorView *m_treeWidget; + + bool m_headerVisible; + QtTreePropertyBrowser::ResizeMode m_resizeMode; + class QtPropertyEditorDelegate *m_delegate; + bool m_markPropertiesWithoutValue; + bool m_browserChangedBlocked; + QIcon m_expandIcon; +}; + +// ------------ QtPropertyEditorView +class QtPropertyEditorView : public QTreeWidget +{ + Q_OBJECT +public: + QtPropertyEditorView(QWidget *parent = 0); + + void setEditorPrivate(QtTreePropertyBrowserPrivate *editorPrivate) + { m_editorPrivate = editorPrivate; } + + QTreeWidgetItem *indexToItem(const QModelIndex &index) const + { return itemFromIndex(index); } + +protected: + void keyPressEvent(QKeyEvent *event) override; + void mousePressEvent(QMouseEvent *event) override; + void drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override; + +private: + QtTreePropertyBrowserPrivate *m_editorPrivate; +}; + +QtPropertyEditorView::QtPropertyEditorView(QWidget *parent) : + QTreeWidget(parent), + m_editorPrivate(0) +{ + connect(header(), SIGNAL(sectionDoubleClicked(int)), this, SLOT(resizeColumnToContents(int))); +} + +void QtPropertyEditorView::drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const +{ + QStyleOptionViewItem opt = option; + bool hasValue = true; + if (m_editorPrivate) { + QtProperty *property = m_editorPrivate->indexToProperty(index); + if (property) + hasValue = property->hasValue(); + } + if (!hasValue && m_editorPrivate->markPropertiesWithoutValue()) { + const QColor c = option.palette.color(QPalette::Dark); + painter->fillRect(option.rect, c); + opt.palette.setColor(QPalette::AlternateBase, c); + } else { + const QColor c = m_editorPrivate->calculatedBackgroundColor(m_editorPrivate->indexToBrowserItem(index)); + if (c.isValid()) { + painter->fillRect(option.rect, c); + opt.palette.setColor(QPalette::AlternateBase, c.lighter(112)); + } + } + QTreeWidget::drawRow(painter, opt, index); + QColor color = static_cast(QApplication::style()->styleHint(QStyle::SH_Table_GridLineColor, &opt)); + painter->save(); + painter->setPen(QPen(color)); + painter->drawLine(opt.rect.x(), opt.rect.bottom(), opt.rect.right(), opt.rect.bottom()); + painter->restore(); +} + +void QtPropertyEditorView::keyPressEvent(QKeyEvent *event) +{ + switch (event->key()) { + case Qt::Key_Return: + case Qt::Key_Enter: + case Qt::Key_Space: // Trigger Edit + if (!m_editorPrivate->editedItem()) + if (const QTreeWidgetItem *item = currentItem()) + if (item->columnCount() >= 2 && ((item->flags() & (Qt::ItemIsEditable | Qt::ItemIsEnabled)) == (Qt::ItemIsEditable | Qt::ItemIsEnabled))) { + event->accept(); + // If the current position is at column 0, move to 1. + QModelIndex index = currentIndex(); + if (index.column() == 0) { + index = index.sibling(index.row(), 1); + setCurrentIndex(index); + } + edit(index); + return; + } + break; + default: + break; + } + QTreeWidget::keyPressEvent(event); +} + +void QtPropertyEditorView::mousePressEvent(QMouseEvent *event) +{ + QTreeWidget::mousePressEvent(event); + QTreeWidgetItem *item = itemAt(event->position().toPoint()); + + if (item) { + if ((item != m_editorPrivate->editedItem()) && (event->button() == Qt::LeftButton) + && (header()->logicalIndexAt(event->position().toPoint().x()) == 1) + && ((item->flags() & (Qt::ItemIsEditable | Qt::ItemIsEnabled)) == (Qt::ItemIsEditable | Qt::ItemIsEnabled))) { + editItem(item, 1); + } else if (!m_editorPrivate->hasValue(item) && m_editorPrivate->markPropertiesWithoutValue() && !rootIsDecorated()) { + if (event->position().toPoint().x() + header()->offset() < 20) + item->setExpanded(!item->isExpanded()); + } + } +} + +// ------------ QtPropertyEditorDelegate +class QtPropertyEditorDelegate : public QItemDelegate +{ + Q_OBJECT +public: + QtPropertyEditorDelegate(QObject *parent = 0) + : QItemDelegate(parent), m_editorPrivate(0), m_editedItem(0), m_editedWidget(0) + {} + + void setEditorPrivate(QtTreePropertyBrowserPrivate *editorPrivate) + { m_editorPrivate = editorPrivate; } + + QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, + const QModelIndex &index) const override; + + void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, + const QModelIndex &index) const override; + + void paint(QPainter *painter, const QStyleOptionViewItem &option, + const QModelIndex &index) const override; + + QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override; + + void setModelData(QWidget *, QAbstractItemModel *, + const QModelIndex &) const override {} + + void setEditorData(QWidget *, const QModelIndex &) const override {} + + bool eventFilter(QObject *object, QEvent *event) override; + void closeEditor(QtProperty *property); + + QTreeWidgetItem *editedItem() const { return m_editedItem; } + +private slots: + void slotEditorDestroyed(QObject *object); + +private: + int indentation(const QModelIndex &index) const; + + typedef QMap EditorToPropertyMap; + mutable EditorToPropertyMap m_editorToProperty; + + typedef QMap PropertyToEditorMap; + mutable PropertyToEditorMap m_propertyToEditor; + QtTreePropertyBrowserPrivate *m_editorPrivate; + mutable QTreeWidgetItem *m_editedItem; + mutable QWidget *m_editedWidget; +}; + +int QtPropertyEditorDelegate::indentation(const QModelIndex &index) const +{ + if (!m_editorPrivate) + return 0; + + QTreeWidgetItem *item = m_editorPrivate->indexToItem(index); + int indent = 0; + while (item->parent()) { + item = item->parent(); + ++indent; + } + if (m_editorPrivate->treeWidget()->rootIsDecorated()) + ++indent; + return indent * m_editorPrivate->treeWidget()->indentation(); +} + +void QtPropertyEditorDelegate::slotEditorDestroyed(QObject *object) +{ + if (QWidget *w = qobject_cast(object)) { + const EditorToPropertyMap::iterator it = m_editorToProperty.find(w); + if (it != m_editorToProperty.end()) { + m_propertyToEditor.remove(it.value()); + m_editorToProperty.erase(it); + } + if (m_editedWidget == w) { + m_editedWidget = 0; + m_editedItem = 0; + } + } +} + +void QtPropertyEditorDelegate::closeEditor(QtProperty *property) +{ + if (QWidget *w = m_propertyToEditor.value(property, 0)) + w->deleteLater(); +} + +QWidget *QtPropertyEditorDelegate::createEditor(QWidget *parent, + const QStyleOptionViewItem &, const QModelIndex &index) const +{ + if (index.column() == 1 && m_editorPrivate) { + QtProperty *property = m_editorPrivate->indexToProperty(index); + QTreeWidgetItem *item = m_editorPrivate->indexToItem(index); + if (property && item && (item->flags() & Qt::ItemIsEnabled)) { + QWidget *editor = m_editorPrivate->createEditor(property, parent); + if (editor) { + editor->setAutoFillBackground(true); + editor->installEventFilter(const_cast(this)); + connect(editor, SIGNAL(destroyed(QObject*)), this, SLOT(slotEditorDestroyed(QObject*))); + m_propertyToEditor[property] = editor; + m_editorToProperty[editor] = property; + m_editedItem = item; + m_editedWidget = editor; + } + return editor; + } + } + return 0; +} + +void QtPropertyEditorDelegate::updateEditorGeometry(QWidget *editor, + const QStyleOptionViewItem &option, const QModelIndex &index) const +{ + Q_UNUSED(index); + editor->setGeometry(option.rect.adjusted(0, 0, 0, -1)); +} + +void QtPropertyEditorDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, + const QModelIndex &index) const +{ + bool hasValue = true; + if (m_editorPrivate) { + QtProperty *property = m_editorPrivate->indexToProperty(index); + if (property) + hasValue = property->hasValue(); + } + QStyleOptionViewItem opt = option; + if ((m_editorPrivate && index.column() == 0) || !hasValue) { + QtProperty *property = m_editorPrivate->indexToProperty(index); + if (property && property->isModified()) { + opt.font.setBold(true); + opt.fontMetrics = QFontMetrics(opt.font); + } + } + QColor c; + if (!hasValue && m_editorPrivate->markPropertiesWithoutValue()) { + c = opt.palette.color(QPalette::Dark); + opt.palette.setColor(QPalette::Text, opt.palette.color(QPalette::BrightText)); + } else { + c = m_editorPrivate->calculatedBackgroundColor(m_editorPrivate->indexToBrowserItem(index)); + if (c.isValid() && (opt.features & QStyleOptionViewItem::Alternate)) + c = c.lighter(112); + } + if (c.isValid()) + painter->fillRect(option.rect, c); + opt.state &= ~QStyle::State_HasFocus; + QItemDelegate::paint(painter, opt, index); + + opt.palette.setCurrentColorGroup(QPalette::Active); + QColor color = static_cast(QApplication::style()->styleHint(QStyle::SH_Table_GridLineColor, &opt)); + painter->save(); + painter->setPen(QPen(color)); + if (!m_editorPrivate || (!m_editorPrivate->lastColumn(index.column()) && hasValue)) { + int right = (option.direction == Qt::LeftToRight) ? option.rect.right() : option.rect.left(); + painter->drawLine(right, option.rect.y(), right, option.rect.bottom()); + } + painter->restore(); +} + +QSize QtPropertyEditorDelegate::sizeHint(const QStyleOptionViewItem &option, + const QModelIndex &index) const +{ + return QItemDelegate::sizeHint(option, index) + QSize(3, 4); +} + +bool QtPropertyEditorDelegate::eventFilter(QObject *object, QEvent *event) +{ + if (event->type() == QEvent::FocusOut) { + QFocusEvent *fe = static_cast(event); + if (fe->reason() == Qt::ActiveWindowFocusReason) + return false; + } + return QItemDelegate::eventFilter(object, event); +} + +// -------- QtTreePropertyBrowserPrivate implementation +QtTreePropertyBrowserPrivate::QtTreePropertyBrowserPrivate() : + m_treeWidget(0), + m_headerVisible(true), + m_resizeMode(QtTreePropertyBrowser::Stretch), + m_delegate(0), + m_markPropertiesWithoutValue(false), + m_browserChangedBlocked(false) +{ +} + +// Draw an icon indicating opened/closing branches +static QIcon drawIndicatorIcon(const QPalette &palette, QStyle *style) +{ + QPixmap pix(14, 14); + pix.fill(Qt::transparent); + QStyleOption branchOption; + branchOption.rect = QRect(2, 2, 9, 9); // ### hardcoded in qcommonstyle.cpp + branchOption.palette = palette; + branchOption.state = QStyle::State_Children; + + QPainter p; + // Draw closed state + p.begin(&pix); + style->drawPrimitive(QStyle::PE_IndicatorBranch, &branchOption, &p); + p.end(); + QIcon rc = pix; + rc.addPixmap(pix, QIcon::Selected, QIcon::Off); + // Draw opened state + branchOption.state |= QStyle::State_Open; + pix.fill(Qt::transparent); + p.begin(&pix); + style->drawPrimitive(QStyle::PE_IndicatorBranch, &branchOption, &p); + p.end(); + + rc.addPixmap(pix, QIcon::Normal, QIcon::On); + rc.addPixmap(pix, QIcon::Selected, QIcon::On); + return rc; +} + +void QtTreePropertyBrowserPrivate::init(QWidget *parent) +{ + QHBoxLayout *layout = new QHBoxLayout(parent); + layout->setContentsMargins(QMargins()); + m_treeWidget = new QtPropertyEditorView(parent); + m_treeWidget->setEditorPrivate(this); + m_treeWidget->setIconSize(QSize(18, 18)); + layout->addWidget(m_treeWidget); + + m_treeWidget->setColumnCount(2); + QStringList labels; + labels.append(QCoreApplication::translate("QtTreePropertyBrowser", "Property")); + labels.append(QCoreApplication::translate("QtTreePropertyBrowser", "Value")); + m_treeWidget->setHeaderLabels(labels); + m_treeWidget->setAlternatingRowColors(true); + m_treeWidget->setEditTriggers(QAbstractItemView::EditKeyPressed); + m_delegate = new QtPropertyEditorDelegate(parent); + m_delegate->setEditorPrivate(this); + m_treeWidget->setItemDelegate(m_delegate); + m_treeWidget->header()->setSectionsMovable(false); + m_treeWidget->header()->setSectionResizeMode(QHeaderView::Stretch); + + m_expandIcon = drawIndicatorIcon(q_ptr->palette(), q_ptr->style()); + + QObject::connect(m_treeWidget, SIGNAL(collapsed(QModelIndex)), q_ptr, SLOT(slotCollapsed(QModelIndex))); + QObject::connect(m_treeWidget, SIGNAL(expanded(QModelIndex)), q_ptr, SLOT(slotExpanded(QModelIndex))); + QObject::connect(m_treeWidget, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), q_ptr, SLOT(slotCurrentTreeItemChanged(QTreeWidgetItem*,QTreeWidgetItem*))); +} + +QtBrowserItem *QtTreePropertyBrowserPrivate::currentItem() const +{ + if (QTreeWidgetItem *treeItem = m_treeWidget->currentItem()) + return m_itemToIndex.value(treeItem); + return 0; +} + +void QtTreePropertyBrowserPrivate::setCurrentItem(QtBrowserItem *browserItem, bool block) +{ + const bool blocked = block ? m_treeWidget->blockSignals(true) : false; + if (browserItem == 0) + m_treeWidget->setCurrentItem(0); + else + m_treeWidget->setCurrentItem(m_indexToItem.value(browserItem)); + if (block) + m_treeWidget->blockSignals(blocked); +} + +QtProperty *QtTreePropertyBrowserPrivate::indexToProperty(const QModelIndex &index) const +{ + QTreeWidgetItem *item = m_treeWidget->indexToItem(index); + QtBrowserItem *idx = m_itemToIndex.value(item); + if (idx) + return idx->property(); + return 0; +} + +QtBrowserItem *QtTreePropertyBrowserPrivate::indexToBrowserItem(const QModelIndex &index) const +{ + QTreeWidgetItem *item = m_treeWidget->indexToItem(index); + return m_itemToIndex.value(item); +} + +QTreeWidgetItem *QtTreePropertyBrowserPrivate::indexToItem(const QModelIndex &index) const +{ + return m_treeWidget->indexToItem(index); +} + +bool QtTreePropertyBrowserPrivate::lastColumn(int column) const +{ + return m_treeWidget->header()->visualIndex(column) == m_treeWidget->columnCount() - 1; +} + +void QtTreePropertyBrowserPrivate::disableItem(QTreeWidgetItem *item) const +{ + Qt::ItemFlags flags = item->flags(); + if (flags & Qt::ItemIsEnabled) { + flags &= ~Qt::ItemIsEnabled; + item->setFlags(flags); + m_delegate->closeEditor(m_itemToIndex[item]->property()); + const int childCount = item->childCount(); + for (int i = 0; i < childCount; i++) { + QTreeWidgetItem *child = item->child(i); + disableItem(child); + } + } +} + +void QtTreePropertyBrowserPrivate::enableItem(QTreeWidgetItem *item) const +{ + Qt::ItemFlags flags = item->flags(); + flags |= Qt::ItemIsEnabled; + item->setFlags(flags); + const int childCount = item->childCount(); + for (int i = 0; i < childCount; i++) { + QTreeWidgetItem *child = item->child(i); + QtProperty *property = m_itemToIndex[child]->property(); + if (property->isEnabled()) { + enableItem(child); + } + } +} + +bool QtTreePropertyBrowserPrivate::hasValue(QTreeWidgetItem *item) const +{ + QtBrowserItem *browserItem = m_itemToIndex.value(item); + if (browserItem) + return browserItem->property()->hasValue(); + return false; +} + +void QtTreePropertyBrowserPrivate::propertyInserted(QtBrowserItem *index, QtBrowserItem *afterIndex) +{ + QTreeWidgetItem *afterItem = m_indexToItem.value(afterIndex); + QTreeWidgetItem *parentItem = m_indexToItem.value(index->parent()); + + QTreeWidgetItem *newItem = nullptr; + if (parentItem) { + newItem = new QTreeWidgetItem(parentItem, afterItem); + } else { + newItem = new QTreeWidgetItem(m_treeWidget, afterItem); + } + m_itemToIndex[newItem] = index; + m_indexToItem[index] = newItem; + + newItem->setFlags(newItem->flags() | Qt::ItemIsEditable); + newItem->setExpanded(true); + + updateItem(newItem); +} + +void QtTreePropertyBrowserPrivate::propertyRemoved(QtBrowserItem *index) +{ + QTreeWidgetItem *item = m_indexToItem.value(index); + + if (m_treeWidget->currentItem() == item) { + m_treeWidget->setCurrentItem(0); + } + + delete item; + + m_indexToItem.remove(index); + m_itemToIndex.remove(item); + m_indexToBackgroundColor.remove(index); +} + +void QtTreePropertyBrowserPrivate::propertyChanged(QtBrowserItem *index) +{ + QTreeWidgetItem *item = m_indexToItem.value(index); + + updateItem(item); +} + +void QtTreePropertyBrowserPrivate::updateItem(QTreeWidgetItem *item) +{ + QtProperty *property = m_itemToIndex[item]->property(); + QIcon expandIcon; + if (property->hasValue()) { + const QString valueToolTip = property->valueToolTip(); + const QString valueText = property->valueText(); + item->setToolTip(1, valueToolTip.isEmpty() ? valueText : valueToolTip); + item->setIcon(1, property->valueIcon()); + item->setText(1, valueText); + } else if (markPropertiesWithoutValue() && !m_treeWidget->rootIsDecorated()) { + expandIcon = m_expandIcon; + } + item->setIcon(0, expandIcon); + item->setFirstColumnSpanned(!property->hasValue()); + const QString descriptionToolTip = property->descriptionToolTip(); + const QString propertyName = property->propertyName(); + item->setToolTip(0, descriptionToolTip.isEmpty() ? propertyName : descriptionToolTip); + item->setStatusTip(0, property->statusTip()); + item->setWhatsThis(0, property->whatsThis()); + item->setText(0, propertyName); + bool wasEnabled = item->flags() & Qt::ItemIsEnabled; + bool isEnabled = wasEnabled; + if (property->isEnabled()) { + QTreeWidgetItem *parent = item->parent(); + if (!parent || (parent->flags() & Qt::ItemIsEnabled)) + isEnabled = true; + else + isEnabled = false; + } else { + isEnabled = false; + } + if (wasEnabled != isEnabled) { + if (isEnabled) + enableItem(item); + else + disableItem(item); + } + m_treeWidget->viewport()->update(); +} + +QColor QtTreePropertyBrowserPrivate::calculatedBackgroundColor(QtBrowserItem *item) const +{ + QtBrowserItem *i = item; + const QMap::const_iterator itEnd = m_indexToBackgroundColor.constEnd(); + while (i) { + QMap::const_iterator it = m_indexToBackgroundColor.constFind(i); + if (it != itEnd) + return it.value(); + i = i->parent(); + } + return QColor(); +} + +void QtTreePropertyBrowserPrivate::slotCollapsed(const QModelIndex &index) +{ + QTreeWidgetItem *item = indexToItem(index); + QtBrowserItem *idx = m_itemToIndex.value(item); + if (item) + emit q_ptr->collapsed(idx); +} + +void QtTreePropertyBrowserPrivate::slotExpanded(const QModelIndex &index) +{ + QTreeWidgetItem *item = indexToItem(index); + QtBrowserItem *idx = m_itemToIndex.value(item); + if (item) + emit q_ptr->expanded(idx); +} + +void QtTreePropertyBrowserPrivate::slotCurrentBrowserItemChanged(QtBrowserItem *item) +{ + if (!m_browserChangedBlocked && item != currentItem()) + setCurrentItem(item, true); +} + +void QtTreePropertyBrowserPrivate::slotCurrentTreeItemChanged(QTreeWidgetItem *newItem, QTreeWidgetItem *) +{ + QtBrowserItem *browserItem = newItem ? m_itemToIndex.value(newItem) : 0; + m_browserChangedBlocked = true; + q_ptr->setCurrentItem(browserItem); + m_browserChangedBlocked = false; +} + +QTreeWidgetItem *QtTreePropertyBrowserPrivate::editedItem() const +{ + return m_delegate->editedItem(); +} + +void QtTreePropertyBrowserPrivate::editItem(QtBrowserItem *browserItem) +{ + if (QTreeWidgetItem *treeItem = m_indexToItem.value(browserItem, 0)) { + m_treeWidget->setCurrentItem (treeItem, 1); + m_treeWidget->editItem(treeItem, 1); + } +} + +/*! + \class QtTreePropertyBrowser + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtTreePropertyBrowser class provides QTreeWidget based + property browser. + + A property browser is a widget that enables the user to edit a + given set of properties. Each property is represented by a label + specifying the property's name, and an editing widget (e.g. a line + edit or a combobox) holding its value. A property can have zero or + more subproperties. + + QtTreePropertyBrowser provides a tree based view for all nested + properties, i.e. properties that have subproperties can be in an + expanded (subproperties are visible) or collapsed (subproperties + are hidden) state. For example: + + \image qttreepropertybrowser.png + + Use the QtAbstractPropertyBrowser API to add, insert and remove + properties from an instance of the QtTreePropertyBrowser class. + The properties themselves are created and managed by + implementations of the QtAbstractPropertyManager class. + + \sa QtGroupBoxPropertyBrowser, QtAbstractPropertyBrowser +*/ + +/*! + \fn void QtTreePropertyBrowser::collapsed(QtBrowserItem *item) + + This signal is emitted when the \a item is collapsed. + + \sa expanded(), setExpanded() +*/ + +/*! + \fn void QtTreePropertyBrowser::expanded(QtBrowserItem *item) + + This signal is emitted when the \a item is expanded. + + \sa collapsed(), setExpanded() +*/ + +/*! + Creates a property browser with the given \a parent. +*/ +QtTreePropertyBrowser::QtTreePropertyBrowser(QWidget *parent) + : QtAbstractPropertyBrowser(parent), d_ptr(new QtTreePropertyBrowserPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->init(this); + connect(this, SIGNAL(currentItemChanged(QtBrowserItem*)), this, SLOT(slotCurrentBrowserItemChanged(QtBrowserItem*))); +} + +/*! + Destroys this property browser. + + Note that the properties that were inserted into this browser are + \e not destroyed since they may still be used in other + browsers. The properties are owned by the manager that created + them. + + \sa QtProperty, QtAbstractPropertyManager +*/ +QtTreePropertyBrowser::~QtTreePropertyBrowser() +{ +} + +/*! + \property QtTreePropertyBrowser::indentation + \brief indentation of the items in the tree view. +*/ +int QtTreePropertyBrowser::indentation() const +{ + return d_ptr->m_treeWidget->indentation(); +} + +void QtTreePropertyBrowser::setIndentation(int i) +{ + d_ptr->m_treeWidget->setIndentation(i); +} + +/*! + \property QtTreePropertyBrowser::rootIsDecorated + \brief whether to show controls for expanding and collapsing root items. +*/ +bool QtTreePropertyBrowser::rootIsDecorated() const +{ + return d_ptr->m_treeWidget->rootIsDecorated(); +} + +void QtTreePropertyBrowser::setRootIsDecorated(bool show) +{ + d_ptr->m_treeWidget->setRootIsDecorated(show); + for (auto it = d_ptr->m_itemToIndex.cbegin(), end = d_ptr->m_itemToIndex.cend(); it != end; ++it) { + QtProperty *property = it.value()->property(); + if (!property->hasValue()) + d_ptr->updateItem(it.key()); + } +} + +/*! + \property QtTreePropertyBrowser::alternatingRowColors + \brief whether to draw the background using alternating colors. + By default this property is set to true. +*/ +bool QtTreePropertyBrowser::alternatingRowColors() const +{ + return d_ptr->m_treeWidget->alternatingRowColors(); +} + +void QtTreePropertyBrowser::setAlternatingRowColors(bool enable) +{ + d_ptr->m_treeWidget->setAlternatingRowColors(enable); +} + +/*! + \property QtTreePropertyBrowser::headerVisible + \brief whether to show the header. +*/ +bool QtTreePropertyBrowser::isHeaderVisible() const +{ + return d_ptr->m_headerVisible; +} + +void QtTreePropertyBrowser::setHeaderVisible(bool visible) +{ + if (d_ptr->m_headerVisible == visible) + return; + + d_ptr->m_headerVisible = visible; + d_ptr->m_treeWidget->header()->setVisible(visible); +} + +/*! + \enum QtTreePropertyBrowser::ResizeMode + + The resize mode specifies the behavior of the header sections. + + \value Interactive The user can resize the sections. + The sections can also be resized programmatically using setSplitterPosition(). + + \value Fixed The user cannot resize the section. + The section can only be resized programmatically using setSplitterPosition(). + + \value Stretch QHeaderView will automatically resize the section to fill the available space. + The size cannot be changed by the user or programmatically. + + \value ResizeToContents QHeaderView will automatically resize the section to its optimal + size based on the contents of the entire column. + The size cannot be changed by the user or programmatically. + + \sa setResizeMode() +*/ + +/*! + \property QtTreePropertyBrowser::resizeMode + \brief the resize mode of setions in the header. +*/ + +QtTreePropertyBrowser::ResizeMode QtTreePropertyBrowser::resizeMode() const +{ + return d_ptr->m_resizeMode; +} + +void QtTreePropertyBrowser::setResizeMode(QtTreePropertyBrowser::ResizeMode mode) +{ + if (d_ptr->m_resizeMode == mode) + return; + + d_ptr->m_resizeMode = mode; + QHeaderView::ResizeMode m = QHeaderView::Stretch; + switch (mode) { + case QtTreePropertyBrowser::Interactive: m = QHeaderView::Interactive; break; + case QtTreePropertyBrowser::Fixed: m = QHeaderView::Fixed; break; + case QtTreePropertyBrowser::ResizeToContents: m = QHeaderView::ResizeToContents; break; + case QtTreePropertyBrowser::Stretch: + default: m = QHeaderView::Stretch; break; + } + d_ptr->m_treeWidget->header()->setSectionResizeMode(m); +} + +/*! + \property QtTreePropertyBrowser::splitterPosition + \brief the position of the splitter between the colunms. +*/ + +int QtTreePropertyBrowser::splitterPosition() const +{ + return d_ptr->m_treeWidget->header()->sectionSize(0); +} + +void QtTreePropertyBrowser::setSplitterPosition(int position) +{ + d_ptr->m_treeWidget->header()->resizeSection(0, position); +} + +/*! + Sets the \a item to either collapse or expanded, depending on the value of \a expanded. + + \sa isExpanded(), expanded(), collapsed() +*/ + +void QtTreePropertyBrowser::setExpanded(QtBrowserItem *item, bool expanded) +{ + QTreeWidgetItem *treeItem = d_ptr->m_indexToItem.value(item); + if (treeItem) + treeItem->setExpanded(expanded); +} + +/*! + Returns true if the \a item is expanded; otherwise returns false. + + \sa setExpanded() +*/ + +bool QtTreePropertyBrowser::isExpanded(QtBrowserItem *item) const +{ + QTreeWidgetItem *treeItem = d_ptr->m_indexToItem.value(item); + if (treeItem) + return treeItem->isExpanded(); + return false; +} + +/*! + Returns true if the \a item is visible; otherwise returns false. + + \sa setItemVisible() + \since 4.5 +*/ + +bool QtTreePropertyBrowser::isItemVisible(QtBrowserItem *item) const +{ + if (const QTreeWidgetItem *treeItem = d_ptr->m_indexToItem.value(item)) + return !treeItem->isHidden(); + return false; +} + +/*! + Sets the \a item to be visible, depending on the value of \a visible. + + \sa isItemVisible() + \since 4.5 +*/ + +void QtTreePropertyBrowser::setItemVisible(QtBrowserItem *item, bool visible) +{ + if (QTreeWidgetItem *treeItem = d_ptr->m_indexToItem.value(item)) + treeItem->setHidden(!visible); +} + +/*! + Sets the \a item's background color to \a color. Note that while item's background + is rendered every second row is being drawn with alternate color (which is a bit lighter than items \a color) + + \sa backgroundColor(), calculatedBackgroundColor() +*/ + +void QtTreePropertyBrowser::setBackgroundColor(QtBrowserItem *item, const QColor &color) +{ + if (!d_ptr->m_indexToItem.contains(item)) + return; + if (color.isValid()) + d_ptr->m_indexToBackgroundColor[item] = color; + else + d_ptr->m_indexToBackgroundColor.remove(item); + d_ptr->m_treeWidget->viewport()->update(); +} + +/*! + Returns the \a item's color. If there is no color set for item it returns invalid color. + + \sa calculatedBackgroundColor(), setBackgroundColor() +*/ + +QColor QtTreePropertyBrowser::backgroundColor(QtBrowserItem *item) const +{ + return d_ptr->m_indexToBackgroundColor.value(item); +} + +/*! + Returns the \a item's color. If there is no color set for item it returns parent \a item's + color (if there is no color set for parent it returns grandparent's color and so on). In case + the color is not set for \a item and it's top level item it returns invalid color. + + \sa backgroundColor(), setBackgroundColor() +*/ + +QColor QtTreePropertyBrowser::calculatedBackgroundColor(QtBrowserItem *item) const +{ + return d_ptr->calculatedBackgroundColor(item); +} + +/*! + \property QtTreePropertyBrowser::propertiesWithoutValueMarked + \brief whether to enable or disable marking properties without value. + + When marking is enabled the item's background is rendered in dark color and item's + foreground is rendered with light color. + + \sa propertiesWithoutValueMarked() +*/ +void QtTreePropertyBrowser::setPropertiesWithoutValueMarked(bool mark) +{ + if (d_ptr->m_markPropertiesWithoutValue == mark) + return; + + d_ptr->m_markPropertiesWithoutValue = mark; + for (auto it = d_ptr->m_itemToIndex.cbegin(), end = d_ptr->m_itemToIndex.cend(); it != end; ++it) { + QtProperty *property = it.value()->property(); + if (!property->hasValue()) + d_ptr->updateItem(it.key()); + } + d_ptr->m_treeWidget->viewport()->update(); +} + +bool QtTreePropertyBrowser::propertiesWithoutValueMarked() const +{ + return d_ptr->m_markPropertiesWithoutValue; +} + +/*! + \reimp +*/ +void QtTreePropertyBrowser::itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem) +{ + d_ptr->propertyInserted(item, afterItem); +} + +/*! + \reimp +*/ +void QtTreePropertyBrowser::itemRemoved(QtBrowserItem *item) +{ + d_ptr->propertyRemoved(item); +} + +/*! + \reimp +*/ +void QtTreePropertyBrowser::itemChanged(QtBrowserItem *item) +{ + d_ptr->propertyChanged(item); +} + +/*! + Sets the current item to \a item and opens the relevant editor for it. +*/ +void QtTreePropertyBrowser::editItem(QtBrowserItem *item) +{ + d_ptr->editItem(item); +} + +QT_END_NAMESPACE + +#include "moc_qttreepropertybrowser.cpp" +#include "qttreepropertybrowser.moc" diff --git a/src/shared/qtpropertybrowser/qttreepropertybrowser.h b/src/shared/qtpropertybrowser/qttreepropertybrowser.h new file mode 100644 index 0000000..194ef5d --- /dev/null +++ b/src/shared/qtpropertybrowser/qttreepropertybrowser.h @@ -0,0 +1,96 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTTREEPROPERTYBROWSER_H +#define QTTREEPROPERTYBROWSER_H + +#include "qtpropertybrowser.h" + +QT_BEGIN_NAMESPACE + +class QTreeWidgetItem; +class QtTreePropertyBrowserPrivate; + +class QtTreePropertyBrowser : public QtAbstractPropertyBrowser +{ + Q_OBJECT + Q_PROPERTY(int indentation READ indentation WRITE setIndentation) + Q_PROPERTY(bool rootIsDecorated READ rootIsDecorated WRITE setRootIsDecorated) + Q_PROPERTY(bool alternatingRowColors READ alternatingRowColors WRITE setAlternatingRowColors) + Q_PROPERTY(bool headerVisible READ isHeaderVisible WRITE setHeaderVisible) + Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode) + Q_PROPERTY(int splitterPosition READ splitterPosition WRITE setSplitterPosition) + Q_PROPERTY(bool propertiesWithoutValueMarked READ propertiesWithoutValueMarked WRITE setPropertiesWithoutValueMarked) +public: + + enum ResizeMode + { + Interactive, + Stretch, + Fixed, + ResizeToContents + }; + Q_ENUM(ResizeMode) + + QtTreePropertyBrowser(QWidget *parent = 0); + ~QtTreePropertyBrowser(); + + int indentation() const; + void setIndentation(int i); + + bool rootIsDecorated() const; + void setRootIsDecorated(bool show); + + bool alternatingRowColors() const; + void setAlternatingRowColors(bool enable); + + bool isHeaderVisible() const; + void setHeaderVisible(bool visible); + + ResizeMode resizeMode() const; + void setResizeMode(ResizeMode mode); + + int splitterPosition() const; + void setSplitterPosition(int position); + + void setExpanded(QtBrowserItem *item, bool expanded); + bool isExpanded(QtBrowserItem *item) const; + + bool isItemVisible(QtBrowserItem *item) const; + void setItemVisible(QtBrowserItem *item, bool visible); + + void setBackgroundColor(QtBrowserItem *item, const QColor &color); + QColor backgroundColor(QtBrowserItem *item) const; + QColor calculatedBackgroundColor(QtBrowserItem *item) const; + + void setPropertiesWithoutValueMarked(bool mark); + bool propertiesWithoutValueMarked() const; + + void editItem(QtBrowserItem *item); + +Q_SIGNALS: + + void collapsed(QtBrowserItem *item); + void expanded(QtBrowserItem *item); + +protected: + void itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem) override; + void itemRemoved(QtBrowserItem *item) override; + void itemChanged(QtBrowserItem *item) override; + +private: + + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtTreePropertyBrowser) + Q_DISABLE_COPY_MOVE(QtTreePropertyBrowser) + + Q_PRIVATE_SLOT(d_func(), void slotCollapsed(const QModelIndex &)) + Q_PRIVATE_SLOT(d_func(), void slotExpanded(const QModelIndex &)) + Q_PRIVATE_SLOT(d_func(), void slotCurrentBrowserItemChanged(QtBrowserItem *)) + Q_PRIVATE_SLOT(d_func(), void slotCurrentTreeItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)) + +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qtpropertybrowser/qtvariantproperty.cpp b/src/shared/qtpropertybrowser/qtvariantproperty.cpp new file mode 100644 index 0000000..3225ccd --- /dev/null +++ b/src/shared/qtpropertybrowser/qtvariantproperty.cpp @@ -0,0 +1,2180 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#include "qtvariantproperty.h" +#include "qtpropertymanager.h" +#include "qteditorfactory.h" +#include +#include +#include +#include +#include +#include + +#if defined(Q_CC_MSVC) +# pragma warning(disable: 4786) /* MS VS 6: truncating debug info after 255 characters */ +#endif + +QT_BEGIN_NAMESPACE + +class QtEnumPropertyType +{ +}; + + +class QtFlagPropertyType +{ +}; + + +class QtGroupPropertyType +{ +}; + +QT_END_NAMESPACE + +Q_DECLARE_METATYPE(QtEnumPropertyType) +Q_DECLARE_METATYPE(QtFlagPropertyType) +Q_DECLARE_METATYPE(QtGroupPropertyType) + +QT_BEGIN_NAMESPACE + +/*! + Returns the type id for an enum property. + + Note that the property's value type can be retrieved using the + valueType() function (which is QMetaType::Int for the enum property + type). + + \sa propertyType(), valueType() +*/ +int QtVariantPropertyManager::enumTypeId() +{ + return qMetaTypeId(); +} + +/*! + Returns the type id for a flag property. + + Note that the property's value type can be retrieved using the + valueType() function (which is QMetaType::Int for the flag property + type). + + \sa propertyType(), valueType() +*/ +int QtVariantPropertyManager::flagTypeId() +{ + return qMetaTypeId(); +} + +/*! + Returns the type id for a group property. + + Note that the property's value type can be retrieved using the + valueType() function (which is QMetaType::UnknownType for the group + property type, since it doesn't provide any value). + + \sa propertyType(), valueType() +*/ +int QtVariantPropertyManager::groupTypeId() +{ + return qMetaTypeId(); +} + +/*! + Returns the type id for a icon map attribute. + + Note that the property's attribute type can be retrieved using the + attributeType() function. + + \sa attributeType(), QtEnumPropertyManager::enumIcons() +*/ +int QtVariantPropertyManager::iconMapTypeId() +{ + return qMetaTypeId(); +} + +typedef QMap PropertyMap; +Q_GLOBAL_STATIC(PropertyMap, propertyToWrappedProperty) + +static QtProperty *wrappedProperty(QtProperty *property) +{ + return propertyToWrappedProperty()->value(property, 0); +} + +class QtVariantPropertyPrivate +{ +public: + QtVariantPropertyPrivate(QtVariantPropertyManager *m) : manager(m) {} + + QtVariantPropertyManager *manager; +}; + +/*! + \class QtVariantProperty + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtVariantProperty class is a convenience class handling + QVariant based properties. + + QtVariantProperty provides additional API: A property's type, + value type, attribute values and current value can easily be + retrieved using the propertyType(), valueType(), attributeValue() + and value() functions respectively. In addition, the attribute + values and the current value can be set using the corresponding + setValue() and setAttribute() functions. + + For example, instead of writing: + + \snippet doc/src/snippets/code/tools_shared_qtpropertybrowser_qtvariantproperty.cpp 0 + + you can write: + + \snippet doc/src/snippets/code/tools_shared_qtpropertybrowser_qtvariantproperty.cpp 1 + + QtVariantProperty instances can only be created by the + QtVariantPropertyManager class. + + \sa QtProperty, QtVariantPropertyManager, QtVariantEditorFactory +*/ + +/*! + Creates a variant property using the given \a manager. + + Do not use this constructor to create variant property instances; + use the QtVariantPropertyManager::addProperty() function + instead. This constructor is used internally by the + QtVariantPropertyManager::createProperty() function. + + \sa QtVariantPropertyManager +*/ +QtVariantProperty::QtVariantProperty(QtVariantPropertyManager *manager) + : QtProperty(manager), d_ptr(new QtVariantPropertyPrivate(manager)) +{ +} + +/*! + Destroys this property. + + \sa QtProperty::~QtProperty() +*/ +QtVariantProperty::~QtVariantProperty() +{ +} + +/*! + Returns the property's current value. + + \sa valueType(), setValue() +*/ +QVariant QtVariantProperty::value() const +{ + return d_ptr->manager->value(this); +} + +/*! + Returns this property's value for the specified \a attribute. + + QtVariantPropertyManager provides a couple of related functions: + \l{QtVariantPropertyManager::attributes()}{attributes()} and + \l{QtVariantPropertyManager::attributeType()}{attributeType()}. + + \sa setAttribute() +*/ +QVariant QtVariantProperty::attributeValue(const QString &attribute) const +{ + return d_ptr->manager->attributeValue(this, attribute); +} + +/*! + Returns the type of this property's value. + + \sa propertyType() +*/ +int QtVariantProperty::valueType() const +{ + return d_ptr->manager->valueType(this); +} + +/*! + Returns this property's type. + + QtVariantPropertyManager provides several related functions: + \l{QtVariantPropertyManager::enumTypeId()}{enumTypeId()}, + \l{QtVariantPropertyManager::flagTypeId()}{flagTypeId()} and + \l{QtVariantPropertyManager::groupTypeId()}{groupTypeId()}. + + \sa valueType() +*/ +int QtVariantProperty::propertyType() const +{ + return d_ptr->manager->propertyType(this); +} + +/*! + Sets the value of this property to \a value. + + The specified \a value must be of the type returned by + valueType(), or of a type that can be converted to valueType() + using the QVariant::canConvert() function; otherwise this function + does nothing. + + \sa value() +*/ +void QtVariantProperty::setValue(const QVariant &value) +{ + d_ptr->manager->setValue(this, value); +} + +/*! + Sets the \a attribute of property to \a value. + + QtVariantPropertyManager provides the related + \l{QtVariantPropertyManager::setAttribute()}{setAttribute()} + function. + + \sa attributeValue() +*/ +void QtVariantProperty::setAttribute(const QString &attribute, const QVariant &value) +{ + d_ptr->manager->setAttribute(this, attribute, value); +} + +class QtVariantPropertyManagerPrivate +{ + QtVariantPropertyManager *q_ptr; + Q_DECLARE_PUBLIC(QtVariantPropertyManager) +public: + QtVariantPropertyManagerPrivate(); + + bool m_creatingProperty; + bool m_creatingSubProperties; + bool m_destroyingSubProperties; + int m_propertyType; + + void slotValueChanged(QtProperty *property, int val); + void slotRangeChanged(QtProperty *property, int min, int max); + void slotSingleStepChanged(QtProperty *property, int step); + void slotValueChanged(QtProperty *property, double val); + void slotRangeChanged(QtProperty *property, double min, double max); + void slotSingleStepChanged(QtProperty *property, double step); + void slotDecimalsChanged(QtProperty *property, int prec); + void slotValueChanged(QtProperty *property, bool val); + void slotValueChanged(QtProperty *property, const QString &val); + void slotRegExpChanged(QtProperty *property, const QRegularExpression ®Exp); + void slotValueChanged(QtProperty *property, QDate val); + void slotRangeChanged(QtProperty *property, QDate min, QDate max); + void slotValueChanged(QtProperty *property, QTime val); + void slotValueChanged(QtProperty *property, const QDateTime &val); + void slotValueChanged(QtProperty *property, const QKeySequence &val); + void slotValueChanged(QtProperty *property, const QChar &val); + void slotValueChanged(QtProperty *property, const QLocale &val); + void slotValueChanged(QtProperty *property, const QPoint &val); + void slotValueChanged(QtProperty *property, const QPointF &val); + void slotValueChanged(QtProperty *property, const QSize &val); + void slotRangeChanged(QtProperty *property, const QSize &min, const QSize &max); + void slotValueChanged(QtProperty *property, const QSizeF &val); + void slotRangeChanged(QtProperty *property, const QSizeF &min, const QSizeF &max); + void slotValueChanged(QtProperty *property, const QRect &val); + void slotConstraintChanged(QtProperty *property, const QRect &val); + void slotValueChanged(QtProperty *property, const QRectF &val); + void slotConstraintChanged(QtProperty *property, const QRectF &val); + void slotValueChanged(QtProperty *property, const QColor &val); + void slotEnumChanged(QtProperty *property, int val); + void slotEnumNamesChanged(QtProperty *property, const QStringList &enumNames); + void slotEnumIconsChanged(QtProperty *property, const QMap &enumIcons); + void slotValueChanged(QtProperty *property, const QSizePolicy &val); + void slotValueChanged(QtProperty *property, const QFont &val); + void slotValueChanged(QtProperty *property, const QCursor &val); + void slotFlagChanged(QtProperty *property, int val); + void slotFlagNamesChanged(QtProperty *property, const QStringList &flagNames); + void slotPropertyInserted(QtProperty *property, QtProperty *parent, QtProperty *after); + void slotPropertyRemoved(QtProperty *property, QtProperty *parent); + + void valueChanged(QtProperty *property, const QVariant &val); + + int internalPropertyToType(QtProperty *property) const; + QtVariantProperty *createSubProperty(QtVariantProperty *parent, QtVariantProperty *after, + QtProperty *internal); + void removeSubProperty(QtVariantProperty *property); + + QMap m_typeToPropertyManager; + QMap > m_typeToAttributeToAttributeType; + + QMap > m_propertyToType; + + QMap m_typeToValueType; + + + QMap m_internalToProperty; + + const QString m_constraintAttribute; + const QString m_singleStepAttribute; + const QString m_decimalsAttribute; + const QString m_enumIconsAttribute; + const QString m_enumNamesAttribute; + const QString m_flagNamesAttribute; + const QString m_maximumAttribute; + const QString m_minimumAttribute; + const QString m_regExpAttribute; +}; + +QtVariantPropertyManagerPrivate::QtVariantPropertyManagerPrivate() : + m_constraintAttribute(QLatin1String("constraint")), + m_singleStepAttribute(QLatin1String("singleStep")), + m_decimalsAttribute(QLatin1String("decimals")), + m_enumIconsAttribute(QLatin1String("enumIcons")), + m_enumNamesAttribute(QLatin1String("enumNames")), + m_flagNamesAttribute(QLatin1String("flagNames")), + m_maximumAttribute(QLatin1String("maximum")), + m_minimumAttribute(QLatin1String("minimum")), + m_regExpAttribute(QLatin1String("regExp")) +{ +} + +int QtVariantPropertyManagerPrivate::internalPropertyToType(QtProperty *property) const +{ + int type = 0; + QtAbstractPropertyManager *internPropertyManager = property->propertyManager(); + if (qobject_cast(internPropertyManager)) + type = QMetaType::Int; + else if (qobject_cast(internPropertyManager)) + type = QtVariantPropertyManager::enumTypeId(); + else if (qobject_cast(internPropertyManager)) + type = QMetaType::Bool; + else if (qobject_cast(internPropertyManager)) + type = QMetaType::Double; + return type; +} + +QtVariantProperty *QtVariantPropertyManagerPrivate::createSubProperty(QtVariantProperty *parent, + QtVariantProperty *after, QtProperty *internal) +{ + int type = internalPropertyToType(internal); + if (!type) + return 0; + + bool wasCreatingSubProperties = m_creatingSubProperties; + m_creatingSubProperties = true; + + QtVariantProperty *varChild = q_ptr->addProperty(type, internal->propertyName()); + + m_creatingSubProperties = wasCreatingSubProperties; + + varChild->setPropertyName(internal->propertyName()); + varChild->setToolTip(internal->toolTip()); + varChild->setStatusTip(internal->statusTip()); + varChild->setWhatsThis(internal->whatsThis()); + + parent->insertSubProperty(varChild, after); + + m_internalToProperty[internal] = varChild; + propertyToWrappedProperty()->insert(varChild, internal); + return varChild; +} + +void QtVariantPropertyManagerPrivate::removeSubProperty(QtVariantProperty *property) +{ + QtProperty *internChild = wrappedProperty(property); + bool wasDestroyingSubProperties = m_destroyingSubProperties; + m_destroyingSubProperties = true; + delete property; + m_destroyingSubProperties = wasDestroyingSubProperties; + m_internalToProperty.remove(internChild); + propertyToWrappedProperty()->remove(property); +} + +void QtVariantPropertyManagerPrivate::slotPropertyInserted(QtProperty *property, + QtProperty *parent, QtProperty *after) +{ + if (m_creatingProperty) + return; + + QtVariantProperty *varParent = m_internalToProperty.value(parent, 0); + if (!varParent) + return; + + QtVariantProperty *varAfter = nullptr; + if (after) { + varAfter = m_internalToProperty.value(after, 0); + if (!varAfter) + return; + } + + createSubProperty(varParent, varAfter, property); +} + +void QtVariantPropertyManagerPrivate::slotPropertyRemoved(QtProperty *property, QtProperty *parent) +{ + Q_UNUSED(parent); + + QtVariantProperty *varProperty = m_internalToProperty.value(property, 0); + if (!varProperty) + return; + + removeSubProperty(varProperty); +} + +void QtVariantPropertyManagerPrivate::valueChanged(QtProperty *property, const QVariant &val) +{ + QtVariantProperty *varProp = m_internalToProperty.value(property, 0); + if (!varProp) + return; + emit q_ptr->valueChanged(varProp, val); + emit q_ptr->propertyChanged(varProp); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, int val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotRangeChanged(QtProperty *property, int min, int max) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) { + emit q_ptr->attributeChanged(varProp, m_minimumAttribute, QVariant(min)); + emit q_ptr->attributeChanged(varProp, m_maximumAttribute, QVariant(max)); + } +} + +void QtVariantPropertyManagerPrivate::slotSingleStepChanged(QtProperty *property, int step) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) + emit q_ptr->attributeChanged(varProp, m_singleStepAttribute, QVariant(step)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, double val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotRangeChanged(QtProperty *property, double min, double max) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) { + emit q_ptr->attributeChanged(varProp, m_minimumAttribute, QVariant(min)); + emit q_ptr->attributeChanged(varProp, m_maximumAttribute, QVariant(max)); + } +} + +void QtVariantPropertyManagerPrivate::slotSingleStepChanged(QtProperty *property, double step) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) + emit q_ptr->attributeChanged(varProp, m_singleStepAttribute, QVariant(step)); +} + +void QtVariantPropertyManagerPrivate::slotDecimalsChanged(QtProperty *property, int prec) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) + emit q_ptr->attributeChanged(varProp, m_decimalsAttribute, QVariant(prec)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, bool val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QString &val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotRegExpChanged(QtProperty *property, const QRegularExpression ®Exp) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) + emit q_ptr->attributeChanged(varProp, m_regExpAttribute, QVariant(regExp)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, QDate val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotRangeChanged(QtProperty *property, QDate min, QDate max) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) { + emit q_ptr->attributeChanged(varProp, m_minimumAttribute, QVariant(min)); + emit q_ptr->attributeChanged(varProp, m_maximumAttribute, QVariant(max)); + } +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, QTime val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QDateTime &val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QKeySequence &val) +{ + QVariant v; + v.setValue(val); + valueChanged(property, v); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QChar &val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QLocale &val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QPoint &val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QPointF &val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QSize &val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotRangeChanged(QtProperty *property, const QSize &min, const QSize &max) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) { + emit q_ptr->attributeChanged(varProp, m_minimumAttribute, QVariant(min)); + emit q_ptr->attributeChanged(varProp, m_maximumAttribute, QVariant(max)); + } +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QSizeF &val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotRangeChanged(QtProperty *property, const QSizeF &min, const QSizeF &max) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) { + emit q_ptr->attributeChanged(varProp, m_minimumAttribute, QVariant(min)); + emit q_ptr->attributeChanged(varProp, m_maximumAttribute, QVariant(max)); + } +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QRect &val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotConstraintChanged(QtProperty *property, const QRect &constraint) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) + emit q_ptr->attributeChanged(varProp, m_constraintAttribute, QVariant(constraint)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QRectF &val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotConstraintChanged(QtProperty *property, const QRectF &constraint) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) + emit q_ptr->attributeChanged(varProp, m_constraintAttribute, QVariant(constraint)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QColor &val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotEnumNamesChanged(QtProperty *property, const QStringList &enumNames) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) + emit q_ptr->attributeChanged(varProp, m_enumNamesAttribute, QVariant(enumNames)); +} + +void QtVariantPropertyManagerPrivate::slotEnumIconsChanged(QtProperty *property, const QMap &enumIcons) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) { + QVariant v; + v.setValue(enumIcons); + emit q_ptr->attributeChanged(varProp, m_enumIconsAttribute, v); + } +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QSizePolicy &val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QFont &val) +{ + valueChanged(property, QVariant(val)); +} + +void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QCursor &val) +{ +#ifndef QT_NO_CURSOR + valueChanged(property, QVariant(val)); +#endif +} + +void QtVariantPropertyManagerPrivate::slotFlagNamesChanged(QtProperty *property, const QStringList &flagNames) +{ + if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) + emit q_ptr->attributeChanged(varProp, m_flagNamesAttribute, QVariant(flagNames)); +} + +/*! + \class QtVariantPropertyManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtVariantPropertyManager class provides and manages QVariant based properties. + + QtVariantPropertyManager provides the addProperty() function which + creates QtVariantProperty objects. The QtVariantProperty class is + a convenience class handling QVariant based properties inheriting + QtProperty. A QtProperty object created by a + QtVariantPropertyManager instance can be converted into a + QtVariantProperty object using the variantProperty() function. + + The property's value can be retrieved using the value(), and set + using the setValue() slot. In addition the property's type, and + the type of its value, can be retrieved using the propertyType() + and valueType() functions respectively. + + A property's type is a QMetaType::QType enumerator value, and + usually a property's type is the same as its value type. But for + some properties the types differ, for example for enums, flags and + group types in which case QtVariantPropertyManager provides the + enumTypeId(), flagTypeId() and groupTypeId() functions, + respectively, to identify their property type (the value types are + QMetaType::Int for the enum and flag types, and QMetaType::UnknownType + for the group type). + + Use the isPropertyTypeSupported() function to check if a particular + property type is supported. The currently supported property types + are: + + \table + \header + \li Property Type + \li Property Type Id + \row + \li int + \li QMetaType::Int + \row + \li double + \li QMetaType::Double + \row + \li bool + \li QMetaType::Bool + \row + \li QString + \li QMetaType::QString + \row + \li QDate + \li QMetaType::QDate + \row + \li QTime + \li QMetaType::QTime + \row + \li QDateTime + \li QMetaType::QDateTime + \row + \li QKeySequence + \li QMetaType::QKeySequence + \row + \li QChar + \li QMetaType::QChar + \row + \li QLocale + \li QMetaType::QLocale + \row + \li QPoint + \li QMetaType::QPoint + \row + \li QPointF + \li QMetaType::QPointF + \row + \li QSize + \li QMetaType::QSize + \row + \li QSizeF + \li QMetaType::QSizeF + \row + \li QRect + \li QMetaType::QRect + \row + \li QRectF + \li QMetaType::QRectF + \row + \li QColor + \li QMetaType::QColor + \row + \li QSizePolicy + \li QMetaType::QSizePolicy + \row + \li QFont + \li QMetaType::QFont + \row + \li QCursor + \li QMetaType::QCursor + \row + \li enum + \li enumTypeId() + \row + \li flag + \li flagTypeId() + \row + \li group + \li groupTypeId() + \endtable + + Each property type can provide additional attributes, + e.g. QMetaType::Int and QMetaType::Double provides minimum and + maximum values. The currently supported attributes are: + + \table + \header + \li Property Type + \li Attribute Name + \li Attribute Type + \row + \li \c int + \li minimum + \li QMetaType::Int + \row + \li + \li maximum + \li QMetaType::Int + \row + \li + \li singleStep + \li QMetaType::Int + \row + \li \c double + \li minimum + \li QMetaType::Double + \row + \li + \li maximum + \li QMetaType::Double + \row + \li + \li singleStep + \li QMetaType::Double + \row + \li + \li decimals + \li QMetaType::Int + \row + \li QString + \li regExp + \li QMetaType::QRegExp + \row + \li QDate + \li minimum + \li QMetaType::QDate + \row + \li + \li maximum + \li QMetaType::QDate + \row + \li QPointF + \li decimals + \li QMetaType::Int + \row + \li QSize + \li minimum + \li QMetaType::QSize + \row + \li + \li maximum + \li QMetaType::QSize + \row + \li QSizeF + \li minimum + \li QMetaType::QSizeF + \row + \li + \li maximum + \li QMetaType::QSizeF + \row + \li + \li decimals + \li QMetaType::Int + \row + \li QRect + \li constraint + \li QMetaType::QRect + \row + \li QRectF + \li constraint + \li QMetaType::QRectF + \row + \li + \li decimals + \li QMetaType::Int + \row + \li \c enum + \li enumNames + \li QMetaType::QStringList + \row + \li + \li enumIcons + \li iconMapTypeId() + \row + \li \c flag + \li flagNames + \li QMetaType::QStringList + \endtable + + The attributes for a given property type can be retrieved using + the attributes() function. Each attribute has a value type which + can be retrieved using the attributeType() function, and a value + accessible through the attributeValue() function. In addition, the + value can be set using the setAttribute() slot. + + QtVariantManager also provides the valueChanged() signal which is + emitted whenever a property created by this manager change, and + the attributeChanged() signal which is emitted whenever an + attribute of such a property changes. + + \sa QtVariantProperty, QtVariantEditorFactory +*/ + +/*! + \fn void QtVariantPropertyManager::valueChanged(QtProperty *property, const QVariant &value) + + This signal is emitted whenever a property created by this manager + changes its value, passing a pointer to the \a property and the + new \a value as parameters. + + \sa setValue() +*/ + +/*! + \fn void QtVariantPropertyManager::attributeChanged(QtProperty *property, + const QString &attribute, const QVariant &value) + + This signal is emitted whenever an attribute of a property created + by this manager changes its value, passing a pointer to the \a + property, the \a attribute and the new \a value as parameters. + + \sa setAttribute() +*/ + +/*! + Creates a manager with the given \a parent. +*/ +QtVariantPropertyManager::QtVariantPropertyManager(QObject *parent) + : QtAbstractPropertyManager(parent), d_ptr(new QtVariantPropertyManagerPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->m_creatingProperty = false; + d_ptr->m_creatingSubProperties = false; + d_ptr->m_destroyingSubProperties = false; + d_ptr->m_propertyType = 0; + + // IntPropertyManager + QtIntPropertyManager *intPropertyManager = new QtIntPropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::Int] = intPropertyManager; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::Int][d_ptr->m_minimumAttribute] = QMetaType::Int; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::Int][d_ptr->m_maximumAttribute] = QMetaType::Int; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::Int][d_ptr->m_singleStepAttribute] = QMetaType::Int; + d_ptr->m_typeToValueType[QMetaType::Int] = QMetaType::Int; + connect(intPropertyManager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotValueChanged(QtProperty*,int))); + connect(intPropertyManager, SIGNAL(rangeChanged(QtProperty*,int,int)), + this, SLOT(slotRangeChanged(QtProperty*,int,int))); + connect(intPropertyManager, SIGNAL(singleStepChanged(QtProperty*,int)), + this, SLOT(slotSingleStepChanged(QtProperty*,int))); + // DoublePropertyManager + QtDoublePropertyManager *doublePropertyManager = new QtDoublePropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::Double] = doublePropertyManager; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::Double][d_ptr->m_minimumAttribute] = + QMetaType::Double; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::Double][d_ptr->m_maximumAttribute] = + QMetaType::Double; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::Double][d_ptr->m_singleStepAttribute] = + QMetaType::Double; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::Double][d_ptr->m_decimalsAttribute] = + QMetaType::Int; + d_ptr->m_typeToValueType[QMetaType::Double] = QMetaType::Double; + connect(doublePropertyManager, SIGNAL(valueChanged(QtProperty*,double)), + this, SLOT(slotValueChanged(QtProperty*,double))); + connect(doublePropertyManager, SIGNAL(rangeChanged(QtProperty*,double,double)), + this, SLOT(slotRangeChanged(QtProperty*,double,double))); + connect(doublePropertyManager, SIGNAL(singleStepChanged(QtProperty*,double)), + this, SLOT(slotSingleStepChanged(QtProperty*,double))); + connect(doublePropertyManager, SIGNAL(decimalsChanged(QtProperty*,int)), + this, SLOT(slotDecimalsChanged(QtProperty*,int))); + // BoolPropertyManager + QtBoolPropertyManager *boolPropertyManager = new QtBoolPropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::Bool] = boolPropertyManager; + d_ptr->m_typeToValueType[QMetaType::Bool] = QMetaType::Bool; + connect(boolPropertyManager, SIGNAL(valueChanged(QtProperty*,bool)), + this, SLOT(slotValueChanged(QtProperty*,bool))); + // StringPropertyManager + QtStringPropertyManager *stringPropertyManager = new QtStringPropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QString] = stringPropertyManager; + d_ptr->m_typeToValueType[QMetaType::QString] = QMetaType::QString; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::QString][d_ptr->m_regExpAttribute] = + QMetaType::QRegularExpression; + connect(stringPropertyManager, SIGNAL(valueChanged(QtProperty*,QString)), + this, SLOT(slotValueChanged(QtProperty*,QString))); + connect(stringPropertyManager, SIGNAL(regExpChanged(QtProperty*,QRegularExpression)), + this, SLOT(slotRegExpChanged(QtProperty*,QRegularExpression))); + // DatePropertyManager + QtDatePropertyManager *datePropertyManager = new QtDatePropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QDate] = datePropertyManager; + d_ptr->m_typeToValueType[QMetaType::QDate] = QMetaType::QDate; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::QDate][d_ptr->m_minimumAttribute] = + QMetaType::QDate; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::QDate][d_ptr->m_maximumAttribute] = + QMetaType::QDate; + connect(datePropertyManager, SIGNAL(valueChanged(QtProperty*,QDate)), + this, SLOT(slotValueChanged(QtProperty*,QDate))); + connect(datePropertyManager, SIGNAL(rangeChanged(QtProperty*,QDate,QDate)), + this, SLOT(slotRangeChanged(QtProperty*,QDate,QDate))); + // TimePropertyManager + QtTimePropertyManager *timePropertyManager = new QtTimePropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QTime] = timePropertyManager; + d_ptr->m_typeToValueType[QMetaType::QTime] = QMetaType::QTime; + connect(timePropertyManager, SIGNAL(valueChanged(QtProperty*,QTime)), + this, SLOT(slotValueChanged(QtProperty*,QTime))); + // DateTimePropertyManager + QtDateTimePropertyManager *dateTimePropertyManager = new QtDateTimePropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QDateTime] = dateTimePropertyManager; + d_ptr->m_typeToValueType[QMetaType::QDateTime] = QMetaType::QDateTime; + connect(dateTimePropertyManager, SIGNAL(valueChanged(QtProperty*,QDateTime)), + this, SLOT(slotValueChanged(QtProperty*,QDateTime))); + // KeySequencePropertyManager + QtKeySequencePropertyManager *keySequencePropertyManager = new QtKeySequencePropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QKeySequence] = keySequencePropertyManager; + d_ptr->m_typeToValueType[QMetaType::QKeySequence] = QMetaType::QKeySequence; + connect(keySequencePropertyManager, SIGNAL(valueChanged(QtProperty*,QKeySequence)), + this, SLOT(slotValueChanged(QtProperty*,QKeySequence))); + // CharPropertyManager + QtCharPropertyManager *charPropertyManager = new QtCharPropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QChar] = charPropertyManager; + d_ptr->m_typeToValueType[QMetaType::QChar] = QMetaType::QChar; + connect(charPropertyManager, SIGNAL(valueChanged(QtProperty*,QChar)), + this, SLOT(slotValueChanged(QtProperty*,QChar))); + // LocalePropertyManager + QtLocalePropertyManager *localePropertyManager = new QtLocalePropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QLocale] = localePropertyManager; + d_ptr->m_typeToValueType[QMetaType::QLocale] = QMetaType::QLocale; + connect(localePropertyManager, SIGNAL(valueChanged(QtProperty*,QLocale)), + this, SLOT(slotValueChanged(QtProperty*,QLocale))); + connect(localePropertyManager->subEnumPropertyManager(), SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotValueChanged(QtProperty*,int))); + connect(localePropertyManager, SIGNAL(propertyInserted(QtProperty*,QtProperty*,QtProperty*)), + this, SLOT(slotPropertyInserted(QtProperty*,QtProperty*,QtProperty*))); + connect(localePropertyManager, SIGNAL(propertyRemoved(QtProperty*,QtProperty*)), + this, SLOT(slotPropertyRemoved(QtProperty*,QtProperty*))); + // PointPropertyManager + QtPointPropertyManager *pointPropertyManager = new QtPointPropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QPoint] = pointPropertyManager; + d_ptr->m_typeToValueType[QMetaType::QPoint] = QMetaType::QPoint; + connect(pointPropertyManager, SIGNAL(valueChanged(QtProperty*,QPoint)), + this, SLOT(slotValueChanged(QtProperty*,QPoint))); + connect(pointPropertyManager->subIntPropertyManager(), SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotValueChanged(QtProperty*,int))); + connect(pointPropertyManager, SIGNAL(propertyInserted(QtProperty*,QtProperty*,QtProperty*)), + this, SLOT(slotPropertyInserted(QtProperty*,QtProperty*,QtProperty*))); + connect(pointPropertyManager, SIGNAL(propertyRemoved(QtProperty*,QtProperty*)), + this, SLOT(slotPropertyRemoved(QtProperty*,QtProperty*))); + // PointFPropertyManager + QtPointFPropertyManager *pointFPropertyManager = new QtPointFPropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QPointF] = pointFPropertyManager; + d_ptr->m_typeToValueType[QMetaType::QPointF] = QMetaType::QPointF; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::QPointF][d_ptr->m_decimalsAttribute] = + QMetaType::Int; + connect(pointFPropertyManager, SIGNAL(valueChanged(QtProperty*,QPointF)), + this, SLOT(slotValueChanged(QtProperty*,QPointF))); + connect(pointFPropertyManager, SIGNAL(decimalsChanged(QtProperty*,int)), + this, SLOT(slotDecimalsChanged(QtProperty*,int))); + connect(pointFPropertyManager->subDoublePropertyManager(), SIGNAL(valueChanged(QtProperty*,double)), + this, SLOT(slotValueChanged(QtProperty*,double))); + connect(pointFPropertyManager, SIGNAL(propertyInserted(QtProperty*,QtProperty*,QtProperty*)), + this, SLOT(slotPropertyInserted(QtProperty*,QtProperty*,QtProperty*))); + connect(pointFPropertyManager, SIGNAL(propertyRemoved(QtProperty*,QtProperty*)), + this, SLOT(slotPropertyRemoved(QtProperty*,QtProperty*))); + // SizePropertyManager + QtSizePropertyManager *sizePropertyManager = new QtSizePropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QSize] = sizePropertyManager; + d_ptr->m_typeToValueType[QMetaType::QSize] = QMetaType::QSize; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::QSize][d_ptr->m_minimumAttribute] = + QMetaType::QSize; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::QSize][d_ptr->m_maximumAttribute] = + QMetaType::QSize; + connect(sizePropertyManager, SIGNAL(valueChanged(QtProperty*,QSize)), + this, SLOT(slotValueChanged(QtProperty*,QSize))); + connect(sizePropertyManager, SIGNAL(rangeChanged(QtProperty*,QSize,QSize)), + this, SLOT(slotRangeChanged(QtProperty*,QSize,QSize))); + connect(sizePropertyManager->subIntPropertyManager(), SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotValueChanged(QtProperty*,int))); + connect(sizePropertyManager->subIntPropertyManager(), SIGNAL(rangeChanged(QtProperty*,int,int)), + this, SLOT(slotRangeChanged(QtProperty*,int,int))); + connect(sizePropertyManager, SIGNAL(propertyInserted(QtProperty*,QtProperty*,QtProperty*)), + this, SLOT(slotPropertyInserted(QtProperty*,QtProperty*,QtProperty*))); + connect(sizePropertyManager, SIGNAL(propertyRemoved(QtProperty*,QtProperty*)), + this, SLOT(slotPropertyRemoved(QtProperty*,QtProperty*))); + // SizeFPropertyManager + QtSizeFPropertyManager *sizeFPropertyManager = new QtSizeFPropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QSizeF] = sizeFPropertyManager; + d_ptr->m_typeToValueType[QMetaType::QSizeF] = QMetaType::QSizeF; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::QSizeF][d_ptr->m_minimumAttribute] = + QMetaType::QSizeF; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::QSizeF][d_ptr->m_maximumAttribute] = + QMetaType::QSizeF; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::QSizeF][d_ptr->m_decimalsAttribute] = + QMetaType::Int; + connect(sizeFPropertyManager, SIGNAL(valueChanged(QtProperty*,QSizeF)), + this, SLOT(slotValueChanged(QtProperty*,QSizeF))); + connect(sizeFPropertyManager, SIGNAL(rangeChanged(QtProperty*,QSizeF,QSizeF)), + this, SLOT(slotRangeChanged(QtProperty*,QSizeF,QSizeF))); + connect(sizeFPropertyManager, SIGNAL(decimalsChanged(QtProperty*,int)), + this, SLOT(slotDecimalsChanged(QtProperty*,int))); + connect(sizeFPropertyManager->subDoublePropertyManager(), SIGNAL(valueChanged(QtProperty*,double)), + this, SLOT(slotValueChanged(QtProperty*,double))); + connect(sizeFPropertyManager->subDoublePropertyManager(), SIGNAL(rangeChanged(QtProperty*,double,double)), + this, SLOT(slotRangeChanged(QtProperty*,double,double))); + connect(sizeFPropertyManager, SIGNAL(propertyInserted(QtProperty*,QtProperty*,QtProperty*)), + this, SLOT(slotPropertyInserted(QtProperty*,QtProperty*,QtProperty*))); + connect(sizeFPropertyManager, SIGNAL(propertyRemoved(QtProperty*,QtProperty*)), + this, SLOT(slotPropertyRemoved(QtProperty*,QtProperty*))); + // RectPropertyManager + QtRectPropertyManager *rectPropertyManager = new QtRectPropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QRect] = rectPropertyManager; + d_ptr->m_typeToValueType[QMetaType::QRect] = QMetaType::QRect; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::QRect][d_ptr->m_constraintAttribute] = + QMetaType::QRect; + connect(rectPropertyManager, SIGNAL(valueChanged(QtProperty*,QRect)), + this, SLOT(slotValueChanged(QtProperty*,QRect))); + connect(rectPropertyManager, SIGNAL(constraintChanged(QtProperty*,QRect)), + this, SLOT(slotConstraintChanged(QtProperty*,QRect))); + connect(rectPropertyManager->subIntPropertyManager(), SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotValueChanged(QtProperty*,int))); + connect(rectPropertyManager->subIntPropertyManager(), SIGNAL(rangeChanged(QtProperty*,int,int)), + this, SLOT(slotRangeChanged(QtProperty*,int,int))); + connect(rectPropertyManager, SIGNAL(propertyInserted(QtProperty*,QtProperty*,QtProperty*)), + this, SLOT(slotPropertyInserted(QtProperty*,QtProperty*,QtProperty*))); + connect(rectPropertyManager, SIGNAL(propertyRemoved(QtProperty*,QtProperty*)), + this, SLOT(slotPropertyRemoved(QtProperty*,QtProperty*))); + // RectFPropertyManager + QtRectFPropertyManager *rectFPropertyManager = new QtRectFPropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QRectF] = rectFPropertyManager; + d_ptr->m_typeToValueType[QMetaType::QRectF] = QMetaType::QRectF; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::QRectF][d_ptr->m_constraintAttribute] = + QMetaType::QRectF; + d_ptr->m_typeToAttributeToAttributeType[QMetaType::QRectF][d_ptr->m_decimalsAttribute] = + QMetaType::Int; + connect(rectFPropertyManager, SIGNAL(valueChanged(QtProperty*,QRectF)), + this, SLOT(slotValueChanged(QtProperty*,QRectF))); + connect(rectFPropertyManager, SIGNAL(constraintChanged(QtProperty*,QRectF)), + this, SLOT(slotConstraintChanged(QtProperty*,QRectF))); + connect(rectFPropertyManager, SIGNAL(decimalsChanged(QtProperty*,int)), + this, SLOT(slotDecimalsChanged(QtProperty*,int))); + connect(rectFPropertyManager->subDoublePropertyManager(), SIGNAL(valueChanged(QtProperty*,double)), + this, SLOT(slotValueChanged(QtProperty*,double))); + connect(rectFPropertyManager->subDoublePropertyManager(), SIGNAL(rangeChanged(QtProperty*,double,double)), + this, SLOT(slotRangeChanged(QtProperty*,double,double))); + connect(rectFPropertyManager, SIGNAL(propertyInserted(QtProperty*,QtProperty*,QtProperty*)), + this, SLOT(slotPropertyInserted(QtProperty*,QtProperty*,QtProperty*))); + connect(rectFPropertyManager, SIGNAL(propertyRemoved(QtProperty*,QtProperty*)), + this, SLOT(slotPropertyRemoved(QtProperty*,QtProperty*))); + // ColorPropertyManager + QtColorPropertyManager *colorPropertyManager = new QtColorPropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QColor] = colorPropertyManager; + d_ptr->m_typeToValueType[QMetaType::QColor] = QMetaType::QColor; + connect(colorPropertyManager, SIGNAL(valueChanged(QtProperty*,QColor)), + this, SLOT(slotValueChanged(QtProperty*,QColor))); + connect(colorPropertyManager->subIntPropertyManager(), SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotValueChanged(QtProperty*,int))); + connect(colorPropertyManager, SIGNAL(propertyInserted(QtProperty*,QtProperty*,QtProperty*)), + this, SLOT(slotPropertyInserted(QtProperty*,QtProperty*,QtProperty*))); + connect(colorPropertyManager, SIGNAL(propertyRemoved(QtProperty*,QtProperty*)), + this, SLOT(slotPropertyRemoved(QtProperty*,QtProperty*))); + // EnumPropertyManager + int enumId = enumTypeId(); + QtEnumPropertyManager *enumPropertyManager = new QtEnumPropertyManager(this); + d_ptr->m_typeToPropertyManager[enumId] = enumPropertyManager; + d_ptr->m_typeToValueType[enumId] = QMetaType::Int; + d_ptr->m_typeToAttributeToAttributeType[enumId][d_ptr->m_enumNamesAttribute] = + QMetaType::QStringList; + d_ptr->m_typeToAttributeToAttributeType[enumId][d_ptr->m_enumIconsAttribute] = + iconMapTypeId(); + connect(enumPropertyManager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotValueChanged(QtProperty*,int))); + connect(enumPropertyManager, SIGNAL(enumNamesChanged(QtProperty*,QStringList)), + this, SLOT(slotEnumNamesChanged(QtProperty*,QStringList))); + connect(enumPropertyManager, SIGNAL(enumIconsChanged(QtProperty*,QMap)), + this, SLOT(slotEnumIconsChanged(QtProperty*,QMap))); + // SizePolicyPropertyManager + QtSizePolicyPropertyManager *sizePolicyPropertyManager = new QtSizePolicyPropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QSizePolicy] = sizePolicyPropertyManager; + d_ptr->m_typeToValueType[QMetaType::QSizePolicy] = QMetaType::QSizePolicy; + connect(sizePolicyPropertyManager, SIGNAL(valueChanged(QtProperty*,QSizePolicy)), + this, SLOT(slotValueChanged(QtProperty*,QSizePolicy))); + connect(sizePolicyPropertyManager->subIntPropertyManager(), SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotValueChanged(QtProperty*,int))); + connect(sizePolicyPropertyManager->subIntPropertyManager(), SIGNAL(rangeChanged(QtProperty*,int,int)), + this, SLOT(slotRangeChanged(QtProperty*,int,int))); + connect(sizePolicyPropertyManager->subEnumPropertyManager(), SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotValueChanged(QtProperty*,int))); + connect(sizePolicyPropertyManager->subEnumPropertyManager(), + SIGNAL(enumNamesChanged(QtProperty*,QStringList)), + this, SLOT(slotEnumNamesChanged(QtProperty*,QStringList))); + connect(sizePolicyPropertyManager, SIGNAL(propertyInserted(QtProperty*,QtProperty*,QtProperty*)), + this, SLOT(slotPropertyInserted(QtProperty*,QtProperty*,QtProperty*))); + connect(sizePolicyPropertyManager, SIGNAL(propertyRemoved(QtProperty*,QtProperty*)), + this, SLOT(slotPropertyRemoved(QtProperty*,QtProperty*))); + // FontPropertyManager + QtFontPropertyManager *fontPropertyManager = new QtFontPropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QFont] = fontPropertyManager; + d_ptr->m_typeToValueType[QMetaType::QFont] = QMetaType::QFont; + connect(fontPropertyManager, SIGNAL(valueChanged(QtProperty*,QFont)), + this, SLOT(slotValueChanged(QtProperty*,QFont))); + connect(fontPropertyManager->subIntPropertyManager(), SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotValueChanged(QtProperty*,int))); + connect(fontPropertyManager->subIntPropertyManager(), SIGNAL(rangeChanged(QtProperty*,int,int)), + this, SLOT(slotRangeChanged(QtProperty*,int,int))); + connect(fontPropertyManager->subEnumPropertyManager(), SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotValueChanged(QtProperty*,int))); + connect(fontPropertyManager->subEnumPropertyManager(), + SIGNAL(enumNamesChanged(QtProperty*,QStringList)), + this, SLOT(slotEnumNamesChanged(QtProperty*,QStringList))); + connect(fontPropertyManager->subBoolPropertyManager(), SIGNAL(valueChanged(QtProperty*,bool)), + this, SLOT(slotValueChanged(QtProperty*,bool))); + connect(fontPropertyManager, SIGNAL(propertyInserted(QtProperty*,QtProperty*,QtProperty*)), + this, SLOT(slotPropertyInserted(QtProperty*,QtProperty*,QtProperty*))); + connect(fontPropertyManager, SIGNAL(propertyRemoved(QtProperty*,QtProperty*)), + this, SLOT(slotPropertyRemoved(QtProperty*,QtProperty*))); + // CursorPropertyManager + QtCursorPropertyManager *cursorPropertyManager = new QtCursorPropertyManager(this); + d_ptr->m_typeToPropertyManager[QMetaType::QCursor] = cursorPropertyManager; + d_ptr->m_typeToValueType[QMetaType::QCursor] = QMetaType::QCursor; + connect(cursorPropertyManager, SIGNAL(valueChanged(QtProperty*,QCursor)), + this, SLOT(slotValueChanged(QtProperty*,QCursor))); + // FlagPropertyManager + int flagId = flagTypeId(); + QtFlagPropertyManager *flagPropertyManager = new QtFlagPropertyManager(this); + d_ptr->m_typeToPropertyManager[flagId] = flagPropertyManager; + d_ptr->m_typeToValueType[flagId] = QMetaType::Int; + d_ptr->m_typeToAttributeToAttributeType[flagId][d_ptr->m_flagNamesAttribute] = + QMetaType::QStringList; + connect(flagPropertyManager, SIGNAL(valueChanged(QtProperty*,int)), + this, SLOT(slotValueChanged(QtProperty*,int))); + connect(flagPropertyManager, SIGNAL(flagNamesChanged(QtProperty*,QStringList)), + this, SLOT(slotFlagNamesChanged(QtProperty*,QStringList))); + connect(flagPropertyManager->subBoolPropertyManager(), SIGNAL(valueChanged(QtProperty*,bool)), + this, SLOT(slotValueChanged(QtProperty*,bool))); + connect(flagPropertyManager, SIGNAL(propertyInserted(QtProperty*,QtProperty*,QtProperty*)), + this, SLOT(slotPropertyInserted(QtProperty*,QtProperty*,QtProperty*))); + connect(flagPropertyManager, SIGNAL(propertyRemoved(QtProperty*,QtProperty*)), + this, SLOT(slotPropertyRemoved(QtProperty*,QtProperty*))); + // FlagPropertyManager + int groupId = groupTypeId(); + QtGroupPropertyManager *groupPropertyManager = new QtGroupPropertyManager(this); + d_ptr->m_typeToPropertyManager[groupId] = groupPropertyManager; + d_ptr->m_typeToValueType[groupId] = QMetaType::UnknownType; +} + +/*! + Destroys this manager, and all the properties it has created. +*/ +QtVariantPropertyManager::~QtVariantPropertyManager() +{ + clear(); +} + +/*! + Returns the given \a property converted into a QtVariantProperty. + + If the \a property was not created by this variant manager, the + function returns 0. + + \sa createProperty() +*/ +QtVariantProperty *QtVariantPropertyManager::variantProperty(const QtProperty *property) const +{ + const QMap >::const_iterator it = d_ptr->m_propertyToType.constFind(property); + if (it == d_ptr->m_propertyToType.constEnd()) + return 0; + return it.value().first; +} + +/*! + Returns true if the given \a propertyType is supported by this + variant manager; otherwise false. + + \sa propertyType() +*/ +bool QtVariantPropertyManager::isPropertyTypeSupported(int propertyType) const +{ + if (d_ptr->m_typeToValueType.contains(propertyType)) + return true; + return false; +} + +/*! + Creates and returns a variant property of the given \a propertyType + with the given \a name. + + If the specified \a propertyType is not supported by this variant + manager, this function returns 0. + + Do not use the inherited + QtAbstractPropertyManager::addProperty() function to create a + variant property (that function will always return 0 since it will + not be clear what type the property should have). + + \sa isPropertyTypeSupported() +*/ +QtVariantProperty *QtVariantPropertyManager::addProperty(int propertyType, const QString &name) +{ + if (!isPropertyTypeSupported(propertyType)) + return 0; + + bool wasCreating = d_ptr->m_creatingProperty; + d_ptr->m_creatingProperty = true; + d_ptr->m_propertyType = propertyType; + QtProperty *property = QtAbstractPropertyManager::addProperty(name); + d_ptr->m_creatingProperty = wasCreating; + d_ptr->m_propertyType = 0; + + if (!property) + return 0; + + return variantProperty(property); +} + +/*! + Returns the given \a property's value. + + If the given \a property is not managed by this manager, this + function returns an invalid variant. + + \sa setValue() +*/ +QVariant QtVariantPropertyManager::value(const QtProperty *property) const +{ + QtProperty *internProp = propertyToWrappedProperty()->value(property, 0); + if (internProp == 0) + return QVariant(); + + QtAbstractPropertyManager *manager = internProp->propertyManager(); + if (QtIntPropertyManager *intManager = qobject_cast(manager)) { + return intManager->value(internProp); + } else if (QtDoublePropertyManager *doubleManager = qobject_cast(manager)) { + return doubleManager->value(internProp); + } else if (QtBoolPropertyManager *boolManager = qobject_cast(manager)) { + return boolManager->value(internProp); + } else if (QtStringPropertyManager *stringManager = qobject_cast(manager)) { + return stringManager->value(internProp); + } else if (QtDatePropertyManager *dateManager = qobject_cast(manager)) { + return dateManager->value(internProp); + } else if (QtTimePropertyManager *timeManager = qobject_cast(manager)) { + return timeManager->value(internProp); + } else if (QtDateTimePropertyManager *dateTimeManager = qobject_cast(manager)) { + return dateTimeManager->value(internProp); + } else if (QtKeySequencePropertyManager *keySequenceManager = qobject_cast(manager)) { + return QVariant::fromValue(keySequenceManager->value(internProp)); + } else if (QtCharPropertyManager *charManager = qobject_cast(manager)) { + return charManager->value(internProp); + } else if (QtLocalePropertyManager *localeManager = qobject_cast(manager)) { + return localeManager->value(internProp); + } else if (QtPointPropertyManager *pointManager = qobject_cast(manager)) { + return pointManager->value(internProp); + } else if (QtPointFPropertyManager *pointFManager = qobject_cast(manager)) { + return pointFManager->value(internProp); + } else if (QtSizePropertyManager *sizeManager = qobject_cast(manager)) { + return sizeManager->value(internProp); + } else if (QtSizeFPropertyManager *sizeFManager = qobject_cast(manager)) { + return sizeFManager->value(internProp); + } else if (QtRectPropertyManager *rectManager = qobject_cast(manager)) { + return rectManager->value(internProp); + } else if (QtRectFPropertyManager *rectFManager = qobject_cast(manager)) { + return rectFManager->value(internProp); + } else if (QtColorPropertyManager *colorManager = qobject_cast(manager)) { + return colorManager->value(internProp); + } else if (QtEnumPropertyManager *enumManager = qobject_cast(manager)) { + return enumManager->value(internProp); + } else if (QtSizePolicyPropertyManager *sizePolicyManager = + qobject_cast(manager)) { + return sizePolicyManager->value(internProp); + } else if (QtFontPropertyManager *fontManager = qobject_cast(manager)) { + return fontManager->value(internProp); +#ifndef QT_NO_CURSOR + } else if (QtCursorPropertyManager *cursorManager = qobject_cast(manager)) { + return cursorManager->value(internProp); +#endif + } else if (QtFlagPropertyManager *flagManager = qobject_cast(manager)) { + return flagManager->value(internProp); + } + return QVariant(); +} + +/*! + Returns the given \a property's value type. + + \sa propertyType() +*/ +int QtVariantPropertyManager::valueType(const QtProperty *property) const +{ + int propType = propertyType(property); + return valueType(propType); +} + +/*! + \overload + + Returns the value type associated with the given \a propertyType. +*/ +int QtVariantPropertyManager::valueType(int propertyType) const +{ + if (d_ptr->m_typeToValueType.contains(propertyType)) + return d_ptr->m_typeToValueType[propertyType]; + return 0; +} + +/*! + Returns the given \a property's type. + + \sa valueType() +*/ +int QtVariantPropertyManager::propertyType(const QtProperty *property) const +{ + const QMap >::const_iterator it = d_ptr->m_propertyToType.constFind(property); + if (it == d_ptr->m_propertyToType.constEnd()) + return 0; + return it.value().second; +} + +/*! + Returns the given \a property's value for the specified \a + attribute + + If the given \a property was not created by \e this manager, or if + the specified \a attribute does not exist, this function returns + an invalid variant. + + \sa attributes(), attributeType(), setAttribute() +*/ +QVariant QtVariantPropertyManager::attributeValue(const QtProperty *property, const QString &attribute) const +{ + int propType = propertyType(property); + if (!propType) + return QVariant(); + + QMap >::ConstIterator it = + d_ptr->m_typeToAttributeToAttributeType.find(propType); + if (it == d_ptr->m_typeToAttributeToAttributeType.constEnd()) + return QVariant(); + + QMap attributes = it.value(); + QMap::ConstIterator itAttr = attributes.find(attribute); + if (itAttr == attributes.constEnd()) + return QVariant(); + + QtProperty *internProp = propertyToWrappedProperty()->value(property, 0); + if (internProp == 0) + return QVariant(); + + QtAbstractPropertyManager *manager = internProp->propertyManager(); + if (QtIntPropertyManager *intManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_maximumAttribute) + return intManager->maximum(internProp); + if (attribute == d_ptr->m_minimumAttribute) + return intManager->minimum(internProp); + if (attribute == d_ptr->m_singleStepAttribute) + return intManager->singleStep(internProp); + return QVariant(); + } else if (QtDoublePropertyManager *doubleManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_maximumAttribute) + return doubleManager->maximum(internProp); + if (attribute == d_ptr->m_minimumAttribute) + return doubleManager->minimum(internProp); + if (attribute == d_ptr->m_singleStepAttribute) + return doubleManager->singleStep(internProp); + if (attribute == d_ptr->m_decimalsAttribute) + return doubleManager->decimals(internProp); + return QVariant(); + } else if (QtStringPropertyManager *stringManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_regExpAttribute) + return stringManager->regExp(internProp); + return QVariant(); + } else if (QtDatePropertyManager *dateManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_maximumAttribute) + return dateManager->maximum(internProp); + if (attribute == d_ptr->m_minimumAttribute) + return dateManager->minimum(internProp); + return QVariant(); + } else if (QtPointFPropertyManager *pointFManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_decimalsAttribute) + return pointFManager->decimals(internProp); + return QVariant(); + } else if (QtSizePropertyManager *sizeManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_maximumAttribute) + return sizeManager->maximum(internProp); + if (attribute == d_ptr->m_minimumAttribute) + return sizeManager->minimum(internProp); + return QVariant(); + } else if (QtSizeFPropertyManager *sizeFManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_maximumAttribute) + return sizeFManager->maximum(internProp); + if (attribute == d_ptr->m_minimumAttribute) + return sizeFManager->minimum(internProp); + if (attribute == d_ptr->m_decimalsAttribute) + return sizeFManager->decimals(internProp); + return QVariant(); + } else if (QtRectPropertyManager *rectManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_constraintAttribute) + return rectManager->constraint(internProp); + return QVariant(); + } else if (QtRectFPropertyManager *rectFManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_constraintAttribute) + return rectFManager->constraint(internProp); + if (attribute == d_ptr->m_decimalsAttribute) + return rectFManager->decimals(internProp); + return QVariant(); + } else if (QtEnumPropertyManager *enumManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_enumNamesAttribute) + return enumManager->enumNames(internProp); + if (attribute == d_ptr->m_enumIconsAttribute) { + QVariant v; + v.setValue(enumManager->enumIcons(internProp)); + return v; + } + return QVariant(); + } else if (QtFlagPropertyManager *flagManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_flagNamesAttribute) + return flagManager->flagNames(internProp); + return QVariant(); + } + return QVariant(); +} + +/*! + Returns a list of the given \a propertyType 's attributes. + + \sa attributeValue(), attributeType() +*/ +QStringList QtVariantPropertyManager::attributes(int propertyType) const +{ + QMap >::ConstIterator it = + d_ptr->m_typeToAttributeToAttributeType.find(propertyType); + if (it == d_ptr->m_typeToAttributeToAttributeType.constEnd()) + return QStringList(); + return it.value().keys(); +} + +/*! + Returns the type of the specified \a attribute of the given \a + propertyType. + + If the given \a propertyType is not supported by \e this manager, + or if the given \a propertyType does not possess the specified \a + attribute, this function returns QMetaType::UnknownType. + + \sa attributes(), valueType() +*/ +int QtVariantPropertyManager::attributeType(int propertyType, const QString &attribute) const +{ + QMap >::ConstIterator it = + d_ptr->m_typeToAttributeToAttributeType.find(propertyType); + if (it == d_ptr->m_typeToAttributeToAttributeType.constEnd()) + return 0; + + QMap attributes = it.value(); + QMap::ConstIterator itAttr = attributes.find(attribute); + if (itAttr == attributes.constEnd()) + return 0; + return itAttr.value(); +} + +/*! + \fn void QtVariantPropertyManager::setValue(QtProperty *property, const QVariant &value) + + Sets the value of the given \a property to \a value. + + The specified \a value must be of a type returned by valueType(), + or of type that can be converted to valueType() using the + QVariant::canConvert() function, otherwise this function does + nothing. + + \sa value(), QtVariantProperty::setValue(), valueChanged() +*/ +void QtVariantPropertyManager::setValue(QtProperty *property, const QVariant &val) +{ + int propType = val.userType(); + if (!propType) + return; + + int valType = valueType(property); + + if (propType != valType && !val.canConvert(QMetaType(valType))) + return; + + QtProperty *internProp = propertyToWrappedProperty()->value(property, 0); + if (internProp == 0) + return; + + + QtAbstractPropertyManager *manager = internProp->propertyManager(); + if (QtIntPropertyManager *intManager = qobject_cast(manager)) { + intManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtDoublePropertyManager *doubleManager = qobject_cast(manager)) { + doubleManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtBoolPropertyManager *boolManager = qobject_cast(manager)) { + boolManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtStringPropertyManager *stringManager = qobject_cast(manager)) { + stringManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtDatePropertyManager *dateManager = qobject_cast(manager)) { + dateManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtTimePropertyManager *timeManager = qobject_cast(manager)) { + timeManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtDateTimePropertyManager *dateTimeManager = qobject_cast(manager)) { + dateTimeManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtKeySequencePropertyManager *keySequenceManager = qobject_cast(manager)) { + keySequenceManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtCharPropertyManager *charManager = qobject_cast(manager)) { + charManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtLocalePropertyManager *localeManager = qobject_cast(manager)) { + localeManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtPointPropertyManager *pointManager = qobject_cast(manager)) { + pointManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtPointFPropertyManager *pointFManager = qobject_cast(manager)) { + pointFManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtSizePropertyManager *sizeManager = qobject_cast(manager)) { + sizeManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtSizeFPropertyManager *sizeFManager = qobject_cast(manager)) { + sizeFManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtRectPropertyManager *rectManager = qobject_cast(manager)) { + rectManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtRectFPropertyManager *rectFManager = qobject_cast(manager)) { + rectFManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtColorPropertyManager *colorManager = qobject_cast(manager)) { + colorManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtEnumPropertyManager *enumManager = qobject_cast(manager)) { + enumManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtSizePolicyPropertyManager *sizePolicyManager = + qobject_cast(manager)) { + sizePolicyManager->setValue(internProp, qvariant_cast(val)); + return; + } else if (QtFontPropertyManager *fontManager = qobject_cast(manager)) { + fontManager->setValue(internProp, qvariant_cast(val)); + return; +#ifndef QT_NO_CURSOR + } else if (QtCursorPropertyManager *cursorManager = qobject_cast(manager)) { + cursorManager->setValue(internProp, qvariant_cast(val)); + return; +#endif + } else if (QtFlagPropertyManager *flagManager = qobject_cast(manager)) { + flagManager->setValue(internProp, qvariant_cast(val)); + return; + } +} + +/*! + Sets the value of the specified \a attribute of the given \a + property, to \a value. + + The new \a value's type must be of the type returned by + attributeType(), or of a type that can be converted to + attributeType() using the QVariant::canConvert() function, + otherwise this function does nothing. + + \sa attributeValue(), QtVariantProperty::setAttribute(), attributeChanged() +*/ +void QtVariantPropertyManager::setAttribute(QtProperty *property, + const QString &attribute, const QVariant &value) +{ + QVariant oldAttr = attributeValue(property, attribute); + if (!oldAttr.isValid()) + return; + + int attrType = value.userType(); + if (!attrType) + return; + + if (attrType != attributeType(propertyType(property), attribute) && + !value.canConvert(QMetaType(attrType))) + return; + + QtProperty *internProp = propertyToWrappedProperty()->value(property, 0); + if (internProp == 0) + return; + + QtAbstractPropertyManager *manager = internProp->propertyManager(); + if (QtIntPropertyManager *intManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_maximumAttribute) + intManager->setMaximum(internProp, qvariant_cast(value)); + else if (attribute == d_ptr->m_minimumAttribute) + intManager->setMinimum(internProp, qvariant_cast(value)); + else if (attribute == d_ptr->m_singleStepAttribute) + intManager->setSingleStep(internProp, qvariant_cast(value)); + return; + } else if (QtDoublePropertyManager *doubleManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_maximumAttribute) + doubleManager->setMaximum(internProp, qvariant_cast(value)); + if (attribute == d_ptr->m_minimumAttribute) + doubleManager->setMinimum(internProp, qvariant_cast(value)); + if (attribute == d_ptr->m_singleStepAttribute) + doubleManager->setSingleStep(internProp, qvariant_cast(value)); + if (attribute == d_ptr->m_decimalsAttribute) + doubleManager->setDecimals(internProp, qvariant_cast(value)); + return; + } else if (QtStringPropertyManager *stringManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_regExpAttribute) + stringManager->setRegExp(internProp, qvariant_cast(value)); + return; + } else if (QtDatePropertyManager *dateManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_maximumAttribute) + dateManager->setMaximum(internProp, qvariant_cast(value)); + if (attribute == d_ptr->m_minimumAttribute) + dateManager->setMinimum(internProp, qvariant_cast(value)); + return; + } else if (QtPointFPropertyManager *pointFManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_decimalsAttribute) + pointFManager->setDecimals(internProp, qvariant_cast(value)); + return; + } else if (QtSizePropertyManager *sizeManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_maximumAttribute) + sizeManager->setMaximum(internProp, qvariant_cast(value)); + if (attribute == d_ptr->m_minimumAttribute) + sizeManager->setMinimum(internProp, qvariant_cast(value)); + return; + } else if (QtSizeFPropertyManager *sizeFManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_maximumAttribute) + sizeFManager->setMaximum(internProp, qvariant_cast(value)); + if (attribute == d_ptr->m_minimumAttribute) + sizeFManager->setMinimum(internProp, qvariant_cast(value)); + if (attribute == d_ptr->m_decimalsAttribute) + sizeFManager->setDecimals(internProp, qvariant_cast(value)); + return; + } else if (QtRectPropertyManager *rectManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_constraintAttribute) + rectManager->setConstraint(internProp, qvariant_cast(value)); + return; + } else if (QtRectFPropertyManager *rectFManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_constraintAttribute) + rectFManager->setConstraint(internProp, qvariant_cast(value)); + if (attribute == d_ptr->m_decimalsAttribute) + rectFManager->setDecimals(internProp, qvariant_cast(value)); + return; + } else if (QtEnumPropertyManager *enumManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_enumNamesAttribute) + enumManager->setEnumNames(internProp, qvariant_cast(value)); + if (attribute == d_ptr->m_enumIconsAttribute) + enumManager->setEnumIcons(internProp, qvariant_cast(value)); + return; + } else if (QtFlagPropertyManager *flagManager = qobject_cast(manager)) { + if (attribute == d_ptr->m_flagNamesAttribute) + flagManager->setFlagNames(internProp, qvariant_cast(value)); + return; + } +} + +/*! + \internal +*/ +bool QtVariantPropertyManager::hasValue(const QtProperty *property) const +{ + if (propertyType(property) == groupTypeId()) + return false; + return true; +} + +/*! + \internal +*/ +QString QtVariantPropertyManager::valueText(const QtProperty *property) const +{ + const QtProperty *internProp = propertyToWrappedProperty()->value(property, 0); + return internProp ? internProp->valueText() : QString(); +} + +/*! + \internal +*/ +QIcon QtVariantPropertyManager::valueIcon(const QtProperty *property) const +{ + const QtProperty *internProp = propertyToWrappedProperty()->value(property, 0); + return internProp ? internProp->valueIcon() : QIcon(); +} + +/*! + \internal +*/ +void QtVariantPropertyManager::initializeProperty(QtProperty *property) +{ + QtVariantProperty *varProp = variantProperty(property); + if (!varProp) + return; + + QMap::ConstIterator it = + d_ptr->m_typeToPropertyManager.find(d_ptr->m_propertyType); + if (it != d_ptr->m_typeToPropertyManager.constEnd()) { + QtProperty *internProp = nullptr; + if (!d_ptr->m_creatingSubProperties) { + QtAbstractPropertyManager *manager = it.value(); + internProp = manager->addProperty(); + d_ptr->m_internalToProperty[internProp] = varProp; + } + propertyToWrappedProperty()->insert(varProp, internProp); + if (internProp) { + const auto children = internProp->subProperties(); + QtVariantProperty *lastProperty = nullptr; + for (QtProperty *child : children) { + QtVariantProperty *prop = d_ptr->createSubProperty(varProp, lastProperty, child); + lastProperty = prop ? prop : lastProperty; + } + } + } +} + +/*! + \internal +*/ +void QtVariantPropertyManager::uninitializeProperty(QtProperty *property) +{ + const QMap >::iterator type_it = d_ptr->m_propertyToType.find(property); + if (type_it == d_ptr->m_propertyToType.end()) + return; + + PropertyMap::iterator it = propertyToWrappedProperty()->find(property); + if (it != propertyToWrappedProperty()->end()) { + QtProperty *internProp = it.value(); + if (internProp) { + d_ptr->m_internalToProperty.remove(internProp); + if (!d_ptr->m_destroyingSubProperties) { + delete internProp; + } + } + propertyToWrappedProperty()->erase(it); + } + d_ptr->m_propertyToType.erase(type_it); +} + +/*! + \internal +*/ +QtProperty *QtVariantPropertyManager::createProperty() +{ + if (!d_ptr->m_creatingProperty) + return 0; + + QtVariantProperty *property = new QtVariantProperty(this); + d_ptr->m_propertyToType.insert(property, qMakePair(property, d_ptr->m_propertyType)); + + return property; +} + +///////////////////////////// + +class QtVariantEditorFactoryPrivate +{ + QtVariantEditorFactory *q_ptr; + Q_DECLARE_PUBLIC(QtVariantEditorFactory) +public: + + QtSpinBoxFactory *m_spinBoxFactory; + QtDoubleSpinBoxFactory *m_doubleSpinBoxFactory; + QtCheckBoxFactory *m_checkBoxFactory; + QtLineEditFactory *m_lineEditFactory; + QtDateEditFactory *m_dateEditFactory; + QtTimeEditFactory *m_timeEditFactory; + QtDateTimeEditFactory *m_dateTimeEditFactory; + QtKeySequenceEditorFactory *m_keySequenceEditorFactory; + QtCharEditorFactory *m_charEditorFactory; + QtEnumEditorFactory *m_comboBoxFactory; + QtCursorEditorFactory *m_cursorEditorFactory; + QtColorEditorFactory *m_colorEditorFactory; + QtFontEditorFactory *m_fontEditorFactory; + + QMap m_factoryToType; + QMap m_typeToFactory; +}; + +/*! + \class QtVariantEditorFactory + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtVariantEditorFactory class provides widgets for properties + created by QtVariantPropertyManager objects. + + The variant factory provides the following widgets for the + specified property types: + + \table + \header + \li Property Type + \li Widget + \row + \li \c int + \li QSpinBox + \row + \li \c double + \li QDoubleSpinBox + \row + \li \c bool + \li QCheckBox + \row + \li QString + \li QLineEdit + \row + \li QDate + \li QDateEdit + \row + \li QTime + \li QTimeEdit + \row + \li QDateTime + \li QDateTimeEdit + \row + \li QKeySequence + \li customized editor + \row + \li QChar + \li customized editor + \row + \li \c enum + \li QComboBox + \row + \li QCursor + \li QComboBox + \endtable + + Note that QtVariantPropertyManager supports several additional property + types for which the QtVariantEditorFactory class does not provide + editing widgets, e.g. QPoint and QSize. To provide widgets for other + types using the variant approach, derive from the QtVariantEditorFactory + class. + + \sa QtAbstractEditorFactory, QtVariantPropertyManager +*/ + +/*! + Creates a factory with the given \a parent. +*/ +QtVariantEditorFactory::QtVariantEditorFactory(QObject *parent) + : QtAbstractEditorFactory(parent), d_ptr(new QtVariantEditorFactoryPrivate()) +{ + d_ptr->q_ptr = this; + + d_ptr->m_spinBoxFactory = new QtSpinBoxFactory(this); + d_ptr->m_factoryToType[d_ptr->m_spinBoxFactory] = QMetaType::Int; + d_ptr->m_typeToFactory[QMetaType::Int] = d_ptr->m_spinBoxFactory; + + d_ptr->m_doubleSpinBoxFactory = new QtDoubleSpinBoxFactory(this); + d_ptr->m_factoryToType[d_ptr->m_doubleSpinBoxFactory] = QMetaType::Double; + d_ptr->m_typeToFactory[QMetaType::Double] = d_ptr->m_doubleSpinBoxFactory; + + d_ptr->m_checkBoxFactory = new QtCheckBoxFactory(this); + d_ptr->m_factoryToType[d_ptr->m_checkBoxFactory] = QMetaType::Bool; + d_ptr->m_typeToFactory[QMetaType::Bool] = d_ptr->m_checkBoxFactory; + + d_ptr->m_lineEditFactory = new QtLineEditFactory(this); + d_ptr->m_factoryToType[d_ptr->m_lineEditFactory] = QMetaType::QString; + d_ptr->m_typeToFactory[QMetaType::QString] = d_ptr->m_lineEditFactory; + + d_ptr->m_dateEditFactory = new QtDateEditFactory(this); + d_ptr->m_factoryToType[d_ptr->m_dateEditFactory] = QMetaType::QDate; + d_ptr->m_typeToFactory[QMetaType::QDate] = d_ptr->m_dateEditFactory; + + d_ptr->m_timeEditFactory = new QtTimeEditFactory(this); + d_ptr->m_factoryToType[d_ptr->m_timeEditFactory] = QMetaType::QTime; + d_ptr->m_typeToFactory[QMetaType::QTime] = d_ptr->m_timeEditFactory; + + d_ptr->m_dateTimeEditFactory = new QtDateTimeEditFactory(this); + d_ptr->m_factoryToType[d_ptr->m_dateTimeEditFactory] = QMetaType::QDateTime; + d_ptr->m_typeToFactory[QMetaType::QDateTime] = d_ptr->m_dateTimeEditFactory; + + d_ptr->m_keySequenceEditorFactory = new QtKeySequenceEditorFactory(this); + d_ptr->m_factoryToType[d_ptr->m_keySequenceEditorFactory] = QMetaType::QKeySequence; + d_ptr->m_typeToFactory[QMetaType::QKeySequence] = d_ptr->m_keySequenceEditorFactory; + + d_ptr->m_charEditorFactory = new QtCharEditorFactory(this); + d_ptr->m_factoryToType[d_ptr->m_charEditorFactory] = QMetaType::QChar; + d_ptr->m_typeToFactory[QMetaType::QChar] = d_ptr->m_charEditorFactory; + + d_ptr->m_cursorEditorFactory = new QtCursorEditorFactory(this); + d_ptr->m_factoryToType[d_ptr->m_cursorEditorFactory] = QMetaType::QCursor; + d_ptr->m_typeToFactory[QMetaType::QCursor] = d_ptr->m_cursorEditorFactory; + + d_ptr->m_colorEditorFactory = new QtColorEditorFactory(this); + d_ptr->m_factoryToType[d_ptr->m_colorEditorFactory] = QMetaType::QColor; + d_ptr->m_typeToFactory[QMetaType::QColor] = d_ptr->m_colorEditorFactory; + + d_ptr->m_fontEditorFactory = new QtFontEditorFactory(this); + d_ptr->m_factoryToType[d_ptr->m_fontEditorFactory] = QMetaType::QFont; + d_ptr->m_typeToFactory[QMetaType::QFont] = d_ptr->m_fontEditorFactory; + + d_ptr->m_comboBoxFactory = new QtEnumEditorFactory(this); + const int enumId = QtVariantPropertyManager::enumTypeId(); + d_ptr->m_factoryToType[d_ptr->m_comboBoxFactory] = enumId; + d_ptr->m_typeToFactory[enumId] = d_ptr->m_comboBoxFactory; +} + +/*! + Destroys this factory, and all the widgets it has created. +*/ +QtVariantEditorFactory::~QtVariantEditorFactory() +{ +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtVariantEditorFactory::connectPropertyManager(QtVariantPropertyManager *manager) +{ + const auto intPropertyManagers = manager->findChildren(); + for (QtIntPropertyManager *manager : intPropertyManagers) + d_ptr->m_spinBoxFactory->addPropertyManager(manager); + + const auto doublePropertyManagers = manager->findChildren(); + for (QtDoublePropertyManager *manager : doublePropertyManagers) + d_ptr->m_doubleSpinBoxFactory->addPropertyManager(manager); + + const auto boolPropertyManagers = manager->findChildren(); + for (QtBoolPropertyManager *manager : boolPropertyManagers) + d_ptr->m_checkBoxFactory->addPropertyManager(manager); + + const auto stringPropertyManagers = manager->findChildren(); + for (QtStringPropertyManager *manager : stringPropertyManagers) + d_ptr->m_lineEditFactory->addPropertyManager(manager); + + const auto datePropertyManagers = manager->findChildren(); + for (QtDatePropertyManager *manager : datePropertyManagers) + d_ptr->m_dateEditFactory->addPropertyManager(manager); + + const auto timePropertyManagers = manager->findChildren(); + for (QtTimePropertyManager *manager : timePropertyManagers) + d_ptr->m_timeEditFactory->addPropertyManager(manager); + + const auto dateTimePropertyManagers = manager->findChildren(); + for (QtDateTimePropertyManager *manager : dateTimePropertyManagers) + d_ptr->m_dateTimeEditFactory->addPropertyManager(manager); + + const auto keySequencePropertyManagers = manager->findChildren(); + for (QtKeySequencePropertyManager *manager : keySequencePropertyManagers) + d_ptr->m_keySequenceEditorFactory->addPropertyManager(manager); + + const auto charPropertyManagers = manager->findChildren(); + for (QtCharPropertyManager *manager : charPropertyManagers) + d_ptr->m_charEditorFactory->addPropertyManager(manager); + + const auto localePropertyManagers = manager->findChildren(); + for (QtLocalePropertyManager *manager : localePropertyManagers) + d_ptr->m_comboBoxFactory->addPropertyManager(manager->subEnumPropertyManager()); + + const auto pointPropertyManagers = manager->findChildren(); + for (QtPointPropertyManager *manager : pointPropertyManagers) + d_ptr->m_spinBoxFactory->addPropertyManager(manager->subIntPropertyManager()); + + const auto pointFPropertyManagers = manager->findChildren(); + for (QtPointFPropertyManager *manager : pointFPropertyManagers) + d_ptr->m_doubleSpinBoxFactory->addPropertyManager(manager->subDoublePropertyManager()); + + const auto sizePropertyManagers = manager->findChildren(); + for (QtSizePropertyManager *manager : sizePropertyManagers) + d_ptr->m_spinBoxFactory->addPropertyManager(manager->subIntPropertyManager()); + + const auto sizeFPropertyManagers = manager->findChildren(); + for (QtSizeFPropertyManager *manager : sizeFPropertyManagers) + d_ptr->m_doubleSpinBoxFactory->addPropertyManager(manager->subDoublePropertyManager()); + + const auto rectPropertyManagers = manager->findChildren(); + for (QtRectPropertyManager *manager : rectPropertyManagers) + d_ptr->m_spinBoxFactory->addPropertyManager(manager->subIntPropertyManager()); + + const auto rectFPropertyManagers = manager->findChildren(); + for (QtRectFPropertyManager *manager : rectFPropertyManagers) + d_ptr->m_doubleSpinBoxFactory->addPropertyManager(manager->subDoublePropertyManager()); + + const auto colorPropertyManagers = manager->findChildren(); + for (QtColorPropertyManager *manager : colorPropertyManagers) { + d_ptr->m_colorEditorFactory->addPropertyManager(manager); + d_ptr->m_spinBoxFactory->addPropertyManager(manager->subIntPropertyManager()); + } + + const auto enumPropertyManagers = manager->findChildren(); + for (QtEnumPropertyManager *manager : enumPropertyManagers) + d_ptr->m_comboBoxFactory->addPropertyManager(manager); + + const auto sizePolicyPropertyManagers = manager->findChildren(); + for (QtSizePolicyPropertyManager *manager : sizePolicyPropertyManagers) { + d_ptr->m_spinBoxFactory->addPropertyManager(manager->subIntPropertyManager()); + d_ptr->m_comboBoxFactory->addPropertyManager(manager->subEnumPropertyManager()); + } + + const auto fontPropertyManagers = manager->findChildren(); + for (QtFontPropertyManager *manager : fontPropertyManagers) { + d_ptr->m_fontEditorFactory->addPropertyManager(manager); + d_ptr->m_spinBoxFactory->addPropertyManager(manager->subIntPropertyManager()); + d_ptr->m_comboBoxFactory->addPropertyManager(manager->subEnumPropertyManager()); + d_ptr->m_checkBoxFactory->addPropertyManager(manager->subBoolPropertyManager()); + } + + const auto cursorPropertyManagers = manager->findChildren(); + for (QtCursorPropertyManager *manager : cursorPropertyManagers) + d_ptr->m_cursorEditorFactory->addPropertyManager(manager); + + const auto flagPropertyManagers = manager->findChildren(); + for (QtFlagPropertyManager *manager : flagPropertyManagers) + d_ptr->m_checkBoxFactory->addPropertyManager(manager->subBoolPropertyManager()); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +QWidget *QtVariantEditorFactory::createEditor(QtVariantPropertyManager *manager, QtProperty *property, + QWidget *parent) +{ + const int propType = manager->propertyType(property); + QtAbstractEditorFactoryBase *factory = d_ptr->m_typeToFactory.value(propType, 0); + if (!factory) + return 0; + return factory->createEditor(wrappedProperty(property), parent); +} + +/*! + \internal + + Reimplemented from the QtAbstractEditorFactory class. +*/ +void QtVariantEditorFactory::disconnectPropertyManager(QtVariantPropertyManager *manager) +{ + const auto intPropertyManagers = manager->findChildren(); + for (QtIntPropertyManager *manager : intPropertyManagers) + d_ptr->m_spinBoxFactory->removePropertyManager(manager); + + const auto doublePropertyManagers = manager->findChildren(); + for (QtDoublePropertyManager *manager : doublePropertyManagers) + d_ptr->m_doubleSpinBoxFactory->removePropertyManager(manager); + + const auto boolPropertyManagers = manager->findChildren(); + for (QtBoolPropertyManager *manager : boolPropertyManagers) + d_ptr->m_checkBoxFactory->removePropertyManager(manager); + + const auto stringPropertyManagers = manager->findChildren(); + for (QtStringPropertyManager *manager : stringPropertyManagers) + d_ptr->m_lineEditFactory->removePropertyManager(manager); + + const auto datePropertyManagers = manager->findChildren(); + for (QtDatePropertyManager *manager : datePropertyManagers) + d_ptr->m_dateEditFactory->removePropertyManager(manager); + + const auto timePropertyManagers = manager->findChildren(); + for (QtTimePropertyManager *manager : timePropertyManagers) + d_ptr->m_timeEditFactory->removePropertyManager(manager); + + const auto dateTimePropertyManagers = manager->findChildren(); + for (QtDateTimePropertyManager *manager : dateTimePropertyManagers) + d_ptr->m_dateTimeEditFactory->removePropertyManager(manager); + + const auto keySequencePropertyManagers = manager->findChildren(); + for (QtKeySequencePropertyManager *manager : keySequencePropertyManagers) + d_ptr->m_keySequenceEditorFactory->removePropertyManager(manager); + + const auto charPropertyManagers = manager->findChildren(); + for (QtCharPropertyManager *manager : charPropertyManagers) + d_ptr->m_charEditorFactory->removePropertyManager(manager); + + const auto localePropertyManagers = manager->findChildren(); + for (QtLocalePropertyManager *manager : localePropertyManagers) + d_ptr->m_comboBoxFactory->removePropertyManager(manager->subEnumPropertyManager()); + + const auto pointPropertyManagers = manager->findChildren(); + for (QtPointPropertyManager *manager : pointPropertyManagers) + d_ptr->m_spinBoxFactory->removePropertyManager(manager->subIntPropertyManager()); + + const auto pointFPropertyManagers = manager->findChildren(); + for (QtPointFPropertyManager *manager : pointFPropertyManagers) + d_ptr->m_doubleSpinBoxFactory->removePropertyManager(manager->subDoublePropertyManager()); + + const auto sizePropertyManagers = manager->findChildren(); + for (QtSizePropertyManager *manager : sizePropertyManagers) + d_ptr->m_spinBoxFactory->removePropertyManager(manager->subIntPropertyManager()); + + const auto sizeFPropertyManagers = manager->findChildren(); + for (QtSizeFPropertyManager *manager : sizeFPropertyManagers) + d_ptr->m_doubleSpinBoxFactory->removePropertyManager(manager->subDoublePropertyManager()); + + const auto rectPropertyManagers = manager->findChildren(); + for (QtRectPropertyManager *manager : rectPropertyManagers) + d_ptr->m_spinBoxFactory->removePropertyManager(manager->subIntPropertyManager()); + + const auto rectFPropertyManagers = manager->findChildren(); + for (QtRectFPropertyManager *manager : rectFPropertyManagers) + d_ptr->m_doubleSpinBoxFactory->removePropertyManager(manager->subDoublePropertyManager()); + + const auto colorPropertyManagers = manager->findChildren(); + for (QtColorPropertyManager *manager : colorPropertyManagers) { + d_ptr->m_colorEditorFactory->removePropertyManager(manager); + d_ptr->m_spinBoxFactory->removePropertyManager(manager->subIntPropertyManager()); + } + + const auto enumPropertyManagers = manager->findChildren(); + for (QtEnumPropertyManager *manager : enumPropertyManagers) + d_ptr->m_comboBoxFactory->removePropertyManager(manager); + + const auto sizePolicyPropertyManagers = manager->findChildren(); + for (QtSizePolicyPropertyManager *manager : sizePolicyPropertyManagers) { + d_ptr->m_spinBoxFactory->removePropertyManager(manager->subIntPropertyManager()); + d_ptr->m_comboBoxFactory->removePropertyManager(manager->subEnumPropertyManager()); + } + + const auto fontPropertyManagers = manager->findChildren(); + for (QtFontPropertyManager *manager : fontPropertyManagers) { + d_ptr->m_fontEditorFactory->removePropertyManager(manager); + d_ptr->m_spinBoxFactory->removePropertyManager(manager->subIntPropertyManager()); + d_ptr->m_comboBoxFactory->removePropertyManager(manager->subEnumPropertyManager()); + d_ptr->m_checkBoxFactory->removePropertyManager(manager->subBoolPropertyManager()); + } + + const auto cursorPropertyManagers = manager->findChildren(); + for (QtCursorPropertyManager *manager : cursorPropertyManagers) + d_ptr->m_cursorEditorFactory->removePropertyManager(manager); + + const auto flagPropertyManagers = manager->findChildren(); + for (QtFlagPropertyManager *manager : flagPropertyManagers) + d_ptr->m_checkBoxFactory->removePropertyManager(manager->subBoolPropertyManager()); +} + +QT_END_NAMESPACE + +#include "moc_qtvariantproperty.cpp" diff --git a/src/shared/qtpropertybrowser/qtvariantproperty.h b/src/shared/qtpropertybrowser/qtvariantproperty.h new file mode 100644 index 0000000..464184f --- /dev/null +++ b/src/shared/qtpropertybrowser/qtvariantproperty.h @@ -0,0 +1,141 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTVARIANTPROPERTY_H +#define QTVARIANTPROPERTY_H + +#include "qtpropertybrowser.h" +#include +#include + +QT_BEGIN_NAMESPACE + +class QRegularExpression; + +typedef QMap QtIconMap; + +class QtVariantPropertyManager; + +class QtVariantProperty : public QtProperty +{ +public: + ~QtVariantProperty(); + QVariant value() const; + QVariant attributeValue(const QString &attribute) const; + int valueType() const; + int propertyType() const; + + void setValue(const QVariant &value); + void setAttribute(const QString &attribute, const QVariant &value); +protected: + QtVariantProperty(QtVariantPropertyManager *manager); +private: + friend class QtVariantPropertyManager; + QScopedPointer d_ptr; +}; + +class QtVariantPropertyManager : public QtAbstractPropertyManager +{ + Q_OBJECT +public: + QtVariantPropertyManager(QObject *parent = 0); + ~QtVariantPropertyManager(); + + virtual QtVariantProperty *addProperty(int propertyType, const QString &name = QString()); + + int propertyType(const QtProperty *property) const; + int valueType(const QtProperty *property) const; + QtVariantProperty *variantProperty(const QtProperty *property) const; + + virtual bool isPropertyTypeSupported(int propertyType) const; + virtual int valueType(int propertyType) const; + virtual QStringList attributes(int propertyType) const; + virtual int attributeType(int propertyType, const QString &attribute) const; + + virtual QVariant value(const QtProperty *property) const; + virtual QVariant attributeValue(const QtProperty *property, const QString &attribute) const; + + static int enumTypeId(); + static int flagTypeId(); + static int groupTypeId(); + static int iconMapTypeId(); +public Q_SLOTS: + virtual void setValue(QtProperty *property, const QVariant &val); + virtual void setAttribute(QtProperty *property, + const QString &attribute, const QVariant &value); +Q_SIGNALS: + void valueChanged(QtProperty *property, const QVariant &val); + void attributeChanged(QtProperty *property, + const QString &attribute, const QVariant &val); +protected: + bool hasValue(const QtProperty *property) const override; + QString valueText(const QtProperty *property) const override; + QIcon valueIcon(const QtProperty *property) const override; + void initializeProperty(QtProperty *property) override; + void uninitializeProperty(QtProperty *property) override; + QtProperty *createProperty() override; +private: + QScopedPointer d_ptr; + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, int, int)) + Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, double)) + Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, double, double)) + Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, double)) + Q_PRIVATE_SLOT(d_func(), void slotDecimalsChanged(QtProperty *, int)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, bool)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QString &)) + Q_PRIVATE_SLOT(d_func(), void slotRegExpChanged(QtProperty *, const QRegularExpression &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, QDate)) + Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, QDate, QDate)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, QTime)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QDateTime &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QKeySequence &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QChar &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QLocale &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QPoint &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QPointF &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QSize &)) + Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, const QSize &, const QSize &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QSizeF &)) + Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, const QSizeF &, const QSizeF &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QRect &)) + Q_PRIVATE_SLOT(d_func(), void slotConstraintChanged(QtProperty *, const QRect &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QRectF &)) + Q_PRIVATE_SLOT(d_func(), void slotConstraintChanged(QtProperty *, const QRectF &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QColor &)) + Q_PRIVATE_SLOT(d_func(), void slotEnumNamesChanged(QtProperty *, const QStringList &)) + Q_PRIVATE_SLOT(d_func(), void slotEnumIconsChanged(QtProperty *, const QMap &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QSizePolicy &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QFont &)) + Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QCursor &)) + Q_PRIVATE_SLOT(d_func(), void slotFlagNamesChanged(QtProperty *, const QStringList &)) + + Q_PRIVATE_SLOT(d_func(), void slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *)) + Q_PRIVATE_SLOT(d_func(), void slotPropertyRemoved(QtProperty *, QtProperty *)) + Q_DECLARE_PRIVATE(QtVariantPropertyManager) + Q_DISABLE_COPY_MOVE(QtVariantPropertyManager) +}; + +class QtVariantEditorFactory : public QtAbstractEditorFactory +{ + Q_OBJECT +public: + QtVariantEditorFactory(QObject *parent = 0); + ~QtVariantEditorFactory(); +protected: + void connectPropertyManager(QtVariantPropertyManager *manager) override; + QWidget *createEditor(QtVariantPropertyManager *manager, QtProperty *property, + QWidget *parent) override; + void disconnectPropertyManager(QtVariantPropertyManager *manager) override; +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtVariantEditorFactory) + Q_DISABLE_COPY_MOVE(QtVariantEditorFactory) +}; + +QT_END_NAMESPACE + +Q_DECLARE_METATYPE(QIcon) +Q_DECLARE_METATYPE(QtIconMap) +#endif diff --git a/src/shared/qttoolbardialog/images/back.png b/src/shared/qttoolbardialog/images/back.png new file mode 100644 index 0000000000000000000000000000000000000000..e58177f43cbd7e3f7d3886fe04278acb404c3f60 GIT binary patch literal 678 zcmV;X0$KfuP)J~2iFzHobR$W9+ed&iz#gEmW3Y&v zZ*1~MdipzQPYUyy_~Z-G`o@qna0>{{%>1pCHZ|9c3=DO#|4^B1;VbnCc=)W9ww8m4 z5Dx_AeopgXzy^VPz%mf{RiNioWwhsV2m3k#e&uEe!zFx$pqOEPVH#0TK(sQx&BWn* zqx`Q2i^!>#*2L)b+g-FLjck4v377E{R4Ncv5S+PyuQ8$#$gRtDp0Op+s|WHmRvNvJ7zd!z7-kcBSVc z_~L*!C{+>EtN7Fen^`C#i@?y-J4A)lg+B1=;Kz4Z%7e*Tj#t0Sg%}Y4<*J=$W`T(0 zfIE{D;0dX|{tEQ*qfOrK&&#Me!Yy0cg-^T%RZ`vE@$xZX5m<3Tf(V+A=3BoNF8s|n z{9Yjiya48^fXk86pr+z#@Tn<20mDERSTVEWKfT8e{7KYRtIBHHAITZSk@xgqT>t<8 M07*qoM6N<$f+VOsGXMYp literal 0 HcmV?d00001 diff --git a/src/shared/qttoolbardialog/images/down.png b/src/shared/qttoolbardialog/images/down.png new file mode 100644 index 0000000000000000000000000000000000000000..29d1d4439a139c662aecca94b6f43a465cfb9cc6 GIT binary patch literal 594 zcmV-Y0j z)Xz`TU>wKswOeUBH_Vo3LZ*V4p&U4v;LVFDq!ObUNJtQHC_UYOy}c$4_Z z287Mpy&>Gkk3$;%;XTGD)-SARcb^V+y#l_lys$a@k{nD+qgKLE+C6xLudGK{sd70w zcE71nDjtqr6rQslcH!s21HbzIZLG4Ku(F%O+U^xp_O4>4nBl-LJ{^?W2788E7ww3c$dW3qz>Ki(HSZqJlD~5#;x#SD}gQ7 zgv0(;bxhbL9Yezjn5K`uZiTiRwq2=|ckJ6DkxX7Tsy45p8>IMse%D zf;Vqf6vh<#P(J!fv{R}3IKcTOvuzkL=(>--JPth;j^KP+u2DCF7oBg1O2Gjh4cJAZUz`NyfQlF14XgvfeqKhRM8=g$nIpi07v2Pm$T0PG z+s5t5ev&IuzPy9iGfJ_*Szxjq-U_S#@di#sMFxj0Y^u zs2IrSA-xLzn@Xv~L10-`OD_1{xQ}!;h8VCMGZhEg7)ve(nH0=Nlth##z-1t-sznz( zI^knI8`}k}=1Q^8xg4a|;6+&Z7-tr^27CjyRJH7a$AX8**swS%Z2U-ZpmSmP5GMj$ z1y+C!prEQ%7kpz7mY14W%oynFgWlfyOj9X{G^0Np=uW$J^8**~h`aaUdlDkgAkhJB z2loJbfPHrEakyVc$6#mx5^=)7buY9XEP!Q$7GNCj4jnzl`B(FVY;?m5b-|rNMD_xg pfC->zKW))&VdLne22{OJfIn@@R^)Beh^qhq002ovPDHLkV1l$X9{d0R literal 0 HcmV?d00001 diff --git a/src/shared/qttoolbardialog/images/minus.png b/src/shared/qttoolbardialog/images/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d6f233d7399c4c07c6c66775f7806acac84b1870 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H3?x5i&EW)6P60k4u0Wb3;FYqWamwl0TmSYg zzPEV)f9L4=uDMg50*&A=3GxeOV9U{Bm1EIh)b!)dNY8G|=4l2>MR>Y6hE&9zJ@3ia zpuppBkxMsqLg3#2p{{ow4y^sCTR&@AtNcZ-!c0XiUIF(fS@*p4-Mvkxubuwr)McGB zHm7G5zmh%w<-tAQYwQ=f{_Q#i|$63?4Gdn(WDhGy5?S*zvKV>UH^L*-tUX z$Jv{I&ffC7bM{5Qj4e}Ezbj}vVjnSc;_|19_y1onFfAQuu24ykUoZnB3o9G9teS?7 zt9NpGMrLu#@0UVzfU@^IT^vIy;%X<}%xf{=arHKHYQL~@ZfotgwYUG*$MH^!I&%2V z@)sJL`rl4pesV%`$+ja*^=&3!b{Hmgs`72G$lh?~sgSmhV3T|L)#5pvnp5W$R3F&x zq^-&N)%9FO2FOm@bA*rKR&a{^p(h(SexKRzobg)f!S5Tb z0(ReeejodN_$Ob%pPGvI-{X5McZ=;}w|{;sE!Zmj;a8K;+WTSWrcUlO+qsq1zw`F> zL$~g{I69@}|MDjqpAy@zuKLv`b1gzCeQUnq?;S;@b8|k;l-+S#KOj|nW)fHH0-#SB NJYD@<);T3K0RYVY#HauO literal 0 HcmV?d00001 diff --git a/src/shared/qttoolbardialog/images/up.png b/src/shared/qttoolbardialog/images/up.png new file mode 100644 index 0000000000000000000000000000000000000000..e4373122171599c88b78c884b927c6a8b4a90c6a GIT binary patch literal 692 zcmV;l0!#ggP)p2raNh0iv$(l~TMx4kdC6q9nEA|`**D{}k#dX8|6LB>7#;)I^Ped=4Hzs5}YJfl=IMqVOwV3TOn<`fg+FtutHTOl+p4ItW@S@UCRT$s#e2Vdg=lo5D}~>p3$197_jRp z=YhPc7Gm8z$3=Kf7AcnG)$Gyx5pjP)J5;=W_SftyqWmZ>V+N`!8lA3I}LdVVyM axbX+reAIe(fQ}9T0000 +#include +#include +#include + +#include +#include + +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +class QtFullToolBarManagerPrivate; + +class QtFullToolBarManager : public QObject +{ + Q_OBJECT +public: + QtFullToolBarManager(QObject *parent); + ~QtFullToolBarManager(); + + void setMainWindow(QMainWindow *mainWindow); + QMainWindow *mainWindow() const; + + void addCategory(const QString &category); + bool hasCategory(const QString &category) const; + QStringList categories() const; + QList categoryActions(const QString &category) const; + QString actionCategory(QAction *action) const; + + // only non-separator + void addAction(QAction *action, const QString &category); + + void removeAction(QAction *action); + + QSet actions() const; + bool isWidgetAction(QAction *action) const; + + /* + Adds (registers) toolBar. Adds (registers) actions that already exists in toolBar. + Remembers toolbar and its actions as a default. + */ + void addDefaultToolBar(QToolBar *toolBar, const QString &category); + + void removeDefaultToolBar(QToolBar *toolBar); + // NULL on action list means separator. + QMap > defaultToolBars() const; + bool isDefaultToolBar(QToolBar *toolBar) const; + + QToolBar *createToolBar(const QString &toolBarName); + void deleteToolBar(QToolBar *toolBar); // only those which were created, not added + + QList actions(QToolBar *toolBar) const; + + void setToolBars(const QMap > &actions); + void setToolBar(QToolBar *toolBar, const QList &actions); + + QMap > toolBarsActions() const; + QByteArray saveState(int version = 0) const; + bool restoreState(const QByteArray &state, int version = 0); + +public slots: + + void resetToolBar(QToolBar *toolBar); + void resetAllToolBars(); + +signals: + void toolBarCreated(QToolBar *toolBar); + void toolBarRemoved(QToolBar *toolBar); + + /* + If QToolBarWidgetAction was in another tool bar and is inserted into + this toolBar, toolBarChanged is first emitted for other toolbar - without + that action. (Another approach may be that user first must call setToolBar + without that action for old tool bar) + */ + void toolBarChanged(QToolBar *toolBar, const QList &actions); + +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtFullToolBarManager) + Q_DISABLE_COPY_MOVE(QtFullToolBarManager) +}; + +class QtFullToolBarManagerPrivate +{ + class QtFullToolBarManager *q_ptr; + Q_DECLARE_PUBLIC(QtFullToolBarManager) + +public: + + QToolBar *toolBarWidgetAction(QAction *action) const; + void removeWidgetActions(const QMap > &actions); + + enum { + VersionMarker = 0xff, + ToolBarMarker = 0xfe, + CustomToolBarMarker = 0xfd, + }; + + void saveState(QDataStream &stream) const; + bool restoreState(QDataStream &stream) const; + QToolBar *findDefaultToolBar(const QString &objectName) const; + QAction *findAction(const QString &actionName) const; + + QToolBar *toolBarByName(const QString &toolBarName) const; + + QMap > categoryToActions; + QMap actionToCategory; + + QSet allActions; + QMap widgetActions; + QSet regularActions; + QMap > actionToToolBars; + + QMap > toolBars; + QMap > toolBarsWithSeparators; + QMap > defaultToolBars; + QList customToolBars; + + QMainWindow *theMainWindow{nullptr}; +}; + +QToolBar *QtFullToolBarManagerPrivate::toolBarWidgetAction(QAction *action) const +{ + if (widgetActions.contains(action)) + return widgetActions.value(action); + return 0; +} + +void QtFullToolBarManagerPrivate::removeWidgetActions(const QMap > + &actions) +{ + auto itToolBar = actions.constBegin(); + while (itToolBar != actions.constEnd()) { + QToolBar *toolBar = itToolBar.key(); + auto newActions = toolBars.value(toolBar); + auto newActionsWithSeparators = toolBarsWithSeparators.value(toolBar); + + QList removedActions; + const auto actionList = itToolBar.value(); + for (QAction *action : actionList) { + if (newActions.contains(action) && toolBarWidgetAction(action) == toolBar) { + newActions.removeAll(action); + newActionsWithSeparators.removeAll(action); + removedActions.append(action); + } + } + + //emit q_ptr->toolBarChanged(toolBar, newActions); + + toolBars.insert(toolBar, newActions); + toolBarsWithSeparators.insert(toolBar, newActionsWithSeparators); + for (QAction *oldAction : std::as_const(removedActions)) { + widgetActions.insert(oldAction, 0); + actionToToolBars[oldAction].removeAll(toolBar); + } + + ++itToolBar; + } +} + +void QtFullToolBarManagerPrivate::saveState(QDataStream &stream) const +{ + stream << (uchar) ToolBarMarker; + stream << defaultToolBars.size(); + auto itToolBar = defaultToolBars.constBegin(); + while (itToolBar != defaultToolBars.constEnd()) { + QToolBar *tb = itToolBar.key(); + if (tb->objectName().isEmpty()) { + qWarning("QtToolBarManager::saveState(): 'objectName' not set for QToolBar " + "%p '%s', using 'windowTitle' instead", + tb, tb->windowTitle().toLocal8Bit().constData()); + stream << tb->windowTitle(); + } else { + stream << tb->objectName(); + } + + const auto actions = toolBars.value(tb); + stream << actions.size(); + for (QAction *action : actions) { + if (action) { + if (action->objectName().isEmpty()) { + qWarning("QtToolBarManager::saveState(): 'objectName' not set for QAction " + "%p '%s', using 'text' instead", + action, action->text().toLocal8Bit().constData()); + stream << action->text(); + } else { + stream << action->objectName(); + } + } else { + stream << QString(); + } + } + ++itToolBar; + } + + + stream << (uchar) CustomToolBarMarker; + stream << toolBars.size() - defaultToolBars.size(); + itToolBar = toolBars.constBegin(); + while (itToolBar != toolBars.constEnd()) { + QToolBar *tb = itToolBar.key(); + if (!defaultToolBars.contains(tb)) { + stream << tb->objectName(); + stream << tb->windowTitle(); + + stream << toolBars[tb].size(); + + const auto actions = toolBars.value(tb); + for (QAction *action : actions) { + if (action) { + if (action->objectName().isEmpty()) { + qWarning("QtToolBarManager::saveState(): 'objectName' not set for QAction " + "%p '%s', using 'text' instead", + action, action->text().toLocal8Bit().constData()); + stream << action->text(); + } else { + stream << action->objectName(); + } + } else { + stream << QString(); + } + } + } + ++itToolBar; + } +} + +bool QtFullToolBarManagerPrivate::restoreState(QDataStream &stream) const +{ + uchar tmarker; + stream >> tmarker; + if (tmarker != ToolBarMarker) + return false; + + int toolBars; + stream >> toolBars; + for (int i = 0; i < toolBars; i++) { + QString objectName; + stream >> objectName; + int actionCount; + stream >> actionCount; + QList actions; + for (int j = 0; j < actionCount; j++) { + QString actionName; + stream >> actionName; + + if (actionName.isEmpty()) + actions.append(0); + else { + QAction *action = findAction(actionName); + if (action) + actions.append(action); + } + } + + QToolBar *toolBar = findDefaultToolBar(objectName); + if (toolBar) + q_ptr->setToolBar(toolBar, actions); + } + + + + uchar ctmarker; + stream >> ctmarker; + if (ctmarker != CustomToolBarMarker) + return false; + + auto oldCustomToolBars = customToolBars; + + stream >> toolBars; + for (int i = 0; i < toolBars; i++) { + QString objectName; + QString toolBarName; + int actionCount; + stream >> objectName; + stream >> toolBarName; + stream >> actionCount; + QList actions; + for (int j = 0; j < actionCount; j++) { + QString actionName; + stream >> actionName; + + if (actionName.isEmpty()) + actions.append(0); + else { + QAction *action = findAction(actionName); + if (action) + actions.append(action); + } + } + + QToolBar *toolBar = toolBarByName(objectName); + if (toolBar) { + toolBar->setWindowTitle(toolBarName); + oldCustomToolBars.removeAll(toolBar); + } + else + toolBar = q_ptr->createToolBar(toolBarName); + if (toolBar) { + toolBar->setObjectName(objectName); + q_ptr->setToolBar(toolBar, actions); + } + } + for (QToolBar *toolBar : std::as_const(oldCustomToolBars)) + q_ptr->deleteToolBar(toolBar); + return true; +} + +QToolBar *QtFullToolBarManagerPrivate::findDefaultToolBar(const QString &objectName) const +{ + auto itToolBar = defaultToolBars.constBegin(); + while (itToolBar != defaultToolBars.constEnd()) { + QToolBar *tb = itToolBar.key(); + if (tb->objectName() == objectName) + return tb; + + ++itToolBar; + } + + qWarning("QtToolBarManager::restoreState(): cannot find a QToolBar named " + "'%s', trying to match using 'windowTitle' instead.", + objectName.toLocal8Bit().constData()); + + itToolBar = defaultToolBars.constBegin(); + while (itToolBar != defaultToolBars.constEnd()) { + QToolBar *tb = itToolBar.key(); + if (tb->windowTitle() == objectName) + return tb; + + ++itToolBar; + } + qWarning("QtToolBarManager::restoreState(): cannot find a QToolBar with " + "matching 'windowTitle' (looking for '%s').", + objectName.toLocal8Bit().constData()); + + return 0; +} + +QAction *QtFullToolBarManagerPrivate::findAction(const QString &actionName) const +{ + auto it = + std::find_if(allActions.cbegin(), allActions.cend(), + [&actionName] (const QAction *a) { return a->objectName() == actionName; }); + if (it != allActions.cend()) + return *it; + qWarning("QtToolBarManager::restoreState(): cannot find a QAction named " + "'%s', trying to match using 'text' instead.", + actionName.toLocal8Bit().constData()); + + it = std::find_if(allActions.cbegin(), allActions.cend(), + [&actionName] (const QAction *a) { return a->text() == actionName; }); + if (it != allActions.cend()) + return *it; + qWarning("QtToolBarManager::restoreState(): cannot find a QAction with " + "matching 'text' (looking for '%s').", + actionName.toLocal8Bit().constData()); + + return 0; +} + +QToolBar *QtFullToolBarManagerPrivate::toolBarByName(const QString &toolBarName) const +{ + auto itToolBar = toolBars.constBegin(); + while (itToolBar != toolBars.constEnd()) { + QToolBar *toolBar = itToolBar.key(); + if (toolBar->objectName() == toolBarName) + return toolBar; + + ++itToolBar; + } + return 0; +} + +////////////////////////////// + +QtFullToolBarManager::QtFullToolBarManager(QObject *parent) + : QObject(parent), d_ptr(new QtFullToolBarManagerPrivate) +{ + d_ptr->q_ptr = this; +} + +QtFullToolBarManager::~QtFullToolBarManager() +{ +} + +void QtFullToolBarManager::setMainWindow(QMainWindow *mainWindow) +{ + d_ptr->theMainWindow = mainWindow; +} + +QMainWindow *QtFullToolBarManager::mainWindow() const +{ + return d_ptr->theMainWindow; +} + +void QtFullToolBarManager::addCategory(const QString &category) +{ + d_ptr->categoryToActions[category] = QList(); +} + +bool QtFullToolBarManager::hasCategory(const QString &category) const +{ + return d_ptr->categoryToActions.contains(category); +} + +QStringList QtFullToolBarManager::categories() const +{ + return d_ptr->categoryToActions.keys(); +} + +QList QtFullToolBarManager::categoryActions(const QString &category) const +{ + const auto it = d_ptr->categoryToActions.constFind(category); + if (it != d_ptr->categoryToActions.constEnd()) + return it.value(); + return {}; +} + +QString QtFullToolBarManager::actionCategory(QAction *action) const +{ + QMap::ConstIterator it = d_ptr->actionToCategory.find(action); + if (it != d_ptr->actionToCategory.constEnd()) + return it.value(); + return QString(); +} + +void QtFullToolBarManager::addAction(QAction *action, const QString &category) +{ + if (!action) + return; + if (action->isSeparator()) + return; + if (d_ptr->allActions.contains(action)) + return; + if (QLatin1String(action->metaObject()->className()) == + QLatin1String("QToolBarWidgetAction")) + d_ptr->widgetActions.insert(action, 0); + else + d_ptr->regularActions.insert(action); + d_ptr->allActions.insert(action); + d_ptr->categoryToActions[category].append(action); + d_ptr->actionToCategory[action] = category; +} + +void QtFullToolBarManager::removeAction(QAction *action) +{ + if (!d_ptr->allActions.contains(action)) + return; + + const auto toolBars = d_ptr->actionToToolBars[action]; + for (QToolBar *toolBar : toolBars) { + d_ptr->toolBars[toolBar].removeAll(action); + d_ptr->toolBarsWithSeparators[toolBar].removeAll(action); + + toolBar->removeAction(action); + } + + auto itDefault = d_ptr->defaultToolBars.constBegin(); + while (itDefault != d_ptr->defaultToolBars.constEnd()) { + if (itDefault.value().contains(action)) + d_ptr->defaultToolBars[itDefault.key()].removeAll(action); + + itDefault++; + } + + d_ptr->allActions.remove(action); + d_ptr->widgetActions.remove(action); + d_ptr->regularActions.remove(action); + d_ptr->actionToToolBars.remove(action); + + QString category = d_ptr->actionToCategory.value(action); + d_ptr->actionToCategory.remove(action); + d_ptr->categoryToActions[category].removeAll(action); + + if (d_ptr->categoryToActions[category].isEmpty()) + d_ptr->categoryToActions.remove(category); +} + +QSet QtFullToolBarManager::actions() const +{ + return d_ptr->allActions; +} + +bool QtFullToolBarManager::isWidgetAction(QAction *action) const +{ + if (d_ptr->widgetActions.contains(action)) + return true; + return false; +} + +void QtFullToolBarManager::addDefaultToolBar(QToolBar *toolBar, const QString &category) +{ + if (!toolBar) + return; + if (d_ptr->toolBars.contains(toolBar)) + return; + // could be also checked if toolBar belongs to mainwindow + + QList newActionsWithSeparators; + QList newActions; + const auto actions = toolBar->actions(); + for (QAction *action : actions) { + addAction(action, category); + if (d_ptr->widgetActions.contains(action)) + d_ptr->widgetActions.insert(action, toolBar); + newActionsWithSeparators.append(action); + if (action->isSeparator()) + action = 0; + else + d_ptr->actionToToolBars[action].append(toolBar); + newActions.append(action); + } + d_ptr->defaultToolBars.insert(toolBar, newActions); + //Below could be done by call setToolBar() if we want signal emission here. + d_ptr->toolBars.insert(toolBar, newActions); + d_ptr->toolBarsWithSeparators.insert(toolBar, newActionsWithSeparators); +} + +void QtFullToolBarManager::removeDefaultToolBar(QToolBar *toolBar) +{ + if (!d_ptr->defaultToolBars.contains(toolBar)) + return; + + const auto defaultActions = d_ptr->defaultToolBars[toolBar]; + setToolBar(toolBar, QList()); + for (QAction *action : defaultActions) + removeAction(action); + + d_ptr->toolBars.remove(toolBar); + d_ptr->toolBarsWithSeparators.remove(toolBar); + d_ptr->defaultToolBars.remove(toolBar); + + for (QAction *action : defaultActions) { + if (action) + toolBar->insertAction(0, action); + else + toolBar->insertSeparator(0); + } +} + +QMap > QtFullToolBarManager::defaultToolBars() const +{ + return d_ptr->defaultToolBars; +} + +bool QtFullToolBarManager::isDefaultToolBar(QToolBar *toolBar) const +{ + if (d_ptr->defaultToolBars.contains(toolBar)) + return true; + return false; +} + +QToolBar *QtFullToolBarManager::createToolBar(const QString &toolBarName) +{ + if (!mainWindow()) + return 0; + QToolBar *toolBar = new QToolBar(toolBarName, mainWindow()); + int i = 1; + const QString prefix = QLatin1String("_Custom_Toolbar_%1"); + QString name = prefix.arg(i); + while (d_ptr->toolBarByName(name)) + name = prefix.arg(++i); + toolBar->setObjectName(name); + mainWindow()->addToolBar(toolBar); + d_ptr->customToolBars.append(toolBar); + d_ptr->toolBars.insert(toolBar, QList()); + d_ptr->toolBarsWithSeparators.insert(toolBar, QList()); + return toolBar; +} + +void QtFullToolBarManager::deleteToolBar(QToolBar *toolBar) +{ + if (!d_ptr->toolBars.contains(toolBar)) + return; + if (d_ptr->defaultToolBars.contains(toolBar)) + return; + setToolBar(toolBar, QList()); + d_ptr->customToolBars.removeAll(toolBar); + d_ptr->toolBars.remove(toolBar); + d_ptr->toolBarsWithSeparators.remove(toolBar); + delete toolBar; +} + +QList QtFullToolBarManager::actions(QToolBar *toolBar) const +{ + if (d_ptr->toolBars.contains(toolBar)) + return d_ptr->toolBars.value(toolBar); + return QList(); +} + +void QtFullToolBarManager::setToolBars(const QMap > &actions) +{ + auto it = actions.constBegin(); + while (it != actions.constEnd()) { + setToolBar(it.key(), it.value()); + ++it; + } +} + +void QtFullToolBarManager::setToolBar(QToolBar *toolBar, const QList &actions) +{ + if (!toolBar) + return; + if (!d_ptr->toolBars.contains(toolBar)) + return; + + if (actions == d_ptr->toolBars[toolBar]) + return; + + QMap > toRemove; + + QList newActions; + for (QAction *action : actions) { + if (!action || (!newActions.contains(action) && d_ptr->allActions.contains(action))) + newActions.append(action); + + QToolBar *oldToolBar = d_ptr->toolBarWidgetAction(action); + if (oldToolBar && oldToolBar != toolBar) + toRemove[oldToolBar].append(action); + } + + d_ptr->removeWidgetActions(toRemove); + + const auto oldActions = d_ptr->toolBarsWithSeparators.value(toolBar); + for (QAction *action : oldActions) { + /* + When addDefaultToolBar() separator actions could be checked if they are + inserted in other toolbars - if yes then create new one. + */ + if (d_ptr->toolBarWidgetAction(action) == toolBar) + d_ptr->widgetActions.insert(action, 0); + toolBar->removeAction(action); + if (action->isSeparator()) + delete action; + else + d_ptr->actionToToolBars[action].removeAll(toolBar); + } + + QList newActionsWithSeparators; + for (QAction *action : std::as_const(newActions)) { + QAction *newAction = nullptr; + if (!action) + newAction = toolBar->insertSeparator(0); + if (d_ptr->allActions.contains(action)) { + toolBar->insertAction(0, action); + newAction = action; + d_ptr->actionToToolBars[action].append(toolBar); + } + newActionsWithSeparators.append(newAction); + } + d_ptr->toolBars.insert(toolBar, newActions); + d_ptr->toolBarsWithSeparators.insert(toolBar, newActionsWithSeparators); +} + +QMap > QtFullToolBarManager::toolBarsActions() const +{ + return d_ptr->toolBars; +} + +void QtFullToolBarManager::resetToolBar(QToolBar *toolBar) +{ + if (!isDefaultToolBar(toolBar)) + return; + setToolBar(toolBar, defaultToolBars().value(toolBar)); +} + +void QtFullToolBarManager::resetAllToolBars() +{ + setToolBars(defaultToolBars()); + const auto oldCustomToolBars = d_ptr->customToolBars; + for (QToolBar *tb : oldCustomToolBars) + deleteToolBar(tb); +} + +QByteArray QtFullToolBarManager::saveState(int version) const +{ + QByteArray data; + QDataStream stream(&data, QIODevice::WriteOnly); + stream << int(QtFullToolBarManagerPrivate::VersionMarker); + stream << version; + d_ptr->saveState(stream); + return data; +} + +bool QtFullToolBarManager::restoreState(const QByteArray &state, int version) +{ + QByteArray sd = state; + QDataStream stream(&sd, QIODevice::ReadOnly); + int marker, v; + stream >> marker; + stream >> v; + if (marker != QtFullToolBarManagerPrivate::VersionMarker || v != version) + return false; + return d_ptr->restoreState(stream); +} + + +class QtToolBarManagerPrivate +{ + class QtToolBarManager *q_ptr; + Q_DECLARE_PUBLIC(QtToolBarManager) +public: + QtFullToolBarManager *manager; +}; + +////////////////////////////////////// + +/*! \class QtToolBarManager + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtToolBarManager class provides toolbar management for + main windows. + + The QtToolBarManager is typically used with a QtToolBarDialog + which allows the user to customize the toolbars for a given main + window. The QtToolBarDialog class's functionality is controlled by + an instance of the QtToolBarManager class, and the main window is + specified using the QtToolBarManager class's setMainWindow() + function. + + The currently specified main window can be retrieved using the + mainWindow() function. + + The toolbar manager holds lists of the given main window's actions + and toolbars, and can add actions and toolbars to these + lists using the addAction() and addToolBar() functions + respectively. The actions can in addition be categorized + acccording to the user's preferences. The toolbar manager can also + remove custom actions and toolbars using the removeAction() and + removeToolBar() functions. + + Finally, the QtToolBarManager is able to save the customized state + of its toolbars using the saveState() function as well as restore + the toolbars' saved state using restoreState() function. + + \sa QtToolBarDialog +*/ + +/*! + Creates a toolbar manager with the given \a parent. +*/ +QtToolBarManager::QtToolBarManager(QObject *parent) + : QObject(parent), d_ptr(new QtToolBarManagerPrivate) +{ + d_ptr->q_ptr = this; + + d_ptr->manager = new QtFullToolBarManager(this); +} + +/*! + Destroys the toolbar manager. +*/ +QtToolBarManager::~QtToolBarManager() +{ +} + +/*! + Sets the main window upon which the toolbar manager operates, to + be the given \a mainWindow. +*/ +void QtToolBarManager::setMainWindow(QMainWindow *mainWindow) +{ + d_ptr->manager->setMainWindow(mainWindow); +} + +/*! + Returns the main window associated this toolbar manager. +*/ +QMainWindow *QtToolBarManager::mainWindow() const +{ + return d_ptr->manager->mainWindow(); +} + +/*! + Adds the given \a action to the given \a category in the manager's + list of actions. If the \a category doesn't exist it is created. + Only non separator actions can be added. If the action is already + added to the list, the function doesn't do anything. + + \sa removeAction() +*/ +void QtToolBarManager::addAction(QAction *action, const QString &category) +{ + d_ptr->manager->addAction(action, category); +} + +/*! + Removes the specified \a action from the manager's list of + actions. The action is also removed from all the registered + toolbars. If the specified \a action is the only action in its + category, that category is removed as well. + + \sa addAction() +*/ +void QtToolBarManager::removeAction(QAction *action) +{ + d_ptr->manager->removeAction(action); +} + +/*! + Adds the given \a toolBar to the manager's toolbar list. + + All the \a toolBar's actions are automatically added to the given + \a category in the manager's list of actions if they're not + already there. The manager remembers which toolbar the actions + belonged to, so, when the \a toolBar is removed, its actions will + be removed as well. + + Custom toolbars are created with the main window returned by + the mainWindow() function, as its parent. + + \sa removeToolBar() +*/ +void QtToolBarManager::addToolBar(QToolBar *toolBar, const QString &category) +{ + d_ptr->manager->addDefaultToolBar(toolBar, category); +} + +/*! + Removes the specified \a toolBar from the manager's list. All the + actions that existed in the specified \a toolBar when it was + added are removed as well. + + \sa addToolBar() +*/ +void QtToolBarManager::removeToolBar(QToolBar *toolBar) +{ + d_ptr->manager->removeDefaultToolBar(toolBar); +} + +/*! + Returns the manager's toolbar list. +*/ +QList QtToolBarManager::toolBars() const +{ + return d_ptr->manager->toolBarsActions().keys(); +} + +/* +void QtToolBarManager::resetToolBar(QToolBar *toolBar) +{ + d_ptr->manager->resetToolBar(toolBar); +} + +void QtToolBarManager::resetAllToolBars() +{ + d_ptr->manager->resetAllToolBars(); +} +*/ + +/*! + Saves the state of the toolbar manager's toolbars. The \a version + number is stored as part of the data. + + Identifies all the QToolBar and QAction objects by their object + name property. Ensure that this property is unique for each + QToolBar and QAction that you add using the QtToolBarManager. + + Returns an identifier for the state which can be passed along with + the version number to the restoreState() function to restore the + saved state. + + \sa restoreState() +*/ +QByteArray QtToolBarManager::saveState(int version) const +{ + return d_ptr->manager->saveState(version); +} + +/*! + Restores the saved state of the toolbar manager's toolbars. The + \a version number is compared with the version number of the + stored \a state. + + Returns true if the version numbers are matching and the toolbar + manager's state is restored; otherwise the toolbar manager's state + is left unchanged and the function returns false. + + Note that the state of the toolbar manager's toolbars should be + restored before restoring the state of the main window's toolbars + and dockwidgets using the QMainWindow::restoreState() function. In + that way the restoreState() function can create the custom + toolbars before the QMainWindow::restoreState() function restores + the custom toolbars' positions. + + \sa saveState() +*/ +bool QtToolBarManager::restoreState(const QByteArray &state, int version) +{ + return d_ptr->manager->restoreState(state, version); +} + +////////////////////// + +class ToolBarItem { +public: + ToolBarItem() : tb(0) {} + ToolBarItem(QToolBar *toolBar) : tb(toolBar) {} + ToolBarItem(QToolBar *toolBar, const QString &toolBarName) + : tb(toolBar), tbName(toolBarName) {} + ToolBarItem(const QString &toolBarName) : tb(0), tbName(toolBarName) {} + QToolBar *toolBar() const + { return tb; } + void setToolBar(QToolBar *toolBar) + { tb = toolBar; } + QString toolBarName() const + { return tbName; } + void setToolBarName(const QString &toolBarName) + { tbName = toolBarName; } +private: + QToolBar *tb; + QString tbName; +}; + +class QtToolBarDialogPrivate { + QtToolBarDialog *q_ptr; + Q_DECLARE_PUBLIC(QtToolBarDialog) +public: + QtToolBarDialogPrivate() + : toolBarManager(0), + currentAction(0), + currentToolBar(0) + { } + + ToolBarItem *createItem(QToolBar *toolBar); + ToolBarItem *createItem(const QString &toolBarName); + void deleteItem(ToolBarItem *item); + + void newClicked(); + void removeClicked(); + void defaultClicked(); + void okClicked(); + void applyClicked(); + void cancelClicked(); + void upClicked(); + void downClicked(); + void leftClicked(); + void rightClicked(); + void renameClicked(); + void toolBarRenamed(QListWidgetItem *item); + void currentActionChanged(QTreeWidgetItem *current); + void currentToolBarChanged(QListWidgetItem *current); + void currentToolBarActionChanged(QListWidgetItem *current); + + void removeToolBar(ToolBarItem *item); + bool isDefaultToolBar(ToolBarItem *item) const; + void setButtons(); + void clearOld(); + void fillNew(); + QtFullToolBarManager *toolBarManager; + QMap > currentState; + QMap toolBarItems; + QSet createdItems; + QSet removedItems; + + QSet allToolBarItems; + + // static + QTreeWidgetItem *currentAction; + QMap actionToItem; + QMap itemToAction; + + // dynamic + ToolBarItem *currentToolBar; + QMap toolBarToItem; + QMap itemToToolBar; + + // dynamic + QMap actionToCurrentItem; + QMap currentItemToAction; + + QMap widgetActionToToolBar; + QMap > toolBarToWidgetActions; + + QString separatorText; + Ui::QtToolBarDialog ui; +}; + +ToolBarItem *QtToolBarDialogPrivate::createItem(QToolBar *toolBar) +{ + if (!toolBar) + return 0; + ToolBarItem *item = new ToolBarItem(toolBar, toolBar->windowTitle()); + allToolBarItems.insert(item); + return item; +} + +ToolBarItem *QtToolBarDialogPrivate::createItem(const QString &toolBarName) +{ + ToolBarItem *item = new ToolBarItem(toolBarName); + allToolBarItems.insert(item); + return item; +} + +void QtToolBarDialogPrivate::deleteItem(ToolBarItem *item) +{ + if (!allToolBarItems.contains(item)) + return; + allToolBarItems.remove(item); + delete item; +} + +void QtToolBarDialogPrivate::clearOld() +{ + ui.actionTree->clear(); + ui.toolBarList->clear(); + ui.currentToolBarList->clear(); + ui.removeButton->setEnabled(false); + ui.newButton->setEnabled(false); + ui.upButton->setEnabled(false); + ui.downButton->setEnabled(false); + ui.leftButton->setEnabled(false); + ui.rightButton->setEnabled(false); + + actionToItem.clear(); + itemToAction.clear(); + toolBarToItem.clear(); + itemToToolBar.clear(); + actionToCurrentItem.clear(); + currentItemToAction.clear(); + widgetActionToToolBar.clear(); + toolBarToWidgetActions.clear(); + + toolBarItems.clear(); + currentState.clear(); + createdItems.clear(); + removedItems.clear(); + qDeleteAll(allToolBarItems); + allToolBarItems.clear(); + + currentToolBar = nullptr; + currentAction = nullptr; +} + +void QtToolBarDialogPrivate::fillNew() +{ + if (!toolBarManager) + return; + + QTreeWidgetItem *item = new QTreeWidgetItem(ui.actionTree); + item->setText(0, separatorText); + ui.actionTree->setCurrentItem(item); + currentAction = item; + actionToItem.insert(0, item); + itemToAction.insert(item, 0); + const QStringList categories = toolBarManager->categories(); + for (const QString &category : categories) { + QTreeWidgetItem *categoryItem = new QTreeWidgetItem(ui.actionTree); + categoryItem->setText(0, category); + const auto actions = toolBarManager->categoryActions(category); + for (QAction *action : actions) { + item = new QTreeWidgetItem(categoryItem); + item->setText(0, action->text()); + item->setIcon(0, action->icon()); + item->setTextAlignment(0, Qt::Alignment(Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic)); + actionToItem.insert(action, item); + itemToAction.insert(item, action); + if (toolBarManager->isWidgetAction(action)) { + item->setData(0, Qt::ForegroundRole, QColor(Qt::blue)); + widgetActionToToolBar.insert(action, 0); + } + item->setFlags(item->flags() | Qt::ItemIsDragEnabled); + } + categoryItem->setExpanded(true); + } + //ui.actionTree->sortItems(0, Qt::AscendingOrder); + + const auto toolBars = toolBarManager->toolBarsActions(); + auto it = toolBars.constBegin(); + while (it != toolBars.constEnd()) { + QToolBar *toolBar = it.key(); + ToolBarItem *tbItem = createItem(toolBar); + toolBarItems.insert(toolBar, tbItem); + QListWidgetItem *item = new QListWidgetItem(toolBar->windowTitle(), + ui.toolBarList); + toolBarToItem.insert(tbItem, item); + itemToToolBar.insert(item, tbItem); + const auto actions = it.value(); + for (QAction *action : actions) { + if (toolBarManager->isWidgetAction(action)) { + widgetActionToToolBar.insert(action, tbItem); + toolBarToWidgetActions[tbItem].insert(action); + } + } + currentState.insert(tbItem, actions); + if (it == toolBars.constBegin()) + ui.toolBarList->setCurrentItem(item); + if (isDefaultToolBar(tbItem)) + item->setData(Qt::ForegroundRole, QColor(Qt::darkGreen)); + else + item->setFlags(item->flags() | Qt::ItemIsEditable); + + ++it; + } + ui.toolBarList->sortItems(); + setButtons(); +} + +bool QtToolBarDialogPrivate::isDefaultToolBar(ToolBarItem *item) const +{ + if (!item) + return false; + if (!item->toolBar()) + return false; + return toolBarManager->isDefaultToolBar(item->toolBar()); +} + +void QtToolBarDialogPrivate::setButtons() +{ + bool newEnabled = false; + bool removeEnabled = false; + bool renameEnabled = false; + bool upEnabled = false; + bool downEnabled = false; + bool leftEnabled = false; + bool rightEnabled = false; + + if (toolBarManager) { + newEnabled = true; + removeEnabled = !isDefaultToolBar(currentToolBar); + renameEnabled = removeEnabled; + QListWidgetItem *currentToolBarAction = ui.currentToolBarList->currentItem(); + if (currentToolBarAction) { + int row = ui.currentToolBarList->row(currentToolBarAction); + upEnabled = row > 0; + downEnabled = row < ui.currentToolBarList->count() - 1; + leftEnabled = true; + } + if (currentAction && currentToolBar) + rightEnabled = true; + } + ui.newButton->setEnabled(newEnabled); + ui.removeButton->setEnabled(removeEnabled); + ui.renameButton->setEnabled(renameEnabled); + ui.upButton->setEnabled(upEnabled); + ui.downButton->setEnabled(downEnabled); + ui.leftButton->setEnabled(leftEnabled); + ui.rightButton->setEnabled(rightEnabled); +} + +void QtToolBarDialogPrivate::newClicked() +{ + QString toolBarName = QtToolBarDialog::tr("Custom Toolbar"); // = QInputDialog::getString(); + // produce unique name + ToolBarItem *item = createItem(toolBarName); + currentState.insert(item, QList()); + createdItems.insert(item); + QListWidgetItem *i = new QListWidgetItem(toolBarName, ui.toolBarList); + i->setFlags(i->flags() | Qt::ItemIsEditable); + ui.toolBarList->setCurrentItem(i); + itemToToolBar.insert(i, item); + toolBarToItem.insert(item, i); + ui.toolBarList->sortItems(); + ui.toolBarList->setCurrentItem(i); + currentToolBarChanged(i); + renameClicked(); +} + +void QtToolBarDialogPrivate::removeToolBar(ToolBarItem *item) +{ + if (!item) + return; + if (item->toolBar() && toolBarManager->isDefaultToolBar(item->toolBar())) + return; + if (!toolBarToItem.contains(item)) + return; + QListWidgetItem *i = toolBarToItem.value(item); + bool wasCurrent = false; + if (i == ui.toolBarList->currentItem()) + wasCurrent = true; + int row = ui.toolBarList->row(i); + const auto itToolBar = toolBarToWidgetActions.find(item); + if (itToolBar != toolBarToWidgetActions.end()) { + for (QAction *action : std::as_const(itToolBar.value())) + widgetActionToToolBar.insert(action, 0); + toolBarToWidgetActions.erase(itToolBar); + } + + currentState.remove(item); + createdItems.remove(item); + toolBarToItem.remove(item); + itemToToolBar.remove(i); + delete i; + if (item->toolBar()) + removedItems.insert(item); + else + deleteItem(item); + if (wasCurrent) { + if (row == ui.toolBarList->count()) + row--; + if (row < 0) + ; + else + ui.toolBarList->setCurrentRow(row); + } + setButtons(); +} + +void QtToolBarDialogPrivate::removeClicked() +{ + QListWidgetItem *i = ui.toolBarList->currentItem(); + if (!i) + return; + ToolBarItem *item = itemToToolBar.value(i); + removeToolBar(item); +} + +void QtToolBarDialogPrivate::defaultClicked() +{ + const auto defaultToolBars = toolBarManager->defaultToolBars(); + auto itToolBar = defaultToolBars.constBegin(); + while (itToolBar != defaultToolBars.constEnd()) { + QToolBar *toolBar = itToolBar.key(); + ToolBarItem *toolBarItem = toolBarItems.value(toolBar); + + const auto tbwit = toolBarToWidgetActions.find(toolBarItem); + if (tbwit != toolBarToWidgetActions.end()) { + for (QAction *action : std::as_const(tbwit.value())) + widgetActionToToolBar.insert(action, 0); + toolBarToWidgetActions.erase(tbwit); + } + + currentState.remove(toolBarItem); + + for (QAction *action : itToolBar.value()) { + if (toolBarManager->isWidgetAction(action)) { + ToolBarItem *otherToolBar = widgetActionToToolBar.value(action); + if (otherToolBar) { + toolBarToWidgetActions[otherToolBar].remove(action); + currentState[otherToolBar].removeAll(action); + } + widgetActionToToolBar.insert(action, toolBarItem); + toolBarToWidgetActions[toolBarItem].insert(action); + } + } + currentState.insert(toolBarItem, itToolBar.value()); + + ++itToolBar; + } + currentToolBarChanged(toolBarToItem.value(currentToolBar)); + + const auto toolBars = currentState.keys(); + for (ToolBarItem *tb : toolBars) + removeToolBar(tb); +} + +void QtToolBarDialogPrivate::okClicked() +{ + applyClicked(); + q_ptr->accept(); +} + +void QtToolBarDialogPrivate::applyClicked() +{ + const auto toolBars = currentState; + auto itToolBar = toolBars.constBegin(); + while (itToolBar != toolBars.constEnd()) { + ToolBarItem *item = itToolBar.key(); + QToolBar *toolBar = item->toolBar(); + if (toolBar) { + toolBarManager->setToolBar(toolBar, itToolBar.value()); + toolBar->setWindowTitle(item->toolBarName()); + } + + ++itToolBar; + } + + const QSet toRemove = removedItems; + for (ToolBarItem *item : toRemove) { + QToolBar *toolBar = item->toolBar(); + removedItems.remove(item); + currentState.remove(item); + deleteItem(item); + if (toolBar) + toolBarManager->deleteToolBar(toolBar); + } + + const QSet toCreate = createdItems; + for (ToolBarItem *item : toCreate) { + QString toolBarName = item->toolBarName(); + createdItems.remove(item); + const auto actions = currentState.value(item); + QToolBar *toolBar = toolBarManager->createToolBar(toolBarName); + item->setToolBar(toolBar); + toolBarManager->setToolBar(toolBar, actions); + } +} + +void QtToolBarDialogPrivate::upClicked() +{ + QListWidgetItem *currentToolBarAction = ui.currentToolBarList->currentItem(); + if (!currentToolBarAction) + return; + int row = ui.currentToolBarList->row(currentToolBarAction); + if (row == 0) + return; + ui.currentToolBarList->takeItem(row); + int newRow = row - 1; + ui.currentToolBarList->insertItem(newRow, currentToolBarAction); + auto actions = currentState.value(currentToolBar); + QAction *action = actions.at(row); + actions.removeAt(row); + actions.insert(newRow, action); + currentState.insert(currentToolBar, actions); + ui.currentToolBarList->setCurrentItem(currentToolBarAction); + setButtons(); +} + +void QtToolBarDialogPrivate::downClicked() +{ + QListWidgetItem *currentToolBarAction = ui.currentToolBarList->currentItem(); + if (!currentToolBarAction) + return; + int row = ui.currentToolBarList->row(currentToolBarAction); + if (row == ui.currentToolBarList->count() - 1) + return; + ui.currentToolBarList->takeItem(row); + int newRow = row + 1; + ui.currentToolBarList->insertItem(newRow, currentToolBarAction); + auto actions = currentState.value(currentToolBar); + QAction *action = actions.at(row); + actions.removeAt(row); + actions.insert(newRow, action); + currentState.insert(currentToolBar, actions); + ui.currentToolBarList->setCurrentItem(currentToolBarAction); + setButtons(); +} + +void QtToolBarDialogPrivate::leftClicked() +{ + QListWidgetItem *currentToolBarAction = ui.currentToolBarList->currentItem(); + if (!currentToolBarAction) + return; + int row = ui.currentToolBarList->row(currentToolBarAction); + currentState[currentToolBar].removeAt(row); + QAction *action = currentItemToAction.value(currentToolBarAction); + if (widgetActionToToolBar.contains(action)) { + ToolBarItem *item = widgetActionToToolBar.value(action); + if (item == currentToolBar) { // have to be + toolBarToWidgetActions[item].remove(action); + if (toolBarToWidgetActions[item].isEmpty()) + toolBarToWidgetActions.remove(item); + } + widgetActionToToolBar.insert(action, 0); + } + if (action) + actionToCurrentItem.remove(action); + currentItemToAction.remove(currentToolBarAction); + delete currentToolBarAction; + if (row == ui.currentToolBarList->count()) + row--; + if (row >= 0) { + QListWidgetItem *item = ui.currentToolBarList->item(row); + ui.currentToolBarList->setCurrentItem(item); + } + setButtons(); +} + +void QtToolBarDialogPrivate::rightClicked() +{ + if (!currentAction) + return; + if (!currentToolBar) + return; + QListWidgetItem *currentToolBarAction = ui.currentToolBarList->currentItem(); + + QAction *action = itemToAction.value(currentAction); + QListWidgetItem *item = nullptr; + if (action) { + if (currentState[currentToolBar].contains(action)) { + item = actionToCurrentItem.value(action); + if (item == currentToolBarAction) + return; + int row = ui.currentToolBarList->row(item); + ui.currentToolBarList->takeItem(row); + currentState[currentToolBar].removeAt(row); + // only reorder here + } else { + item = new QListWidgetItem(action->text()); + item->setIcon(action->icon()); + item->setTextAlignment(Qt::Alignment(Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic)); + currentItemToAction.insert(item, action); + actionToCurrentItem.insert(action, item); + if (widgetActionToToolBar.contains(action)) { + item->setData(Qt::ForegroundRole, QColor(Qt::blue)); + ToolBarItem *toolBar = widgetActionToToolBar.value(action); + if (toolBar) { + currentState[toolBar].removeAll(action); + toolBarToWidgetActions[toolBar].remove(action); + if (toolBarToWidgetActions[toolBar].isEmpty()) + toolBarToWidgetActions.remove(toolBar); + } + widgetActionToToolBar.insert(action, currentToolBar); + toolBarToWidgetActions[currentToolBar].insert(action); + } + } + } else { + item = new QListWidgetItem(separatorText); + currentItemToAction.insert(item, 0); + } + + int row = ui.currentToolBarList->count(); + if (currentToolBarAction) { + row = ui.currentToolBarList->row(currentToolBarAction) + 1; + } + ui.currentToolBarList->insertItem(row, item); + currentState[currentToolBar].insert(row, action); + ui.currentToolBarList->setCurrentItem(item); + + setButtons(); +} + +void QtToolBarDialogPrivate::renameClicked() +{ + if (!currentToolBar) + return; + + QListWidgetItem *item = toolBarToItem.value(currentToolBar); + ui.toolBarList->editItem(item); +} + +void QtToolBarDialogPrivate::toolBarRenamed(QListWidgetItem *item) +{ + if (!currentToolBar) + return; + + ToolBarItem *tbItem = itemToToolBar.value(item); + if (!tbItem) + return; + tbItem->setToolBarName(item->text()); + //ui.toolBarList->sortItems(); +} + +void QtToolBarDialogPrivate::currentActionChanged(QTreeWidgetItem *current) +{ + if (itemToAction.contains(current)) + currentAction = current; + else + currentAction = NULL; + setButtons(); +} + +void QtToolBarDialogPrivate::currentToolBarChanged(QListWidgetItem *current) +{ + currentToolBar = itemToToolBar.value(current); + ui.currentToolBarList->clear(); + actionToCurrentItem.clear(); + currentItemToAction.clear(); + setButtons(); + if (!currentToolBar) { + return; + } + const auto actions = currentState.value(currentToolBar); + QListWidgetItem *first = nullptr; + for (QAction *action : actions) { + QString actionName = separatorText; + if (action) + actionName = action->text(); + QListWidgetItem *item = new QListWidgetItem(actionName, ui.currentToolBarList); + if (action) { + item->setIcon(action->icon()); + item->setTextAlignment(Qt::Alignment(Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic)); + actionToCurrentItem.insert(action, item); + if (widgetActionToToolBar.contains(action)) + item->setData(Qt::ForegroundRole, QColor(Qt::blue)); + } + currentItemToAction.insert(item, action); + if (!first) + first = item; + } + if (first) + ui.currentToolBarList->setCurrentItem(first); +} + +void QtToolBarDialogPrivate::currentToolBarActionChanged(QListWidgetItem *) +{ + setButtons(); +} + +void QtToolBarDialogPrivate::cancelClicked() +{ + // just nothing + q_ptr->reject(); +} + +////////////////////// +/* +class FeedbackItemDelegate : public QItemDelegate +{ + Q_OBJECT +public: + FeedbackItemDelegate(QObject *parent = 0) : QItemDelegate(parent) { } + + virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, + const QModelIndex & index) const; + virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; +}; + +void FeedbackItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, + const QModelIndex &index) const +{ + if () + painter->save(); + QRect r = option.rect; + float yCentral = r.height() / 2.0; + float margin = 2.0; + float arrowWidth = 5.0; + float width = 20; + qDebug("rect: x %d, y %d, w %d, h %d", r.x(), r.y(), r.width(), r.height()); + QLineF lineBase(0.0 + margin, r.y() + yCentral, width - margin, r.y() + yCentral); + QLineF lineArrowLeft(width - margin - arrowWidth, r.y() + yCentral - arrowWidth, + width - margin, r.y() + yCentral); + QLineF lineArrowRight(width - margin - arrowWidth, r.y() + yCentral + arrowWidth, + width - margin, r.y() + yCentral); + painter->drawLine(lineBase); + painter->drawLine(lineArrowLeft); + painter->drawLine(lineArrowRight); + painter->translate(QPoint(width, 0)); + QItemDelegate::paint(painter, option, index); + painter->restore(); +} + +QSize FeedbackItemDelegate::sizeHint(const QStyleOptionViewItem &option, + const QModelIndex &index) const +{ + //return QItemDelegate::sizeHint(option, index); + QSize s = QItemDelegate::sizeHint(option, index); + s.setWidth(s.width() - 20); + return s; +} + +class QtToolBarListWidget : public QListWidget +{ + Q_OBJECT +public: + QtToolBarListWidget(QWidget *parent) : QListWidget(parent), actionDrag(false) {} + +protected: + void startDrag(Qt::DropActions supportedActions); + + void dragEnterEvent(QDragEnterEvent *event); + void dragMoveEvent(QDragMoveEvent *event); + void dragLeaveEvent(QDragLeaveEvent *); + void dropEvent(QDropEvent *event); + + void setDragAction(const QString *action) { actionName = action; } +private: + QPersistentModelIndex lastDropIndicator; + QString actionName; + bool actionDrag; +}; + +void QtToolBarListWidget::startDrag(Qt::DropActions supportedActions) +{ + QListWidgetItem *item = currentItem(); + if (item) { + actionName = QString(); + emit aboutToDrag(item); + if (!actionName.isEmpty()) { + QDrag *drag = new QDrag(this); + QMimeData *data = new QMimeData; + data->setData("action", actionName.toLocal8Bit().constData()); + drag->setMimeData(data); + drag->exec(supportedActions); + } + } +} + +void QtToolBarListWidget::dragEnterEvent(QDragEnterEvent *event) +{ + const QMimeData *mime = event->mimeData(); + actionDrag = mime->hasFormat("action"); + if (actionDrag) + event->accept(); + else + event->ignore(); +} + +void QtToolBarListWidget::dragMoveEvent(QDragMoveEvent *event) +{ + event->ignore(); + if (actionDrag) { + QPoint p = event->pos(); + QListWidgetItem *item = itemAt(p); + Indicator indic = QtToolBarListWidget::None; + if (item) { + QRect rect = visualItemRect(item); + if (p.y() - rect.top() < rect.height() / 2) + indic = QtToolBarListWidget::Above; + else + indic = QtToolBarListWidget::Below; + } + setIndicator(item, indic); + event->accept(); + } +} + +void QtToolBarListWidget::dragLeaveEvent(QDragLeaveEvent *) +{ + if (actionDrag) { + actionDrag = false; + setIndicator(item, QtToolBarListWidget::None); + } +} + +void QtToolBarListWidget::dropEvent(QDropEvent *event) +{ + if (actionDrag) { + QListWidgetItem *item = indicatorItem(); + Indicator indic = indicator(); + QByteArray array = event->mimeData()->data("action"); + QDataStream stream(&array, QIODevice::ReadOnly); + QString action; + stream >> action; + emit actionDropped(action, item, ); + + actionDrag = false; + setIndicator(item, QtToolBarListWidget::None); + } +} +*/ + +/*! \class QtToolBarDialog + \internal + \inmodule QtDesigner + \since 4.4 + + \brief The QtToolBarDialog class provides a dialog for customizing + toolbars. + + QtToolBarDialog allows the user to customize the toolbars for a + given main window. + + \image qttoolbardialog.png + + The dialog lets the users add, rename and remove custom toolbars. + Note that built-in toolbars are marked with a green color, and + cannot be removed or renamed. + + The users can also add and remove actions from the toolbars. An + action can be added to many toolbars, but a toolbar can only + contain one instance of each action. Actions that contains a + widget are marked with a blue color in the list of actions, and + can only be added to one single toolbar. + + Finally, the users can add separators to the toolbars. + + The original toolbars can be restored by clicking the \gui + {Restore all} button. All custom toolbars will then be removed, + and all built-in toolbars will be restored to their original state. + + The QtToolBarDialog class's functionality is controlled by an + instance of the QtToolBarManager class, and the main window is + specified using the QtToolBarManager::setMainWindow() function. + + All you need to do to use QtToolBarDialog is to specify an + QtToolBarManager instance and call the QDialog::exec() slot: + + \snippet doc/src/snippets/code/tools_shared_qttoolbardialog_qttoolbardialog.cpp 0 + + \sa QtToolBarManager +*/ + +/*! + Creates a toolbar dialog with the given \a parent and the specified + window \a flags. +*/ +QtToolBarDialog::QtToolBarDialog(QWidget *parent, Qt::WindowFlags flags) + : QDialog(parent, flags), d_ptr(new QtToolBarDialogPrivate) +{ + d_ptr->q_ptr = this; + d_ptr->ui.setupUi(this); + d_ptr->separatorText = tr("< S E P A R A T O R >"); + + d_ptr->ui.actionTree->setColumnCount(1); + d_ptr->ui.actionTree->setRootIsDecorated(false); + d_ptr->ui.actionTree->header()->hide(); + + d_ptr->ui.upButton->setIcon(QIcon(QLatin1String(":/qt-project.org/qttoolbardialog/images/up.png"))); + d_ptr->ui.downButton->setIcon(QIcon(QLatin1String(":/qt-project.org/qttoolbardialog/images/down.png"))); + d_ptr->ui.leftButton->setIcon(QIcon(QLatin1String(":/qt-project.org/qttoolbardialog/images/back.png"))); + d_ptr->ui.rightButton->setIcon(QIcon(QLatin1String(":/qt-project.org/qttoolbardialog/images/forward.png"))); + d_ptr->ui.newButton->setIcon(QIcon(QLatin1String(":/qt-project.org/qttoolbardialog/images/plus.png"))); + d_ptr->ui.removeButton->setIcon(QIcon(QLatin1String(":/qt-project.org/qttoolbardialog/images/minus.png"))); + + connect(d_ptr->ui.newButton, SIGNAL(clicked()), this, SLOT(newClicked())); + connect(d_ptr->ui.removeButton, SIGNAL(clicked()), this, SLOT(removeClicked())); + connect(d_ptr->ui.renameButton, SIGNAL(clicked()), this, SLOT(renameClicked())); + connect(d_ptr->ui.upButton, SIGNAL(clicked()), this, SLOT(upClicked())); + connect(d_ptr->ui.downButton, SIGNAL(clicked()), this, SLOT(downClicked())); + connect(d_ptr->ui.leftButton, SIGNAL(clicked()), this, SLOT(leftClicked())); + connect(d_ptr->ui.rightButton, SIGNAL(clicked()), this, SLOT(rightClicked())); + + connect(d_ptr->ui.buttonBox->button(QDialogButtonBox::RestoreDefaults), SIGNAL(clicked()), this, SLOT(defaultClicked())); + connect(d_ptr->ui.buttonBox->button(QDialogButtonBox::Ok), SIGNAL(clicked()), this, SLOT(okClicked())); + connect(d_ptr->ui.buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(applyClicked())); + connect(d_ptr->ui.buttonBox->button(QDialogButtonBox::Cancel), SIGNAL(clicked()), this, SLOT(cancelClicked())); + + connect(d_ptr->ui.actionTree, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), + this, SLOT(currentActionChanged(QTreeWidgetItem*))); + connect(d_ptr->ui.toolBarList, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), + this, SLOT(currentToolBarChanged(QListWidgetItem*))); + connect(d_ptr->ui.currentToolBarList, + SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), + this, SLOT(currentToolBarActionChanged(QListWidgetItem*))); + + connect(d_ptr->ui.actionTree, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), + this, SLOT(rightClicked())); + connect(d_ptr->ui.currentToolBarList, SIGNAL(itemDoubleClicked(QListWidgetItem*)), + this, SLOT(leftClicked())); + connect(d_ptr->ui.toolBarList, SIGNAL(itemChanged(QListWidgetItem*)), + this, SLOT(toolBarRenamed(QListWidgetItem*))); +} + +/*! + Destroys the toolbar dialog. +*/ +QtToolBarDialog::~QtToolBarDialog() +{ + d_ptr->clearOld(); +} + +/*! + Connects the toolbar dialog to the given \a toolBarManager. Then, + when exec() is called, the toolbar dialog will operate using the + given \a toolBarManager. +*/ +void QtToolBarDialog::setToolBarManager(QtToolBarManager *toolBarManager) +{ + if (d_ptr->toolBarManager == toolBarManager->d_ptr->manager) + return; + if (isVisible()) + d_ptr->clearOld(); + d_ptr->toolBarManager = toolBarManager->d_ptr->manager; + if (isVisible()) + d_ptr->fillNew(); +} + +/*! + \reimp +*/ +void QtToolBarDialog::showEvent(QShowEvent *event) +{ + if (!event->spontaneous()) + d_ptr->fillNew(); +} + +/*! + \reimp +*/ +void QtToolBarDialog::hideEvent(QHideEvent *event) +{ + if (!event->spontaneous()) + d_ptr->clearOld(); +} + +QT_END_NAMESPACE + +#include "moc_qttoolbardialog.cpp" +#include "qttoolbardialog.moc" diff --git a/src/shared/qttoolbardialog/qttoolbardialog.h b/src/shared/qttoolbardialog/qttoolbardialog.h new file mode 100644 index 0000000..c612688 --- /dev/null +++ b/src/shared/qttoolbardialog/qttoolbardialog.h @@ -0,0 +1,100 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of Qt Designer. This header +// file may change from version to version without notice, or even be removed. +// +// We mean it. +// + +#ifndef QTTOOLBARDIALOG_H +#define QTTOOLBARDIALOG_H + +#include + +QT_BEGIN_NAMESPACE + +class QMainWindow; +class QAction; +class QToolBar; + +class QtToolBarManagerPrivate; + +class QtToolBarManager : public QObject +{ + Q_OBJECT +public: + + explicit QtToolBarManager(QObject *parent = 0); + ~QtToolBarManager(); + + void setMainWindow(QMainWindow *mainWindow); + QMainWindow *mainWindow() const; + + void addAction(QAction *action, const QString &category); + void removeAction(QAction *action); + + void addToolBar(QToolBar *toolBar, const QString &category); + void removeToolBar(QToolBar *toolBar); + + QList toolBars() const; + + QByteArray saveState(int version = 0) const; + bool restoreState(const QByteArray &state, int version = 0); + +private: + + friend class QtToolBarDialog; + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtToolBarManager) + Q_DISABLE_COPY_MOVE(QtToolBarManager) +}; + +class QtToolBarDialogPrivate; + +class QtToolBarDialog : public QDialog +{ + Q_OBJECT +public: + + explicit QtToolBarDialog(QWidget *parent = 0, Qt::WindowFlags flags = {}); + ~QtToolBarDialog(); + + void setToolBarManager(QtToolBarManager *toolBarManager); + +protected: + + void showEvent(QShowEvent *event) override; + void hideEvent(QHideEvent *event) override; + +private: + + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QtToolBarDialog) + Q_DISABLE_COPY_MOVE(QtToolBarDialog) + + Q_PRIVATE_SLOT(d_func(), void newClicked()) + Q_PRIVATE_SLOT(d_func(), void removeClicked()) + Q_PRIVATE_SLOT(d_func(), void defaultClicked()) + Q_PRIVATE_SLOT(d_func(), void okClicked()) + Q_PRIVATE_SLOT(d_func(), void applyClicked()) + Q_PRIVATE_SLOT(d_func(), void cancelClicked()) + Q_PRIVATE_SLOT(d_func(), void upClicked()) + Q_PRIVATE_SLOT(d_func(), void downClicked()) + Q_PRIVATE_SLOT(d_func(), void leftClicked()) + Q_PRIVATE_SLOT(d_func(), void rightClicked()) + Q_PRIVATE_SLOT(d_func(), void renameClicked()) + Q_PRIVATE_SLOT(d_func(), void toolBarRenamed(QListWidgetItem *)) + Q_PRIVATE_SLOT(d_func(), void currentActionChanged(QTreeWidgetItem *)) + Q_PRIVATE_SLOT(d_func(), void currentToolBarChanged(QListWidgetItem *)) + Q_PRIVATE_SLOT(d_func(), void currentToolBarActionChanged(QListWidgetItem *)) +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/shared/qttoolbardialog/qttoolbardialog.ui b/src/shared/qttoolbardialog/qttoolbardialog.ui new file mode 100644 index 0000000..c4ad934 --- /dev/null +++ b/src/shared/qttoolbardialog/qttoolbardialog.ui @@ -0,0 +1,207 @@ + + QtToolBarDialog + + + + 0 + 0 + 583 + 508 + + + + Customize Toolbars + + + + 8 + + + 6 + + + + + + 1 + + + + + + + + Actions + + + + + + + 6 + + + 0 + + + + + Toolbars + + + + + + + Add new toolbar + + + New + + + + + + + Remove selected toolbar + + + Remove + + + + + + + Rename toolbar + + + Rename + + + + + + + + + 6 + + + 0 + + + + + + 0 + 0 + + + + Move action up + + + Up + + + + + + + + 0 + 0 + + + + Remove action from toolbar + + + <- + + + + + + + + 0 + 0 + + + + Add action to toolbar + + + -> + + + + + + + + 0 + 0 + + + + Move action down + + + Down + + + + + + + Qt::Vertical + + + + 29 + 16 + + + + + + + + + + + + + Current Toolbar Actions + + + + + + + + + + QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::RestoreDefaults + + + + + + + newButton + removeButton + renameButton + toolBarList + upButton + leftButton + rightButton + downButton + currentToolBarList + + + + diff --git a/src/uiplugin/CMakeLists.txt b/src/uiplugin/CMakeLists.txt new file mode 100644 index 0000000..4fedf8e --- /dev/null +++ b/src/uiplugin/CMakeLists.txt @@ -0,0 +1,27 @@ +# Generated from uiplugin.pro. + +##################################################################### +## UiPlugin Module: +##################################################################### + +qt_internal_add_module(UiPlugin + NO_PRIVATE_MODULE + HEADER_MODULE + QMAKE_MODULE_CONFIG designer_defines + PUBLIC_LIBRARIES + Qt::Core + Qt::Gui + Qt::Widgets +) + +# special case begin +set(is_plugin "$") +target_compile_definitions( + UiPlugin + INTERFACE + $<$:QDESIGNER_EXPORT_WIDGETS> +) +# special case end + +#### Keys ignored in scope 1:.:.:uiplugin.pro:: +# MODULE_CONFIG = "designer_defines" diff --git a/src/uiplugin/customwidget.h b/src/uiplugin/customwidget.h new file mode 100644 index 0000000..2a47a32 --- /dev/null +++ b/src/uiplugin/customwidget.h @@ -0,0 +1,62 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef CUSTOMWIDGET_H +#define CUSTOMWIDGET_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QWidget; +class QDesignerFormEditorInterface; + +class QDesignerCustomWidgetInterface +{ +public: + virtual ~QDesignerCustomWidgetInterface() = default; // ### FIXME: weak vtable + + virtual QString name() const = 0; + virtual QString group() const = 0; + virtual QString toolTip() const = 0; + virtual QString whatsThis() const = 0; + virtual QString includeFile() const = 0; + virtual QIcon icon() const = 0; + + virtual bool isContainer() const = 0; + + virtual QWidget *createWidget(QWidget *parent) = 0; + + virtual bool isInitialized() const { return false; } + virtual void initialize(QDesignerFormEditorInterface *core) { Q_UNUSED(core); } + + virtual QString domXml() const + { + return QString::fromUtf8("") + .arg(name()).arg(name().toLower()); + } + + virtual QString codeTemplate() const { return QString(); } +}; + +#define QDesignerCustomWidgetInterface_iid "org.qt-project.QDesignerCustomWidgetInterface" + +Q_DECLARE_INTERFACE(QDesignerCustomWidgetInterface, QDesignerCustomWidgetInterface_iid) + +class QDesignerCustomWidgetCollectionInterface +{ +public: + virtual ~QDesignerCustomWidgetCollectionInterface() = default; // ### FIXME: weak vtable + + virtual QList customWidgets() const = 0; +}; + +#define QDesignerCustomWidgetCollectionInterface_iid "org.qt-project.Qt.QDesignerCustomWidgetCollectionInterface" + +Q_DECLARE_INTERFACE(QDesignerCustomWidgetCollectionInterface, QDesignerCustomWidgetCollectionInterface_iid) + +QT_END_NAMESPACE + +#endif // CUSTOMWIDGET_H diff --git a/src/uiplugin/customwidget.qdoc b/src/uiplugin/customwidget.qdoc new file mode 100644 index 0000000..557e9a4 --- /dev/null +++ b/src/uiplugin/customwidget.qdoc @@ -0,0 +1,269 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \class QDesignerCustomWidgetInterface + + \brief The QDesignerCustomWidgetInterface class enables Qt Designer + to access and construct custom widgets. + + \inmodule QtDesigner + + QDesignerCustomWidgetInterface provides a custom widget with an + interface. The class contains a set of functions that must be subclassed + to return basic information about the widget, such as its class name and + the name of its header file. Other functions must be implemented to + initialize the plugin when it is loaded, and to construct instances of + the custom widget for \QD to use. + + When implementing a custom widget you must subclass + QDesignerCustomWidgetInterface to expose your widget to \QD. For + example, this is the declaration for the plugin used in the + \l{Custom Widget Plugin Example}{Custom Widget Plugin example} that + enables an analog clock custom widget to be used by \QD: + + \snippet customwidgetplugin/customwidgetplugin.h 0 + + Note that the only part of the class definition that is specific + to this particular custom widget is the class name. In addition, + since we are implementing an interface, we must ensure that it's + made known to the meta object system using the Q_INTERFACES() + macro. This enables \QD to use the qobject_cast() function to + query for supported interfaces using nothing but a QObject + pointer. + + After \QD loads a custom widget plugin, it calls the interface's + initialize() function to enable it to set up any resources that it + may need. This function is called with a QDesignerFormEditorInterface + parameter that provides the plugin with a gateway to all of \QD's API. + + \QD constructs instances of the custom widget by calling the plugin's + createWidget() function with a suitable parent widget. Plugins must + construct and return an instance of a custom widget with the specified + parent widget. + + Exporting your custom widget plugin to \QD using the Q_PLUGIN_METADATA() + macro. For example, if a library called \c libcustomwidgetplugin.so + (on Unix) or \c libcustomwidget.dll (on Windows) contains a widget + class called \c MyCustomWidget, we can export it by adding the + following line to the file containing the plugin header: + + \snippet plugins/doc_src_qtdesigner.cpp 14 + + This macro ensures that \QD can access and construct the custom widget. + Without this macro, there is no way for \QD to use it. + + When implementing a custom widget plugin, you build it as a + separate library. If you want to include several custom widget + plugins in the same library, you must in addition subclass + QDesignerCustomWidgetCollectionInterface. + + \warning If your custom widget plugin contains QVariant + properties, be aware that only the following \l + {QVariant::Type}{types} are supported: + + \list + \li QVariant::ByteArray + \li QVariant::Bool + \li QVariant::Color + \li QVariant::Cursor + \li QVariant::Date + \li QVariant::DateTime + \li QVariant::Double + \li QVariant::Int + \li QVariant::Point + \li QVariant::Rect + \li QVariant::Size + \li QVariant::SizePolicy + \li QVariant::String + \li QVariant::Time + \li QVariant::UInt + \endlist + + For a complete example using the QDesignerCustomWidgetInterface + class, see the \l {customwidgetplugin}{Custom Widget + Example}. The example shows how to create a custom widget plugin + for \QD. + + \sa QDesignerCustomWidgetCollectionInterface, {Creating Custom Widgets for Qt Designer} +*/ + +/*! + \fn QDesignerCustomWidgetInterface::~QDesignerCustomWidgetInterface() + + Destroys the custom widget interface. +*/ + +/*! + \fn QString QDesignerCustomWidgetInterface::name() const + + Returns the class name of the custom widget supplied by the interface. + + The name returned \e must be identical to the class name used for the + custom widget. +*/ + +/*! + \fn QString QDesignerCustomWidgetInterface::group() const + + Returns the name of the group to which the custom widget belongs. +*/ + +/*! + \fn QString QDesignerCustomWidgetInterface::toolTip() const + + Returns a short description of the widget that can be used by \QD + in a tool tip. +*/ + +/*! + \fn QString QDesignerCustomWidgetInterface::whatsThis() const + + Returns a description of the widget that can be used by \QD in + "What's This?" help for the widget. +*/ + +/*! + \fn QString QDesignerCustomWidgetInterface::includeFile() const + + Returns the path to the include file that \l uic uses when + creating code for the custom widget. +*/ + +/*! + \fn QIcon QDesignerCustomWidgetInterface::icon() const + + Returns the icon used to represent the custom widget in \QD's + widget box. +*/ + +/*! + \fn bool QDesignerCustomWidgetInterface::isContainer() const + + Returns true if the custom widget is intended to be used as a + container; otherwise returns false. + + Most custom widgets are not used to hold other widgets, so their + implementations of this function will return false, but custom + containers will return true to ensure that they behave correctly + in \QD. +*/ + +/*! + \fn QWidget *QDesignerCustomWidgetInterface::createWidget(QWidget *parent) + + Returns a new instance of the custom widget, with the given \a + parent. +*/ + +/*! + \fn bool QDesignerCustomWidgetInterface::isInitialized() const + + Returns true if the widget has been initialized; otherwise returns + false. + + \sa initialize() +*/ + +/*! + \fn void QDesignerCustomWidgetInterface::initialize(QDesignerFormEditorInterface *formEditor) + + Initializes the widget for use with the specified \a formEditor + interface. + + \sa isInitialized() +*/ + +/*! + \fn QString QDesignerCustomWidgetInterface::domXml() const + + Returns the XML that is used to describe the custom widget's + properties to \QD. +*/ + +/*! + \fn QString QDesignerCustomWidgetInterface::codeTemplate() const + + This function is reserved for future use by \QD. + + \omit + Returns the code template that \QD includes in forms that contain + the custom widget when they are saved. + \endomit +*/ + +/*! + \macro QDESIGNER_WIDGET_EXPORT + \relates QDesignerCustomWidgetInterface + \since 4.1 + + This macro is used when defining custom widgets to ensure that they are + correctly exported from plugins for use with \QD. + + On some platforms, the symbols required by \QD to create new widgets + are removed from plugins by the build system, making them unusable. + Using this macro ensures that the symbols are retained on those platforms, + and has no side effects on other platforms. + + For example, the \l{worldtimeclockplugin}{World Time Clock Plugin} + example exports a custom widget class with the following declaration: + + \snippet worldtimeclockplugin/worldtimeclock.h 0 + \dots + \snippet worldtimeclockplugin/worldtimeclock.h 2 + + \sa {Creating Custom Widgets for Qt Designer} +*/ + + + + + +/*! + \class QDesignerCustomWidgetCollectionInterface + + \brief The QDesignerCustomWidgetCollectionInterface class allows + you to include several custom widgets in one single library. + + \inmodule QtDesigner + + When implementing a custom widget plugin, you build it as a + separate library. If you want to include several custom widget + plugins in the same library, you must in addition subclass + QDesignerCustomWidgetCollectionInterface. + + QDesignerCustomWidgetCollectionInterface contains one single + function returning a list of the collection's + QDesignerCustomWidgetInterface objects. For example, if you have + several custom widgets \c CustomWidgetOne, \c CustomWidgetTwo and + \c CustomWidgetThree, the class definition may look like this: + + \snippet plugins/doc_src_qtdesigner.cpp 12 + + In the class constructor you add the interfaces to your custom + widgets to the list which you return in the customWidgets() + function: + + \snippet plugins/doc_src_qtdesigner.cpp 13 + + Note that instead of exporting each custom widget plugin using the + Q_PLUGIN_METADATA() macro, you export the entire collection. The + Q_PLUGIN_METADATA() macro ensures that \QD can access and construct + the custom widgets. Without this macro, there is no way for \QD to + use them. + + \sa QDesignerCustomWidgetInterface, {Creating Custom Widgets for + Qt Designer} +*/ + +/*! + \fn QDesignerCustomWidgetCollectionInterface::~QDesignerCustomWidgetCollectionInterface() { + + Destroys the custom widget collection interface. +*/ + +/*! + \fn QList QDesignerCustomWidgetCollectionInterface::customWidgets() const + + Returns a list of interfaces to the collection's custom widgets. +*/ diff --git a/src/uiplugin/qdesignerexportwidget.h b/src/uiplugin/qdesignerexportwidget.h new file mode 100644 index 0000000..d90e9b2 --- /dev/null +++ b/src/uiplugin/qdesignerexportwidget.h @@ -0,0 +1,24 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef QDESIGNEREXPORTWIDGET_H +#define QDESIGNEREXPORTWIDGET_H + +#include + +QT_BEGIN_NAMESPACE + +#if 0 +// pragma for syncqt, don't remove. +#pragma qt_class(QDesignerExportWidget) +#endif + +#if defined(QDESIGNER_EXPORT_WIDGETS) +# define QDESIGNER_WIDGET_EXPORT Q_DECL_EXPORT +#else +# define QDESIGNER_WIDGET_EXPORT Q_DECL_IMPORT +#endif + +QT_END_NAMESPACE + +#endif //QDESIGNEREXPORTWIDGET_H diff --git a/src/uitools/CMakeLists.txt b/src/uitools/CMakeLists.txt new file mode 100644 index 0000000..448bd18 --- /dev/null +++ b/src/uitools/CMakeLists.txt @@ -0,0 +1,47 @@ +# Generated from uitools.pro. + +##################################################################### +## UiTools Module: +##################################################################### + +qt_internal_add_module(UiTools + SOURCES + ../designer/src/lib/uilib/abstractformbuilder.cpp ../designer/src/lib/uilib/abstractformbuilder.h + ../designer/src/lib/uilib/formbuilder.cpp ../designer/src/lib/uilib/formbuilder.h + ../designer/src/lib/uilib/formbuilderextra.cpp ../designer/src/lib/uilib/formbuilderextra_p.h + ../designer/src/lib/uilib/properties.cpp ../designer/src/lib/uilib/properties_p.h + ../designer/src/lib/uilib/resourcebuilder.cpp ../designer/src/lib/uilib/resourcebuilder_p.h + ../designer/src/lib/uilib/textbuilder.cpp ../designer/src/lib/uilib/textbuilder_p.h + ../designer/src/lib/uilib/ui4.cpp ../designer/src/lib/uilib/ui4_p.h + quiloader.cpp quiloader.h + DEFINES + QFORMINTERNAL_NAMESPACE + QT_DESIGNER + QT_DESIGNER_STATIC + QT_USE_QSTRINGBUILDER + INCLUDE_DIRECTORIES + ../designer/src/lib/uilib + LIBRARIES + Qt::UiPlugin + PUBLIC_LIBRARIES + Qt::Core + Qt::Gui + Qt::Widgets +) + +## Scopes: +##################################################################### + +qt_internal_extend_target(UiTools CONDITION TARGET Qt::OpenGLWidgets + PUBLIC_LIBRARIES + Qt::OpenGLWidgets +) + +qt_internal_extend_target(UiTools CONDITION TARGET Qt::OpenGL + LIBRARIES + Qt::OpenGL +) +qt_internal_add_docs(UiTools + doc/qtuitools.qdocconf +) + diff --git a/src/uitools/doc/images/textfinder-example-find.png b/src/uitools/doc/images/textfinder-example-find.png new file mode 100644 index 0000000000000000000000000000000000000000..886bbc1104fe3feb30f7981d7cc21d4a9d3342b4 GIT binary patch literal 15837 zcmZ|01yox>*ER~JgaUz5qy%@D;x5JAt+;z}D6YYRQ(THm@fLRoP~5e6u;T81Y2Wu- z|M#zZ?__26$*ehZX3orhX7;mpAj*nTXejt7aBy&FGScFzaB%SZFV}}}UcKZP9fO81 z0@+bo+XW5|73=R89xgo-^iqiADx)BQG>3?eit%1Mfh!3PPS8h2TtwYt;m{X36Z_Zv zHPFm>Mrl=?e2+m?Sw&pnBQ_%L)~DZy@0;FkVQ#i>g5HTwe6O0Y>iN!^&Ut#X;saqN zhfJjQl&5c8a>B^rH$P>XA0xc~;vR$8b6eW%?bX~8Q+c$TwwvXfwffw!I5nlOf2ls> zUz)vl*KquEE`#J&;=H?x(Er48q zN$zSC1Up!4oyT)OV6~z}=ppZRLy*aTmE>+aaJ(2vtexb+9hLf2E5m&KsFrrxb7Ys9 z!1VdnH%g8qQvcMod{ynI-&h|&Ff#u7Rd2-yHZl^p6BHf|WJjEw3a@6%TtPPfQh)7E zpE9I%hQ2#d2gL&K^z+3k;xnS3GAVU!ocCT^o?@D*mx1 zc4O#K!n}RL+=ET^TZZ_B;E7>7s^59>ShtYjbL{C{IFyD+Ifu+CsSk(ITIS<&(+;hW zbZzRdMDW$?YL4VWNy1-d2@>e z0GF}+;93Er$C1dURSeWVbpL(d%pXUIW>EbnKlxs$59j69j5iHXpZS=Ms#}{0wv$_$ z+;&;omc@Qj+B`KHHG;I7Zi0G4Ci~^}tDjYRt}JxK~{G7+1u!%w)U@ zxX)c_gx5p&gaLlUgpAFkXk;7QJ1;I3=cy4#V+(@leuId=IC%8mcSbehv^k#3m>n^XyD)a>lEv!{8yMjtvLN!K6 zR5&f)h;9u--{7cK^`*M%d#W5)KM?cNpz+i@;F3GZud;y+&)|!WT!>F{jZmI48`{L$ zFF4@fKuZcAO@DhwF4lh*JbgG;6u5d`c=gMU!SJ*0 z!^Tb*(}bsR#Hc4d-+kBwo^ZIlFC*L2eSDX~nl8fH(~u7HH*L@5VgH=dYIcY;D^_BE zeDSg1Rd4b}hfn+NRv&&gI)^}e_1fC6%M9FEhjgt5W5wmrdAC5kI@_Yzazewl#ve9E z6A_?`RV`>V``ri16t0v^4g;3fj}EMNb5-i*Of zUl=Tn0DW`Cy|cl>u=o_gh4m(gX##gu@bv7SCfnn@ zr&nunwsom~9kHjw4mAt<;5|1rp{*ooDL|ZdBW-p7j$hmFM$oFi$WrrM>3=)kG)fr+ z@&Q_$+>M~dJm3BL(_molwFRLVv;X|CmLA%tIW64UcmzcZ@7X`@D6@YoZ+2t1(Nrim z;H$TJI_YKy9N{nDkL-_iLr4KqAAwJ8N}RwLX`+yUt&o)Oxs3NI4)eI}N&LPH?K_PY zTBA0#k0A~cbWbg%7xlPhzH)L>t;D=-7x)(w?)M#}elLr53E1O1^~?}tb-lZq_4`3` zaW7>dS!nLdb!=YEyR|1R*RyL1EaHf$d2He~?;{jVtzDK34Ik2%*ZX%h2 z@2VCj&2Cfg+)2C-ck@4dw)b&%>!y&~CuwXsdcj&-%jwE=y&4nI%XQY7NU4p+!6jV= zOLY2dKBKwcLJrFw@QRzg`XDxNJ`Yb4RQPSO?+@E&q-UWMXeGkUhhD!{B;TdF=e9}T zWB;Ge%agtiN2P=}7xt@-N`cT9tsTPiS-++r@SCXLUPE&6|T7)AD3N11nabWv$;O z1H)IU!9VD_JWZv=MD=n#ue3!*DITZ?f zzQq+_Bxywz?hmqmUl7%6LW78raV;4V2$lOTQDR5uSVWy3exZa@)n{0-7+6oSADlpc z^GJ882iHlE3ikuK2ia(K_*+zj^89E;>TTpB^zr8GvG&?ek}O~da! zML@KWXbjGe$??GqD%d?Rt2w*L{BYXfJeC_|WWb>2b!N=3cBo439GHmOr|6vvlrqcv ziNf;R^QhF$e)luT_vME{fRkp`wM(!reUT~Ot{m{`l;1gBc5u5Rj$hN_JDYMtH};m^rqx{g7)vA#jgcAuI!yeGlY^AqG5e84k)wCb(t$uD8y-%edI zF*OAmWcZj`-`}$~;;he3xFTNag+Rxeud+8GymRDSNB|@_I9Gs_68xw)exK5j4`E0} z{sxzXmOTT1W;UF>!<gko;;w(-as44YX#jxL4E(XL;YuLQ5J|e-bG3>zliNnb*Fy@~@+zk@TzzW6g+yHbEpj zP44d_0_Muo)!RO28b26tu0@nCeyAY4ZyU^$LtkC79osR`MKVY=a`XhnyuUO8Na@8~ zk(22N!1dkH;RCiermM3LcX|ByO-^1zhEj{zZnB+=WW2eIl7a2#N`$8KjU>Le6Ie(S zPo2W!#{4LKGJXD6!nE{X`5Wa40(r|;JE8`tyY|;!@t#^M{7Q1h-qPYdmBYQdpV8j# zctG)cy;Ii7vkQ{%s|YmUnV;z33CbGk0k(%Gvu=q>8KgZHFIgWi@f&1EGa_6#e&jbg z31kq%B94*w22OF`@t+#EQd&+w#^(}{gXhAK%2BWNv6_4|HoxM;9}STUCQEuT+a2;& z71`#-KbHU_)ttvc7Q$#~%Y*V5?CVt$54g(1+A{1k`%C6x zRB#=OI^CUhE)V#b$`XG??SwgEAlLve_RSr`)?)1Hz(_0!U354?xY+$6=@=(<83de7 zMZ&H?+(ZHJXQ%OtdeDHj&`=inv0I8^v%1|9e8>)ojXwwX!alrj7aRE`5PxnsOfjJ;L)=DkF#SdjddyCnAe_J=Co$t<@*@l29a(`Qwm z6S=;Ves_uplV|F%FO`6J%tHur@H#L?b(~1;By5UJZCl7+wq5opu6yAz@NhZ`5fAqj z92-&r3fd3E>5M8JkZ7!R>>{B^E&pzO|7-E~w^FEFQlSnpn}VPwW3|n_=!u~@DeuZi zgIYc>=->{boS6Rh^i$vWSV}-KWss2bzu~7%9%MKYx-1@Q9^RZjtn9r zuN%bCIQU@MS7t2L*gr_rN#LqSx5I{v_5J6Lg&oPo_I(Gk9U|v_jvzd!{)rTabRN$H){GC~N3357zT6V? z;l+xOcy1BjHT9ak`?>N%u0vQ=kB0q5m-o)JV4u9`$@(ZV6*}a9>U@;?mi)=RId4QEZZ9%d}aA zL{=liW|$ib?G4to6YoxOXQK~wI7^4xbvxP)_tPC*o>ufh2fFM0(K=$BGmM*;V( zD}}gl)GAi_p8E64KN2D*Q`{W)exzhrQ_l<$9*DmdxZunRdA#XfD)Hd|bnOPe;;(A5 z(i?DgVQjrNeWQ5Ti+`34%<7i5cW&CCbh!HpO1lyHg5OF`4&-bWG~n$ zn6t9vtI6PHhJmbtvqDnDeuFS!K(N?c<-qT6x9F}ZK4t*ovz4?f&Ye6-i|^k-%13-F zdB!ajDuj*K%Il0^a^mq17OY5xse(yT`i~7*AA3tZyGwC#O0}xAGYwm;tPYpK`+t_l zS?>2v4N5X452z_Sj%lOvBC5gKAm=bt2Q#9}h+hkn$EF3v#_q`Ttw$c60mPC}+ zI~uG`gW>f7D|5zomFRLEA|J9oo-px52Y5al@qn+ND7TMznx1P}v&tMIj-M$TuF)Z1 zl-k%3ekrYt-g?$tyjGBa=R4b0+4|U1d^&|SKyK3J6l>UE*bTcgMR@{Q?(vTsCz1RD zj^#<;N8{a7hB=YJk%CV~9`TLd@)WV=U#9=c6)6+zo}I#L9V@CI;;PqgZ9iZ@ORQ@H=Mx=0{}K;L12SEmE!E_?E6ac(5~r!vd{ z$1K;-=%HMvt?C8H!}z9ml^F_w;Mf1=3W7gzQ8dj)E7Qqph)AD6C|ODfv_tZkifSD|lJpl(-00?~sV+PMWBeH)*B%Z0Uq_cBR8>>bOD|tor#EXxQb;=9G3A+xttB`J;Z2Bd+ujp~| zSJ@~U%p5>xY8)!F1ba!&noO|2sa_2+|2_BgyQ3m>lJZkJQ(Hyv%0sEtqQThcJlhCx6rGQ?Xie? zF-%XLFVAxKyFp<-^9Lf&`B9Y=Ki2B)%7-KGvkwdG<@+m(%?AVgmd7KO2Tg0bhI-r2 z1+mB64Ht35GQeFBp|HYtW5-+Hfio68Vu-trS6BarZK4WqWP5JY3uB;VJTXSW|CZxA z>#m{3!S|S-LP&u7d2Ds$8MgF}#C70VE+wACkN>&Ka@*h4;;FBR;wjXEh=1iS{&}|J z7Vuox*Z5ZUnn+@sI=jCsJH#Adc%#~AeLN~0wevVsHtM(EeEd+f+SGCMyliObex&=@ z@=))e(s1wVz3687e3Z_<+Q#Ruo2|I$GR9d0YSlA$y#1h4 z01iajAPea;XMENHMEs148={L{g*SkIEd#F|n;BA!5vJqINrnF*|38F>s_m%0%EQN@ zVJzO7{1-OFhBuzVkm7E%sZ9bGiJQ$M{(=}|OM~CT`mNvTLuPUeYC4V)mzI;N-;+4% ztqArAdkCBoT$aYmv{rZ_u`BhfrR>~dJ@D{)B|7T#a0^BRauo%iSm``5IDAiaT;je0 zJu&!~0ou`6*m$TH`;$dWbYU^m$A1Z{ zfQ&T;t1C1i*#51pVM=kpi^cjvkPyCPaGkKfIow~1IcxzBmwh&^J26eeV976}h z1_lP2$E)BGMr*wDRq}*g#>&1mSCF}Wy{`;8@?V?#(hKW^85tQ7n>cdZG2gZxWRzD= zQDu{eZ}BZSzKjeAWVFR242e?ty>_u%^^TH136aNb&x~?9XwdDz3gcgej6PWSuA&Kl zJd+h_m`)5gXO1(G13eNTrJNF$!l?X;2p-6|2x_fhT9|!5fG(cDHv6Y2AB|Ic5VlA{ z#C0&CY730HY5BqPMjsBy$d4z0i7aC^0=g2+&VGInqWOvvrkfti%{8l0kO{?-Z*~*H zUtwO|(*(SIkJ|+!05WFa=@oUnM+#{CT~(*yul{@ffN{#S2Lqj(o5aDYod0tIl>d6s zG8+1>@b0|+v-=@PfcT?GC}2HxgcBa;;^&V>9#Y?)#lVlb!cXvd%tl5A#*X4XsrQ7P zDPvpP!q?_rqj_Z5e0~p~e8udVI047@u~4*&XyHNX;|Iqf7Prq&ch0pg`}z1Q*&P)I zLXr#8nFP-~2NO&~93&d#?{BtPVxUQ+C>AbhiAhdP;?pP!8+N-qKI%RQc^{07DlHw8 zULLhVvc3K6@u5lT?!HS91$p`0?|~sH1!y@hVY~m+RKe|%bJyrZKroCvCRs+CT~!i3 z*}RHG<}+AkMwS_K2cbBR@T-wd^);X zMDl`QidViC?S|3TR$&8s%6y9Ri^+7@t#)`t%XUM59K`yDHp1*SVq=(fj2 zn+CDF+-X9^q_lt_P%%0W?xhvaOsK|@3tUUX=C;GU!qLQ$<)ITf!pMkJ3~@yU#K#c(;X+7(1kLBXRfXZrBG~E}opMmR2^Xq!4s>b<=RQ0b_F^uw)B_ zLOTUUV6QG-;v?LHT#u@BHN| z`;Hd9KZWngk_pDDBRBd8VmUNt)RPM{p%S@;)}J)q0swzFz-3D*h&*4)+kfU(H?QaD zg7m(1zXl*7Ajlzt<(B5+h(5+*a!nIemj3?0dSi?m1r?b`dC|xupkKkyqMtwU*WO4* zy9Y)n$L`*Lyv<#{S;;GT^t2O)!S=!IZb$i`~s3iVw7kk?)9{0;_{LgD{2lKbrf`$HzS5MxE3=NEr zYx`@;ru^nF@HWo8;;L6e@aPLG&R6Wah!Sg3*7)Pf!X zGD);#Or1nbgM?am0u4n8_>U+P&4SKC-bi1JA5{-bERJi<_8)-4SmFM^(Gl(t0$sBf zeF47{Oz<|*nOnms>__`w2%T&VACLirCAGi6n9(ja<_iQPyd=O2`STz7H+Mk-7q4G_ zr3y@4ja7LylkVjJw$$6Qyqz>Cw@TT@>$uhPwY0Bi@u=hkD7Er_s_XjLxog7!xkWYY zRITTSY!D5^r-&3cd$(jm5vN?qz`BE;d{y>q5#b%nPYJZcupQ46twUCx5hprWWU4Tn z-k~JG{TvRh7dAf#i_v@cR!E=!<_kO+mw}tsiG~WWKj_p;)B~Rm-)Jae{IloJSzmzY zk(K4gyYL2tpQ60KF{2!$t+8>bRaw;YuJRz6a!nTI$Rwfm92|&dS>L(hZ_qNl1m+0- zj83dPU^Ja)cxh%BpUtJ{fNL3OuXXXmqz6v-zP&IxLF=q7m0TX7LiH>q=%w5HeVGT&^Jxk#JzDS?X-Pd`t1l05y|rtJCCOS3wCu>0&{WGkcL7{hDJF zI^;lS|A%%Tth6JEEA+{lFZJNDhpbxc5((4`Lpe|0k=C|3fCzf%qSV83JblE-9&a#& zFpO4Iezn9Dd9zdpzm4?o#i_WE9f7205mxytAaIX3as_>#ThdQ}A)LddVkESjUNVB2pV)k!g`;dy`hTUtXB-Z!PBZ4G%+CZ`9Sx`J25|C`spxYk9!KAgScocpx!3yCeU*Z zYd4D!Hy-hwLuO)CIft9#C&-@hl&A`Si!v&!>+h>h*oBkH(z}NpjcQ9vHQ$Bf6M&I{L^PaHM*zg>K#`kN+fc{6wWVDASFP0ik?= zcXSLqW6HxcXtPn^Pc=JT!Nwy@M>JRC*(n<4h6+A*&w|!*Yo0#Be;W%&crmDofH6?d5Q}x(h2KGnz)l^xHZqI z>bAz@gq<;YpIkWC@Ty&lW{meNt(B8+f)v6f{U`m`E^dv#DMsO0m*?d=e)&86X~0KY zmG=ZR6O;1k&1e8i^QdlE?<<{yA5is?NFAe-qY`t+Gf75Pm5=gh%G7NaVh$$MYP1pL zf#Ir{?9NLWQiJ+9tQhPW2JFLV6Rl*h%p0=Jnv7mi>o52gY+!LeIzJ=e$HdoYedi7q z5Le8m^CGB|ZL=uB>LToMov@Kt00%8Vq}4)G8T%9EPicUa%6k?EJQf}no<=^Zhcs>b zO|y^euaTYr|2NLOz|KF=v1IYseoC`&3}*vld0Bjl8!%a(_m$O;fnd=0M2 zLXaZ>d#jv=ExuKy?b%U`7d?K5L#Oq%H{HZHX_P)kZzxZ9DaRH7%)*qabpa@qVC3^l zptPB{YUCgO{<-Uf%Hm;zmsw?P394Y1_*4Ep5m|QW*HZ4hB1g}R z*ol%?hikeD210rH?0Q~Vh4yF072&se{=~Ix5v_@Kk|Jg~vsV?3dMImDD^TuX_nDWD z=pmZ;%_C8hquH;cHNYFvB%U$(juziLSm~2Sw{5RxBI6-Tqg%s?#FIE*ejH<-zW&&i z0N|}Nz5HT9#UNgK=<{pDuWW_$y&Ytvcmi~IA8HPq1iJUWmtfIhpGHAGQ<6DZik(KJ zBdN(qOubsze^WH*S&peaLx+VIw_xGu(!kP_`eKMD>eDez->WYdkD$?i}|5i&H*m(jM? z#*T-zFZLb2f?3QoJC+LFRHhAE!Y*Kh>j?51yohDO(G-y(jzSmjR%9u^u0;sp-{43s zK`(^p9_PbihjjqW_bBtN~-K)i|J+l)8wwMD^Cx zOSBVe6cdiiN4BayBL@<|>E@Yh7`tF?bh@pS%vYqylsuZa^8e;XprjRhRxTvB5nUK%As_9ToK|Y6 z+%clrZ(4bpV-b)ay`AbowyH1c6&)-eCSfd~Ux~2QoteLQ@BXm!% zo}C!Z;Vg>FLj6N$M1G&OqLBJ6mv&W8xp9X!op=cGuMo+aAn3-^EPdH+o$Zhr9==Iz zyX;Q>8&$2?Pv%3@9;S5Jzg}NrkElP=vhe{z1Xv;bE_hszprv=GqVYkIZ`(09Ml3E}Z$4oI~7E;t{7TQ#X^$&m^g!lGnKdh0Pe`k7cn3GLMd zNV}OOn5ERP{Qb;m3 zIcY3WB9hxtUEk)+NHbLCuoo1@ zVdaPM-ixC?PyV}MVF;9tzIyUz!LbFq;LzAAwZy&4RbTK(p88NToZGm-J4h01j9crH z0&&p;#WRu6k&W~MCH#}~dI$$|&JYYQhFiLYiY%(Q?7}4Z9L<2!&3SL@s9$z-Y&ZUw zyJmmf5~&X}^GIr->eST~yZn?rWpMzOC-nm<{e`rx#3oLSDe!0sOWJ7Ojx-8M2ub+G zmhr4S4qzd^A$)+*{bz$1dJP8uN5@!r{%M*eXlV<2bg}cq<6JTAIjODxgTs_uxJ(oT(D|iX`cuTGs1VK-T`(!L!v5f=ZX4W)q|DtK;8;6RwB+@Gr z%9?-y2L8ZLX?rNxo?E`s_^J{+h@DV$(VRB*!IdApkBbU(ijf3Gj=)NazRE{K5e#csq)V;8EHt)pMvK#0h73{Cj0mSwwoB@GDKDYT~O`G_X>a?TR zTIO+Mu!2wc!sh}^lBxv?;uoV4shLGrQDro#)gjbndkTqH<-4TRRDglcroGM7ixAOw zfgeAvA!OVZ&*qSgt?R_rdPkUve;nCQfA@`TQdni;f?0+kvGNg>Q$PB1slBxEG%|*( zN4W)Cs@As+#z4j~zF%wUcYc1RBLmp>K#XAo>zJ$Xen-^3Ve`bzAY zvO+3nmt=Vc9BWg?6#8Hy++RtM-u`=&TU=~S>2`oohUfT%+XAaN4vY z+RE)a#C67~d;+$3nc9?^*iaX3AdOKunWI z=LJw^J{Tk?3!LNv%SACwHCD@bH$Wtaq(qD*MA~F%BtHJ~i%6BV>;jI`szaQnKjW9y z_rsDC83lV`^=4Q7Y4Qpj%0#of#45&vHQJE8RI9nP6$#bL+noi6+VvWX-k0-dwrA0M z3OY_2axY5>c}4as)_P-$DhqKHVAf_C89w{4NmxM->7k?wWp0mX9p{>I#9A9m*X{NU zX`8Y3c*eB5BmsF&GAOf^oF>BLD&K@weMv!7A%#4{22)~1mKn5kIoX@TJ1#cMG>WD8jHsjuW51~c5j9`62c+~@F zQ9g}plAbC=@mI4J?^&bznL2eBvZ9@U+^jWkoM~NlvE4J3u6U@YHm;#GWl^c&ZLQJ9 z*9Aw8v>?-r zDC^Yrr7aHbZq@w|W7$HP)7n!8h>Tky(U80SQ>hnT|1- zih;l_5lfyW69(oVd~wc^*uGfC&9gSnf%ID51bU#a%3CNr9|$UpgPF@D)#yyCI*X8F zf7XakRc^>M?rKUdV0Gr(RK%m$U@LHT>i{kn6Rk#1Wpi5in9S4rGp%#`_kX6W{E)bL z-SZrNd8%$Koptf8E(%$LS&b#u-zP3tw*SCg$5Xhzml9lJg_J~liWS^t0vXwgg%4Sp z7!A01=YV7q;{1aOv}y!|q;d{azM>9{i)7F~nkgrhZ4osNbyX2JyY(nrt1I}pLm3z0 ztHUW23Kv%-fno-!DwmXPgiwkk4`E4f1^0&@K(`_3OhRGq#qm4oz3jO0m{4ci~N2?@CR) z?ICVuLezB}7iiDTly?76m`j5_GrUQ#+Z-iuz1IVntW-`_0W?%xOA<6I_jG=@@%e+P zI9t=Bt;_(Dc<1^??PJXN>cr7n{}E3mFHN2=XrnaB>Fgs@q9+2zd2WsYl9XKJ2VYBm z(}zLMOPXg7KLVrofw`;$<*xW4Wx%YQGY_j@Kl&U~uXGi4amwx0IH9Sjv<8gqC?PK< zhPRgkp%lx#Or~}@eT)vNVSR9h2YDt2rPRk!0JvD%WfXSE!P01jz;bSU1{_Ukule?K znzd1yzz93Al63&Zk*zD}#R4mvVd9aX>w;OU(++!Jhm>6x#RnNnsr+uBQRi&OOqL|2 z5V1*aR0t$rqfQNPoX#d&EC@1c6 zcvXM#Z8_?cVQxBmdLsnCLVNoxAus0wU7jT5JfBt*FLNKhD3q!riZ$@hUVtcBZs!gW zfLn#CpyaKy1>56+kW6-S4*gGLb4ZbXUxH)4OusfxXTH_n6{xPjSvqPcW5cn{vk(S| z=Ni55jS?Np3prDBL%9_)dzoGXSf8ob%kvAPkTsbtOQT&{jqa3a9tm+5iz@u*{45K5wACg9(icKuI(x;;cL#c7}1x<{|5?4=A?#_PC~0T$xr_{i#2; zCN>w8!op_gm6ItJXG{m@`+In|u%q9hpx3+rhWO!j!S4O^_q zyW&%6R1?3h$)rC);d)eZUhGCCsHuBn^LFZ7tx^@f$v^S}D2)Z^qDQ~CcBavE(M;N> znit3l^UXF3Y-gL{J;WWan}L?TmZx7?t7()*R~}hNz{k+j^r~pr(2z^tR?I%XNn`hr z)tF7S-FMqf2#Rt2C9?1q=Tf@)Yt)r=q=}#CWD@zmM{Ba@D2Jv#>77N(j(blpSRym@ z4pSmOE^#IBKwKLGW~u9-GKo@ZwO`>jMufNuc6U&;KPPc|lLrm3 zdn~BWnq<0l0<7sn*GZ|&;q63|EebSPh0D4uMMd>LD^!xUOe~B`S1*76>=En2FO9S*o}#XF8rpKhW|+GKlmMAuBE1y= z-HdTsWEo;>iQx|x`psWy!uv;r3-OdAy63Xx>Q%I_UdD!*L|Ks8t3_{#t>+$m@QdGyJW?-Heo5j3 zR>2Sz+l-dgn2|R5lv&$e^)(CM0=mLu=BMCwY_Kk-g{)hwoG#IPOS1-&MdIn<3p2xL zdXmURIu}Js=L})p%R_i%Wvq*E-TbX^%`{p^NVYo&jDZG1)%Zrw8NvJ5O;NHhi~&#d z1~4dy8q=O*Kuq*oR4Kbu{Kk|VWiR9Iwzc|TL6wJ2)G1qO`j>*izR2zLDQFE%~ z3(`l;fTU{ULxEk%^z9Ox^oROB2mmr2B7+^`qW{HZvN<^|CcMA||K0)cnvsb&PQ@oV zFW1`p1OPt2sKS%=E|)E=cl!hFG1g34lZJ>(U7UZqll8eIbctnkeNSZRC}K!O(cAm3 z(qwsaQZ?Cq|I*6Jp5yb6+TV;@*>tKO)-6Tv{N9p$T59`yeG%~r#={2?|oD} zRd88X8lV-x0y5{-((D*2mJi~Y^Q4RC-QavPaWwwh{19hH zR<%b8Nm_Hogs|@4d16aiFl;)3^u|qr-y}ly@_wbse;dt9t4dYDwt)*~8Xd*Oj!G+H zT=lZGNBwTU$x;%@@s3+LFN~CAgDdh zb0+8$(PL2(_2+?dd=mdJY4Y{VB$wu-MbUcVs;q*K z+~=>7KO@Zr!%l%Z!L)9E{H5~73Pefzl+W zUr04+k#vJj(Y{l^)cG+S1AV7Z_L(`s*~wU5r#t;OxS`Mp6+OL=I}z(|7dqL7V94~b zVVXd1V3>6W;$On`e|T4S+K5;GVX+Vau@nFC_jPuvzPOkMznVJ!?E;I@{}z9D^8Zu# z;|dC6_AySi4%NRF`dMBXWL9l?thd20*Hi_AbmaEw+jYhBUFxm6`nORI!NLfAl`QCW zWYP(uZ?=9Pf4IWey+^aysH;e9=vUp3_wg=&Iagn2xyq^zv^B8}NdDp-dRJ^-P{OZ9 z8{4MB5eZsCpb+71$7G{x&@F!@Zv)vlRhIIE@a(7j?gmy;y;>O2`pRuqavtT5w^VYP zTx_2>)dPdXr%alcWK;IZv@@ey3GGRJu2so&I?yCMQ9A~66z}b0Wry@8q}Qa*#|haO z63hKjZbR#qQfn_dz@%+-LK<-pX=a$t&1nyKxCp^p+Oe|`?b!+C8~^j-)GjQVrJEN8 zYUefTc-yb1<{UEY4ap`_sNnV{LqB&%NfxdESnuD>zjHlec`r3$`+%$2SORjPT41s2 zm_L|REEB;xKHZVZPAoD&iIk&tHJ*f2Cqg-eZK>c9mW^WjSLvi=6ensIZi<{`*FF9$ zHwZhi7MY@baGSd_zD4Q%yu)5H6iXJ?6U&pP1m@;A%+_|?(B|lf7l+Li<&7j+-*o}) zFSvFwMtP+9e!l`w(RY2Kt`1Q~E#rL&K)9*|<(p*^D#UebSP)on(`yRd5(V;6C$U?9 zeyf=t@nkus*lkq*#U3r4Eg;5m7$0GXz33aQcOUHRE$*qUOfG`2KUb&$#6epydrR}_ zMxS4u(YPRAGq30_jkmxO{DOFRZUgwEY?lP9I7PdQ;dws@*Ga)O^rE`Ohav?(sg?>KcX93MErjL%poyJ>dxj9|0K6kv&QiamBaZPB6ce|c z92F|U*?Bs)v`rklm51m6+(gUcw?U6(z4tP)*+~N6^C_iJXxe6~D|U#Ejo3GxJYfPL zv-7XbKA5$sqok8;)OEUvg2WHyJa&fK+0haa5x_Q$`Jc3$Ld{J@z*rrz1TrXG%{{g^ z24Hopg#3P7DN;M1>8@#kfu&j`GEX@us+Yh(Pz~w3FvUX)8_CBFO!te1;DLYt4-s~3odiu8?D2W$Q^$3Q`6MP*^+Zkbg8xJFDv{O3iy zRaaQAuERniTb<&-dlNtY&&JehI}zk#c^Kz8i4pmp8gt(p+0!z0`RWw#BlENKC$E(y z)yNWNu08~Y8ehOw)lJzb2f$kecUu9)r3$$yb!Y~40Pbz`jbvxPP4idW8<8UWeTiQ{ z3?#rFoJXPxo@aCWo!(~8p__pGmnr{WeEBRosMV#z_djQtEaQ__w!?Fn42uVUYM1Qb zB;!_YlCevxO{?x)y+BFpV_nbX;p>-H6M)Rs9He%Ki%ub=1Z9AO6uzgpU<%QIU1PjO z>!RNYtp3J~sl65!bYUN_J7FszaB)XrbKvFYbM&9nZ$L}+G^S4h-p81KVL9Q2dTQbs zM2`l3`Y9>Q$Z9lQhTQuV`*Y;akiJjbC|0e=rPuSgdbJF1qy{%sG!2yBW8UpH+q)hL z2}`{B^)+n1+8NSStr^FTLr#=D+l}DZ5%m9Ol|KYi66Vm6y5EBGEt@`md^@}WWTwR} z)}WY*eOq^D4B5D}3HnKixR@$u;kk`s-I^9rOGVRYrG&xUJ2{J?rl&R}-9(|0VpYZ3e=kXi-xI~Ox!Y&TZ!|Z`A*NeUV#cC1TA&KxDqRZLk2-M zW=EEe$zRhnN(B1wGN;_Mfum^|b(F7n!o$!q_u;@;)_iL+#UMSC&uP6$BR!^~W|hEo z1|KMfQOngROomQ3ZRi(b)KX`hK8wav1K5_1OmqoTOa%^gSd#}ndr7x{mlbk{@GvQUL>HgN7nV_&0=OS(Th+;7Mb9R4llGmfj z)!n7|t8?uo`qJ+HJ+9$3HznZsj>}*Xe5&KqP1i~dx6SPSQ_S(inVh)scT+)d^?)%mfjozVj{24_SVBM-4o-+dMqE_gWAVuMO$JWS!VS>e zWJYOCoN}M(qq2&);0GKe{4MQyB)le!U?kCFxoAvLoTz)ED9K2od>!nVlaXWssyKou znc>p+hDNVgu|7oi7<_iW4hmk$G=q0)FFj7pI&N-m{=T!j?&eX7>Ac5&L)#kJi6y`@fprsiGQ0r zw^ul^p!>9^B@Z+zl|$YUp%G;S&fQp2sFRz*kz-SVS2URXg;eePr`trdOO*xAqD9Uc zz$<%bjGM*SidnTfKWv24MJ}Pn{zH192gZ*<4r&P2R*l|%;4+d$C9Tl_=^h6 z&=AbGEbhA3+>}mA9sYi;bf*n$uU_WyF9q+)>S3)AZycl7620|x*Pfm9JmTF|j_URn z4hZmgEFE#8_^6e;_6D{-aERh5jF;pZl$tF)j8(QD1g^+6j%RYPKp%G!zrPinS`vh~ zCmo~s)d=i*?vH%2+O^6$)5wx}XuC*%D~K9X{NdB8lf;kBLF~{eAv;AkeNs{7h6yA4 z@6EZ#hjshJ)4^IXh;VS|zgiB7zv$)6CJ%mN6e>MseLrFHd=?#nK)Tc5v4bd7t0&}6 z?|<@1f;``Qn@fu0g8ez-THYq|tI;@F(7;UA`pfm7#N=b3m*1u4Th7~*qbvc&jSpSN zO=yhiRAgEK3mLB-Sq9_3-m&~0QmEOgNn}gf_-jfO4+^Mg_ufwewMP{STg?CfDdza@ z=B=!wN|TlAd$P#sURq3FjK}1iz_rJ{i=4ix7qdrh(^Hv;{PEbv-c1!|hbXb7rqkEL zk}oarU~D2dxGxtU5EVYq*oEhqk&v3%qA^-fwM%|jKWVjBp}3c9jRLQhW$n(6kDWeZ zqeJW{w24ndk&EM1!`)If{k36zqj>erCB(l=DeX~8QIeU6A2l=GnsSVHOJ2ikcC*Zx zR+H7Ee$;>7i!w&*4^XqQWle;`?8bA=%gJh() zm3mmazV11F<@vAhG>-+x!$;j{F}Y^>$fj<>#I_Vf^ryft8O<7Mw#hhm_&C$c+~t<5 zp=k?ZZ%eJvC5zL%gnA1O7$dxrcW&l6Y&s{}1Te$Q?llP?<1pCWvM;_MBdMM4wAz!N z%K-XFDnLJbH{H2=-SLRCaq5f&8>islj8Eke_J6PHO}2Xuo$dI$KUTlY9W&V&otZx5 zk%!=aLLYll@wir7-yr{L^+>^WRXu)t5`w}DaJ)i#V6$&?wY+lUd z$!@>dB~FidI=|aaCb#oioV&dZ?+wA{{-itp!^z?4e&OmM;=q@4UsI{VfMd0z_=n|a zMWWjM34!OHw^`){Z&v7a*Mr}nF_;9bvimUn@HxAogP}snLW~X=QzuDToAGdCl1kbk5 z(5mXI{F;34P(%Hfc0?d|H@Y&qT$rIC^-fJV7on!+4kdwVs-FuI#L)D>HVD zK=qcZr(&FdW0IAJk%O_{VH5zV55VU(B{yKSG->d_OmK2>F7s2e)gFEpu7KcB$8MvS z)hJ`#Q?QjM;d4vPVLkp+7L5g!Ax5UIGur)b)05F#5qLPbRA9I7)C*IP_08TI+1jP# zLuvA2vf!NGP0X*JQ1Ajgul{BvbLLg{>K5S*13MoaTt66)efu7E5mzoD`4WH~LO?^$9DdM_^DM>ZgC3N&nR-dMMqBlmNl z$~!r&S31p_;oMJBI%i`nZSpoBIn14LM=#BC!d_gv-dWRB*wft=e?*9Fa#Y6z8V)kc8rTJJa!<$?`q!9~KHDCBt|QfD%2e+< zQL^1ZfIIF){Gved`NOLi`cJ+wlTKL=>JOR4bC1dd6F0?fxl5W<_vq-_WQ`6s(EXl( z_6Ud;8@gd_w0k%TBP`twSWyoC6>1bPU$)(7SK`WEB9!avn4 zpex;oFlG$N77nha9YfgJ_bpO6=EbOgQQK|UX`R%sO>$tAAvw`8>UIUnY9l51XcDRs z0cpbrRB69GtfilKce2ZF;$G?XD?Wi7U~^c2L9qmohn*O46-N?5Pq5!pv+2=oTFckD z;lZ*jKeLSXJ_8l*cBQSL_7~Rui>36Ib#aHqh`swk(q7@lUMTh>Kj4MvO0~!LR6;~# z-09bKbZvshJASMfRTfh)Q@4H29^-bC3P9vw(SMR|TR&o+gn$GN?gt^s2tvjKS9JFB z9UqEbNS{40s+o<;)gC-v3jKl`P?ikvhAlxoyT?GFaaC{^6aG)b_f^|@9MllIu$-7c z@$m+8O0x~1VTXyLP?~4pb7fntLyvh>jmoru;+jOVMpRQlX|dMUEt7jx+xbyCTR7+z z&HFttx`>JLJX3|->=e7)p%GqAwmp*L)}+!jCdOrV1|f~TRB&`mO6)Z$wbFC*~yBJ|5l zS346#iy76hnfkJ=Csz&+$(zODh`ZtX7l*$FK}PKBdwOX^Upd;qd#J=rN|Dt{U{Mc&# za7Q;!uSo0Lz!}buRxgk|$|lIr6=q89{ZoWI51AnbUU8U`9czhZK7Gevm_hT8wW?A6 zmo2SRoSZ73%>*-c(uO;)b#tkg4feF;FhU=0CbJ1tQoq7mrKYLXCihkjVjV!^Z}{)< z5Db0HlvA+vqFGA A1}Ce8c&V+=F{a-vpNK4beIC;Q`DOk&B*7;Z*H`_LYx(O-=&Y+ zyVrh<5ZMuC`Y)rn^4=H`5nOx#pHt-d+4k6LTQ z%{~f^JEh=;#9W6Vv6Upm<`oTZ2Y5>aOUnIe97D=oJrL$r1v;M~sHwyMET!3-cCI2# z*MAI$i@Wf%4(9tiv%xJlZ136V15Lf@3a?KMLR2knE>BH-v0WNjU5P1OY%7ol*ra+N zcDF_o_=IP5DKR>Mu>nR`@%E(3I9ru(@g!Qs0%W(`zveOf+!?tf2-yu4^NDQqJzLyD zlcP7XP5?MP&kE=V`lKHV@3A*ucN35l8uJxFF}|x8jru+pcqJ~s3%PvoT}mM=gX+JA zlP3Sh$kmBAzTz_z2$xnQI?;KL)$GkQjV>YtE*$l&opT*&qqYC<%CCLn~78QPNr z^O-On^g%k}<-CVn#~6vzWx!|6=re+?=Fk%VvpvY)>qB!5{*DH>zqr>cnSLAKA-4;aJr85b-lWF& zH-?Crk)cE_;t+R81T^pDQZobC;|${n6r zu3R=dwkYWx1H7OCWrz37C9&N$`UM;FbfsYneTT#PcykN#+*n&~_3b`i zSj@BHQD|)kiO=k88UMPtBx#R+MI4`I@(ckHjj zQmd7m`CxN0`Fbp)3jX?w84>4Vr49~39V7cE()6x}PoFwIi9PfjERN|-`Hj|Gb8aI! z7tOjgYU~Ni(dF@iVpIEsIN59c-IkC-X!Rkq=#*F(evioVYZoDNqvX2Y?uIMN>H9mE zjwuV@oq8>-{cmHcxN$NzJB}jR9EUx3!qHX!TEl*7REBfd5qawC`0tb)H3?gPXZ$AJ znRd(2iW%Q?xI7>3Rg6ey$GaC`sqE3-9n(=R%i9ch@5vP{9*ZKrNq8%dt>XIw+iJ?1=@B68rn6IV>>S&*x<*DZ*Kcduy+OO zO(U<*`u?fAW?lAA`V3CGaTC=FUZqsY4Qa|7W!|_*3KRK0*;joqh+a? zT55vxMn1J29>z!I&u;G571^_8Ce9c*A4N$|?=h`r{%jpKwf{~UYU7Kowx4j|GX)oX z4J3RN8R7y+T}J&{7_?hfbk+B&!S)i{9#q?%N#0*#n{hX@Rlez4+iajjZ(M+b`>+jn z6WT|<_jzYx^&;A!Wq1BcP7lCrx7SeqbM1WAPP6{H>HE()A$uXsdV@y6aSIu^U}63- zn*(qkhmuO7)!QUoS8B`(st$MPd*rX~0(|v1TG&+;DbBuIb?`9HOhfU=-Flx}L+yTA zeqV#LJ;eVo_&JdE8D@S1_w+s0Lf9&=T0KkX2BC~$RDc*sl}KP^9G~T>1l@T0(To
      hlV5#>&>PMjUo@5I6EGWA0s|v95nCLv$kA}F1TC}wm9C-;?H@C>}}qS zum~kEgu%apY%T=x1GLtX%Rm2~$@2J4(YX&acEm}JcM^iR-C($Q{>%I@5F};RM>t&64XcHb8M9UUf`79CP$_};? ze7og@JJhZjV9Lxj?Ogig{zVT?RQ1Cwl~tEacdn+9LfHM#F0-pcURdjNl8Y9Bl69)5 z;CH@OD4l&0_WMWfypxP2Jv1k9TvtTG%@=W_pOEBhDE`=(!x3Kx4a)E~kz(E13A}!orZJuD`E9sUg|${~lpA1=l_9 zY-k1iEC1`1z$|s>UkL|5hJ(`y{o1_3jhju*f2(70_fiD6!C?&Y#z`C?>$udRk^UMRvAa!y_>MbGIv4#N%hXC0(EeVC<-YO@KfU z0RTvn=rspVYe`%RZ3WDUFbbq_)2tY%#K^k7pmx+xAtM8jU%hg{gygTf@9k`@nI~p4 zK0U%Q&c*gVbwZ7ejdg~g^yZPj(7!ACM&-;8Fn12b(|rukRIkjJV*Jw8)!A9ogb|%` zj99<95O{5zbEWM<#W+{JEo%&BXaB)$b$Wdb_V%V1c#Dp_q?;DQHEYQLarAbb{~ z_w6rTW2uN^hx2QIo^CWZ&kT9Z05tRA=w~l9RJF}By}`nkyfv@j$B%+v zjZx21c2ZB_x8)?78)D?Xh2XU>0Zm`JFwabmUEqv_le1rzlS|%51b=|eSLdTexh2jL zw6+KV=yr+y)fHCm*0)V`*B-Adtap;6+*(B(?I2!}HJBp2*G}{K>B;-Twj$wJ9VC>1 zJ|EJ;ZB_C``YRiGQW3a*V&E`0u+k~})%?Zg<0JV=?hU=aQ6rt~$D3C22iZ-U4dxbW zI{~k{ruJMOTws>fALZ@|M%a}<^0`ztX##x#V@KiD&w`{HoJf z6pMp-k@~iy36nPBKu?@kDcjPA?(LLzPevW|F1Le(T2H zvPvxFNF+9;{k!EVO~FwQB%PHbcX#RT6W*5(p57V#ALNGCsY0IIxRKSmp|(G~=Q+uV zOi8=v^R9%9up#z9&_Jji@4eTw3rDNI-xE3q;HRCtBM?(WSp|S?Rpm-AtvJ(UBzaG18#F z#NFsCBM1MJ-xw-Qi@LT-M*lR>OA_}>ZVggQ2fx>hi(~84aTe(dSm5)??Za_RhrRDh zTOe+F^5f~1an2r>1x(+8bzAouKjYs&bjmqeE_j2Ig|7Tx1@wZ87eJ65gukjV8Llk^ z*w$ZEQOJrTh=opSk3njOL5E4F7!-%R60953&`=+u7fp628{QQ{VgGCHpU&*G_@@y6 zFO>@SPhTq10YVmnUr`c+hACwL>;pvq zpY(4oi4d3-c_ZJuYH#B~!=a71I+VdURxmNPU$~+@L724@X@x5Q%(9E>x?+2CO=LuW zSpGer5UWv!q$9Qt5nJZ{LWBD@XQO!tjU=v2sR6yN50eLZkI3(8}W!0c>HyIo%mJC*@KxRPM^i-(vXpdCz_)1Z~cpCvMnJ zzufc+cUO(d>D?ga`s6Ap_~;&foDgfGvsIur4BtKb=$IlP^>RwZic?Eauol_TK1^h8 z@b12~=SHwYH_C`z&~k1j$ZFmfHGbdNOKr&dP*#?%GGU!bv&Hl-B%a)|HWD{z@Qch> z9s8lnYcBqU0*L|M(eOBFlQ&HUssv|V9Mdt@9rqJ@1SO%Q+c4!goXuq>8brv6GuX*k zXb#V^_Cu!+syh@~&vB{b4v`4c77%wUK7+eHVf<|ONE^oe*?>ts`nOaM55e4qpbBQm zo06Djr!41{K!^3Z7rPpq4Wx zheF>BC(*wz0guXVIWm$4`Y{e%eMLio%CQD!UsIzLwy(`C!Y1;{xfIj7IE?y=7eaVs zH_11VJ*WyZLa-Ju0wXblO;`CQ;+a=}ERaY{+$mZuI#QIabsvYSsA$cE4Iji2_u9ST zXP!QJD6Je{{r*fqW9@N1*c5#cEFHg&Oa?i)le@j7DxLM<`$8^Jy=^AELh z_Ir9v_B-=4QubRJ{~G`G$h-AS#VbOc^1OWT^WQmu;f`ezI(8Xn$2=(hWukG~i?JVZ zZdqx}Xn6=Sk~!cZ@kn(Zzcs1t^rsOZ?nFWkF59;@q@Um8_#CMZfA z#1(H(`#nnYYD{=qB_q+QTi>l`%)h%_R;W>K&g_=9L`pRJO3p|6%{s9AY$HU6G1H?G zkt$X5?@nUQ^mJoywYjW4EBfx!W3Lrxg};xPDY&8xeuh9CLPwd<_xgi;&2Tw1c!nkZ}TG0hy-}J9pC}5`HSE_LaYhIluNTMxQuP;HlXI@S|adtG7OFN zPaMW!NVteh{X}gv65DaTGM+&_gK~vxNk4+^0Ph)wJu^5vk1dT$G>WC3ibNyFS!Cv3 zUC|Oexs;oXm%g7aJ3y&BafJxL->rLNfmC5zTAhyX@AO&Hy51?P-)2=oJXFQ!UlV7M z+B|W&+tx+x#?s1$72g^vRlz9kVLbV|ghbv6N*)?iw!NAO%t!2vZVjOl&*l!23_9X1 z%~{`F$Xh=uo7~gdYmAO_J<>6JOJE)0IeQf#@AOIfuJL1maxW)sO>9D1K3WfxC7C=8 zt^%s{i6pzm=w@PnsbZ>p$TSZmy(O3moyL=s)&tdw2C_6kD~|<Cp=F5 zSTvgy4?L!f{YW?_z2d>lE#(blWh=4P?L;Kh|5!S1F0yhE;HtQ@lhuFUQI+4(KYR%HgK5^Oc>+@kq#=EPx}ldDUgt)D>&hu2ZIxx(uvx z767>L!pJTVcnD_;bUcXjmvRTPEdr4U0XxiAA%Mw$X-XNP;M1Tc%+@zHP9233f(WN@ z5zvF)QyT7u21P(76;rDaP1!<97_`nWnbnkS?;uK?q*>}9zMG?k=#`hzL8y)b3q<{i z1dGizsVh@UavXQW-rMKc-oM~l^%%4^w_UCsR)1oQ zT=EGPJSM`h1QgVrVd1dhw8+U;#m4RZppUdFzQh^~Az2YsqoXr8j;<8%vIU6^?HC2` z#jB=DD()djQfro_+6WcZO<#7=9wat$A96DVmyhSSj$3Q8dkn96S#VeR*{2S^nV!wh|`!E3)LY{3mY;3j!hQ`Qo(n51;mPo5| z*XDvV!QEEd{XYdmE3g3Wdh?~~$)DGR=jWd&M^cVer;yVt`EYMS^OLcXeyQ)qT1zY} zBlAwvlg6lhPIA6}jcAQn&oo_9sdoFUhp@a^Nsp|#DWIVu{+$@9g9(`UqARSF zBQ$!^3{1En;#n=W&0_yC=S}fF2ktrZQ_#EshZA6D07~-lneloPg;0&jn zoxv7YDMqZ`h`o|?;D;MwVn$9 zbQSC*0daK-{S^dRHGW)!xrXcLOzJDMz|`?q^wdP`py8Z}o{JHUC+jYr*pFmX$bmp< zn@tHUY&LV!;iN9AXu5(Gthc?K>RxZg?t-)wGBbRd1e&pW%)DIBGI2o#y!6>aFzuK- zUH)_ktgR#7dk6K%Vi4&^5vtL}^zAv^g$VGzdc)j;7IfCR14V{;ymKo86p_fn$Rds5 ze@*z#&dDxl&L^b*Y|+1Rn+Py=YV2<7>QB<7c`mqD&Z-^GnN&G^k?@kC@zsgv<@-#( zS`r?Q1~BW(GSJ&E)&n6!#WYw%Z;S<~$g0Wd|H_#%Sx)E;e?MOsyCtZb;%JMGyW_aN zDlXJZy*Y)eWKJR5&!mX6(W&}N(b_xS;P;;Dah1Z2-4W}#7!EJZ18*V2gTjr(54Ae? zH38G?9+V*OI`LE$K;&+Ccyi}t1S((IyW2%K5)KiSLCgDh=XsXulmMkPtE?A$@mAO1 zvO{Z8`O!|7-Zb2PyvfBNyr0YkZg1o10RyFWoBQdFjtO%DOH)obGZfXk;>B0i>NKvh zi0XNjd(NS*gl)aw?KhIl<$(JS0jdhTepc1yL~esIAapi2!wz;*U$AGYQ16Mxq45Ph z$_Vrl!DuwxJoYoG+OSeWP3m!wvW4<6v`#yX?}Cy=Qnx@s@^UmhC8P4Xe+FBB;bXkU z6|JoItn1r&T7XTlU2~>5!>^qSiMvkA=TvU#KRSj7u~+i3p|6WQ4P5fnsGrnuS!U-V z$FU&l*f`d#Jr-(c1}Lg@A12oq@FX}A7hICM6ndOCyoc)!K1o}@3GzT>gv6=fgwx)p zHc$@HsnL6Kyf?VwaFADXDhxGXVMz_C71u41C*Ex0lAY&J(NDCNUQHhADEN^VIh()d z<@JE&Jc--oH){L_>B9Wg?njxyz;KD16g0ibbr{03OnH_^KVS)d+QcZc&9ne}n|NU> zg%`5144x0*4E}L?x4L$osCtmB)(b@-?Un}hP}~74+3RIDClqE|6qxtYr=cJv&j61MH1_7y7X2wN?Dz(|aOTZ*puf5|;Pvr1)*=yEww_YB5;*O-JIG zvdq)E*yx3CPl97dJBk4dXhVUk1!tCZ?+|Rmy7rh*^5`u^7{zl<9pY@8feY&K^x@;{ zm^)XfYP{sjMZ;NVav-o=cy_g6y|ESblzfZgWxr%}r;Wt6ZAUe7&LOB#X8TSzvTiz~ zU^lZag`@#n^&PjkOib$pii@R}^GDL|KVhOMi(y#_VOsmzBd`t-{tDNxkTS!4PmN&v zF8o)kskor%mqjQ(BOWN(rdfX7kv6KIuayhSNw;HM$POfW!zdun{weW3qfvKik82KR zxOky%&u+#+SEK5R{Y!tqXDkN^hnc)r3SBUY(6n4&OVWRb`XB5CgRcI$>79zGfVqf< zCSPrkS)!P#f0%qFg4I=S1{S)DV;f(VeO8VcigRN1U{2~Fw7N_8&Vre6ez1a(oC8Bn zd~U?>tNrWm7B$=YgK6LPxcF{BjfY-I-L)ebFOGkL>K-epAzf3s$|>i#LJS8V;2~0< zYz~_W9bfyNMpC+~*p_Q8NM-0PZNQijO9c8IuLIIT9BFGUGrY&JE{%sutJMc@nSSW} zGJ9mMt~(INa`>7UdyROSqH9+dNF=5fr9G76n~pQ`UgZr?%c^h~E0vQ4$5-filDPeK zcF-;PPvI;EAVXYxZ4yVx;1viCy0i}b& zdD#~^ipvezEN?faP}NH16j}ouLLK1=TMu7>99Jys9^p13aw$0JIZB!uYE8|2nq_nB z*eQlc)cy$++v%*vhC5%f5bm9n#gOiqREApdZFv+4Z~0>3{?pvL+idNtasB&I+g@r$ zEs7L6;jHhn(yQ(ym{?i8)Kz5ze>|&k0+Q7gp`{ooIH>)TGX1qhU{|V5c zzW`9|h{?2}2P7qF-;aLo?M}4YS2{b};OS&RkTO&4o*-ce4h{N~fyN&eP&-P0kZ)!a4JtH1A?Ae96t0&)s!_9t+vk&cIghcj&G-(CyVhY{!C_!-<{pbkX)Y~f z925p5$s6{@FvfRszRK)zds}PqhqL6SzjPH2e`Wr9)NlMX z#1wlVOD}JD0UyoXEsSIWXLw^@vEF~V4|)ywjAed`NL@_e5=EUH(wN*8?=@HGG(WpQ z{;a;Aro$K!{KzMO7OelP-?z&NWjQhIIY8KBkZ_q#)QDF=`v*M-DuG~610K6abNF6D zQ4Ync)N;8r)|Z0#F8lt{9)lcty|^?+$09hXp|CLZ*-sI#oi$mt_aSr|77A?fn!l!s z&8RIYzthgrny+O4iN))FEGT3eLBb4{O**vfRKsVV$*x^0W|XB2rup+(#-#h8M_DBA zXNhA3Lc%?% z^<*Ud3nVy181`fdMa6UDXsQU=3G@~HM;-Dh2~jRoBE5X9^SPcm{J!w24wg~L8mltP z?Bdp^-pbVdrm5peW$6~bkNxzw7hIf;G%92U6SBS;ybtr=ip-eI&opKa!(P*lLK)O_ zB3{qJV^6A+^oU9hVl4&o8H9IFwLIJ$E|Narjq9WlVvNm$UOtwIm0yF7My-VBLmiSHi?* z6EiSc`0Hy1+%!CEY)y9RcTrNhC4->_u7!0Jc@!_LmLJ*!IuAF(xEOuq;ey>~C_XS} z!=RLT78)}I9s*g(xNpBLNa%jZb`$T$n}Gce2FYH`ZAq5H%ZUu85LWm+k@zNl5Zq{# z^N1scv7xyRs87KdSTq_IEW&Xzg-X)E$#95Z$@@y4cMNZ2$ZaHs*-Qy-OLBv5xV`D<&8emrP?x$bFG&Kdzv9n>rAW9`=Wi%jgSm-|-76!=vHG=@pjA2;m$i|7hZBt{#5a3FeEma^BR$u;~n?rvr1@=TjcCa0r1y-*qZ4}?mL1`8PQL`>dNuWiYcv%ik_46m z$$*&bLv#se-?vRpS!zknf(k>M;@xJ{eW0*53pR(6RT1 zIil%ku2}21f#H;O8>gl9V1DSzwBCvc~mVTi2Q5`>mja*wi%? z9e}?F<5yjKBo2N$Sca7RE@%8bffW|LyK{D#*uDRLn{0EJnST@-*Dfm_sX(FM`N0kcL2A`EI%BX*jFT(gd*?7bDG(Zegk}4Nq)H0>+jhPdZDn@Tw3_?f3U6lP zW|dATfLmc(gAWvyK_Sw@D!&0mz!c!5kvkIj%nynSXK3}GqA+GS`Vh_!>`8VHL?z5n z|3gXBBJbB;{2gOJN`2NODRF(*=#%G@ph~tb!BXzAl}(J3{|2FR*sq14NQ1+hU?-oR z^HQX0{%bKNx%oIf?&cPu`T;kp5oq8ou?|>rI{uxkl`eh_RjSX7)b`K^dEzG6irF5o zU7~8AlNQT`8~ChGeQ6YGG-XB6mK}D*a|0-b4}M4$lQXQzd{Lj3_^MEaEcYHl<+cC| zK^uI47MaJ{IENLs59i}CEvJRbo5}76mZ+ltKS7iKb5?->B!mFRlyN1_1D7NB+gF0^W~8#Rjp>{$Abe?Eh}?|4EF&|7HJ^Kc*mE2D}P158Wo9 zRurs(tTvYc_aqdfuJ}~j%;@QovhUxTWF<7xx-j_fvxd#<;&6D0?uIM|hNXWm`P+BY zC!XQySPD%##<&qfh*#rBr5QQeLJ^4*q0CYlNl8V=^11p&o3RqWp!=zv{~r zu#G?q8k*jyv=LiM=`ADE$&Qq(H3z@dF>TcKcX&)eS<>Q4N@NUCtcbTJT;>_JQC~EB zdn26ZhzJqr->~+ancgx_M@eN`_^P6U#lZZoK@Nq=knQU|=8=|&7b+EQ^>3fud^Xcj zILdnt9snfVmI1;l?~uoA0bUu?Es4n?&Q;HSUOAXh+vs!2Zf`q_a3Ym!oi^~tDAS^- zH5o2=CnAnsLhi($9mMN;l&uFoXMW>^AQmWIDL<8L37%Z46GMEW*fK^1j+VZzk#|Kk z!P9iF5A8ZK;P}8>rAr{#UijkwXX2M_I(eusEwG%=+u8kTx74h7Rw6kbRWjfmrQ~koyRVx zFkM1(U)u!*Y00-@WPt!XINuX|W)tifE_->3P%9?!Lte@2cy336`;<5TB02Lkl)?0;2C}{KpV;{%__l$Hnso~b3G2Yh zwmm-HfQE8RDumY9VHDA2sw9H~!_io=1A)6rXEg6ITio+R`IItA%zWH2QqA_qDBsjd=j`@uz2`a3l=fn>tLbgyR z87liKNkcM#BRFYeAIBW+6glV-;+%$(S^oSSXG5^qNE7bWmrsvkTEPJ`Ry^c@qqHQ7 zW;qV(mSUzW;xKfD(2<8M6nf>z@VOB+f<6NSW`qE<$Ubs>F6sJ|I%_{-$eUI%fcSsH zH~+ zl4uD8*9nrDZ6TSx%T2C0=$$>j00k*Cd#124;j=M2BE8poH)&!cl%Hb|{J~Cb&iW^_ z(^csP`Z%s~qfexZmBp7YWGO?0`l_soY#x?}GrL#6H~NTY5UJjv)H@{)hmR&sdT`>} z$jO5zvMBU}zE`~a-dL0v>m;G5^T|Uy$5w{-jaXK&so$vVfkeSio}ZFsZyMr$65@AV z-1(>sz>Cd{-^4CtBKd-iPsIuKWs4)L+VDAW2RV9OsOtatnTsbNhQG%gowP4g^}I&J zw}1WXj9~c^NA2AQIw9r?TN}}lK^vR4P`5%J;f7K+_%0C^*&Ttrr^HJh&g@QTC)5kj zko$>-MZI@&)ddN1kuY2?y9K*60`-#npn=soav#4$d!#`1kqI(nr<{~vloAxPGA^=} zNG0sNc*<@qk2^$I*luj9ZErrQCb3CBBjyhv`jCG`^@;=SA=t2!Gpjc}L0S(X zFai@c*Ln0PT4K@P&8%7}zccd)GAqlQ%RW0>`~lMOGgnvf+Bh&p-DWN zD}dc3gX^Xt6ngF;nfIaUtIEf184z`-zS`ci?)JLI@QU?jUN!^pc_sN&65e#% zl_%w^TpthI&|lgCSvet%-x<+>16+rc_c=EHhp8+y{){A-BoQ*|VqiFx-s1YDsvD^;A8t8V3z#mW3#VSVOR8H_jrMtk5Mwr16&L^Xm7S6j)sPmA7Nb#+(YSf7 z{f?UArxVDs{Sq zPou}o%@4 z;QevKfnBx5r_fGMe{^s<8s&Qbe3k!9;rXha!FT!r`fN+TvTSunWwKh9z*DdP_*O@g z`*cKwky_Mex~DNDyJUhrfbxxhNQiOq#B&izl^~0jwT%>m zW1rdep=5C?E`@e}qk!x{1FcHRHs5%aLhM2f=9EwP_*E8~ zn>jStO?Th|7E6s#JGW2=PPG<3xx<$04llxoZIw)bS9=Bpvmq{kqJ#ZidZ@K1`ShQH z#@fL1D8_?bUw%sVJ;c?I!iZ|+ignaqlb!D-savbDrrz*kCqIp>lHga_tuIRLwC#ua z>^~3@zw3AQH9<06VM3TVz`EsBw*J?#&za%mZV-ceof1Yn#Dx+dF z9gkQiifNQgo9}o&rMUA7*S(de!LF;t^FiJI(DwMA&6jx{p7z*%aS_dT|z;(>yO=$?o4Mg=qJbX{K7rXLyz0o2 z{3NCyZ|nG>tPE`kSngK4Ka~=-s!3=F?sO~2dR$-o0Hp-G(T9c`A1_Z;+n=BA__{t+ zJMekN9Y}QlfH6qwRuN zpWA%86tyEgZA_=is^>*SM6b`SSLa~Vw3z;<>znH4U_#IW$MM+Re4VxBOnJJhF1XHO zD{tT2w3q;+B+c1+zAIx9V0gC@a!|alEY%BN7BdGoa;@Q19djQqIjo$Ti9sn=;61+G~Gtd{TvRX0=oqX+$=?8 z6RwIpo!v8JxSiiLYwK#YFI8Wltaq?FW~x41mlsM-W@0FL3xkhh;C%q-t65|ZcI$n? zn)Ox~MfA62xd8CZn{F89w0`)ysPlw{FGfZyoLlg6IS)LN@ zP6^x17rhlazO*^W9-*DxqOVSvY^`o}H?)1)($x^&y@VG@&qj-RH$0=CGhiW`SBG3H z-BwUmEf@NFdUcYrG8LP}aZ%V8w=O{)xn7py&3IV(&1v4y}AKRR4 zrv0%s(Sw-J-__WbCCwDts8x{Bw6r;IpvY76AAQUd1SbP51#fop=_n58?qMC*-j$}A zXB9bZ12|_pk!{EL$L`NzZN~)1?vAq3$AzwUGQMblU`obLGOwj;sI~8S^%HNm`;OQm zSJ;r7FagOk1TysqgIOazYNOn-T(8!KyOnqB;P^&$KOGS8xn%0QpZ0a^lIdlJY}Ls+ zQgZ?-bVQF%YOFEE8ZzcwzZ@_O#Kx;zCq!0!<|sZpf+1Fk_R@Tz$-a`A`+26Xu4t9) z-p#?2Nb|kjz21=h$@4=P7t3*rWK&FF8jBPc2{1GIquUkf7CnI7gdo4*>n|bJaq)a# zhe?vHlIg|19k|tAUeME1UOg+ayQC>qF!hl*n{e#c15fH#JM$`aOL8*9n1LbQm^!$v z-{`82#Vhg=V&7L7>>jssKra9M=0#6!9xeKj!p@AX0N`i9afCQrRzIDZU#hG~%B(I7 zVBeFg37qqptZv15d>tI@)z=q1O7V>{5pZ)N2n2(5oOCy}q__fcoKH5elUa0i9o~VS zWRmec+G?lgMx8haySvUud^bzaS8qeSyiX`PM}0Sk(DBlzw;uKOGK%Lo7cXdlPp3jw zDdRs!eW~p7_Tiq#BF~9Ue4y5~c+P?P%GYlO?l^DYbuYP$mC{^~xLLU~-YEId@@&K4 zCv`BtK)(lkKhnh83Vl$cm2uX=!*Bd^q-6r+W_Fu>zLx6FKFmu~h&Oct&{mmt8?NaH zh|{q%Kih;g)mdA7InZ9=t#t74>HbN&aV2v14-TN5<4PstOnrQM;$ z9-~~~X6{`&)K^KSXr1%MKl9j5#6|aDFQ)Ll6Fqs|=XJPC_@dF|*3h?HpwCR*a~}Ut zTSB7%2;@&$4~=ViVJTKNl(}>ZPOb+=7*K#53@e}a#WV5!3 zKB_U#OCzzGQ~LR{5jpV*I$12SU8=O%%-BHws9WE9UBDGV7aidXk{N1%~8u z!BT_!bAr-~pPeRI7E;~@b#=-b5}(Jl#)OAUyVkN|>93}}edFIs>wvXdJ)v@hLv{T_ z(f57R$p?$yvSLJ_YPPZGcJa(GS+^v`$QGJKY^|QjN#M zV497WhX{v;l9xkg0h%+xmUdH>KIXw`NzI7wE&dikRt1`@?2PJRV^d{V?BR(ai2mCA z9k4w%zG^oT*uk}-;vTo!OYqfgKbZBI!3;@`)#;?e;YQcHk(`;xfBZRNG8>leYDzb>7`MAv^ZM8 zvfr=fHxO0OksZb)hIW7t$t-$ILerj2R(4;n?tW{^Jq>#K=B&7He95uOx9gQ3Y7{bq z2uaG#hma*ruKjHI7{LG448Tr@@X*=tWZx5-Sb^qjfW2QSJZJp1vXk03xTScMtQh=~ z8~btw&*0z0#54#pPSW6dXt9D+9Y+IF@Z+qGlRwxh6&Y|1c%Aol4O;g&my<7NduRmz zh#_;qJUSV<+<6yz!Fqkkst$UXSRNqKvp-Q5!ZTz5imD#N8EDSo1i0XI@QfdDLV{Lb2XoIZu4^o`drD9yPuTUtaa1>%e2kJE~$kN!~{F!N&E0 z23FPOMFD)fj0I|>N_sXr3A%)p%m%U<;_kN!I*tDrLm7Ne$a2<@sdG*tDf$Bprolcd zq{Kce6Nm|oXs_zUvuk;L=TPB#xjx?2Vx16GVZg^{yX1I2jk$_UV$I-GPUfgO{0seE zu;Izp_p6SBQwn+NM{Dl}G7ZIt6r66@=)HXxtbg?fbe4&miaV8>$%~cq^|QzHd1ige zM@5ic{6K@|lGn^>61wkCQXQ^~M>}fMHCc>?n5D|j>#@)|(8Zeek+Ge%astu8TcPkl zXsVSaz?XTpQQ54ctH?LyI%gej-r*)-CnetDHPzM#HJ$$PU;VIkf=fz3uQ4k)ns3Q*XBLvbV38NzQf5nGv zH;>h7FZn?sz{^@0;V^Z{bO*{f6(z+O^7?+cj2)j==FjXwP9z*&aUZh=ob_>CdO?E*8c^e27>0%Dj(NX0hqlzPd_xX)gvt z9gei56!~)EI0>IHg$OoR}FRaI@Id<7}e*sJ4>VcXqP!XVD5{@YvKMynzORr3?-{u4yZZw#2lQ#m3iw zIpCA{ufgVoNbAodhSO*1`Pnr)x1%YaCkuSdZieK{ZlKxOn6J_KknhFt4qK?)UfG{~ z`X3;r6dSKtVpAQf@*0SUuK{QbQxyDd^N^4jet6<_y)H}lmRt@m*`ODF5SoULJXIg- z=$2dM(sFJ7TAwZsWp>gThV`fN6fy#pUz`86^SoMWSIJo1k=t6;z3}*x=hAj;&1)`O zBE1?-sDgF7ok6YU^>CB~b$z70K1ynOt`$uvvEy5QmNS_BhP^0qJD|bkd**U9N=oB8 z_7juN`bij1Kj!AE&AD53*C)HBc+*eij*tyO$!8+ReW5-pe2PG&>l~?sRPHM|HcMHo zpE9==-fsosxC%MzZc|X6M42C6%~X=LF5V>!&eZ9(7HqX@vhJ{a6)=qyb5&C+(WU9M z+>^R6RyJF(U)AWI?`Zz(4>hfz;s@g3VtPFQy4!bvr5TGIcSjE?^Ze5z`|e*pH#8R| z#%yJawYz-T70_%*Ki!IGI@TM1w-1-nM=lo=5f1fdtCFoY76RbO0{8gkd z;n(o;=2o)vH-Z`F6vJr?Fc`%Zm(NSC@+PrLD05WizxujNjIPbj{?Ue^TtNQw^roCLy!D_LxT-VO3p>9>W z8!AYMxu+()dA1Hq{6^uhM+g-MIS~zYmTP}ZabXoQ4DJN~e>~GKy3T9ra`ytMt65cTSETMK}shx5t-f-<>{zJ?3^Ku~FHP-FdvbK8cDcAfDo76AV?7TZG_-eLa zl3j#dWxlMaq%J1Chp_Fm(P#dk6B+2 zIam8~2Ril}7P=bbECAYyt%~lm3%}RXBo_OHxZ`IndJH@=xr?RZ&(K0t@nf`IWTf2I z7c4cgJPno+F4=RU`Gg&?ju;6Z_rQ3}~BXZ@o_HGY+K zJrt8g3nXl^o)X2KU!L_r*RX+Vld32JXx{EXslpVRF5z7)>cKt`*!|7(uXV>SD!X;R z&fqI?1pk!GvN|SXxa!?L(s5Pii3S8pU?C$S+c*AjIHDKpzi8ymzeX60>Wx1oKiLBY z7>q0t9SlknesVl5fj|(g|F!&I!_2dR(}%?@j}LIa(E<4ue*^IfA4+^< z9AYNY3xMrw@t6oL;~JM0tZLeaF3z@{l(5B7oGw=j3QhS;LC<|ptiEjlsTYA6v!-?~ zU^gN^aWhp8vb1o`P;V74_+``&Ofw}p*Z7%OoaN^~73txyHTWCkKaxOYnN{h`M6Wna z`{Ld6$2>jR{VNy@`;F8LBFg8Yp9B^vdn@6E#_43mF{mIvDj`mY`uXR-6ZoQFp_Az! z*WK!W(ZTHmXFkdfIG1K)03*dItCwK9pWm~x!VW(&;(f8T0jp`J=L6d>$6vl8XAOeV zU_nljpaAGoNXle^$S5J6a7S-M9+F={kLl%Q-Iko|Nn@OCMqFH6jTtuxA^$M{gy?6YbOG!@>7T`eDwS!h!4!LyZE?1Ud(hLGhpU#etHnRL6LKSCl=RXcA6H_)X^@b z6UP$eA#y9P!)-Dzcpc@va<}^e3`Tkhm=$Q;_GbGs8x>K*IJmNy?{;0@ceZsbJ>zai ze0rci++kSGsyb^=^GZqS?ORzZs}lLRV|bT%W^!Ea@Ymho{)LZ%7W29UvaD`{CfzO# zEEzR{r4@p8cNJ9WeGPYXL!(L35|nWG4=4qlm8~sAq9ucs(anXhO{ycUp(_G|hnMUt zSWRE|Qd8bSwU&x|RhMRkj3R?M_jq`}QHaa8T7U~D81WL{6avfLGtn2Cs8AmA3rw1R4eBMc~PpZym`BtfK_>(ZFRcwu9*Gp=k~7Fcy%%%E#JoW>gF8UJs=x%o6<(IA~MoiJ=A(7 z5k=7B;-j~|wC3%TqCMm<3H^WSNZSdcSNnI+Sp`T8h`a;s6lFno`&;&=>tvDk_fs2u`J7=+Fo_>t>Xo|zM{dVS^Vrr%Qk z?5%yeTHpG-GG%9`wl+4EB&KrRs^{QSKl*Bj7#j)Lf9@(Jlz0`$hUzd=Td zk&k}y-?JmM4gx_&LcC~%`XEztgIb*?D~(g-ms#aiv+wwF|4{Q-pIMXg#;IPG9xa5u zOSr$Mo&tAMWJ+X0yXkYE3Xv-Bs?S5orb-iN} z{S;MhX&_!^Bs#6y5n4eY2X3$UL%qdK{Jhik6mp!NSbu~;eHJLndumZdCat|?`^!1T zjVb2<-MX{c;etVI{XJ)xaXJ4+1$zyOj%P@Q-KllPYH1HU5$|?wu@Y}5x$Y+(Kn-7A zc+V9caTh-4{*UR3PnVtjm^HdRXz$H`Q+JlOo4dP_Fwf`6_PZ);>3(u@R(I6BP&4kq zkR#U1@6!`s1lY_7G-|Dmi^@Drk{PMe%xI}HPc8R*1U-?zB zj}XT*@k%7rl6@86vimZWce}Gv%vZ|H(2hQyCAk=>lRt#Fe#=>x1tAF3K95YDcGpzr z?S#B7+2)8OAF9hMQ@$o{E?+-@c+k^`l@4E`aGHNlndh}gnx8iVs%Rw;i3}+3m|gQ2 zYg=whjVYiIbJKMTLvl#xg^g<538b}Mo5y@!>1@zniHD~+Ycj_)8J+_++L2!o?7N1f z(@8G&0!$9qQ@Q$;=YL9;3}BDyaLO9%U2oPB`j+Bdg5sdu)+_ck&1%!F)t~r-8xwMR z9UqJ=uf#1nOlDHe(Nna!EyP!OR33icjl~HFqi9MIO0_$3wO3D0qfE*Vk<_!`of{?Y zQ+X-$e+F1a;hN%8Wwgmp!F1}skgTHK1$67B(f|l&gUq)=Fmcqg^&B8!oQ=P;K|Iz! z$n*-boik}>h|g8(sT}U&!=dMVJLcbA?Uhf?ja&M_`2y=}T|FZd{Z@{fjYBC)pwbiASeZ0&= zDBm#VL|5~3fIXKS{3`m3f5BxpLyd;usUB*%*+Q9BvBgk+jV(~-8_B`E+nBm@_g`&) zN5Xx)<<_Qb_yaCrnXVah`ZIEoyDG;L_i}~>{g3WTKrl47IBq?2?@~tMwUZ>|h93m_&zZpbhZy3&5h#v~1RSwP z*!s!8@FersA>)#71CCOXr(+2WJ}!VB#1XwMm@MYNBkA?1Zu{ukGc)?UF;5xk4SBUW zwblx?dE{{K`O*YMcnS;_r-ohF1ZBWaPDqY^Zx^^*G(OpAqOQ&gIoT9!O!~_38!hM? z=k(Anjdhnkm^uQ~H&vhmuW4Y!Ce6{!Xgg_h9BtXh=ieCJ!fOQ4iH$`% z^Wh>di^nSCv-)kKS<2EPMY`$@S%vwso06{8amcj!Ve|B&RMAY4uYN`` zPzG}Gn)*fLVYvcBw1(%>Hjvs-rZ4Mq#z_>hGw6jmX7gCIZX1 zbS*i|KsNN7+V#5uB7~s;D}Y*QZ-H#0Rpuu{n~dhh0$utt9E(JuNo(KM0wluM+sp{^ zqTjV;S#-^P5M5X1SBJ5uy#1VQ)cn06w2S4(_bP_acX%w8PCk3(M41VMQyIBdG220B zEzuYRs=)N5B0D{WQ0M{sU|&W>6{RE3sA7;>!Q#}qyaheSVgM;xA^N67IDuzB?FTAT zi*#LXf^%)8uJl{3B)Z@Ue=SBB;bwR$sOH3ZxO1MEb6q zKi<@3pxkjmuyF@zh>r((AG8+u9m*XH-~B_3ZMFnW5Z{sgU+n|}WGS)Us0g{;^=l!t z)vwP9FdCi8De@A+5y*V4@kT{qj9ysFdS#RCj z(LyBLQe=)bJxb@6-2yz)vRZLCQG_uNH+|1wuJiIQui@an@1+R@l1r1!Gnsf02dp?l z8jke4iG-~|!rj7ywO}`{Aba9fG4&nzcCV{*xF8ug!XQWN>Fom_wsw?#g=o}i4^3{e z`i8B!^d&Q|&o=H^_*x{6+-{KHI8pc@54LAcDK+e7hd(Ox`jhW2_rBvO;fOd{$mYrGV4^2z(4-%8-l za!>;^JAo)QK;%bOlgE^Ly4=@CDtTec$1T-+6} z{{u<5rHxZ_-l_1e)pT`iTx3g}HF~Gdo@`s(E3VD0d8FZ_Beh9pT~YgY+~)$SO!UsOFr*{Ul;YNTFdVH-W~@>z&Yj#6a?mVIIa7Wv>&sgT>tlIhp;JAH4j zmd1{DPZGlZj@NLe6!Ar;U#@3at{%m%W2o)ZOlTQ>f*r2`SwYp52~P4HjLebCthAFE zcm(%>s814Q<&J>#Uf(ld3Yn2l5WG%#F&!n>S96KGZqwOCmKF?C=z?_{3G;EJgc`5k zG}0A*)H47y3Td~pxKm16qzj3U6qHOwlBFF940%K&i%hgJ#*wvB*q_XTgc_^%E-KxV z>4tRhIJH$c!rt?KqQXq?H|ZEpU-aLXeYxlsAUr(aLc|DP}c*U8b=w1JqH6Y2dS3B=?)a&}tH}2t} zH(UsHL1%c)ZdNwb15cje&tArPu|Z7YjazZ1RA;5r-`~4D9>LgNAWOKaA5Hb>SM2D{ zV@e`F{CQ-ABW(GDAyVW{axp+>jHZNe+;b?Bv(eL)lB!zhMUP~9E;%C98YL5Yv5`HZ zikac?pTj7g*9nuTe~(yPhzJScM+$GiiACqrNsgkJ@8u1Yng>x7?0Y8S-N|o9^|``Z zZpF&Vh0VVjt8c+k;TCh(grRodxv8~oTo2s4VZ)duIvpCLrEzJ#%{meRId@&>iF}>gJB>to28^0fAiH?u7?sDn~!M}(gj zD{sc}+2+SzD~`Y&dlK-C(7*C!DobHd)Zj zaUX^jVQ2k#^5pb|)}lRrUs1Kugv`J8r=`(ND45?7RmkTCkwMpsWlXQUn;sPW@y$O) zC5%oA$@aX6S3$`C_O24hSUf(cN$oCq7q$s$C8s_sGJN%2ZyYg{h_=ClH1!%_vBLO9P?H6+y6vnmOrCk z4){Lsh-WWnIRPAD(ui@NvJueyHVOL{!y>W`kL2*Yh*w;;$>J;JUds8?T{E97U1c<@ zlOfG@>t%CAT5{9MY{~^>8xc zdW_gb73!=ms zp3?}^!7~mFUfv-rIP!r6Cy8t%Zinh}KZIXaqcCW5mCZTlsPmoUgUkB#u1N2ZeyRf+ z`h+w86NNV0b%I0Sh%!%OABWC+D}sJV=X5gw)U^qtM0u358z|7;pBqL9Kx`z&CZ77H1nuuVPQrsI(_>Rw(Ob_sk(bjP?LbFJM7LubL>HM>h$p3dR2xbN8VcMPF znfHg&1?Tw?CNCi$ony7eZ?k4%`nX?e{sFMl1RB1hNCSV+Hx%A5pP2;RJ z3k+7if_$du-cg$gWU+&umqQ0dM`PXUldqpiMW|RinEN3oPFQH_Pf{uauRlUgDrtH$ zw0nYxpq4+I!qiOL21E~6YFG_GP|so5B_`F!>or~DnegkCn(yQ`r6gf$J-$e(DC8TK zq21-UR7)5tGJ>z*oI2J#5)m*BZjr$(?^L|)v|q?UZ8d5Z65A~3(#KKHyKgD}FuZ)u z&4{w}r;^?k@+6M4(qrRLY4u?WmhTfex^NQ{HI3cSD2*@mi)=1+_?~qU9kLkvKo2K* z^9Z4<@Niba%1`^4M9=mEBSGbYr?s8pV;XYGTw&p<{R{DCa;6wMPMrvu#(sM0UZ(I@ zn_v7%>SzrXA2_21hXm;F$7)?I23Y#iq_cNPa3=u7&WvxLan&))#$8>w>Bk$9j56H3 z$>Ybomh35Mg?ni2e)V6tbN-<0RaAyg08qM+9QSBXB5c@le|fyE^!tg6Hn|Uvbhj(b zMt}9XC+}2;ChgEt?nJz7ljVn5AmpV3p08|&)c0lkbODA=Q4Dk@Q-5I&bo1qxoBJPQ zXQ_<7hK{>Na?{)D4c_5ZuphlzqJ|K~QAcfO;r+qs698}sox7uUG_ij5Hx^(t0E-0t zaT03eUP;ZOZtRsC(mBMD{g%W|u|}U6VuYslBH9rSmophjwh}@CvMs(W-RH0e5au3( zELq%vY?A=6v=KMGJ8oL*S6H544<7!0oL7eCZgW4{|GA34 z;S5RiZscoESA?}r=FnxnVA(V*UQ$xxR{PzaY9rm)cmfn1ca4js+Z;o|Nt^IZAfDg2 z5YSeF&TJfjqRr)a(@T3lffCn6A5TZnq8tD*rP@41Iw30MP08vpE9MmNmF_nlL7fYx z|BwpzHnkY5vB`EwN_%flcDCl5LwFOq6dl!G6VKV-gRf_WTgpEFRoYPquO*3ptFH#4 zkd-R}u+-}}`#FNM%Gjv;Q@btJQC;u7@q1Uz^<>3SnX|Rij3#TWh}1ieK~Rs`c0i4w z9LCjaMA+4d;DXnt7L>J88ah*7P0#NCM*t(Q*P{QkwZH!{#Ryt55e@JOqn8^>EQ+7{ z;i{EuFwMJWErTtFSrNu!dt^2nbq!jY4@^fU6Ml(|zhOYr-z(XA0GAWlpKzO>S*Cc> za2U3U@0RgdYJ1!L@P_6ZrI+bfxne0rI86Nr-a~rf>@CY+{K1j&|OYOxxi#4IM{*~T|e{~iZ(Vw(?hN=2V<`j>IKsWDl5C@#>G=SIdP zp(ra2(VLNFZu5To{g5{vKO-(h)gQb3*3Idq!c*F$@>bSWQrYM$W_e0fQ#s-!e`%+N zO|8cGXH|2v918sd{fv@KDYA#}$Lms{B?2ua--e}r>jJhhp|(HYW-Lcd6xb;^U_A5HYBw7G_p^g}9W`b@8+@M2lqm%kemJ3KUX3B{ZJ z<vU+X(d-@r_D53=1F68om`3Xsd$q9fntG6+zlWth#2N_N)80wN&_U;1cBW>+%L({iLunI ztUmvyXECRwim+bzI#5a5tVR;T*e6y&nzSlzRCg{VhE|11ubn`0a=paoM^KevJ~ES=J;EpZtU|NoWC0N)}!T;{nV($sUh$DyxW$G zpe=JPT=hO&J_K~<)b0&-7M$^@W;DpuuinqV&T-pPIUFNciVX7JQr8Ui;UX7PVZAy2 zAD0y2wEn-$CP;W5c$6LH*J@d%Ce1Wh-}kFnL0inJay4AgOf8wX;cBah6ib;Kkm%mm zJ>12;YwmBON1fRIrx`GqkWBx%g!qbFM*BY7T%?!cz5O8Un_qIQcUOLCMB3kFTa<$7 z({!-gB8%fmo=a9Zu>=<+)OcGG(Bte@`$Jf^z=O#oNF2xA`}>p_JJeYBL6|I`KSBsY(&T^K~ z&UxyQXZ(W8xtsp#^j-ArRM=4{D&NPkPjcHoBg8beWjSlD%%+8d3v@^l0{b~X#je-G zo1%t%ZkPK{gbDb`6!J{uqgK^6b~IkFuriM&;nm#a`^#fp0_?zGUvYefHB}A{tF9bR zue2x#Hzj7#v{afv&z*%-j;T*ZQunWT)pHOG&p)fjElrx-hMA>Dv*x?r_*=UDA4-QC zJZO{gZo3j!MK9RRCu`1~c&n{41hq@o6tlBX+{)a3KOK3JvdTba$PD`jhfvHPcvM;Wrgm>>BahQ@L#@A z7(~OvTjgR9kRuK(?1Y(r@Ql4=PAYK-#^`-dJ8(SC3P>#H1X_;&)xo=McEB)2n6;sw zG{E0*({V?ZW$_S?eE)#4xU<6vN>=H^1vi>S*n`7BdO5?)$*)IpH1+K*Rg-Wjy}&I* zj70T{IwF@d=>!}ls&M%06naN?kRpv`Z00fn!8sf$BpttB?LIO+5<`tMu-A^{MZyIB z2c6*To3nVh1b`p6X{e7aER%izQ1T2fzAoh(7w9pJb#xRrqA1W&XzG+j-*hR{?KPXK z8$XpP_Pw`pTC>S?@!L;i_j&Os^_zSVM_;16H??T~!u@ag9bv>Z85oS|=DK|b{hN-r zN$jtx4mY_zbWedg_5h#Gm_H`swcPxvd1>!^($&To@-tvde~Q>mUE{S0@Y{6k#zSE> zE7#$bhtvRB+L*avAk_2sZ`NVjNl2)4V6r8vODiw7qN)6XzZ?^SqWLf5iLhh;Q8fRL z1KJOPe7r*({z(N!TCX9xV?+VRH&*`FP}7qL1oyb&2>CjdhMbRyh&i#CD4>H`+cv8I z4L|~Br~w)_`#!1tJNloig5CbqF#e+}PyC_is*eA5A#~mvlP8efUh-0%QpP!#!(xT27WiMRa z2NU7I8S2u0Pp|QpFIBvA<%?wcu0of4M;EyZqz$`LxgAHCO2J^*Z5FmnV&}duB_ItX zr*N0X)Y&$~D~?`><^I7PwakaV%`pmfN+nrT@0AL-?H-odRCydU-2?4^3MVmEedaZd zk%A4QvrvR{(S7NQm%5t(+LnK_eLuAuBrrx01yjnmsApQ1RMauisPkF85zLRg{=&kn z2_!36D6e%~Ym~szIFE@FZcbwpCY}23fPXHQmfJ#Pw zmkVllMM#!5i$#CeYMx*g$!|d>e-y)3lBM0pleV=T`x`tsLQui> zsM6u2U3I5ZeMHnuL90rh#LBpP70&%mS#3R~3LH}HMXopd&P6qlD=ts1KA+U8X$zi^ zOImMu;yW!RwpUe#;|j6A3k8E`LAV*x#t92k1@(uce$c@~&Qnge0Z^KH8ufWofu42@ z%g@7jd@Vb|+N?ZiSX^~+vYKuiBR84w=o5>4c0c&-&Xszh<&+qed~>V#arGF>SAcHP3(eC-U-=9*zQBu3>-Upd)BcsLriet)>WW){~w zfv`Vc)SH7j(3tPO5{~A4_&e@EzO;$=5QM8ZO#E8Xp-<&#JG`w|o^o6>p#QTghSu8? zj}}KjAx7^4Z20XrXDstZsI{Hohyt9|x_}v}l{q=z-#zM+$+qr1Eh3%m#Zk|j{?@)m zV%RjKJe9bdYM)_Ye%4P4rLcb8&^Rn1GBfLxI-JrQ0369I&iP@U7Fw`B=CwcEoHt~H z5bIMWaIrC#sZKW8Q}x$DR(O!2{634TIeB&=24txfT-asJl17XzZlq-4Cgz9m?I#gFT-58lAt5~mWC1s;-|j`G{Bn&*NQx0qA!Tk}-sEaq z3+CXo_%%4>1cMY>=rfjxTD~*q`b#zf4nLYQD{vMDgF(WofQGJaPJ&$yqg1Dd%A4=w zA8;`k-q@g@!%PvMJrLQ&UWo4emM#4D#|{R#kL(G1%!0eOdh^|!NaxjOJ)=^ ztimo2H3%2E-ku^E{~L3+TTMVM-D^Fk*8%9~b0iL3yk+6xA`S!VSwSco3e5^cXDk7? zO<^OstmU25l0P|@|`E2huXadKIe;&yqVFtgS*i zt{b5Bv-}JncP0b^Zd`$pMVIACn1e`kwuQh^W)_6;JIzpZ3k5`U+Q?^(j=U@XHdS~Q z1yDHQ)JBgBISDZ>;Uj+}>QD+%9zZt4ekBQq7q&ndr0T1Cy75!m{Gj@Up2a@OodT6g z>mbA5!W*0`d6eH!Ul4XG`$2Ma@I)meJFB>lV$=x$yeyRTTrnMb;c3Q_iQ^s#HH>`5 zg=Rp}t9-6_6J)xH-Wb%Rp@G77E~m`@rg)DzIiV3u6`|M`+b^aYemxiP{hQuN(idIy zo>ba4_Lp#zIVP+~&w)Ry0i#viZRug>Zry`L?6^5+rDl;NU4sB6ZRCD*AL7Lu`pPbxppAB5>e*h1>z_P;l*hKQ*GH!>oO z-Wn6YZV~sNF=weml%ww?=Q3G=_ypn(IV zSLNcr%B+5M95N81`bxgyUn$nVLaYC)6ifLPpo8fDr(7$G7JSpRQLKS$=joZA|MM@R zf-9>wWbS&}mlu39FL~wd`F=0C^U9~>nOx!ajw~8yUg_Pm%KKXY?WRdNt;?(m+YVDX zq`_s!LR$cyp*GhZ+u~SuZDF>jx1?W;>DUnKP5T=1IBg`KI$rh}etc0pU2u!VNMK2B~xI{)nZ+0l_+Ez)(feD5rm wO2xYsB~iVL8pOwC*K}KAh`O>q>$~TXY5cz?J^5CMuYX_2Nh?d0zc=##KO*?@u>b%7 literal 0 HcmV?d00001 diff --git a/src/uitools/doc/images/uitools-examples.png b/src/uitools/doc/images/uitools-examples.png new file mode 100644 index 0000000000000000000000000000000000000000..8c85cdb76b30fcb905bdcf5f2c5c4455b15fff7a GIT binary patch literal 12021 zcmV~mxExlsN z)XG|xB)g~;B?gfOB>^0g00=_h5E%nZ4&Bq!Ilu0Hp^nytU`efZza_ z0S18vAkUkxy6&8N?m7Rx|GVe^|L_0LTlmpN<(Hqx|KlGufBCug=U?mptBV7GU%NQ` zwe!PYd;R0a`O(J>AjaV1#lM_ChvDbW4L|qt;9tDh|J4`z|NOcBXMfWBUw_>H^=GO_ zqWZ#Tzv*50c6{Nn!l@@4r=ISd`f>Nv)9q7Fv`&A&b?Qv>e{_7Waq973EdJ#S?cX}r zc@zKqYzs7g{`t2w{>o2Vryi?*?wQIX&z2u~ru4`&`A444{mOUa3t#bl{!jG_3%{#a z_`09-+(9@F}gTK7k|IaUUzxa3EKYulGX1D(Q;ec(JC|whY zZE}S${I4%2&TLdGYcIFCxWbEnoqzW0)vec^kA39}-}Ep1DiOSe4xkAb9>ehHHYQ&_ zA7A)R@pETl*BAA_^cTUuSStO_^X1=sy7(uTOKeHupZvGn7q2$Y{6z6jzUp{!E%e3b z3V(T{^uIk?_{!xXnePAXv!$=RR{Y%;%YSkK=sv&j%@2of{5{847wdm@t^e(-{r~r+ z-oO8G_cxyCe)ZMlnZ4$Bm-;7?@p;Vf*~7tWxZxkqRah&&`dH=W3w@imZ&T+U|FY|E z|MM5V6%1=7iR(+2XdY5k5&MpQirs|je%6V|? zJpGO07Z-cym(0KX?aV$gzD0`v{tNM2=)^NG>UQxyf-t#?_9JNV&;6PG)VFF2-)TG$ z{@Z=pzx@foU;P5{)urxNUhe&1eekzygWr3-|Equ3|D%^vXZCyln!m8{rQ|<*qWU_@cOLCM zkMV-P|LVtqQ$HO4v*$-oz3zGB`tbQ1rayTh`r@kZhu6{9;|Ym?u3 zs>3yo-O1_qQKNtQ?BGBCG-}$@LnS)XK(JwWLJEd2? zU48X0Tbn=e{>5*9;roq+FQ^t4elKzAZ#tiOV)zfA8UMqx6M%p4liBHK;nP2cPd_m{ z{WN^~2ffozj!!=^KK;YN=_dyBwg{l<-bn;(l?WT_+02~yVKwOVd_rfXKy$D z{jxZvG6y|g-4t7_3h)ucUm7azTNzVE~Ef|_+=c)7L%fB>yg!%qJ;Z~c zkn@8lRxbGCF-ItDy$#!KSbz5S_Cd%R44Ur;a5fQlyj_JKW+64WJc)emAsz&J=UjzO zj|nd_E9{XE3?x?H_W&{Q@bj)8S11aem{hBZ zq>IDh;5|{Tln3`{?`!P=x8HGJ6^cYM>dBs7ClE?_L9aUOR0RBbpVJt0$_0G3%gnP| zm0QbKlqzvL>%XJIR?>R;#t{=o63Y~7je>x}5b5m3VDeCB_fugok?HkXZ$~}4dTU1@ z5bE?ssZyQ{I#xCg8t>@V?KYKWmpgEO71D7;1etKWa(QEYox?oBl8#SqT{=G5SiiMK z!yd2gZt@5RA^}+@<|Q(3s1WWZSuC+sq_}!vCzlJ-=^}tsrTb84_fw%imTb3cZ$~9? z=yzncneR+G!bVUv*rD&DCj3pGlmm}yXRty&iH z1g+DF14if&xvPX|p``B(6;22BX3uT0<%`wfuvaeE00!gfL!I4Eh2BWK*{r-B)wtai z%%}VUvC8YR$%GsNja7SRw`N6Zu)doL??x_ZEf(IxE*jmQOu6|G4+4XG{>0QKjZAOO zro$f?6u#6S{&4Qh-Nth^J~9

      8I_o|AcU#Tg@QsKz>T%L| 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 THht{r00000NkvXXu0mjfVyJ^f literal 0 HcmV?d00001 diff --git a/src/uitools/doc/qtuitools.qdocconf b/src/uitools/doc/qtuitools.qdocconf new file mode 100644 index 0000000..a34c498 --- /dev/null +++ b/src/uitools/doc/qtuitools.qdocconf @@ -0,0 +1,42 @@ +include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) +include($QT_INSTALL_DOCS/config/exampleurl-qttools.qdocconf) + +project = QtUiTools +description = Qt UI Tools Reference Documentation +version = $QT_VERSION + +examplesinstallpath = uitools + +qhp.projects = QtUiTools + +qhp.QtUiTools.file = qtuitools.qhp +qhp.QtUiTools.namespace = org.qt-project.qtuitools.$QT_VERSION_TAG +qhp.QtUiTools.virtualFolder = qtuitools +qhp.QtUiTools.indexTitle = Qt UI Tools +qhp.QtHelp.indexRoot = + +qhp.QtUiTools.subprojects = classes +qhp.QtUiTools.subprojects.classes.title = C++ Classes +qhp.QtUiTools.subprojects.classes.indexTitle = Qt UI Tools C++ Classes +qhp.QtUiTools.subprojects.classes.selectors = class fake:headerfile +qhp.QtUiTools.subprojects.classes.sortPages = true + +language = Cpp + +headerdirs += .. + +sourcedirs += .. + +exampledirs = ../../../examples/uitools \ + snippets + +imagedirs = images + +outputdir = $QT_INSTALL_DOCS/qtuitools + +depends += qtdoc qtdesigner qtcore qtwidgets qtcmake qmake + +navigation.landingpage = "Qt UI Tools" +navigation.cppclassespage = "Qt UI Tools C++ Classes" + +warninglimit = 0 diff --git a/src/uitools/doc/snippets/quiloader/doc_src_qtuiloader.pro b/src/uitools/doc/snippets/quiloader/doc_src_qtuiloader.pro new file mode 100644 index 0000000..d382587 --- /dev/null +++ b/src/uitools/doc/snippets/quiloader/doc_src_qtuiloader.pro @@ -0,0 +1,6 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#! [0] +QT += uitools +#! [0] diff --git a/src/uitools/doc/snippets/quiloader/main.cpp b/src/uitools/doc/snippets/quiloader/main.cpp new file mode 100644 index 0000000..921f5c3 --- /dev/null +++ b/src/uitools/doc/snippets/quiloader/main.cpp @@ -0,0 +1,33 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include +#include + +#include "mywidget.h" + +//! [0] +QWidget *loadCustomWidget(QWidget *parent) +{ + QUiLoader loader; + QWidget *myWidget; + + QStringList availableWidgets = loader.availableWidgets(); + + if (availableWidgets.contains("AnalogClock")) + myWidget = loader.createWidget("AnalogClock", parent); + + return myWidget; +} +//! [0] + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + MyWidget widget; + widget.show(); + + QWidget *customWidget = loadCustomWidget(0); + customWidget->show(); + return app.exec(); +} diff --git a/src/uitools/doc/snippets/quiloader/myform.ui b/src/uitools/doc/snippets/quiloader/myform.ui new file mode 100644 index 0000000..00702e8 --- /dev/null +++ b/src/uitools/doc/snippets/quiloader/myform.ui @@ -0,0 +1,130 @@ + + + + + Form + + + + 0 + 0 + 258 + 224 + + + + Export Document + + + + 8 + + + 6 + + + + + Export Options + + + + 8 + + + 6 + + + + + &DocBook + + + + + + + &LaTeX + + + true + + + + + + + Include p&ictures + + + true + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + &Compress + + + + + + + &HTML + + + + + + + &PostScript + + + + + + + PD&F + + + + + + + Include &metadata + + + + + + + Create inde&x + + + true + + + + + + + + + + + + diff --git a/src/uitools/doc/snippets/quiloader/mywidget.cpp b/src/uitools/doc/snippets/quiloader/mywidget.cpp new file mode 100644 index 0000000..e9f5d32 --- /dev/null +++ b/src/uitools/doc/snippets/quiloader/mywidget.cpp @@ -0,0 +1,23 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include +#include + +#include "mywidget.h" + +//! [0] +MyWidget::MyWidget(QWidget *parent) + : QWidget(parent) +{ + QUiLoader loader; + QFile file(":/forms/myform.ui"); + file.open(QFile::ReadOnly); + QWidget *myWidget = loader.load(&file, this); + file.close(); + + QVBoxLayout *layout = new QVBoxLayout; + layout->addWidget(myWidget); + setLayout(layout); +} +//! [0] diff --git a/src/uitools/doc/snippets/quiloader/mywidget.h b/src/uitools/doc/snippets/quiloader/mywidget.h new file mode 100644 index 0000000..9b5addc --- /dev/null +++ b/src/uitools/doc/snippets/quiloader/mywidget.h @@ -0,0 +1,15 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef MYWIDGET_H +#define MYWIDGET_H + +#include + +class MyWidget : public QWidget +{ +public: + MyWidget(QWidget *parent = 0); +}; + +#endif diff --git a/src/uitools/doc/snippets/quiloader/mywidget.qrc b/src/uitools/doc/snippets/quiloader/mywidget.qrc new file mode 100644 index 0000000..47684d6 --- /dev/null +++ b/src/uitools/doc/snippets/quiloader/mywidget.qrc @@ -0,0 +1,5 @@ + + +myform.ui + + diff --git a/src/uitools/doc/snippets/quiloader/quiloader.pro b/src/uitools/doc/snippets/quiloader/quiloader.pro new file mode 100644 index 0000000..31ddf32 --- /dev/null +++ b/src/uitools/doc/snippets/quiloader/quiloader.pro @@ -0,0 +1,4 @@ +HEADERS = mywidget.h +SOURCES = main.cpp mywidget.cpp +RESOURCES = mywidget.qrc +QT += uitools diff --git a/src/uitools/doc/src/qtuitools-examples.qdoc b/src/uitools/doc/src/qtuitools-examples.qdoc new file mode 100644 index 0000000..170bbcf --- /dev/null +++ b/src/uitools/doc/src/qtuitools-examples.qdoc @@ -0,0 +1,27 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \group examples-qtuitools + \ingroup all-examples + \title Qt UI Tools Examples + \brief Using Qt UI Tools to process UI forms. + + \image uitools-examples.png UiTools + + The \l{Qt UI Tools} module provides classes to handle UI forms created with + Qt Designer. The forms are processed at run-time to dynamically generate + user interfaces. + + The following examples illustrate how to use Qt UI Tools to process UI + forms. +*/ + +/* + \list + \li \l{Multiple Inheritance Example}\raisedaster + \li \l{Text Finder Example}\raisedaster + \endlist + + Examples marked with an asterisk (*) are fully documented. +*/ diff --git a/src/uitools/doc/src/qtuitools-index.qdoc b/src/uitools/doc/src/qtuitools-index.qdoc new file mode 100644 index 0000000..1ff40e8 --- /dev/null +++ b/src/uitools/doc/src/qtuitools-index.qdoc @@ -0,0 +1,54 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \page qtuitools-index.html + \title Qt UI Tools + + \brief Provides classes to handle forms created with Qt Designer. + + Qt Designer forms are processed at run-time to produce dynamically generated + user interfaces. In order to generate a form at run-time, a resource + file containing a UI file is needed. + + A form loader object, provided by the QUiLoader class, is used to construct + the user interface. This user interface can be retrieved from any QIODevice. + For example, a QFile object can be used to obtain a form stored in a + project's resources. The QUiLoader::load() function takes the user interface + description contained in the file and constructs the form widget. + + \section1 Using the Module + + \include {module-use.qdocinc} {using the c++ api} + + \section2 Building with CMake + + \include {module-use.qdocinc} {building with cmake} {UiTools} + + \section2 Building with qmake + + \include {module-use.qdocinc} {building_with_qmake} {uitools} + + \section1 Licenses and Attributions + + \section1 Examples + + \list + \li \l {Qt UI Tools Examples} + \endlist + + \section1 Reference + + \list + \li \l {Qt UI Tools C++ Classes} {C++ Classes} + \endlist + + \section1 Licenses + + Qt UI Tools is available under commercial licenses from \l{The Qt Company}. + In addition, it is available under free software licenses. Since Qt 6.0, + these free software licenses are + \l{GNU Lesser General Public License, version 3}, or + the \l{GNU General Public License, version 2}. + See \l{Qt Licensing} for further details. +*/ diff --git a/src/uitools/doc/src/qtuitools-module.qdoc b/src/uitools/doc/src/qtuitools-module.qdoc new file mode 100644 index 0000000..7a33574 --- /dev/null +++ b/src/uitools/doc/src/qtuitools-module.qdoc @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \module QtUiTools + \title Qt UI Tools C++ Classes + \since 4.1 + \ingroup modules + \qtcmakepackage UiTools + \qtvariable uitools + + \brief Provides classes to handle forms created with Qt Designer. + + These forms are processed at run-time to produce dynamically-generated + user interfaces. In order to generate a form at run-time, a resource + file containing a UI file is needed. Applications that use the + form handling classes need to be configured to be built against the + QtUiTools module. This is done by including the following declaration + in a \c qmake project file to ensure that the application is compiled + and linked appropriately. + + \if !defined(qtforpython) + \snippet quiloader/doc_src_qtuiloader.pro 0 + \endif + + A form loader object, provided by the QUiLoader class, is used to + construct the user interface. This user interface can + be retrieved from any QIODevice; for example, a QFile object can be + used to obtain a form stored in a project's resources. The + QUiLoader::load() function takes the user interface description + contained in the file and constructs the form widget. +*/ diff --git a/src/uitools/qtuitoolsglobal.h b/src/uitools/qtuitoolsglobal.h new file mode 100644 index 0000000..a2f967d --- /dev/null +++ b/src/uitools/qtuitoolsglobal.h @@ -0,0 +1,24 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QTUITOOLSGLOBAL_H +#define QTUITOOLSGLOBAL_H + +#include + +QT_BEGIN_NAMESPACE + +#ifndef QT_STATIC +# if defined(QT_BUILD_UITOOLS_LIB) +# define Q_UITOOLS_EXPORT Q_DECL_EXPORT +# else +# define Q_UITOOLS_EXPORT Q_DECL_IMPORT +# endif +#else +# define Q_UITOOLS_EXPORT +#endif + +QT_END_NAMESPACE + +#endif // QTUITOOLSGLOBAL_H + diff --git a/src/uitools/quiloader.cpp b/src/uitools/quiloader.cpp new file mode 100644 index 0000000..a06d471 --- /dev/null +++ b/src/uitools/quiloader.cpp @@ -0,0 +1,914 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + + +#include "quiloader.h" +#include "quiloader_p.h" + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +typedef QMap widget_map; +Q_GLOBAL_STATIC(widget_map, g_widgets) + +class QUiLoader; +class QUiLoaderPrivate; + +#ifndef QT_NO_DATASTREAM +// QUiTranslatableStringValue must be streamable since they become part of the QVariant-based +// mime data when dragging items in views with QAbstractItemView::InternalMove. +QDataStream &operator<<(QDataStream &out, const QUiTranslatableStringValue &s) +{ + out << s.qualifier() << s.value(); + return out; +} + +QDataStream &operator>>(QDataStream &in, QUiTranslatableStringValue &s) +{ + QByteArray qualifier, value; + in >> qualifier >> value; + s.setQualifier(qualifier); + s.setValue(value); + return in; +} +#endif // QT_NO_DATASTREAM + +QString QUiTranslatableStringValue::translate(const QByteArray &className, bool idBased) const +{ + return idBased + ? qtTrId(m_qualifier.constData()) + : QCoreApplication::translate(className.constData(), m_value.constData(), m_qualifier.constData()); +} + +#ifdef QFORMINTERNAL_NAMESPACE +namespace QFormInternal +{ +#endif + +class TranslatingTextBuilder : public QTextBuilder +{ +public: + explicit TranslatingTextBuilder(bool idBased, bool trEnabled, const QByteArray &className) : + m_idBased(idBased), m_trEnabled(trEnabled), m_className(className) {} + + QVariant loadText(const DomProperty *icon) const override; + + QVariant toNativeValue(const QVariant &value) const override; + + bool idBased() const { return m_idBased; } + +private: + bool m_idBased; + bool m_trEnabled; + QByteArray m_className; +}; + +QVariant TranslatingTextBuilder::loadText(const DomProperty *text) const +{ + const DomString *str = text->elementString(); + if (!str) + return QVariant(); + if (str->hasAttributeNotr()) { + const QString notr = str->attributeNotr(); + if (notr == QStringLiteral("true") || notr == QStringLiteral("yes")) + return QVariant::fromValue(str->text()); + } + QUiTranslatableStringValue strVal; + strVal.setValue(str->text().toUtf8()); + if (m_idBased) + strVal.setQualifier(str->attributeId().toUtf8()); + else if (str->hasAttributeComment()) + strVal.setQualifier(str->attributeComment().toUtf8()); + return QVariant::fromValue(strVal); +} + +QVariant TranslatingTextBuilder::toNativeValue(const QVariant &value) const +{ + if (value.canConvert()) { + QUiTranslatableStringValue tsv = qvariant_cast(value); + if (!m_trEnabled) + return QString::fromUtf8(tsv.value().constData()); + return QVariant::fromValue(tsv.translate(m_className, m_idBased)); + } + if (value.canConvert()) + return QVariant::fromValue(qvariant_cast(value)); + return value; +} + +// This is "exported" to linguist +const QUiItemRolePair qUiItemRoles[] = { + { Qt::DisplayRole, Qt::DisplayPropertyRole }, +#if QT_CONFIG(tooltip) + { Qt::ToolTipRole, Qt::ToolTipPropertyRole }, +#endif +#if QT_CONFIG(statustip) + { Qt::StatusTipRole, Qt::StatusTipPropertyRole }, +#endif +#if QT_CONFIG(whatsthis) + { Qt::WhatsThisRole, Qt::WhatsThisPropertyRole }, +#endif + { -1 , -1 } +}; + +static void recursiveReTranslate(QTreeWidgetItem *item, const QByteArray &class_name, bool idBased) +{ + const QUiItemRolePair *irs = qUiItemRoles; + + int cnt = item->columnCount(); + for (int i = 0; i < cnt; ++i) { + for (unsigned j = 0; irs[j].shadowRole >= 0; j++) { + QVariant v = item->data(i, irs[j].shadowRole); + if (v.isValid()) { + QUiTranslatableStringValue tsv = qvariant_cast(v); + item->setData(i, irs[j].realRole, tsv.translate(class_name, idBased)); + } + } + } + + cnt = item->childCount(); + for (int i = 0; i < cnt; ++i) + recursiveReTranslate(item->child(i), class_name, idBased); +} + +template +static void reTranslateWidgetItem(T *item, const QByteArray &class_name, bool idBased) +{ + const QUiItemRolePair *irs = qUiItemRoles; + + for (unsigned j = 0; irs[j].shadowRole >= 0; j++) { + QVariant v = item->data(irs[j].shadowRole); + if (v.isValid()) { + QUiTranslatableStringValue tsv = qvariant_cast(v); + item->setData(irs[j].realRole, tsv.translate(class_name, idBased)); + } + } +} + +static void reTranslateTableItem(QTableWidgetItem *item, const QByteArray &class_name, bool idBased) +{ + if (item) + reTranslateWidgetItem(item, class_name, idBased); +} + +#define RETRANSLATE_SUBWIDGET_PROP(mainWidget, setter, propName) \ + do { \ + QVariant v = mainWidget->widget(i)->property(propName); \ + if (v.isValid()) { \ + QUiTranslatableStringValue tsv = qvariant_cast(v); \ + mainWidget->setter(i, tsv.translate(m_className, m_idBased)); \ + } \ + } while (0) + +class TranslationWatcher: public QObject +{ + Q_OBJECT + +public: + explicit TranslationWatcher(QObject *parent, const QByteArray &className, bool idBased): + QObject(parent), + m_className(className), + m_idBased(idBased) + { + } + + bool eventFilter(QObject *o, QEvent *event) override + { + if (event->type() == QEvent::LanguageChange) { + const auto &dynamicPropertyNames = o->dynamicPropertyNames(); + for (const QByteArray &prop : dynamicPropertyNames) { + if (prop.startsWith(PROP_GENERIC_PREFIX)) { + const QByteArray propName = prop.mid(sizeof(PROP_GENERIC_PREFIX) - 1); + const QUiTranslatableStringValue tsv = + qvariant_cast(o->property(prop)); + o->setProperty(propName, tsv.translate(m_className, m_idBased)); + } + } + if (0) { +#if QT_CONFIG(tabwidget) + } else if (QTabWidget *tabw = qobject_cast(o)) { + const int cnt = tabw->count(); + for (int i = 0; i < cnt; ++i) { + RETRANSLATE_SUBWIDGET_PROP(tabw, setTabText, PROP_TABPAGETEXT); +#if QT_CONFIG(tooltip) + RETRANSLATE_SUBWIDGET_PROP(tabw, setTabToolTip, PROP_TABPAGETOOLTIP); +# endif +#if QT_CONFIG(whatsthis) + RETRANSLATE_SUBWIDGET_PROP(tabw, setTabWhatsThis, PROP_TABPAGEWHATSTHIS); +# endif + } +#endif +#if QT_CONFIG(listwidget) + } else if (QListWidget *listw = qobject_cast(o)) { + const int cnt = listw->count(); + for (int i = 0; i < cnt; ++i) + reTranslateWidgetItem(listw->item(i), m_className, m_idBased); +#endif +#if QT_CONFIG(treewidget) + } else if (QTreeWidget *treew = qobject_cast(o)) { + if (QTreeWidgetItem *item = treew->headerItem()) + recursiveReTranslate(item, m_className, m_idBased); + const int cnt = treew->topLevelItemCount(); + for (int i = 0; i < cnt; ++i) { + QTreeWidgetItem *item = treew->topLevelItem(i); + recursiveReTranslate(item, m_className, m_idBased); + } +#endif +#if QT_CONFIG(tablewidget) + } else if (QTableWidget *tablew = qobject_cast(o)) { + const int row_cnt = tablew->rowCount(); + const int col_cnt = tablew->columnCount(); + for (int j = 0; j < col_cnt; ++j) + reTranslateTableItem(tablew->horizontalHeaderItem(j), m_className, m_idBased); + for (int i = 0; i < row_cnt; ++i) { + reTranslateTableItem(tablew->verticalHeaderItem(i), m_className, m_idBased); + for (int j = 0; j < col_cnt; ++j) + reTranslateTableItem(tablew->item(i, j), m_className, m_idBased); + } +#endif +#if QT_CONFIG(combobox) + } else if (QComboBox *combow = qobject_cast(o)) { + if (!qobject_cast(o)) { + const int cnt = combow->count(); + for (int i = 0; i < cnt; ++i) { + const QVariant v = combow->itemData(i, Qt::DisplayPropertyRole); + if (v.isValid()) { + QUiTranslatableStringValue tsv = qvariant_cast(v); + combow->setItemText(i, tsv.translate(m_className, m_idBased)); + } + } + } +#endif +#if QT_CONFIG(toolbox) + } else if (QToolBox *toolw = qobject_cast(o)) { + const int cnt = toolw->count(); + for (int i = 0; i < cnt; ++i) { + RETRANSLATE_SUBWIDGET_PROP(toolw, setItemText, PROP_TOOLITEMTEXT); +#if QT_CONFIG(tooltip) + RETRANSLATE_SUBWIDGET_PROP(toolw, setItemToolTip, PROP_TOOLITEMTOOLTIP); +# endif + } +#endif + } + } + return false; + } + +private: + QByteArray m_className; + bool m_idBased; +}; + +class FormBuilderPrivate: public QFormBuilder +{ + friend class QT_PREPEND_NAMESPACE(QUiLoader); + friend class QT_PREPEND_NAMESPACE(QUiLoaderPrivate); + using ParentClass = QFormBuilder; + +public: + QUiLoader *loader = nullptr; + + bool dynamicTr = false; + bool trEnabled = true; + + FormBuilderPrivate() = default; + + QWidget *defaultCreateWidget(const QString &className, QWidget *parent, const QString &name) + { + return ParentClass::createWidget(className, parent, name); + } + + QLayout *defaultCreateLayout(const QString &className, QObject *parent, const QString &name) + { + return ParentClass::createLayout(className, parent, name); + } + + QAction *defaultCreateAction(QObject *parent, const QString &name) + { + return ParentClass::createAction(parent, name); + } + + QActionGroup *defaultCreateActionGroup(QObject *parent, const QString &name) + { + return ParentClass::createActionGroup(parent, name); + } + + QWidget *createWidget(const QString &className, QWidget *parent, const QString &name) override + { + if (QWidget *widget = loader->createWidget(className, parent, name)) { + widget->setObjectName(name); + return widget; + } + + return nullptr; + } + + QLayout *createLayout(const QString &className, QObject *parent, const QString &name) override + { + if (QLayout *layout = loader->createLayout(className, parent, name)) { + layout->setObjectName(name); + return layout; + } + + return nullptr; + } + + QActionGroup *createActionGroup(QObject *parent, const QString &name) override + { + if (QActionGroup *actionGroup = loader->createActionGroup(parent, name)) { + actionGroup->setObjectName(name); + return actionGroup; + } + + return nullptr; + } + + QAction *createAction(QObject *parent, const QString &name) override + { + if (QAction *action = loader->createAction(parent, name)) { + action->setObjectName(name); + return action; + } + + return nullptr; + } + + void applyProperties(QObject *o, const QList &properties) override; + QWidget *create(DomUI *ui, QWidget *parentWidget) override; + QWidget *create(DomWidget *ui_widget, QWidget *parentWidget) override; + bool addItem(DomWidget *ui_widget, QWidget *widget, QWidget *parentWidget) override; + +private: + QByteArray m_class; + TranslationWatcher *m_trwatch = nullptr; + bool m_idBased = false; +}; + +static QString convertTranslatable(const DomProperty *p, const QByteArray &className, + bool idBased, QUiTranslatableStringValue *strVal) +{ + if (p->kind() != DomProperty::String) + return QString(); + const DomString *dom_str = p->elementString(); + if (!dom_str) + return QString(); + if (dom_str->hasAttributeNotr()) { + const QString notr = dom_str->attributeNotr(); + if (notr == QStringLiteral("yes") || notr == QStringLiteral("true")) + return QString(); + } + strVal->setValue(dom_str->text().toUtf8()); + strVal->setQualifier(idBased ? dom_str->attributeId().toUtf8() : dom_str->attributeComment().toUtf8()); + if (strVal->value().isEmpty() && strVal->qualifier().isEmpty()) + return QString(); + return strVal->translate(className, idBased); +} + +void FormBuilderPrivate::applyProperties(QObject *o, const QList &properties) +{ + QFormBuilder::applyProperties(o, properties); + + if (!m_trwatch) + m_trwatch = new TranslationWatcher(o, m_class, m_idBased); + + if (properties.isEmpty()) + return; + + // Unlike string item roles, string properties are not loaded via the textBuilder + // (as they are "shadowed" by the property sheets in designer). So do the initial + // translation here. + bool anyTrs = false; + for (const DomProperty *p : properties) { + QUiTranslatableStringValue strVal; + const QString text = convertTranslatable(p, m_class, m_idBased, &strVal); + if (text.isEmpty()) + continue; + const QByteArray name = p->attributeName().toUtf8(); + if (dynamicTr) { + const QByteArray dynname = QByteArray(PROP_GENERIC_PREFIX + name); + o->setProperty(dynname, QVariant::fromValue(strVal)); + anyTrs = trEnabled; + } + if (p->elementString()->text() != text) + o->setProperty(name, text); + } + if (anyTrs) + o->installEventFilter(m_trwatch); +} + +QWidget *FormBuilderPrivate::create(DomUI *ui, QWidget *parentWidget) +{ + m_class = ui->elementClass().toUtf8(); + m_trwatch = nullptr; + m_idBased = ui->attributeIdbasedtr(); + setTextBuilder(new TranslatingTextBuilder(m_idBased, trEnabled, m_class)); + return QFormBuilder::create(ui, parentWidget); +} + +QWidget *FormBuilderPrivate::create(DomWidget *ui_widget, QWidget *parentWidget) +{ + QWidget *w = QFormBuilder::create(ui_widget, parentWidget); + if (w == nullptr) + return nullptr; + + if (0) { +#if QT_CONFIG(tabwidget) + } else if (qobject_cast(w)) { +#endif +#if QT_CONFIG(listwidget) + } else if (qobject_cast(w)) { +#endif +#if QT_CONFIG(treewidget) + } else if (qobject_cast(w)) { +#endif +#if QT_CONFIG(tablewidget) + } else if (qobject_cast(w)) { +#endif +#if QT_CONFIG(combobox) + } else if (qobject_cast(w)) { + if (qobject_cast(w)) + return w; +#endif +#if QT_CONFIG(toolbox) + } else if (qobject_cast(w)) { +#endif + } else { + return w; + } + if (dynamicTr && trEnabled) + w->installEventFilter(m_trwatch); + return w; +} + +#define TRANSLATE_SUBWIDGET_PROP(mainWidget, attribute, setter, propName) \ + do { \ + if (const DomProperty *p##attribute = attributes.value(strings.attribute)) { \ + QUiTranslatableStringValue strVal; \ + const QString text = convertTranslatable(p##attribute, m_class, m_idBased, &strVal); \ + if (!text.isEmpty()) { \ + if (dynamicTr) \ + mainWidget->widget(i)->setProperty(propName, QVariant::fromValue(strVal)); \ + mainWidget->setter(i, text); \ + } \ + } \ + } while (0) + +bool FormBuilderPrivate::addItem(DomWidget *ui_widget, QWidget *widget, QWidget *parentWidget) +{ + if (parentWidget == nullptr) + return true; + + if (!ParentClass::addItem(ui_widget, widget, parentWidget)) + return false; + + // Check special cases. First: Custom container + const QString className = QLatin1String(parentWidget->metaObject()->className()); + if (!d->customWidgetAddPageMethod(className).isEmpty()) + return true; + + const QFormBuilderStrings &strings = QFormBuilderStrings::instance(); + + if (0) { +#if QT_CONFIG(tabwidget) + } else if (QTabWidget *tabWidget = qobject_cast(parentWidget)) { + const DomPropertyHash attributes = propertyMap(ui_widget->elementAttribute()); + const int i = tabWidget->count() - 1; + TRANSLATE_SUBWIDGET_PROP(tabWidget, titleAttribute, setTabText, PROP_TABPAGETEXT); +#if QT_CONFIG(tooltip) + TRANSLATE_SUBWIDGET_PROP(tabWidget, toolTipAttribute, setTabToolTip, PROP_TABPAGETOOLTIP); +# endif +#if QT_CONFIG(whatsthis) + TRANSLATE_SUBWIDGET_PROP(tabWidget, whatsThisAttribute, setTabWhatsThis, PROP_TABPAGEWHATSTHIS); +# endif +#endif +#if QT_CONFIG(toolbox) + } else if (QToolBox *toolBox = qobject_cast(parentWidget)) { + const DomPropertyHash attributes = propertyMap(ui_widget->elementAttribute()); + const int i = toolBox->count() - 1; + TRANSLATE_SUBWIDGET_PROP(toolBox, labelAttribute, setItemText, PROP_TOOLITEMTEXT); +#if QT_CONFIG(tooltip) + TRANSLATE_SUBWIDGET_PROP(toolBox, toolTipAttribute, setItemToolTip, PROP_TOOLITEMTOOLTIP); +# endif +#endif + } + + return true; +} + +#ifdef QFORMINTERNAL_NAMESPACE +} +#endif + +class QUiLoaderPrivate +{ +public: +#ifdef QFORMINTERNAL_NAMESPACE + QFormInternal::FormBuilderPrivate builder; +#else + FormBuilderPrivate builder; +#endif + + void setupWidgetMap() const; +}; + +void QUiLoaderPrivate::setupWidgetMap() const +{ + if (!g_widgets()->isEmpty()) + return; + +#define DECLARE_WIDGET(a, b) g_widgets()->insert(QLatin1String(#a), true); +#define DECLARE_LAYOUT(a, b) + +#include "widgets.table" + +#undef DECLARE_WIDGET +#undef DECLARE_WIDGET_1 +#undef DECLARE_LAYOUT +} + +/*! + \class QUiLoader + \inmodule QtUiTools + + \brief The QUiLoader class enables standalone applications to + dynamically create user interfaces at run-time using the + information stored in UI files or specified in plugin paths. + + In addition, you can customize or create your own user interface by + deriving your own loader class. + + If you have a custom component or an application that embeds \QD, you can + also use the QFormBuilder class provided by the QtDesigner module to create + user interfaces from UI files. + + The QUiLoader class provides a collection of functions allowing you to + create widgets based on the information stored in UI files (created + with \QD) or available in the specified plugin paths. The specified plugin + paths can be retrieved using the pluginPaths() function. Similarly, the + contents of a UI file can be retrieved using the load() function. For + example: + + \snippet quiloader/mywidget.cpp 0 + + \if !defined(qtforpython) + By including the user interface in the form's resources (\c myform.qrc), we + ensure that it will be present at run-time: + + \quotefile quiloader/mywidget.qrc + \endif + + The availableWidgets() function returns a QStringList with the class names + of the widgets available in the specified plugin paths. To create these + widgets, simply use the createWidget() function. For example: + + \snippet quiloader/main.cpp 0 + + To make a custom widget available to the loader, you can use the + addPluginPath() function; to remove all available widgets, you can call + the clearPluginPaths() function. + + The createAction(), createActionGroup(), createLayout(), and createWidget() + functions are used internally by the QUiLoader class whenever it has to + create an action, action group, layout, or widget respectively. For that + reason, you can subclass the QUiLoader class and reimplement these + functions to intervene the process of constructing a user interface. For + example, you might want to have a list of the actions created when loading + a form or creating a custom widget. + + For a complete example using the QUiLoader class, see the + \l{Calculator Builder Example}. + + \sa {Qt UI Tools}, QFormBuilder +*/ + +/*! + Creates a form loader with the given \a parent. +*/ +QUiLoader::QUiLoader(QObject *parent) + : QObject(parent), d_ptr(new QUiLoaderPrivate) +{ + Q_D(QUiLoader); + +#ifndef QT_NO_DATASTREAM + static int metaTypeId = 0; + if (!metaTypeId) { + metaTypeId = qRegisterMetaType("QUiTranslatableStringValue"); + } +#endif // QT_NO_DATASTREAM + d->builder.loader = this; + +#if QT_CONFIG(library) + QStringList paths; + const QStringList &libraryPaths = QApplication::libraryPaths(); + for (const QString &path : libraryPaths) { + QString libPath = path; + libPath += QDir::separator(); + libPath += QStringLiteral("designer"); + paths.append(libPath); + } + + d->builder.setPluginPath(paths); +#endif // QT_CONFIG(library) +} + +/*! + Destroys the loader. +*/ +QUiLoader::~QUiLoader() = default; + +/*! + Loads a form from the given \a device and creates a new widget with the + given \a parentWidget to hold its contents. + + \sa createWidget(), errorString() +*/ +QWidget *QUiLoader::load(QIODevice *device, QWidget *parentWidget) +{ + Q_D(QUiLoader); + // QXmlStreamReader will report errors on open failure. + if (!device->isOpen()) + device->open(QIODevice::ReadOnly|QIODevice::Text); + return d->builder.load(device, parentWidget); +} + +/*! + Returns a list naming the paths in which the loader will search when + locating custom widget plugins. + + \sa addPluginPath(), clearPluginPaths() +*/ +QStringList QUiLoader::pluginPaths() const +{ + Q_D(const QUiLoader); + return d->builder.pluginPaths(); +} + +/*! + Clears the list of paths in which the loader will search when locating + plugins. + + \sa addPluginPath(), pluginPaths() +*/ +void QUiLoader::clearPluginPaths() +{ + Q_D(QUiLoader); + d->builder.clearPluginPaths(); +} + +/*! + Adds the given \a path to the list of paths in which the loader will search + when locating plugins. + + \sa pluginPaths(), clearPluginPaths() +*/ +void QUiLoader::addPluginPath(const QString &path) +{ + Q_D(QUiLoader); + d->builder.addPluginPath(path); +} + +/*! + Creates a new widget with the given \a parent and \a name using the class + specified by \a className. You can use this function to create any of the + widgets returned by the availableWidgets() function. + + The function is also used internally by the QUiLoader class whenever it + creates a widget. Hence, you can subclass QUiLoader and reimplement this + function to intervene process of constructing a user interface or widget. + However, in your implementation, ensure that you call QUiLoader's version + first. + + \sa availableWidgets(), load() +*/ +QWidget *QUiLoader::createWidget(const QString &className, QWidget *parent, const QString &name) +{ + Q_D(QUiLoader); + return d->builder.defaultCreateWidget(className, parent, name); +} + +/*! + Creates a new layout with the given \a parent and \a name using the class + specified by \a className. + + The function is also used internally by the QUiLoader class whenever it + creates a widget. Hence, you can subclass QUiLoader and reimplement this + function to intervene process of constructing a user interface or widget. + However, in your implementation, ensure that you call QUiLoader's version + first. + + \sa createWidget(), load() +*/ +QLayout *QUiLoader::createLayout(const QString &className, QObject *parent, const QString &name) +{ + Q_D(QUiLoader); + return d->builder.defaultCreateLayout(className, parent, name); +} + +/*! + Creates a new action group with the given \a parent and \a name. + + The function is also used internally by the QUiLoader class whenever it + creates a widget. Hence, you can subclass QUiLoader and reimplement this + function to intervene process of constructing a user interface or widget. + However, in your implementation, ensure that you call QUiLoader's version + first. + + \sa createAction(), createWidget(), load() + */ +QActionGroup *QUiLoader::createActionGroup(QObject *parent, const QString &name) +{ + Q_D(QUiLoader); + return d->builder.defaultCreateActionGroup(parent, name); +} + +/*! + Creates a new action with the given \a parent and \a name. + + The function is also used internally by the QUiLoader class whenever it + creates a widget. Hence, you can subclass QUiLoader and reimplement this + function to intervene process of constructing a user interface or widget. + However, in your implementation, ensure that you call QUiLoader's version + first. + + \sa createActionGroup(), createWidget(), load() +*/ +QAction *QUiLoader::createAction(QObject *parent, const QString &name) +{ + Q_D(QUiLoader); + return d->builder.defaultCreateAction(parent, name); +} + +/*! + Returns a list naming all available widgets that can be built using the + createWidget() function, i.e all the widgets specified within the given + plugin paths. + + \sa pluginPaths(), createWidget() + +*/ +QStringList QUiLoader::availableWidgets() const +{ + Q_D(const QUiLoader); + + d->setupWidgetMap(); + widget_map available = *g_widgets(); + + const auto &customWidgets = d->builder.customWidgets(); + for (QDesignerCustomWidgetInterface *plugin : customWidgets) + available.insert(plugin->name(), true); + + return available.keys(); +} + + +/*! + \since 4.5 + Returns a list naming all available layouts that can be built using the + createLayout() function + + \sa createLayout() +*/ + +QStringList QUiLoader::availableLayouts() const +{ + QStringList rc; +#define DECLARE_WIDGET(a, b) +#define DECLARE_LAYOUT(a, b) rc.push_back(QLatin1String(#a)); + +#include "widgets.table" + +#undef DECLARE_WIDGET +#undef DECLARE_LAYOUT + return rc; +} + +/*! + Sets the working directory of the loader to \a dir. The loader will look + for other resources, such as icons and resource files, in paths relative to + this directory. + + \sa workingDirectory() +*/ + +void QUiLoader::setWorkingDirectory(const QDir &dir) +{ + Q_D(QUiLoader); + d->builder.setWorkingDirectory(dir); +} + +/*! + Returns the working directory of the loader. + + \sa setWorkingDirectory() +*/ + +QDir QUiLoader::workingDirectory() const +{ + Q_D(const QUiLoader); + return d->builder.workingDirectory(); +} +/*! + \since 4.5 + + If \a enabled is true, user interfaces loaded by this loader will + automatically retranslate themselves upon receiving a language change + event. Otherwise, the user interfaces will not be retranslated. + + \sa isLanguageChangeEnabled() +*/ + +void QUiLoader::setLanguageChangeEnabled(bool enabled) +{ + Q_D(QUiLoader); + d->builder.dynamicTr = enabled; +} + +/*! + \since 4.5 + + Returns true if dynamic retranslation on language change is enabled; + returns false otherwise. + + \sa setLanguageChangeEnabled() +*/ + +bool QUiLoader::isLanguageChangeEnabled() const +{ + Q_D(const QUiLoader); + return d->builder.dynamicTr; +} + +/*! + \internal + \since 4.5 + + If \a enabled is true, user interfaces loaded by this loader will be + translated. Otherwise, the user interfaces will not be translated. + + \note This is orthogonal to languageChangeEnabled. + + \sa isLanguageChangeEnabled(), setLanguageChangeEnabled() +*/ + +void QUiLoader::setTranslationEnabled(bool enabled) +{ + Q_D(QUiLoader); + d->builder.trEnabled = enabled; +} + +/*! + \internal + \since 4.5 + + Returns true if translation is enabled; returns false otherwise. + + \sa setTranslationEnabled() +*/ + +bool QUiLoader::isTranslationEnabled() const +{ + Q_D(const QUiLoader); + return d->builder.trEnabled; +} + +/*! + Returns a human-readable description of the last error occurred in load(). + + \since 5.0 + \sa load() +*/ + +QString QUiLoader::errorString() const +{ + Q_D(const QUiLoader); + return d->builder.errorString(); +} + +QT_END_NAMESPACE + +#include "quiloader.moc" diff --git a/src/uitools/quiloader.h b/src/uitools/quiloader.h new file mode 100644 index 0000000..742b560 --- /dev/null +++ b/src/uitools/quiloader.h @@ -0,0 +1,61 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QUILOADER_H +#define QUILOADER_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QWidget; +class QLayout; +class QAction; +class QActionGroup; +class QString; +class QIODevice; +class QDir; + +class QUiLoaderPrivate; +class Q_UITOOLS_EXPORT QUiLoader : public QObject +{ + Q_OBJECT +public: + explicit QUiLoader(QObject *parent = nullptr); + ~QUiLoader() override; + + QStringList pluginPaths() const; + void clearPluginPaths(); + void addPluginPath(const QString &path); + + QWidget *load(QIODevice *device, QWidget *parentWidget = nullptr); + QStringList availableWidgets() const; + QStringList availableLayouts() const; + + virtual QWidget *createWidget(const QString &className, QWidget *parent = nullptr, const QString &name = QString()); + virtual QLayout *createLayout(const QString &className, QObject *parent = nullptr, const QString &name = QString()); + virtual QActionGroup *createActionGroup(QObject *parent = nullptr, const QString &name = QString()); + virtual QAction *createAction(QObject *parent = nullptr, const QString &name = QString()); + + void setWorkingDirectory(const QDir &dir); + QDir workingDirectory() const; + + void setLanguageChangeEnabled(bool enabled); + bool isLanguageChangeEnabled() const; + + void setTranslationEnabled(bool enabled); + bool isTranslationEnabled() const; + + QString errorString() const; + +private: + QScopedPointer d_ptr; + Q_DECLARE_PRIVATE(QUiLoader) + Q_DISABLE_COPY_MOVE(QUiLoader) +}; + +QT_END_NAMESPACE + +#endif // QUILOADER_H diff --git a/src/uitools/quiloader_p.h b/src/uitools/quiloader_p.h new file mode 100644 index 0000000..efd9432 --- /dev/null +++ b/src/uitools/quiloader_p.h @@ -0,0 +1,77 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QUILOADER_P_H +#define QUILOADER_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include + +QT_FORWARD_DECLARE_CLASS(QDataStream) + +// This file is here for use by the form preview in Linguist. If you change anything +// here or in the code which uses it, remember to adapt Linguist accordingly. + +#define PROP_GENERIC_PREFIX "_q_notr_" +#define PROP_TOOLITEMTEXT "_q_toolItemText_notr" +#define PROP_TOOLITEMTOOLTIP "_q_toolItemToolTip_notr" +#define PROP_TABPAGETEXT "_q_tabPageText_notr" +#define PROP_TABPAGETOOLTIP "_q_tabPageToolTip_notr" +#define PROP_TABPAGEWHATSTHIS "_q_tabPageWhatsThis_notr" + +QT_BEGIN_NAMESPACE + +class Q_UITOOLS_EXPORT QUiTranslatableStringValue +{ +public: + QByteArray value() const { return m_value; } + void setValue(const QByteArray &value) { m_value = value; } + QByteArray qualifier() const { return m_qualifier; } + void setQualifier(const QByteArray &qualifier) { m_qualifier = qualifier; } + + QString translate(const QByteArray &className, bool idBased) const; + +private: + QByteArray m_value; + QByteArray m_qualifier; // Comment or ID for id-based tr(). +}; + +#ifndef QT_NO_DATASTREAM +Q_UITOOLS_EXPORT QDataStream &operator<<(QDataStream &out, const QUiTranslatableStringValue &s); +Q_UITOOLS_EXPORT QDataStream &operator>>(QDataStream &in, QUiTranslatableStringValue &s); +#endif // QT_NO_DATASTREAM + +struct QUiItemRolePair { + int realRole; + int shadowRole; +}; + +#ifdef QFORMINTERNAL_NAMESPACE +namespace QFormInternal +{ +#endif + +extern const Q_UITOOLS_EXPORT QUiItemRolePair qUiItemRoles[]; + +#ifdef QFORMINTERNAL_NAMESPACE +} +#endif + +QT_END_NAMESPACE + +Q_DECLARE_METATYPE(QUiTranslatableStringValue) + + +#endif // QUILOADER_P_H diff --git a/sync.profile b/sync.profile new file mode 100644 index 0000000..caa7ed5 --- /dev/null +++ b/sync.profile @@ -0,0 +1,21 @@ +%modules = ( # path to module name map + "QtTools" => "$basedir/src/global", + "QtHelp" => "$basedir/src/assistant/help", + "QtUiTools" => "$basedir/src/uitools", + "QtUiPlugin" => "$basedir/src/uiplugin", + "QtDesigner" => "$basedir/src/designer/src/lib", + "QtDesignerComponents" => "$basedir/src/designer/src/components/lib", +); +%moduleheaders = ( # restrict the module headers to those found in relative path +); +%classnames = ( +); +%deprecatedheaders = ( + "QtDesigner" => { + "customwidget.h" => "QtUiPlugin/customwidget.h", + "QDesignerCustomWidgetInterface" => "QtUiPlugin/QDesignerCustomWidgetInterface", + "QDesignerCustomWidgetCollectionInterface" => "QtUiPlugin/QDesignerCustomWidgetCollectionInterface", + "qdesignerexportwidget.h" => "QtUiPlugin/qdesignerexportwidget.h", + "QDesignerExportWidget" => "QtUiPlugin/QDesignerExportWidget" + } +); diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..2214137 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,7 @@ +# Generated from tests.pro. + +if(QT_BUILD_STANDALONE_TESTS) + # Add qt_find_package calls for extra dependencies that need to be found when building + # the standalone tests here. +endif() +qt_build_tests() diff --git a/tests/README b/tests/README new file mode 100644 index 0000000..f94d5a2 --- /dev/null +++ b/tests/README @@ -0,0 +1,18 @@ +This directory contains autotests and benchmarks based on QTestlib. In order +to run the autotests reliably, you need to configure a desktop to match the +test environment that these tests are written for. + +Linux X11: + + * The user must be logged in to an active desktop; you can't run the + autotests without a valid DISPLAY that allows X11 connections. + + * The tests are run against a KDE3 or KDE4 desktop. + + * Window manager uses "click to focus", and not "focus follows mouse". Many + tests move the mouse cursor around and expect this to not affect focus + and activation. + + * Disable "click to activate", i.e., when a window is opened, the window + manager should automatically activate it (give it input focus) and not + wait for the user to click the window. diff --git a/tests/auto/CMakeLists.txt b/tests/auto/CMakeLists.txt new file mode 100644 index 0000000..60ee196 --- /dev/null +++ b/tests/auto/CMakeLists.txt @@ -0,0 +1,23 @@ +# Generated from auto.pro. + +if(QT_FEATURE_process AND NOT CMAKE_CROSSCOMPILING) + add_subdirectory(linguist) + add_subdirectory(qtattributionsscanner) + add_subdirectory(qtdiag) +endif() +if(TARGET Qt::qdoc AND NOT CMAKE_CROSSCOMPILING) + add_subdirectory(qdoc) +endif() +if(TARGET Qt::Help AND NOT CMAKE_CROSSCOMPILING) + add_subdirectory(qhelpcontentmodel) + add_subdirectory(qhelpenginecore) + add_subdirectory(qhelpgenerator) + add_subdirectory(qhelpindexmodel) + add_subdirectory(qhelpprojectdata) +endif() +# special case begin +# add_subdirectory(cmake) +# if (TARGET Qt::Linguist) +# add_subdirectory(cmake/linguist) +# endif() +# special case end diff --git a/tests/auto/bic/data/QtDesigner.6.0.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtDesigner.6.0.0.linux-gcc-amd64.txt new file mode 100644 index 0000000..f1468f3 --- /dev/null +++ b/tests/auto/bic/data/QtDesigner.6.0.0.linux-gcc-amd64.txt @@ -0,0 +1,21454 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f543e7c5660) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f543e81ee40) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f543e84a0c0) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7f543e87a1e0) 0 empty + +Class std::__make_unsigned_selector_base + size=1 align=1 + base size=0 base align=1 +std::__make_unsigned_selector_base (0x0x7f543eaa79c0) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f543eb217e0) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f543eb218a0) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7f543eb21d80) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7f543eb21de0) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7f543eb21e40) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7f543eb21ea0) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7f543eb21f00) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f543eb4e000) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f543eb4e0c0) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f543eb4e180) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f543eb4e240) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f543eb4e5a0) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7f543eb4e900) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7f543eb4e960) 0 empty + +Class std::__swappable_with_details::__do_is_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_swappable_with_impl (0x0x7f543eb4ec00) 0 empty + +Class std::__swappable_with_details::__do_is_nothrow_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_nothrow_swappable_with_impl (0x0x7f543eb4ec60) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7f543eba14e0) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f543ebeaa80) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7f543eb9c888) 0 empty + std::__nonesuch (0x0x7f543ebeaf60) 0 empty + +Class std::in_place_t + size=1 align=1 + base size=0 base align=1 +std::in_place_t (0x0x7f543ec6dcc0) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f543ec6df60) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f543e8a5000) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f543e8d6d20) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f543e8d6d80) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f543eb9cdd0) 0 empty + std::input_iterator_tag (0x0x7f543e8d6de0) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f543eb9ce38) 0 empty + std::forward_iterator_tag (0x0x7f543eb9cea0) 0 empty + std::input_iterator_tag (0x0x7f543e8d6e40) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f543eb9cf08) 0 empty + std::bidirectional_iterator_tag (0x0x7f543eb9cf70) 0 empty + std::forward_iterator_tag (0x0x7f543e8f9000) 0 empty + std::input_iterator_tag (0x0x7f543e8d6ea0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f543e98bba0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f543e98bcc0) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f543e9b7000) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f543e9b7300) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f543e9b7420) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f543ea40c00) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f543ea40f60) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f543dc86000) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f543dc860c0) 0 + +Class __pthread_internal_slist + size=8 align=8 + base size=8 base align=8 +__pthread_internal_slist (0x0x7f543dc86120) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7f543dc86180) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7f543dc861e0) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7f543dc86240) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f543dc864e0) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f543dc86780) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f543dc867e0) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f543dd3a5a0) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f543e8f93a8) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7f543dd3a780) 0 nearly-empty + primary-for std::bad_exception (0x0x7f543e8f93a8) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f543dd3a960) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f543e8f9410) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7f543dd3ad20) 0 nearly-empty + primary-for std::bad_cast (0x0x7f543e8f9410) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f543e8f9478) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7f543dd3af00) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f543e8f9478) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f543dd71120) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f543dd71660) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f543e8f94e0) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7f543dd71d20) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f543e8f94e0) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f543e8f9548) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7f543e8f95b0) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f543e8f9548) + std::exception (0x0x7f543dd71f00) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f543e8f95b0) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f543dda5120) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7f543dda5360) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f543de27ae0) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f543da04ea0) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f543da04f60) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f543d67be40) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f543d67bf00) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f543d67bf60) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f543d6ac000) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f543d6ac060) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f543d6ac180) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f543d6ac1e0) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f543d73d840) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f543d73d9c0) 0 empty + +Class _G_fpos_t + size=16 align=8 + base size=16 base align=8 +_G_fpos_t (0x0x7f543d560840) 0 + +Class _G_fpos64_t + size=16 align=8 + base size=16 base align=8 +_G_fpos64_t (0x0x7f543d5608a0) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f543d560900) 0 + +Class _IO_cookie_io_functions_t + size=32 align=8 + base size=32 base align=8 +_IO_cookie_io_functions_t (0x0x7f543d560960) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f543d1b7120) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f543d1af548) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7f543d1b71e0) 0 nearly-empty + primary-for std::logic_error (0x0x7f543d1af548) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f543d1af5b0) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7f543d1af618) 0 + primary-for std::domain_error (0x0x7f543d1af5b0) + std::exception (0x0x7f543d1b7240) 0 nearly-empty + primary-for std::logic_error (0x0x7f543d1af618) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f543d1af680) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7f543d1af6e8) 0 + primary-for std::invalid_argument (0x0x7f543d1af680) + std::exception (0x0x7f543d1b72a0) 0 nearly-empty + primary-for std::logic_error (0x0x7f543d1af6e8) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f543d1af750) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7f543d1af7b8) 0 + primary-for std::length_error (0x0x7f543d1af750) + std::exception (0x0x7f543d1b7300) 0 nearly-empty + primary-for std::logic_error (0x0x7f543d1af7b8) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f543d1af820) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7f543d1af888) 0 + primary-for std::out_of_range (0x0x7f543d1af820) + std::exception (0x0x7f543d1b7360) 0 nearly-empty + primary-for std::logic_error (0x0x7f543d1af888) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f543d1af8f0) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7f543d1b73c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f543d1af8f0) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f543d1af958) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7f543d1af9c0) 0 + primary-for std::range_error (0x0x7f543d1af958) + std::exception (0x0x7f543d1b7420) 0 nearly-empty + primary-for std::runtime_error (0x0x7f543d1af9c0) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f543d1afa28) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7f543d1afa90) 0 + primary-for std::overflow_error (0x0x7f543d1afa28) + std::exception (0x0x7f543d1b7480) 0 nearly-empty + primary-for std::runtime_error (0x0x7f543d1afa90) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f543d1afaf8) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7f543d1afb60) 0 + primary-for std::underflow_error (0x0x7f543d1afaf8) + std::exception (0x0x7f543d1b74e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f543d1afb60) + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7f543d21c7e0) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f543d21c840) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f543d21c9c0) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f543d21ca80) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f543d1afdd0) 0 + std::__uses_alloc_base (0x0x7f543d21ca20) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f543cfc60c0) 0 empty + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f543d060208) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7f543d059780) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f543d060208) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f543d059840) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f543d0598a0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f543d059ba0) 0 + +Class std::__detail::_Identity + size=1 align=1 + base size=0 base align=1 +std::__detail::_Identity (0x0x7f543cd33a20) 0 empty + +Class std::__detail::_Select1st + size=1 align=1 + base size=0 base align=1 +std::__detail::_Select1st (0x0x7f543cd33ae0) 0 empty + +Class std::__detail::_Hash_node_base + size=8 align=8 + base size=8 base align=8 +std::__detail::_Hash_node_base (0x0x7f543cd5d000) 0 + +Class std::__detail::_Mod_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mod_range_hashing (0x0x7f543cd5de40) 0 empty + +Class std::__detail::_Default_ranged_hash + size=1 align=1 + base size=0 base align=1 +std::__detail::_Default_ranged_hash (0x0x7f543cd5df00) 0 empty + +Class std::__detail::_Prime_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Prime_rehash_policy (0x0x7f543cd5df60) 0 + +Class std::__detail::_Mask_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mask_range_hashing (0x0x7f543cd89360) 0 empty + +Class std::__detail::_Power2_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Power2_rehash_policy (0x0x7f543cd89480) 0 + +Class std::__detail::_Equality_base + size=1 align=1 + base size=0 base align=1 +std::__detail::_Equality_base (0x0x7f543cb6a540) 0 empty + +Class std::_Enable_default_constructor_tag + size=1 align=1 + base size=0 base align=1 +std::_Enable_default_constructor_tag (0x0x7f543cb6ade0) 0 empty + +Class std::nullopt_t + size=1 align=1 + base size=0 base align=1 +std::nullopt_t (0x0x7f543cbaa7e0) 0 empty + +Vtable for std::bad_optional_access +std::bad_optional_access::_ZTVSt19bad_optional_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt19bad_optional_access) +16 (int (*)(...))std::bad_optional_access::~bad_optional_access +24 (int (*)(...))std::bad_optional_access::~bad_optional_access +32 (int (*)(...))std::bad_optional_access::what + +Class std::bad_optional_access + size=8 align=8 + base size=8 base align=8 +std::bad_optional_access (0x0x7f543cb8f138) 0 nearly-empty + vptr=((& std::bad_optional_access::_ZTVSt19bad_optional_access) + 16) + std::exception (0x0x7f543cbaaa20) 0 nearly-empty + primary-for std::bad_optional_access (0x0x7f543cb8f138) + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f543c2803c0) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f543c551c30) 0 + std::iterator (0x0x7f543c280b40) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f543c551d00) 0 + std::_Bit_iterator_base (0x0x7f543c551d68) 0 + std::iterator (0x0x7f543c2b0120) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f543c551e38) 0 + std::_Bit_iterator_base (0x0x7f543c551ea0) 0 + std::iterator (0x0x7f543c2b0900) 0 empty + +Class __pstl::execution::v1::sequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::sequenced_policy (0x0x7f543c091de0) 0 empty + +Class __pstl::execution::v1::parallel_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_policy (0x0x7f543c091f60) 0 empty + +Class __pstl::execution::v1::parallel_unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_unsequenced_policy (0x0x7f543c0c1120) 0 empty + +Class __pstl::execution::v1::unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::unsequenced_policy (0x0x7f543c0c12a0) 0 empty + +Class std::__detail::__variant::__variant_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_cookie (0x0x7f543c1bed80) 0 empty + +Class std::__detail::__variant::__variant_idx_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_idx_cookie (0x0x7f543c1bede0) 0 empty + +Class std::monostate + size=1 align=1 + base size=0 base align=1 +std::monostate (0x0x7f543be8f8a0) 0 empty + +Vtable for std::bad_variant_access +std::bad_variant_access::_ZTVSt18bad_variant_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt18bad_variant_access) +16 (int (*)(...))std::bad_variant_access::~bad_variant_access +24 (int (*)(...))std::bad_variant_access::~bad_variant_access +32 (int (*)(...))std::bad_variant_access::what + +Class std::bad_variant_access + size=16 align=8 + base size=16 base align=8 +std::bad_variant_access (0x0x7f543c26f270) 0 + vptr=((& std::bad_variant_access::_ZTVSt18bad_variant_access) + 16) + std::exception (0x0x7f543becbde0) 0 nearly-empty + primary-for std::bad_variant_access (0x0x7f543c26f270) + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f543bf7f7e0) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f543bf7f840) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f543bf7fae0) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f543bfc4300) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f543bffc420) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f543bc94240) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f543c02f4e0) 0 + std::__atomic_flag_base (0x0x7f543bc942a0) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f543bc0f7b8) 0 + QAtomicInteger (0x0x7f543bc0f820) 0 + QBasicAtomicInteger (0x0x7f543bc1a180) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f543b482480) 0 empty + +Class QKeyCombination + size=4 align=4 + base size=4 base align=4 +QKeyCombination (0x0x7f543b4824e0) 0 + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f543b53e7e0) 0 + +Class QMethodRawArguments + size=8 align=8 + base size=8 base align=8 +QMethodRawArguments (0x0x7f543b53ef00) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f543b53ef60) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f543b4cdc30) 0 + QGenericArgument (0x0x7f543b57c240) 0 + +Class QMetaObject::SuperData + size=8 align=8 + base size=8 base align=8 +QMetaObject::SuperData (0x0x7f543b57c720) 0 + +Class QMetaObject::Data + size=56 align=8 + base size=56 base align=8 +QMetaObject::Data (0x0x7f543b57c780) 0 + +Class QMetaObject + size=56 align=8 + base size=56 base align=8 +QMetaObject (0x0x7f543b57c6c0) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f543b5c5120) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f543b5f0b40) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f543b61b540) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f543b2f9060) 0 + +Class QArrayData + size=16 align=8 + base size=16 base align=8 +QArrayData (0x0x7f543b2f93c0) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f543b384d80) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f543b384ea0) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f543b3c22a0) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f543b3c2540) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f543b3c2720) 0 + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f543b40e840) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f543b40eba0) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f543b44c3c0) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f543b46e138) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7f543b46e1a0) 0 + primary-for std::system_error (0x0x7f543b46e138) + std::exception (0x0x7f543b44cf60) 0 nearly-empty + primary-for std::runtime_error (0x0x7f543b46e1a0) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f543b46e4e0) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7f543b46e548) 0 + primary-for std::ios_base::failure (0x0x7f543b46e4e0) + std::runtime_error (0x0x7f543b46e5b0) 0 + primary-for std::system_error (0x0x7f543b46e548) + std::exception (0x0x7f543b0b1720) 0 nearly-empty + primary-for std::runtime_error (0x0x7f543b46e5b0) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f543b0b1780) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f543b0b17e0) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f543b0b1840) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f543b0b16c0) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f543b16b480) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f543b227780) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f543adbf138 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f543adbf208 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7f543adbf750 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f543adbf820 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f543adbfdd0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7f543ae15180) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f543adbfdd0) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f543adbfe38) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7f543ae152a0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f543adbfe38) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f543adbfea0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7f543ae153c0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f543adbfea0) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f543adbff70) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7f543ae154e0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f543adbff70) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f543ae15d80) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f543ae420c0) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f543ae423c0) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f543ae42720) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f543adbf3a8) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7f543aac3f00) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f543adbf3a8) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f543ab32cc0) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7f543ab5d240) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f543a8a0060) 0 + +Class QByteArrayView + size=16 align=8 + base size=16 base align=8 +QByteArrayView (0x0x7f543a9adea0) 0 + +Class QByteArray + size=24 align=8 + base size=24 base align=8 +QByteArray (0x0x7f543a6b28a0) 0 + +Class QByteArray::FromBase64Result + size=32 align=8 + base size=28 base align=8 +QByteArray::FromBase64Result (0x0x7f543a4f7f60) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f543a57fa80) 0 + +Class QChar::fromUcs4(char32_t)::R + size=4 align=2 + base size=4 base align=2 +QChar::fromUcs4(char32_t)::R (0x0x7f543a2bede0) 0 + +Class QtPrivate::hide_char8_t + size=1 align=1 + base size=0 base align=1 +QtPrivate::hide_char8_t (0x0x7f543a2e5240) 0 empty + +Class QtPrivate::wrap_char + size=1 align=1 + base size=0 base align=1 +QtPrivate::wrap_char (0x0x7f543a2e52a0) 0 empty + +Class QAnyStringView + size=16 align=8 + base size=16 base align=8 +QAnyStringView (0x0x7f543a362420) 0 + +Class QStringTokenizerBaseBase::tokenizer_state + size=24 align=8 + base size=24 base align=8 +QStringTokenizerBaseBase::tokenizer_state (0x0x7f543a442a20) 0 + +Class QStringTokenizerBaseBase + size=8 align=4 + base size=8 base align=4 +QStringTokenizerBaseBase (0x0x7f543a4429c0) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f543a089a80) 0 + +Class QString + size=24 align=8 + base size=24 base align=8 +QString (0x0x7f543a1e8d80) 0 + +Class QtPrivate::ArgBase + size=1 align=1 + base size=1 base align=1 +QtPrivate::ArgBase (0x0x7f5439e1a120) 0 + +Class QtPrivate::QStringViewArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QStringViewArg (0x0x7f5439df6d00) 0 + QtPrivate::ArgBase (0x0x7f5439e1a180) 0 + +Class QtPrivate::QLatin1StringArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QLatin1StringArg (0x0x7f5439df6dd0) 0 + QtPrivate::ArgBase (0x0x7f5439e1a3c0) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f5439a8aba0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f5439a8ac60) 0 empty + +Class QStringMatcher + size=312 align=8 + base size=312 base align=8 +QStringMatcher (0x0x7f543987ce40) 0 + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f54398b2f60) 0 empty + +Class QtPrivate::CompareAgainstLiteralZero + size=1 align=1 + base size=0 base align=1 +QtPrivate::CompareAgainstLiteralZero (0x0x7f5439942c00) 0 empty + +Class QPartialOrdering + size=1 align=1 + base size=1 base align=1 +QPartialOrdering (0x0x7f5439942e40) 0 + +Class QIODeviceBase + size=1 align=1 + base size=0 base align=1 +QIODeviceBase (0x0x7f54399daf00) 0 empty + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f54398d1270) 0 + QIODeviceBase (0x0x7f54399daf60) 0 empty + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f5439a1d120) 0 + +Class QtMetaContainerPrivate::QMetaContainerInterface + size=120 align=8 + base size=120 base align=8 +QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f54396ac540) 0 + +Class QtMetaContainerPrivate::QMetaSequenceInterface + size=216 align=8 + base size=216 base align=8 +QtMetaContainerPrivate::QMetaSequenceInterface (0x0x7f54398d1bc8) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f54396ac600) 0 + +Class QtMetaContainerPrivate::QMetaAssociationInterface + size=240 align=8 + base size=240 base align=8 +QtMetaContainerPrivate::QMetaAssociationInterface (0x0x7f54398d1c98) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f54396ac6c0) 0 + +Class QMetaContainer + size=8 align=8 + base size=8 base align=8 +QMetaContainer (0x0x7f54397991e0) 0 + +Class QMetaSequence + size=8 align=8 + base size=8 base align=8 +QMetaSequence (0x0x7f54398d1208) 0 + QMetaContainer (0x0x7f54397993c0) 0 + +Class QMetaAssociation + size=8 align=8 + base size=8 base align=8 +QMetaAssociation (0x0x7f54398d1d68) 0 + QMetaContainer (0x0x7f5439799780) 0 + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f543939fde0) 0 + +Class std::__detail::_List_node_header + size=24 align=8 + base size=24 base align=8 +std::__detail::_List_node_header (0x0x7f54393d5000) 0 + std::__detail::_List_node_base (0x0x7f543939fe40) 0 + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f543908ef00) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7f54390b32a0) 0 + +Class QMetaType + size=8 align=8 + base size=8 base align=8 +QMetaType (0x0x7f5438f128a0) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f5438f74f00) 0 + +Class QtPrivate::QMetaTypeInterface + size=112 align=8 + base size=112 base align=8 +QtPrivate::QMetaTypeInterface (0x0x7f5438a82d80) 0 + +Class QtPrivate::QTypeNormalizer + size=16 align=8 + base size=16 base align=8 +QtPrivate::QTypeNormalizer (0x0x7f5438a82de0) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f54389c74e0) 0 + +Class QAdoptSharedDataTag + size=1 align=1 + base size=0 base align=1 +QAdoptSharedDataTag (0x0x7f54389c7840) 0 empty + +Class QtPrivate::RefCounted + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCounted (0x0x7f5438a2d8a0) 0 + +Class QPropertyBindingPrivatePtr + size=8 align=8 + base size=8 base align=8 +QPropertyBindingPrivatePtr (0x0x7f5438a2d9c0) 0 + +Class QUntypedPropertyData::InheritsQUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData::InheritsQUntypedPropertyData (0x0x7f5438698060) 0 empty + +Class QUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData (0x0x7f5438698000) 0 empty + +Class QtPrivate::BindingFunctionVTable + size=32 align=8 + base size=32 base align=8 +QtPrivate::BindingFunctionVTable (0x0x7f54386980c0) 0 + +Class QtPrivate::QPropertyBindingFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::QPropertyBindingFunction (0x0x7f5438698540) 0 + +Class QtPrivate::QPropertyBindingData + size=8 align=8 + base size=8 base align=8 +QtPrivate::QPropertyBindingData (0x0x7f54386985a0) 0 + +Class std::experimental::fundamentals_v2::source_location + size=24 align=8 + base size=24 base align=8 +std::experimental::fundamentals_v2::source_location (0x0x7f5438698ba0) 0 + +Class QPropertyBindingSourceLocation + size=24 align=8 + base size=24 base align=8 +QPropertyBindingSourceLocation (0x0x7f54386c6300) 0 + +Class QPropertyBindingError + size=8 align=8 + base size=8 base align=8 +QPropertyBindingError (0x0x7f54386c6600) 0 + +Class QUntypedPropertyBinding + size=8 align=8 + base size=8 base align=8 +QUntypedPropertyBinding (0x0x7f54386c6720) 0 + +Class QPropertyObserverBase + size=24 align=8 + base size=24 base align=8 +QPropertyObserverBase (0x0x7f54386c69c0) 0 + +Class QPropertyObserver + size=24 align=8 + base size=24 base align=8 +QPropertyObserver (0x0x7f54386ff138) 0 + QPropertyObserverBase (0x0x7f54386c6b40) 0 + +Class QtPrivate::QBindableInterface + size=56 align=8 + base size=56 base align=8 +QtPrivate::QBindableInterface (0x0x7f543872ba20) 0 + +Class QUntypedBindable + size=16 align=8 + base size=16 base align=8 +QUntypedBindable (0x0x7f5438758660) 0 + +Class QBindingStatus + size=16 align=8 + base size=16 base align=8 +QBindingStatus (0x0x7f5438786900) 0 + +Class QBindingStorage + size=16 align=8 + base size=16 base align=8 +QBindingStorage (0x0x7f5438786960) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f543848f540) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f54385422a0) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=80 align=8 + base size=80 base align=8 +QObjectData (0x0x7f543858ec00) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f54386315a0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f5438631540) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f54382e44e0) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f54382e4d80) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f5438655340) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7f54382e4d20) 0 + primary-for QAbstractAnimation (0x0x7f5438655340) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f5438322120) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f54386553a8) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7f54383220c0) 0 + primary-for QAnimationDriver (0x0x7f54386553a8) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f5438322300) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f5438655410) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7f54383222a0) 0 + primary-for QEventLoop (0x0x7f5438655410) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f5438322780) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f5438322840) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f54383228a0) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QAbstractEventDispatcher::startingUp +200 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f54386555b0) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7f54383227e0) 0 + primary-for QAbstractEventDispatcher (0x0x7f54386555b0) + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f54383a5060) 0 empty + +Class QStringConverterBase::State + size=48 align=8 + base size=48 base align=8 +QStringConverterBase::State (0x0x7f543824cae0) 0 + +Class QStringConverterBase + size=1 align=1 + base size=0 base align=1 +QStringConverterBase (0x0x7f543824ca80) 0 empty + +Class QStringConverter::Interface + size=40 align=8 + base size=40 base align=8 +QStringConverter::Interface (0x0x7f5437e7d720) 0 + +Class QStringConverter + size=56 align=8 + base size=56 base align=8 +QStringConverter (0x0x7f54383f97b8) 0 + QStringConverterBase (0x0x7f5437e7d6c0) 0 empty + +Class QStringEncoder + size=56 align=8 + base size=56 base align=8 +QStringEncoder (0x0x7f54383f9820) 0 + QStringConverter (0x0x7f54383f9888) 0 + QStringConverterBase (0x0x7f5437ebf120) 0 empty + +Class QStringDecoder + size=56 align=8 + base size=56 base align=8 +QStringDecoder (0x0x7f54383f98f0) 0 + QStringConverter (0x0x7f54383f9958) 0 + QStringConverterBase (0x0x7f5437ebff60) 0 empty + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f54383f99c0) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + QIODeviceBase (0x0x7f5437ee9c60) 0 empty + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f5437f4b360) 0 + +Class QContiguousCacheData + size=40 align=8 + base size=40 base align=8 +QContiguousCacheData (0x0x7f5437fdd3c0) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f5438001de0) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f5438001f60) 0 + +Class QtPrivate::EnableInternalData + size=1 align=1 + base size=0 base align=1 +QtPrivate::EnableInternalData (0x0x7f5437cd8180) 0 empty + +Class QDebug::Stream + size=88 align=8 + base size=88 base align=8 +QDebug::Stream (0x0x7f5437d02180) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f5437cb4478) 0 + QIODeviceBase (0x0x7f5437d02120) 0 empty + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f5437e250c0) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f5437e25180) 0 empty + +Class QVariant::PrivateShared + size=8 align=8 + base size=8 base align=8 +QVariant::PrivateShared (0x0x7f5437bd5ba0) 0 + +Class QVariant::Private + size=32 align=8 + base size=32 base align=8 +QVariant::Private (0x0x7f5437bd5c00) 0 + +Class QVariant + size=32 align=8 + base size=32 base align=8 +QVariant (0x0x7f5437bd5b40) 0 + +Class QtPrivate::QVariantTypeCoercer + size=32 align=8 + base size=32 base align=8 +QtPrivate::QVariantTypeCoercer (0x0x7f54379a1000) 0 + +Class QVariantConstPointer + size=32 align=8 + base size=32 base align=8 +QVariantConstPointer (0x0x7f54379a1240) 0 + +Class QModelRoleData + size=40 align=8 + base size=40 base align=8 +QModelRoleData (0x0x7f54379a1420) 0 + +Class QModelRoleDataSpan + size=16 align=8 + base size=16 base align=8 +QModelRoleDataSpan (0x0x7f54379db360) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f5437a26360) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f5437a74540) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f54376e4de0) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractItemModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractItemModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f54376fd548) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7f54376e4d80) 0 + primary-for QAbstractItemModel (0x0x7f54376fd548) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f543780dae0) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractTableModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f54376fddd0) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7f54376fde38) 0 + primary-for QAbstractTableModel (0x0x7f54376fddd0) + QObject (0x0x7f543780da80) 0 + primary-for QAbstractItemModel (0x0x7f54376fde38) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f543780dc00) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractListModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f54376fdea0) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7f54376fdf08) 0 + primary-for QAbstractListModel (0x0x7f54376fdea0) + QObject (0x0x7f543780dba0) 0 + primary-for QAbstractItemModel (0x0x7f54376fdf08) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f543748b060) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f543748b120) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QAbstractProxyModel::setSourceModel +416 (int (*)(...))__cxa_pure_virtual +424 (int (*)(...))__cxa_pure_virtual +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f54374812d8) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7f5437481340) 0 + primary-for QAbstractProxyModel (0x0x7f54374812d8) + QObject (0x0x7f543748b0c0) 0 + primary-for QAbstractItemModel (0x0x7f5437481340) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f543748b300) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f54374813a8) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7f5437481410) 0 + primary-for QAnimationGroup (0x0x7f54374813a8) + QObject (0x0x7f543748b2a0) 0 + primary-for QAbstractAnimation (0x0x7f5437481410) + +Class QAssociativeIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeIterator (0x0x7f5437481548) 0 + QIterator (0x0x7f54374815b0) 0 + QBaseIterator (0x0x7f543748b720) 0 + +Class QAssociativeConstIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeConstIterator (0x0x7f54374816e8) 0 + QConstIterator (0x0x7f5437481750) 0 + QBaseIterator (0x0x7f543748bcc0) 0 + +Class QAssociativeIterable + size=24 align=8 + base size=24 base align=8 +QAssociativeIterable (0x0x7f5437481820) 0 + QIterable (0x0x7f54374f81e0) 0 + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f54375d4cc0) 0 + +Class QBitArray + size=24 align=8 + base size=24 base align=8 +QBitArray (0x0x7f5437636a20) 0 + +Class QBitRef + size=16 align=8 + base size=16 base align=8 +QBitRef (0x0x7f5437662960) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f54372aa4e0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f54372b1070) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7f54372aa420) 0 + primary-for QIODevice (0x0x7f54372b1070) + QIODeviceBase (0x0x7f54372aa480) 0 empty + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f54372aa840) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f54372a8750) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7f54372b10e0) 0 + primary-for QBuffer (0x0x7f54372a8750) + QObject (0x0x7f54372aa780) 0 + primary-for QIODevice (0x0x7f54372b10e0) + QIODeviceBase (0x0x7f54372aa7e0) 0 empty + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f54372aaa80) 0 + +Class QByteArrayMatcher + size=1056 align=8 + base size=1056 base align=8 +QByteArrayMatcher (0x0x7f54372aaa20) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f54372aac00) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f54372aaba0) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f5437350360) 0 + +Class QCalendar::YearMonthDay + size=12 align=4 + base size=12 base align=4 +QCalendar::YearMonthDay (0x0x7f5437081120) 0 + +Class QCalendar + size=8 align=8 + base size=8 base align=8 +QCalendar (0x0x7f54370810c0) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f5437081480) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f54370efa80) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f5437139cc0) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f5437139d20) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f5437139c60) 0 + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7f54371bff60) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f54371e57e0) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f5436e889c0) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel + size=1 align=1 + base size=0 base align=1 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel (0x0x7f5436f101e0) 0 empty + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f5436f10240) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator + size=24 align=8 + base size=17 base align=8 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator (0x0x7f5436f10420) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f5436f9b120) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f5437065c60) 0 + +Class QCborParserError + size=16 align=8 + base size=16 base align=8 +QCborParserError (0x0x7f5436cddde0) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7f5436cddea0) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7f5436e16780) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7f5436e4ccc0) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7f5436e4cd20) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7f5436e4cc60) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7f5436b5d300) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7f5436b5d360) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7f5436b5d2a0) 0 + +Class qfloat16::Wrap + size=2 align=2 + base size=2 base align=2 +qfloat16::Wrap (0x0x7f543696e3c0) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7f543696e360) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7f5436a35ba0) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7f5436694540) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f5436694f60) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f54366c7180) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f543676cba0) 0 + +Class QEvent::InputEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::InputEventTag (0x0x7f54367f3480) 0 empty + +Class QEvent::PointerEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::PointerEventTag (0x0x7f54367f34e0) 0 empty + +Class QEvent::SinglePointEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::SinglePointEventTag (0x0x7f54367f3540) 0 empty + +Vtable for QEvent +QEvent::_ZTV6QEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QEvent + size=16 align=8 + base size=16 base align=8 +QEvent (0x0x7f54367f3420) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QTimerEvent::clone + +Class QTimerEvent + size=24 align=8 + base size=20 base align=8 +QTimerEvent (0x0x7f54367eb548) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7f54367f3ea0) 0 + primary-for QTimerEvent (0x0x7f54367eb548) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QChildEvent::clone + +Class QChildEvent + size=24 align=8 + base size=24 base align=8 +QChildEvent (0x0x7f54367eb5b0) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7f54368573c0) 0 + primary-for QChildEvent (0x0x7f54367eb5b0) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDynamicPropertyChangeEvent::clone + +Class QDynamicPropertyChangeEvent + size=40 align=8 + base size=40 base align=8 +QDynamicPropertyChangeEvent (0x0x7f54367eb618) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7f54368577e0) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f54367eb618) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDeferredDeleteEvent::clone + +Class QDeferredDeleteEvent + size=24 align=8 + base size=20 base align=8 +QDeferredDeleteEvent (0x0x7f54367eb680) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7f5436857a80) 0 + primary-for QDeferredDeleteEvent (0x0x7f54367eb680) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f5436857de0) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f54367eb6e8) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7f5436857d80) 0 + primary-for QCoreApplication (0x0x7f54367eb6e8) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f543649b000) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7f543649b120) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +224 (int (*)(...))QConcatenateTablesProxyModel::mimeData +232 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +240 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QConcatenateTablesProxyModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QConcatenateTablesProxyModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7f54367eb750) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7f54367eb7b8) 0 + primary-for QConcatenateTablesProxyModel (0x0x7f54367eb750) + QObject (0x0x7f543649b0c0) 0 + primary-for QAbstractItemModel (0x0x7f54367eb7b8) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f543649b2a0) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f543649b3c0) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f543649b6c0) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f54365b47e0) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFileDevice::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f54365b39c0) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7f5436559620) 0 + primary-for QFileDevice (0x0x7f54365b39c0) + QObject (0x0x7f54365b4720) 0 + primary-for QIODevice (0x0x7f5436559620) + QIODeviceBase (0x0x7f54365b4780) 0 empty + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f5436627360) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f54365b3dd0) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7f54365b3e38) 0 + primary-for QFile (0x0x7f54365b3dd0) + QIODevice (0x0x7f54365cb5b0) 0 + primary-for QFileDevice (0x0x7f54365b3e38) + QObject (0x0x7f54366272a0) 0 + primary-for QIODevice (0x0x7f54365cb5b0) + QIODeviceBase (0x0x7f5436627300) 0 empty + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f5436627600) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f54362f2060) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f54363a7300) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f54363a76c0) 0 + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f543647aa28) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7f543609ede0) 0 nearly-empty + primary-for QException (0x0x7f543647aa28) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=16 align=8 + base size=16 base align=8 +QUnhandledException (0x0x7f543647aa90) 0 + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7f543647aaf8) 0 nearly-empty + primary-for QUnhandledException (0x0x7f543647aa90) + std::exception (0x0x7f543609ee40) 0 nearly-empty + primary-for QException (0x0x7f543647aaf8) + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f54360e8cc0) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f54360e8d20) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f54360e8f60) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f54360f8d00) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7f54360e8f00) 0 + primary-for QFileSelector (0x0x7f54360f8d00) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f5436116180) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f54360f8d68) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7f5436116120) 0 + primary-for QFileSystemWatcher (0x0x7f54360f8d68) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=9 base align=8 +QRunnable (0x0x7f5436116300) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f54361164e0) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f54360f8e38) 0 + QBasicMutex (0x0x7f5436187240) 0 + +Class QRecursiveMutex + size=24 align=8 + base size=24 base align=8 +QRecursiveMutex (0x0x7f5436187660) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f5436187c60) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f54361f52a0) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f54361f5f00) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f5435f5b960) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f5435f6b0d0) 0 + std::__mutex_base (0x0x7f5435f5b9c0) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f5435f5bba0) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f5435f5bc00) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f5435f5bc60) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f5435f95660) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f5435f6b138) 0 + std::__recursive_mutex_base (0x0x7f5435f956c0) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f5436414e00) 0 + std::__mutex_base (0x0x7f5435f95a80) 0 + std::__timed_mutex_impl (0x0x7f5435f95ae0) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f5436414e70) 0 + std::__recursive_mutex_base (0x0x7f5435f95ea0) 0 + std::__timed_mutex_impl (0x0x7f5435f95f00) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f5435fced20) 0 + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f5435fcef60) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7f5436013ea0) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f5436013f00) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f5436013e40) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f5435e33180) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f5435e33540) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f5435e335a0) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f5435aeab40) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f5435ade340) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7f5435ade3a8) 0 + primary-for std::future_error (0x0x7f5435ade340) + std::exception (0x0x7f5435b1d240) 0 nearly-empty + primary-for std::logic_error (0x0x7f5435ade3a8) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f5435b1d960) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f5435b1d900) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f543588d3c0) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f5435c67bc8) 0 + std::__at_thread_exit_elt (0x0x7f543588d480) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f5435b1dae0) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f5435b1d8a0) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f543551af70) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7f5435590180) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f543551af70) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f5435590a20) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f543559c270) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7f54355909c0) 0 + primary-for QThread (0x0x7f543559c270) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f5435590de0) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f543559c2d8) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7f5435590d80) 0 + primary-for QThreadPool (0x0x7f543559c2d8) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f5435391540) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f54352ebf70) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7f54353914e0) 0 + primary-for QFutureWatcherBase (0x0x7f54352ebf70) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f5435391a80) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QIdentityProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QIdentityProxyModel::insertRows +272 (int (*)(...))QIdentityProxyModel::insertColumns +280 (int (*)(...))QIdentityProxyModel::removeRows +288 (int (*)(...))QIdentityProxyModel::removeColumns +296 (int (*)(...))QIdentityProxyModel::moveRows +304 (int (*)(...))QIdentityProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QIdentityProxyModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QIdentityProxyModel::setSourceModel +416 (int (*)(...))QIdentityProxyModel::mapToSource +424 (int (*)(...))QIdentityProxyModel::mapFromSource +432 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +440 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f54353a41a0) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7f54353a4208) 0 + primary-for QIdentityProxyModel (0x0x7f54353a41a0) + QAbstractItemModel (0x0x7f54353a4270) 0 + primary-for QAbstractProxyModel (0x0x7f54353a4208) + QObject (0x0x7f5435391a20) 0 + primary-for QAbstractItemModel (0x0x7f54353a4270) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f5435391c00) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f543541c7e0) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f543542a000) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7f543541c780) 0 + primary-for QItemSelectionModel (0x0x7f543542a000) + +Class QItemSelection + size=24 align=8 + base size=24 base align=8 +QItemSelection (0x0x7f543542a4e0) 0 + QList (0x0x7f543542a548) 0 + QListSpecialMethods (0x0x7f543542a5b0) 0 empty + QListSpecialMethodsBase (0x0x7f543508f1e0) 0 empty + +Class QJsonValue + size=24 align=8 + base size=24 base align=8 +QJsonValue (0x0x7f54350e9f00) 0 + +Class QJsonValueRef + size=16 align=8 + base size=16 base align=8 +QJsonValueRef (0x0x7f543511f3c0) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::iterator (0x0x7f5435165600) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::const_iterator (0x0x7f5435165660) 0 + +Class QJsonArray + size=8 align=8 + base size=8 base align=8 +QJsonArray (0x0x7f54351655a0) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f5435214060) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f54352140c0) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::iterator (0x0x7f5434fa6600) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::const_iterator (0x0x7f5434fa6660) 0 + +Class QJsonObject + size=8 align=8 + base size=8 base align=8 +QJsonObject (0x0x7f5434fa65a0) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f543505e180) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=24 align=8 + base size=24 base align=8 +QLibrary (0x0x7f5435057680) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7f543505e120) 0 + primary-for QLibrary (0x0x7f5435057680) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f543505e780) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f543505e720) 0 + +Class QTypeRevision + size=2 align=1 + base size=2 base align=1 +QTypeRevision (0x0x7f5434d5af00) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f5434dcb6c0) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f5434dcb780) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f5434e26de0) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f5434a9b4e0) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f5434ae4ae0) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f5434b62300) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f5434b62540) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f5434b624e0) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f5434ba2420) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f5434c09e40) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f5434891720) 0 + +Class QMetaMethod::Data + size=8 align=8 + base size=8 base align=8 +QMetaMethod::Data (0x0x7f54348917e0) 0 + +Class QMetaMethod + size=16 align=8 + base size=16 base align=8 +QMetaMethod (0x0x7f5434891780) 0 + +Class QMetaEnum::Data + size=8 align=8 + base size=8 base align=8 +QMetaEnum::Data (0x0x7f543490da20) 0 + +Class QMetaEnum + size=16 align=8 + base size=16 base align=8 +QMetaEnum (0x0x7f543490d9c0) 0 + +Class QMetaProperty::Data + size=8 align=8 + base size=8 base align=8 +QMetaProperty::Data (0x0x7f5434953780) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f5434953720) 0 + +Class QMetaClassInfo::Data + size=8 align=8 + base size=8 base align=8 +QMetaClassInfo::Data (0x0x7f5434953e40) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=16 base align=8 +QMetaClassInfo (0x0x7f5434953de0) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f543499fc60) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f54349b10d0) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7f543499fc00) 0 + primary-for QMimeData (0x0x7f54349b10d0) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f543499fde0) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f5434a317e0) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f5434a318a0) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=40 align=8 + base size=40 base align=8 +QObjectCleanupHandler (0x0x7f5434a22f70) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7f5434a31840) 0 + primary-for QObjectCleanupHandler (0x0x7f5434a22f70) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f5434a31960) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f543468e5a0) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f543468b9c0) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7f543468ba28) 0 + primary-for QParallelAnimationGroup (0x0x7f543468b9c0) + QAbstractAnimation (0x0x7f543468ba90) 0 + primary-for QAnimationGroup (0x0x7f543468ba28) + QObject (0x0x7f543468e540) 0 + primary-for QAbstractAnimation (0x0x7f543468ba90) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f543468e780) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f543468baf8) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7f543468bb60) 0 + primary-for QPauseAnimation (0x0x7f543468baf8) + QObject (0x0x7f543468e720) 0 + primary-for QAbstractAnimation (0x0x7f543468bb60) + +Class QPluginMetaData + size=16 align=8 + base size=16 base align=8 +QPluginMetaData (0x0x7f54346c52a0) 0 + +Class QStaticPlugin + size=24 align=8 + base size=24 base align=8 +QStaticPlugin (0x0x7f54346c5300) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f54346e1d20) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f54346f3750) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7f54346e1cc0) 0 + primary-for QPluginLoader (0x0x7f54346f3750) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f54346e1de0) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f5434772540) 0 empty + +Class QProcess::Use_setChildProcessModifier_Instead + size=1 align=1 + base size=0 base align=1 +QProcess::Use_setChildProcessModifier_Instead (0x0x7f54347725a0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 32 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QProcess::writeData +248 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f543476f7b8) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7f543467cee0) 0 + primary-for QProcess (0x0x7f543476f7b8) + QObject (0x0x7f5434772480) 0 + primary-for QIODevice (0x0x7f543467cee0) + QIODeviceBase (0x0x7f54347724e0) 0 empty + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f54347bb360) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f543476f820) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7f543476f888) 0 + primary-for QVariantAnimation (0x0x7f543476f820) + QObject (0x0x7f54347bb300) 0 + primary-for QAbstractAnimation (0x0x7f543476f888) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f54347bb5a0) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f543476f958) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7f543476f9c0) 0 + primary-for QPropertyAnimation (0x0x7f543476f958) + QAbstractAnimation (0x0x7f543476fa28) 0 + primary-for QVariantAnimation (0x0x7f543476f9c0) + QObject (0x0x7f54347bb540) 0 + primary-for QAbstractAnimation (0x0x7f543476fa28) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f5434848cc0) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f5434563180) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f5434563120) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f5434328900) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f543413f840) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f543413f7e0) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f54341a16e8) 0 + QRandomGenerator (0x0x7f54341b8ae0) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f54341dc720) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f54341dc960) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f54341dce40) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f5434249360) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f5433e9cd80) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f5433f1c5a0) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f5433ff53c0) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f5433c8ef00) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f5433ce7240) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QSaveFile::writeData +248 (int (*)(...))QSaveFile::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f543405a958) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7f543405a9c0) 0 + primary-for QSaveFile (0x0x7f543405a958) + QIODevice (0x0x7f5433cec000) 0 + primary-for QFileDevice (0x0x7f543405a9c0) + QObject (0x0x7f5433ce7180) 0 + primary-for QIODevice (0x0x7f5433cec000) + QIODeviceBase (0x0x7f5433ce71e0) 0 empty + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f5433ce7840) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f5433d5a060) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f5433da3d20) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f5433db8548) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7f5433db85b0) 0 + primary-for QSequentialAnimationGroup (0x0x7f5433db8548) + QAbstractAnimation (0x0x7f5433db8618) 0 + primary-for QAnimationGroup (0x0x7f5433db85b0) + QObject (0x0x7f5433da3cc0) 0 + primary-for QAbstractAnimation (0x0x7f5433db8618) + +Class QSequentialIterator + size=16 align=8 + base size=16 base align=8 +QSequentialIterator (0x0x7f5433db8750) 0 + QIterator (0x0x7f5433db87b8) 0 + QBaseIterator (0x0x7f5433de50c0) 0 + +Class QSequentialConstIterator + size=16 align=8 + base size=16 base align=8 +QSequentialConstIterator (0x0x7f5433db8888) 0 + QConstIterator (0x0x7f5433db88f0) 0 + QBaseIterator (0x0x7f5433de5660) 0 + +Class QSequentialIterable + size=24 align=8 + base size=24 base align=8 +QSequentialIterable (0x0x7f5433db8958) 0 + QIterable (0x0x7f5433de5ba0) 0 + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f5433af2180) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f5433adfd68) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7f5433af2120) 0 + primary-for QSettings (0x0x7f5433adfd68) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f5433af25a0) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f5433adfdd0) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7f5433af2540) 0 + primary-for QSharedMemory (0x0x7f5433adfdd0) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f5433af2780) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f5433adfe38) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7f5433af2720) 0 + primary-for QSignalMapper (0x0x7f5433adfe38) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f5432ae61e0) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f5432a14c98) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7f5432ae6180) 0 + primary-for QSocketNotifier (0x0x7f5432a14c98) + +Class QSocketDescriptor + size=4 align=4 + base size=4 base align=4 +QSocketDescriptor (0x0x7f5432ae6360) 0 + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f543cac5240) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QSortFilterProxyModel::mimeTypes +224 (int (*)(...))QSortFilterProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QSortFilterProxyModel::dropMimeData +248 (int (*)(...))QSortFilterProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QSortFilterProxyModel::insertRows +272 (int (*)(...))QSortFilterProxyModel::insertColumns +280 (int (*)(...))QSortFilterProxyModel::removeRows +288 (int (*)(...))QSortFilterProxyModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSortFilterProxyModel::fetchMore +320 (int (*)(...))QSortFilterProxyModel::canFetchMore +328 (int (*)(...))QSortFilterProxyModel::flags +336 (int (*)(...))QSortFilterProxyModel::sort +344 (int (*)(...))QSortFilterProxyModel::buddy +352 (int (*)(...))QSortFilterProxyModel::match +360 (int (*)(...))QSortFilterProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSortFilterProxyModel::setSourceModel +416 (int (*)(...))QSortFilterProxyModel::mapToSource +424 (int (*)(...))QSortFilterProxyModel::mapFromSource +432 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +440 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +448 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +456 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +464 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f543551a2d8) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7f543551a340) 0 + primary-for QSortFilterProxyModel (0x0x7f543551a2d8) + QAbstractItemModel (0x0x7f5436bd5000) 0 + primary-for QAbstractProxyModel (0x0x7f543551a340) + QObject (0x0x7f543cac5180) 0 + primary-for QAbstractItemModel (0x0x7f5436bd5000) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f543585d420) 0 empty + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f543ca4ae40) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f543c6c1ae0) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f543acda720) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QStringListModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QStringListModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStringListModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QStringListModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QStringListModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStringListModel::flags +336 (int (*)(...))QStringListModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStringListModel + size=40 align=8 + base size=40 base align=8 +QStringListModel (0x0x7f543cad7478) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7f543cad7548) 0 + primary-for QStringListModel (0x0x7f543cad7478) + QAbstractItemModel (0x0x7f543cad75b0) 0 + primary-for QAbstractListModel (0x0x7f543cad7548) + QObject (0x0x7f543afd0d20) 0 + primary-for QAbstractItemModel (0x0x7f543cad75b0) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f543ae151e0) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f543ae15420) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f543aaf4f60) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QTemporaryFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f543cad7618) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7f543cad7680) 0 + primary-for QTemporaryFile (0x0x7f543cad7618) + QFileDevice (0x0x7f543cad76e8) 0 + primary-for QFile (0x0x7f543cad7680) + QIODevice (0x0x7f543cfd4ee0) 0 + primary-for QFileDevice (0x0x7f543cad76e8) + QObject (0x0x7f543aaf4840) 0 + primary-for QIODevice (0x0x7f543cfd4ee0) + QIODeviceBase (0x0x7f543aaf4a20) 0 empty + +Class QTextBoundaryFinder + size=72 align=8 + base size=72 base align=8 +QTextBoundaryFinder (0x0x7f543ab32360) 0 + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f543a6963c0) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f543a8504e0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f543cad78f0) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7f543a850420) 0 + primary-for QTimeLine (0x0x7f543cad78f0) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f543a86b360) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=16 align=8 + base size=16 base align=8 +QTimer (0x0x7f543cad7a90) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7f543a850b40) 0 + primary-for QTimer (0x0x7f543cad7a90) + +Class QTimeZone::OffsetData + size=48 align=8 + base size=44 base align=8 +QTimeZone::OffsetData (0x0x7f543a2be1e0) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f543a2be180) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f5437a261e0) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f543c93ad68) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7f5437a07840) 0 + primary-for QTranslator (0x0x7f543c93ad68) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7f5437a58660) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QTransposeProxyModel::insertRows +272 (int (*)(...))QTransposeProxyModel::insertColumns +280 (int (*)(...))QTransposeProxyModel::removeRows +288 (int (*)(...))QTransposeProxyModel::removeColumns +296 (int (*)(...))QTransposeProxyModel::moveRows +304 (int (*)(...))QTransposeProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QTransposeProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QTransposeProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QTransposeProxyModel::setSourceModel +416 (int (*)(...))QTransposeProxyModel::mapToSource +424 (int (*)(...))QTransposeProxyModel::mapFromSource +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7f543c93add0) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7f543c93ae38) 0 + primary-for QTransposeProxyModel (0x0x7f543c93add0) + QAbstractItemModel (0x0x7f543c93aea0) 0 + primary-for QAbstractProxyModel (0x0x7f543c93ae38) + QObject (0x0x7f5437a58240) 0 + primary-for QAbstractItemModel (0x0x7f543c93aea0) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f5437a743c0) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f5436df5a80) 0 + +Class QtPrivate::QXmlString + size=24 align=8 + base size=24 base align=8 +QtPrivate::QXmlString (0x0x7f5436e165a0) 0 + +Class QXmlStreamAttribute + size=104 align=8 + base size=97 base align=8 +QXmlStreamAttribute (0x0x7f543656b240) 0 + +Class QXmlStreamAttributes + size=24 align=8 + base size=24 base align=8 +QXmlStreamAttributes (0x0x7f543c6d3138) 0 + QList (0x0x7f543c6d3208) 0 + QListSpecialMethods (0x0x7f543c6d3270) 0 empty + QListSpecialMethodsBase (0x0x7f54358ffe40) 0 empty + +Class QXmlStreamNamespaceDeclaration + size=48 align=8 + base size=48 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f54357a1e40) 0 + +Class QXmlStreamNotationDeclaration + size=72 align=8 + base size=72 base align=8 +QXmlStreamNotationDeclaration (0x0x7f54351cdcc0) 0 + +Class QXmlStreamEntityDeclaration + size=120 align=8 + base size=120 base align=8 +QXmlStreamEntityDeclaration (0x0x7f5434e075a0) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f5434981600) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f5434981660) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f5434a12480) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=16 align=8 + base size=10 base align=8 +QPaintDevice (0x0x7f5434a31600) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16) + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7f5433e7d960) 0 + +Class QColor::CT + size=10 align=2 + base size=10 base align=2 +QColor::CT (0x0x7f5436e68d80) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7f5436e68d20) 0 + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7f543d1bfde0) 0 + +Class QPolygon + size=24 align=8 + base size=24 base align=8 +QPolygon (0x0x7f543c7bf340) 0 + QList (0x0x7f543c7bf3a8) 0 + QListSpecialMethods (0x0x7f543c7bf2d8) 0 empty + QListSpecialMethodsBase (0x0x7f543bd2eae0) 0 empty + +Class QPolygonF + size=24 align=8 + base size=24 base align=8 +QPolygonF (0x0x7f543c7c26e8) 0 + QList (0x0x7f543c7c2750) 0 + QListSpecialMethods (0x0x7f543c7c2680) 0 empty + QListSpecialMethodsBase (0x0x7f543a9ee720) 0 empty + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7f543a217f00) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7f543a217ea0) 0 + +Class QTransform::Affine + size=8 align=8 + base size=8 base align=8 +QTransform::Affine (0x0x7f5439a0a420) 0 + +Class QTransform + size=80 align=8 + base size=74 base align=8 +QTransform (0x0x7f5439a0a3c0) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=24 align=8 + base size=24 base align=8 +QImage (0x0x7f543c7dc750) 0 + vptr=((& QImage::_ZTV6QImage) + 16) + QPaintDevice (0x0x7f54382a6000) 0 + primary-for QImage (0x0x7f543c7dc750) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=24 align=8 + base size=24 base align=8 +QPixmap (0x0x7f543c4b64e0) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16) + QPaintDevice (0x0x7f5437c34780) 0 + primary-for QPixmap (0x0x7f543c4b64e0) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7f54371692a0) 0 + +Vtable for QAbstractFileIconProvider +QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractFileIconProvider) +16 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +24 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +32 (int (*)(...))QAbstractFileIconProvider::icon +40 (int (*)(...))QAbstractFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QAbstractFileIconProvider + size=16 align=8 + base size=16 base align=8 +QAbstractFileIconProvider (0x0x7f5436e4a5a0) 0 + vptr=((& QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider) + 16) + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7f5436e4aa80) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7f54369947e0) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7f5436186720) 0 + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7f5434709f00) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7f543c4e7340) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16) + QObject (0x0x7f5434709ea0) 0 + primary-for QScreen (0x0x7f543c4e7340) + +Class QInputDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDevice::QPrivateSignal (0x0x7f5433f86120) 0 empty + +Vtable for QInputDevice +QInputDevice::_ZTV12QInputDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDevice) +16 (int (*)(...))QInputDevice::metaObject +24 (int (*)(...))QInputDevice::qt_metacast +32 (int (*)(...))QInputDevice::qt_metacall +40 (int (*)(...))QInputDevice::~QInputDevice +48 (int (*)(...))QInputDevice::~QInputDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputDevice + size=16 align=8 + base size=16 base align=8 +QInputDevice (0x0x7f543c4e73a8) 0 + vptr=((& QInputDevice::_ZTV12QInputDevice) + 16) + QObject (0x0x7f5433f860c0) 0 + primary-for QInputDevice (0x0x7f543c4e73a8) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7f5433f86a20) 0 + +Class QPointingDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPointingDevice::QPrivateSignal (0x0x7f543c4b73c0) 0 empty + +Vtable for QPointingDevice +QPointingDevice::_ZTV15QPointingDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPointingDevice) +16 (int (*)(...))QPointingDevice::metaObject +24 (int (*)(...))QPointingDevice::qt_metacast +32 (int (*)(...))QPointingDevice::qt_metacall +40 (int (*)(...))QPointingDevice::~QPointingDevice +48 (int (*)(...))QPointingDevice::~QPointingDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPointingDevice + size=16 align=8 + base size=16 base align=8 +QPointingDevice (0x0x7f543c4eb2d8) 0 + vptr=((& QPointingDevice::_ZTV15QPointingDevice) + 16) + QInputDevice (0x0x7f543c4eb340) 0 + primary-for QPointingDevice (0x0x7f543c4eb2d8) + QObject (0x0x7f543c4b7360) 0 + primary-for QInputDevice (0x0x7f543c4eb340) + +Class QEventPoint + size=8 align=8 + base size=8 base align=8 +QEventPoint (0x0x7f543c4b7a20) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7f5439f99840) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QInputEvent + size=40 align=8 + base size=40 base align=8 +QInputEvent (0x0x7f543c501dd0) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16) + QEvent (0x0x7f54378667e0) 0 + primary-for QInputEvent (0x0x7f543c501dd0) + +Vtable for QPointerEvent +QPointerEvent::_ZTV13QPointerEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPointerEvent) +16 (int (*)(...))QPointerEvent::~QPointerEvent +24 (int (*)(...))QPointerEvent::~QPointerEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QPointerEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QPointerEvent::isBeginEvent +64 (int (*)(...))QPointerEvent::isUpdateEvent +72 (int (*)(...))QPointerEvent::isEndEvent + +Class QPointerEvent + size=64 align=8 + base size=64 base align=8 +QPointerEvent (0x0x7f543c501e38) 0 + vptr=((& QPointerEvent::_ZTV13QPointerEvent) + 16) + QInputEvent (0x0x7f543c501ea0) 0 + primary-for QPointerEvent (0x0x7f543c501e38) + QEvent (0x0x7f5437866cc0) 0 + primary-for QInputEvent (0x0x7f543c501ea0) + +Vtable for QSinglePointEvent +QSinglePointEvent::_ZTV17QSinglePointEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSinglePointEvent) +16 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +24 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QSinglePointEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QSinglePointEvent + size=80 align=8 + base size=80 base align=8 +QSinglePointEvent (0x0x7f543c503680) 0 + vptr=((& QSinglePointEvent::_ZTV17QSinglePointEvent) + 16) + QPointerEvent (0x0x7f543c5036e8) 0 + primary-for QSinglePointEvent (0x0x7f543c503680) + QInputEvent (0x0x7f543c503750) 0 + primary-for QPointerEvent (0x0x7f543c5036e8) + QEvent (0x0x7f5436b4ac00) 0 + primary-for QInputEvent (0x0x7f543c503750) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QEnterEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QEnterEvent + size=80 align=8 + base size=80 base align=8 +QEnterEvent (0x0x7f543c5037b8) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16) + QSinglePointEvent (0x0x7f543c503820) 0 + primary-for QEnterEvent (0x0x7f543c5037b8) + QPointerEvent (0x0x7f543c503888) 0 + primary-for QSinglePointEvent (0x0x7f543c503820) + QInputEvent (0x0x7f543c5038f0) 0 + primary-for QPointerEvent (0x0x7f543c503888) + QEvent (0x0x7f5435a290c0) 0 + primary-for QInputEvent (0x0x7f543c5038f0) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QMouseEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QMouseEvent + size=80 align=8 + base size=80 base align=8 +QMouseEvent (0x0x7f543c503958) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16) + QSinglePointEvent (0x0x7f543c5039c0) 0 + primary-for QMouseEvent (0x0x7f543c503958) + QPointerEvent (0x0x7f543c503a28) 0 + primary-for QSinglePointEvent (0x0x7f543c5039c0) + QInputEvent (0x0x7f543c503a90) 0 + primary-for QPointerEvent (0x0x7f543c503a28) + QEvent (0x0x7f5435a29840) 0 + primary-for QInputEvent (0x0x7f543c503a90) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QHoverEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QHoverEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QHoverEvent + size=96 align=8 + base size=96 base align=8 +QHoverEvent (0x0x7f543c503af8) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16) + QSinglePointEvent (0x0x7f543c503b60) 0 + primary-for QHoverEvent (0x0x7f543c503af8) + QPointerEvent (0x0x7f543c503c30) 0 + primary-for QSinglePointEvent (0x0x7f543c503b60) + QInputEvent (0x0x7f543c503c98) 0 + primary-for QPointerEvent (0x0x7f543c503c30) + QEvent (0x0x7f5435a29de0) 0 + primary-for QInputEvent (0x0x7f543c503c98) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QWheelEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QWheelEvent::isBeginEvent +64 (int (*)(...))QWheelEvent::isUpdateEvent +72 (int (*)(...))QWheelEvent::isEndEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7f543c503d00) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16) + QSinglePointEvent (0x0x7f543c503d68) 0 + primary-for QWheelEvent (0x0x7f543c503d00) + QPointerEvent (0x0x7f543c503dd0) 0 + primary-for QSinglePointEvent (0x0x7f543c503d68) + QInputEvent (0x0x7f543c503e38) 0 + primary-for QPointerEvent (0x0x7f543c503dd0) + QEvent (0x0x7f5434cfb240) 0 + primary-for QInputEvent (0x0x7f543c503e38) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTabletEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QTabletEvent + size=96 align=8 + base size=96 base align=8 +QTabletEvent (0x0x7f543c503ea0) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16) + QSinglePointEvent (0x0x7f543c503f08) 0 + primary-for QTabletEvent (0x0x7f543c503ea0) + QPointerEvent (0x0x7f543c503f70) 0 + primary-for QSinglePointEvent (0x0x7f543c503f08) + QInputEvent (0x0x7f543c508000) 0 + primary-for QPointerEvent (0x0x7f543c503f70) + QEvent (0x0x7f5434cfb720) 0 + primary-for QInputEvent (0x0x7f543c508000) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QNativeGestureEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7f543c508068) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16) + QSinglePointEvent (0x0x7f543c5080d0) 0 + primary-for QNativeGestureEvent (0x0x7f543c508068) + QPointerEvent (0x0x7f543c508138) 0 + primary-for QSinglePointEvent (0x0x7f543c5080d0) + QInputEvent (0x0x7f543c508208) 0 + primary-for QPointerEvent (0x0x7f543c508138) + QEvent (0x0x7f5434758000) 0 + primary-for QInputEvent (0x0x7f543c508208) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QKeyEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QKeyEvent + size=88 align=8 + base size=82 base align=8 +QKeyEvent (0x0x7f543c508270) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16) + QInputEvent (0x0x7f543c5082d8) 0 + primary-for QKeyEvent (0x0x7f543c508270) + QEvent (0x0x7f54347584e0) 0 + primary-for QInputEvent (0x0x7f543c5082d8) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFocusEvent::clone + +Class QFocusEvent + size=24 align=8 + base size=20 base align=8 +QFocusEvent (0x0x7f543c508340) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16) + QEvent (0x0x7f5434758ae0) 0 + primary-for QFocusEvent (0x0x7f543c508340) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPaintEvent::clone + +Class QPaintEvent + size=48 align=8 + base size=41 base align=8 +QPaintEvent (0x0x7f543c5083a8) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16) + QEvent (0x0x7f5434758e40) 0 + primary-for QPaintEvent (0x0x7f543c5083a8) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QMoveEvent::clone + +Class QMoveEvent + size=32 align=8 + base size=32 base align=8 +QMoveEvent (0x0x7f543c508410) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16) + QEvent (0x0x7f543b71d180) 0 + primary-for QMoveEvent (0x0x7f543c508410) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QExposeEvent::clone + +Class QExposeEvent + size=24 align=8 + base size=24 base align=8 +QExposeEvent (0x0x7f543c508478) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16) + QEvent (0x0x7f543b71d4e0) 0 + primary-for QExposeEvent (0x0x7f543c508478) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPlatformSurfaceEvent::clone + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=20 base align=8 +QPlatformSurfaceEvent (0x0x7f543c5084e0) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16) + QEvent (0x0x7f543b71d780) 0 + primary-for QPlatformSurfaceEvent (0x0x7f543c5084e0) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QResizeEvent::clone + +Class QResizeEvent + size=32 align=8 + base size=32 base align=8 +QResizeEvent (0x0x7f543c508548) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16) + QEvent (0x0x7f543b71da80) 0 + primary-for QResizeEvent (0x0x7f543c508548) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QCloseEvent + size=16 align=8 + base size=16 base align=8 +QCloseEvent (0x0x7f543c5085b0) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16) + QEvent (0x0x7f543b71dde0) 0 + primary-for QCloseEvent (0x0x7f543c5085b0) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QIconDragEvent + size=16 align=8 + base size=16 base align=8 +QIconDragEvent (0x0x7f543c508680) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16) + QEvent (0x0x7f543b71de40) 0 + primary-for QIconDragEvent (0x0x7f543c508680) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QShowEvent + size=16 align=8 + base size=16 base align=8 +QShowEvent (0x0x7f543c5086e8) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16) + QEvent (0x0x7f543b71dea0) 0 + primary-for QShowEvent (0x0x7f543c5086e8) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QHideEvent + size=16 align=8 + base size=16 base align=8 +QHideEvent (0x0x7f543c508750) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16) + QEvent (0x0x7f543b71df00) 0 + primary-for QHideEvent (0x0x7f543c508750) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QContextMenuEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QContextMenuEvent + size=64 align=8 + base size=57 base align=8 +QContextMenuEvent (0x0x7f543c5087b8) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16) + QInputEvent (0x0x7f543c508820) 0 + primary-for QContextMenuEvent (0x0x7f543c5087b8) + QEvent (0x0x7f543b71df60) 0 + primary-for QInputEvent (0x0x7f543c508820) + +Class QInputMethodEvent::Attribute + size=48 align=8 + base size=48 base align=8 +QInputMethodEvent::Attribute (0x0x7f543629d540) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodEvent::clone + +Class QInputMethodEvent + size=96 align=8 + base size=96 base align=8 +QInputMethodEvent (0x0x7f543c508888) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16) + QEvent (0x0x7f543629d4e0) 0 + primary-for QInputMethodEvent (0x0x7f543c508888) + +Class QInputMethodQueryEvent::QueryPair + size=40 align=8 + base size=40 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7f5432c9fd20) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodQueryEvent::clone + +Class QInputMethodQueryEvent + size=48 align=8 + base size=48 base align=8 +QInputMethodQueryEvent (0x0x7f543c50baf8) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16) + QEvent (0x0x7f5432c9fcc0) 0 + primary-for QInputMethodQueryEvent (0x0x7f543c50baf8) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDropEvent::clone + +Class QDropEvent + size=64 align=8 + base size=64 base align=8 +QDropEvent (0x0x7f543c513d68) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16) + QEvent (0x0x7f5436c8ae40) 0 + primary-for QDropEvent (0x0x7f543c513d68) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragMoveEvent + size=80 align=8 + base size=80 base align=8 +QDragMoveEvent (0x0x7f543c513dd0) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16) + QDropEvent (0x0x7f543c513e38) 0 + primary-for QDragMoveEvent (0x0x7f543c513dd0) + QEvent (0x0x7f5432b0d5a0) 0 + primary-for QDropEvent (0x0x7f543c513e38) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragEnterEvent + size=80 align=8 + base size=80 base align=8 +QDragEnterEvent (0x0x7f543c513ea0) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16) + QDragMoveEvent (0x0x7f543c513f08) 0 + primary-for QDragEnterEvent (0x0x7f543c513ea0) + QDropEvent (0x0x7f543c517000) 0 + primary-for QDragMoveEvent (0x0x7f543c513f08) + QEvent (0x0x7f5432b0da20) 0 + primary-for QDropEvent (0x0x7f543c517000) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QDragLeaveEvent + size=16 align=8 + base size=16 base align=8 +QDragLeaveEvent (0x0x7f543c517068) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16) + QEvent (0x0x7f5432b0da80) 0 + primary-for QDragLeaveEvent (0x0x7f543c517068) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QHelpEvent::clone + +Class QHelpEvent + size=32 align=8 + base size=32 base align=8 +QHelpEvent (0x0x7f543c5170d0) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16) + QEvent (0x0x7f5432b0dae0) 0 + primary-for QHelpEvent (0x0x7f543c5170d0) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QStatusTipEvent::clone + +Class QStatusTipEvent + size=40 align=8 + base size=40 base align=8 +QStatusTipEvent (0x0x7f543c517138) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16) + QEvent (0x0x7f5432b23000) 0 + primary-for QStatusTipEvent (0x0x7f543c517138) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWhatsThisClickedEvent::clone + +Class QWhatsThisClickedEvent + size=40 align=8 + base size=40 base align=8 +QWhatsThisClickedEvent (0x0x7f543c5171a0) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16) + QEvent (0x0x7f5432b232a0) 0 + primary-for QWhatsThisClickedEvent (0x0x7f543c5171a0) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QActionEvent::clone + +Class QActionEvent + size=32 align=8 + base size=32 base align=8 +QActionEvent (0x0x7f543c517208) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16) + QEvent (0x0x7f5432b23540) 0 + primary-for QActionEvent (0x0x7f543c517208) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFileOpenEvent::clone + +Class QFileOpenEvent + size=48 align=8 + base size=48 base align=8 +QFileOpenEvent (0x0x7f543c517270) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16) + QEvent (0x0x7f5432b238a0) 0 + primary-for QFileOpenEvent (0x0x7f543c517270) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QToolBarChangeEvent::clone + +Class QToolBarChangeEvent + size=24 align=8 + base size=17 base align=8 +QToolBarChangeEvent (0x0x7f543c5172d8) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16) + QEvent (0x0x7f5432b23ba0) 0 + primary-for QToolBarChangeEvent (0x0x7f543c5172d8) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QShortcutEvent::clone + +Class QShortcutEvent + size=32 align=8 + base size=29 base align=8 +QShortcutEvent (0x0x7f543c517340) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16) + QEvent (0x0x7f5432b23ea0) 0 + primary-for QShortcutEvent (0x0x7f543c517340) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWindowStateChangeEvent::clone + +Class QWindowStateChangeEvent + size=24 align=8 + base size=21 base align=8 +QWindowStateChangeEvent (0x0x7f543c517410) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16) + QEvent (0x0x7f5432b3e240) 0 + primary-for QWindowStateChangeEvent (0x0x7f543c517410) + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTouchEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QTouchEvent::isBeginEvent +64 (int (*)(...))QTouchEvent::isUpdateEvent +72 (int (*)(...))QTouchEvent::isEndEvent + +Class QTouchEvent + size=80 align=8 + base size=79 base align=8 +QTouchEvent (0x0x7f543c517478) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16) + QPointerEvent (0x0x7f543c5174e0) 0 + primary-for QTouchEvent (0x0x7f543c517478) + QInputEvent (0x0x7f543c517548) 0 + primary-for QPointerEvent (0x0x7f543c5174e0) + QEvent (0x0x7f5432b3e540) 0 + primary-for QInputEvent (0x0x7f543c517548) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollPrepareEvent::clone + +Class QScrollPrepareEvent + size=96 align=8 + base size=96 base align=8 +QScrollPrepareEvent (0x0x7f543c5175b0) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16) + QEvent (0x0x7f5432b3e8a0) 0 + primary-for QScrollPrepareEvent (0x0x7f543c5175b0) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollEvent::clone + +Class QScrollEvent + size=56 align=8 + base size=52 base align=8 +QScrollEvent (0x0x7f543c517618) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16) + QEvent (0x0x7f5432b3ecc0) 0 + primary-for QScrollEvent (0x0x7f543c517618) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScreenOrientationChangeEvent::clone + +Class QScreenOrientationChangeEvent + size=32 align=8 + base size=28 base align=8 +QScreenOrientationChangeEvent (0x0x7f543c517680) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16) + QEvent (0x0x7f5432b580c0) 0 + primary-for QScreenOrientationChangeEvent (0x0x7f543c517680) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QApplicationStateChangeEvent::clone + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=20 base align=8 +QApplicationStateChangeEvent (0x0x7f543c5176e8) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16) + QEvent (0x0x7f5432b58420) 0 + primary-for QApplicationStateChangeEvent (0x0x7f543c5176e8) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7f5432b58720) 0 + +Class QFontDatabase + size=1 align=1 + base size=0 base align=1 +QFontDatabase (0x0x7f5432b9a780) 0 empty + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7f5432b9a960) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7f5432bd0840) 0 + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7f54307fcf00) 0 + +Class QBrushData + size=104 align=8 + base size=104 base align=8 +QBrushData (0x0x7f5430822a80) 0 + +Class QGradient::QGradientData + size=48 align=8 + base size=48 base align=8 +QGradient::QGradientData (0x0x7f5430822cc0) 0 + +Class QGradient + size=88 align=8 + base size=88 base align=8 +QGradient (0x0x7f5430822c60) 0 + +Class QLinearGradient + size=88 align=8 + base size=88 base align=8 +QLinearGradient (0x0x7f54376342d8) 0 + QGradient (0x0x7f543083aba0) 0 + +Class QRadialGradient + size=88 align=8 + base size=88 base align=8 +QRadialGradient (0x0x7f543728e208) 0 + QGradient (0x0x7f543083acc0) 0 + +Class QConicalGradient + size=88 align=8 + base size=88 base align=8 +QConicalGradient (0x0x7f543728e270) 0 + QGradient (0x0x7f543083ade0) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7f543083aea0) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7f5430888f00) 0 + +Class QTextOption + size=24 align=8 + base size=24 base align=8 +QTextOption (0x0x7f5430888ea0) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7f5430899c60) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7f54308bd960) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7f5434a68b60) 0 + QTextFormat (0x0x7f5430929000) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7f5433e72958) 0 + QTextFormat (0x0x7f5430956300) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7f543096f3a8) 0 + QTextFormat (0x0x7f543096d840) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7f5430980f70) 0 + QTextCharFormat (0x0x7f5430989000) 0 + QTextFormat (0x0x7f5430984720) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7f5430997c30) 0 + QTextFormat (0x0x7f543099a5a0) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7f54309b4888) 0 + QTextFrameFormat (0x0x7f54309b48f0) 0 + QTextFormat (0x0x7f54309b59c0) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7f54309d1548) 0 + QTextCharFormat (0x0x7f54309d15b0) 0 + QTextFormat (0x0x7f54309cec60) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7f54309f71e0) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7f543062b840) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7f543062bc60) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7f543062bc00) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7f5430670d20) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7f54306811e0) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7f5430681480) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7f54306791a0) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16) + QObject (0x0x7f5430681420) 0 + primary-for QTextDocument (0x0x7f54306791a0) + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7f5430681c60) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7f543070b000) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7f543070b060) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=80 align=8 + base size=80 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7f543070b0c0) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7f54306fc4e0) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16) + QObject (0x0x7f54306f9f60) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f54306fc4e0) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7f5430759660) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7f54307598a0) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7f5430759900) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7f5430759840) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7f543077d180) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7f543077d4e0) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7f543077d540) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7f543077d5a0) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7f543077d600) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7f543077d660) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7f543077d6c0) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7f543077d780) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7f543077d7e0) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7f543075c9c0) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16) + QAccessibleEvent (0x0x7f543077dd20) 0 + primary-for QAccessibleStateChangeEvent (0x0x7f543075c9c0) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7f543075ca28) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16) + QAccessibleEvent (0x0x7f54307a8120) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f543075ca28) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7f543075ca90) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f543075caf8) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7f543075ca90) + QAccessibleEvent (0x0x7f54307a8540) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f543075caf8) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextInsertEvent (0x0x7f543075cb60) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f543075cbc8) 0 + primary-for QAccessibleTextInsertEvent (0x0x7f543075cb60) + QAccessibleEvent (0x0x7f54307a89c0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f543075cbc8) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextRemoveEvent (0x0x7f543075cc30) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f543075cc98) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7f543075cc30) + QAccessibleEvent (0x0x7f54307a8de0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f543075cc98) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=88 align=8 + base size=88 base align=8 +QAccessibleTextUpdateEvent (0x0x7f543075cd00) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f543075cd68) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7f543075cd00) + QAccessibleEvent (0x0x7f54307bd240) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f543075cd68) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleValueChangeEvent (0x0x7f543075cdd0) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16) + QAccessibleEvent (0x0x7f54307bd6c0) 0 + primary-for QAccessibleValueChangeEvent (0x0x7f543075cdd0) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7f543075ce38) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16) + QAccessibleEvent (0x0x7f54307bdae0) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7f543075ce38) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7f54307d13c0) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7f54307d1660) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7f543075cea0) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16) + QObject (0x0x7f54307d1600) 0 + primary-for QAccessibleBridgePlugin (0x0x7f543075cea0) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0 +24 0 +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7f543075cf08) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16) + QAccessibleInterface (0x0x7f54307d1720) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f543075cf08) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7f543075cf70) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16) + QAccessibleObject (0x0x7f54307de000) 0 + primary-for QAccessibleApplication (0x0x7f543075cf70) + QAccessibleInterface (0x0x7f54307d1780) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f54307de000) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7f54307d1840) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7f54307de068) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16) + QObject (0x0x7f54307d17e0) 0 + primary-for QAccessiblePlugin (0x0x7f54307de068) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7f54307d1960) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7f54307de0d0) 0 + vptr=((& QAction::_ZTV7QAction) + 16) + QObject (0x0x7f54307d1900) 0 + primary-for QAction (0x0x7f54307de0d0) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7f54303fd2a0) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7f54307de138) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16) + QObject (0x0x7f54303fd240) 0 + primary-for QActionGroup (0x0x7f54307de138) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7f54303fd540) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7f54303fdd80) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16) + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=24 align=8 + base size=24 base align=8 +QBitmap (0x0x7f54307de2d8) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16) + QPixmap (0x0x7f54307de340) 0 + primary-for QBitmap (0x0x7f54307de2d8) + QPaintDevice (0x0x7f543042c0c0) 0 + primary-for QPixmap (0x0x7f54307de340) + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7f543043d9c0) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7f5430463ba0) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 47 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))-16 +320 (int (*)(...))(& _ZTI7QWindow) +328 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +336 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7f5430426930) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16) + QObject (0x0x7f5430463ae0) 0 + primary-for QWindow (0x0x7f5430426930) + QSurface (0x0x7f5430463b40) 16 + vptr=((& QWindow::_ZTV7QWindow) + 328) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7f543048b420) 0 + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7f543048b540) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7f54304669c0) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16) + QObject (0x0x7f543048b4e0) 0 + primary-for QClipboard (0x0x7f54304669c0) + +Class QColorTransform + size=8 align=8 + base size=8 base align=8 +QColorTransform (0x0x7f543048b660) 0 + +Class QColorSpace + size=8 align=8 + base size=8 base align=8 +QColorSpace (0x0x7f54304ca600) 0 + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7f543051c2a0) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7f543051c360) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7f54305183a8) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16) + QObject (0x0x7f543051c300) 0 + primary-for QDrag (0x0x7f54305183a8) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7f543051c540) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QFileSystemModel::mimeTypes +224 (int (*)(...))QFileSystemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QFileSystemModel::dropMimeData +248 (int (*)(...))QFileSystemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QFileSystemModel::fetchMore +320 (int (*)(...))QFileSystemModel::canFetchMore +328 (int (*)(...))QFileSystemModel::flags +336 (int (*)(...))QFileSystemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QFileSystemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7f5430518410) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16) + QAbstractItemModel (0x0x7f5430518478) 0 + primary-for QFileSystemModel (0x0x7f5430518410) + QObject (0x0x7f543051c4e0) 0 + primary-for QAbstractItemModel (0x0x7f5430518478) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7f543051cb40) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7f5430573480) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7f543058dea0) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7f54305f2cc0) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7f54305c0c98) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16) + QObject (0x0x7f54305f2c60) 0 + primary-for QGenericPlugin (0x0x7f54305c0c98) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7f54305f2d80) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7f54305f2e40) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7f54305c0d00) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16) + QObject (0x0x7f54305f2de0) 0 + primary-for QInputMethod (0x0x7f54305c0d00) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7f543020d120) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7f54305c0d68) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16) + QCoreApplication (0x0x7f54305c0dd0) 0 + primary-for QGuiApplication (0x0x7f54305c0d68) + QObject (0x0x7f543020d0c0) 0 + primary-for QCoreApplication (0x0x7f54305c0dd0) + +Class QIconEngine::ScaledPixmapArgument + size=48 align=8 + base size=48 base align=8 +QIconEngine::ScaledPixmapArgument (0x0x7f543020d3c0) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::isNull +128 (int (*)(...))QIconEngine::scaledPixmap +136 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7f543020d360) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7f543020d480) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7f54305c0e38) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16) + QObject (0x0x7f543020d420) 0 + primary-for QIconEnginePlugin (0x0x7f54305c0e38) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QImageIOHandler::write +56 (int (*)(...))QImageIOHandler::option +64 (int (*)(...))QImageIOHandler::setOption +72 (int (*)(...))QImageIOHandler::supportsOption +80 (int (*)(...))QImageIOHandler::jumpToNextImage +88 (int (*)(...))QImageIOHandler::jumpToImage +96 (int (*)(...))QImageIOHandler::loopCount +104 (int (*)(...))QImageIOHandler::imageCount +112 (int (*)(...))QImageIOHandler::nextImageDelay +120 (int (*)(...))QImageIOHandler::currentImageNumber +128 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7f543020d540) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7f543020d780) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7f54305c0ea0) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16) + QObject (0x0x7f543020d720) 0 + primary-for QImageIOPlugin (0x0x7f54305c0ea0) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7f543020db40) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7f543020dc00) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7f543020dcc0) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7f543029fa20) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7f54302f9ea0) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7f54302ed680) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16) + QObject (0x0x7f54302f9e40) 0 + primary-for QMovie (0x0x7f54302ed680) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7f54303192a0) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7f543030d0e0) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16) + QObject (0x0x7f54303191e0) 0 + primary-for QOffscreenSurface (0x0x7f543030d0e0) + QSurface (0x0x7f5430319240) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160) + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7f54303194e0) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7f54302ed6e8) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16) + QObject (0x0x7f5430319480) 0 + primary-for QOpenGLContextGroup (0x0x7f54302ed6e8) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7f54303196c0) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7f54302ed750) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16) + QObject (0x0x7f5430319660) 0 + primary-for QOpenGLContext (0x0x7f54302ed750) + +Vtable for QNativeInterface::QGLXContext +QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QGLXContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QGLXContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QGLXContext (0x0x7f5430319840) 0 nearly-empty + vptr=((& QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE) + 16) + +Vtable for QNativeInterface::QEGLContext +QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QEGLContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QEGLContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QEGLContext (0x0x7f54303198a0) 0 nearly-empty + vptr=((& QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE) + 16) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7f5430319900) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7f5430319ea0) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7f5430319e40) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7f54302edb60) 0 + QOpenGLFunctions (0x0x7f542fea8c60) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1728 align=8 + base size=1728 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7f542fef5000) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2880 align=8 + base size=2880 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7f54302edbc8) 0 + QOpenGLFunctionsPrivate (0x0x7f542fea8f60) 0 + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7f542ff85cc0) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7f542ffd6780) 0 + +Class QPageRanges::Range + size=8 align=4 + base size=8 base align=4 +QPageRanges::Range (0x0x7f542fc2e420) 0 + +Class QPageRanges + size=8 align=8 + base size=8 base align=8 +QPageRanges (0x0x7f542fc2e3c0) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageLayout +96 (int (*)(...))QPagedPaintDevice::setPageSize +104 (int (*)(...))QPagedPaintDevice::setPageOrientation +112 (int (*)(...))QPagedPaintDevice::setPageMargins +120 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPagedPaintDevice + size=24 align=8 + base size=24 base align=8 +QPagedPaintDevice (0x0x7f542fc927b8) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16) + QPaintDevice (0x0x7f542fc94540) 0 + primary-for QPagedPaintDevice (0x0x7f542fc927b8) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7f542fc946c0) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QPaintDeviceWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +352 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +416 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QPaintDevice::redirected +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=56 align=8 + base size=50 base align=8 +QPaintDeviceWindow (0x0x7f542fc991c0) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16) + QWindow (0x0x7f542fc99230) 0 + primary-for QPaintDeviceWindow (0x0x7f542fc991c0) + QObject (0x0x7f542fc945a0) 0 + primary-for QWindow (0x0x7f542fc99230) + QSurface (0x0x7f542fc94600) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 344) + QPaintDevice (0x0x7f542fc94660) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 408) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7f542fc948a0) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7f542fc94840) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7f542fa3b420) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QPaintEngine::createPixmap +200 (int (*)(...))QPaintEngine::createPixmapFromImage + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7f542fa4fc00) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7f542fa88240) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7f542fa88cc0) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7f542fa88c60) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7f542fb05c60) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7f542fb1f780) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 33 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::paintEngine +128 (int (*)(...))QPdfWriter::metric +136 (int (*)(...))-16 +144 (int (*)(...))(& _ZTI10QPdfWriter) +152 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +160 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +168 (int (*)(...))QPaintDevice::devType +176 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +184 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +192 (int (*)(...))QPaintDevice::initPainter +200 (int (*)(...))QPaintDevice::redirected +208 (int (*)(...))QPaintDevice::sharedPainter +216 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +224 (int (*)(...))QPagedPaintDevice::setPageLayout +232 (int (*)(...))QPagedPaintDevice::setPageSize +240 (int (*)(...))QPagedPaintDevice::setPageOrientation +248 (int (*)(...))QPagedPaintDevice::setPageMargins +256 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPdfWriter + size=40 align=8 + base size=40 base align=8 +QPdfWriter (0x0x7f542fa69c40) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16) + QObject (0x0x7f542fb1f6c0) 0 + primary-for QPdfWriter (0x0x7f542fa69c40) + QPagedPaintDevice (0x0x7f542fb12618) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 152) + QPaintDevice (0x0x7f542fb1f720) 16 + primary-for QPagedPaintDevice (0x0x7f542fb12618) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=24 align=8 + base size=24 base align=8 +QPicture (0x0x7f542fb12680) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16) + QPaintDevice (0x0x7f542fb1f960) 0 + primary-for QPicture (0x0x7f542fb12680) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7f542fb67480) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7f542fb67420) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7f542fba96c0) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 60 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QRasterWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QRasterWindow::redirected +336 (int (*)(...))-16 +344 (int (*)(...))(& _ZTI13QRasterWindow) +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +360 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +392 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +400 (int (*)(...))-40 +408 (int (*)(...))(& _ZTI13QRasterWindow) +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +424 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +432 (int (*)(...))QPaintDevice::devType +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +448 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +456 (int (*)(...))QPaintDevice::initPainter +464 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +472 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=56 align=8 + base size=50 base align=8 +QRasterWindow (0x0x7f542fba5bc8) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16) + QPaintDeviceWindow (0x0x7f542fb6d850) 0 + primary-for QRasterWindow (0x0x7f542fba5bc8) + QWindow (0x0x7f542fb6d8c0) 0 + primary-for QPaintDeviceWindow (0x0x7f542fb6d850) + QObject (0x0x7f542fba95a0) 0 + primary-for QWindow (0x0x7f542fb6d8c0) + QSurface (0x0x7f542fba9600) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 352) + QPaintDevice (0x0x7f542fba9660) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 416) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7f542fba98a0) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7f542fba5c98) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16) + QObject (0x0x7f542fba9840) 0 + primary-for QSessionManager (0x0x7f542fba5c98) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7f542fba9a80) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7f542fba5d00) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16) + QObject (0x0x7f542fba9a20) 0 + primary-for QShortcut (0x0x7f542fba5d00) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::multiData +48 (int (*)(...))QStandardItem::setData +56 (int (*)(...))QStandardItem::clone +64 (int (*)(...))QStandardItem::type +72 (int (*)(...))QStandardItem::read +80 (int (*)(...))QStandardItem::write +88 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7f542fba9f60) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7f542f80b6c0) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::clearItemData +216 (int (*)(...))QStandardItemModel::mimeTypes +224 (int (*)(...))QStandardItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QStandardItemModel::dropMimeData +248 (int (*)(...))QStandardItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStandardItemModel::insertRows +272 (int (*)(...))QStandardItemModel::insertColumns +280 (int (*)(...))QStandardItemModel::removeRows +288 (int (*)(...))QStandardItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStandardItemModel::flags +336 (int (*)(...))QStandardItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QStandardItemModel::roleNames +376 (int (*)(...))QStandardItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7f542f80e680) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16) + QAbstractItemModel (0x0x7f542f80e6e8) 0 + primary-for QStandardItemModel (0x0x7f542f80e680) + QObject (0x0x7f542f80bf60) 0 + primary-for QAbstractItemModel (0x0x7f542f80e6e8) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7f542f865300) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7f542f89ec00) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7f542f8a7340) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16) + QObject (0x0x7f542f89eba0) 0 + primary-for QStyleHints (0x0x7f542f8a7340) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7f542f89ede0) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7f542f8a73a8) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16) + QObject (0x0x7f542f89ed80) 0 + primary-for QTextObject (0x0x7f542f8a73a8) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7f542f8c4000) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7f542f8a7410) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16) + QTextObject (0x0x7f542f8a7478) 0 + primary-for QTextBlockGroup (0x0x7f542f8a7410) + QObject (0x0x7f542f89ef60) 0 + primary-for QTextObject (0x0x7f542f8a7478) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7f542f8c4180) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7f542f8c4240) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7f542f8c42a0) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7f542f8a74e0) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16) + QTextObject (0x0x7f542f8a7548) 0 + primary-for QTextFrame (0x0x7f542f8a74e0) + QObject (0x0x7f542f8c41e0) 0 + primary-for QTextObject (0x0x7f542f8a7548) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7f542f8fa120) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7f542f8fa1e0) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7f542f8fa180) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7f542f93da20) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7f542f9648a0) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7f542f9696e8) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16) + QObject (0x0x7f542f964840) 0 + primary-for QSyntaxHighlighter (0x0x7f542f9696e8) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7f542f964a20) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7f542f964a80) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7f542f964b40) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7f542f969750) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16) + QTextBlockGroup (0x0x7f542f9697b8) 0 + primary-for QTextList (0x0x7f542f969750) + QTextObject (0x0x7f542f969820) 0 + primary-for QTextBlockGroup (0x0x7f542f9697b8) + QObject (0x0x7f542f964ae0) 0 + primary-for QTextObject (0x0x7f542f969820) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7f542f964f00) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7f542f992780) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7f542f969888) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16) + QTextFrame (0x0x7f542f9698f0) 0 + primary-for QTextTable (0x0x7f542f969888) + QTextObject (0x0x7f542f969958) 0 + primary-for QTextFrame (0x0x7f542f9698f0) + QObject (0x0x7f542f992720) 0 + primary-for QTextObject (0x0x7f542f969958) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7f542f992b40) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7f542f9699c0) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16) + QObject (0x0x7f542f992ae0) 0 + primary-for QUndoGroup (0x0x7f542f9699c0) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7f542f992cc0) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7f542f992d80) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7f542f969a28) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16) + QObject (0x0x7f542f992d20) 0 + primary-for QUndoStack (0x0x7f542f969a28) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7f542f992f60) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7f542f969a90) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16) + QObject (0x0x7f542f992f00) 0 + primary-for QValidator (0x0x7f542f969a90) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7f542f9c6240) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7f542f969af8) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16) + QValidator (0x0x7f542f969b60) 0 + primary-for QIntValidator (0x0x7f542f969af8) + QObject (0x0x7f542f9c61e0) 0 + primary-for QValidator (0x0x7f542f969b60) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7f542f9c6420) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7f542f969bc8) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16) + QValidator (0x0x7f542f969c30) 0 + primary-for QDoubleValidator (0x0x7f542f969bc8) + QObject (0x0x7f542f9c63c0) 0 + primary-for QValidator (0x0x7f542f969c30) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7f542f9c67e0) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7f542f969c98) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16) + QValidator (0x0x7f542f969d00) 0 + primary-for QRegularExpressionValidator (0x0x7f542f969c98) + QObject (0x0x7f542f9c6780) 0 + primary-for QValidator (0x0x7f542f969d00) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7f542f9c69c0) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7f542f9c6960) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7f542f634960) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7f542f634a80) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=40 align=8 + base size=40 base align=8 +QWidget (0x0x7f542f63f1c0) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16) + QObject (0x0x7f542f6349c0) 0 + primary-for QWidget (0x0x7f542f63f1c0) + QPaintDevice (0x0x7f542f634a20) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7f542f6ce360) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0 +480 0 +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=40 align=8 + base size=40 base align=8 +QAbstractButton (0x0x7f542f637d00) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16) + QWidget (0x0x7f542f63f3f0) 0 + primary-for QAbstractButton (0x0x7f542f637d00) + QObject (0x0x7f542f6ce2a0) 0 + primary-for QWidget (0x0x7f542f63f3f0) + QPaintDevice (0x0x7f542f6ce300) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7f542f6ce5a0) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI16QAbstractSpinBox) +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +504 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=40 align=8 + base size=40 base align=8 +QAbstractSpinBox (0x0x7f542f637d68) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16) + QWidget (0x0x7f542f63f460) 0 + primary-for QAbstractSpinBox (0x0x7f542f637d68) + QObject (0x0x7f542f6ce4e0) 0 + primary-for QWidget (0x0x7f542f63f460) + QPaintDevice (0x0x7f542f6ce540) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 496) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7f542f6ced20) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=40 align=8 + base size=40 base align=8 +QAbstractSlider (0x0x7f542f637f08) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16) + QWidget (0x0x7f542f63f9a0) 0 + primary-for QAbstractSlider (0x0x7f542f637f08) + QObject (0x0x7f542f6cec60) 0 + primary-for QWidget (0x0x7f542f63f9a0) + QPaintDevice (0x0x7f542f6cecc0) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7f542f6cef60) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))QSlider::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI7QSlider) +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +472 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=40 align=8 + base size=40 base align=8 +QSlider (0x0x7f542f637f70) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16) + QAbstractSlider (0x0x7f542f730000) 0 + primary-for QSlider (0x0x7f542f637f70) + QWidget (0x0x7f542f63ff50) 0 + primary-for QAbstractSlider (0x0x7f542f730000) + QObject (0x0x7f542f6ceea0) 0 + primary-for QWidget (0x0x7f542f63ff50) + QPaintDevice (0x0x7f542f6cef00) 16 + vptr=((& QSlider::_ZTV7QSlider) + 464) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7f542f73f240) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7f542f730068) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16) + QObject (0x0x7f542f73f1e0) 0 + primary-for QStyle (0x0x7f542f730068) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7f542f79a300) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QTabBar::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))QTabBar::initStyleOption +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI7QTabBar) +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +504 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=40 align=8 + base size=40 base align=8 +QTabBar (0x0x7f542f730340) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16) + QWidget (0x0x7f542f76a9a0) 0 + primary-for QTabBar (0x0x7f542f730340) + QObject (0x0x7f542f79a240) 0 + primary-for QWidget (0x0x7f542f76a9a0) + QPaintDevice (0x0x7f542f79a2a0) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 496) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7f542f79a600) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))QTabWidget::initStyleOption +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI10QTabWidget) +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +480 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=40 align=8 + base size=40 base align=8 +QTabWidget (0x0x7f542f7303a8) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16) + QWidget (0x0x7f542f7d6000) 0 + primary-for QTabWidget (0x0x7f542f7303a8) + QObject (0x0x7f542f79a540) 0 + primary-for QWidget (0x0x7f542f7d6000) + QPaintDevice (0x0x7f542f79a5a0) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 472) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7f542f79a9c0) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRubberBand::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QRubberBand) +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +464 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=40 align=8 + base size=40 base align=8 +QRubberBand (0x0x7f542f730410) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16) + QWidget (0x0x7f542f7d6310) 0 + primary-for QRubberBand (0x0x7f542f730410) + QObject (0x0x7f542f79a900) 0 + primary-for QWidget (0x0x7f542f7d6310) + QPaintDevice (0x0x7f542f79a960) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 456) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7f542f79ade0) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QFrame) +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +464 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=40 align=8 + base size=40 base align=8 +QFrame (0x0x7f542f730478) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16) + QWidget (0x0x7f542f7d6460) 0 + primary-for QFrame (0x0x7f542f730478) + QObject (0x0x7f542f79ad20) 0 + primary-for QWidget (0x0x7f542f7d6460) + QPaintDevice (0x0x7f542f79ad80) 16 + vptr=((& QFrame::_ZTV6QFrame) + 456) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7f542f410120) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7f542f7304e0) 0 + QStyleOption (0x0x7f542f410180) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7f543c79a410) 0 + QStyleOption (0x0x7f542f4103c0) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7f543c79a618) 0 + QStyleOption (0x0x7f542f410900) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7f542f730548) 0 + QStyleOption (0x0x7f542f410b40) 0 + +Class QStyleOptionHeader + size=136 align=8 + base size=132 base align=8 +QStyleOptionHeader (0x0x7f542f7305b0) 0 + QStyleOption (0x0x7f542f410d80) 0 + +Class QStyleOptionButton + size=112 align=8 + base size=112 base align=8 +QStyleOptionButton (0x0x7f542f730618) 0 + QStyleOption (0x0x7f542f45f000) 0 + +Class QStyleOptionTab + size=160 align=8 + base size=156 base align=8 +QStyleOptionTab (0x0x7f542f7307b8) 0 + QStyleOption (0x0x7f542f45f540) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7f542f730a90) 0 + QStyleOption (0x0x7f542f45fc60) 0 + +Class QStyleOptionProgressBar + size=112 align=8 + base size=111 base align=8 +QStyleOptionProgressBar (0x0x7f542f730c30) 0 + QStyleOption (0x0x7f542f4d21e0) 0 + +Class QStyleOptionMenuItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionMenuItem (0x0x7f542f730c98) 0 + QStyleOption (0x0x7f542f4d2420) 0 + +Class QStyleOptionDockWidget + size=96 align=8 + base size=92 base align=8 +QStyleOptionDockWidget (0x0x7f542f730d00) 0 + QStyleOption (0x0x7f542f4d2660) 0 + +Class QStyleOptionViewItem + size=208 align=8 + base size=208 base align=8 +QStyleOptionViewItem (0x0x7f542f730d68) 0 + QStyleOption (0x0x7f542f4d28a0) 0 + +Class QStyleOptionToolBox + size=104 align=8 + base size=104 base align=8 +QStyleOptionToolBox (0x0x7f542f730f08) 0 + QStyleOption (0x0x7f542f4d2de0) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7f542f730f70) 0 + QStyleOption (0x0x7f542f527060) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7f542f52e000) 0 + QStyleOption (0x0x7f542f527300) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=128 base align=8 +QStyleOptionSlider (0x0x7f542f52e068) 0 + QStyleOptionComplex (0x0x7f542f52e0d0) 0 + QStyleOption (0x0x7f542f5275a0) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7f542f52e1a0) 0 + QStyleOptionComplex (0x0x7f542f52e208) 0 + QStyleOption (0x0x7f542f527960) 0 + +Class QStyleOptionToolButton + size=152 align=8 + base size=152 base align=8 +QStyleOptionToolButton (0x0x7f542f52e2d8) 0 + QStyleOptionComplex (0x0x7f542f52e340) 0 + QStyleOption (0x0x7f542f527ba0) 0 + +Class QStyleOptionComboBox + size=144 align=8 + base size=140 base align=8 +QStyleOptionComboBox (0x0x7f542f52e4e0) 0 + QStyleOptionComplex (0x0x7f542f52e548) 0 + QStyleOption (0x0x7f542f5600c0) 0 + +Class QStyleOptionTitleBar + size=112 align=8 + base size=112 base align=8 +QStyleOptionTitleBar (0x0x7f542f52e5b0) 0 + QStyleOptionComplex (0x0x7f542f52e618) 0 + QStyleOption (0x0x7f542f560300) 0 + +Class QStyleOptionGroupBox + size=136 align=8 + base size=132 base align=8 +QStyleOptionGroupBox (0x0x7f542f52e680) 0 + QStyleOptionComplex (0x0x7f542f52e6e8) 0 + QStyleOption (0x0x7f542f560540) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7f542f52e750) 0 + QStyleOptionComplex (0x0x7f542f52e7b8) 0 + QStyleOption (0x0x7f542f560780) 0 + +Class QStyleOptionGraphicsItem + size=96 align=8 + base size=96 base align=8 +QStyleOptionGraphicsItem (0x0x7f542f52e820) 0 + QStyleOption (0x0x7f542f5609c0) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7f542f560d20) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7f542f52e888) 0 + QStyleHintReturn (0x0x7f542f560d80) 0 + +Class QStyleHintReturnVariant + size=40 align=8 + base size=40 base align=8 +QStyleHintReturnVariant (0x0x7f542f52e958) 0 + QStyleHintReturn (0x0x7f542f560de0) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7f542f560f60) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7f542f52ea28) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16) + QObject (0x0x7f542f560f00) 0 + primary-for QAbstractItemDelegate (0x0x7f542f52ea28) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7f542f5a51e0) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI19QAbstractScrollArea) +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +496 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=40 align=8 + base size=40 base align=8 +QAbstractScrollArea (0x0x7f542f52ea90) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16) + QFrame (0x0x7f542f52eaf8) 0 + primary-for QAbstractScrollArea (0x0x7f542f52ea90) + QWidget (0x0x7f542f587690) 0 + primary-for QFrame (0x0x7f542f52eaf8) + QObject (0x0x7f542f5a5120) 0 + primary-for QWidget (0x0x7f542f587690) + QPaintDevice (0x0x7f542f5a5180) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 488) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7f542f5a54e0) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QAbstractItemView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))__cxa_pure_virtual +736 (int (*)(...))__cxa_pure_virtual +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI17QAbstractItemView) +800 0 +808 0 +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=40 align=8 + base size=40 base align=8 +QAbstractItemView (0x0x7f542f52eb60) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16) + QAbstractScrollArea (0x0x7f542f52ebc8) 0 + primary-for QAbstractItemView (0x0x7f542f52eb60) + QFrame (0x0x7f542f52ec30) 0 + primary-for QAbstractScrollArea (0x0x7f542f52ebc8) + QWidget (0x0x7f542f587850) 0 + primary-for QFrame (0x0x7f542f52ec30) + QObject (0x0x7f542f5a5420) 0 + primary-for QWidget (0x0x7f542f587850) + QPaintDevice (0x0x7f542f5a5480) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 800) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7f542f5c4d90) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16) + QAccessibleObject (0x0x7f542f52edd0) 0 + primary-for QAccessibleWidget (0x0x7f542f5c4d90) + QAccessibleInterface (0x0x7f542f5a5e40) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f542f52edd0) + QAccessibleActionInterface (0x0x7f542f5a5ea0) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7f542f220000) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7f542f52ee38) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16) + QGuiApplication (0x0x7f542f52eea0) 0 + primary-for QApplication (0x0x7f542f52ee38) + QCoreApplication (0x0x7f542f52ef08) 0 + primary-for QGuiApplication (0x0x7f542f52eea0) + QObject (0x0x7f542f5a5f60) 0 + primary-for QCoreApplication (0x0x7f542f52ef08) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7f542f220240) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7f542f52ef70) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16) + QLayoutItem (0x0x7f542f220480) 0 + primary-for QSpacerItem (0x0x7f542f52ef70) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7f542f52e138) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16) + QLayoutItem (0x0x7f542f2206c0) 0 + primary-for QWidgetItem (0x0x7f542f52e138) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7f542f245000) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16) + QWidgetItem (0x0x7f542f245068) 0 + primary-for QWidgetItemV2 (0x0x7f542f245000) + QLayoutItem (0x0x7f542f2208a0) 0 + primary-for QWidgetItem (0x0x7f542f245068) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7f542f220a20) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QLayout::setGeometry +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI7QLayout) +272 0 +280 0 +288 (int (*)(...))__cxa_pure_virtual +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +312 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +320 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QLayoutItem::hasHeightForWidth +352 (int (*)(...))QLayoutItem::heightForWidth +360 (int (*)(...))QLayoutItem::minimumHeightForWidth +368 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7f542f5c4ee0) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16) + QObject (0x0x7f542f220960) 0 + primary-for QLayout (0x0x7f542f5c4ee0) + QLayoutItem (0x0x7f542f2209c0) 16 + vptr=((& QLayout::_ZTV7QLayout) + 272) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7f542f220d20) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::spacing +120 (int (*)(...))QGridLayout::setSpacing +128 (int (*)(...))QGridLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QGridLayout::addItem +152 (int (*)(...))QGridLayout::expandingDirections +160 (int (*)(...))QGridLayout::minimumSize +168 (int (*)(...))QGridLayout::maximumSize +176 (int (*)(...))QGridLayout::setGeometry +184 (int (*)(...))QGridLayout::itemAt +192 (int (*)(...))QGridLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QGridLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QGridLayout::sizeHint +264 (int (*)(...))QGridLayout::hasHeightForWidth +272 (int (*)(...))QGridLayout::heightForWidth +280 (int (*)(...))QGridLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QGridLayout) +304 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +312 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +320 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +328 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +336 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +352 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +384 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +392 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +400 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7f542f2450d0) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16) + QLayout (0x0x7f542f250230) 0 + primary-for QGridLayout (0x0x7f542f2450d0) + QObject (0x0x7f542f220c60) 0 + primary-for QLayout (0x0x7f542f250230) + QLayoutItem (0x0x7f542f220cc0) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 304) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7f542f27c000) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI10QBoxLayout) +304 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +312 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7f542f245138) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16) + QLayout (0x0x7f542f2502a0) 0 + primary-for QBoxLayout (0x0x7f542f245138) + QObject (0x0x7f542f220f00) 0 + primary-for QLayout (0x0x7f542f2502a0) + QLayoutItem (0x0x7f542f220f60) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 304) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7f542f27c240) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QHBoxLayout) +304 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +312 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7f542f2451a0) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16) + QBoxLayout (0x0x7f542f245208) 0 + primary-for QHBoxLayout (0x0x7f542f2451a0) + QLayout (0x0x7f542f2505b0) 0 + primary-for QBoxLayout (0x0x7f542f245208) + QObject (0x0x7f542f27c180) 0 + primary-for QLayout (0x0x7f542f2505b0) + QLayoutItem (0x0x7f542f27c1e0) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 304) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7f542f27c3c0) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QVBoxLayout) +304 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +312 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7f542f245270) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16) + QBoxLayout (0x0x7f542f2452d8) 0 + primary-for QVBoxLayout (0x0x7f542f245270) + QLayout (0x0x7f542f250620) 0 + primary-for QBoxLayout (0x0x7f542f2452d8) + QObject (0x0x7f542f27c300) 0 + primary-for QLayout (0x0x7f542f250620) + QLayoutItem (0x0x7f542f27c360) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 304) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7f542f27c4e0) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7f542f245340) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16) + QObject (0x0x7f542f27c480) 0 + primary-for QButtonGroup (0x0x7f542f245340) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7f542f27c720) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=40 align=8 + base size=40 base align=8 +QCalendarWidget (0x0x7f542f2453a8) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16) + QWidget (0x0x7f542f250690) 0 + primary-for QCalendarWidget (0x0x7f542f2453a8) + QObject (0x0x7f542f27c660) 0 + primary-for QWidget (0x0x7f542f250690) + QPaintDevice (0x0x7f542f27c6c0) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7f542f27cba0) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))QCheckBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QCheckBox) +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +488 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=40 align=8 + base size=40 base align=8 +QCheckBox (0x0x7f542f245410) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16) + QAbstractButton (0x0x7f542f245478) 0 + primary-for QCheckBox (0x0x7f542f245410) + QWidget (0x0x7f542f250a80) 0 + primary-for QAbstractButton (0x0x7f542f245478) + QObject (0x0x7f542f27cae0) 0 + primary-for QWidget (0x0x7f542f250a80) + QPaintDevice (0x0x7f542f27cb40) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 480) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7f542f27cde0) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=40 align=8 + base size=40 base align=8 +QDialog (0x0x7f542f2454e0) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16) + QWidget (0x0x7f542f250af0) 0 + primary-for QDialog (0x0x7f542f2454e0) + QObject (0x0x7f542f27cd20) 0 + primary-for QWidget (0x0x7f542f250af0) + QPaintDevice (0x0x7f542f27cd80) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7f542f2dd060) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=40 align=8 + base size=40 base align=8 +QColorDialog (0x0x7f542f245548) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16) + QDialog (0x0x7f542f2455b0) 0 + primary-for QColorDialog (0x0x7f542f245548) + QWidget (0x0x7f542f250c40) 0 + primary-for QDialog (0x0x7f542f2455b0) + QObject (0x0x7f542f27cf60) 0 + primary-for QWidget (0x0x7f542f250c40) + QPaintDevice (0x0x7f542f2dd000) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7f542f2dd5a0) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7f542f2dd6c0) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 109 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QColumnView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QColumnView::setModel +480 (int (*)(...))QColumnView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QColumnView::visualRect +504 (int (*)(...))QColumnView::scrollTo +512 (int (*)(...))QColumnView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QColumnView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QColumnView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QColumnView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QColumnView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QColumnView::moveCursor +704 (int (*)(...))QColumnView::horizontalOffset +712 (int (*)(...))QColumnView::verticalOffset +720 (int (*)(...))QColumnView::isIndexHidden +728 (int (*)(...))QColumnView::setSelection +736 (int (*)(...))QColumnView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QColumnView::createColumn +792 (int (*)(...))-16 +800 (int (*)(...))(& _ZTI11QColumnView) +808 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +816 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=40 align=8 + base size=40 base align=8 +QColumnView (0x0x7f542f245750) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16) + QAbstractItemView (0x0x7f542f2457b8) 0 + primary-for QColumnView (0x0x7f542f245750) + QAbstractScrollArea (0x0x7f542f245820) 0 + primary-for QAbstractItemView (0x0x7f542f2457b8) + QFrame (0x0x7f542f245888) 0 + primary-for QAbstractScrollArea (0x0x7f542f245820) + QWidget (0x0x7f542f250f50) 0 + primary-for QFrame (0x0x7f542f245888) + QObject (0x0x7f542f2dd600) 0 + primary-for QWidget (0x0x7f542f250f50) + QPaintDevice (0x0x7f542f2dd660) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 808) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7f542f2dd900) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QComboBox) +480 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +488 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=40 align=8 + base size=40 base align=8 +QComboBox (0x0x7f542f2458f0) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16) + QWidget (0x0x7f542f324000) 0 + primary-for QComboBox (0x0x7f542f2458f0) + QObject (0x0x7f542f2dd840) 0 + primary-for QWidget (0x0x7f542f324000) + QPaintDevice (0x0x7f542f2dd8a0) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 480) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7f542f2ddea0) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QPushButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QPushButton) +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +488 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=40 align=8 + base size=40 base align=8 +QPushButton (0x0x7f542f245958) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16) + QAbstractButton (0x0x7f542f2459c0) 0 + primary-for QPushButton (0x0x7f542f245958) + QWidget (0x0x7f542f3244d0) 0 + primary-for QAbstractButton (0x0x7f542f2459c0) + QObject (0x0x7f542f2ddde0) 0 + primary-for QWidget (0x0x7f542f3244d0) + QPaintDevice (0x0x7f542f2dde40) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 480) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7f542f356120) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QPushButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI18QCommandLinkButton) +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +488 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=40 align=8 + base size=40 base align=8 +QCommandLinkButton (0x0x7f542f245a28) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16) + QPushButton (0x0x7f542f245a90) 0 + primary-for QCommandLinkButton (0x0x7f542f245a28) + QAbstractButton (0x0x7f542f245af8) 0 + primary-for QPushButton (0x0x7f542f245a90) + QWidget (0x0x7f542f324540) 0 + primary-for QAbstractButton (0x0x7f542f245af8) + QObject (0x0x7f542f356060) 0 + primary-for QWidget (0x0x7f542f324540) + QPaintDevice (0x0x7f542f3560c0) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 480) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7f542f356300) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7f542f245b60) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16) + QStyle (0x0x7f542f245bc8) 0 + primary-for QCommonStyle (0x0x7f542f245b60) + QObject (0x0x7f542f3562a0) 0 + primary-for QStyle (0x0x7f542f245bc8) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7f542f3564e0) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7f542f245c30) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16) + QObject (0x0x7f542f356480) 0 + primary-for QCompleter (0x0x7f542f245c30) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7f542f356840) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7f542f245c98) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16) + QObject (0x0x7f542f3567e0) 0 + primary-for QDataWidgetMapper (0x0x7f542f245c98) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7f542f356b40) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QDateTimeEdit) +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +520 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=40 align=8 + base size=40 base align=8 +QDateTimeEdit (0x0x7f542f245d00) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16) + QAbstractSpinBox (0x0x7f542f245d68) 0 + primary-for QDateTimeEdit (0x0x7f542f245d00) + QWidget (0x0x7f542f324930) 0 + primary-for QAbstractSpinBox (0x0x7f542f245d68) + QObject (0x0x7f542f356a80) 0 + primary-for QWidget (0x0x7f542f324930) + QPaintDevice (0x0x7f542f356ae0) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 512) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7f542f3c4120) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QTimeEdit) +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +520 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=40 align=8 + base size=40 base align=8 +QTimeEdit (0x0x7f542f245f08) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16) + QDateTimeEdit (0x0x7f542f245f70) 0 + primary-for QTimeEdit (0x0x7f542f245f08) + QAbstractSpinBox (0x0x7f542f3c5000) 0 + primary-for QDateTimeEdit (0x0x7f542f245f70) + QWidget (0x0x7f542f324e00) 0 + primary-for QAbstractSpinBox (0x0x7f542f3c5000) + QObject (0x0x7f542f3c4060) 0 + primary-for QWidget (0x0x7f542f324e00) + QPaintDevice (0x0x7f542f3c40c0) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 512) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7f542f3c42a0) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QDateEdit) +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +520 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=40 align=8 + base size=40 base align=8 +QDateEdit (0x0x7f542f3c5068) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16) + QDateTimeEdit (0x0x7f542f3c50d0) 0 + primary-for QDateEdit (0x0x7f542f3c5068) + QAbstractSpinBox (0x0x7f542f3c5138) 0 + primary-for QDateTimeEdit (0x0x7f542f3c50d0) + QWidget (0x0x7f542f324e70) 0 + primary-for QAbstractSpinBox (0x0x7f542f3c5138) + QObject (0x0x7f542f3c41e0) 0 + primary-for QWidget (0x0x7f542f324e70) + QPaintDevice (0x0x7f542f3c4240) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 512) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7f542f3c4540) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))QDial::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI5QDial) +464 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +472 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=40 align=8 + base size=40 base align=8 +QDial (0x0x7f542f3c51a0) 0 + vptr=((& QDial::_ZTV5QDial) + 16) + QAbstractSlider (0x0x7f542f3c5208) 0 + primary-for QDial (0x0x7f542f3c51a0) + QWidget (0x0x7f542f324ee0) 0 + primary-for QAbstractSlider (0x0x7f542f3c5208) + QObject (0x0x7f542f3c4480) 0 + primary-for QWidget (0x0x7f542f324ee0) + QPaintDevice (0x0x7f542f3c44e0) 16 + vptr=((& QDial::_ZTV5QDial) + 464) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7f542f3c4780) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=40 align=8 + base size=40 base align=8 +QDialogButtonBox (0x0x7f542f3c5270) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16) + QWidget (0x0x7f542f324f50) 0 + primary-for QDialogButtonBox (0x0x7f542f3c5270) + QObject (0x0x7f542f3c46c0) 0 + primary-for QWidget (0x0x7f542f324f50) + QPaintDevice (0x0x7f542f3c4720) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7f542f3c4d80) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDockWidget::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QDockWidget) +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +464 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=40 align=8 + base size=40 base align=8 +QDockWidget (0x0x7f542f3c5410) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16) + QWidget (0x0x7f542f3f4070) 0 + primary-for QDockWidget (0x0x7f542f3c5410) + QObject (0x0x7f542f3c4cc0) 0 + primary-for QWidget (0x0x7f542f3f4070) + QPaintDevice (0x0x7f542f3c4d20) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 456) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7f542f0383c0) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7f542f038a20) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=40 align=8 + base size=40 base align=8 +QErrorMessage (0x0x7f542f3c56e8) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16) + QDialog (0x0x7f542f3c5750) 0 + primary-for QErrorMessage (0x0x7f542f3c56e8) + QWidget (0x0x7f542f3f4a80) 0 + primary-for QDialog (0x0x7f542f3c5750) + QObject (0x0x7f542f038960) 0 + primary-for QWidget (0x0x7f542f3f4a80) + QPaintDevice (0x0x7f542f0389c0) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7f542f038c60) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=40 align=8 + base size=40 base align=8 +QFileDialog (0x0x7f542f3c57b8) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16) + QDialog (0x0x7f542f3c5820) 0 + primary-for QFileDialog (0x0x7f542f3c57b8) + QWidget (0x0x7f542f3f4af0) 0 + primary-for QDialog (0x0x7f542f3c5820) + QObject (0x0x7f542f038ba0) 0 + primary-for QWidget (0x0x7f542f3f4af0) + QPaintDevice (0x0x7f542f038c00) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7f542f3c59c0) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16) + QAbstractFileIconProvider (0x0x7f542f0ac540) 0 + primary-for QFileIconProvider (0x0x7f542f3c59c0) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7f542f0ac720) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFocusFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QFocusFrame) +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +464 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=40 align=8 + base size=40 base align=8 +QFocusFrame (0x0x7f542f3c5a28) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16) + QWidget (0x0x7f542f07c460) 0 + primary-for QFocusFrame (0x0x7f542f3c5a28) + QObject (0x0x7f542f0ac660) 0 + primary-for QWidget (0x0x7f542f07c460) + QPaintDevice (0x0x7f542f0ac6c0) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 456) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7f542f0ac960) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI13QFontComboBox) +480 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +488 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=40 align=8 + base size=40 base align=8 +QFontComboBox (0x0x7f542f3c5a90) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16) + QComboBox (0x0x7f542f3c5af8) 0 + primary-for QFontComboBox (0x0x7f542f3c5a90) + QWidget (0x0x7f542f07c4d0) 0 + primary-for QComboBox (0x0x7f542f3c5af8) + QObject (0x0x7f542f0ac8a0) 0 + primary-for QWidget (0x0x7f542f07c4d0) + QPaintDevice (0x0x7f542f0ac900) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 480) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7f542f0acf60) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=40 align=8 + base size=40 base align=8 +QFontDialog (0x0x7f542f3c5c98) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16) + QDialog (0x0x7f542f3c5d00) 0 + primary-for QFontDialog (0x0x7f542f3c5c98) + QWidget (0x0x7f542f07c770) 0 + primary-for QDialog (0x0x7f542f3c5d00) + QObject (0x0x7f542f0acea0) 0 + primary-for QWidget (0x0x7f542f07c770) + QPaintDevice (0x0x7f542f0acf00) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7f542f1065a0) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7f542f106600) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::spacing +120 (int (*)(...))QFormLayout::setSpacing +128 (int (*)(...))QFormLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QFormLayout::addItem +152 (int (*)(...))QFormLayout::expandingDirections +160 (int (*)(...))QFormLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QFormLayout::setGeometry +184 (int (*)(...))QFormLayout::itemAt +192 (int (*)(...))QFormLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QFormLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QFormLayout::sizeHint +264 (int (*)(...))QFormLayout::hasHeightForWidth +272 (int (*)(...))QFormLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI11QFormLayout) +296 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +304 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +312 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +320 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +344 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +376 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7f542f3c5ea0) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16) + QLayout (0x0x7f542f07ca80) 0 + primary-for QFormLayout (0x0x7f542f3c5ea0) + QObject (0x0x7f542f1064e0) 0 + primary-for QLayout (0x0x7f542f07ca80) + QLayoutItem (0x0x7f542f106540) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 296) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7f542f166120) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7f542f15b958) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16) + QObject (0x0x7f542f1660c0) 0 + primary-for QGesture (0x0x7f542f15b958) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7f542f166300) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7f542f15b9c0) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16) + QGesture (0x0x7f542f15ba28) 0 + primary-for QPanGesture (0x0x7f542f15b9c0) + QObject (0x0x7f542f1662a0) 0 + primary-for QGesture (0x0x7f542f15ba28) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7f542f1664e0) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7f542f15ba90) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16) + QGesture (0x0x7f542f15baf8) 0 + primary-for QPinchGesture (0x0x7f542f15ba90) + QObject (0x0x7f542f166480) 0 + primary-for QGesture (0x0x7f542f15baf8) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7f542f166c60) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7f542f15bc98) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16) + QGesture (0x0x7f542f15bd00) 0 + primary-for QSwipeGesture (0x0x7f542f15bc98) + QObject (0x0x7f542f166c00) 0 + primary-for QGesture (0x0x7f542f15bd00) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7f542f166f00) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7f542f15bd68) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16) + QGesture (0x0x7f542f15bdd0) 0 + primary-for QTapGesture (0x0x7f542f15bd68) + QObject (0x0x7f542f166ea0) 0 + primary-for QGesture (0x0x7f542f15bdd0) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7f542f1b4120) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7f542f15be38) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16) + QGesture (0x0x7f542f15bea0) 0 + primary-for QTapAndHoldGesture (0x0x7f542f15be38) + QObject (0x0x7f542f1b40c0) 0 + primary-for QGesture (0x0x7f542f15bea0) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGestureEvent + size=64 align=8 + base size=64 base align=8 +QGestureEvent (0x0x7f542f15bf08) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16) + QEvent (0x0x7f542f1b42a0) 0 + primary-for QGestureEvent (0x0x7f542f15bf08) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0 +24 0 +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7f542f1b4f00) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7f542ee39240) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7f542eec6420) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0 +48 0 +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0 +136 0 +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7f542ee578c0) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16) + QObject (0x0x7f542eec6360) 0 + primary-for QGraphicsObject (0x0x7f542ee578c0) + QGraphicsItem (0x0x7f542eec63c0) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7f542f1c79c0) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16) + QGraphicsItem (0x0x7f542eec64e0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f542f1c79c0) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7f542f1c7a28) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f542f1c7a90) 0 + primary-for QGraphicsPathItem (0x0x7f542f1c7a28) + QGraphicsItem (0x0x7f542eec6600) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f542f1c7a90) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7f542f1c7af8) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f542f1c7b60) 0 + primary-for QGraphicsRectItem (0x0x7f542f1c7af8) + QGraphicsItem (0x0x7f542eec6720) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f542f1c7b60) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7f542f1c7bc8) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f542f1c7c30) 0 + primary-for QGraphicsEllipseItem (0x0x7f542f1c7bc8) + QGraphicsItem (0x0x7f542eec68a0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f542f1c7c30) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7f542f1c7c98) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f542f1c7d00) 0 + primary-for QGraphicsPolygonItem (0x0x7f542f1c7c98) + QGraphicsItem (0x0x7f542eec6a20) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f542f1c7d00) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7f542f1c7d68) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16) + QGraphicsItem (0x0x7f542eec6b40) 0 + primary-for QGraphicsLineItem (0x0x7f542f1c7d68) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7f542f1c7dd0) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16) + QGraphicsItem (0x0x7f542eec6cc0) 0 + primary-for QGraphicsPixmapItem (0x0x7f542f1c7dd0) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7f542eec6f00) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7f542f1c7e38) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16) + QGraphicsObject (0x0x7f542ee57d20) 0 + primary-for QGraphicsTextItem (0x0x7f542f1c7e38) + QObject (0x0x7f542eec6e40) 0 + primary-for QGraphicsObject (0x0x7f542ee57d20) + QGraphicsItem (0x0x7f542eec6ea0) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7f542f1c7f70) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f542f1c76e8) 0 + primary-for QGraphicsSimpleTextItem (0x0x7f542f1c7f70) + QGraphicsItem (0x0x7f542ef3a1e0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f542f1c76e8) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7f542ef47000) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16) + QGraphicsItem (0x0x7f542ef3a300) 0 + primary-for QGraphicsItemGroup (0x0x7f542ef47000) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7f542ef3a600) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))QGraphicsLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7f542ef47068) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16) + QGraphicsLayoutItem (0x0x7f542ef3acc0) 0 + primary-for QGraphicsLayout (0x0x7f542ef47068) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7f542ef7d000) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7f542ef470d0) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16) + QObject (0x0x7f542ef3af60) 0 + primary-for QGraphicsAnchor (0x0x7f542ef470d0) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsAnchorLayout::sizeHint +72 (int (*)(...))QGraphicsAnchorLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsAnchorLayout::count +96 (int (*)(...))QGraphicsAnchorLayout::itemAt +104 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7f542ef47138) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16) + QGraphicsLayout (0x0x7f542ef471a0) 0 + primary-for QGraphicsAnchorLayout (0x0x7f542ef47138) + QGraphicsLayoutItem (0x0x7f542ef7d180) 0 + primary-for QGraphicsLayout (0x0x7f542ef471a0) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7f542ef7d300) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7f542ef47208) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16) + QObject (0x0x7f542ef7d2a0) 0 + primary-for QGraphicsEffect (0x0x7f542ef47208) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7f542ef7d8a0) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7f542ef473a8) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16) + QGraphicsEffect (0x0x7f542ef47410) 0 + primary-for QGraphicsColorizeEffect (0x0x7f542ef473a8) + QObject (0x0x7f542ef7d840) 0 + primary-for QGraphicsEffect (0x0x7f542ef47410) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7f542ef7da80) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7f542ef47478) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16) + QGraphicsEffect (0x0x7f542ef474e0) 0 + primary-for QGraphicsBlurEffect (0x0x7f542ef47478) + QObject (0x0x7f542ef7da20) 0 + primary-for QGraphicsEffect (0x0x7f542ef474e0) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7f542efe3120) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7f542ef47680) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16) + QGraphicsEffect (0x0x7f542ef476e8) 0 + primary-for QGraphicsDropShadowEffect (0x0x7f542ef47680) + QObject (0x0x7f542efe30c0) 0 + primary-for QGraphicsEffect (0x0x7f542ef476e8) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7f542efe3540) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7f542ef47750) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16) + QGraphicsEffect (0x0x7f542ef477b8) 0 + primary-for QGraphicsOpacityEffect (0x0x7f542ef47750) + QObject (0x0x7f542efe34e0) 0 + primary-for QGraphicsEffect (0x0x7f542ef477b8) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsGridLayout::sizeHint +72 (int (*)(...))QGraphicsGridLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsGridLayout::count +96 (int (*)(...))QGraphicsGridLayout::itemAt +104 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7f542ef47820) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16) + QGraphicsLayout (0x0x7f542ef47888) 0 + primary-for QGraphicsGridLayout (0x0x7f542ef47820) + QGraphicsLayoutItem (0x0x7f542efe36c0) 0 + primary-for QGraphicsLayout (0x0x7f542ef47888) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7f542efe38a0) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7f542ef479c0) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16) + QObject (0x0x7f542efe3840) 0 + primary-for QGraphicsItemAnimation (0x0x7f542ef479c0) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsLinearLayout::sizeHint +72 (int (*)(...))QGraphicsLinearLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsLinearLayout::count +96 (int (*)(...))QGraphicsLinearLayout::itemAt +104 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7f542ef47a28) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16) + QGraphicsLayout (0x0x7f542ef47a90) 0 + primary-for QGraphicsLinearLayout (0x0x7f542ef47a28) + QGraphicsLayoutItem (0x0x7f542efe3960) 0 + primary-for QGraphicsLayout (0x0x7f542ef47a90) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7f542efe3c60) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 93 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsLayoutItem::isEmpty +736 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7f542ef3b930) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16) + QGraphicsObject (0x0x7f542ef3b9a0) 0 + primary-for QGraphicsWidget (0x0x7f542ef3b930) + QObject (0x0x7f542efe3b40) 0 + primary-for QGraphicsObject (0x0x7f542ef3b9a0) + QGraphicsItem (0x0x7f542efe3ba0) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376) + QGraphicsLayoutItem (0x0x7f542efe3c00) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7f542ec4f120) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsLayoutItem::isEmpty +856 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7f542ef47bc8) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16) + QGraphicsWidget (0x0x7f542ef3baf0) 0 + primary-for QGraphicsProxyWidget (0x0x7f542ef47bc8) + QGraphicsObject (0x0x7f542ef3bb60) 0 + primary-for QGraphicsWidget (0x0x7f542ef3baf0) + QObject (0x0x7f542ec4f000) 0 + primary-for QGraphicsObject (0x0x7f542ef3bb60) + QGraphicsItem (0x0x7f542ec4f060) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496) + QGraphicsLayoutItem (0x0x7f542ec4f0c0) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7f542ec4f480) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems +272 (int (*)(...))QGraphicsScene::focusNextPrevChild + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7f542ef47dd0) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16) + QObject (0x0x7f542ec4f420) 0 + primary-for QGraphicsScene (0x0x7f542ef47dd0) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneEvent (0x0x7f542eca3820) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16) + QEvent (0x0x7f542ecb47e0) 0 + primary-for QGraphicsSceneEvent (0x0x7f542eca3820) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMouseEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMouseEvent (0x0x7f542eca3888) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16) + QGraphicsSceneEvent (0x0x7f542eca38f0) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7f542eca3888) + QEvent (0x0x7f542ecb49c0) 0 + primary-for QGraphicsSceneEvent (0x0x7f542eca38f0) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneWheelEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneWheelEvent (0x0x7f542eca3958) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16) + QGraphicsSceneEvent (0x0x7f542eca39c0) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7f542eca3958) + QEvent (0x0x7f542ecb4ae0) 0 + primary-for QGraphicsSceneEvent (0x0x7f542eca39c0) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneContextMenuEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7f542eca3a28) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16) + QGraphicsSceneEvent (0x0x7f542eca3a90) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7f542eca3a28) + QEvent (0x0x7f542ecb4c00) 0 + primary-for QGraphicsSceneEvent (0x0x7f542eca3a90) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHoverEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHoverEvent (0x0x7f542eca3af8) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16) + QGraphicsSceneEvent (0x0x7f542eca3b60) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7f542eca3af8) + QEvent (0x0x7f542ecb4d20) 0 + primary-for QGraphicsSceneEvent (0x0x7f542eca3b60) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHelpEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHelpEvent (0x0x7f542eca3bc8) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16) + QGraphicsSceneEvent (0x0x7f542eca3c30) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7f542eca3bc8) + QEvent (0x0x7f542ecb4e40) 0 + primary-for QGraphicsSceneEvent (0x0x7f542eca3c30) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneDragDropEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneDragDropEvent (0x0x7f542eca3c98) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16) + QGraphicsSceneEvent (0x0x7f542eca3d00) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7f542eca3c98) + QEvent (0x0x7f542ecb4f60) 0 + primary-for QGraphicsSceneEvent (0x0x7f542eca3d00) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneResizeEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneResizeEvent (0x0x7f542eca3d68) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16) + QGraphicsSceneEvent (0x0x7f542eca3dd0) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7f542eca3d68) + QEvent (0x0x7f542ed2e060) 0 + primary-for QGraphicsSceneEvent (0x0x7f542eca3dd0) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMoveEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMoveEvent (0x0x7f542eca3e38) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16) + QGraphicsSceneEvent (0x0x7f542eca3ea0) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7f542eca3e38) + QEvent (0x0x7f542ed2e180) 0 + primary-for QGraphicsSceneEvent (0x0x7f542eca3ea0) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7f542ed2e300) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7f542eca3f08) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16) + QObject (0x0x7f542ed2e2a0) 0 + primary-for QGraphicsTransform (0x0x7f542eca3f08) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7f542ed2e4e0) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7f542eca3f70) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16) + QGraphicsTransform (0x0x7f542eca37b8) 0 + primary-for QGraphicsScale (0x0x7f542eca3f70) + QObject (0x0x7f542ed2e480) 0 + primary-for QGraphicsTransform (0x0x7f542eca37b8) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7f542ed2e6c0) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7f542ed4a000) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16) + QGraphicsTransform (0x0x7f542ed4a068) 0 + primary-for QGraphicsRotation (0x0x7f542ed4a000) + QObject (0x0x7f542ed2e660) 0 + primary-for QGraphicsTransform (0x0x7f542ed4a068) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7f542ed2e900) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QScrollArea::scrollContentsBy +464 (int (*)(...))QScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QScrollArea) +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +496 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=40 align=8 + base size=40 base align=8 +QScrollArea (0x0x7f542ed4a0d0) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16) + QAbstractScrollArea (0x0x7f542ed4a138) 0 + primary-for QScrollArea (0x0x7f542ed4a0d0) + QFrame (0x0x7f542ed4a1a0) 0 + primary-for QAbstractScrollArea (0x0x7f542ed4a138) + QWidget (0x0x7f542ec6a380) 0 + primary-for QFrame (0x0x7f542ed4a1a0) + QObject (0x0x7f542ed2e840) 0 + primary-for QWidget (0x0x7f542ec6a380) + QPaintDevice (0x0x7f542ed2e8a0) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 488) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7f542ed2eb40) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QGraphicsView::setupViewport +448 (int (*)(...))QGraphicsView::viewportEvent +456 (int (*)(...))QGraphicsView::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QGraphicsView::drawBackground +480 (int (*)(...))QGraphicsView::drawForeground +488 (int (*)(...))QGraphicsView::drawItems +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QGraphicsView) +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +520 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=40 align=8 + base size=40 base align=8 +QGraphicsView (0x0x7f542ed4a208) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16) + QAbstractScrollArea (0x0x7f542ed4a270) 0 + primary-for QGraphicsView (0x0x7f542ed4a208) + QFrame (0x0x7f542ed4a2d8) 0 + primary-for QAbstractScrollArea (0x0x7f542ed4a270) + QWidget (0x0x7f542ec6a3f0) 0 + primary-for QFrame (0x0x7f542ed4a2d8) + QObject (0x0x7f542ed2ea80) 0 + primary-for QWidget (0x0x7f542ec6a3f0) + QPaintDevice (0x0x7f542ed2eae0) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 512) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7f542ed90a20) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QGroupBox::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QGroupBox) +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +464 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=40 align=8 + base size=40 base align=8 +QGroupBox (0x0x7f542ed4a5b0) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16) + QWidget (0x0x7f542ec6ab60) 0 + primary-for QGroupBox (0x0x7f542ed4a5b0) + QObject (0x0x7f542ed90960) 0 + primary-for QWidget (0x0x7f542ec6ab60) + QPaintDevice (0x0x7f542ed909c0) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 456) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7f542ed90c60) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QHeaderView::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QHeaderView::viewportEvent +456 (int (*)(...))QHeaderView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QHeaderView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QHeaderView::visualRect +504 (int (*)(...))QHeaderView::scrollTo +512 (int (*)(...))QHeaderView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QHeaderView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QHeaderView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QHeaderView::dataChanged +584 (int (*)(...))QHeaderView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QHeaderView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QHeaderView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QHeaderView::moveCursor +704 (int (*)(...))QHeaderView::horizontalOffset +712 (int (*)(...))QHeaderView::verticalOffset +720 (int (*)(...))QHeaderView::isIndexHidden +728 (int (*)(...))QHeaderView::setSelection +736 (int (*)(...))QHeaderView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QHeaderView::paintSection +792 (int (*)(...))QHeaderView::sectionSizeFromContents +800 (int (*)(...))QHeaderView::initStyleOptionForIndex +808 (int (*)(...))QHeaderView::initStyleOption +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QHeaderView) +832 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +840 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=40 align=8 + base size=40 base align=8 +QHeaderView (0x0x7f542ed4a618) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16) + QAbstractItemView (0x0x7f542ed4a680) 0 + primary-for QHeaderView (0x0x7f542ed4a618) + QAbstractScrollArea (0x0x7f542ed4a6e8) 0 + primary-for QAbstractItemView (0x0x7f542ed4a680) + QFrame (0x0x7f542ed4a750) 0 + primary-for QAbstractScrollArea (0x0x7f542ed4a6e8) + QWidget (0x0x7f542ec6abd0) 0 + primary-for QFrame (0x0x7f542ed4a750) + QObject (0x0x7f542ed90ba0) 0 + primary-for QWidget (0x0x7f542ec6abd0) + QPaintDevice (0x0x7f542ed90c00) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 832) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7f542e9fe120) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QLineEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QLineEdit::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QLineEdit::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QLineEdit) +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +464 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=40 align=8 + base size=40 base align=8 +QLineEdit (0x0x7f542ed4a7b8) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16) + QWidget (0x0x7f542ec6ae70) 0 + primary-for QLineEdit (0x0x7f542ed4a7b8) + QObject (0x0x7f542e9fe060) 0 + primary-for QWidget (0x0x7f542ec6ae70) + QPaintDevice (0x0x7f542e9fe0c0) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 456) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7f542e9fe4e0) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=40 align=8 + base size=40 base align=8 +QInputDialog (0x0x7f542ed4a820) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16) + QDialog (0x0x7f542ed4a888) 0 + primary-for QInputDialog (0x0x7f542ed4a820) + QWidget (0x0x7f542ea081c0) 0 + primary-for QDialog (0x0x7f542ed4a888) + QObject (0x0x7f542e9fe420) 0 + primary-for QWidget (0x0x7f542ea081c0) + QPaintDevice (0x0x7f542e9fe480) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7f542e9fe9c0) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7f542ed4aa28) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f542ed4aa90) 0 + primary-for QItemDelegate (0x0x7f542ed4aa28) + QObject (0x0x7f542e9fe960) 0 + primary-for QAbstractItemDelegate (0x0x7f542ed4aa90) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7f542e9feb40) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7f542e9feea0) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7f542ea7f3c0) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=40 align=8 + base size=40 base align=8 +QKeySequenceEdit (0x0x7f542ed4abc8) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16) + QWidget (0x0x7f542ea084d0) 0 + primary-for QKeySequenceEdit (0x0x7f542ed4abc8) + QObject (0x0x7f542ea7f300) 0 + primary-for QWidget (0x0x7f542ea084d0) + QPaintDevice (0x0x7f542ea7f360) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7f542ea7f600) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QLabel) +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +464 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=40 align=8 + base size=40 base align=8 +QLabel (0x0x7f542ed4ac30) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16) + QFrame (0x0x7f542ed4ac98) 0 + primary-for QLabel (0x0x7f542ed4ac30) + QWidget (0x0x7f542ea08540) 0 + primary-for QFrame (0x0x7f542ed4ac98) + QObject (0x0x7f542ea7f540) 0 + primary-for QWidget (0x0x7f542ea08540) + QPaintDevice (0x0x7f542ea7f5a0) 16 + vptr=((& QLabel::_ZTV6QLabel) + 456) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7f542ea7f900) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QLCDNumber) +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +464 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=40 align=8 + base size=40 base align=8 +QLCDNumber (0x0x7f542ed4ad00) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16) + QFrame (0x0x7f542ed4ad68) 0 + primary-for QLCDNumber (0x0x7f542ed4ad00) + QWidget (0x0x7f542ea085b0) 0 + primary-for QFrame (0x0x7f542ed4ad68) + QObject (0x0x7f542ea7f840) 0 + primary-for QWidget (0x0x7f542ea085b0) + QPaintDevice (0x0x7f542ea7f8a0) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 456) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7f542ea7fcc0) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QListView) +800 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +808 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=40 align=8 + base size=40 base align=8 +QListView (0x0x7f542ed4add0) 0 + vptr=((& QListView::_ZTV9QListView) + 16) + QAbstractItemView (0x0x7f542ed4ae38) 0 + primary-for QListView (0x0x7f542ed4add0) + QAbstractScrollArea (0x0x7f542ed4aea0) 0 + primary-for QAbstractItemView (0x0x7f542ed4ae38) + QFrame (0x0x7f542ed4af08) 0 + primary-for QAbstractScrollArea (0x0x7f542ed4aea0) + QWidget (0x0x7f542ea08930) 0 + primary-for QFrame (0x0x7f542ed4af08) + QObject (0x0x7f542ea7fc00) 0 + primary-for QWidget (0x0x7f542ea08930) + QPaintDevice (0x0x7f542ea7fc60) 16 + vptr=((& QListView::_ZTV9QListView) + 800) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::data +48 (int (*)(...))QListWidgetItem::setData +56 (int (*)(...))QListWidgetItem::operator< +64 (int (*)(...))QListWidgetItem::read +72 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=40 align=8 + base size=36 base align=8 +QListWidgetItem (0x0x7f542eadb240) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7f542eadbcc0) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QListWidget::setModel +480 (int (*)(...))QListWidget::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))QListWidget::mimeTypes +792 (int (*)(...))QListWidget::mimeData +800 (int (*)(...))QListWidget::dropMimeData +808 (int (*)(...))QListWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QListWidget) +832 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +840 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=40 align=8 + base size=40 base align=8 +QListWidget (0x0x7f542ed4af70) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16) + QListView (0x0x7f542eaf9000) 0 + primary-for QListWidget (0x0x7f542ed4af70) + QAbstractItemView (0x0x7f542eaf9068) 0 + primary-for QListView (0x0x7f542eaf9000) + QAbstractScrollArea (0x0x7f542eaf90d0) 0 + primary-for QAbstractItemView (0x0x7f542eaf9068) + QFrame (0x0x7f542eaf9138) 0 + primary-for QAbstractScrollArea (0x0x7f542eaf90d0) + QWidget (0x0x7f542ea08f50) 0 + primary-for QFrame (0x0x7f542eaf9138) + QObject (0x0x7f542eadbc00) 0 + primary-for QWidget (0x0x7f542ea08f50) + QPaintDevice (0x0x7f542eadbc60) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 832) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7f542eb121e0) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=40 align=8 + base size=40 base align=8 +QMainWindow (0x0x7f542eaf91a0) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16) + QWidget (0x0x7f542eb16000) 0 + primary-for QMainWindow (0x0x7f542eaf91a0) + QObject (0x0x7f542eb12120) 0 + primary-for QWidget (0x0x7f542eb16000) + QPaintDevice (0x0x7f542eb12180) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7f542eb128a0) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QMdiArea::setupViewport +448 (int (*)(...))QMdiArea::viewportEvent +456 (int (*)(...))QMdiArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI8QMdiArea) +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +496 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=40 align=8 + base size=40 base align=8 +QMdiArea (0x0x7f542eaf9340) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16) + QAbstractScrollArea (0x0x7f542eaf93a8) 0 + primary-for QMdiArea (0x0x7f542eaf9340) + QFrame (0x0x7f542eaf9410) 0 + primary-for QAbstractScrollArea (0x0x7f542eaf93a8) + QWidget (0x0x7f542eb16310) 0 + primary-for QFrame (0x0x7f542eaf9410) + QObject (0x0x7f542eb127e0) 0 + primary-for QWidget (0x0x7f542eb16310) + QPaintDevice (0x0x7f542eb12840) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 488) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7f542eb12f60) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=40 align=8 + base size=40 base align=8 +QMdiSubWindow (0x0x7f542eaf95b0) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16) + QWidget (0x0x7f542eb16690) 0 + primary-for QMdiSubWindow (0x0x7f542eaf95b0) + QObject (0x0x7f542eb12ea0) 0 + primary-for QWidget (0x0x7f542eb16690) + QPaintDevice (0x0x7f542eb12f00) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7f542eb914e0) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))QMenu::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QMenu) +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +464 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=40 align=8 + base size=40 base align=8 +QMenu (0x0x7f542eaf9750) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16) + QWidget (0x0x7f542eb168c0) 0 + primary-for QMenu (0x0x7f542eaf9750) + QObject (0x0x7f542eb91420) 0 + primary-for QWidget (0x0x7f542eb168c0) + QPaintDevice (0x0x7f542eb91480) 16 + vptr=((& QMenu::_ZTV5QMenu) + 456) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7f542eb918a0) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMenuBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QMenuBar) +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +464 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=40 align=8 + base size=40 base align=8 +QMenuBar (0x0x7f542eaf97b8) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16) + QWidget (0x0x7f542eb16930) 0 + primary-for QMenuBar (0x0x7f542eaf97b8) + QObject (0x0x7f542eb917e0) 0 + primary-for QWidget (0x0x7f542eb16930) + QPaintDevice (0x0x7f542eb91840) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 456) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7f542eb91ba0) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=40 align=8 + base size=40 base align=8 +QMessageBox (0x0x7f542eaf9820) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16) + QDialog (0x0x7f542eaf9888) 0 + primary-for QMessageBox (0x0x7f542eaf9820) + QWidget (0x0x7f542eb169a0) 0 + primary-for QDialog (0x0x7f542eaf9888) + QObject (0x0x7f542eb91ae0) 0 + primary-for QWidget (0x0x7f542eb169a0) + QPaintDevice (0x0x7f542eb91b40) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7f542e819420) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7f542e819480) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextEdit::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI9QTextEdit) +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +536 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=40 align=8 + base size=40 base align=8 +QTextEdit (0x0x7f542eaf9a28) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16) + QAbstractScrollArea (0x0x7f542eaf9a90) 0 + primary-for QTextEdit (0x0x7f542eaf9a28) + QFrame (0x0x7f542eaf9af8) 0 + primary-for QAbstractScrollArea (0x0x7f542eaf9a90) + QWidget (0x0x7f542ebe2d20) 0 + primary-for QFrame (0x0x7f542eaf9af8) + QObject (0x0x7f542e819360) 0 + primary-for QWidget (0x0x7f542ebe2d20) + QPaintDevice (0x0x7f542e8193c0) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 528) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7f542e819cc0) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QPlainTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QPlainTextEdit::loadResource +480 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +488 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +496 (int (*)(...))QPlainTextEdit::insertFromMimeData +504 (int (*)(...))QPlainTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI14QPlainTextEdit) +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +536 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=40 align=8 + base size=40 base align=8 +QPlainTextEdit (0x0x7f542eaf9c98) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16) + QAbstractScrollArea (0x0x7f542eaf9d00) 0 + primary-for QPlainTextEdit (0x0x7f542eaf9c98) + QFrame (0x0x7f542eaf9d68) 0 + primary-for QAbstractScrollArea (0x0x7f542eaf9d00) + QWidget (0x0x7f542e82c0e0) 0 + primary-for QFrame (0x0x7f542eaf9d68) + QObject (0x0x7f542e819c00) 0 + primary-for QWidget (0x0x7f542e82c0e0) + QPaintDevice (0x0x7f542e819c60) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 528) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7f542e896240) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7f542eaf9dd0) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16) + QAbstractTextDocumentLayout (0x0x7f542eaf9e38) 0 + primary-for QPlainTextDocumentLayout (0x0x7f542eaf9dd0) + QObject (0x0x7f542e8961e0) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f542eaf9e38) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7f542e896480) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))QProgressBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI12QProgressBar) +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +472 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=40 align=8 + base size=40 base align=8 +QProgressBar (0x0x7f542eaf9ea0) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16) + QWidget (0x0x7f542e82c230) 0 + primary-for QProgressBar (0x0x7f542eaf9ea0) + QObject (0x0x7f542e8963c0) 0 + primary-for QWidget (0x0x7f542e82c230) + QPaintDevice (0x0x7f542e896420) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 464) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7f542e896780) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=40 align=8 + base size=40 base align=8 +QProgressDialog (0x0x7f542eaf9f08) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16) + QDialog (0x0x7f542eaf9f70) 0 + primary-for QProgressDialog (0x0x7f542eaf9f08) + QWidget (0x0x7f542e82c380) 0 + primary-for QDialog (0x0x7f542eaf9f70) + QObject (0x0x7f542e8966c0) 0 + primary-for QWidget (0x0x7f542e82c380) + QPaintDevice (0x0x7f542e896720) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7f542e896960) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7f542e8c0000) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16) + QCommonStyle (0x0x7f542e8c0068) 0 + primary-for QProxyStyle (0x0x7f542e8c0000) + QStyle (0x0x7f542e8c00d0) 0 + primary-for QCommonStyle (0x0x7f542e8c0068) + QObject (0x0x7f542e896900) 0 + primary-for QStyle (0x0x7f542e8c00d0) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7f542e896ba0) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QRadioButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI12QRadioButton) +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +488 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=40 align=8 + base size=40 base align=8 +QRadioButton (0x0x7f542e8c0138) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16) + QAbstractButton (0x0x7f542e8c01a0) 0 + primary-for QRadioButton (0x0x7f542e8c0138) + QWidget (0x0x7f542e82c3f0) 0 + primary-for QAbstractButton (0x0x7f542e8c01a0) + QObject (0x0x7f542e896ae0) 0 + primary-for QWidget (0x0x7f542e82c3f0) + QPaintDevice (0x0x7f542e896b40) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 480) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7f542e896de0) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))QScrollBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QScrollBar) +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +472 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=40 align=8 + base size=40 base align=8 +QScrollBar (0x0x7f542e8c0208) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16) + QAbstractSlider (0x0x7f542e8c0270) 0 + primary-for QScrollBar (0x0x7f542e8c0208) + QWidget (0x0x7f542e82c460) 0 + primary-for QAbstractSlider (0x0x7f542e8c0270) + QObject (0x0x7f542e896d20) 0 + primary-for QWidget (0x0x7f542e82c460) + QPaintDevice (0x0x7f542e896d80) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 464) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7f542e896f60) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7f542e8f3300) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7f542e8c02d8) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16) + QObject (0x0x7f542e8f32a0) 0 + primary-for QScroller (0x0x7f542e8c02d8) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7f542e8f3600) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=40 align=8 + base size=40 base align=8 +QSizeGrip (0x0x7f542e8c0340) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16) + QWidget (0x0x7f542e8f07e0) 0 + primary-for QSizeGrip (0x0x7f542e8c0340) + QObject (0x0x7f542e8f3540) 0 + primary-for QWidget (0x0x7f542e8f07e0) + QPaintDevice (0x0x7f542e8f35a0) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7f542e8f3840) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QSpinBox::valueFromText +488 (int (*)(...))QSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI8QSpinBox) +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +520 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=40 align=8 + base size=40 base align=8 +QSpinBox (0x0x7f542e8c03a8) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16) + QAbstractSpinBox (0x0x7f542e8c0410) 0 + primary-for QSpinBox (0x0x7f542e8c03a8) + QWidget (0x0x7f542e8f0850) 0 + primary-for QAbstractSpinBox (0x0x7f542e8c0410) + QObject (0x0x7f542e8f3780) 0 + primary-for QWidget (0x0x7f542e8f0850) + QPaintDevice (0x0x7f542e8f37e0) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 512) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7f542e8f3a80) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QDoubleSpinBox::valueFromText +488 (int (*)(...))QDoubleSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI14QDoubleSpinBox) +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +520 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=40 align=8 + base size=40 base align=8 +QDoubleSpinBox (0x0x7f542e8c0478) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16) + QAbstractSpinBox (0x0x7f542e8c04e0) 0 + primary-for QDoubleSpinBox (0x0x7f542e8c0478) + QWidget (0x0x7f542e8f08c0) 0 + primary-for QAbstractSpinBox (0x0x7f542e8c04e0) + QObject (0x0x7f542e8f39c0) 0 + primary-for QWidget (0x0x7f542e8f08c0) + QPaintDevice (0x0x7f542e8f3a20) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 512) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7f542e8f3cc0) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=40 align=8 + base size=40 base align=8 +QSplashScreen (0x0x7f542e8c0548) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16) + QWidget (0x0x7f542e8f0930) 0 + primary-for QSplashScreen (0x0x7f542e8c0548) + QObject (0x0x7f542e8f3c00) 0 + primary-for QWidget (0x0x7f542e8f0930) + QPaintDevice (0x0x7f542e8f3c60) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7f542e8f3f00) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QSplitter::createHandle +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QSplitter) +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +472 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=40 align=8 + base size=40 base align=8 +QSplitter (0x0x7f542e8c05b0) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16) + QFrame (0x0x7f542e8c0618) 0 + primary-for QSplitter (0x0x7f542e8c05b0) + QWidget (0x0x7f542e8f09a0) 0 + primary-for QFrame (0x0x7f542e8c0618) + QObject (0x0x7f542e8f3e40) 0 + primary-for QWidget (0x0x7f542e8f09a0) + QPaintDevice (0x0x7f542e8f3ea0) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 464) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7f542e958180) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=40 align=8 + base size=40 base align=8 +QSplitterHandle (0x0x7f542e8c0680) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16) + QWidget (0x0x7f542e8f0a10) 0 + primary-for QSplitterHandle (0x0x7f542e8c0680) + QObject (0x0x7f542e9580c0) 0 + primary-for QWidget (0x0x7f542e8f0a10) + QPaintDevice (0x0x7f542e958120) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7f542e9583c0) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QStackedLayout::addItem +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QStackedLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QStackedLayout::setGeometry +184 (int (*)(...))QStackedLayout::itemAt +192 (int (*)(...))QStackedLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QStackedLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QStackedLayout::sizeHint +264 (int (*)(...))QStackedLayout::hasHeightForWidth +272 (int (*)(...))QStackedLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI14QStackedLayout) +296 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +304 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +312 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +320 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +344 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +376 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7f542e8c06e8) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16) + QLayout (0x0x7f542e8f0a80) 0 + primary-for QStackedLayout (0x0x7f542e8c06e8) + QObject (0x0x7f542e958300) 0 + primary-for QLayout (0x0x7f542e8f0a80) + QLayoutItem (0x0x7f542e958360) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 296) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7f542e9586c0) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI14QStackedWidget) +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +464 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=40 align=8 + base size=40 base align=8 +QStackedWidget (0x0x7f542e8c0750) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16) + QFrame (0x0x7f542e8c07b8) 0 + primary-for QStackedWidget (0x0x7f542e8c0750) + QWidget (0x0x7f542e8f0bd0) 0 + primary-for QFrame (0x0x7f542e8c07b8) + QObject (0x0x7f542e958600) 0 + primary-for QWidget (0x0x7f542e8f0bd0) + QPaintDevice (0x0x7f542e958660) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 456) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7f542e958900) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=40 align=8 + base size=40 base align=8 +QStatusBar (0x0x7f542e8c0820) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16) + QWidget (0x0x7f542e8f0c40) 0 + primary-for QStatusBar (0x0x7f542e8c0820) + QObject (0x0x7f542e958840) 0 + primary-for QWidget (0x0x7f542e8f0c40) + QPaintDevice (0x0x7f542e9588a0) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7f542e958ae0) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7f542e8c0888) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f542e8c08f0) 0 + primary-for QStyledItemDelegate (0x0x7f542e8c0888) + QObject (0x0x7f542e958a80) 0 + primary-for QAbstractItemDelegate (0x0x7f542e8c08f0) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7f542e958c60) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7f542e8c0958) 0 + QPainter (0x0x7f542e958cc0) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7f542e9a15a0) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7f542e8c09c0) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16) + QObject (0x0x7f542e9a1540) 0 + primary-for QStylePlugin (0x0x7f542e8c09c0) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7f542e9a16c0) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7f542e8c0a28) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16) + QObject (0x0x7f542e9a1660) 0 + primary-for QSystemTrayIcon (0x0x7f542e8c0a28) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7f542e9a19c0) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableView::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI10QTableView) +800 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +808 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=40 align=8 + base size=40 base align=8 +QTableView (0x0x7f542e8c0a90) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16) + QAbstractItemView (0x0x7f542e8c0af8) 0 + primary-for QTableView (0x0x7f542e8c0a90) + QAbstractScrollArea (0x0x7f542e8c0b60) 0 + primary-for QAbstractItemView (0x0x7f542e8c0af8) + QFrame (0x0x7f542e8c0bc8) 0 + primary-for QAbstractScrollArea (0x0x7f542e8c0b60) + QWidget (0x0x7f542e9b20e0) 0 + primary-for QFrame (0x0x7f542e8c0bc8) + QObject (0x0x7f542e9a1900) 0 + primary-for QWidget (0x0x7f542e9b20e0) + QPaintDevice (0x0x7f542e9a1960) 16 + vptr=((& QTableView::_ZTV10QTableView) + 800) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7f542e9a1b40) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=64 align=8 + base size=60 base align=8 +QTableWidgetItem (0x0x7f542e9a1f60) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7f542e6352a0) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableWidget::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))QTableWidget::mimeTypes +792 (int (*)(...))QTableWidget::mimeData +800 (int (*)(...))QTableWidget::dropMimeData +808 (int (*)(...))QTableWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI12QTableWidget) +832 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +840 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=40 align=8 + base size=40 base align=8 +QTableWidget (0x0x7f542e9f14e0) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16) + QTableView (0x0x7f542e9f1548) 0 + primary-for QTableWidget (0x0x7f542e9f14e0) + QAbstractItemView (0x0x7f542e9f15b0) 0 + primary-for QTableView (0x0x7f542e9f1548) + QAbstractScrollArea (0x0x7f542e9f1618) 0 + primary-for QAbstractItemView (0x0x7f542e9f15b0) + QFrame (0x0x7f542e9f1680) 0 + primary-for QAbstractScrollArea (0x0x7f542e9f1618) + QWidget (0x0x7f542eb163f0) 0 + primary-for QFrame (0x0x7f542e9f1680) + QObject (0x0x7f542e6351e0) 0 + primary-for QWidget (0x0x7f542eb163f0) + QPaintDevice (0x0x7f542e635240) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 832) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7f542e635660) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 79 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextBrowser::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))QTextBrowser::doSetSource +552 (int (*)(...))-16 +560 (int (*)(...))(& _ZTI12QTextBrowser) +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +576 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +624 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=40 align=8 + base size=40 base align=8 +QTextBrowser (0x0x7f542e9f16e8) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16) + QTextEdit (0x0x7f542e9f1750) 0 + primary-for QTextBrowser (0x0x7f542e9f16e8) + QAbstractScrollArea (0x0x7f542e9f17b8) 0 + primary-for QTextEdit (0x0x7f542e9f1750) + QFrame (0x0x7f542e9f1820) 0 + primary-for QAbstractScrollArea (0x0x7f542e9f17b8) + QWidget (0x0x7f542e9b2310) 0 + primary-for QFrame (0x0x7f542e9f1820) + QObject (0x0x7f542e6355a0) 0 + primary-for QWidget (0x0x7f542e9b2310) + QPaintDevice (0x0x7f542e635600) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 568) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7f542e6358a0) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QToolBar) +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +464 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=40 align=8 + base size=40 base align=8 +QToolBar (0x0x7f542e9f1888) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16) + QWidget (0x0x7f542e9b2380) 0 + primary-for QToolBar (0x0x7f542e9f1888) + QObject (0x0x7f542e6357e0) 0 + primary-for QWidget (0x0x7f542e9b2380) + QPaintDevice (0x0x7f542e635840) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 456) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7f542e635d20) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QToolBox::itemInserted +448 (int (*)(...))QToolBox::itemRemoved +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI8QToolBox) +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +480 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=40 align=8 + base size=40 base align=8 +QToolBox (0x0x7f542e9f18f0) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16) + QFrame (0x0x7f542e9f1958) 0 + primary-for QToolBox (0x0x7f542e9f18f0) + QWidget (0x0x7f542e9b23f0) 0 + primary-for QFrame (0x0x7f542e9f1958) + QObject (0x0x7f542e635c60) 0 + primary-for QWidget (0x0x7f542e9b23f0) + QPaintDevice (0x0x7f542e635cc0) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 472) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7f542e6900c0) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))QToolButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QToolButton) +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +488 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=40 align=8 + base size=40 base align=8 +QToolButton (0x0x7f542e9f19c0) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16) + QAbstractButton (0x0x7f542e9f1a28) 0 + primary-for QToolButton (0x0x7f542e9f19c0) + QWidget (0x0x7f542e9b2460) 0 + primary-for QAbstractButton (0x0x7f542e9f1a28) + QObject (0x0x7f542e690000) 0 + primary-for QWidget (0x0x7f542e9b2460) + QPaintDevice (0x0x7f542e690060) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 480) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7f542e690300) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7f542e690480) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeView::setModel +480 (int (*)(...))QTreeView::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI9QTreeView) +816 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +824 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=40 align=8 + base size=40 base align=8 +QTreeView (0x0x7f542e9f1a90) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16) + QAbstractItemView (0x0x7f542e9f1af8) 0 + primary-for QTreeView (0x0x7f542e9f1a90) + QAbstractScrollArea (0x0x7f542e9f1b60) 0 + primary-for QAbstractItemView (0x0x7f542e9f1af8) + QFrame (0x0x7f542e9f1bc8) 0 + primary-for QAbstractScrollArea (0x0x7f542e9f1b60) + QWidget (0x0x7f542e9b2620) 0 + primary-for QFrame (0x0x7f542e9f1bc8) + QObject (0x0x7f542e6903c0) 0 + primary-for QWidget (0x0x7f542e9b2620) + QPaintDevice (0x0x7f542e690420) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 816) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7f542e690600) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=96 align=8 + base size=92 base align=8 +QTreeWidgetItem (0x0x7f542e690cc0) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7f542e78bae0) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 114 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeWidget::setModel +480 (int (*)(...))QTreeWidget::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))QTreeWidget::mimeTypes +808 (int (*)(...))QTreeWidget::mimeData +816 (int (*)(...))QTreeWidget::dropMimeData +824 (int (*)(...))QTreeWidget::supportedDropActions +832 (int (*)(...))-16 +840 (int (*)(...))(& _ZTI11QTreeWidget) +848 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +856 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +896 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +904 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=40 align=8 + base size=40 base align=8 +QTreeWidget (0x0x7f542e711f08) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16) + QTreeView (0x0x7f542e711f70) 0 + primary-for QTreeWidget (0x0x7f542e711f08) + QAbstractItemView (0x0x7f542e711618) 0 + primary-for QTreeView (0x0x7f542e711f70) + QAbstractScrollArea (0x0x7f542e711ea0) 0 + primary-for QAbstractItemView (0x0x7f542e711618) + QFrame (0x0x7f542e79b000) 0 + primary-for QAbstractScrollArea (0x0x7f542e711ea0) + QWidget (0x0x7f542e6f23f0) 0 + primary-for QFrame (0x0x7f542e79b000) + QObject (0x0x7f542e78ba20) 0 + primary-for QWidget (0x0x7f542e6f23f0) + QPaintDevice (0x0x7f542e78ba80) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 848) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7f542e7c0120) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QUndoView) +800 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +808 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=40 align=8 + base size=40 base align=8 +QUndoView (0x0x7f542e79b208) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16) + QListView (0x0x7f542e79b270) 0 + primary-for QUndoView (0x0x7f542e79b208) + QAbstractItemView (0x0x7f542e79b2d8) 0 + primary-for QListView (0x0x7f542e79b270) + QAbstractScrollArea (0x0x7f542e79b340) 0 + primary-for QAbstractItemView (0x0x7f542e79b2d8) + QFrame (0x0x7f542e79b3a8) 0 + primary-for QAbstractScrollArea (0x0x7f542e79b340) + QWidget (0x0x7f542e6f2540) 0 + primary-for QFrame (0x0x7f542e79b3a8) + QObject (0x0x7f542e7c0060) 0 + primary-for QWidget (0x0x7f542e6f2540) + QPaintDevice (0x0x7f542e7c00c0) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 800) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7f542e7c02a0) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7f542e7c0360) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7f542e79b410) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16) + QAction (0x0x7f542e79b478) 0 + primary-for QWidgetAction (0x0x7f542e79b410) + QObject (0x0x7f542e7c0300) 0 + primary-for QAction (0x0x7f542e79b478) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7f542e7c05a0) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=40 align=8 + base size=40 base align=8 +QWizard (0x0x7f542e79b4e0) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16) + QDialog (0x0x7f542e79b548) 0 + primary-for QWizard (0x0x7f542e79b4e0) + QWidget (0x0x7f542e6f25b0) 0 + primary-for QDialog (0x0x7f542e79b548) + QObject (0x0x7f542e7c04e0) 0 + primary-for QWidget (0x0x7f542e6f25b0) + QPaintDevice (0x0x7f542e7c0540) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7f542e7c0d20) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=40 align=8 + base size=40 base align=8 +QWizardPage (0x0x7f542e79b6e8) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16) + QWidget (0x0x7f542e7db770) 0 + primary-for QWizardPage (0x0x7f542e79b6e8) + QObject (0x0x7f542e7c0c60) 0 + primary-for QWidget (0x0x7f542e7db770) + QPaintDevice (0x0x7f542e7c0cc0) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488) + +Vtable for QDesignerCustomWidgetInterface +QDesignerCustomWidgetInterface::_ZTV30QDesignerCustomWidgetInterface: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QDesignerCustomWidgetInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QDesignerCustomWidgetInterface::isInitialized +104 (int (*)(...))QDesignerCustomWidgetInterface::initialize +112 (int (*)(...))QDesignerCustomWidgetInterface::domXml +120 (int (*)(...))QDesignerCustomWidgetInterface::codeTemplate + +Class QDesignerCustomWidgetInterface + size=8 align=8 + base size=8 base align=8 +QDesignerCustomWidgetInterface (0x0x7f542e7c0ea0) 0 nearly-empty + vptr=((& QDesignerCustomWidgetInterface::_ZTV30QDesignerCustomWidgetInterface) + 16) + +Vtable for QDesignerCustomWidgetCollectionInterface +QDesignerCustomWidgetCollectionInterface::_ZTV40QDesignerCustomWidgetCollectionInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI40QDesignerCustomWidgetCollectionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QDesignerCustomWidgetCollectionInterface + size=8 align=8 + base size=8 base align=8 +QDesignerCustomWidgetCollectionInterface (0x0x7f542e43d3c0) 0 nearly-empty + vptr=((& QDesignerCustomWidgetCollectionInterface::_ZTV40QDesignerCustomWidgetCollectionInterface) + 16) + +Class QDomImplementation + size=8 align=8 + base size=8 base align=8 +QDomImplementation (0x0x7f542e43d7e0) 0 + +Class QDomNode + size=8 align=8 + base size=8 base align=8 +QDomNode (0x0x7f542e43d840) 0 + +Class QDomNodeList + size=8 align=8 + base size=8 base align=8 +QDomNodeList (0x0x7f542e43d8a0) 0 + +Class QDomDocumentType + size=8 align=8 + base size=8 base align=8 +QDomDocumentType (0x0x7f542e43c478) 0 + QDomNode (0x0x7f542e43da80) 0 + +Class QDomDocument + size=8 align=8 + base size=8 base align=8 +QDomDocument (0x0x7f542e43c4e0) 0 + QDomNode (0x0x7f542e43db40) 0 + +Class QDomNamedNodeMap + size=8 align=8 + base size=8 base align=8 +QDomNamedNodeMap (0x0x7f542e43dc00) 0 + +Class QDomDocumentFragment + size=8 align=8 + base size=8 base align=8 +QDomDocumentFragment (0x0x7f542e43c548) 0 + QDomNode (0x0x7f542e43dd80) 0 + +Class QDomCharacterData + size=8 align=8 + base size=8 base align=8 +QDomCharacterData (0x0x7f542e43c5b0) 0 + QDomNode (0x0x7f542e43de40) 0 + +Class QDomAttr + size=8 align=8 + base size=8 base align=8 +QDomAttr (0x0x7f542e43c618) 0 + QDomNode (0x0x7f542e43dea0) 0 + +Class QDomElement + size=8 align=8 + base size=8 base align=8 +QDomElement (0x0x7f542e43c680) 0 + QDomNode (0x0x7f542e43df60) 0 + +Class QDomText + size=8 align=8 + base size=8 base align=8 +QDomText (0x0x7f542e43c6e8) 0 + QDomCharacterData (0x0x7f542e43c750) 0 + QDomNode (0x0x7f542e4a01e0) 0 + +Class QDomComment + size=8 align=8 + base size=8 base align=8 +QDomComment (0x0x7f542e43c7b8) 0 + QDomCharacterData (0x0x7f542e43c820) 0 + QDomNode (0x0x7f542e4a02a0) 0 + +Class QDomCDATASection + size=8 align=8 + base size=8 base align=8 +QDomCDATASection (0x0x7f542e43c888) 0 + QDomText (0x0x7f542e43c8f0) 0 + QDomCharacterData (0x0x7f542e43c958) 0 + QDomNode (0x0x7f542e4a0360) 0 + +Class QDomNotation + size=8 align=8 + base size=8 base align=8 +QDomNotation (0x0x7f542e43c9c0) 0 + QDomNode (0x0x7f542e4a0420) 0 + +Class QDomEntity + size=8 align=8 + base size=8 base align=8 +QDomEntity (0x0x7f542e43ca28) 0 + QDomNode (0x0x7f542e4a04e0) 0 + +Class QDomEntityReference + size=8 align=8 + base size=8 base align=8 +QDomEntityReference (0x0x7f542e43ca90) 0 + QDomNode (0x0x7f542e4a05a0) 0 + +Class QDomProcessingInstruction + size=8 align=8 + base size=8 base align=8 +QDomProcessingInstruction (0x0x7f542e43caf8) 0 + QDomNode (0x0x7f542e4a0660) 0 + +Class QOpenGLBuffer + size=8 align=8 + base size=8 base align=8 +QOpenGLBuffer (0x0x7f542e4a0720) 0 + +Class QOpenGLDebugMessage + size=8 align=8 + base size=8 base align=8 +QOpenGLDebugMessage (0x0x7f542e4a0ba0) 0 + +Class QOpenGLDebugLogger::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLDebugLogger::QPrivateSignal (0x0x7f542e52dba0) 0 empty + +Vtable for QOpenGLDebugLogger +QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLDebugLogger) +16 (int (*)(...))QOpenGLDebugLogger::metaObject +24 (int (*)(...))QOpenGLDebugLogger::qt_metacast +32 (int (*)(...))QOpenGLDebugLogger::qt_metacall +40 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +48 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLDebugLogger + size=16 align=8 + base size=16 base align=8 +QOpenGLDebugLogger (0x0x7f542e56d068) 0 + vptr=((& QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger) + 16) + QObject (0x0x7f542e52db40) 0 + primary-for QOpenGLDebugLogger (0x0x7f542e56d068) + +Vtable for QOpenGLFramebufferObject +QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLFramebufferObject) +16 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject +24 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject + +Class QOpenGLFramebufferObject + size=16 align=8 + base size=16 base align=8 +QOpenGLFramebufferObject (0x0x7f542e52df00) 0 + vptr=((& QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject) + 16) + +Class QOpenGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QOpenGLFramebufferObjectFormat (0x0x7f542e5c61e0) 0 + +Vtable for QOpenGLPaintDevice +QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLPaintDevice) +16 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +24 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +32 (int (*)(...))QOpenGLPaintDevice::devType +40 (int (*)(...))QOpenGLPaintDevice::paintEngine +48 (int (*)(...))QOpenGLPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QOpenGLPaintDevice::ensureActiveTarget + +Class QOpenGLPaintDevice + size=24 align=8 + base size=24 base align=8 +QOpenGLPaintDevice (0x0x7f542e56d0d0) 0 + vptr=((& QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice) + 16) + QPaintDevice (0x0x7f542e5c6240) 0 + primary-for QOpenGLPaintDevice (0x0x7f542e56d0d0) + +Class QOpenGLPixelTransferOptions + size=8 align=8 + base size=8 base align=8 +QOpenGLPixelTransferOptions (0x0x7f542e5c6480) 0 + +Class QOpenGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShader::QPrivateSignal (0x0x7f542e20bb40) 0 empty + +Vtable for QOpenGLShader +QOpenGLShader::_ZTV13QOpenGLShader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLShader) +16 (int (*)(...))QOpenGLShader::metaObject +24 (int (*)(...))QOpenGLShader::qt_metacast +32 (int (*)(...))QOpenGLShader::qt_metacall +40 (int (*)(...))QOpenGLShader::~QOpenGLShader +48 (int (*)(...))QOpenGLShader::~QOpenGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLShader + size=16 align=8 + base size=16 base align=8 +QOpenGLShader (0x0x7f542e213a90) 0 + vptr=((& QOpenGLShader::_ZTV13QOpenGLShader) + 16) + QObject (0x0x7f542e20bae0) 0 + primary-for QOpenGLShader (0x0x7f542e213a90) + +Class QOpenGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShaderProgram::QPrivateSignal (0x0x7f542e24f060) 0 empty + +Vtable for QOpenGLShaderProgram +QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QOpenGLShaderProgram) +16 (int (*)(...))QOpenGLShaderProgram::metaObject +24 (int (*)(...))QOpenGLShaderProgram::qt_metacast +32 (int (*)(...))QOpenGLShaderProgram::qt_metacall +40 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +48 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOpenGLShaderProgram::link + +Class QOpenGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QOpenGLShaderProgram (0x0x7f542e213c30) 0 + vptr=((& QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram) + 16) + QObject (0x0x7f542e24f000) 0 + primary-for QOpenGLShaderProgram (0x0x7f542e213c30) + +Class QOpenGLTexture + size=8 align=8 + base size=8 base align=8 +QOpenGLTexture (0x0x7f542e24f1e0) 0 + +Class QOpenGLTextureBlitter + size=8 align=8 + base size=8 base align=8 +QOpenGLTextureBlitter (0x0x7f542e2e9300) 0 + +Class QOpenGLTimerQuery::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimerQuery::QPrivateSignal (0x0x7f542e2e9540) 0 empty + +Vtable for QOpenGLTimerQuery +QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOpenGLTimerQuery) +16 (int (*)(...))QOpenGLTimerQuery::metaObject +24 (int (*)(...))QOpenGLTimerQuery::qt_metacast +32 (int (*)(...))QOpenGLTimerQuery::qt_metacall +40 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +48 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimerQuery + size=16 align=8 + base size=16 base align=8 +QOpenGLTimerQuery (0x0x7f542e213dd0) 0 + vptr=((& QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery) + 16) + QObject (0x0x7f542e2e94e0) 0 + primary-for QOpenGLTimerQuery (0x0x7f542e213dd0) + +Class QOpenGLTimeMonitor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimeMonitor::QPrivateSignal (0x0x7f542e2e9720) 0 empty + +Vtable for QOpenGLTimeMonitor +QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLTimeMonitor) +16 (int (*)(...))QOpenGLTimeMonitor::metaObject +24 (int (*)(...))QOpenGLTimeMonitor::qt_metacast +32 (int (*)(...))QOpenGLTimeMonitor::qt_metacall +40 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +48 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimeMonitor + size=16 align=8 + base size=16 base align=8 +QOpenGLTimeMonitor (0x0x7f542e213e38) 0 + vptr=((& QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor) + 16) + QObject (0x0x7f542e2e96c0) 0 + primary-for QOpenGLTimeMonitor (0x0x7f542e213e38) + +Class QOpenGLVersionStatus + size=12 align=4 + base size=12 base align=4 +QOpenGLVersionStatus (0x0x7f542e2e98a0) 0 + +Class QOpenGLVersionFunctionsBackend + size=16 align=8 + base size=12 base align=8 +QOpenGLVersionFunctionsBackend (0x0x7f542e3b7900) 0 + +Class QOpenGLVersionFunctionsStorage + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionFunctionsStorage (0x0x7f542e3b7ae0) 0 + +Class QAbstractOpenGLFunctionsPrivate + size=16 align=8 + base size=9 base align=8 +QAbstractOpenGLFunctionsPrivate (0x0x7f542e3b7b40) 0 + +Vtable for QAbstractOpenGLFunctions +QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractOpenGLFunctions) +16 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +24 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +32 (int (*)(...))QAbstractOpenGLFunctions::initializeOpenGLFunctions + +Class QAbstractOpenGLFunctions + size=16 align=8 + base size=16 base align=8 +QAbstractOpenGLFunctions (0x0x7f542e3b7d20) 0 + vptr=((& QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions) + 16) + +Class QOpenGLFunctions_1_0_CoreBackend::Functions + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_1_0_CoreBackend::Functions (0x0x7f542e3b7f00) 0 + +Class QOpenGLFunctions_1_0_CoreBackend + size=400 align=8 + base size=400 base align=8 +QOpenGLFunctions_1_0_CoreBackend (0x0x7f542e3b06e8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e3b7ea0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend::Functions + size=128 align=8 + base size=128 base align=8 +QOpenGLFunctions_1_1_CoreBackend::Functions (0x0x7f542e3e72a0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend + size=144 align=8 + base size=144 base align=8 +QOpenGLFunctions_1_1_CoreBackend (0x0x7f542e3b0750) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e3e7240) 0 + +Class QOpenGLFunctions_1_2_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_1_2_CoreBackend::Functions (0x0x7f542e3e7600) 0 + +Class QOpenGLFunctions_1_2_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_1_2_CoreBackend (0x0x7f542e3b07b8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e3e75a0) 0 + +Class QOpenGLFunctions_1_3_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_3_CoreBackend::Functions (0x0x7f542e3e7960) 0 + +Class QOpenGLFunctions_1_3_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_1_3_CoreBackend (0x0x7f542e3b0820) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e3e7900) 0 + +Class QOpenGLFunctions_1_4_CoreBackend::Functions + size=56 align=8 + base size=56 base align=8 +QOpenGLFunctions_1_4_CoreBackend::Functions (0x0x7f542e3e7cc0) 0 + +Class QOpenGLFunctions_1_4_CoreBackend + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_4_CoreBackend (0x0x7f542e3b0888) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e3e7c60) 0 + +Class QOpenGLFunctions_1_5_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_5_CoreBackend::Functions (0x0x7f542e006060) 0 + +Class QOpenGLFunctions_1_5_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_1_5_CoreBackend (0x0x7f542e3b08f0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e006000) 0 + +Class QOpenGLFunctions_2_0_CoreBackend::Functions + size=744 align=8 + base size=744 base align=8 +QOpenGLFunctions_2_0_CoreBackend::Functions (0x0x7f542e0063c0) 0 + +Class QOpenGLFunctions_2_0_CoreBackend + size=760 align=8 + base size=760 base align=8 +QOpenGLFunctions_2_0_CoreBackend (0x0x7f542e3b0958) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e006360) 0 + +Class QOpenGLFunctions_2_1_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_2_1_CoreBackend::Functions (0x0x7f542e006720) 0 + +Class QOpenGLFunctions_2_1_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_2_1_CoreBackend (0x0x7f542e3b09c0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e0066c0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend::Functions + size=672 align=8 + base size=672 base align=8 +QOpenGLFunctions_3_0_CoreBackend::Functions (0x0x7f542e006a80) 0 + +Class QOpenGLFunctions_3_0_CoreBackend + size=688 align=8 + base size=688 base align=8 +QOpenGLFunctions_3_0_CoreBackend (0x0x7f542e3b0a28) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e006a20) 0 + +Class QOpenGLFunctions_3_1_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_3_1_CoreBackend::Functions (0x0x7f542e006de0) 0 + +Class QOpenGLFunctions_3_1_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_3_1_CoreBackend (0x0x7f542e3b0a90) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e006d80) 0 + +Class QOpenGLFunctions_3_2_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_3_2_CoreBackend::Functions (0x0x7f542e03d180) 0 + +Class QOpenGLFunctions_3_2_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_3_2_CoreBackend (0x0x7f542e3b0af8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e03d120) 0 + +Class QOpenGLFunctions_3_3_CoreBackend::Functions + size=464 align=8 + base size=464 base align=8 +QOpenGLFunctions_3_3_CoreBackend::Functions (0x0x7f542e03d4e0) 0 + +Class QOpenGLFunctions_3_3_CoreBackend + size=480 align=8 + base size=480 base align=8 +QOpenGLFunctions_3_3_CoreBackend (0x0x7f542e3b0b60) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e03d480) 0 + +Class QOpenGLFunctions_4_0_CoreBackend::Functions + size=368 align=8 + base size=368 base align=8 +QOpenGLFunctions_4_0_CoreBackend::Functions (0x0x7f542e03d840) 0 + +Class QOpenGLFunctions_4_0_CoreBackend + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_4_0_CoreBackend (0x0x7f542e3b0bc8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e03d7e0) 0 + +Class QOpenGLFunctions_4_1_CoreBackend::Functions + size=704 align=8 + base size=704 base align=8 +QOpenGLFunctions_4_1_CoreBackend::Functions (0x0x7f542e03dba0) 0 + +Class QOpenGLFunctions_4_1_CoreBackend + size=720 align=8 + base size=720 base align=8 +QOpenGLFunctions_4_1_CoreBackend (0x0x7f542e3b0c30) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e03db40) 0 + +Class QOpenGLFunctions_4_2_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_2_CoreBackend::Functions (0x0x7f542e03df00) 0 + +Class QOpenGLFunctions_4_2_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_2_CoreBackend (0x0x7f542e3b0c98) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e03dea0) 0 + +Class QOpenGLFunctions_4_3_CoreBackend::Functions + size=344 align=8 + base size=344 base align=8 +QOpenGLFunctions_4_3_CoreBackend::Functions (0x0x7f542e0782a0) 0 + +Class QOpenGLFunctions_4_3_CoreBackend + size=360 align=8 + base size=360 base align=8 +QOpenGLFunctions_4_3_CoreBackend (0x0x7f542e3b0d00) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e078240) 0 + +Class QOpenGLFunctions_4_4_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_4_4_CoreBackend::Functions (0x0x7f542e078600) 0 + +Class QOpenGLFunctions_4_4_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_4_4_CoreBackend (0x0x7f542e3b0d68) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e0785a0) 0 + +Class QOpenGLFunctions_4_5_CoreBackend::Functions + size=848 align=8 + base size=848 base align=8 +QOpenGLFunctions_4_5_CoreBackend::Functions (0x0x7f542e078960) 0 + +Class QOpenGLFunctions_4_5_CoreBackend + size=864 align=8 + base size=864 base align=8 +QOpenGLFunctions_4_5_CoreBackend (0x0x7f542e3b0dd0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e078900) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend::Functions + size=2064 align=8 + base size=2064 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend::Functions (0x0x7f542e078cc0) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend + size=2080 align=8 + base size=2080 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend (0x0x7f542e3b0e38) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e078c60) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend::Functions + size=136 align=8 + base size=136 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend::Functions (0x0x7f542e0d1060) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend (0x0x7f542e3b0ea0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e0d1000) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend::Functions + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend::Functions (0x0x7f542e0d13c0) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend + size=272 align=8 + base size=272 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend (0x0x7f542e3b0f08) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e0d1360) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend::Functions + size=296 align=8 + base size=296 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend::Functions (0x0x7f542e0d1720) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend + size=312 align=8 + base size=312 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend (0x0x7f542e3b0f70) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e0d16c0) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend::Functions + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend::Functions (0x0x7f542e0d1a80) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend + size=320 align=8 + base size=320 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend (0x0x7f542e0ec000) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e0d1a20) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend::Functions + size=288 align=8 + base size=288 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend::Functions (0x0x7f542e0d1de0) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend (0x0x7f542e0ec068) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e0d1d80) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend::Functions + size=160 align=8 + base size=160 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend::Functions (0x0x7f542e103180) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend + size=176 align=8 + base size=176 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend (0x0x7f542e0ec0d0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e103120) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend::Functions + size=240 align=8 + base size=240 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend::Functions (0x0x7f542e1034e0) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend (0x0x7f542e0ec138) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e103480) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend::Functions (0x0x7f542e103840) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend (0x0x7f542e0ec1a0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f542e1037e0) 0 + +Class QOpenGLVersionProfile + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionProfile (0x0x7f542e103b40) 0 + +Class QOpenGLVersionFunctionsFactory + size=1 align=1 + base size=0 base align=1 +QOpenGLVersionFunctionsFactory (0x0x7f542e103cc0) 0 empty + +Class QOpenGLVertexArrayObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLVertexArrayObject::QPrivateSignal (0x0x7f542e103de0) 0 empty + +Class QOpenGLVertexArrayObject::Binder + size=8 align=8 + base size=8 base align=8 +QOpenGLVertexArrayObject::Binder (0x0x7f542e103e40) 0 + +Vtable for QOpenGLVertexArrayObject +QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLVertexArrayObject) +16 (int (*)(...))QOpenGLVertexArrayObject::metaObject +24 (int (*)(...))QOpenGLVertexArrayObject::qt_metacast +32 (int (*)(...))QOpenGLVertexArrayObject::qt_metacall +40 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +48 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLVertexArrayObject + size=16 align=8 + base size=16 base align=8 +QOpenGLVertexArrayObject (0x0x7f542e0ec208) 0 + vptr=((& QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject) + 16) + QObject (0x0x7f542e103d80) 0 + primary-for QOpenGLVertexArrayObject (0x0x7f542e0ec208) + +Class QOpenGLWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWindow::QPrivateSignal (0x0x7f542e1334e0) 0 empty + +Vtable for QOpenGLWindow +QOpenGLWindow::_ZTV13QOpenGLWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWindow) +16 (int (*)(...))QOpenGLWindow::metaObject +24 (int (*)(...))QOpenGLWindow::qt_metacast +32 (int (*)(...))QOpenGLWindow::qt_metacall +40 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +48 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QOpenGLWindow::resizeEvent +168 (int (*)(...))QOpenGLWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QOpenGLWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QOpenGLWindow::initializeGL +336 (int (*)(...))QOpenGLWindow::resizeGL +344 (int (*)(...))QOpenGLWindow::paintGL +352 (int (*)(...))QOpenGLWindow::paintUnderGL +360 (int (*)(...))QOpenGLWindow::paintOverGL +368 (int (*)(...))QOpenGLWindow::redirected +376 (int (*)(...))-16 +384 (int (*)(...))(& _ZTI13QOpenGLWindow) +392 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD1Ev +400 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD0Ev +408 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +416 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +424 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +432 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +440 (int (*)(...))-40 +448 (int (*)(...))(& _ZTI13QOpenGLWindow) +456 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD1Ev +464 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD0Ev +472 (int (*)(...))QPaintDevice::devType +480 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +488 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QPaintDevice::initPainter +504 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow10redirectedEP6QPoint +512 (int (*)(...))QPaintDevice::sharedPainter + +Class QOpenGLWindow + size=56 align=8 + base size=50 base align=8 +QOpenGLWindow (0x0x7f542e0ec2d8) 0 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 16) + QPaintDeviceWindow (0x0x7f542e3cf930) 0 + primary-for QOpenGLWindow (0x0x7f542e0ec2d8) + QWindow (0x0x7f542e3cf9a0) 0 + primary-for QPaintDeviceWindow (0x0x7f542e3cf930) + QObject (0x0x7f542e1333c0) 0 + primary-for QWindow (0x0x7f542e3cf9a0) + QSurface (0x0x7f542e133420) 16 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 392) + QPaintDevice (0x0x7f542e133480) 40 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 456) + +Class QOpenGLWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWidget::QPrivateSignal (0x0x7f542e133720) 0 empty + +Vtable for QOpenGLWidget +QOpenGLWidget::_ZTV13QOpenGLWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWidget) +16 (int (*)(...))QOpenGLWidget::metaObject +24 (int (*)(...))QOpenGLWidget::qt_metacast +32 (int (*)(...))QOpenGLWidget::qt_metacall +40 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +48 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +56 (int (*)(...))QOpenGLWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QOpenGLWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QOpenGLWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QOpenGLWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QOpenGLWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QOpenGLWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QOpenGLWidget::initializeGL +440 (int (*)(...))QOpenGLWidget::resizeGL +448 (int (*)(...))QOpenGLWidget::paintGL +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI13QOpenGLWidget) +472 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD1Ev +480 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget11paintEngineEv +504 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QOpenGLWidget + size=40 align=8 + base size=40 base align=8 +QOpenGLWidget (0x0x7f542e0ec3a8) 0 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 16) + QWidget (0x0x7f542e3cfb60) 0 + primary-for QOpenGLWidget (0x0x7f542e0ec3a8) + QObject (0x0x7f542e133660) 0 + primary-for QWidget (0x0x7f542e3cfb60) + QPaintDevice (0x0x7f542e1336c0) 16 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 472) + +Class QDesignerActionEditorInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerActionEditorInterface::QPrivateSignal (0x0x7f542e133960) 0 empty + +Vtable for QDesignerActionEditorInterface +QDesignerActionEditorInterface::_ZTV30QDesignerActionEditorInterface: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QDesignerActionEditorInterface) +16 (int (*)(...))QDesignerActionEditorInterface::metaObject +24 (int (*)(...))QDesignerActionEditorInterface::qt_metacast +32 (int (*)(...))QDesignerActionEditorInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDesignerActionEditorInterface::core +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))__cxa_pure_virtual +456 (int (*)(...))__cxa_pure_virtual +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI30QDesignerActionEditorInterface) +480 0 +488 0 +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerActionEditorInterface + size=40 align=8 + base size=40 base align=8 +QDesignerActionEditorInterface (0x0x7f542e0ec478) 0 + vptr=((& QDesignerActionEditorInterface::_ZTV30QDesignerActionEditorInterface) + 16) + QWidget (0x0x7f542e3cfcb0) 0 + primary-for QDesignerActionEditorInterface (0x0x7f542e0ec478) + QObject (0x0x7f542e1338a0) 0 + primary-for QWidget (0x0x7f542e3cfcb0) + QPaintDevice (0x0x7f542e133900) 16 + vptr=((& QDesignerActionEditorInterface::_ZTV30QDesignerActionEditorInterface) + 480) + +Vtable for QDesignerDnDItemInterface +QDesignerDnDItemInterface::_ZTV25QDesignerDnDItemInterface: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QDesignerDnDItemInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QDesignerDnDItemInterface + size=8 align=8 + base size=8 base align=8 +QDesignerDnDItemInterface (0x0x7f542e133a20) 0 nearly-empty + vptr=((& QDesignerDnDItemInterface::_ZTV25QDesignerDnDItemInterface) + 16) + +Vtable for QAbstractFormBuilder +QAbstractFormBuilder::_ZTV20QAbstractFormBuilder: 42 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAbstractFormBuilder) +16 (int (*)(...))QAbstractFormBuilder::~QAbstractFormBuilder +24 (int (*)(...))QAbstractFormBuilder::~QAbstractFormBuilder +32 (int (*)(...))QAbstractFormBuilder::load +40 (int (*)(...))QAbstractFormBuilder::save +48 (int (*)(...))QAbstractFormBuilder::loadExtraInfo +56 (int (*)(...))QAbstractFormBuilder::create +64 (int (*)(...))QAbstractFormBuilder::create +72 (int (*)(...))QAbstractFormBuilder::create +80 (int (*)(...))QAbstractFormBuilder::create +88 (int (*)(...))QAbstractFormBuilder::create +96 (int (*)(...))QAbstractFormBuilder::create +104 (int (*)(...))QAbstractFormBuilder::addMenuAction +112 (int (*)(...))QAbstractFormBuilder::applyProperties +120 (int (*)(...))QAbstractFormBuilder::applyTabStops +128 (int (*)(...))QAbstractFormBuilder::createWidget +136 (int (*)(...))QAbstractFormBuilder::createLayout +144 (int (*)(...))QAbstractFormBuilder::createAction +152 (int (*)(...))QAbstractFormBuilder::createActionGroup +160 (int (*)(...))QAbstractFormBuilder::createCustomWidgets +168 (int (*)(...))QAbstractFormBuilder::createConnections +176 (int (*)(...))QAbstractFormBuilder::createResources +184 (int (*)(...))QAbstractFormBuilder::addItem +192 (int (*)(...))QAbstractFormBuilder::addItem +200 (int (*)(...))QAbstractFormBuilder::saveExtraInfo +208 (int (*)(...))QAbstractFormBuilder::saveDom +216 (int (*)(...))QAbstractFormBuilder::createActionRefDom +224 (int (*)(...))QAbstractFormBuilder::createDom +232 (int (*)(...))QAbstractFormBuilder::createDom +240 (int (*)(...))QAbstractFormBuilder::createDom +248 (int (*)(...))QAbstractFormBuilder::createDom +256 (int (*)(...))QAbstractFormBuilder::createDom +264 (int (*)(...))QAbstractFormBuilder::createDom +272 (int (*)(...))QAbstractFormBuilder::saveConnections +280 (int (*)(...))QAbstractFormBuilder::saveCustomWidgets +288 (int (*)(...))QAbstractFormBuilder::saveTabStops +296 (int (*)(...))QAbstractFormBuilder::saveResources +304 (int (*)(...))QAbstractFormBuilder::computeProperties +312 (int (*)(...))QAbstractFormBuilder::checkProperty +320 (int (*)(...))QAbstractFormBuilder::createProperty +328 (int (*)(...))QAbstractFormBuilder::layoutInfo + +Class QAbstractFormBuilder + size=16 align=8 + base size=16 base align=8 +QAbstractFormBuilder (0x0x7f542e133a80) 0 + vptr=((& QAbstractFormBuilder::_ZTV20QAbstractFormBuilder) + 16) + +Class QDesignerFormEditorInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerFormEditorInterface::QPrivateSignal (0x0x7f542e133cc0) 0 empty + +Vtable for QDesignerFormEditorInterface +QDesignerFormEditorInterface::_ZTV28QDesignerFormEditorInterface: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QDesignerFormEditorInterface) +16 (int (*)(...))QDesignerFormEditorInterface::metaObject +24 (int (*)(...))QDesignerFormEditorInterface::qt_metacast +32 (int (*)(...))QDesignerFormEditorInterface::qt_metacall +40 (int (*)(...))QDesignerFormEditorInterface::~QDesignerFormEditorInterface +48 (int (*)(...))QDesignerFormEditorInterface::~QDesignerFormEditorInterface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDesignerFormEditorInterface + size=24 align=8 + base size=24 base align=8 +QDesignerFormEditorInterface (0x0x7f542e0ec4e0) 0 + vptr=((& QDesignerFormEditorInterface::_ZTV28QDesignerFormEditorInterface) + 16) + QObject (0x0x7f542e133c60) 0 + primary-for QDesignerFormEditorInterface (0x0x7f542e0ec4e0) + +Vtable for QDesignerFormEditorPluginInterface +QDesignerFormEditorPluginInterface::_ZTV34QDesignerFormEditorPluginInterface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI34QDesignerFormEditorPluginInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QDesignerFormEditorPluginInterface + size=8 align=8 + base size=8 base align=8 +QDesignerFormEditorPluginInterface (0x0x7f542e133de0) 0 nearly-empty + vptr=((& QDesignerFormEditorPluginInterface::_ZTV34QDesignerFormEditorPluginInterface) + 16) + +Class QDesignerFormWindowInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerFormWindowInterface::QPrivateSignal (0x0x7f542e1b60c0) 0 empty + +Vtable for QDesignerFormWindowInterface +QDesignerFormWindowInterface::_ZTV28QDesignerFormWindowInterface: 121 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QDesignerFormWindowInterface) +16 (int (*)(...))QDesignerFormWindowInterface::metaObject +24 (int (*)(...))QDesignerFormWindowInterface::qt_metacast +32 (int (*)(...))QDesignerFormWindowInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))__cxa_pure_virtual +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))__cxa_pure_virtual +456 (int (*)(...))__cxa_pure_virtual +464 (int (*)(...))__cxa_pure_virtual +472 (int (*)(...))__cxa_pure_virtual +480 (int (*)(...))__cxa_pure_virtual +488 (int (*)(...))__cxa_pure_virtual +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))__cxa_pure_virtual +528 (int (*)(...))__cxa_pure_virtual +536 (int (*)(...))__cxa_pure_virtual +544 (int (*)(...))__cxa_pure_virtual +552 (int (*)(...))__cxa_pure_virtual +560 (int (*)(...))__cxa_pure_virtual +568 (int (*)(...))__cxa_pure_virtual +576 (int (*)(...))__cxa_pure_virtual +584 (int (*)(...))__cxa_pure_virtual +592 (int (*)(...))__cxa_pure_virtual +600 (int (*)(...))__cxa_pure_virtual +608 (int (*)(...))__cxa_pure_virtual +616 (int (*)(...))__cxa_pure_virtual +624 (int (*)(...))__cxa_pure_virtual +632 (int (*)(...))QDesignerFormWindowInterface::core +640 (int (*)(...))__cxa_pure_virtual +648 (int (*)(...))__cxa_pure_virtual +656 (int (*)(...))__cxa_pure_virtual +664 (int (*)(...))__cxa_pure_virtual +672 (int (*)(...))__cxa_pure_virtual +680 (int (*)(...))__cxa_pure_virtual +688 (int (*)(...))__cxa_pure_virtual +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))__cxa_pure_virtual +736 (int (*)(...))__cxa_pure_virtual +744 (int (*)(...))__cxa_pure_virtual +752 (int (*)(...))__cxa_pure_virtual +760 (int (*)(...))__cxa_pure_virtual +768 (int (*)(...))__cxa_pure_virtual +776 (int (*)(...))__cxa_pure_virtual +784 (int (*)(...))__cxa_pure_virtual +792 (int (*)(...))__cxa_pure_virtual +800 (int (*)(...))__cxa_pure_virtual +808 (int (*)(...))__cxa_pure_virtual +816 (int (*)(...))__cxa_pure_virtual +824 (int (*)(...))__cxa_pure_virtual +832 (int (*)(...))__cxa_pure_virtual +840 (int (*)(...))__cxa_pure_virtual +848 (int (*)(...))__cxa_pure_virtual +856 (int (*)(...))__cxa_pure_virtual +864 (int (*)(...))__cxa_pure_virtual +872 (int (*)(...))__cxa_pure_virtual +880 (int (*)(...))__cxa_pure_virtual +888 (int (*)(...))-16 +896 (int (*)(...))(& _ZTI28QDesignerFormWindowInterface) +904 0 +912 0 +920 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +928 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +936 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +944 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +952 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +960 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerFormWindowInterface + size=40 align=8 + base size=40 base align=8 +QDesignerFormWindowInterface (0x0x7f542e0ec548) 0 + vptr=((& QDesignerFormWindowInterface::_ZTV28QDesignerFormWindowInterface) + 16) + QWidget (0x0x7f542e3cfe00) 0 + primary-for QDesignerFormWindowInterface (0x0x7f542e0ec548) + QObject (0x0x7f542e1b6000) 0 + primary-for QWidget (0x0x7f542e3cfe00) + QPaintDevice (0x0x7f542e1b6060) 16 + vptr=((& QDesignerFormWindowInterface::_ZTV28QDesignerFormWindowInterface) + 904) + +Vtable for QDesignerFormWindowCursorInterface +QDesignerFormWindowCursorInterface::_ZTV34QDesignerFormWindowCursorInterface: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI34QDesignerFormWindowCursorInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual + +Class QDesignerFormWindowCursorInterface + size=8 align=8 + base size=8 base align=8 +QDesignerFormWindowCursorInterface (0x0x7f542e1b6240) 0 nearly-empty + vptr=((& QDesignerFormWindowCursorInterface::_ZTV34QDesignerFormWindowCursorInterface) + 16) + +Class QDesignerFormWindowManagerInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerFormWindowManagerInterface::QPrivateSignal (0x0x7f542e1b6300) 0 empty + +Vtable for QDesignerFormWindowManagerInterface +QDesignerFormWindowManagerInterface::_ZTV35QDesignerFormWindowManagerInterface: 29 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI35QDesignerFormWindowManagerInterface) +16 (int (*)(...))QDesignerFormWindowManagerInterface::metaObject +24 (int (*)(...))QDesignerFormWindowManagerInterface::qt_metacast +32 (int (*)(...))QDesignerFormWindowManagerInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual + +Class QDesignerFormWindowManagerInterface + size=16 align=8 + base size=16 base align=8 +QDesignerFormWindowManagerInterface (0x0x7f542e0ec5b0) 0 + vptr=((& QDesignerFormWindowManagerInterface::_ZTV35QDesignerFormWindowManagerInterface) + 16) + QObject (0x0x7f542e1b62a0) 0 + primary-for QDesignerFormWindowManagerInterface (0x0x7f542e0ec5b0) + +Class QDesignerFormWindowToolInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerFormWindowToolInterface::QPrivateSignal (0x0x7f542e1b6600) 0 empty + +Vtable for QDesignerFormWindowToolInterface +QDesignerFormWindowToolInterface::_ZTV32QDesignerFormWindowToolInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QDesignerFormWindowToolInterface) +16 (int (*)(...))QDesignerFormWindowToolInterface::metaObject +24 (int (*)(...))QDesignerFormWindowToolInterface::qt_metacast +32 (int (*)(...))QDesignerFormWindowToolInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QDesignerFormWindowToolInterface::saveToDom +168 (int (*)(...))QDesignerFormWindowToolInterface::loadFromDom +176 (int (*)(...))__cxa_pure_virtual + +Class QDesignerFormWindowToolInterface + size=16 align=8 + base size=16 base align=8 +QDesignerFormWindowToolInterface (0x0x7f542e0ec618) 0 + vptr=((& QDesignerFormWindowToolInterface::_ZTV32QDesignerFormWindowToolInterface) + 16) + QObject (0x0x7f542e1b65a0) 0 + primary-for QDesignerFormWindowToolInterface (0x0x7f542e0ec618) + +Class QDesignerIntegrationInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerIntegrationInterface::QPrivateSignal (0x0x7f542e1b67e0) 0 empty + +Vtable for QDesignerIntegrationInterface +QDesignerIntegrationInterface::_ZTV29QDesignerIntegrationInterface: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QDesignerIntegrationInterface) +16 (int (*)(...))QDesignerIntegrationInterface::metaObject +24 (int (*)(...))QDesignerIntegrationInterface::qt_metacast +32 (int (*)(...))QDesignerIntegrationInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual + +Class QDesignerIntegrationInterface + size=24 align=8 + base size=24 base align=8 +QDesignerIntegrationInterface (0x0x7f542e0ec680) 0 + vptr=((& QDesignerIntegrationInterface::_ZTV29QDesignerIntegrationInterface) + 16) + QObject (0x0x7f542e1b6780) 0 + primary-for QDesignerIntegrationInterface (0x0x7f542e0ec680) + +Class QDesignerIntegration::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerIntegration::QPrivateSignal (0x0x7f542e1b6a20) 0 empty + +Vtable for QDesignerIntegration +QDesignerIntegration::_ZTV20QDesignerIntegration: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDesignerIntegration) +16 (int (*)(...))QDesignerIntegration::metaObject +24 (int (*)(...))QDesignerIntegration::qt_metacast +32 (int (*)(...))QDesignerIntegration::qt_metacall +40 (int (*)(...))QDesignerIntegration::~QDesignerIntegration +48 (int (*)(...))QDesignerIntegration::~QDesignerIntegration +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDesignerIntegration::containerWindow +120 (int (*)(...))QDesignerIntegration::createResourceBrowser +128 (int (*)(...))QDesignerIntegration::headerSuffix +136 (int (*)(...))QDesignerIntegration::setHeaderSuffix +144 (int (*)(...))QDesignerIntegration::isHeaderLowercase +152 (int (*)(...))QDesignerIntegration::setHeaderLowercase +160 (int (*)(...))QDesignerIntegration::features +168 (int (*)(...))QDesignerIntegration::resourceFileWatcherBehaviour +176 (int (*)(...))QDesignerIntegration::setResourceFileWatcherBehaviour +184 (int (*)(...))QDesignerIntegration::contextHelpId +192 (int (*)(...))QDesignerIntegration::setFeatures +200 (int (*)(...))QDesignerIntegration::updateProperty +208 (int (*)(...))QDesignerIntegration::updateProperty +216 (int (*)(...))QDesignerIntegration::resetProperty +224 (int (*)(...))QDesignerIntegration::addDynamicProperty +232 (int (*)(...))QDesignerIntegration::removeDynamicProperty +240 (int (*)(...))QDesignerIntegration::updateActiveFormWindow +248 (int (*)(...))QDesignerIntegration::setupFormWindow +256 (int (*)(...))QDesignerIntegration::updateSelection +264 (int (*)(...))QDesignerIntegration::updateCustomWidgetPlugins + +Class QDesignerIntegration + size=32 align=8 + base size=32 base align=8 +QDesignerIntegration (0x0x7f542e0ec6e8) 0 + vptr=((& QDesignerIntegration::_ZTV20QDesignerIntegration) + 16) + QDesignerIntegrationInterface (0x0x7f542e0ec750) 0 + primary-for QDesignerIntegration (0x0x7f542e0ec6e8) + QObject (0x0x7f542e1b69c0) 0 + primary-for QDesignerIntegrationInterface (0x0x7f542e0ec750) + +Vtable for QAbstractExtensionFactory +QAbstractExtensionFactory::_ZTV25QAbstractExtensionFactory: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractExtensionFactory) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractExtensionFactory + size=8 align=8 + base size=8 base align=8 +QAbstractExtensionFactory (0x0x7f542e1b6b40) 0 nearly-empty + vptr=((& QAbstractExtensionFactory::_ZTV25QAbstractExtensionFactory) + 16) + +Vtable for QAbstractExtensionManager +QAbstractExtensionManager::_ZTV25QAbstractExtensionManager: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractExtensionManager) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAbstractExtensionManager + size=8 align=8 + base size=8 base align=8 +QAbstractExtensionManager (0x0x7f542e1b6f00) 0 nearly-empty + vptr=((& QAbstractExtensionManager::_ZTV25QAbstractExtensionManager) + 16) + +Vtable for QDesignerLanguageExtension +QDesignerLanguageExtension::_ZTV26QDesignerLanguageExtension: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QDesignerLanguageExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual + +Class QDesignerLanguageExtension + size=8 align=8 + base size=8 base align=8 +QDesignerLanguageExtension (0x0x7f542de29360) 0 nearly-empty + vptr=((& QDesignerLanguageExtension::_ZTV26QDesignerLanguageExtension) + 16) + +Vtable for QDesignerMetaDataBaseItemInterface +QDesignerMetaDataBaseItemInterface::_ZTV34QDesignerMetaDataBaseItemInterface: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI34QDesignerMetaDataBaseItemInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QDesignerMetaDataBaseItemInterface + size=8 align=8 + base size=8 base align=8 +QDesignerMetaDataBaseItemInterface (0x0x7f542de295a0) 0 nearly-empty + vptr=((& QDesignerMetaDataBaseItemInterface::_ZTV34QDesignerMetaDataBaseItemInterface) + 16) + +Class QDesignerMetaDataBaseInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerMetaDataBaseInterface::QPrivateSignal (0x0x7f542de29660) 0 empty + +Vtable for QDesignerMetaDataBaseInterface +QDesignerMetaDataBaseInterface::_ZTV30QDesignerMetaDataBaseInterface: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QDesignerMetaDataBaseInterface) +16 (int (*)(...))QDesignerMetaDataBaseInterface::metaObject +24 (int (*)(...))QDesignerMetaDataBaseInterface::qt_metacast +32 (int (*)(...))QDesignerMetaDataBaseInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual + +Class QDesignerMetaDataBaseInterface + size=16 align=8 + base size=16 base align=8 +QDesignerMetaDataBaseInterface (0x0x7f542e0ec7b8) 0 + vptr=((& QDesignerMetaDataBaseInterface::_ZTV30QDesignerMetaDataBaseInterface) + 16) + QObject (0x0x7f542de29600) 0 + primary-for QDesignerMetaDataBaseInterface (0x0x7f542e0ec7b8) + +Class QDesignerNewFormWidgetInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerNewFormWidgetInterface::QPrivateSignal (0x0x7f542de297e0) 0 empty + +Vtable for QDesignerNewFormWidgetInterface +QDesignerNewFormWidgetInterface::_ZTV31QDesignerNewFormWidgetInterface: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI31QDesignerNewFormWidgetInterface) +16 (int (*)(...))QDesignerNewFormWidgetInterface::metaObject +24 (int (*)(...))QDesignerNewFormWidgetInterface::qt_metacast +32 (int (*)(...))QDesignerNewFormWidgetInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))__cxa_pure_virtual +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI31QDesignerNewFormWidgetInterface) +464 0 +472 0 +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerNewFormWidgetInterface + size=40 align=8 + base size=40 base align=8 +QDesignerNewFormWidgetInterface (0x0x7f542e0ec820) 0 + vptr=((& QDesignerNewFormWidgetInterface::_ZTV31QDesignerNewFormWidgetInterface) + 16) + QWidget (0x0x7f542e1f5310) 0 + primary-for QDesignerNewFormWidgetInterface (0x0x7f542e0ec820) + QObject (0x0x7f542de29720) 0 + primary-for QWidget (0x0x7f542e1f5310) + QPaintDevice (0x0x7f542de29780) 16 + vptr=((& QDesignerNewFormWidgetInterface::_ZTV31QDesignerNewFormWidgetInterface) + 464) + +Class QDesignerObjectInspectorInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerObjectInspectorInterface::QPrivateSignal (0x0x7f542de29960) 0 empty + +Vtable for QDesignerObjectInspectorInterface +QDesignerObjectInspectorInterface::_ZTV33QDesignerObjectInspectorInterface: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI33QDesignerObjectInspectorInterface) +16 (int (*)(...))QDesignerObjectInspectorInterface::metaObject +24 (int (*)(...))QDesignerObjectInspectorInterface::qt_metacast +32 (int (*)(...))QDesignerObjectInspectorInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDesignerObjectInspectorInterface::core +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI33QDesignerObjectInspectorInterface) +464 0 +472 0 +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerObjectInspectorInterface + size=40 align=8 + base size=40 base align=8 +QDesignerObjectInspectorInterface (0x0x7f542e0ec888) 0 + vptr=((& QDesignerObjectInspectorInterface::_ZTV33QDesignerObjectInspectorInterface) + 16) + QWidget (0x0x7f542e1f5380) 0 + primary-for QDesignerObjectInspectorInterface (0x0x7f542e0ec888) + QObject (0x0x7f542de298a0) 0 + primary-for QWidget (0x0x7f542e1f5380) + QPaintDevice (0x0x7f542de29900) 16 + vptr=((& QDesignerObjectInspectorInterface::_ZTV33QDesignerObjectInspectorInterface) + 464) + +Vtable for QDesignerOptionsPageInterface +QDesignerOptionsPageInterface::_ZTV29QDesignerOptionsPageInterface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QDesignerOptionsPageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QDesignerOptionsPageInterface + size=8 align=8 + base size=8 base align=8 +QDesignerOptionsPageInterface (0x0x7f542de29a20) 0 nearly-empty + vptr=((& QDesignerOptionsPageInterface::_ZTV29QDesignerOptionsPageInterface) + 16) + +Class QDesignerPromotionInterface::PromotedClass + size=16 align=8 + base size=16 base align=8 +QDesignerPromotionInterface::PromotedClass (0x0x7f542de29ae0) 0 + +Vtable for QDesignerPromotionInterface +QDesignerPromotionInterface::_ZTV27QDesignerPromotionInterface: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDesignerPromotionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual + +Class QDesignerPromotionInterface + size=8 align=8 + base size=8 base align=8 +QDesignerPromotionInterface (0x0x7f542de29a80) 0 nearly-empty + vptr=((& QDesignerPromotionInterface::_ZTV27QDesignerPromotionInterface) + 16) + +Class QDesignerPropertyEditorInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerPropertyEditorInterface::QPrivateSignal (0x0x7f542de29c00) 0 empty + +Vtable for QDesignerPropertyEditorInterface +QDesignerPropertyEditorInterface::_ZTV32QDesignerPropertyEditorInterface: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QDesignerPropertyEditorInterface) +16 (int (*)(...))QDesignerPropertyEditorInterface::metaObject +24 (int (*)(...))QDesignerPropertyEditorInterface::qt_metacast +32 (int (*)(...))QDesignerPropertyEditorInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDesignerPropertyEditorInterface::core +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))__cxa_pure_virtual +456 (int (*)(...))__cxa_pure_virtual +464 (int (*)(...))__cxa_pure_virtual +472 (int (*)(...))__cxa_pure_virtual +480 (int (*)(...))__cxa_pure_virtual +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI32QDesignerPropertyEditorInterface) +504 0 +512 0 +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerPropertyEditorInterface + size=40 align=8 + base size=40 base align=8 +QDesignerPropertyEditorInterface (0x0x7f542e0ec8f0) 0 + vptr=((& QDesignerPropertyEditorInterface::_ZTV32QDesignerPropertyEditorInterface) + 16) + QWidget (0x0x7f542e1f53f0) 0 + primary-for QDesignerPropertyEditorInterface (0x0x7f542e0ec8f0) + QObject (0x0x7f542de29b40) 0 + primary-for QWidget (0x0x7f542e1f53f0) + QPaintDevice (0x0x7f542de29ba0) 16 + vptr=((& QDesignerPropertyEditorInterface::_ZTV32QDesignerPropertyEditorInterface) + 504) + +Class QDesignerResourceBrowserInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerResourceBrowserInterface::QPrivateSignal (0x0x7f542de29d80) 0 empty + +Vtable for QDesignerResourceBrowserInterface +QDesignerResourceBrowserInterface::_ZTV33QDesignerResourceBrowserInterface: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI33QDesignerResourceBrowserInterface) +16 (int (*)(...))QDesignerResourceBrowserInterface::metaObject +24 (int (*)(...))QDesignerResourceBrowserInterface::qt_metacast +32 (int (*)(...))QDesignerResourceBrowserInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))__cxa_pure_virtual +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI33QDesignerResourceBrowserInterface) +464 0 +472 0 +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerResourceBrowserInterface + size=40 align=8 + base size=40 base align=8 +QDesignerResourceBrowserInterface (0x0x7f542e0ec958) 0 + vptr=((& QDesignerResourceBrowserInterface::_ZTV33QDesignerResourceBrowserInterface) + 16) + QWidget (0x0x7f542e1f5460) 0 + primary-for QDesignerResourceBrowserInterface (0x0x7f542e0ec958) + QObject (0x0x7f542de29cc0) 0 + primary-for QWidget (0x0x7f542e1f5460) + QPaintDevice (0x0x7f542de29d20) 16 + vptr=((& QDesignerResourceBrowserInterface::_ZTV33QDesignerResourceBrowserInterface) + 464) + +Vtable for QDesignerSettingsInterface +QDesignerSettingsInterface::_ZTV26QDesignerSettingsInterface: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QDesignerSettingsInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QDesignerSettingsInterface + size=8 align=8 + base size=8 base align=8 +QDesignerSettingsInterface (0x0x7f542de29e40) 0 nearly-empty + vptr=((& QDesignerSettingsInterface::_ZTV26QDesignerSettingsInterface) + 16) + +Class QDesignerWidgetBoxInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerWidgetBoxInterface::QPrivateSignal (0x0x7f542de29f60) 0 empty + +Class QDesignerWidgetBoxInterface::Widget + size=8 align=8 + base size=8 base align=8 +QDesignerWidgetBoxInterface::Widget (0x0x7f542de7d000) 0 + +Class QDesignerWidgetBoxInterface::Category + size=56 align=8 + base size=56 base align=8 +QDesignerWidgetBoxInterface::Category (0x0x7f542de7d0c0) 0 + +Vtable for QDesignerWidgetBoxInterface +QDesignerWidgetBoxInterface::_ZTV27QDesignerWidgetBoxInterface: 77 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDesignerWidgetBoxInterface) +16 (int (*)(...))QDesignerWidgetBoxInterface::metaObject +24 (int (*)(...))QDesignerWidgetBoxInterface::qt_metacast +32 (int (*)(...))QDesignerWidgetBoxInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))__cxa_pure_virtual +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))__cxa_pure_virtual +456 (int (*)(...))__cxa_pure_virtual +464 (int (*)(...))__cxa_pure_virtual +472 (int (*)(...))__cxa_pure_virtual +480 (int (*)(...))__cxa_pure_virtual +488 (int (*)(...))__cxa_pure_virtual +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))__cxa_pure_virtual +528 (int (*)(...))__cxa_pure_virtual +536 (int (*)(...))-16 +544 (int (*)(...))(& _ZTI27QDesignerWidgetBoxInterface) +552 0 +560 0 +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerWidgetBoxInterface + size=40 align=8 + base size=40 base align=8 +QDesignerWidgetBoxInterface (0x0x7f542e0ec9c0) 0 + vptr=((& QDesignerWidgetBoxInterface::_ZTV27QDesignerWidgetBoxInterface) + 16) + QWidget (0x0x7f542e1f54d0) 0 + primary-for QDesignerWidgetBoxInterface (0x0x7f542e0ec9c0) + QObject (0x0x7f542de29ea0) 0 + primary-for QWidget (0x0x7f542e1f54d0) + QPaintDevice (0x0x7f542de29f00) 16 + vptr=((& QDesignerWidgetBoxInterface::_ZTV27QDesignerWidgetBoxInterface) + 552) + +Vtable for QDesignerWidgetDataBaseItemInterface +QDesignerWidgetDataBaseItemInterface::_ZTV36QDesignerWidgetDataBaseItemInterface: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI36QDesignerWidgetDataBaseItemInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual + +Class QDesignerWidgetDataBaseItemInterface + size=8 align=8 + base size=8 base align=8 +QDesignerWidgetDataBaseItemInterface (0x0x7f542df025a0) 0 nearly-empty + vptr=((& QDesignerWidgetDataBaseItemInterface::_ZTV36QDesignerWidgetDataBaseItemInterface) + 16) + +Class QDesignerWidgetDataBaseInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerWidgetDataBaseInterface::QPrivateSignal (0x0x7f542df026c0) 0 empty + +Vtable for QDesignerWidgetDataBaseInterface +QDesignerWidgetDataBaseInterface::_ZTV32QDesignerWidgetDataBaseInterface: 22 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QDesignerWidgetDataBaseInterface) +16 (int (*)(...))QDesignerWidgetDataBaseInterface::metaObject +24 (int (*)(...))QDesignerWidgetDataBaseInterface::qt_metacast +32 (int (*)(...))QDesignerWidgetDataBaseInterface::qt_metacall +40 (int (*)(...))QDesignerWidgetDataBaseInterface::~QDesignerWidgetDataBaseInterface +48 (int (*)(...))QDesignerWidgetDataBaseInterface::~QDesignerWidgetDataBaseInterface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDesignerWidgetDataBaseInterface::count +120 (int (*)(...))QDesignerWidgetDataBaseInterface::item +128 (int (*)(...))QDesignerWidgetDataBaseInterface::indexOf +136 (int (*)(...))QDesignerWidgetDataBaseInterface::insert +144 (int (*)(...))QDesignerWidgetDataBaseInterface::append +152 (int (*)(...))QDesignerWidgetDataBaseInterface::indexOfObject +160 (int (*)(...))QDesignerWidgetDataBaseInterface::indexOfClassName +168 (int (*)(...))QDesignerWidgetDataBaseInterface::core + +Class QDesignerWidgetDataBaseInterface + size=40 align=8 + base size=40 base align=8 +QDesignerWidgetDataBaseInterface (0x0x7f542dea9208) 0 + vptr=((& QDesignerWidgetDataBaseInterface::_ZTV32QDesignerWidgetDataBaseInterface) + 16) + QObject (0x0x7f542df02660) 0 + primary-for QDesignerWidgetDataBaseInterface (0x0x7f542dea9208) + +Class QDesignerWidgetFactoryInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerWidgetFactoryInterface::QPrivateSignal (0x0x7f542df75060) 0 empty + +Vtable for QDesignerWidgetFactoryInterface +QDesignerWidgetFactoryInterface::_ZTV31QDesignerWidgetFactoryInterface: 21 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI31QDesignerWidgetFactoryInterface) +16 (int (*)(...))QDesignerWidgetFactoryInterface::metaObject +24 (int (*)(...))QDesignerWidgetFactoryInterface::qt_metacast +32 (int (*)(...))QDesignerWidgetFactoryInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual + +Class QDesignerWidgetFactoryInterface + size=16 align=8 + base size=16 base align=8 +QDesignerWidgetFactoryInterface (0x0x7f542dea9a28) 0 + vptr=((& QDesignerWidgetFactoryInterface::_ZTV31QDesignerWidgetFactoryInterface) + 16) + QObject (0x0x7f542df75000) 0 + primary-for QDesignerWidgetFactoryInterface (0x0x7f542dea9a28) + +Vtable for QDesignerContainerExtension +QDesignerContainerExtension::_ZTV27QDesignerContainerExtension: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDesignerContainerExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual + +Class QDesignerContainerExtension + size=8 align=8 + base size=8 base align=8 +QDesignerContainerExtension (0x0x7f542df75120) 0 nearly-empty + vptr=((& QDesignerContainerExtension::_ZTV27QDesignerContainerExtension) + 16) + +Vtable for QDesignerDynamicPropertySheetExtension +QDesignerDynamicPropertySheetExtension::_ZTV38QDesignerDynamicPropertySheetExtension: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI38QDesignerDynamicPropertySheetExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QDesignerDynamicPropertySheetExtension + size=8 align=8 + base size=8 base align=8 +QDesignerDynamicPropertySheetExtension (0x0x7f542df75360) 0 nearly-empty + vptr=((& QDesignerDynamicPropertySheetExtension::_ZTV38QDesignerDynamicPropertySheetExtension) + 16) + +Vtable for QDesignerExtraInfoExtension +QDesignerExtraInfoExtension::_ZTV27QDesignerExtraInfoExtension: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDesignerExtraInfoExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QDesignerExtraInfoExtension + size=32 align=8 + base size=32 base align=8 +QDesignerExtraInfoExtension (0x0x7f542df75600) 0 + vptr=((& QDesignerExtraInfoExtension::_ZTV27QDesignerExtraInfoExtension) + 16) + +Vtable for QFormBuilder +QFormBuilder::_ZTV12QFormBuilder: 43 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QFormBuilder) +16 (int (*)(...))QFormBuilder::~QFormBuilder +24 (int (*)(...))QFormBuilder::~QFormBuilder +32 (int (*)(...))QAbstractFormBuilder::load +40 (int (*)(...))QAbstractFormBuilder::save +48 (int (*)(...))QAbstractFormBuilder::loadExtraInfo +56 (int (*)(...))QFormBuilder::create +64 (int (*)(...))QFormBuilder::create +72 (int (*)(...))QFormBuilder::create +80 (int (*)(...))QFormBuilder::create +88 (int (*)(...))QFormBuilder::create +96 (int (*)(...))QFormBuilder::create +104 (int (*)(...))QAbstractFormBuilder::addMenuAction +112 (int (*)(...))QFormBuilder::applyProperties +120 (int (*)(...))QAbstractFormBuilder::applyTabStops +128 (int (*)(...))QFormBuilder::createWidget +136 (int (*)(...))QFormBuilder::createLayout +144 (int (*)(...))QAbstractFormBuilder::createAction +152 (int (*)(...))QAbstractFormBuilder::createActionGroup +160 (int (*)(...))QAbstractFormBuilder::createCustomWidgets +168 (int (*)(...))QFormBuilder::createConnections +176 (int (*)(...))QAbstractFormBuilder::createResources +184 (int (*)(...))QFormBuilder::addItem +192 (int (*)(...))QFormBuilder::addItem +200 (int (*)(...))QAbstractFormBuilder::saveExtraInfo +208 (int (*)(...))QAbstractFormBuilder::saveDom +216 (int (*)(...))QAbstractFormBuilder::createActionRefDom +224 (int (*)(...))QAbstractFormBuilder::createDom +232 (int (*)(...))QAbstractFormBuilder::createDom +240 (int (*)(...))QAbstractFormBuilder::createDom +248 (int (*)(...))QAbstractFormBuilder::createDom +256 (int (*)(...))QAbstractFormBuilder::createDom +264 (int (*)(...))QAbstractFormBuilder::createDom +272 (int (*)(...))QAbstractFormBuilder::saveConnections +280 (int (*)(...))QAbstractFormBuilder::saveCustomWidgets +288 (int (*)(...))QAbstractFormBuilder::saveTabStops +296 (int (*)(...))QAbstractFormBuilder::saveResources +304 (int (*)(...))QAbstractFormBuilder::computeProperties +312 (int (*)(...))QAbstractFormBuilder::checkProperty +320 (int (*)(...))QAbstractFormBuilder::createProperty +328 (int (*)(...))QAbstractFormBuilder::layoutInfo +336 (int (*)(...))QFormBuilder::updateCustomWidgets + +Class QFormBuilder + size=16 align=8 + base size=16 base align=8 +QFormBuilder (0x0x7f542dea9a90) 0 + vptr=((& QFormBuilder::_ZTV12QFormBuilder) + 16) + QAbstractFormBuilder (0x0x7f542df75840) 0 + primary-for QFormBuilder (0x0x7f542dea9a90) + +Vtable for QDesignerLayoutDecorationExtension +QDesignerLayoutDecorationExtension::_ZTV34QDesignerLayoutDecorationExtension: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI34QDesignerLayoutDecorationExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual + +Class QDesignerLayoutDecorationExtension + size=8 align=8 + base size=8 base align=8 +QDesignerLayoutDecorationExtension (0x0x7f542df758a0) 0 nearly-empty + vptr=((& QDesignerLayoutDecorationExtension::_ZTV34QDesignerLayoutDecorationExtension) + 16) + +Vtable for QDesignerMemberSheetExtension +QDesignerMemberSheetExtension::_ZTV29QDesignerMemberSheetExtension: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QDesignerMemberSheetExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual + +Class QDesignerMemberSheetExtension + size=8 align=8 + base size=8 base align=8 +QDesignerMemberSheetExtension (0x0x7f542df75ae0) 0 nearly-empty + vptr=((& QDesignerMemberSheetExtension::_ZTV29QDesignerMemberSheetExtension) + 16) + +Vtable for QDesignerPropertySheetExtension +QDesignerPropertySheetExtension::_ZTV31QDesignerPropertySheetExtension: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI31QDesignerPropertySheetExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QDesignerPropertySheetExtension + size=8 align=8 + base size=8 base align=8 +QDesignerPropertySheetExtension (0x0x7f542df75d20) 0 nearly-empty + vptr=((& QDesignerPropertySheetExtension::_ZTV31QDesignerPropertySheetExtension) + 16) + +Class QExtensionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QExtensionManager::QPrivateSignal (0x0x7f542dfcb060) 0 empty + +Vtable for QExtensionManager +QExtensionManager::_ZTV17QExtensionManager: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QExtensionManager) +16 (int (*)(...))QExtensionManager::metaObject +24 (int (*)(...))QExtensionManager::qt_metacast +32 (int (*)(...))QExtensionManager::qt_metacall +40 (int (*)(...))QExtensionManager::~QExtensionManager +48 (int (*)(...))QExtensionManager::~QExtensionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QExtensionManager::registerExtensions +120 (int (*)(...))QExtensionManager::unregisterExtensions +128 (int (*)(...))QExtensionManager::extension +136 (int (*)(...))-16 +144 (int (*)(...))(& _ZTI17QExtensionManager) +152 (int (*)(...))QExtensionManager::_ZThn16_N17QExtensionManagerD1Ev +160 (int (*)(...))QExtensionManager::_ZThn16_N17QExtensionManagerD0Ev +168 (int (*)(...))QExtensionManager::_ZThn16_N17QExtensionManager18registerExtensionsEP25QAbstractExtensionFactoryRK7QString +176 (int (*)(...))QExtensionManager::_ZThn16_N17QExtensionManager20unregisterExtensionsEP25QAbstractExtensionFactoryRK7QString +184 (int (*)(...))QExtensionManager::_ZThn16_NK17QExtensionManager9extensionEP7QObjectRK7QString + +Class QExtensionManager + size=56 align=8 + base size=56 base align=8 +QExtensionManager (0x0x7f542e1f5d20) 0 + vptr=((& QExtensionManager::_ZTV17QExtensionManager) + 16) + QObject (0x0x7f542df75f60) 0 + primary-for QExtensionManager (0x0x7f542e1f5d20) + QAbstractExtensionManager (0x0x7f542dfcb000) 16 nearly-empty + vptr=((& QExtensionManager::_ZTV17QExtensionManager) + 152) + +Vtable for QDesignerTaskMenuExtension +QDesignerTaskMenuExtension::_ZTV26QDesignerTaskMenuExtension: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QDesignerTaskMenuExtension) +16 0 +24 0 +32 (int (*)(...))QDesignerTaskMenuExtension::preferredEditAction +40 (int (*)(...))__cxa_pure_virtual + +Class QDesignerTaskMenuExtension + size=8 align=8 + base size=8 base align=8 +QDesignerTaskMenuExtension (0x0x7f542dfcbae0) 0 nearly-empty + vptr=((& QDesignerTaskMenuExtension::_ZTV26QDesignerTaskMenuExtension) + 16) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dc5f120) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dc5f480) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dc5f660) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dc5f9c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dc5fba0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dc5ff00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dc89060) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dc893c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dc895a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dc89900) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dc89ae0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dc89e40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dcb1060) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dcb13c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dcb15a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dcb1900) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dcf41e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dcf4540) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dcf46c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dcf4a20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dcf4ba0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dcf4f00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dd180c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dd18420) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dd185a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dd18900) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dd18a80) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dd18de0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dd18f60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dd42300) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f542dd42480) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f542dd427e0) 0 empty + diff --git a/tests/auto/bic/data/QtDesigner.6.1.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtDesigner.6.1.0.linux-gcc-amd64.txt new file mode 100644 index 0000000..eff7747 --- /dev/null +++ b/tests/auto/bic/data/QtDesigner.6.1.0.linux-gcc-amd64.txt @@ -0,0 +1,21466 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f8691138060) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f8691183840) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f8691183a80) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7f86911b1ba0) 0 empty + +Class std::__make_unsigned_selector_base + size=1 align=1 + base size=0 base align=1 +std::__make_unsigned_selector_base (0x0x7f869140e3c0) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f869148a1e0) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f869148a2a0) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7f869148a780) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7f869148a7e0) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7f869148a840) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7f869148a8a0) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7f869148a900) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f869148a9c0) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f869148aa80) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f869148ab40) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f869148ac00) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f869148af60) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7f86914c3300) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7f86914c3360) 0 empty + +Class std::__swappable_with_details::__do_is_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_swappable_with_impl (0x0x7f86914c3600) 0 empty + +Class std::__swappable_with_details::__do_is_nothrow_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_nothrow_swappable_with_impl (0x0x7f86914c3660) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7f86914c3ea0) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f8691555480) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7f86914fa7b8) 0 empty + std::__nonesuch (0x0x7f8691555960) 0 empty + +Class std::in_place_t + size=1 align=1 + base size=0 base align=1 +std::in_place_t (0x0x7f86911da6c0) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f86911da960) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f86911da9c0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f8691237720) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f8691237780) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f86914fad00) 0 empty + std::input_iterator_tag (0x0x7f86912377e0) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f86914fad68) 0 empty + std::forward_iterator_tag (0x0x7f86914fadd0) 0 empty + std::input_iterator_tag (0x0x7f8691237840) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f86914fae38) 0 empty + std::bidirectional_iterator_tag (0x0x7f86914faea0) 0 empty + std::forward_iterator_tag (0x0x7f86914faf08) 0 empty + std::input_iterator_tag (0x0x7f86912378a0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f86912ed5a0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f86912ed6c0) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f86912ed9c0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f86912edcc0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f86912edde0) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f86913ae600) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f86913ae960) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f86913ae9c0) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f86913aea80) 0 + +Class __pthread_internal_slist + size=8 align=8 + base size=8 base align=8 +__pthread_internal_slist (0x0x7f86913aeae0) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7f86913aeb40) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7f86913aeba0) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7f86913aec00) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f86913aeea0) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f86905e7180) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f86905e71e0) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f86905e7f60) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f86912742d8) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7f86906a5180) 0 nearly-empty + primary-for std::bad_exception (0x0x7f86912742d8) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f86906a5360) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f8691274340) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7f86906a5720) 0 nearly-empty + primary-for std::bad_cast (0x0x7f8691274340) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f86912743a8) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7f86906a5900) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f86912743a8) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f86906a5ae0) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f86906da060) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f8691274410) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7f86906da720) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f8691274410) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f8691274478) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7f86912744e0) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f8691274478) + std::exception (0x0x7f86906da900) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f86912744e0) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f86906daae0) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7f86906dad20) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f86907904e0) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f869036b8a0) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f869036b960) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f868ffe1840) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f868ffe1900) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f868ffe1960) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f868ffe19c0) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f868ffe1a20) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f868ffe1b40) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f868ffe1ba0) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f86900a1240) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f86900a13c0) 0 empty + +Class _G_fpos_t + size=16 align=8 + base size=16 base align=8 +_G_fpos_t (0x0x7f868fec7240) 0 + +Class _G_fpos64_t + size=16 align=8 + base size=16 base align=8 +_G_fpos64_t (0x0x7f868fec72a0) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f868fec7300) 0 + +Class _IO_cookie_io_functions_t + size=32 align=8 + base size=32 base align=8 +_IO_cookie_io_functions_t (0x0x7f868fec7360) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f868fae0ae0) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f868fb09478) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7f868fae0ba0) 0 nearly-empty + primary-for std::logic_error (0x0x7f868fb09478) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f868fb094e0) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7f868fb09548) 0 + primary-for std::domain_error (0x0x7f868fb094e0) + std::exception (0x0x7f868fae0c00) 0 nearly-empty + primary-for std::logic_error (0x0x7f868fb09548) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f868fb095b0) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7f868fb09618) 0 + primary-for std::invalid_argument (0x0x7f868fb095b0) + std::exception (0x0x7f868fae0c60) 0 nearly-empty + primary-for std::logic_error (0x0x7f868fb09618) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f868fb09680) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7f868fb096e8) 0 + primary-for std::length_error (0x0x7f868fb09680) + std::exception (0x0x7f868fae0cc0) 0 nearly-empty + primary-for std::logic_error (0x0x7f868fb096e8) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f868fb09750) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7f868fb097b8) 0 + primary-for std::out_of_range (0x0x7f868fb09750) + std::exception (0x0x7f868fae0d20) 0 nearly-empty + primary-for std::logic_error (0x0x7f868fb097b8) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f868fb09820) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7f868fae0d80) 0 nearly-empty + primary-for std::runtime_error (0x0x7f868fb09820) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f868fb09888) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7f868fb098f0) 0 + primary-for std::range_error (0x0x7f868fb09888) + std::exception (0x0x7f868fae0de0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f868fb098f0) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f868fb09958) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7f868fb099c0) 0 + primary-for std::overflow_error (0x0x7f868fb09958) + std::exception (0x0x7f868fae0e40) 0 nearly-empty + primary-for std::runtime_error (0x0x7f868fb099c0) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f868fb09a28) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7f868fb09a90) 0 + primary-for std::underflow_error (0x0x7f868fb09a28) + std::exception (0x0x7f868fae0ea0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f868fb09a90) + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7f868fb831e0) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f868fb83240) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f868fb833c0) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f868fb83480) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f868fb09d00) 0 + std::__uses_alloc_base (0x0x7f868fb83420) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f868f8f1a80) 0 empty + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f868f9ba138) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7f868f5c6180) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f868f9ba138) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f868f5c6240) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f868f5c62a0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f868f5c65a0) 0 + +Class std::__detail::_Identity + size=1 align=1 + base size=0 base align=1 +std::__detail::_Identity (0x0x7f868f69d420) 0 empty + +Class std::__detail::_Select1st + size=1 align=1 + base size=0 base align=1 +std::__detail::_Select1st (0x0x7f868f69d4e0) 0 empty + +Class std::__detail::_Hash_node_base + size=8 align=8 + base size=8 base align=8 +std::__detail::_Hash_node_base (0x0x7f868f69d9c0) 0 + +Class std::__detail::_Mod_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mod_range_hashing (0x0x7f868f6c4840) 0 empty + +Class std::__detail::_Default_ranged_hash + size=1 align=1 + base size=0 base align=1 +std::__detail::_Default_ranged_hash (0x0x7f868f6c4900) 0 empty + +Class std::__detail::_Prime_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Prime_rehash_policy (0x0x7f868f6c4960) 0 + +Class std::__detail::_Mask_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mask_range_hashing (0x0x7f868f6c4d20) 0 empty + +Class std::__detail::_Power2_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Power2_rehash_policy (0x0x7f868f6c4e40) 0 + +Class std::__detail::_Equality_base + size=1 align=1 + base size=0 base align=1 +std::__detail::_Equality_base (0x0x7f868f49ff00) 0 empty + +Class std::_Enable_default_constructor_tag + size=1 align=1 + base size=0 base align=1 +std::_Enable_default_constructor_tag (0x0x7f868f4db7e0) 0 empty + +Class std::nullopt_t + size=1 align=1 + base size=0 base align=1 +std::nullopt_t (0x0x7f868f5231e0) 0 empty + +Vtable for std::bad_optional_access +std::bad_optional_access::_ZTVSt19bad_optional_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt19bad_optional_access) +16 (int (*)(...))std::bad_optional_access::~bad_optional_access +24 (int (*)(...))std::bad_optional_access::~bad_optional_access +32 (int (*)(...))std::bad_optional_access::what + +Class std::bad_optional_access + size=8 align=8 + base size=8 base align=8 +std::bad_optional_access (0x0x7f868f4ea068) 0 nearly-empty + vptr=((& std::bad_optional_access::_ZTVSt19bad_optional_access) + 16) + std::exception (0x0x7f868f523420) 0 nearly-empty + primary-for std::bad_optional_access (0x0x7f868f4ea068) + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f868ebc6d80) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f868eea8b60) 0 + std::iterator (0x0x7f868ebe8540) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f868eea8c30) 0 + std::_Bit_iterator_base (0x0x7f868eea8c98) 0 + std::iterator (0x0x7f868ebe8ae0) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f868eea8d68) 0 + std::_Bit_iterator_base (0x0x7f868eea8dd0) 0 + std::iterator (0x0x7f868ec202a0) 0 empty + +Class __pstl::execution::v1::sequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::sequenced_policy (0x0x7f868e9f77e0) 0 empty + +Class __pstl::execution::v1::parallel_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_policy (0x0x7f868e9f7960) 0 empty + +Class __pstl::execution::v1::parallel_unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_unsequenced_policy (0x0x7f868e9f7ae0) 0 empty + +Class __pstl::execution::v1::unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::unsequenced_policy (0x0x7f868e9f7c60) 0 empty + +Class std::__detail::__variant::__variant_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_cookie (0x0x7f868eb2b780) 0 empty + +Class std::__detail::__variant::__variant_idx_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_idx_cookie (0x0x7f868eb2b7e0) 0 empty + +Class std::monostate + size=1 align=1 + base size=0 base align=1 +std::monostate (0x0x7f868e8082a0) 0 empty + +Vtable for std::bad_variant_access +std::bad_variant_access::_ZTVSt18bad_variant_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt18bad_variant_access) +16 (int (*)(...))std::bad_variant_access::~bad_variant_access +24 (int (*)(...))std::bad_variant_access::~bad_variant_access +32 (int (*)(...))std::bad_variant_access::what + +Class std::bad_variant_access + size=16 align=8 + base size=16 base align=8 +std::bad_variant_access (0x0x7f868e7ce1a0) 0 + vptr=((& std::bad_variant_access::_ZTVSt18bad_variant_access) + 16) + std::exception (0x0x7f868e82d7e0) 0 nearly-empty + primary-for std::bad_variant_access (0x0x7f868e7ce1a0) + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f868e8f41e0) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f868e8f4240) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f868e8f44e0) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f868e8f4d20) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f868e947de0) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f868e5dcc00) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f868e985410) 0 + std::__atomic_flag_base (0x0x7f868e5dcc60) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f868e5666e8) 0 + QAtomicInteger (0x0x7f868e566750) 0 + QBasicAtomicInteger (0x0x7f868e55db40) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f868dcfdde0) 0 empty + +Class QKeyCombination + size=4 align=4 + base size=4 base align=4 +QKeyCombination (0x0x7f868dcfde40) 0 + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f868d9e7180) 0 + +Class QMethodRawArguments + size=8 align=8 + base size=8 base align=8 +QMethodRawArguments (0x0x7f868d9e78a0) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f868d9e7900) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f868dd5cb60) 0 + QGenericArgument (0x0x7f868d9e7ba0) 0 + +Class QMetaObject::SuperData + size=8 align=8 + base size=8 base align=8 +QMetaObject::SuperData (0x0x7f868da1c0c0) 0 + +Class QMetaObject::Data + size=56 align=8 + base size=56 base align=8 +QMetaObject::Data (0x0x7f868da1c120) 0 + +Class QMetaObject + size=56 align=8 + base size=56 base align=8 +QMetaObject (0x0x7f868da1c060) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f868da1ca80) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f868da944e0) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f868da94ea0) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f868db769c0) 0 + +Class QArrayData + size=16 align=8 + base size=16 base align=8 +QArrayData (0x0x7f868db76d20) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f868d821720) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f868d821840) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f868d821c00) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f868d821ea0) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f868d8680c0) 0 + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f868d8b31e0) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f868d8b3540) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f868d8b3d20) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f868d908068) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7f868d9080d0) 0 + primary-for std::system_error (0x0x7f868d908068) + std::exception (0x0x7f868d8f3900) 0 nearly-empty + primary-for std::runtime_error (0x0x7f868d9080d0) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f868d908410) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7f868d908478) 0 + primary-for std::ios_base::failure (0x0x7f868d908410) + std::runtime_error (0x0x7f868d9084e0) 0 + primary-for std::system_error (0x0x7f868d908478) + std::exception (0x0x7f868d9520c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f868d9084e0) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f868d952120) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f868d952180) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f868d9521e0) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f868d952060) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f868d5e6de0) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f868d6e7120) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f868d255068 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f868d255138 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7f868d255680 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f868d255750 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f868d255d00) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7f868d28cae0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f868d255d00) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f868d255d68) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7f868d28cc00) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f868d255d68) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f868d255dd0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7f868d28cd20) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f868d255dd0) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f868d255ea0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7f868d28ce40) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f868d255ea0) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f868d2b8720) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f868d2b8a80) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f868d2b8d80) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f868d2e30c0) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f868d255208) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7f868d3678a0) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f868d255208) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f868cfd6660) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7f868cfd6ba0) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f868d11e9c0) 0 + +Class QByteArrayView + size=16 align=8 + base size=16 base align=8 +QByteArrayView (0x0x7f868ce930c0) 0 + +Class QByteArray + size=24 align=8 + base size=24 base align=8 +QByteArray (0x0x7f868cf7ba80) 0 + +Class QByteArray::FromBase64Result + size=32 align=8 + base size=28 base align=8 +QByteArray::FromBase64Result (0x0x7f868cdc1d20) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f868ca4b900) 0 + +Class QChar::fromUcs4(char32_t)::R + size=4 align=2 + base size=4 base align=2 +QChar::fromUcs4(char32_t)::R (0x0x7f868cbb5780) 0 + +Class QtPrivate::hide_char8_t + size=1 align=1 + base size=0 base align=1 +QtPrivate::hide_char8_t (0x0x7f868cbb5ba0) 0 empty + +Class QtPrivate::wrap_char + size=1 align=1 + base size=0 base align=1 +QtPrivate::wrap_char (0x0x7f868cbb5c00) 0 empty + +Class QAnyStringView + size=16 align=8 + base size=16 base align=8 +QAnyStringView (0x0x7f868c833d80) 0 + +Class QStringTokenizerBaseBase::tokenizer_state + size=24 align=8 + base size=24 base align=8 +QStringTokenizerBaseBase::tokenizer_state (0x0x7f868c9343c0) 0 + +Class QStringTokenizerBaseBase + size=8 align=4 + base size=8 base align=4 +QStringTokenizerBaseBase (0x0x7f868c934360) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f868c98c3c0) 0 + +Class QString + size=24 align=8 + base size=24 base align=8 +QString (0x0x7f868c6f2540) 0 + +Class QtPrivate::ArgBase + size=1 align=1 + base size=1 base align=1 +QtPrivate::ArgBase (0x0x7f868c2e9900) 0 + +Class QtPrivate::QStringViewArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QStringViewArg (0x0x7f868c2e6c98) 0 + QtPrivate::ArgBase (0x0x7f868c2e9960) 0 + +Class QtPrivate::QLatin1StringArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QLatin1StringArg (0x0x7f868c2e6d68) 0 + QtPrivate::ArgBase (0x0x7f868c2e9ba0) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f868c398000) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f868c3980c0) 0 empty + +Class QStringMatcher + size=312 align=8 + base size=312 base align=8 +QStringMatcher (0x0x7f868c19e5a0) 0 + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f868be35720) 0 empty + +Class QtPrivate::CompareAgainstLiteralZero + size=1 align=1 + base size=0 base align=1 +QtPrivate::CompareAgainstLiteralZero (0x0x7f868be5f4e0) 0 empty + +Class QPartialOrdering + size=1 align=1 + base size=1 base align=1 +QPartialOrdering (0x0x7f868be5f720) 0 + +Class QIODeviceBase + size=1 align=1 + base size=0 base align=1 +QIODeviceBase (0x0x7f868bef7840) 0 empty + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f868c03b958) 0 + QIODeviceBase (0x0x7f868bef78a0) 0 empty + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f868bef7a20) 0 + +Class QtMetaContainerPrivate::QMetaContainerInterface + size=120 align=8 + base size=120 base align=8 +QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f868bf78e40) 0 + +Class QtMetaContainerPrivate::QMetaSequenceInterface + size=216 align=8 + base size=216 base align=8 +QtMetaContainerPrivate::QMetaSequenceInterface (0x0x7f868bbe2138) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f868bf78f00) 0 + +Class QtMetaContainerPrivate::QMetaAssociationInterface + size=240 align=8 + base size=240 base align=8 +QtMetaContainerPrivate::QMetaAssociationInterface (0x0x7f868bbe2208) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f868bc1e000) 0 + +Class QMetaContainer + size=8 align=8 + base size=8 base align=8 +QMetaContainer (0x0x7f868bca1ae0) 0 + +Class QMetaSequence + size=8 align=8 + base size=8 base align=8 +QMetaSequence (0x0x7f868bbe25b0) 0 + QMetaContainer (0x0x7f868bca1cc0) 0 + +Class QMetaAssociation + size=8 align=8 + base size=8 base align=8 +QMetaAssociation (0x0x7f868bbe2618) 0 + QMetaContainer (0x0x7f868bcc40c0) 0 + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f868bdc1420) 0 + +Class std::__detail::_List_node_header + size=24 align=8 + base size=24 base align=8 +std::__detail::_List_node_header (0x0x7f868bd59680) 0 + std::__detail::_List_node_base (0x0x7f868bdc1480) 0 + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f868ba98540) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7f868ba988a0) 0 + +Class QMetaType + size=8 align=8 + base size=8 base align=8 +QMetaType (0x0x7f868b902ea0) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f868b984540) 0 + +Class QtPrivate::QMetaTypeInterface + size=112 align=8 + base size=112 base align=8 +QtPrivate::QMetaTypeInterface (0x0x7f868b4a03c0) 0 + +Class QtPrivate::QTypeNormalizer + size=16 align=8 + base size=16 base align=8 +QtPrivate::QTypeNormalizer (0x0x7f868b4a0420) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f868b3a5ae0) 0 + +Class QAdoptSharedDataTag + size=1 align=1 + base size=0 base align=1 +QAdoptSharedDataTag (0x0x7f868b3a5e40) 0 empty + +Class QtPrivate::RefCounted + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCounted (0x0x7f868b019ea0) 0 + +Class QPropertyBindingPrivatePtr + size=8 align=8 + base size=8 base align=8 +QPropertyBindingPrivatePtr (0x0x7f868b030000) 0 + +Class QUntypedPropertyData::InheritsQUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData::InheritsQUntypedPropertyData (0x0x7f868b081660) 0 empty + +Class QUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData (0x0x7f868b081600) 0 empty + +Class QtPrivate::BindingFunctionVTable + size=32 align=8 + base size=32 base align=8 +QtPrivate::BindingFunctionVTable (0x0x7f868b0816c0) 0 + +Class QtPrivate::QPropertyBindingFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::QPropertyBindingFunction (0x0x7f868b081b40) 0 + +Class QtPrivate::QPropertyBindingData + size=8 align=8 + base size=8 base align=8 +QtPrivate::QPropertyBindingData (0x0x7f868b081ba0) 0 + +Class std::experimental::fundamentals_v2::source_location + size=24 align=8 + base size=24 base align=8 +std::experimental::fundamentals_v2::source_location (0x0x7f868b0a91e0) 0 + +Class QPropertyBindingSourceLocation + size=24 align=8 + base size=24 base align=8 +QPropertyBindingSourceLocation (0x0x7f868b0a9900) 0 + +Class QPropertyBindingError + size=8 align=8 + base size=8 base align=8 +QPropertyBindingError (0x0x7f868b0a9c00) 0 + +Class QUntypedPropertyBinding + size=8 align=8 + base size=8 base align=8 +QUntypedPropertyBinding (0x0x7f868b0a9d20) 0 + +Class QPropertyObserverBase + size=24 align=8 + base size=24 base align=8 +QPropertyObserverBase (0x0x7f868b0a9f60) 0 + +Class QPropertyObserver + size=24 align=8 + base size=24 base align=8 +QPropertyObserver (0x0x7f868b085750) 0 + QPropertyObserverBase (0x0x7f868b0f7120) 0 + +Class QtPrivate::QBindableInterface + size=56 align=8 + base size=56 base align=8 +QtPrivate::QBindableInterface (0x0x7f868b13f060) 0 + +Class QUntypedBindable + size=16 align=8 + base size=16 base align=8 +QUntypedBindable (0x0x7f868b1611e0) 0 + +Class QBindingStatus + size=16 align=8 + base size=16 base align=8 +QBindingStatus (0x0x7f868b198600) 0 + +Class QBindingStorage + size=16 align=8 + base size=16 base align=8 +QBindingStorage (0x0x7f868b198660) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f868aea2300) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f868af52060) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=80 align=8 + base size=80 base align=8 +QObjectData (0x0x7f868abc79c0) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f868ac3c360) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f868ac3c300) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f868acf62a0) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f868acf6b40) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f868ac319c0) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7f868acf6ae0) 0 + primary-for QAbstractAnimation (0x0x7f868ac319c0) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f868acf6ea0) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f868ac31a28) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7f868acf6e40) 0 + primary-for QAnimationDriver (0x0x7f868ac31a28) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f868ad350c0) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f868ac31a90) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7f868ad35060) 0 + primary-for QEventLoop (0x0x7f868ac31a90) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f868ad35540) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f868ad35600) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f868ad35660) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QAbstractEventDispatcher::startingUp +200 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f868ac31c30) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7f868ad355a0) 0 + primary-for QAbstractEventDispatcher (0x0x7f868ac31c30) + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f868ad93de0) 0 empty + +Class QStringConverterBase::State + size=48 align=8 + base size=48 base align=8 +QStringConverterBase::State (0x0x7f868a860c60) 0 + +Class QStringConverterBase + size=1 align=1 + base size=0 base align=1 +QStringConverterBase (0x0x7f868a860c00) 0 empty + +Class QStringConverter::Interface + size=40 align=8 + base size=40 base align=8 +QStringConverter::Interface (0x0x7f868a8827e0) 0 + +Class QStringConverter + size=56 align=8 + base size=56 base align=8 +QStringConverter (0x0x7f868ada4d68) 0 + QStringConverterBase (0x0x7f868a882780) 0 empty + +Class QStringEncoder + size=56 align=8 + base size=56 base align=8 +QStringEncoder (0x0x7f868ada4dd0) 0 + QStringConverter (0x0x7f868ada4e38) 0 + QStringConverterBase (0x0x7f868a8d31e0) 0 empty + +Class QStringDecoder + size=56 align=8 + base size=56 base align=8 +QStringDecoder (0x0x7f868ada4ea0) 0 + QStringConverter (0x0x7f868ada4f08) 0 + QStringConverterBase (0x0x7f868a8fa060) 0 empty + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f868ada4f70) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + QIODeviceBase (0x0x7f868a8fad20) 0 empty + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f868a95d420) 0 + +Class QContiguousCacheData + size=40 align=8 + base size=40 base align=8 +QContiguousCacheData (0x0x7f868a5ee600) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f868a644060) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f868a6441e0) 0 + +Class QtPrivate::EnableInternalData + size=1 align=1 + base size=0 base align=1 +QtPrivate::EnableInternalData (0x0x7f868a6ef3c0) 0 empty + +Class QDebug::Stream + size=88 align=8 + base size=88 base align=8 +QDebug::Stream (0x0x7f868a7153c0) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f868a6c3a28) 0 + QIODeviceBase (0x0x7f868a715360) 0 empty + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f868a43c300) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f868a43c3c0) 0 empty + +Class QVariant::PrivateShared + size=8 align=8 + base size=8 base align=8 +QVariant::PrivateShared (0x0x7f868a1e2de0) 0 + +Class QVariant::Private + size=32 align=8 + base size=32 base align=8 +QVariant::Private (0x0x7f868a1e2e40) 0 + +Class QVariant + size=32 align=8 + base size=32 base align=8 +QVariant (0x0x7f868a1e2d80) 0 + +Class QtPrivate::QVariantTypeCoercer + size=32 align=8 + base size=32 base align=8 +QtPrivate::QVariantTypeCoercer (0x0x7f8689fd25a0) 0 + +Class QVariantConstPointer + size=32 align=8 + base size=32 base align=8 +QVariantConstPointer (0x0x7f8689fd27e0) 0 + +Class QModelRoleData + size=40 align=8 + base size=40 base align=8 +QModelRoleData (0x0x7f8689fd29c0) 0 + +Class QModelRoleDataSpan + size=16 align=8 + base size=16 base align=8 +QModelRoleDataSpan (0x0x7f868a019900) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f868a05d900) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f868a0acae0) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f868a13e3c0) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractItemModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractItemModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f868a136bc8) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7f868a13e360) 0 + primary-for QAbstractItemModel (0x0x7f868a136bc8) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f8689e7a0c0) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractTableModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f8689de6478) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7f8689de64e0) 0 + primary-for QAbstractTableModel (0x0x7f8689de6478) + QObject (0x0x7f8689e7a060) 0 + primary-for QAbstractItemModel (0x0x7f8689de64e0) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f8689e7a1e0) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractListModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f8689de6548) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7f8689de65b0) 0 + primary-for QAbstractListModel (0x0x7f8689de6548) + QObject (0x0x7f8689e7a180) 0 + primary-for QAbstractItemModel (0x0x7f8689de65b0) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f8689ec2600) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f8689ec26c0) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QAbstractProxyModel::setSourceModel +416 (int (*)(...))__cxa_pure_virtual +424 (int (*)(...))__cxa_pure_virtual +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f8689ec6958) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7f8689ec69c0) 0 + primary-for QAbstractProxyModel (0x0x7f8689ec6958) + QObject (0x0x7f8689ec2660) 0 + primary-for QAbstractItemModel (0x0x7f8689ec69c0) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f8689ec28a0) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f8689ec6a28) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7f8689ec6a90) 0 + primary-for QAnimationGroup (0x0x7f8689ec6a28) + QObject (0x0x7f8689ec2840) 0 + primary-for QAbstractAnimation (0x0x7f8689ec6a90) + +Class QAssociativeIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeIterator (0x0x7f8689ec6bc8) 0 + QIterator (0x0x7f8689ec6c30) 0 + QBaseIterator (0x0x7f8689ec2cc0) 0 + +Class QAssociativeConstIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeConstIterator (0x0x7f8689ec6d68) 0 + QConstIterator (0x0x7f8689ec6dd0) 0 + QBaseIterator (0x0x7f8689f31240) 0 + +Class QAssociativeIterable + size=24 align=8 + base size=24 base align=8 +QAssociativeIterable (0x0x7f8689ec6ea0) 0 + QIterable (0x0x7f8689f31780) 0 + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f8689c332a0) 0 + +Class QBitArray + size=24 align=8 + base size=24 base align=8 +QBitArray (0x0x7f8689c91000) 0 + +Class QBitRef + size=16 align=8 + base size=16 base align=8 +QBitRef (0x0x7f8689c91f00) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f8689ceca80) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f8689c07850) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7f8689cec9c0) 0 + primary-for QIODevice (0x0x7f8689c07850) + QIODeviceBase (0x0x7f8689ceca20) 0 empty + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f8689cecde0) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f8689ce9dd0) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7f8689c078c0) 0 + primary-for QBuffer (0x0x7f8689ce9dd0) + QObject (0x0x7f8689cecd20) 0 + primary-for QIODevice (0x0x7f8689c078c0) + QIODeviceBase (0x0x7f8689cecd80) 0 empty + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f8689d3a060) 0 + +Class QByteArrayMatcher + size=1056 align=8 + base size=1056 base align=8 +QByteArrayMatcher (0x0x7f8689d3a000) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f8689d3a1e0) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f8689d3a180) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f8689d8e9c0) 0 + +Class QCalendar::YearMonthDay + size=12 align=4 + base size=12 base align=4 +QCalendar::YearMonthDay (0x0x7f8689aa3780) 0 + +Class QCalendar + size=8 align=8 + base size=8 base align=8 +QCalendar (0x0x7f8689aa3720) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f8689aa3ae0) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f8689b49120) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f8689b94360) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f8689b943c0) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f8689b94300) 0 + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7f868981b600) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f868981bea0) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f86898caf60) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel + size=1 align=1 + base size=0 base align=1 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel (0x0x7f8689956720) 0 empty + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f86899567e0) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator + size=24 align=8 + base size=17 base align=8 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator (0x0x7f8689956960) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f86895e5960) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f86896ce4e0) 0 + +Class QCborParserError + size=16 align=8 + base size=16 base align=8 +QCborParserError (0x0x7f868973d660) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7f868973d720) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7f8689475000) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7f86894b2540) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7f86894b25a0) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7f86894b24e0) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7f868959fb40) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7f868959fba0) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7f868959fae0) 0 + +Class qfloat16::Wrap + size=2 align=2 + base size=2 base align=2 +qfloat16::Wrap (0x0x7f86893b6c00) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7f86893b6ba0) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7f8689097c60) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7f8689105600) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f8689136060) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f8689136240) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f8688dddc60) 0 + +Class QEvent::InputEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::InputEventTag (0x0x7f8688e64540) 0 empty + +Class QEvent::PointerEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::PointerEventTag (0x0x7f8688e645a0) 0 empty + +Class QEvent::SinglePointEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::SinglePointEventTag (0x0x7f8688e64600) 0 empty + +Vtable for QEvent +QEvent::_ZTV6QEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QEvent + size=16 align=8 + base size=16 base align=8 +QEvent (0x0x7f8688e644e0) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QTimerEvent::clone + +Class QTimerEvent + size=24 align=8 + base size=20 base align=8 +QTimerEvent (0x0x7f8688e59d00) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7f8688e64f60) 0 + primary-for QTimerEvent (0x0x7f8688e59d00) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QChildEvent::clone + +Class QChildEvent + size=24 align=8 + base size=24 base align=8 +QChildEvent (0x0x7f8688e59d68) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7f8688ec7480) 0 + primary-for QChildEvent (0x0x7f8688e59d68) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDynamicPropertyChangeEvent::clone + +Class QDynamicPropertyChangeEvent + size=40 align=8 + base size=40 base align=8 +QDynamicPropertyChangeEvent (0x0x7f8688e59dd0) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7f8688ec78a0) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f8688e59dd0) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDeferredDeleteEvent::clone + +Class QDeferredDeleteEvent + size=24 align=8 + base size=20 base align=8 +QDeferredDeleteEvent (0x0x7f8688e59e38) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7f8688ec7b40) 0 + primary-for QDeferredDeleteEvent (0x0x7f8688e59e38) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f8688ec7ea0) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f8688e59ea0) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7f8688ec7e40) 0 + primary-for QCoreApplication (0x0x7f8688e59ea0) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f8688f0f0c0) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7f8688f0f1e0) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +224 (int (*)(...))QConcatenateTablesProxyModel::mimeData +232 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +240 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QConcatenateTablesProxyModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QConcatenateTablesProxyModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7f8688e59f08) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7f8688e59f70) 0 + primary-for QConcatenateTablesProxyModel (0x0x7f8688e59f08) + QObject (0x0x7f8688f0f180) 0 + primary-for QAbstractItemModel (0x0x7f8688e59f70) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f8688f0f360) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f8688f0f480) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f8688f0f780) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f8688c3ed20) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFileDevice::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f8688c4a548) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7f8688c5a000) 0 + primary-for QFileDevice (0x0x7f8688c4a548) + QObject (0x0x7f8688c3ec60) 0 + primary-for QIODevice (0x0x7f8688c5a000) + QIODeviceBase (0x0x7f8688c3ecc0) 0 empty + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f8688c858a0) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f8688c4a958) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7f8688c4a9c0) 0 + primary-for QFile (0x0x7f8688c4a958) + QIODevice (0x0x7f8688cee000) 0 + primary-for QFileDevice (0x0x7f8688c4a9c0) + QObject (0x0x7f8688c857e0) 0 + primary-for QIODevice (0x0x7f8688cee000) + QIODeviceBase (0x0x7f8688c85840) 0 empty + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f8688c85b40) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f8688d7a5a0) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f8688a36840) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f8688a36c00) 0 + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f8688b0d5b0) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7f8688b47360) 0 nearly-empty + primary-for QException (0x0x7f8688b0d5b0) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=16 align=8 + base size=16 base align=8 +QUnhandledException (0x0x7f8688b0d618) 0 + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7f8688b0d680) 0 nearly-empty + primary-for QUnhandledException (0x0x7f8688b0d618) + std::exception (0x0x7f8688b473c0) 0 nearly-empty + primary-for QException (0x0x7f8688b0d680) + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f8688b93240) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f8688b932a0) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f8688b934e0) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f8688b91888) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7f8688b93480) 0 + primary-for QFileSelector (0x0x7f8688b91888) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f8688b936c0) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f8688b918f0) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7f8688b93660) 0 + primary-for QFileSystemWatcher (0x0x7f8688b918f0) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=9 base align=8 +QRunnable (0x0x7f8688b93840) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f8688b93a20) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f8688b919c0) 0 + QBasicMutex (0x0x7f8688814780) 0 + +Class QRecursiveMutex + size=24 align=8 + base size=24 base align=8 +QRecursiveMutex (0x0x7f8688814ba0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f86888821e0) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f86888827e0) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f8688902480) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f86885e1ea0) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f86885f3c30) 0 + std::__mutex_base (0x0x7f86885e1f00) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f868860a0c0) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f868860a120) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f868860a180) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f868860aba0) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f86885f3c98) 0 + std::__recursive_mutex_base (0x0x7f868860ac00) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f8688b14850) 0 + std::__mutex_base (0x0x7f8688644000) 0 + std::__timed_mutex_impl (0x0x7f8688644060) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f8688b148c0) 0 + std::__recursive_mutex_base (0x0x7f8688644420) 0 + std::__timed_mutex_impl (0x0x7f8688644480) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f868867f2a0) 0 + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f868867f4e0) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7f86886d4420) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f86886d4480) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f86886d43c0) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f86884b46c0) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f86884b4a80) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f86884b4ae0) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f868859e060) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f86884a8ea0) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7f86884a8f08) 0 + primary-for std::future_error (0x0x7f86884a8ea0) + std::exception (0x0x7f868859e780) 0 nearly-empty + primary-for std::logic_error (0x0x7f86884a8f08) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f868859eea0) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f868859ee40) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f8688318900) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f86883196e8) 0 + std::__at_thread_exit_elt (0x0x7f86883189c0) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f86881d8060) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f868859ede0) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f8687fbeaf8) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7f8687c1b6c0) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f8687fbeaf8) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f8687c1bf60) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f8687fbee38) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7f8687c1bf00) 0 + primary-for QThread (0x0x7f8687fbee38) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f8687c52360) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f8687fbeea0) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7f8687c52300) 0 + primary-for QThreadPool (0x0x7f8687fbeea0) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f8687a8e240) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f86879d5d00) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7f8687a8e1e0) 0 + primary-for QFutureWatcherBase (0x0x7f86879d5d00) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f8687a8e780) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QIdentityProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QIdentityProxyModel::insertRows +272 (int (*)(...))QIdentityProxyModel::insertColumns +280 (int (*)(...))QIdentityProxyModel::removeRows +288 (int (*)(...))QIdentityProxyModel::removeColumns +296 (int (*)(...))QIdentityProxyModel::moveRows +304 (int (*)(...))QIdentityProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QIdentityProxyModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QIdentityProxyModel::setSourceModel +416 (int (*)(...))QIdentityProxyModel::mapToSource +424 (int (*)(...))QIdentityProxyModel::mapFromSource +432 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +440 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f86879d5f08) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7f86879d5f70) 0 + primary-for QIdentityProxyModel (0x0x7f86879d5f08) + QAbstractItemModel (0x0x7f8687aa7000) 0 + primary-for QAbstractProxyModel (0x0x7f86879d5f70) + QObject (0x0x7f8687a8e720) 0 + primary-for QAbstractItemModel (0x0x7f8687aa7000) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f8687a8e900) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f8687b1c4e0) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f8687b14d68) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7f8687b1c480) 0 + primary-for QItemSelectionModel (0x0x7f8687b14d68) + +Class QItemSelection + size=24 align=8 + base size=24 base align=8 +QItemSelection (0x0x7f8687b6c270) 0 + QList (0x0x7f8687b6c2d8) 0 + QListSpecialMethods (0x0x7f8687b6c340) 0 empty + QListSpecialMethodsBase (0x0x7f8687b1cea0) 0 empty + +Class QJsonValue + size=24 align=8 + base size=24 base align=8 +QJsonValue (0x0x7f86877e9c00) 0 + +Class QJsonValueRef + size=16 align=8 + base size=16 base align=8 +QJsonValueRef (0x0x7f868781f0c0) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::iterator (0x0x7f8687868300) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::const_iterator (0x0x7f8687868360) 0 + +Class QJsonArray + size=8 align=8 + base size=8 base align=8 +QJsonArray (0x0x7f86878682a0) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f86878fbd20) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f86878fbd80) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::iterator (0x0x7f86876aa300) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::const_iterator (0x0x7f86876aa360) 0 + +Class QJsonObject + size=8 align=8 + base size=8 base align=8 +QJsonObject (0x0x7f86876aa2a0) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f8687747e40) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=24 align=8 + base size=24 base align=8 +QLibrary (0x0x7f8687753410) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7f8687747de0) 0 + primary-for QLibrary (0x0x7f8687753410) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f8687780480) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f8687780420) 0 + +Class QTypeRevision + size=2 align=1 + base size=2 base align=1 +QTypeRevision (0x0x7f868745ec00) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f86874d13c0) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f86874d1480) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f868752db40) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f86875a54e0) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f86871ebae0) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f8687269300) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f8687269540) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f86872694e0) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f86872a7420) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f8687317d20) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f86873a1a80) 0 + +Class QMetaMethod::Data + size=8 align=8 + base size=8 base align=8 +QMetaMethod::Data (0x0x7f86873a1b40) 0 + +Class QMetaMethod + size=16 align=8 + base size=16 base align=8 +QMetaMethod (0x0x7f86873a1ae0) 0 + +Class QMetaEnum::Data + size=8 align=8 + base size=8 base align=8 +QMetaEnum::Data (0x0x7f868701bd80) 0 + +Class QMetaEnum + size=16 align=8 + base size=16 base align=8 +QMetaEnum (0x0x7f868701bd20) 0 + +Class QMetaProperty::Data + size=8 align=8 + base size=8 base align=8 +QMetaProperty::Data (0x0x7f8687060ae0) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f8687060a80) 0 + +Class QMetaClassInfo::Data + size=8 align=8 + base size=8 base align=8 +QMetaClassInfo::Data (0x0x7f868708e180) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=16 base align=8 +QMetaClassInfo (0x0x7f868708e120) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f86870aad20) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f86870b1ea0) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7f86870aaf60) 0 + primary-for QMimeData (0x0x7f86870b1ea0) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f86870d2120) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f868713cb40) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f868713cc00) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=40 align=8 + base size=40 base align=8 +QObjectCleanupHandler (0x0x7f868713bd00) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7f868713cba0) 0 + primary-for QObjectCleanupHandler (0x0x7f868713bd00) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f868713ccc0) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f868719bae0) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f86871a6750) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7f86871a67b8) 0 + primary-for QParallelAnimationGroup (0x0x7f86871a6750) + QAbstractAnimation (0x0x7f86871a6820) 0 + primary-for QAnimationGroup (0x0x7f86871a67b8) + QObject (0x0x7f868719ba80) 0 + primary-for QAbstractAnimation (0x0x7f86871a6820) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f868719bcc0) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f86871a6888) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7f86871a68f0) 0 + primary-for QPauseAnimation (0x0x7f86871a6888) + QObject (0x0x7f868719bc60) 0 + primary-for QAbstractAnimation (0x0x7f86871a68f0) + +Class QPluginMetaData + size=16 align=8 + base size=16 base align=8 +QPluginMetaData (0x0x7f868719bea0) 0 + +Class QStaticPlugin + size=24 align=8 + base size=24 base align=8 +QStaticPlugin (0x0x7f868719bf00) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f8686dee960) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f8686df64e0) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7f8686dee900) 0 + primary-for QPluginLoader (0x0x7f8686df64e0) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f8686deea20) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f8686e7b180) 0 empty + +Class QProcess::Use_setChildProcessModifier_Instead + size=1 align=1 + base size=0 base align=1 +QProcess::Use_setChildProcessModifier_Instead (0x0x7f8686e7b1e0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 32 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QProcess::writeData +248 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f8686e73548) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7f8686e7c0e0) 0 + primary-for QProcess (0x0x7f8686e73548) + QObject (0x0x7f8686e7b0c0) 0 + primary-for QIODevice (0x0x7f8686e7c0e0) + QIODeviceBase (0x0x7f8686e7b120) 0 empty + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f8686e7bf60) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f8686e735b0) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7f8686e73618) 0 + primary-for QVariantAnimation (0x0x7f8686e735b0) + QObject (0x0x7f8686e7bf00) 0 + primary-for QAbstractAnimation (0x0x7f8686e73618) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f8686ed11e0) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f8686e736e8) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7f8686e73750) 0 + primary-for QPropertyAnimation (0x0x7f8686e736e8) + QAbstractAnimation (0x0x7f8686e737b8) 0 + primary-for QVariantAnimation (0x0x7f8686e73750) + QObject (0x0x7f8686ed1180) 0 + primary-for QAbstractAnimation (0x0x7f8686e737b8) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f8686f55900) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f8686c42d80) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f8686c42d20) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f8686a2f540) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f8686845480) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f8686845420) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f86868a4478) 0 + QRandomGenerator (0x0x7f86868c2720) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f86868e1360) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f86868e15a0) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f86868e1a80) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f86868e1f60) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f86869a29c0) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f868662a1e0) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f868670b000) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f868679db40) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f868679de40) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QSaveFile::writeData +248 (int (*)(...))QSaveFile::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f86867586e8) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7f8686758750) 0 + primary-for QSaveFile (0x0x7f86867586e8) + QIODevice (0x0x7f86867642a0) 0 + primary-for QFileDevice (0x0x7f8686758750) + QObject (0x0x7f868679dd80) 0 + primary-for QIODevice (0x0x7f86867642a0) + QIODeviceBase (0x0x7f868679dde0) 0 empty + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f86863f9480) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f8686423c60) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f86864a8960) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f86864b92d8) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7f86864b9340) 0 + primary-for QSequentialAnimationGroup (0x0x7f86864b92d8) + QAbstractAnimation (0x0x7f86864b93a8) 0 + primary-for QAnimationGroup (0x0x7f86864b9340) + QObject (0x0x7f86864a8900) 0 + primary-for QAbstractAnimation (0x0x7f86864b93a8) + +Class QSequentialIterator + size=16 align=8 + base size=16 base align=8 +QSequentialIterator (0x0x7f86864b94e0) 0 + QIterator (0x0x7f86864b9548) 0 + QBaseIterator (0x0x7f86864a8cc0) 0 + +Class QSequentialConstIterator + size=16 align=8 + base size=16 base align=8 +QSequentialConstIterator (0x0x7f86864b9618) 0 + QConstIterator (0x0x7f86864b9680) 0 + QBaseIterator (0x0x7f86864fa240) 0 + +Class QSequentialIterable + size=24 align=8 + base size=24 base align=8 +QSequentialIterable (0x0x7f86864b96e8) 0 + QIterable (0x0x7f86864fa780) 0 + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f86861dbd80) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f86861e8af8) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7f86861dbd20) 0 + primary-for QSettings (0x0x7f86861e8af8) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f868621a1e0) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f86861e8b60) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7f868621a180) 0 + primary-for QSharedMemory (0x0x7f86861e8b60) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f868621a3c0) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f86861e8bc8) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7f868621a360) 0 + primary-for QSignalMapper (0x0x7f86861e8bc8) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f8687bce660) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f868f021c98) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7f8687bce600) 0 + primary-for QSocketNotifier (0x0x7f868f021c98) + +Class QSocketDescriptor + size=4 align=4 + base size=4 base align=4 +QSocketDescriptor (0x0x7f8687bce7e0) 0 + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f8687bceea0) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QSortFilterProxyModel::mimeTypes +224 (int (*)(...))QSortFilterProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QSortFilterProxyModel::dropMimeData +248 (int (*)(...))QSortFilterProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QSortFilterProxyModel::insertRows +272 (int (*)(...))QSortFilterProxyModel::insertColumns +280 (int (*)(...))QSortFilterProxyModel::removeRows +288 (int (*)(...))QSortFilterProxyModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSortFilterProxyModel::fetchMore +320 (int (*)(...))QSortFilterProxyModel::canFetchMore +328 (int (*)(...))QSortFilterProxyModel::flags +336 (int (*)(...))QSortFilterProxyModel::sort +344 (int (*)(...))QSortFilterProxyModel::buddy +352 (int (*)(...))QSortFilterProxyModel::match +360 (int (*)(...))QSortFilterProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSortFilterProxyModel::setSourceModel +416 (int (*)(...))QSortFilterProxyModel::mapToSource +424 (int (*)(...))QSortFilterProxyModel::mapFromSource +432 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +440 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +448 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +456 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +464 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f868f021d00) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7f868f021d68) 0 + primary-for QSortFilterProxyModel (0x0x7f868f021d00) + QAbstractItemModel (0x0x7f868f021dd0) 0 + primary-for QAbstractProxyModel (0x0x7f868f021d68) + QObject (0x0x7f8687bcee40) 0 + primary-for QAbstractItemModel (0x0x7f868f021dd0) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f86872422a0) 0 empty + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f8687242ba0) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f868dc7c540) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f8688a46d80) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QStringListModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QStringListModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStringListModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QStringListModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QStringListModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStringListModel::flags +336 (int (*)(...))QStringListModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStringListModel + size=40 align=8 + base size=40 base align=8 +QStringListModel (0x0x7f868f238af8) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7f868f238b60) 0 + primary-for QStringListModel (0x0x7f868f238af8) + QAbstractItemModel (0x0x7f868f238c30) 0 + primary-for QAbstractListModel (0x0x7f868f238b60) + QObject (0x0x7f8688a46d20) 0 + primary-for QAbstractItemModel (0x0x7f868f238c30) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f8688a46e40) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f8688a46f60) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f8683e8f120) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QTemporaryFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f868f248000) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7f868f248068) 0 + primary-for QTemporaryFile (0x0x7f868f248000) + QFileDevice (0x0x7f868f2480d0) 0 + primary-for QFile (0x0x7f868f248068) + QIODevice (0x0x7f868f40df50) 0 + primary-for QFileDevice (0x0x7f868f2480d0) + QObject (0x0x7f8683e8f060) 0 + primary-for QIODevice (0x0x7f868f40df50) + QIODeviceBase (0x0x7f8683e8f0c0) 0 empty + +Class QTextBoundaryFinder + size=72 align=8 + base size=72 base align=8 +QTextBoundaryFinder (0x0x7f8683e8f360) 0 + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f8683e8f900) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f868a511000) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f868f248270) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7f8683e8ff60) 0 + primary-for QTimeLine (0x0x7f868f248270) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f868a5111e0) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=16 align=8 + base size=16 base align=8 +QTimer (0x0x7f868f2482d8) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7f868a511180) 0 + primary-for QTimer (0x0x7f868f2482d8) + +Class QTimeZone::OffsetData + size=48 align=8 + base size=44 base align=8 +QTimeZone::OffsetData (0x0x7f86899c7000) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f868a511f60) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f8683fc4060) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f868f2d88f0) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7f8683fc4000) 0 + primary-for QTranslator (0x0x7f868f2d88f0) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7f8683fc4240) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QTransposeProxyModel::insertRows +272 (int (*)(...))QTransposeProxyModel::insertColumns +280 (int (*)(...))QTransposeProxyModel::removeRows +288 (int (*)(...))QTransposeProxyModel::removeColumns +296 (int (*)(...))QTransposeProxyModel::moveRows +304 (int (*)(...))QTransposeProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QTransposeProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QTransposeProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QTransposeProxyModel::setSourceModel +416 (int (*)(...))QTransposeProxyModel::mapToSource +424 (int (*)(...))QTransposeProxyModel::mapFromSource +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7f868f2d8958) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7f868f2d89c0) 0 + primary-for QTransposeProxyModel (0x0x7f868f2d8958) + QAbstractItemModel (0x0x7f868f2d8a90) 0 + primary-for QAbstractProxyModel (0x0x7f868f2d89c0) + QObject (0x0x7f8683fc41e0) 0 + primary-for QAbstractItemModel (0x0x7f868f2d8a90) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f8683fc43c0) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f8683b7cba0) 0 + +Class QtPrivate::QXmlString + size=24 align=8 + base size=24 base align=8 +QtPrivate::QXmlString (0x0x7f8683b7ccc0) 0 + +Class QXmlStreamAttribute + size=104 align=8 + base size=97 base align=8 +QXmlStreamAttribute (0x0x7f8683b8ab40) 0 + +Class QXmlStreamAttributes + size=24 align=8 + base size=24 base align=8 +QXmlStreamAttributes (0x0x7f868f0d4068) 0 + QList (0x0x7f868f0d40d0) 0 + QListSpecialMethods (0x0x7f868f0d4000) 0 empty + QListSpecialMethodsBase (0x0x7f8683b95c00) 0 empty + +Class QXmlStreamNamespaceDeclaration + size=48 align=8 + base size=48 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f8683bbc480) 0 + +Class QXmlStreamNotationDeclaration + size=72 align=8 + base size=72 base align=8 +QXmlStreamNotationDeclaration (0x0x7f8683bc5b40) 0 + +Class QXmlStreamEntityDeclaration + size=120 align=8 + base size=120 base align=8 +QXmlStreamEntityDeclaration (0x0x7f8683bcf1e0) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f8683bd6960) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f8683bd69c0) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f8683bd6f60) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=16 align=8 + base size=10 base align=8 +QPaintDevice (0x0x7f8683bf2180) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16) + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7f8683bf2c00) 0 + +Class QColor::CT + size=10 align=2 + base size=10 base align=2 +QColor::CT (0x0x7f8683c24900) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7f8683c248a0) 0 + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7f8683c52960) 0 + +Class QPolygon + size=24 align=8 + base size=24 base align=8 +QPolygon (0x0x7f868f11a0d0) 0 + QList (0x0x7f868f11a138) 0 + QListSpecialMethods (0x0x7f868f11a1a0) 0 empty + QListSpecialMethodsBase (0x0x7f8683c7a660) 0 empty + +Class QPolygonF + size=24 align=8 + base size=24 base align=8 +QPolygonF (0x0x7f868f11f410) 0 + QList (0x0x7f868f11f4e0) 0 + QListSpecialMethods (0x0x7f868f11f548) 0 empty + QListSpecialMethodsBase (0x0x7f8683cba2a0) 0 empty + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7f8683cf4a80) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7f8683cf4a20) 0 + +Class QTransform::Affine + size=8 align=8 + base size=8 base align=8 +QTransform::Affine (0x0x7f8683d23f60) 0 + +Class QTransform + size=80 align=8 + base size=74 base align=8 +QTransform (0x0x7f8683d23f00) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=24 align=8 + base size=24 base align=8 +QImage (0x0x7f868f1374e0) 0 + vptr=((& QImage::_ZTV6QImage) + 16) + QPaintDevice (0x0x7f868394cb40) 0 + primary-for QImage (0x0x7f868f1374e0) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=24 align=8 + base size=24 base align=8 +QPixmap (0x0x7f868ee15068) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16) + QPaintDevice (0x0x7f8683991300) 0 + primary-for QPixmap (0x0x7f868ee15068) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7f86839bfde0) 0 + +Vtable for QAbstractFileIconProvider +QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractFileIconProvider) +16 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +24 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +32 (int (*)(...))QAbstractFileIconProvider::icon +40 (int (*)(...))QAbstractFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QAbstractFileIconProvider + size=16 align=8 + base size=16 base align=8 +QAbstractFileIconProvider (0x0x7f86839ea120) 0 + vptr=((& QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider) + 16) + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7f86839ea600) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7f8683a17360) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7f8683a372a0) 0 + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7f8683a85a80) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7f868ee46000) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16) + QObject (0x0x7f8683a85a20) 0 + primary-for QScreen (0x0x7f868ee46000) + +Class QInputDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDevice::QPrivateSignal (0x0x7f8683a85c60) 0 empty + +Vtable for QInputDevice +QInputDevice::_ZTV12QInputDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDevice) +16 (int (*)(...))QInputDevice::metaObject +24 (int (*)(...))QInputDevice::qt_metacast +32 (int (*)(...))QInputDevice::qt_metacall +40 (int (*)(...))QInputDevice::~QInputDevice +48 (int (*)(...))QInputDevice::~QInputDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputDevice + size=16 align=8 + base size=16 base align=8 +QInputDevice (0x0x7f868ee46068) 0 + vptr=((& QInputDevice::_ZTV12QInputDevice) + 16) + QObject (0x0x7f8683a85c00) 0 + primary-for QInputDevice (0x0x7f868ee46068) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7f8683aa85a0) 0 + +Class QPointingDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPointingDevice::QPrivateSignal (0x0x7f8683ac2f00) 0 empty + +Vtable for QPointingDevice +QPointingDevice::_ZTV15QPointingDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPointingDevice) +16 (int (*)(...))QPointingDevice::metaObject +24 (int (*)(...))QPointingDevice::qt_metacast +32 (int (*)(...))QPointingDevice::qt_metacall +40 (int (*)(...))QPointingDevice::~QPointingDevice +48 (int (*)(...))QPointingDevice::~QPointingDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPointingDevice + size=16 align=8 + base size=16 base align=8 +QPointingDevice (0x0x7f868ee50068) 0 + vptr=((& QPointingDevice::_ZTV15QPointingDevice) + 16) + QInputDevice (0x0x7f868ee500d0) 0 + primary-for QPointingDevice (0x0x7f868ee50068) + QObject (0x0x7f8683ac2ea0) 0 + primary-for QInputDevice (0x0x7f868ee500d0) + +Class QEventPoint + size=8 align=8 + base size=8 base align=8 +QEventPoint (0x0x7f8683ad35a0) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7f8683b123c0) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QInputEvent + size=40 align=8 + base size=40 base align=8 +QInputEvent (0x0x7f868ee5fa28) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16) + QEvent (0x0x7f8683b39360) 0 + primary-for QInputEvent (0x0x7f868ee5fa28) + +Vtable for QPointerEvent +QPointerEvent::_ZTV13QPointerEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPointerEvent) +16 (int (*)(...))QPointerEvent::~QPointerEvent +24 (int (*)(...))QPointerEvent::~QPointerEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QPointerEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QPointerEvent::isBeginEvent +64 (int (*)(...))QPointerEvent::isUpdateEvent +72 (int (*)(...))QPointerEvent::isEndEvent + +Class QPointerEvent + size=64 align=8 + base size=64 base align=8 +QPointerEvent (0x0x7f868ee5faf8) 0 + vptr=((& QPointerEvent::_ZTV13QPointerEvent) + 16) + QInputEvent (0x0x7f868ee5fb60) 0 + primary-for QPointerEvent (0x0x7f868ee5faf8) + QEvent (0x0x7f8683b39840) 0 + primary-for QInputEvent (0x0x7f868ee5fb60) + +Vtable for QSinglePointEvent +QSinglePointEvent::_ZTV17QSinglePointEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSinglePointEvent) +16 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +24 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QSinglePointEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QSinglePointEvent + size=80 align=8 + base size=80 base align=8 +QSinglePointEvent (0x0x7f868ee612d8) 0 + vptr=((& QSinglePointEvent::_ZTV17QSinglePointEvent) + 16) + QPointerEvent (0x0x7f868ee61340) 0 + primary-for QSinglePointEvent (0x0x7f868ee612d8) + QInputEvent (0x0x7f868ee613a8) 0 + primary-for QPointerEvent (0x0x7f868ee61340) + QEvent (0x0x7f8683772720) 0 + primary-for QInputEvent (0x0x7f868ee613a8) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QEnterEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QEnterEvent + size=80 align=8 + base size=80 base align=8 +QEnterEvent (0x0x7f868ee61410) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16) + QSinglePointEvent (0x0x7f868ee61478) 0 + primary-for QEnterEvent (0x0x7f868ee61410) + QPointerEvent (0x0x7f868ee614e0) 0 + primary-for QSinglePointEvent (0x0x7f868ee61478) + QInputEvent (0x0x7f868ee61548) 0 + primary-for QPointerEvent (0x0x7f868ee614e0) + QEvent (0x0x7f8683772c00) 0 + primary-for QInputEvent (0x0x7f868ee61548) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QMouseEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QMouseEvent + size=80 align=8 + base size=80 base align=8 +QMouseEvent (0x0x7f868ee615b0) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16) + QSinglePointEvent (0x0x7f868ee61680) 0 + primary-for QMouseEvent (0x0x7f868ee615b0) + QPointerEvent (0x0x7f868ee616e8) 0 + primary-for QSinglePointEvent (0x0x7f868ee61680) + QInputEvent (0x0x7f868ee61750) 0 + primary-for QPointerEvent (0x0x7f868ee616e8) + QEvent (0x0x7f86837873c0) 0 + primary-for QInputEvent (0x0x7f868ee61750) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QHoverEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QHoverEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QHoverEvent + size=96 align=8 + base size=96 base align=8 +QHoverEvent (0x0x7f868ee617b8) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16) + QSinglePointEvent (0x0x7f868ee61820) 0 + primary-for QHoverEvent (0x0x7f868ee617b8) + QPointerEvent (0x0x7f868ee61888) 0 + primary-for QSinglePointEvent (0x0x7f868ee61820) + QInputEvent (0x0x7f868ee618f0) 0 + primary-for QPointerEvent (0x0x7f868ee61888) + QEvent (0x0x7f8683787960) 0 + primary-for QInputEvent (0x0x7f868ee618f0) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QWheelEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QWheelEvent::isBeginEvent +64 (int (*)(...))QWheelEvent::isUpdateEvent +72 (int (*)(...))QWheelEvent::isEndEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7f868ee61958) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16) + QSinglePointEvent (0x0x7f868ee619c0) 0 + primary-for QWheelEvent (0x0x7f868ee61958) + QPointerEvent (0x0x7f868ee61a28) 0 + primary-for QSinglePointEvent (0x0x7f868ee619c0) + QInputEvent (0x0x7f868ee61a90) 0 + primary-for QPointerEvent (0x0x7f868ee61a28) + QEvent (0x0x7f8683787d80) 0 + primary-for QInputEvent (0x0x7f868ee61a90) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTabletEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QTabletEvent + size=96 align=8 + base size=96 base align=8 +QTabletEvent (0x0x7f868ee61af8) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16) + QSinglePointEvent (0x0x7f868ee61b60) 0 + primary-for QTabletEvent (0x0x7f868ee61af8) + QPointerEvent (0x0x7f868ee61bc8) 0 + primary-for QSinglePointEvent (0x0x7f868ee61b60) + QInputEvent (0x0x7f868ee61c98) 0 + primary-for QPointerEvent (0x0x7f868ee61bc8) + QEvent (0x0x7f86837a22a0) 0 + primary-for QInputEvent (0x0x7f868ee61c98) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QNativeGestureEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7f868ee61d00) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16) + QSinglePointEvent (0x0x7f868ee61d68) 0 + primary-for QNativeGestureEvent (0x0x7f868ee61d00) + QPointerEvent (0x0x7f868ee61dd0) 0 + primary-for QSinglePointEvent (0x0x7f868ee61d68) + QInputEvent (0x0x7f868ee61e38) 0 + primary-for QPointerEvent (0x0x7f868ee61dd0) + QEvent (0x0x7f86837a2b40) 0 + primary-for QInputEvent (0x0x7f868ee61e38) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QKeyEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QKeyEvent + size=88 align=8 + base size=82 base align=8 +QKeyEvent (0x0x7f868ee61ea0) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16) + QInputEvent (0x0x7f868ee61f08) 0 + primary-for QKeyEvent (0x0x7f868ee61ea0) + QEvent (0x0x7f86837b9060) 0 + primary-for QInputEvent (0x0x7f868ee61f08) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFocusEvent::clone + +Class QFocusEvent + size=24 align=8 + base size=20 base align=8 +QFocusEvent (0x0x7f868ee65000) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16) + QEvent (0x0x7f86837b9660) 0 + primary-for QFocusEvent (0x0x7f868ee65000) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPaintEvent::clone + +Class QPaintEvent + size=48 align=8 + base size=41 base align=8 +QPaintEvent (0x0x7f868ee65068) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16) + QEvent (0x0x7f86837b99c0) 0 + primary-for QPaintEvent (0x0x7f868ee65068) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QMoveEvent::clone + +Class QMoveEvent + size=32 align=8 + base size=32 base align=8 +QMoveEvent (0x0x7f868ee650d0) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16) + QEvent (0x0x7f86837b9cc0) 0 + primary-for QMoveEvent (0x0x7f868ee650d0) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QExposeEvent::clone + +Class QExposeEvent + size=24 align=8 + base size=24 base align=8 +QExposeEvent (0x0x7f868ee65138) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16) + QEvent (0x0x7f86837d2060) 0 + primary-for QExposeEvent (0x0x7f868ee65138) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPlatformSurfaceEvent::clone + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=20 base align=8 +QPlatformSurfaceEvent (0x0x7f868ee651a0) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16) + QEvent (0x0x7f86837d2300) 0 + primary-for QPlatformSurfaceEvent (0x0x7f868ee651a0) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QResizeEvent::clone + +Class QResizeEvent + size=32 align=8 + base size=32 base align=8 +QResizeEvent (0x0x7f868ee65208) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16) + QEvent (0x0x7f86837d2600) 0 + primary-for QResizeEvent (0x0x7f868ee65208) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QCloseEvent + size=16 align=8 + base size=16 base align=8 +QCloseEvent (0x0x7f868ee65270) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16) + QEvent (0x0x7f86837d2960) 0 + primary-for QCloseEvent (0x0x7f868ee65270) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QIconDragEvent + size=16 align=8 + base size=16 base align=8 +QIconDragEvent (0x0x7f868ee652d8) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16) + QEvent (0x0x7f86837d29c0) 0 + primary-for QIconDragEvent (0x0x7f868ee652d8) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QShowEvent + size=16 align=8 + base size=16 base align=8 +QShowEvent (0x0x7f868ee653a8) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16) + QEvent (0x0x7f86837d2a20) 0 + primary-for QShowEvent (0x0x7f868ee653a8) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QHideEvent + size=16 align=8 + base size=16 base align=8 +QHideEvent (0x0x7f868ee65410) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16) + QEvent (0x0x7f86837d2a80) 0 + primary-for QHideEvent (0x0x7f868ee65410) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QContextMenuEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QContextMenuEvent + size=64 align=8 + base size=57 base align=8 +QContextMenuEvent (0x0x7f868ee65478) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16) + QInputEvent (0x0x7f868ee654e0) 0 + primary-for QContextMenuEvent (0x0x7f868ee65478) + QEvent (0x0x7f86837d2ae0) 0 + primary-for QInputEvent (0x0x7f868ee654e0) + +Class QInputMethodEvent::Attribute + size=48 align=8 + base size=48 base align=8 +QInputMethodEvent::Attribute (0x0x7f86837f80c0) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodEvent::clone + +Class QInputMethodEvent + size=96 align=8 + base size=96 base align=8 +QInputMethodEvent (0x0x7f868ee65548) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16) + QEvent (0x0x7f86837f8060) 0 + primary-for QInputMethodEvent (0x0x7f868ee65548) + +Class QInputMethodQueryEvent::QueryPair + size=40 align=8 + base size=40 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7f868383c8a0) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodQueryEvent::clone + +Class QInputMethodQueryEvent + size=48 align=8 + base size=48 base align=8 +QInputMethodQueryEvent (0x0x7f868ee6b820) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16) + QEvent (0x0x7f868383c840) 0 + primary-for QInputMethodQueryEvent (0x0x7f868ee6b820) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDropEvent::clone + +Class QDropEvent + size=64 align=8 + base size=64 base align=8 +QDropEvent (0x0x7f868ee6faf8) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16) + QEvent (0x0x7f868387c9c0) 0 + primary-for QDropEvent (0x0x7f868ee6faf8) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragMoveEvent + size=80 align=8 + base size=80 base align=8 +QDragMoveEvent (0x0x7f868ee6fb60) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16) + QDropEvent (0x0x7f868ee6fbc8) 0 + primary-for QDragMoveEvent (0x0x7f868ee6fb60) + QEvent (0x0x7f868388f120) 0 + primary-for QDropEvent (0x0x7f868ee6fbc8) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragEnterEvent + size=80 align=8 + base size=80 base align=8 +QDragEnterEvent (0x0x7f868ee6fc30) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16) + QDragMoveEvent (0x0x7f868ee6fc98) 0 + primary-for QDragEnterEvent (0x0x7f868ee6fc30) + QDropEvent (0x0x7f868ee6fd00) 0 + primary-for QDragMoveEvent (0x0x7f868ee6fc98) + QEvent (0x0x7f868388f5a0) 0 + primary-for QDropEvent (0x0x7f868ee6fd00) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QDragLeaveEvent + size=16 align=8 + base size=16 base align=8 +QDragLeaveEvent (0x0x7f868ee6fd68) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16) + QEvent (0x0x7f868388f600) 0 + primary-for QDragLeaveEvent (0x0x7f868ee6fd68) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QHelpEvent::clone + +Class QHelpEvent + size=32 align=8 + base size=32 base align=8 +QHelpEvent (0x0x7f868ee6fdd0) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16) + QEvent (0x0x7f868388f660) 0 + primary-for QHelpEvent (0x0x7f868ee6fdd0) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QStatusTipEvent::clone + +Class QStatusTipEvent + size=40 align=8 + base size=40 base align=8 +QStatusTipEvent (0x0x7f868ee6fe38) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16) + QEvent (0x0x7f868388fb40) 0 + primary-for QStatusTipEvent (0x0x7f868ee6fe38) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWhatsThisClickedEvent::clone + +Class QWhatsThisClickedEvent + size=40 align=8 + base size=40 base align=8 +QWhatsThisClickedEvent (0x0x7f868ee6ff08) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16) + QEvent (0x0x7f868388fde0) 0 + primary-for QWhatsThisClickedEvent (0x0x7f868ee6ff08) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QActionEvent::clone + +Class QActionEvent + size=32 align=8 + base size=32 base align=8 +QActionEvent (0x0x7f868ee6ff70) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16) + QEvent (0x0x7f86838ad0c0) 0 + primary-for QActionEvent (0x0x7f868ee6ff70) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFileOpenEvent::clone + +Class QFileOpenEvent + size=48 align=8 + base size=48 base align=8 +QFileOpenEvent (0x0x7f868ee72000) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16) + QEvent (0x0x7f86838ad420) 0 + primary-for QFileOpenEvent (0x0x7f868ee72000) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QToolBarChangeEvent::clone + +Class QToolBarChangeEvent + size=24 align=8 + base size=17 base align=8 +QToolBarChangeEvent (0x0x7f868ee72068) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16) + QEvent (0x0x7f86838ad720) 0 + primary-for QToolBarChangeEvent (0x0x7f868ee72068) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QShortcutEvent::clone + +Class QShortcutEvent + size=32 align=8 + base size=29 base align=8 +QShortcutEvent (0x0x7f868ee720d0) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16) + QEvent (0x0x7f86838ada20) 0 + primary-for QShortcutEvent (0x0x7f868ee720d0) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWindowStateChangeEvent::clone + +Class QWindowStateChangeEvent + size=24 align=8 + base size=21 base align=8 +QWindowStateChangeEvent (0x0x7f868ee72138) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16) + QEvent (0x0x7f86838add80) 0 + primary-for QWindowStateChangeEvent (0x0x7f868ee72138) + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTouchEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QTouchEvent::isBeginEvent +64 (int (*)(...))QTouchEvent::isUpdateEvent +72 (int (*)(...))QTouchEvent::isEndEvent + +Class QTouchEvent + size=80 align=8 + base size=79 base align=8 +QTouchEvent (0x0x7f868ee721a0) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16) + QPointerEvent (0x0x7f868ee72208) 0 + primary-for QTouchEvent (0x0x7f868ee721a0) + QInputEvent (0x0x7f868ee72270) 0 + primary-for QPointerEvent (0x0x7f868ee72208) + QEvent (0x0x7f86838c70c0) 0 + primary-for QInputEvent (0x0x7f868ee72270) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollPrepareEvent::clone + +Class QScrollPrepareEvent + size=96 align=8 + base size=96 base align=8 +QScrollPrepareEvent (0x0x7f868ee722d8) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16) + QEvent (0x0x7f86838c7420) 0 + primary-for QScrollPrepareEvent (0x0x7f868ee722d8) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollEvent::clone + +Class QScrollEvent + size=56 align=8 + base size=52 base align=8 +QScrollEvent (0x0x7f868ee72340) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16) + QEvent (0x0x7f86838c7840) 0 + primary-for QScrollEvent (0x0x7f868ee72340) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScreenOrientationChangeEvent::clone + +Class QScreenOrientationChangeEvent + size=32 align=8 + base size=28 base align=8 +QScreenOrientationChangeEvent (0x0x7f868ee72410) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16) + QEvent (0x0x7f86838c7c00) 0 + primary-for QScreenOrientationChangeEvent (0x0x7f868ee72410) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QApplicationStateChangeEvent::clone + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=20 base align=8 +QApplicationStateChangeEvent (0x0x7f868ee72478) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16) + QEvent (0x0x7f86838c7f60) 0 + primary-for QApplicationStateChangeEvent (0x0x7f868ee72478) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7f86838e82a0) 0 + +Class QFontDatabase + size=1 align=1 + base size=0 base align=1 +QFontDatabase (0x0x7f8683926300) 0 empty + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7f86839264e0) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7f868356c3c0) 0 + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7f8683592a80) 0 + +Class QBrushData + size=104 align=8 + base size=104 base align=8 +QBrushData (0x0x7f86835bb600) 0 + +Class QGradient::QGradientData + size=48 align=8 + base size=48 base align=8 +QGradient::QGradientData (0x0x7f86835bb840) 0 + +Class QGradient + size=88 align=8 + base size=88 base align=8 +QGradient (0x0x7f86835bb7e0) 0 + +Class QLinearGradient + size=88 align=8 + base size=88 base align=8 +QLinearGradient (0x0x7f8689221c98) 0 + QGradient (0x0x7f86835d3720) 0 + +Class QRadialGradient + size=88 align=8 + base size=88 base align=8 +QRadialGradient (0x0x7f8689221c30) 0 + QGradient (0x0x7f86835d3840) 0 + +Class QConicalGradient + size=88 align=8 + base size=88 base align=8 +QConicalGradient (0x0x7f86892331a0) 0 + QGradient (0x0x7f86835d3960) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7f86835d3a20) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7f8683629a80) 0 + +Class QTextOption + size=24 align=8 + base size=24 base align=8 +QTextOption (0x0x7f8683629a20) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7f868363e7e0) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7f86836624e0) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7f8686493d00) 0 + QTextFormat (0x0x7f86836c4b40) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7f8683705820) 0 + QTextFormat (0x0x7f868370a060) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7f8683726478) 0 + QTextFormat (0x0x7f86837275a0) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7f868373f068) 0 + QTextCharFormat (0x0x7f868373f0d0) 0 + QTextFormat (0x0x7f868373d480) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7f868334ed00) 0 + QTextFormat (0x0x7f8683354300) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7f868336d958) 0 + QTextFrameFormat (0x0x7f868336d9c0) 0 + QTextFormat (0x0x7f868336f720) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7f868338c618) 0 + QTextCharFormat (0x0x7f868338c680) 0 + QTextFormat (0x0x7f868338b9c0) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7f86833aaf00) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7f86833ed5a0) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7f86833ed9c0) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7f86833ed960) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7f8683439a80) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7f8683439f00) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7f868344d1e0) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7f8683442270) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16) + QObject (0x0x7f868344d180) 0 + primary-for QTextDocument (0x0x7f8683442270) + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7f868344d9c0) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7f86834c2d20) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7f86834c2d80) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=80 align=8 + base size=80 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7f86834c2de0) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7f86834c45b0) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16) + QObject (0x0x7f86834c2cc0) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f86834c45b0) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7f868352b3c0) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7f868352b600) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7f868352b660) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7f868352b5a0) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7f868352bea0) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7f868315b240) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7f868315b2a0) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7f868315b300) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7f868315b360) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7f868315b3c0) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7f868315b420) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7f868315b4e0) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7f868315b540) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7f8683529a90) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16) + QAccessibleEvent (0x0x7f868315ba80) 0 + primary-for QAccessibleStateChangeEvent (0x0x7f8683529a90) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7f8683529af8) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16) + QAccessibleEvent (0x0x7f868315be40) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f8683529af8) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7f8683529b60) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f8683529bc8) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7f8683529b60) + QAccessibleEvent (0x0x7f868317d2a0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f8683529bc8) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextInsertEvent (0x0x7f8683529c30) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f8683529c98) 0 + primary-for QAccessibleTextInsertEvent (0x0x7f8683529c30) + QAccessibleEvent (0x0x7f868317d720) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f8683529c98) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextRemoveEvent (0x0x7f8683529d00) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f8683529d68) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7f8683529d00) + QAccessibleEvent (0x0x7f868317db40) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f8683529d68) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=88 align=8 + base size=88 base align=8 +QAccessibleTextUpdateEvent (0x0x7f8683529dd0) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f8683529e38) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7f8683529dd0) + QAccessibleEvent (0x0x7f868317df60) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f8683529e38) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleValueChangeEvent (0x0x7f8683529ea0) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16) + QAccessibleEvent (0x0x7f8683192420) 0 + primary-for QAccessibleValueChangeEvent (0x0x7f8683529ea0) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7f8683529f08) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16) + QAccessibleEvent (0x0x7f8683192840) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7f8683529f08) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7f86831a4120) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7f86831a43c0) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7f8683529f70) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16) + QObject (0x0x7f86831a4360) 0 + primary-for QAccessibleBridgePlugin (0x0x7f8683529f70) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0 +24 0 +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7f86831ab000) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16) + QAccessibleInterface (0x0x7f86831a4480) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f86831ab000) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7f86831ab068) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16) + QAccessibleObject (0x0x7f86831ab0d0) 0 + primary-for QAccessibleApplication (0x0x7f86831ab068) + QAccessibleInterface (0x0x7f86831a44e0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f86831ab0d0) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7f86831a45a0) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7f86831ab138) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16) + QObject (0x0x7f86831a4540) 0 + primary-for QAccessiblePlugin (0x0x7f86831ab138) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7f86831a46c0) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7f86831ab1a0) 0 + vptr=((& QAction::_ZTV7QAction) + 16) + QObject (0x0x7f86831a4660) 0 + primary-for QAction (0x0x7f86831ab1a0) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7f86831cf000) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7f86831ab208) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16) + QObject (0x0x7f86831a4f60) 0 + primary-for QActionGroup (0x0x7f86831ab208) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7f86831cf2a0) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7f86831cfae0) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16) + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=24 align=8 + base size=24 base align=8 +QBitmap (0x0x7f86831ab3a8) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16) + QPixmap (0x0x7f86831ab410) 0 + primary-for QBitmap (0x0x7f86831ab3a8) + QPaintDevice (0x0x7f86831cfde0) 0 + primary-for QPixmap (0x0x7f86831ab410) + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7f868320f720) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7f8683251900) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 47 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))-16 +320 (int (*)(...))(& _ZTI7QWindow) +328 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +336 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7f86831dbee0) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16) + QObject (0x0x7f8683251840) 0 + primary-for QWindow (0x0x7f86831dbee0) + QSurface (0x0x7f86832518a0) 16 + vptr=((& QWindow::_ZTV7QWindow) + 328) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7f8683289180) 0 + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7f86832892a0) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7f8683252a90) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16) + QObject (0x0x7f8683289240) 0 + primary-for QClipboard (0x0x7f8683252a90) + +Class QColorTransform + size=8 align=8 + base size=8 base align=8 +QColorTransform (0x0x7f86832893c0) 0 + +Class QColorSpace + size=8 align=8 + base size=8 base align=8 +QColorSpace (0x0x7f86832e3360) 0 + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7f868333a000) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7f868333a0c0) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7f8683333478) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16) + QObject (0x0x7f868333a060) 0 + primary-for QDrag (0x0x7f8683333478) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7f868333a2a0) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QFileSystemModel::mimeTypes +224 (int (*)(...))QFileSystemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QFileSystemModel::dropMimeData +248 (int (*)(...))QFileSystemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QFileSystemModel::fetchMore +320 (int (*)(...))QFileSystemModel::canFetchMore +328 (int (*)(...))QFileSystemModel::flags +336 (int (*)(...))QFileSystemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QFileSystemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7f86833334e0) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16) + QAbstractItemModel (0x0x7f8683333548) 0 + primary-for QFileSystemModel (0x0x7f86833334e0) + QObject (0x0x7f868333a240) 0 + primary-for QAbstractItemModel (0x0x7f8683333548) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7f868333a8a0) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7f8682f931e0) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7f8682faec00) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7f8683014a20) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7f8682fdfd68) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16) + QObject (0x0x7f86830149c0) 0 + primary-for QGenericPlugin (0x0x7f8682fdfd68) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7f8683014ae0) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7f8683014ba0) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7f8682fdfdd0) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16) + QObject (0x0x7f8683014b40) 0 + primary-for QInputMethod (0x0x7f8682fdfdd0) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7f8683014e40) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7f8682fdfe38) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16) + QCoreApplication (0x0x7f8682fdfea0) 0 + primary-for QGuiApplication (0x0x7f8682fdfe38) + QObject (0x0x7f8683014de0) 0 + primary-for QCoreApplication (0x0x7f8682fdfea0) + +Class QIconEngine::ScaledPixmapArgument + size=48 align=8 + base size=48 base align=8 +QIconEngine::ScaledPixmapArgument (0x0x7f8683043120) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::isNull +128 (int (*)(...))QIconEngine::scaledPixmap +136 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7f86830430c0) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7f86830431e0) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7f8682fdff08) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16) + QObject (0x0x7f8683043180) 0 + primary-for QIconEnginePlugin (0x0x7f8682fdff08) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QImageIOHandler::write +56 (int (*)(...))QImageIOHandler::option +64 (int (*)(...))QImageIOHandler::setOption +72 (int (*)(...))QImageIOHandler::supportsOption +80 (int (*)(...))QImageIOHandler::jumpToNextImage +88 (int (*)(...))QImageIOHandler::jumpToImage +96 (int (*)(...))QImageIOHandler::loopCount +104 (int (*)(...))QImageIOHandler::imageCount +112 (int (*)(...))QImageIOHandler::nextImageDelay +120 (int (*)(...))QImageIOHandler::currentImageNumber +128 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7f86830432a0) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7f86830434e0) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7f8682fdff70) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16) + QObject (0x0x7f8683043480) 0 + primary-for QImageIOPlugin (0x0x7f8682fdff70) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7f86830438a0) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7f8683043960) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7f8683043a20) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7f86830cd780) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7f868312bc00) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7f8683119750) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16) + QObject (0x0x7f868312bba0) 0 + primary-for QMovie (0x0x7f8683119750) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7f8682d4d000) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7f8683118700) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16) + QObject (0x0x7f868312bf00) 0 + primary-for QOffscreenSurface (0x0x7f8683118700) + QSurface (0x0x7f868312bf60) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160) + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7f8682d4d240) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7f86831197b8) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16) + QObject (0x0x7f8682d4d1e0) 0 + primary-for QOpenGLContextGroup (0x0x7f86831197b8) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7f8682d4d420) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7f8683119820) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16) + QObject (0x0x7f8682d4d3c0) 0 + primary-for QOpenGLContext (0x0x7f8683119820) + +Vtable for QNativeInterface::QGLXContext +QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QGLXContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QGLXContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QGLXContext (0x0x7f8682d4d5a0) 0 nearly-empty + vptr=((& QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE) + 16) + +Vtable for QNativeInterface::QEGLContext +QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QEGLContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QEGLContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QEGLContext (0x0x7f8682d4d600) 0 nearly-empty + vptr=((& QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE) + 16) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7f8682d4d660) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7f8682d4dc00) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7f8682d4dba0) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7f8683119c30) 0 + QOpenGLFunctions (0x0x7f8682ce39c0) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1728 align=8 + base size=1728 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7f8682ce3d20) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2880 align=8 + base size=2880 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7f8683119c98) 0 + QOpenGLFunctionsPrivate (0x0x7f8682ce3cc0) 0 + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7f86829c9a20) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7f8682a224e0) 0 + +Class QPageRanges::Range + size=8 align=4 + base size=8 base align=4 +QPageRanges::Range (0x0x7f8682a7b180) 0 + +Class QPageRanges + size=8 align=8 + base size=8 base align=8 +QPageRanges (0x0x7f8682a7b120) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageLayout +96 (int (*)(...))QPagedPaintDevice::setPageSize +104 (int (*)(...))QPagedPaintDevice::setPageOrientation +112 (int (*)(...))QPagedPaintDevice::setPageMargins +120 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPagedPaintDevice + size=24 align=8 + base size=24 base align=8 +QPagedPaintDevice (0x0x7f8682ae2888) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16) + QPaintDevice (0x0x7f8682ae72a0) 0 + primary-for QPagedPaintDevice (0x0x7f8682ae2888) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7f8682ae7420) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QPaintDeviceWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +352 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +416 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QPaintDevice::redirected +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=56 align=8 + base size=50 base align=8 +QPaintDeviceWindow (0x0x7f8682acb770) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16) + QWindow (0x0x7f8682acb7e0) 0 + primary-for QPaintDeviceWindow (0x0x7f8682acb770) + QObject (0x0x7f8682ae7300) 0 + primary-for QWindow (0x0x7f8682acb7e0) + QSurface (0x0x7f8682ae7360) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 344) + QPaintDevice (0x0x7f8682ae73c0) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 408) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7f8682ae7600) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7f8682ae75a0) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7f8682899180) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QPaintEngine::createPixmap +200 (int (*)(...))QPaintEngine::createPixmapFromImage + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7f86828af960) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7f86828aff60) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7f86828eaa20) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7f86828ea9c0) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7f868256bd20) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7f868258f4e0) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 33 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::paintEngine +128 (int (*)(...))QPdfWriter::metric +136 (int (*)(...))-16 +144 (int (*)(...))(& _ZTI10QPdfWriter) +152 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +160 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +168 (int (*)(...))QPaintDevice::devType +176 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +184 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +192 (int (*)(...))QPaintDevice::initPainter +200 (int (*)(...))QPaintDevice::redirected +208 (int (*)(...))QPaintDevice::sharedPainter +216 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +224 (int (*)(...))QPagedPaintDevice::setPageLayout +232 (int (*)(...))QPagedPaintDevice::setPageSize +240 (int (*)(...))QPagedPaintDevice::setPageOrientation +248 (int (*)(...))QPagedPaintDevice::setPageMargins +256 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPdfWriter + size=40 align=8 + base size=40 base align=8 +QPdfWriter (0x0x7f86825772a0) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16) + QObject (0x0x7f868258f420) 0 + primary-for QPdfWriter (0x0x7f86825772a0) + QPagedPaintDevice (0x0x7f86825736e8) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 152) + QPaintDevice (0x0x7f868258f480) 16 + primary-for QPagedPaintDevice (0x0x7f86825736e8) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=24 align=8 + base size=24 base align=8 +QPicture (0x0x7f8682573750) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16) + QPaintDevice (0x0x7f868258f6c0) 0 + primary-for QPicture (0x0x7f8682573750) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7f86825d21e0) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7f86825d2180) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7f8682613420) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 60 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QRasterWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QRasterWindow::redirected +336 (int (*)(...))-16 +344 (int (*)(...))(& _ZTI13QRasterWindow) +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +360 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +392 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +400 (int (*)(...))-40 +408 (int (*)(...))(& _ZTI13QRasterWindow) +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +424 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +432 (int (*)(...))QPaintDevice::devType +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +448 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +456 (int (*)(...))QPaintDevice::initPainter +464 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +472 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=56 align=8 + base size=50 base align=8 +QRasterWindow (0x0x7f868260bc98) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16) + QPaintDeviceWindow (0x0x7f8682577e70) 0 + primary-for QRasterWindow (0x0x7f868260bc98) + QWindow (0x0x7f8682577ee0) 0 + primary-for QPaintDeviceWindow (0x0x7f8682577e70) + QObject (0x0x7f8682613300) 0 + primary-for QWindow (0x0x7f8682577ee0) + QSurface (0x0x7f8682613360) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 352) + QPaintDevice (0x0x7f86826133c0) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 416) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7f8682613600) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7f868260bd68) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16) + QObject (0x0x7f86826135a0) 0 + primary-for QSessionManager (0x0x7f868260bd68) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7f86826137e0) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7f868260bdd0) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16) + QObject (0x0x7f8682613780) 0 + primary-for QShortcut (0x0x7f868260bdd0) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::multiData +48 (int (*)(...))QStandardItem::setData +56 (int (*)(...))QStandardItem::clone +64 (int (*)(...))QStandardItem::type +72 (int (*)(...))QStandardItem::read +80 (int (*)(...))QStandardItem::write +88 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7f8682613cc0) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7f868267bd20) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::clearItemData +216 (int (*)(...))QStandardItemModel::mimeTypes +224 (int (*)(...))QStandardItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QStandardItemModel::dropMimeData +248 (int (*)(...))QStandardItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStandardItemModel::insertRows +272 (int (*)(...))QStandardItemModel::insertColumns +280 (int (*)(...))QStandardItemModel::removeRows +288 (int (*)(...))QStandardItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStandardItemModel::flags +336 (int (*)(...))QStandardItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QStandardItemModel::roleNames +376 (int (*)(...))QStandardItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7f8682678750) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16) + QAbstractItemModel (0x0x7f86826787b8) 0 + primary-for QStandardItemModel (0x0x7f8682678750) + QObject (0x0x7f868267bcc0) 0 + primary-for QAbstractItemModel (0x0x7f86826787b8) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7f86826d4060) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7f8682714960) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7f8682719410) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16) + QObject (0x0x7f8682714900) 0 + primary-for QStyleHints (0x0x7f8682719410) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7f8682714b40) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7f8682719478) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16) + QObject (0x0x7f8682714ae0) 0 + primary-for QTextObject (0x0x7f8682719478) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7f8682714d20) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7f86827194e0) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16) + QTextObject (0x0x7f8682719548) 0 + primary-for QTextBlockGroup (0x0x7f86827194e0) + QObject (0x0x7f8682714cc0) 0 + primary-for QTextObject (0x0x7f8682719548) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7f8682714ea0) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7f8682714f60) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7f8682741000) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7f86827195b0) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16) + QTextObject (0x0x7f8682719618) 0 + primary-for QTextFrame (0x0x7f86827195b0) + QObject (0x0x7f8682714f00) 0 + primary-for QTextObject (0x0x7f8682719618) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7f8682365e40) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7f8682365f00) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7f8682365ea0) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7f86823c6780) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7f86823f1600) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7f86823f37b8) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16) + QObject (0x0x7f86823f15a0) 0 + primary-for QSyntaxHighlighter (0x0x7f86823f37b8) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7f86823f1780) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7f86823f17e0) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7f86823f18a0) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7f86823f3820) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16) + QTextBlockGroup (0x0x7f86823f3888) 0 + primary-for QTextList (0x0x7f86823f3820) + QTextObject (0x0x7f86823f38f0) 0 + primary-for QTextBlockGroup (0x0x7f86823f3888) + QObject (0x0x7f86823f1840) 0 + primary-for QTextObject (0x0x7f86823f38f0) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7f86823f1c60) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7f86824234e0) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7f86823f3958) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16) + QTextFrame (0x0x7f86823f39c0) 0 + primary-for QTextTable (0x0x7f86823f3958) + QTextObject (0x0x7f86823f3a28) 0 + primary-for QTextFrame (0x0x7f86823f39c0) + QObject (0x0x7f8682423480) 0 + primary-for QTextObject (0x0x7f86823f3a28) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7f86824238a0) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7f86823f3a90) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16) + QObject (0x0x7f8682423840) 0 + primary-for QUndoGroup (0x0x7f86823f3a90) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7f8682423a20) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7f8682423ae0) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7f86823f3af8) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16) + QObject (0x0x7f8682423a80) 0 + primary-for QUndoStack (0x0x7f86823f3af8) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7f8682423cc0) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7f86823f3b60) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16) + QObject (0x0x7f8682423c60) 0 + primary-for QValidator (0x0x7f86823f3b60) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7f8682423f60) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7f86823f3bc8) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16) + QValidator (0x0x7f86823f3c30) 0 + primary-for QIntValidator (0x0x7f86823f3bc8) + QObject (0x0x7f8682423f00) 0 + primary-for QValidator (0x0x7f86823f3c30) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7f868246b180) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7f86823f3c98) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16) + QValidator (0x0x7f86823f3d00) 0 + primary-for QDoubleValidator (0x0x7f86823f3c98) + QObject (0x0x7f868246b120) 0 + primary-for QValidator (0x0x7f86823f3d00) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7f868246b540) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7f86823f3d68) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16) + QValidator (0x0x7f86823f3dd0) 0 + primary-for QRegularExpressionValidator (0x0x7f86823f3d68) + QObject (0x0x7f868246b4e0) 0 + primary-for QValidator (0x0x7f86823f3dd0) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7f868246b720) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7f868246b6c0) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7f86824dc6c0) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7f86824dc7e0) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=40 align=8 + base size=40 base align=8 +QWidget (0x0x7f868248b850) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16) + QObject (0x0x7f86824dc720) 0 + primary-for QWidget (0x0x7f868248b850) + QPaintDevice (0x0x7f86824dc780) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7f86821770c0) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0 +480 0 +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=40 align=8 + base size=40 base align=8 +QAbstractButton (0x0x7f86824d9dd0) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16) + QWidget (0x0x7f868248ba80) 0 + primary-for QAbstractButton (0x0x7f86824d9dd0) + QObject (0x0x7f8682177000) 0 + primary-for QWidget (0x0x7f868248ba80) + QPaintDevice (0x0x7f8682177060) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7f8682177300) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI16QAbstractSpinBox) +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +504 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=40 align=8 + base size=40 base align=8 +QAbstractSpinBox (0x0x7f86824d9e38) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16) + QWidget (0x0x7f868248baf0) 0 + primary-for QAbstractSpinBox (0x0x7f86824d9e38) + QObject (0x0x7f8682177240) 0 + primary-for QWidget (0x0x7f868248baf0) + QPaintDevice (0x0x7f86821772a0) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 496) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7f8682177a80) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=40 align=8 + base size=40 base align=8 +QAbstractSlider (0x0x7f86821c2000) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16) + QWidget (0x0x7f868248b620) 0 + primary-for QAbstractSlider (0x0x7f86821c2000) + QObject (0x0x7f86821779c0) 0 + primary-for QWidget (0x0x7f868248b620) + QPaintDevice (0x0x7f8682177a20) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7f8682177cc0) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))QSlider::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI7QSlider) +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +472 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=40 align=8 + base size=40 base align=8 +QSlider (0x0x7f86821c2068) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16) + QAbstractSlider (0x0x7f86821c20d0) 0 + primary-for QSlider (0x0x7f86821c2068) + QWidget (0x0x7f86821ca540) 0 + primary-for QAbstractSlider (0x0x7f86821c20d0) + QObject (0x0x7f8682177c00) 0 + primary-for QWidget (0x0x7f86821ca540) + QPaintDevice (0x0x7f8682177c60) 16 + vptr=((& QSlider::_ZTV7QSlider) + 464) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7f8682177f60) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7f86821c2138) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16) + QObject (0x0x7f8682177f00) 0 + primary-for QStyle (0x0x7f86821c2138) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7f868225e060) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QTabBar::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))QTabBar::initStyleOption +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI7QTabBar) +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +504 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=40 align=8 + base size=40 base align=8 +QTabBar (0x0x7f86821c2410) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16) + QWidget (0x0x7f8682210070) 0 + primary-for QTabBar (0x0x7f86821c2410) + QObject (0x0x7f868221cf60) 0 + primary-for QWidget (0x0x7f8682210070) + QPaintDevice (0x0x7f868225e000) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 496) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7f868225e360) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))QTabWidget::initStyleOption +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI10QTabWidget) +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +480 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=40 align=8 + base size=40 base align=8 +QTabWidget (0x0x7f86821c2478) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16) + QWidget (0x0x7f8682210690) 0 + primary-for QTabWidget (0x0x7f86821c2478) + QObject (0x0x7f868225e2a0) 0 + primary-for QWidget (0x0x7f8682210690) + QPaintDevice (0x0x7f868225e300) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 472) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7f868225e720) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRubberBand::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QRubberBand) +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +464 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=40 align=8 + base size=40 base align=8 +QRubberBand (0x0x7f86821c24e0) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16) + QWidget (0x0x7f86822109a0) 0 + primary-for QRubberBand (0x0x7f86821c24e0) + QObject (0x0x7f868225e660) 0 + primary-for QWidget (0x0x7f86822109a0) + QPaintDevice (0x0x7f868225e6c0) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 456) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7f868225eb40) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QFrame) +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +464 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=40 align=8 + base size=40 base align=8 +QFrame (0x0x7f86821c2548) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16) + QWidget (0x0x7f8682210af0) 0 + primary-for QFrame (0x0x7f86821c2548) + QObject (0x0x7f868225ea80) 0 + primary-for QWidget (0x0x7f8682210af0) + QPaintDevice (0x0x7f868225eae0) 16 + vptr=((& QFrame::_ZTV6QFrame) + 456) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7f868225ee40) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7f86821c25b0) 0 + QStyleOption (0x0x7f868225eea0) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7f868f0fa208) 0 + QStyleOption (0x0x7f86822cc120) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7f868f0fa3a8) 0 + QStyleOption (0x0x7f86822cc660) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7f86821c2618) 0 + QStyleOption (0x0x7f86822cc8a0) 0 + +Class QStyleOptionHeader + size=136 align=8 + base size=132 base align=8 +QStyleOptionHeader (0x0x7f86821c2680) 0 + QStyleOption (0x0x7f86822ccae0) 0 + +Class QStyleOptionHeaderV2 + size=136 align=8 + base size=136 base align=8 +QStyleOptionHeaderV2 (0x0x7f86821c26e8) 0 + QStyleOptionHeader (0x0x7f86821c2750) 0 + QStyleOption (0x0x7f86822ccd20) 0 + +Class QStyleOptionButton + size=112 align=8 + base size=112 base align=8 +QStyleOptionButton (0x0x7f86821c2820) 0 + QStyleOption (0x0x7f8682311120) 0 + +Class QStyleOptionTab + size=160 align=8 + base size=156 base align=8 +QStyleOptionTab (0x0x7f86821c29c0) 0 + QStyleOption (0x0x7f8682311660) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7f86821c2c98) 0 + QStyleOption (0x0x7f8682311d80) 0 + +Class QStyleOptionProgressBar + size=112 align=8 + base size=111 base align=8 +QStyleOptionProgressBar (0x0x7f86821c2e38) 0 + QStyleOption (0x0x7f8681f83300) 0 + +Class QStyleOptionMenuItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionMenuItem (0x0x7f86821c2ea0) 0 + QStyleOption (0x0x7f8681f83540) 0 + +Class QStyleOptionDockWidget + size=96 align=8 + base size=92 base align=8 +QStyleOptionDockWidget (0x0x7f86821c2f08) 0 + QStyleOption (0x0x7f8681f83780) 0 + +Class QStyleOptionViewItem + size=208 align=8 + base size=208 base align=8 +QStyleOptionViewItem (0x0x7f86821c2f70) 0 + QStyleOption (0x0x7f8681f839c0) 0 + +Class QStyleOptionToolBox + size=104 align=8 + base size=104 base align=8 +QStyleOptionToolBox (0x0x7f8681fae138) 0 + QStyleOption (0x0x7f8681f83f00) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7f8681fae1a0) 0 + QStyleOption (0x0x7f8681fdb180) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7f8681fae208) 0 + QStyleOption (0x0x7f8681fdb420) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=128 base align=8 +QStyleOptionSlider (0x0x7f8681fae270) 0 + QStyleOptionComplex (0x0x7f8681fae2d8) 0 + QStyleOption (0x0x7f8681fdb6c0) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7f8681fae3a8) 0 + QStyleOptionComplex (0x0x7f8681fae410) 0 + QStyleOption (0x0x7f8681fdba80) 0 + +Class QStyleOptionToolButton + size=152 align=8 + base size=152 base align=8 +QStyleOptionToolButton (0x0x7f8681fae4e0) 0 + QStyleOptionComplex (0x0x7f8681fae548) 0 + QStyleOption (0x0x7f8681fdbcc0) 0 + +Class QStyleOptionComboBox + size=144 align=8 + base size=140 base align=8 +QStyleOptionComboBox (0x0x7f8681fae6e8) 0 + QStyleOptionComplex (0x0x7f8681fae750) 0 + QStyleOption (0x0x7f86820121e0) 0 + +Class QStyleOptionTitleBar + size=112 align=8 + base size=112 base align=8 +QStyleOptionTitleBar (0x0x7f8681fae7b8) 0 + QStyleOptionComplex (0x0x7f8681fae820) 0 + QStyleOption (0x0x7f8682012420) 0 + +Class QStyleOptionGroupBox + size=136 align=8 + base size=132 base align=8 +QStyleOptionGroupBox (0x0x7f8681fae888) 0 + QStyleOptionComplex (0x0x7f8681fae8f0) 0 + QStyleOption (0x0x7f8682012660) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7f8681fae958) 0 + QStyleOptionComplex (0x0x7f8681fae9c0) 0 + QStyleOption (0x0x7f86820128a0) 0 + +Class QStyleOptionGraphicsItem + size=96 align=8 + base size=96 base align=8 +QStyleOptionGraphicsItem (0x0x7f8681faea28) 0 + QStyleOption (0x0x7f8682012ae0) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7f8682012e40) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7f8681faea90) 0 + QStyleHintReturn (0x0x7f8682012ea0) 0 + +Class QStyleHintReturnVariant + size=40 align=8 + base size=40 base align=8 +QStyleHintReturnVariant (0x0x7f8681faeb60) 0 + QStyleHintReturn (0x0x7f8682012f00) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7f868204e0c0) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7f8681faec30) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16) + QObject (0x0x7f868204e060) 0 + primary-for QAbstractItemDelegate (0x0x7f8681faec30) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7f868204e300) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI19QAbstractScrollArea) +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +496 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=40 align=8 + base size=40 base align=8 +QAbstractScrollArea (0x0x7f8681faec98) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16) + QFrame (0x0x7f8681faed00) 0 + primary-for QAbstractScrollArea (0x0x7f8681faec98) + QWidget (0x0x7f8681ffbe00) 0 + primary-for QFrame (0x0x7f8681faed00) + QObject (0x0x7f868204e240) 0 + primary-for QWidget (0x0x7f8681ffbe00) + QPaintDevice (0x0x7f868204e2a0) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 488) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7f868204e600) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QAbstractItemView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))__cxa_pure_virtual +736 (int (*)(...))__cxa_pure_virtual +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI17QAbstractItemView) +800 0 +808 0 +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=40 align=8 + base size=40 base align=8 +QAbstractItemView (0x0x7f8681faed68) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16) + QAbstractScrollArea (0x0x7f8681faedd0) 0 + primary-for QAbstractItemView (0x0x7f8681faed68) + QFrame (0x0x7f8681faee38) 0 + primary-for QAbstractScrollArea (0x0x7f8681faedd0) + QWidget (0x0x7f8682074000) 0 + primary-for QFrame (0x0x7f8681faee38) + QObject (0x0x7f868204e540) 0 + primary-for QWidget (0x0x7f8682074000) + QPaintDevice (0x0x7f868204e5a0) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 800) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7f8682095540) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16) + QAccessibleObject (0x0x7f8681fae340) 0 + primary-for QAccessibleWidget (0x0x7f8682095540) + QAccessibleInterface (0x0x7f868204ef60) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f8681fae340) + QAccessibleActionInterface (0x0x7f86820c9000) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7f86820c9120) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7f86820d6000) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16) + QGuiApplication (0x0x7f86820d6068) 0 + primary-for QApplication (0x0x7f86820d6000) + QCoreApplication (0x0x7f86820d60d0) 0 + primary-for QGuiApplication (0x0x7f86820d6068) + QObject (0x0x7f86820c90c0) 0 + primary-for QCoreApplication (0x0x7f86820d60d0) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7f86820c9360) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7f86820d6138) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16) + QLayoutItem (0x0x7f86820c95a0) 0 + primary-for QSpacerItem (0x0x7f86820d6138) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7f86820d61a0) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16) + QLayoutItem (0x0x7f86820c97e0) 0 + primary-for QWidgetItem (0x0x7f86820d61a0) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7f86820d6208) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16) + QWidgetItem (0x0x7f86820d6270) 0 + primary-for QWidgetItemV2 (0x0x7f86820d6208) + QLayoutItem (0x0x7f86820c99c0) 0 + primary-for QWidgetItem (0x0x7f86820d6270) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7f86820c9b40) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QLayout::setGeometry +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI7QLayout) +272 0 +280 0 +288 (int (*)(...))__cxa_pure_virtual +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +312 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +320 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QLayoutItem::hasHeightForWidth +352 (int (*)(...))QLayoutItem::heightForWidth +360 (int (*)(...))QLayoutItem::minimumHeightForWidth +368 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7f8682095690) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16) + QObject (0x0x7f86820c9a80) 0 + primary-for QLayout (0x0x7f8682095690) + QLayoutItem (0x0x7f86820c9ae0) 16 + vptr=((& QLayout::_ZTV7QLayout) + 272) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7f86820c9e40) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::spacing +120 (int (*)(...))QGridLayout::setSpacing +128 (int (*)(...))QGridLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QGridLayout::addItem +152 (int (*)(...))QGridLayout::expandingDirections +160 (int (*)(...))QGridLayout::minimumSize +168 (int (*)(...))QGridLayout::maximumSize +176 (int (*)(...))QGridLayout::setGeometry +184 (int (*)(...))QGridLayout::itemAt +192 (int (*)(...))QGridLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QGridLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QGridLayout::sizeHint +264 (int (*)(...))QGridLayout::hasHeightForWidth +272 (int (*)(...))QGridLayout::heightForWidth +280 (int (*)(...))QGridLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QGridLayout) +304 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +312 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +320 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +328 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +336 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +352 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +384 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +392 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +400 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7f86820d62d8) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16) + QLayout (0x0x7f86820959a0) 0 + primary-for QGridLayout (0x0x7f86820d62d8) + QObject (0x0x7f86820c9d80) 0 + primary-for QLayout (0x0x7f86820959a0) + QLayoutItem (0x0x7f86820c9de0) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 304) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7f8682134120) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI10QBoxLayout) +304 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +312 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7f86820d6340) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16) + QLayout (0x0x7f8682095a10) 0 + primary-for QBoxLayout (0x0x7f86820d6340) + QObject (0x0x7f8682134060) 0 + primary-for QLayout (0x0x7f8682095a10) + QLayoutItem (0x0x7f86821340c0) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 304) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7f8682134360) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QHBoxLayout) +304 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +312 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7f86820d63a8) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16) + QBoxLayout (0x0x7f86820d6410) 0 + primary-for QHBoxLayout (0x0x7f86820d63a8) + QLayout (0x0x7f8682095d20) 0 + primary-for QBoxLayout (0x0x7f86820d6410) + QObject (0x0x7f86821342a0) 0 + primary-for QLayout (0x0x7f8682095d20) + QLayoutItem (0x0x7f8682134300) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 304) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7f86821344e0) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QVBoxLayout) +304 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +312 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7f86820d6478) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16) + QBoxLayout (0x0x7f86820d64e0) 0 + primary-for QVBoxLayout (0x0x7f86820d6478) + QLayout (0x0x7f8682095d90) 0 + primary-for QBoxLayout (0x0x7f86820d64e0) + QObject (0x0x7f8682134420) 0 + primary-for QLayout (0x0x7f8682095d90) + QLayoutItem (0x0x7f8682134480) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 304) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7f8682134600) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7f86820d6548) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16) + QObject (0x0x7f86821345a0) 0 + primary-for QButtonGroup (0x0x7f86820d6548) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7f8682134840) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=40 align=8 + base size=40 base align=8 +QCalendarWidget (0x0x7f86820d65b0) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16) + QWidget (0x0x7f8682095e00) 0 + primary-for QCalendarWidget (0x0x7f86820d65b0) + QObject (0x0x7f8682134780) 0 + primary-for QWidget (0x0x7f8682095e00) + QPaintDevice (0x0x7f86821347e0) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7f8682134cc0) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))QCheckBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QCheckBox) +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +488 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=40 align=8 + base size=40 base align=8 +QCheckBox (0x0x7f86820d6618) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16) + QAbstractButton (0x0x7f86820d6680) 0 + primary-for QCheckBox (0x0x7f86820d6618) + QWidget (0x0x7f8681d64230) 0 + primary-for QAbstractButton (0x0x7f86820d6680) + QObject (0x0x7f8682134c00) 0 + primary-for QWidget (0x0x7f8681d64230) + QPaintDevice (0x0x7f8682134c60) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 480) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7f8682134f00) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=40 align=8 + base size=40 base align=8 +QDialog (0x0x7f86820d66e8) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16) + QWidget (0x0x7f8681d642a0) 0 + primary-for QDialog (0x0x7f86820d66e8) + QObject (0x0x7f8682134e40) 0 + primary-for QWidget (0x0x7f8681d642a0) + QPaintDevice (0x0x7f8682134ea0) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7f8681d99180) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=40 align=8 + base size=40 base align=8 +QColorDialog (0x0x7f86820d6750) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16) + QDialog (0x0x7f86820d67b8) 0 + primary-for QColorDialog (0x0x7f86820d6750) + QWidget (0x0x7f8681d643f0) 0 + primary-for QDialog (0x0x7f86820d67b8) + QObject (0x0x7f8681d990c0) 0 + primary-for QWidget (0x0x7f8681d643f0) + QPaintDevice (0x0x7f8681d99120) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7f8681d996c0) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7f8681d997e0) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 109 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QColumnView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QColumnView::setModel +480 (int (*)(...))QColumnView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QColumnView::visualRect +504 (int (*)(...))QColumnView::scrollTo +512 (int (*)(...))QColumnView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QColumnView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QColumnView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QColumnView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QColumnView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QColumnView::moveCursor +704 (int (*)(...))QColumnView::horizontalOffset +712 (int (*)(...))QColumnView::verticalOffset +720 (int (*)(...))QColumnView::isIndexHidden +728 (int (*)(...))QColumnView::setSelection +736 (int (*)(...))QColumnView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QColumnView::createColumn +792 (int (*)(...))-16 +800 (int (*)(...))(& _ZTI11QColumnView) +808 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +816 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=40 align=8 + base size=40 base align=8 +QColumnView (0x0x7f86820d6958) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16) + QAbstractItemView (0x0x7f86820d69c0) 0 + primary-for QColumnView (0x0x7f86820d6958) + QAbstractScrollArea (0x0x7f86820d6a28) 0 + primary-for QAbstractItemView (0x0x7f86820d69c0) + QFrame (0x0x7f86820d6a90) 0 + primary-for QAbstractScrollArea (0x0x7f86820d6a28) + QWidget (0x0x7f8681d64700) 0 + primary-for QFrame (0x0x7f86820d6a90) + QObject (0x0x7f8681d99720) 0 + primary-for QWidget (0x0x7f8681d64700) + QPaintDevice (0x0x7f8681d99780) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 808) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7f8681d99a20) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QComboBox) +480 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +488 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=40 align=8 + base size=40 base align=8 +QComboBox (0x0x7f86820d6af8) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16) + QWidget (0x0x7f8681d64770) 0 + primary-for QComboBox (0x0x7f86820d6af8) + QObject (0x0x7f8681d99960) 0 + primary-for QWidget (0x0x7f8681d64770) + QPaintDevice (0x0x7f8681d999c0) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 480) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7f8681e06000) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QPushButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QPushButton) +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +488 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=40 align=8 + base size=40 base align=8 +QPushButton (0x0x7f86820d6b60) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16) + QAbstractButton (0x0x7f86820d6bc8) 0 + primary-for QPushButton (0x0x7f86820d6b60) + QWidget (0x0x7f8681d64c40) 0 + primary-for QAbstractButton (0x0x7f86820d6bc8) + QObject (0x0x7f8681d99f00) 0 + primary-for QWidget (0x0x7f8681d64c40) + QPaintDevice (0x0x7f8681d99f60) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 480) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7f8681e06240) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QCommandLinkButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI18QCommandLinkButton) +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +488 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=40 align=8 + base size=40 base align=8 +QCommandLinkButton (0x0x7f86820d6c30) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16) + QPushButton (0x0x7f86820d6c98) 0 + primary-for QCommandLinkButton (0x0x7f86820d6c30) + QAbstractButton (0x0x7f86820d6d00) 0 + primary-for QPushButton (0x0x7f86820d6c98) + QWidget (0x0x7f8681d64cb0) 0 + primary-for QAbstractButton (0x0x7f86820d6d00) + QObject (0x0x7f8681e06180) 0 + primary-for QWidget (0x0x7f8681d64cb0) + QPaintDevice (0x0x7f8681e061e0) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 480) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7f8681e06420) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7f86820d6d68) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16) + QStyle (0x0x7f86820d6dd0) 0 + primary-for QCommonStyle (0x0x7f86820d6d68) + QObject (0x0x7f8681e063c0) 0 + primary-for QStyle (0x0x7f86820d6dd0) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7f8681e06600) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7f86820d6e38) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16) + QObject (0x0x7f8681e065a0) 0 + primary-for QCompleter (0x0x7f86820d6e38) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7f8681e06960) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7f86820d6ea0) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16) + QObject (0x0x7f8681e06900) 0 + primary-for QDataWidgetMapper (0x0x7f86820d6ea0) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7f8681e06c60) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QDateTimeEdit) +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +520 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=40 align=8 + base size=40 base align=8 +QDateTimeEdit (0x0x7f86820d6f08) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16) + QAbstractSpinBox (0x0x7f86820d6f70) 0 + primary-for QDateTimeEdit (0x0x7f86820d6f08) + QWidget (0x0x7f8681e460e0) 0 + primary-for QAbstractSpinBox (0x0x7f86820d6f70) + QObject (0x0x7f8681e06ba0) 0 + primary-for QWidget (0x0x7f8681e460e0) + QPaintDevice (0x0x7f8681e06c00) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 512) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7f8681e80240) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QTimeEdit) +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +520 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=40 align=8 + base size=40 base align=8 +QTimeEdit (0x0x7f8681e73138) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16) + QDateTimeEdit (0x0x7f8681e731a0) 0 + primary-for QTimeEdit (0x0x7f8681e73138) + QAbstractSpinBox (0x0x7f8681e73208) 0 + primary-for QDateTimeEdit (0x0x7f8681e731a0) + QWidget (0x0x7f8681e465b0) 0 + primary-for QAbstractSpinBox (0x0x7f8681e73208) + QObject (0x0x7f8681e80180) 0 + primary-for QWidget (0x0x7f8681e465b0) + QPaintDevice (0x0x7f8681e801e0) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 512) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7f8681e803c0) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QDateEdit) +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +520 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=40 align=8 + base size=40 base align=8 +QDateEdit (0x0x7f8681e73270) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16) + QDateTimeEdit (0x0x7f8681e732d8) 0 + primary-for QDateEdit (0x0x7f8681e73270) + QAbstractSpinBox (0x0x7f8681e73340) 0 + primary-for QDateTimeEdit (0x0x7f8681e732d8) + QWidget (0x0x7f8681e46620) 0 + primary-for QAbstractSpinBox (0x0x7f8681e73340) + QObject (0x0x7f8681e80300) 0 + primary-for QWidget (0x0x7f8681e46620) + QPaintDevice (0x0x7f8681e80360) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 512) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7f8681e80660) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))QDial::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI5QDial) +464 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +472 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=40 align=8 + base size=40 base align=8 +QDial (0x0x7f8681e733a8) 0 + vptr=((& QDial::_ZTV5QDial) + 16) + QAbstractSlider (0x0x7f8681e73410) 0 + primary-for QDial (0x0x7f8681e733a8) + QWidget (0x0x7f8681e46690) 0 + primary-for QAbstractSlider (0x0x7f8681e73410) + QObject (0x0x7f8681e805a0) 0 + primary-for QWidget (0x0x7f8681e46690) + QPaintDevice (0x0x7f8681e80600) 16 + vptr=((& QDial::_ZTV5QDial) + 464) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7f8681e808a0) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=40 align=8 + base size=40 base align=8 +QDialogButtonBox (0x0x7f8681e73478) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16) + QWidget (0x0x7f8681e46700) 0 + primary-for QDialogButtonBox (0x0x7f8681e73478) + QObject (0x0x7f8681e807e0) 0 + primary-for QWidget (0x0x7f8681e46700) + QPaintDevice (0x0x7f8681e80840) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7f8681e80ea0) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDockWidget::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QDockWidget) +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +464 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=40 align=8 + base size=40 base align=8 +QDockWidget (0x0x7f8681e73618) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16) + QWidget (0x0x7f8681ead7e0) 0 + primary-for QDockWidget (0x0x7f8681e73618) + QObject (0x0x7f8681e80de0) 0 + primary-for QWidget (0x0x7f8681ead7e0) + QPaintDevice (0x0x7f8681e80e40) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 456) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7f8681eec4e0) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7f8681eecb40) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=40 align=8 + base size=40 base align=8 +QErrorMessage (0x0x7f8681e738f0) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16) + QDialog (0x0x7f8681e73958) 0 + primary-for QErrorMessage (0x0x7f8681e738f0) + QWidget (0x0x7f8681f13230) 0 + primary-for QDialog (0x0x7f8681e73958) + QObject (0x0x7f8681eeca80) 0 + primary-for QWidget (0x0x7f8681f13230) + QPaintDevice (0x0x7f8681eecae0) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7f8681eecd80) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=40 align=8 + base size=40 base align=8 +QFileDialog (0x0x7f8681e739c0) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16) + QDialog (0x0x7f8681e73a28) 0 + primary-for QFileDialog (0x0x7f8681e739c0) + QWidget (0x0x7f8681f132a0) 0 + primary-for QDialog (0x0x7f8681e73a28) + QObject (0x0x7f8681eeccc0) 0 + primary-for QWidget (0x0x7f8681f132a0) + QPaintDevice (0x0x7f8681eecd20) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7f8681e73bc8) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16) + QAbstractFileIconProvider (0x0x7f8681b68660) 0 + primary-for QFileIconProvider (0x0x7f8681e73bc8) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7f8681b68840) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFocusFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QFocusFrame) +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +464 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=40 align=8 + base size=40 base align=8 +QFocusFrame (0x0x7f8681e73c30) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16) + QWidget (0x0x7f8681f13bd0) 0 + primary-for QFocusFrame (0x0x7f8681e73c30) + QObject (0x0x7f8681b68780) 0 + primary-for QWidget (0x0x7f8681f13bd0) + QPaintDevice (0x0x7f8681b687e0) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 456) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7f8681b68a80) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI13QFontComboBox) +480 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +488 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=40 align=8 + base size=40 base align=8 +QFontComboBox (0x0x7f8681e73c98) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16) + QComboBox (0x0x7f8681e73d00) 0 + primary-for QFontComboBox (0x0x7f8681e73c98) + QWidget (0x0x7f8681f13c40) 0 + primary-for QComboBox (0x0x7f8681e73d00) + QObject (0x0x7f8681b689c0) 0 + primary-for QWidget (0x0x7f8681f13c40) + QPaintDevice (0x0x7f8681b68a20) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 480) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7f8681bb70c0) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=40 align=8 + base size=40 base align=8 +QFontDialog (0x0x7f8681e73ea0) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16) + QDialog (0x0x7f8681e73f08) 0 + primary-for QFontDialog (0x0x7f8681e73ea0) + QWidget (0x0x7f8681f13ee0) 0 + primary-for QDialog (0x0x7f8681e73f08) + QObject (0x0x7f8681bb7000) 0 + primary-for QWidget (0x0x7f8681f13ee0) + QPaintDevice (0x0x7f8681bb7060) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7f8681bb76c0) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7f8681bb7720) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::spacing +120 (int (*)(...))QFormLayout::setSpacing +128 (int (*)(...))QFormLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QFormLayout::addItem +152 (int (*)(...))QFormLayout::expandingDirections +160 (int (*)(...))QFormLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QFormLayout::setGeometry +184 (int (*)(...))QFormLayout::itemAt +192 (int (*)(...))QFormLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QFormLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QFormLayout::sizeHint +264 (int (*)(...))QFormLayout::hasHeightForWidth +272 (int (*)(...))QFormLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI11QFormLayout) +296 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +304 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +312 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +320 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +344 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +376 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7f8681bc90d0) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16) + QLayout (0x0x7f8681bba230) 0 + primary-for QFormLayout (0x0x7f8681bc90d0) + QObject (0x0x7f8681bb7600) 0 + primary-for QLayout (0x0x7f8681bba230) + QLayoutItem (0x0x7f8681bb7660) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 296) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7f8681c25240) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7f8681c1bb60) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16) + QObject (0x0x7f8681c251e0) 0 + primary-for QGesture (0x0x7f8681c1bb60) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7f8681c25420) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7f8681c1bbc8) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16) + QGesture (0x0x7f8681c1bc30) 0 + primary-for QPanGesture (0x0x7f8681c1bbc8) + QObject (0x0x7f8681c253c0) 0 + primary-for QGesture (0x0x7f8681c1bc30) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7f8681c25600) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7f8681c1bc98) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16) + QGesture (0x0x7f8681c1bd00) 0 + primary-for QPinchGesture (0x0x7f8681c1bc98) + QObject (0x0x7f8681c255a0) 0 + primary-for QGesture (0x0x7f8681c1bd00) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7f8681c25d80) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7f8681c1bea0) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16) + QGesture (0x0x7f8681c1bf08) 0 + primary-for QSwipeGesture (0x0x7f8681c1bea0) + QObject (0x0x7f8681c25d20) 0 + primary-for QGesture (0x0x7f8681c1bf08) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7f8681c71060) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7f8681c1bf70) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16) + QGesture (0x0x7f8681c70000) 0 + primary-for QTapGesture (0x0x7f8681c1bf70) + QObject (0x0x7f8681c71000) 0 + primary-for QGesture (0x0x7f8681c70000) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7f8681c71240) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7f8681c70068) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16) + QGesture (0x0x7f8681c700d0) 0 + primary-for QTapAndHoldGesture (0x0x7f8681c70068) + QObject (0x0x7f8681c711e0) 0 + primary-for QGesture (0x0x7f8681c700d0) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGestureEvent + size=64 align=8 + base size=64 base align=8 +QGestureEvent (0x0x7f8681c70138) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16) + QEvent (0x0x7f8681c713c0) 0 + primary-for QGestureEvent (0x0x7f8681c70138) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0 +24 0 +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7f8681d07000) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7f8681d07360) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7f86819b4540) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0 +48 0 +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0 +136 0 +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7f8681969070) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16) + QObject (0x0x7f86819b4480) 0 + primary-for QGraphicsObject (0x0x7f8681969070) + QGraphicsItem (0x0x7f86819b44e0) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7f8681c70bc8) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16) + QGraphicsItem (0x0x7f86819b4600) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f8681c70bc8) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7f8681c70c30) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f8681c70c98) 0 + primary-for QGraphicsPathItem (0x0x7f8681c70c30) + QGraphicsItem (0x0x7f86819b4720) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f8681c70c98) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7f8681c70d00) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f8681c70d68) 0 + primary-for QGraphicsRectItem (0x0x7f8681c70d00) + QGraphicsItem (0x0x7f86819b4840) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f8681c70d68) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7f8681c70dd0) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f8681c70e38) 0 + primary-for QGraphicsEllipseItem (0x0x7f8681c70dd0) + QGraphicsItem (0x0x7f86819b49c0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f8681c70e38) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7f8681c70ea0) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f8681c70f08) 0 + primary-for QGraphicsPolygonItem (0x0x7f8681c70ea0) + QGraphicsItem (0x0x7f86819b4b40) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f8681c70f08) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7f8681c70f70) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16) + QGraphicsItem (0x0x7f86819b4c60) 0 + primary-for QGraphicsLineItem (0x0x7f8681c70f70) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7f8681c708f0) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16) + QGraphicsItem (0x0x7f86819b4de0) 0 + primary-for QGraphicsPixmapItem (0x0x7f8681c708f0) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7f8681a1e060) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7f8681a1d000) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16) + QGraphicsObject (0x0x7f86819694d0) 0 + primary-for QGraphicsTextItem (0x0x7f8681a1d000) + QObject (0x0x7f86819b4f60) 0 + primary-for QGraphicsObject (0x0x7f86819694d0) + QGraphicsItem (0x0x7f8681a1e000) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7f8681a1d138) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f8681a1d1a0) 0 + primary-for QGraphicsSimpleTextItem (0x0x7f8681a1d138) + QGraphicsItem (0x0x7f8681a1e300) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f8681a1d1a0) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7f8681a1d208) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16) + QGraphicsItem (0x0x7f8681a1e420) 0 + primary-for QGraphicsItemGroup (0x0x7f8681a1d208) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7f8681a1e720) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))QGraphicsLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7f8681a1d270) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16) + QGraphicsLayoutItem (0x0x7f8681a1ede0) 0 + primary-for QGraphicsLayout (0x0x7f8681a1d270) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7f8681a80120) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7f8681a1d2d8) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16) + QObject (0x0x7f8681a800c0) 0 + primary-for QGraphicsAnchor (0x0x7f8681a1d2d8) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsAnchorLayout::sizeHint +72 (int (*)(...))QGraphicsAnchorLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsAnchorLayout::count +96 (int (*)(...))QGraphicsAnchorLayout::itemAt +104 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7f8681a1d340) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16) + QGraphicsLayout (0x0x7f8681a1d3a8) 0 + primary-for QGraphicsAnchorLayout (0x0x7f8681a1d340) + QGraphicsLayoutItem (0x0x7f8681a802a0) 0 + primary-for QGraphicsLayout (0x0x7f8681a1d3a8) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7f8681a80420) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7f8681a1d410) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16) + QObject (0x0x7f8681a803c0) 0 + primary-for QGraphicsEffect (0x0x7f8681a1d410) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7f8681a809c0) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7f8681a1d5b0) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16) + QGraphicsEffect (0x0x7f8681a1d618) 0 + primary-for QGraphicsColorizeEffect (0x0x7f8681a1d5b0) + QObject (0x0x7f8681a80960) 0 + primary-for QGraphicsEffect (0x0x7f8681a1d618) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7f8681a80ba0) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7f8681a1d680) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16) + QGraphicsEffect (0x0x7f8681a1d6e8) 0 + primary-for QGraphicsBlurEffect (0x0x7f8681a1d680) + QObject (0x0x7f8681a80b40) 0 + primary-for QGraphicsEffect (0x0x7f8681a1d6e8) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7f8681af3240) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7f8681a1d888) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16) + QGraphicsEffect (0x0x7f8681a1d8f0) 0 + primary-for QGraphicsDropShadowEffect (0x0x7f8681a1d888) + QObject (0x0x7f8681af31e0) 0 + primary-for QGraphicsEffect (0x0x7f8681a1d8f0) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7f8681af3660) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7f8681a1d958) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16) + QGraphicsEffect (0x0x7f8681a1d9c0) 0 + primary-for QGraphicsOpacityEffect (0x0x7f8681a1d958) + QObject (0x0x7f8681af3600) 0 + primary-for QGraphicsEffect (0x0x7f8681a1d9c0) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsGridLayout::sizeHint +72 (int (*)(...))QGraphicsGridLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsGridLayout::count +96 (int (*)(...))QGraphicsGridLayout::itemAt +104 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7f8681a1da28) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16) + QGraphicsLayout (0x0x7f8681a1da90) 0 + primary-for QGraphicsGridLayout (0x0x7f8681a1da28) + QGraphicsLayoutItem (0x0x7f8681af37e0) 0 + primary-for QGraphicsLayout (0x0x7f8681a1da90) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7f8681af39c0) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7f8681a1dbc8) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16) + QObject (0x0x7f8681af3960) 0 + primary-for QGraphicsItemAnimation (0x0x7f8681a1dbc8) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsLinearLayout::sizeHint +72 (int (*)(...))QGraphicsLinearLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsLinearLayout::count +96 (int (*)(...))QGraphicsLinearLayout::itemAt +104 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7f8681a1dc30) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16) + QGraphicsLayout (0x0x7f8681a1dc98) 0 + primary-for QGraphicsLinearLayout (0x0x7f8681a1dc30) + QGraphicsLayoutItem (0x0x7f8681af3a80) 0 + primary-for QGraphicsLayout (0x0x7f8681a1dc98) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7f8681af3d80) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 93 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsLayoutItem::isEmpty +736 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7f8681ad5070) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16) + QGraphicsObject (0x0x7f8681ad50e0) 0 + primary-for QGraphicsWidget (0x0x7f8681ad5070) + QObject (0x0x7f8681af3c60) 0 + primary-for QGraphicsObject (0x0x7f8681ad50e0) + QGraphicsItem (0x0x7f8681af3cc0) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376) + QGraphicsLayoutItem (0x0x7f8681af3d20) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7f8681773240) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsLayoutItem::isEmpty +856 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7f8681a1ddd0) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16) + QGraphicsWidget (0x0x7f8681ad5230) 0 + primary-for QGraphicsProxyWidget (0x0x7f8681a1ddd0) + QGraphicsObject (0x0x7f8681ad52a0) 0 + primary-for QGraphicsWidget (0x0x7f8681ad5230) + QObject (0x0x7f8681773120) 0 + primary-for QGraphicsObject (0x0x7f8681ad52a0) + QGraphicsItem (0x0x7f8681773180) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496) + QGraphicsLayoutItem (0x0x7f86817731e0) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7f86817735a0) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems +272 (int (*)(...))QGraphicsScene::focusNextPrevChild + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7f8681791000) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16) + QObject (0x0x7f8681773540) 0 + primary-for QGraphicsScene (0x0x7f8681791000) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneEvent (0x0x7f8681791a28) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16) + QEvent (0x0x7f86817de900) 0 + primary-for QGraphicsSceneEvent (0x0x7f8681791a28) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMouseEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMouseEvent (0x0x7f8681791a90) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16) + QGraphicsSceneEvent (0x0x7f8681791af8) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7f8681791a90) + QEvent (0x0x7f86817deae0) 0 + primary-for QGraphicsSceneEvent (0x0x7f8681791af8) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneWheelEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneWheelEvent (0x0x7f8681791b60) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16) + QGraphicsSceneEvent (0x0x7f8681791bc8) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7f8681791b60) + QEvent (0x0x7f86817dec00) 0 + primary-for QGraphicsSceneEvent (0x0x7f8681791bc8) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneContextMenuEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7f8681791c30) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16) + QGraphicsSceneEvent (0x0x7f8681791c98) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7f8681791c30) + QEvent (0x0x7f86817ded20) 0 + primary-for QGraphicsSceneEvent (0x0x7f8681791c98) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHoverEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHoverEvent (0x0x7f8681791d00) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16) + QGraphicsSceneEvent (0x0x7f8681791d68) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7f8681791d00) + QEvent (0x0x7f86817dee40) 0 + primary-for QGraphicsSceneEvent (0x0x7f8681791d68) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHelpEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHelpEvent (0x0x7f8681791dd0) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16) + QGraphicsSceneEvent (0x0x7f8681791e38) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7f8681791dd0) + QEvent (0x0x7f86817def60) 0 + primary-for QGraphicsSceneEvent (0x0x7f8681791e38) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneDragDropEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneDragDropEvent (0x0x7f8681791ea0) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16) + QGraphicsSceneEvent (0x0x7f8681791f08) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7f8681791ea0) + QEvent (0x0x7f8681879060) 0 + primary-for QGraphicsSceneEvent (0x0x7f8681791f08) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneResizeEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneResizeEvent (0x0x7f8681791f70) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16) + QGraphicsSceneEvent (0x0x7f86817919c0) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7f8681791f70) + QEvent (0x0x7f8681879180) 0 + primary-for QGraphicsSceneEvent (0x0x7f86817919c0) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMoveEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMoveEvent (0x0x7f868188b000) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16) + QGraphicsSceneEvent (0x0x7f868188b068) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7f868188b000) + QEvent (0x0x7f86818792a0) 0 + primary-for QGraphicsSceneEvent (0x0x7f868188b068) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7f8681879420) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7f868188b0d0) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16) + QObject (0x0x7f86818793c0) 0 + primary-for QGraphicsTransform (0x0x7f868188b0d0) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7f8681879600) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7f868188b138) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16) + QGraphicsTransform (0x0x7f868188b1a0) 0 + primary-for QGraphicsScale (0x0x7f868188b138) + QObject (0x0x7f86818795a0) 0 + primary-for QGraphicsTransform (0x0x7f868188b1a0) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7f86818797e0) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7f868188b208) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16) + QGraphicsTransform (0x0x7f868188b270) 0 + primary-for QGraphicsRotation (0x0x7f868188b208) + QObject (0x0x7f8681879780) 0 + primary-for QGraphicsTransform (0x0x7f868188b270) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7f8681879a20) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QScrollArea::scrollContentsBy +464 (int (*)(...))QScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QScrollArea) +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +496 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=40 align=8 + base size=40 base align=8 +QScrollArea (0x0x7f868188b2d8) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16) + QAbstractScrollArea (0x0x7f868188b340) 0 + primary-for QScrollArea (0x0x7f868188b2d8) + QFrame (0x0x7f868188b3a8) 0 + primary-for QAbstractScrollArea (0x0x7f868188b340) + QWidget (0x0x7f8681ad5af0) 0 + primary-for QFrame (0x0x7f868188b3a8) + QObject (0x0x7f8681879960) 0 + primary-for QWidget (0x0x7f8681ad5af0) + QPaintDevice (0x0x7f86818799c0) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 488) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7f8681879c60) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QGraphicsView::setupViewport +448 (int (*)(...))QGraphicsView::viewportEvent +456 (int (*)(...))QGraphicsView::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QGraphicsView::drawBackground +480 (int (*)(...))QGraphicsView::drawForeground +488 (int (*)(...))QGraphicsView::drawItems +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QGraphicsView) +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +520 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=40 align=8 + base size=40 base align=8 +QGraphicsView (0x0x7f868188b410) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16) + QAbstractScrollArea (0x0x7f868188b478) 0 + primary-for QGraphicsView (0x0x7f868188b410) + QFrame (0x0x7f868188b4e0) 0 + primary-for QAbstractScrollArea (0x0x7f868188b478) + QWidget (0x0x7f8681ad5b60) 0 + primary-for QFrame (0x0x7f868188b4e0) + QObject (0x0x7f8681879ba0) 0 + primary-for QWidget (0x0x7f8681ad5b60) + QPaintDevice (0x0x7f8681879c00) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 512) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7f86818efb40) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QGroupBox::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QGroupBox) +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +464 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=40 align=8 + base size=40 base align=8 +QGroupBox (0x0x7f868188b7b8) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16) + QWidget (0x0x7f86818c1310) 0 + primary-for QGroupBox (0x0x7f868188b7b8) + QObject (0x0x7f86818efa80) 0 + primary-for QWidget (0x0x7f86818c1310) + QPaintDevice (0x0x7f86818efae0) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 456) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7f86818efd80) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QHeaderView::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QHeaderView::viewportEvent +456 (int (*)(...))QHeaderView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QHeaderView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QHeaderView::visualRect +504 (int (*)(...))QHeaderView::scrollTo +512 (int (*)(...))QHeaderView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QHeaderView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QHeaderView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QHeaderView::dataChanged +584 (int (*)(...))QHeaderView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QHeaderView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QHeaderView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QHeaderView::moveCursor +704 (int (*)(...))QHeaderView::horizontalOffset +712 (int (*)(...))QHeaderView::verticalOffset +720 (int (*)(...))QHeaderView::isIndexHidden +728 (int (*)(...))QHeaderView::setSelection +736 (int (*)(...))QHeaderView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QHeaderView::paintSection +792 (int (*)(...))QHeaderView::sectionSizeFromContents +800 (int (*)(...))QHeaderView::initStyleOptionForIndex +808 (int (*)(...))QHeaderView::initStyleOption +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QHeaderView) +832 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +840 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=40 align=8 + base size=40 base align=8 +QHeaderView (0x0x7f868188b820) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16) + QAbstractItemView (0x0x7f868188b888) 0 + primary-for QHeaderView (0x0x7f868188b820) + QAbstractScrollArea (0x0x7f868188b8f0) 0 + primary-for QAbstractItemView (0x0x7f868188b888) + QFrame (0x0x7f868188b958) 0 + primary-for QAbstractScrollArea (0x0x7f868188b8f0) + QWidget (0x0x7f86818c1380) 0 + primary-for QFrame (0x0x7f868188b958) + QObject (0x0x7f86818efcc0) 0 + primary-for QWidget (0x0x7f86818c1380) + QPaintDevice (0x0x7f86818efd20) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 832) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7f8681579240) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QLineEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QLineEdit::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QLineEdit::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QLineEdit) +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +464 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=40 align=8 + base size=40 base align=8 +QLineEdit (0x0x7f868188b9c0) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16) + QWidget (0x0x7f86818c1620) 0 + primary-for QLineEdit (0x0x7f868188b9c0) + QObject (0x0x7f8681579180) 0 + primary-for QWidget (0x0x7f86818c1620) + QPaintDevice (0x0x7f86815791e0) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 456) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7f8681579600) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=40 align=8 + base size=40 base align=8 +QInputDialog (0x0x7f868188ba28) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16) + QDialog (0x0x7f868188ba90) 0 + primary-for QInputDialog (0x0x7f868188ba28) + QWidget (0x0x7f86818c1930) 0 + primary-for QDialog (0x0x7f868188ba90) + QObject (0x0x7f8681579540) 0 + primary-for QWidget (0x0x7f86818c1930) + QPaintDevice (0x0x7f86815795a0) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7f8681579ae0) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7f868188bc30) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f868188bc98) 0 + primary-for QItemDelegate (0x0x7f868188bc30) + QObject (0x0x7f8681579a80) 0 + primary-for QAbstractItemDelegate (0x0x7f868188bc98) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7f8681579c60) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7f86815f5000) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7f86815f54e0) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=40 align=8 + base size=40 base align=8 +QKeySequenceEdit (0x0x7f868188bdd0) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16) + QWidget (0x0x7f86818c1c40) 0 + primary-for QKeySequenceEdit (0x0x7f868188bdd0) + QObject (0x0x7f86815f5420) 0 + primary-for QWidget (0x0x7f86818c1c40) + QPaintDevice (0x0x7f86815f5480) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7f86815f5720) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QLabel) +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +464 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=40 align=8 + base size=40 base align=8 +QLabel (0x0x7f868188be38) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16) + QFrame (0x0x7f868188bea0) 0 + primary-for QLabel (0x0x7f868188be38) + QWidget (0x0x7f86818c1cb0) 0 + primary-for QFrame (0x0x7f868188bea0) + QObject (0x0x7f86815f5660) 0 + primary-for QWidget (0x0x7f86818c1cb0) + QPaintDevice (0x0x7f86815f56c0) 16 + vptr=((& QLabel::_ZTV6QLabel) + 456) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7f86815f5a20) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QLCDNumber) +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +464 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=40 align=8 + base size=40 base align=8 +QLCDNumber (0x0x7f868188bf08) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16) + QFrame (0x0x7f868188bf70) 0 + primary-for QLCDNumber (0x0x7f868188bf08) + QWidget (0x0x7f86818c1d20) 0 + primary-for QFrame (0x0x7f868188bf70) + QObject (0x0x7f86815f5960) 0 + primary-for QWidget (0x0x7f86818c1d20) + QPaintDevice (0x0x7f86815f59c0) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 456) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7f86815f5de0) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QListView) +800 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +808 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=40 align=8 + base size=40 base align=8 +QListView (0x0x7f8681650000) 0 + vptr=((& QListView::_ZTV9QListView) + 16) + QAbstractItemView (0x0x7f8681650068) 0 + primary-for QListView (0x0x7f8681650000) + QAbstractScrollArea (0x0x7f86816500d0) 0 + primary-for QAbstractItemView (0x0x7f8681650068) + QFrame (0x0x7f8681650138) 0 + primary-for QAbstractScrollArea (0x0x7f86816500d0) + QWidget (0x0x7f868163c0e0) 0 + primary-for QFrame (0x0x7f8681650138) + QObject (0x0x7f86815f5d20) 0 + primary-for QWidget (0x0x7f868163c0e0) + QPaintDevice (0x0x7f86815f5d80) 16 + vptr=((& QListView::_ZTV9QListView) + 800) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::data +48 (int (*)(...))QListWidgetItem::setData +56 (int (*)(...))QListWidgetItem::operator< +64 (int (*)(...))QListWidgetItem::read +72 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=40 align=8 + base size=36 base align=8 +QListWidgetItem (0x0x7f8681673360) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7f8681673de0) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QListWidget::setModel +480 (int (*)(...))QListWidget::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))QListWidget::mimeTypes +792 (int (*)(...))QListWidget::mimeData +800 (int (*)(...))QListWidget::dropMimeData +808 (int (*)(...))QListWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QListWidget) +832 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +840 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=40 align=8 + base size=40 base align=8 +QListWidget (0x0x7f86816501a0) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16) + QListView (0x0x7f8681650208) 0 + primary-for QListWidget (0x0x7f86816501a0) + QAbstractItemView (0x0x7f8681650270) 0 + primary-for QListView (0x0x7f8681650208) + QAbstractScrollArea (0x0x7f86816502d8) 0 + primary-for QAbstractItemView (0x0x7f8681650270) + QFrame (0x0x7f8681650340) 0 + primary-for QAbstractScrollArea (0x0x7f86816502d8) + QWidget (0x0x7f868163c700) 0 + primary-for QFrame (0x0x7f8681650340) + QObject (0x0x7f8681673d20) 0 + primary-for QWidget (0x0x7f868163c700) + QPaintDevice (0x0x7f8681673d80) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 832) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7f86816b7300) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=40 align=8 + base size=40 base align=8 +QMainWindow (0x0x7f86816503a8) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16) + QWidget (0x0x7f868163c770) 0 + primary-for QMainWindow (0x0x7f86816503a8) + QObject (0x0x7f86816b7240) 0 + primary-for QWidget (0x0x7f868163c770) + QPaintDevice (0x0x7f86816b72a0) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7f86816b79c0) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QMdiArea::setupViewport +448 (int (*)(...))QMdiArea::viewportEvent +456 (int (*)(...))QMdiArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI8QMdiArea) +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +496 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=40 align=8 + base size=40 base align=8 +QMdiArea (0x0x7f8681650548) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16) + QAbstractScrollArea (0x0x7f86816505b0) 0 + primary-for QMdiArea (0x0x7f8681650548) + QFrame (0x0x7f8681650618) 0 + primary-for QAbstractScrollArea (0x0x7f86816505b0) + QWidget (0x0x7f868163ca80) 0 + primary-for QFrame (0x0x7f8681650618) + QObject (0x0x7f86816b7900) 0 + primary-for QWidget (0x0x7f868163ca80) + QPaintDevice (0x0x7f86816b7960) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 488) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7f86817420c0) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=40 align=8 + base size=40 base align=8 +QMdiSubWindow (0x0x7f86816507b8) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16) + QWidget (0x0x7f868163ce00) 0 + primary-for QMdiSubWindow (0x0x7f86816507b8) + QObject (0x0x7f8681742000) 0 + primary-for QWidget (0x0x7f868163ce00) + QPaintDevice (0x0x7f8681742060) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7f8681742600) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))QMenu::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QMenu) +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +464 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=40 align=8 + base size=40 base align=8 +QMenu (0x0x7f8681650958) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16) + QWidget (0x0x7f8681345070) 0 + primary-for QMenu (0x0x7f8681650958) + QObject (0x0x7f8681742540) 0 + primary-for QWidget (0x0x7f8681345070) + QPaintDevice (0x0x7f86817425a0) 16 + vptr=((& QMenu::_ZTV5QMenu) + 456) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7f86817429c0) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMenuBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QMenuBar) +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +464 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=40 align=8 + base size=40 base align=8 +QMenuBar (0x0x7f86816509c0) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16) + QWidget (0x0x7f86813450e0) 0 + primary-for QMenuBar (0x0x7f86816509c0) + QObject (0x0x7f8681742900) 0 + primary-for QWidget (0x0x7f86813450e0) + QPaintDevice (0x0x7f8681742960) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 456) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7f8681742cc0) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=40 align=8 + base size=40 base align=8 +QMessageBox (0x0x7f8681650a28) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16) + QDialog (0x0x7f8681650a90) 0 + primary-for QMessageBox (0x0x7f8681650a28) + QWidget (0x0x7f8681345150) 0 + primary-for QDialog (0x0x7f8681650a90) + QObject (0x0x7f8681742c00) 0 + primary-for QWidget (0x0x7f8681345150) + QPaintDevice (0x0x7f8681742c60) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7f86813f4540) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7f86813f45a0) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextEdit::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI9QTextEdit) +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +536 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=40 align=8 + base size=40 base align=8 +QTextEdit (0x0x7f8681650c30) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16) + QAbstractScrollArea (0x0x7f8681650c98) 0 + primary-for QTextEdit (0x0x7f8681650c30) + QFrame (0x0x7f8681650d00) 0 + primary-for QAbstractScrollArea (0x0x7f8681650c98) + QWidget (0x0x7f86813b84d0) 0 + primary-for QFrame (0x0x7f8681650d00) + QObject (0x0x7f86813f4480) 0 + primary-for QWidget (0x0x7f86813b84d0) + QPaintDevice (0x0x7f86813f44e0) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 528) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7f86813f4de0) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QPlainTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QPlainTextEdit::loadResource +480 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +488 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +496 (int (*)(...))QPlainTextEdit::insertFromMimeData +504 (int (*)(...))QPlainTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI14QPlainTextEdit) +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +536 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=40 align=8 + base size=40 base align=8 +QPlainTextEdit (0x0x7f8681650ea0) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16) + QAbstractScrollArea (0x0x7f8681650f08) 0 + primary-for QPlainTextEdit (0x0x7f8681650ea0) + QFrame (0x0x7f8681650f70) 0 + primary-for QAbstractScrollArea (0x0x7f8681650f08) + QWidget (0x0x7f86813b8850) 0 + primary-for QFrame (0x0x7f8681650f70) + QObject (0x0x7f86813f4d20) 0 + primary-for QWidget (0x0x7f86813b8850) + QPaintDevice (0x0x7f86813f4d80) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 528) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7f8681488360) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7f868148d000) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16) + QAbstractTextDocumentLayout (0x0x7f868148d068) 0 + primary-for QPlainTextDocumentLayout (0x0x7f868148d000) + QObject (0x0x7f8681488300) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f868148d068) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7f86814885a0) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))QProgressBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI12QProgressBar) +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +472 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=40 align=8 + base size=40 base align=8 +QProgressBar (0x0x7f868148d0d0) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16) + QWidget (0x0x7f86813b89a0) 0 + primary-for QProgressBar (0x0x7f868148d0d0) + QObject (0x0x7f86814884e0) 0 + primary-for QWidget (0x0x7f86813b89a0) + QPaintDevice (0x0x7f8681488540) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 464) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7f86814888a0) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=40 align=8 + base size=40 base align=8 +QProgressDialog (0x0x7f868148d138) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16) + QDialog (0x0x7f868148d1a0) 0 + primary-for QProgressDialog (0x0x7f868148d138) + QWidget (0x0x7f86813b8af0) 0 + primary-for QDialog (0x0x7f868148d1a0) + QObject (0x0x7f86814887e0) 0 + primary-for QWidget (0x0x7f86813b8af0) + QPaintDevice (0x0x7f8681488840) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7f8681488a80) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7f868148d208) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16) + QCommonStyle (0x0x7f868148d270) 0 + primary-for QProxyStyle (0x0x7f868148d208) + QStyle (0x0x7f868148d2d8) 0 + primary-for QCommonStyle (0x0x7f868148d270) + QObject (0x0x7f8681488a20) 0 + primary-for QStyle (0x0x7f868148d2d8) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7f8681488cc0) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QRadioButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI12QRadioButton) +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +488 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=40 align=8 + base size=40 base align=8 +QRadioButton (0x0x7f868148d340) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16) + QAbstractButton (0x0x7f868148d3a8) 0 + primary-for QRadioButton (0x0x7f868148d340) + QWidget (0x0x7f86813b8b60) 0 + primary-for QAbstractButton (0x0x7f868148d3a8) + QObject (0x0x7f8681488c00) 0 + primary-for QWidget (0x0x7f86813b8b60) + QPaintDevice (0x0x7f8681488c60) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 480) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7f8681488f00) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))QScrollBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QScrollBar) +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +472 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=40 align=8 + base size=40 base align=8 +QScrollBar (0x0x7f868148d410) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16) + QAbstractSlider (0x0x7f868148d478) 0 + primary-for QScrollBar (0x0x7f868148d410) + QWidget (0x0x7f86813b8bd0) 0 + primary-for QAbstractSlider (0x0x7f868148d478) + QObject (0x0x7f8681488e40) 0 + primary-for QWidget (0x0x7f86813b8bd0) + QPaintDevice (0x0x7f8681488ea0) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 464) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7f86814ec0c0) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7f86814ec420) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7f868148d4e0) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16) + QObject (0x0x7f86814ec3c0) 0 + primary-for QScroller (0x0x7f868148d4e0) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7f86814ec720) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=40 align=8 + base size=40 base align=8 +QSizeGrip (0x0x7f868148d548) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16) + QWidget (0x0x7f86814f1f50) 0 + primary-for QSizeGrip (0x0x7f868148d548) + QObject (0x0x7f86814ec660) 0 + primary-for QWidget (0x0x7f86814f1f50) + QPaintDevice (0x0x7f86814ec6c0) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7f86814ec960) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QSpinBox::valueFromText +488 (int (*)(...))QSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI8QSpinBox) +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +520 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=40 align=8 + base size=40 base align=8 +QSpinBox (0x0x7f868148d5b0) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16) + QAbstractSpinBox (0x0x7f868148d618) 0 + primary-for QSpinBox (0x0x7f868148d5b0) + QWidget (0x0x7f86814f1930) 0 + primary-for QAbstractSpinBox (0x0x7f868148d618) + QObject (0x0x7f86814ec8a0) 0 + primary-for QWidget (0x0x7f86814f1930) + QPaintDevice (0x0x7f86814ec900) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 512) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7f86814ecba0) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QDoubleSpinBox::valueFromText +488 (int (*)(...))QDoubleSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI14QDoubleSpinBox) +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +520 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=40 align=8 + base size=40 base align=8 +QDoubleSpinBox (0x0x7f868148d680) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16) + QAbstractSpinBox (0x0x7f868148d6e8) 0 + primary-for QDoubleSpinBox (0x0x7f868148d680) + QWidget (0x0x7f86814f1a10) 0 + primary-for QAbstractSpinBox (0x0x7f868148d6e8) + QObject (0x0x7f86814ecae0) 0 + primary-for QWidget (0x0x7f86814f1a10) + QPaintDevice (0x0x7f86814ecb40) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 512) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7f86814ecde0) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=40 align=8 + base size=40 base align=8 +QSplashScreen (0x0x7f868148d750) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16) + QWidget (0x0x7f8681541000) 0 + primary-for QSplashScreen (0x0x7f868148d750) + QObject (0x0x7f86814ecd20) 0 + primary-for QWidget (0x0x7f8681541000) + QPaintDevice (0x0x7f86814ecd80) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7f868114e060) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QSplitter::createHandle +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QSplitter) +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +472 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=40 align=8 + base size=40 base align=8 +QSplitter (0x0x7f868148d7b8) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16) + QFrame (0x0x7f868148d820) 0 + primary-for QSplitter (0x0x7f868148d7b8) + QWidget (0x0x7f8681541070) 0 + primary-for QFrame (0x0x7f868148d820) + QObject (0x0x7f86814ecf60) 0 + primary-for QWidget (0x0x7f8681541070) + QPaintDevice (0x0x7f868114e000) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 464) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7f868114e2a0) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=40 align=8 + base size=40 base align=8 +QSplitterHandle (0x0x7f868148d888) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16) + QWidget (0x0x7f86815410e0) 0 + primary-for QSplitterHandle (0x0x7f868148d888) + QObject (0x0x7f868114e1e0) 0 + primary-for QWidget (0x0x7f86815410e0) + QPaintDevice (0x0x7f868114e240) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7f868114e4e0) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QStackedLayout::addItem +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QStackedLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QStackedLayout::setGeometry +184 (int (*)(...))QStackedLayout::itemAt +192 (int (*)(...))QStackedLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QStackedLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QStackedLayout::sizeHint +264 (int (*)(...))QStackedLayout::hasHeightForWidth +272 (int (*)(...))QStackedLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI14QStackedLayout) +296 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +304 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +312 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +320 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +344 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +376 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7f868148d8f0) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16) + QLayout (0x0x7f8681541150) 0 + primary-for QStackedLayout (0x0x7f868148d8f0) + QObject (0x0x7f868114e420) 0 + primary-for QLayout (0x0x7f8681541150) + QLayoutItem (0x0x7f868114e480) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 296) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7f868114e7e0) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI14QStackedWidget) +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +464 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=40 align=8 + base size=40 base align=8 +QStackedWidget (0x0x7f868148d958) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16) + QFrame (0x0x7f868148d9c0) 0 + primary-for QStackedWidget (0x0x7f868148d958) + QWidget (0x0x7f86815412a0) 0 + primary-for QFrame (0x0x7f868148d9c0) + QObject (0x0x7f868114e720) 0 + primary-for QWidget (0x0x7f86815412a0) + QPaintDevice (0x0x7f868114e780) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 456) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7f868114ea20) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=40 align=8 + base size=40 base align=8 +QStatusBar (0x0x7f868148da28) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16) + QWidget (0x0x7f8681541310) 0 + primary-for QStatusBar (0x0x7f868148da28) + QObject (0x0x7f868114e960) 0 + primary-for QWidget (0x0x7f8681541310) + QPaintDevice (0x0x7f868114e9c0) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7f868114ec00) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7f868148da90) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f868148daf8) 0 + primary-for QStyledItemDelegate (0x0x7f868148da90) + QObject (0x0x7f868114eba0) 0 + primary-for QAbstractItemDelegate (0x0x7f868148daf8) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7f868114ed80) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7f868148db60) 0 + QPainter (0x0x7f868114ede0) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7f86811b56c0) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7f868148dbc8) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16) + QObject (0x0x7f86811b5660) 0 + primary-for QStylePlugin (0x0x7f868148dbc8) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7f86811b57e0) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7f868148dc30) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16) + QObject (0x0x7f86811b5780) 0 + primary-for QSystemTrayIcon (0x0x7f868148dc30) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7f86811b5ae0) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableView::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI10QTableView) +800 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +808 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=40 align=8 + base size=40 base align=8 +QTableView (0x0x7f868148dc98) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16) + QAbstractItemView (0x0x7f868148dd00) 0 + primary-for QTableView (0x0x7f868148dc98) + QAbstractScrollArea (0x0x7f868148dd68) 0 + primary-for QAbstractItemView (0x0x7f868148dd00) + QFrame (0x0x7f868148ddd0) 0 + primary-for QAbstractScrollArea (0x0x7f868148dd68) + QWidget (0x0x7f8681541850) 0 + primary-for QFrame (0x0x7f868148ddd0) + QObject (0x0x7f86811b5a20) 0 + primary-for QWidget (0x0x7f8681541850) + QPaintDevice (0x0x7f86811b5a80) 16 + vptr=((& QTableView::_ZTV10QTableView) + 800) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7f86811b5c60) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=64 align=8 + base size=60 base align=8 +QTableWidgetItem (0x0x7f86811f60c0) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7f868126b3c0) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableWidget::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))QTableWidget::mimeTypes +792 (int (*)(...))QTableWidget::mimeData +800 (int (*)(...))QTableWidget::dropMimeData +808 (int (*)(...))QTableWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI12QTableWidget) +832 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +840 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=40 align=8 + base size=40 base align=8 +QTableWidget (0x0x7f868120c6e8) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16) + QTableView (0x0x7f868120c750) 0 + primary-for QTableWidget (0x0x7f868120c6e8) + QAbstractItemView (0x0x7f868120c7b8) 0 + primary-for QTableView (0x0x7f868120c750) + QAbstractScrollArea (0x0x7f868120c820) 0 + primary-for QAbstractItemView (0x0x7f868120c7b8) + QFrame (0x0x7f868120c888) 0 + primary-for QAbstractScrollArea (0x0x7f868120c820) + QWidget (0x0x7f868163cb60) 0 + primary-for QFrame (0x0x7f868120c888) + QObject (0x0x7f868126b300) 0 + primary-for QWidget (0x0x7f868163cb60) + QPaintDevice (0x0x7f868126b360) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 832) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7f868126b780) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 79 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextBrowser::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))QTextBrowser::doSetSource +552 (int (*)(...))-16 +560 (int (*)(...))(& _ZTI12QTextBrowser) +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +576 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +624 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=40 align=8 + base size=40 base align=8 +QTextBrowser (0x0x7f868120c8f0) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16) + QTextEdit (0x0x7f868120c958) 0 + primary-for QTextBrowser (0x0x7f868120c8f0) + QAbstractScrollArea (0x0x7f868120c9c0) 0 + primary-for QTextEdit (0x0x7f868120c958) + QFrame (0x0x7f868120ca28) 0 + primary-for QAbstractScrollArea (0x0x7f868120c9c0) + QWidget (0x0x7f8681541a80) 0 + primary-for QFrame (0x0x7f868120ca28) + QObject (0x0x7f868126b6c0) 0 + primary-for QWidget (0x0x7f8681541a80) + QPaintDevice (0x0x7f868126b720) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 568) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7f868126b9c0) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QToolBar) +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +464 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=40 align=8 + base size=40 base align=8 +QToolBar (0x0x7f868120ca90) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16) + QWidget (0x0x7f8681541af0) 0 + primary-for QToolBar (0x0x7f868120ca90) + QObject (0x0x7f868126b900) 0 + primary-for QWidget (0x0x7f8681541af0) + QPaintDevice (0x0x7f868126b960) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 456) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7f868126be40) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QToolBox::itemInserted +448 (int (*)(...))QToolBox::itemRemoved +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI8QToolBox) +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +480 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=40 align=8 + base size=40 base align=8 +QToolBox (0x0x7f868120caf8) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16) + QFrame (0x0x7f868120cb60) 0 + primary-for QToolBox (0x0x7f868120caf8) + QWidget (0x0x7f8681541b60) 0 + primary-for QFrame (0x0x7f868120cb60) + QObject (0x0x7f868126bd80) 0 + primary-for QWidget (0x0x7f8681541b60) + QPaintDevice (0x0x7f868126bde0) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 472) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7f86812d11e0) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))QToolButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QToolButton) +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +488 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=40 align=8 + base size=40 base align=8 +QToolButton (0x0x7f868120cbc8) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16) + QAbstractButton (0x0x7f868120cc30) 0 + primary-for QToolButton (0x0x7f868120cbc8) + QWidget (0x0x7f8681541bd0) 0 + primary-for QAbstractButton (0x0x7f868120cc30) + QObject (0x0x7f86812d1120) 0 + primary-for QWidget (0x0x7f8681541bd0) + QPaintDevice (0x0x7f86812d1180) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 480) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7f86812d1420) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7f86812d15a0) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeView::setModel +480 (int (*)(...))QTreeView::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI9QTreeView) +816 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +824 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=40 align=8 + base size=40 base align=8 +QTreeView (0x0x7f868120cc98) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16) + QAbstractItemView (0x0x7f868120cd00) 0 + primary-for QTreeView (0x0x7f868120cc98) + QAbstractScrollArea (0x0x7f868120cd68) 0 + primary-for QAbstractItemView (0x0x7f868120cd00) + QFrame (0x0x7f868120cdd0) 0 + primary-for QAbstractScrollArea (0x0x7f868120cd68) + QWidget (0x0x7f8681541d90) 0 + primary-for QFrame (0x0x7f868120cdd0) + QObject (0x0x7f86812d14e0) 0 + primary-for QWidget (0x0x7f8681541d90) + QPaintDevice (0x0x7f86812d1540) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 816) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7f86812d1720) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=96 align=8 + base size=92 base align=8 +QTreeWidgetItem (0x0x7f86812d1de0) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7f8681045c00) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 114 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeWidget::setModel +480 (int (*)(...))QTreeWidget::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))QTreeWidget::mimeTypes +808 (int (*)(...))QTreeWidget::mimeData +816 (int (*)(...))QTreeWidget::dropMimeData +824 (int (*)(...))QTreeWidget::supportedDropActions +832 (int (*)(...))-16 +840 (int (*)(...))(& _ZTI11QTreeWidget) +848 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +856 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +896 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +904 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=40 align=8 + base size=40 base align=8 +QTreeWidget (0x0x7f868100d0d0) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16) + QTreeView (0x0x7f868100d138) 0 + primary-for QTreeWidget (0x0x7f868100d0d0) + QAbstractItemView (0x0x7f868100d1a0) 0 + primary-for QTreeView (0x0x7f868100d138) + QAbstractScrollArea (0x0x7f868100d208) 0 + primary-for QAbstractItemView (0x0x7f868100d1a0) + QFrame (0x0x7f868100d270) 0 + primary-for QAbstractScrollArea (0x0x7f868100d208) + QWidget (0x0x7f8681311b60) 0 + primary-for QFrame (0x0x7f868100d270) + QObject (0x0x7f8681045b40) 0 + primary-for QWidget (0x0x7f8681311b60) + QPaintDevice (0x0x7f8681045ba0) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 848) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7f868109b060) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QUndoView) +800 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +808 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=40 align=8 + base size=40 base align=8 +QUndoView (0x0x7f868100d2d8) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16) + QListView (0x0x7f868100d340) 0 + primary-for QUndoView (0x0x7f868100d2d8) + QAbstractItemView (0x0x7f868100d3a8) 0 + primary-for QListView (0x0x7f868100d340) + QAbstractScrollArea (0x0x7f868100d410) 0 + primary-for QAbstractItemView (0x0x7f868100d3a8) + QFrame (0x0x7f868100d478) 0 + primary-for QAbstractScrollArea (0x0x7f868100d410) + QWidget (0x0x7f8681311bd0) 0 + primary-for QFrame (0x0x7f868100d478) + QObject (0x0x7f8681045f60) 0 + primary-for QWidget (0x0x7f8681311bd0) + QPaintDevice (0x0x7f868109b000) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 800) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7f868109b1e0) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7f868109b2a0) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7f868100d4e0) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16) + QAction (0x0x7f868100d548) 0 + primary-for QWidgetAction (0x0x7f868100d4e0) + QObject (0x0x7f868109b240) 0 + primary-for QAction (0x0x7f868100d548) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7f868109b4e0) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=40 align=8 + base size=40 base align=8 +QWizard (0x0x7f868100d5b0) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16) + QDialog (0x0x7f868100d618) 0 + primary-for QWizard (0x0x7f868100d5b0) + QWidget (0x0x7f8681311c40) 0 + primary-for QDialog (0x0x7f868100d618) + QObject (0x0x7f868109b420) 0 + primary-for QWidget (0x0x7f8681311c40) + QPaintDevice (0x0x7f868109b480) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7f868109bc60) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=40 align=8 + base size=40 base align=8 +QWizardPage (0x0x7f868100d7b8) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16) + QWidget (0x0x7f86810c0e00) 0 + primary-for QWizardPage (0x0x7f868100d7b8) + QObject (0x0x7f868109bba0) 0 + primary-for QWidget (0x0x7f86810c0e00) + QPaintDevice (0x0x7f868109bc00) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488) + +Vtable for QDesignerCustomWidgetInterface +QDesignerCustomWidgetInterface::_ZTV30QDesignerCustomWidgetInterface: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QDesignerCustomWidgetInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QDesignerCustomWidgetInterface::isInitialized +104 (int (*)(...))QDesignerCustomWidgetInterface::initialize +112 (int (*)(...))QDesignerCustomWidgetInterface::domXml +120 (int (*)(...))QDesignerCustomWidgetInterface::codeTemplate + +Class QDesignerCustomWidgetInterface + size=8 align=8 + base size=8 base align=8 +QDesignerCustomWidgetInterface (0x0x7f868109bde0) 0 nearly-empty + vptr=((& QDesignerCustomWidgetInterface::_ZTV30QDesignerCustomWidgetInterface) + 16) + +Vtable for QDesignerCustomWidgetCollectionInterface +QDesignerCustomWidgetCollectionInterface::_ZTV40QDesignerCustomWidgetCollectionInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI40QDesignerCustomWidgetCollectionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QDesignerCustomWidgetCollectionInterface + size=8 align=8 + base size=8 base align=8 +QDesignerCustomWidgetCollectionInterface (0x0x7f8680d5d300) 0 nearly-empty + vptr=((& QDesignerCustomWidgetCollectionInterface::_ZTV40QDesignerCustomWidgetCollectionInterface) + 16) + +Class QDomImplementation + size=8 align=8 + base size=8 base align=8 +QDomImplementation (0x0x7f8680d5d720) 0 + +Class QDomNode + size=8 align=8 + base size=8 base align=8 +QDomNode (0x0x7f8680d5d780) 0 + +Class QDomNodeList + size=8 align=8 + base size=8 base align=8 +QDomNodeList (0x0x7f8680d5d7e0) 0 + +Class QDomDocumentType + size=8 align=8 + base size=8 base align=8 +QDomDocumentType (0x0x7f8680d564e0) 0 + QDomNode (0x0x7f8680d5d9c0) 0 + +Class QDomDocument + size=8 align=8 + base size=8 base align=8 +QDomDocument (0x0x7f8680d56548) 0 + QDomNode (0x0x7f8680d5da80) 0 + +Class QDomNamedNodeMap + size=8 align=8 + base size=8 base align=8 +QDomNamedNodeMap (0x0x7f8680d5db40) 0 + +Class QDomDocumentFragment + size=8 align=8 + base size=8 base align=8 +QDomDocumentFragment (0x0x7f8680d565b0) 0 + QDomNode (0x0x7f8680d5dcc0) 0 + +Class QDomCharacterData + size=8 align=8 + base size=8 base align=8 +QDomCharacterData (0x0x7f8680d56618) 0 + QDomNode (0x0x7f8680d5dd80) 0 + +Class QDomAttr + size=8 align=8 + base size=8 base align=8 +QDomAttr (0x0x7f8680d56680) 0 + QDomNode (0x0x7f8680d5dde0) 0 + +Class QDomElement + size=8 align=8 + base size=8 base align=8 +QDomElement (0x0x7f8680d566e8) 0 + QDomNode (0x0x7f8680d5dea0) 0 + +Class QDomText + size=8 align=8 + base size=8 base align=8 +QDomText (0x0x7f8680d56750) 0 + QDomCharacterData (0x0x7f8680d567b8) 0 + QDomNode (0x0x7f8680dd3120) 0 + +Class QDomComment + size=8 align=8 + base size=8 base align=8 +QDomComment (0x0x7f8680d56820) 0 + QDomCharacterData (0x0x7f8680d56888) 0 + QDomNode (0x0x7f8680dd31e0) 0 + +Class QDomCDATASection + size=8 align=8 + base size=8 base align=8 +QDomCDATASection (0x0x7f8680d568f0) 0 + QDomText (0x0x7f8680d56958) 0 + QDomCharacterData (0x0x7f8680d569c0) 0 + QDomNode (0x0x7f8680dd32a0) 0 + +Class QDomNotation + size=8 align=8 + base size=8 base align=8 +QDomNotation (0x0x7f8680d56a28) 0 + QDomNode (0x0x7f8680dd3360) 0 + +Class QDomEntity + size=8 align=8 + base size=8 base align=8 +QDomEntity (0x0x7f8680d56a90) 0 + QDomNode (0x0x7f8680dd3420) 0 + +Class QDomEntityReference + size=8 align=8 + base size=8 base align=8 +QDomEntityReference (0x0x7f8680d56af8) 0 + QDomNode (0x0x7f8680dd34e0) 0 + +Class QDomProcessingInstruction + size=8 align=8 + base size=8 base align=8 +QDomProcessingInstruction (0x0x7f8680d56b60) 0 + QDomNode (0x0x7f8680dd35a0) 0 + +Class QOpenGLBuffer + size=8 align=8 + base size=8 base align=8 +QOpenGLBuffer (0x0x7f8680dd3660) 0 + +Class QOpenGLDebugMessage + size=8 align=8 + base size=8 base align=8 +QOpenGLDebugMessage (0x0x7f8680dd3ae0) 0 + +Class QOpenGLDebugLogger::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLDebugLogger::QPrivateSignal (0x0x7f8680eb7ae0) 0 empty + +Vtable for QOpenGLDebugLogger +QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLDebugLogger) +16 (int (*)(...))QOpenGLDebugLogger::metaObject +24 (int (*)(...))QOpenGLDebugLogger::qt_metacast +32 (int (*)(...))QOpenGLDebugLogger::qt_metacall +40 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +48 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLDebugLogger + size=16 align=8 + base size=16 base align=8 +QOpenGLDebugLogger (0x0x7f8680f260d0) 0 + vptr=((& QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger) + 16) + QObject (0x0x7f8680eb7a80) 0 + primary-for QOpenGLDebugLogger (0x0x7f8680f260d0) + +Vtable for QOpenGLFramebufferObject +QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLFramebufferObject) +16 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject +24 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject + +Class QOpenGLFramebufferObject + size=16 align=8 + base size=16 base align=8 +QOpenGLFramebufferObject (0x0x7f8680eb7e40) 0 + vptr=((& QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject) + 16) + +Class QOpenGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QOpenGLFramebufferObjectFormat (0x0x7f8680b92120) 0 + +Vtable for QOpenGLPaintDevice +QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLPaintDevice) +16 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +24 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +32 (int (*)(...))QOpenGLPaintDevice::devType +40 (int (*)(...))QOpenGLPaintDevice::paintEngine +48 (int (*)(...))QOpenGLPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QOpenGLPaintDevice::ensureActiveTarget + +Class QOpenGLPaintDevice + size=24 align=8 + base size=24 base align=8 +QOpenGLPaintDevice (0x0x7f8680f26138) 0 + vptr=((& QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice) + 16) + QPaintDevice (0x0x7f8680b92180) 0 + primary-for QOpenGLPaintDevice (0x0x7f8680f26138) + +Class QOpenGLPixelTransferOptions + size=8 align=8 + base size=8 base align=8 +QOpenGLPixelTransferOptions (0x0x7f8680b923c0) 0 + +Class QOpenGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShader::QPrivateSignal (0x0x7f8680be6a80) 0 empty + +Vtable for QOpenGLShader +QOpenGLShader::_ZTV13QOpenGLShader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLShader) +16 (int (*)(...))QOpenGLShader::metaObject +24 (int (*)(...))QOpenGLShader::qt_metacast +32 (int (*)(...))QOpenGLShader::qt_metacall +40 (int (*)(...))QOpenGLShader::~QOpenGLShader +48 (int (*)(...))QOpenGLShader::~QOpenGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLShader + size=16 align=8 + base size=16 base align=8 +QOpenGLShader (0x0x7f8680beeaf8) 0 + vptr=((& QOpenGLShader::_ZTV13QOpenGLShader) + 16) + QObject (0x0x7f8680be6a20) 0 + primary-for QOpenGLShader (0x0x7f8680beeaf8) + +Class QOpenGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShaderProgram::QPrivateSignal (0x0x7f8680be6f60) 0 empty + +Vtable for QOpenGLShaderProgram +QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QOpenGLShaderProgram) +16 (int (*)(...))QOpenGLShaderProgram::metaObject +24 (int (*)(...))QOpenGLShaderProgram::qt_metacast +32 (int (*)(...))QOpenGLShaderProgram::qt_metacall +40 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +48 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOpenGLShaderProgram::link + +Class QOpenGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QOpenGLShaderProgram (0x0x7f8680beec98) 0 + vptr=((& QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram) + 16) + QObject (0x0x7f8680be6f00) 0 + primary-for QOpenGLShaderProgram (0x0x7f8680beec98) + +Class QOpenGLTexture + size=8 align=8 + base size=8 base align=8 +QOpenGLTexture (0x0x7f8680c89120) 0 + +Class QOpenGLTextureBlitter + size=8 align=8 + base size=8 base align=8 +QOpenGLTextureBlitter (0x0x7f8680cfe240) 0 + +Class QOpenGLTimerQuery::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimerQuery::QPrivateSignal (0x0x7f8680cfe480) 0 empty + +Vtable for QOpenGLTimerQuery +QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOpenGLTimerQuery) +16 (int (*)(...))QOpenGLTimerQuery::metaObject +24 (int (*)(...))QOpenGLTimerQuery::qt_metacast +32 (int (*)(...))QOpenGLTimerQuery::qt_metacall +40 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +48 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimerQuery + size=16 align=8 + base size=16 base align=8 +QOpenGLTimerQuery (0x0x7f8680beee38) 0 + vptr=((& QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery) + 16) + QObject (0x0x7f8680cfe420) 0 + primary-for QOpenGLTimerQuery (0x0x7f8680beee38) + +Class QOpenGLTimeMonitor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimeMonitor::QPrivateSignal (0x0x7f8680cfe660) 0 empty + +Vtable for QOpenGLTimeMonitor +QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLTimeMonitor) +16 (int (*)(...))QOpenGLTimeMonitor::metaObject +24 (int (*)(...))QOpenGLTimeMonitor::qt_metacast +32 (int (*)(...))QOpenGLTimeMonitor::qt_metacall +40 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +48 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimeMonitor + size=16 align=8 + base size=16 base align=8 +QOpenGLTimeMonitor (0x0x7f8680beeea0) 0 + vptr=((& QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor) + 16) + QObject (0x0x7f8680cfe600) 0 + primary-for QOpenGLTimeMonitor (0x0x7f8680beeea0) + +Class QOpenGLVersionStatus + size=12 align=4 + base size=12 base align=4 +QOpenGLVersionStatus (0x0x7f8680cfe7e0) 0 + +Class QOpenGLVersionFunctionsBackend + size=16 align=8 + base size=12 base align=8 +QOpenGLVersionFunctionsBackend (0x0x7f8680a14840) 0 + +Class QOpenGLVersionFunctionsStorage + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionFunctionsStorage (0x0x7f8680a14a20) 0 + +Class QAbstractOpenGLFunctionsPrivate + size=16 align=8 + base size=9 base align=8 +QAbstractOpenGLFunctionsPrivate (0x0x7f8680a14a80) 0 + +Vtable for QAbstractOpenGLFunctions +QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractOpenGLFunctions) +16 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +24 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +32 (int (*)(...))QAbstractOpenGLFunctions::initializeOpenGLFunctions + +Class QAbstractOpenGLFunctions + size=16 align=8 + base size=16 base align=8 +QAbstractOpenGLFunctions (0x0x7f8680a14c60) 0 + vptr=((& QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions) + 16) + +Class QOpenGLFunctions_1_0_CoreBackend::Functions + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_1_0_CoreBackend::Functions (0x0x7f8680a14e40) 0 + +Class QOpenGLFunctions_1_0_CoreBackend + size=400 align=8 + base size=400 base align=8 +QOpenGLFunctions_1_0_CoreBackend (0x0x7f8680a06750) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680a14de0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend::Functions + size=128 align=8 + base size=128 base align=8 +QOpenGLFunctions_1_1_CoreBackend::Functions (0x0x7f8680a4f1e0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend + size=144 align=8 + base size=144 base align=8 +QOpenGLFunctions_1_1_CoreBackend (0x0x7f8680a067b8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680a4f180) 0 + +Class QOpenGLFunctions_1_2_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_1_2_CoreBackend::Functions (0x0x7f8680a4f540) 0 + +Class QOpenGLFunctions_1_2_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_1_2_CoreBackend (0x0x7f8680a06820) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680a4f4e0) 0 + +Class QOpenGLFunctions_1_3_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_3_CoreBackend::Functions (0x0x7f8680a4f8a0) 0 + +Class QOpenGLFunctions_1_3_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_1_3_CoreBackend (0x0x7f8680a06888) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680a4f840) 0 + +Class QOpenGLFunctions_1_4_CoreBackend::Functions + size=56 align=8 + base size=56 base align=8 +QOpenGLFunctions_1_4_CoreBackend::Functions (0x0x7f8680a4fc00) 0 + +Class QOpenGLFunctions_1_4_CoreBackend + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_4_CoreBackend (0x0x7f8680a068f0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680a4fba0) 0 + +Class QOpenGLFunctions_1_5_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_5_CoreBackend::Functions (0x0x7f8680a4ff60) 0 + +Class QOpenGLFunctions_1_5_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_1_5_CoreBackend (0x0x7f8680a06958) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680a4ff00) 0 + +Class QOpenGLFunctions_2_0_CoreBackend::Functions + size=744 align=8 + base size=744 base align=8 +QOpenGLFunctions_2_0_CoreBackend::Functions (0x0x7f8680a79300) 0 + +Class QOpenGLFunctions_2_0_CoreBackend + size=760 align=8 + base size=760 base align=8 +QOpenGLFunctions_2_0_CoreBackend (0x0x7f8680a069c0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680a792a0) 0 + +Class QOpenGLFunctions_2_1_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_2_1_CoreBackend::Functions (0x0x7f8680a79660) 0 + +Class QOpenGLFunctions_2_1_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_2_1_CoreBackend (0x0x7f8680a06a28) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680a79600) 0 + +Class QOpenGLFunctions_3_0_CoreBackend::Functions + size=672 align=8 + base size=672 base align=8 +QOpenGLFunctions_3_0_CoreBackend::Functions (0x0x7f8680a799c0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend + size=688 align=8 + base size=688 base align=8 +QOpenGLFunctions_3_0_CoreBackend (0x0x7f8680a06a90) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680a79960) 0 + +Class QOpenGLFunctions_3_1_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_3_1_CoreBackend::Functions (0x0x7f8680a79d20) 0 + +Class QOpenGLFunctions_3_1_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_3_1_CoreBackend (0x0x7f8680a06af8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680a79cc0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_3_2_CoreBackend::Functions (0x0x7f8680ac20c0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_3_2_CoreBackend (0x0x7f8680a06b60) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680ac2060) 0 + +Class QOpenGLFunctions_3_3_CoreBackend::Functions + size=464 align=8 + base size=464 base align=8 +QOpenGLFunctions_3_3_CoreBackend::Functions (0x0x7f8680ac2420) 0 + +Class QOpenGLFunctions_3_3_CoreBackend + size=480 align=8 + base size=480 base align=8 +QOpenGLFunctions_3_3_CoreBackend (0x0x7f8680a06bc8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680ac23c0) 0 + +Class QOpenGLFunctions_4_0_CoreBackend::Functions + size=368 align=8 + base size=368 base align=8 +QOpenGLFunctions_4_0_CoreBackend::Functions (0x0x7f8680ac2780) 0 + +Class QOpenGLFunctions_4_0_CoreBackend + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_4_0_CoreBackend (0x0x7f8680a06c30) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680ac2720) 0 + +Class QOpenGLFunctions_4_1_CoreBackend::Functions + size=704 align=8 + base size=704 base align=8 +QOpenGLFunctions_4_1_CoreBackend::Functions (0x0x7f8680ac2ae0) 0 + +Class QOpenGLFunctions_4_1_CoreBackend + size=720 align=8 + base size=720 base align=8 +QOpenGLFunctions_4_1_CoreBackend (0x0x7f8680a06c98) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680ac2a80) 0 + +Class QOpenGLFunctions_4_2_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_2_CoreBackend::Functions (0x0x7f8680ac2e40) 0 + +Class QOpenGLFunctions_4_2_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_2_CoreBackend (0x0x7f8680a06d00) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680ac2de0) 0 + +Class QOpenGLFunctions_4_3_CoreBackend::Functions + size=344 align=8 + base size=344 base align=8 +QOpenGLFunctions_4_3_CoreBackend::Functions (0x0x7f8680b181e0) 0 + +Class QOpenGLFunctions_4_3_CoreBackend + size=360 align=8 + base size=360 base align=8 +QOpenGLFunctions_4_3_CoreBackend (0x0x7f8680a06d68) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680b18180) 0 + +Class QOpenGLFunctions_4_4_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_4_4_CoreBackend::Functions (0x0x7f8680b18540) 0 + +Class QOpenGLFunctions_4_4_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_4_4_CoreBackend (0x0x7f8680a06dd0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680b184e0) 0 + +Class QOpenGLFunctions_4_5_CoreBackend::Functions + size=848 align=8 + base size=848 base align=8 +QOpenGLFunctions_4_5_CoreBackend::Functions (0x0x7f8680b188a0) 0 + +Class QOpenGLFunctions_4_5_CoreBackend + size=864 align=8 + base size=864 base align=8 +QOpenGLFunctions_4_5_CoreBackend (0x0x7f8680a06e38) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680b18840) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend::Functions + size=2064 align=8 + base size=2064 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend::Functions (0x0x7f8680b18c00) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend + size=2080 align=8 + base size=2080 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend (0x0x7f8680a06ea0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680b18ba0) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend::Functions + size=136 align=8 + base size=136 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend::Functions (0x0x7f8680b18f60) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend (0x0x7f8680a06f08) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8680b18f00) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend::Functions + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend::Functions (0x0x7f86807a1300) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend + size=272 align=8 + base size=272 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend (0x0x7f8680a06f70) 0 + QOpenGLVersionFunctionsBackend (0x0x7f86807a12a0) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend::Functions + size=296 align=8 + base size=296 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend::Functions (0x0x7f86807a1660) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend + size=312 align=8 + base size=312 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend (0x0x7f86807b7000) 0 + QOpenGLVersionFunctionsBackend (0x0x7f86807a1600) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend::Functions + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend::Functions (0x0x7f86807a19c0) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend + size=320 align=8 + base size=320 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend (0x0x7f86807b7068) 0 + QOpenGLVersionFunctionsBackend (0x0x7f86807a1960) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend::Functions + size=288 align=8 + base size=288 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend::Functions (0x0x7f86807a1d20) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend (0x0x7f86807b70d0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f86807a1cc0) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend::Functions + size=160 align=8 + base size=160 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend::Functions (0x0x7f86807dd0c0) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend + size=176 align=8 + base size=176 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend (0x0x7f86807b7138) 0 + QOpenGLVersionFunctionsBackend (0x0x7f86807dd060) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend::Functions + size=240 align=8 + base size=240 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend::Functions (0x0x7f86807dd420) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend (0x0x7f86807b71a0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f86807dd3c0) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend::Functions (0x0x7f86807dd780) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend (0x0x7f86807b7208) 0 + QOpenGLVersionFunctionsBackend (0x0x7f86807dd720) 0 + +Class QOpenGLVersionProfile + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionProfile (0x0x7f86807dda80) 0 + +Class QOpenGLVersionFunctionsFactory + size=1 align=1 + base size=0 base align=1 +QOpenGLVersionFunctionsFactory (0x0x7f86807ddc00) 0 empty + +Class QOpenGLVertexArrayObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLVertexArrayObject::QPrivateSignal (0x0x7f86807ddd20) 0 empty + +Class QOpenGLVertexArrayObject::Binder + size=8 align=8 + base size=8 base align=8 +QOpenGLVertexArrayObject::Binder (0x0x7f86807ddd80) 0 + +Vtable for QOpenGLVertexArrayObject +QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLVertexArrayObject) +16 (int (*)(...))QOpenGLVertexArrayObject::metaObject +24 (int (*)(...))QOpenGLVertexArrayObject::qt_metacast +32 (int (*)(...))QOpenGLVertexArrayObject::qt_metacall +40 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +48 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLVertexArrayObject + size=16 align=8 + base size=16 base align=8 +QOpenGLVertexArrayObject (0x0x7f86807b7270) 0 + vptr=((& QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject) + 16) + QObject (0x0x7f86807ddcc0) 0 + primary-for QOpenGLVertexArrayObject (0x0x7f86807b7270) + +Class QOpenGLWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWindow::QPrivateSignal (0x0x7f868081e420) 0 empty + +Vtable for QOpenGLWindow +QOpenGLWindow::_ZTV13QOpenGLWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWindow) +16 (int (*)(...))QOpenGLWindow::metaObject +24 (int (*)(...))QOpenGLWindow::qt_metacast +32 (int (*)(...))QOpenGLWindow::qt_metacall +40 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +48 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QOpenGLWindow::resizeEvent +168 (int (*)(...))QOpenGLWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QOpenGLWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QOpenGLWindow::initializeGL +336 (int (*)(...))QOpenGLWindow::resizeGL +344 (int (*)(...))QOpenGLWindow::paintGL +352 (int (*)(...))QOpenGLWindow::paintUnderGL +360 (int (*)(...))QOpenGLWindow::paintOverGL +368 (int (*)(...))QOpenGLWindow::redirected +376 (int (*)(...))-16 +384 (int (*)(...))(& _ZTI13QOpenGLWindow) +392 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD1Ev +400 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD0Ev +408 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +416 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +424 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +432 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +440 (int (*)(...))-40 +448 (int (*)(...))(& _ZTI13QOpenGLWindow) +456 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD1Ev +464 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD0Ev +472 (int (*)(...))QPaintDevice::devType +480 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +488 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QPaintDevice::initPainter +504 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow10redirectedEP6QPoint +512 (int (*)(...))QPaintDevice::sharedPainter + +Class QOpenGLWindow + size=56 align=8 + base size=50 base align=8 +QOpenGLWindow (0x0x7f86807b7340) 0 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 16) + QPaintDeviceWindow (0x0x7f86807f9070) 0 + primary-for QOpenGLWindow (0x0x7f86807b7340) + QWindow (0x0x7f86807f90e0) 0 + primary-for QPaintDeviceWindow (0x0x7f86807f9070) + QObject (0x0x7f868081e300) 0 + primary-for QWindow (0x0x7f86807f90e0) + QSurface (0x0x7f868081e360) 16 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 392) + QPaintDevice (0x0x7f868081e3c0) 40 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 456) + +Class QOpenGLWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWidget::QPrivateSignal (0x0x7f868081e660) 0 empty + +Vtable for QOpenGLWidget +QOpenGLWidget::_ZTV13QOpenGLWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWidget) +16 (int (*)(...))QOpenGLWidget::metaObject +24 (int (*)(...))QOpenGLWidget::qt_metacast +32 (int (*)(...))QOpenGLWidget::qt_metacall +40 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +48 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +56 (int (*)(...))QOpenGLWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QOpenGLWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QOpenGLWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QOpenGLWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QOpenGLWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QOpenGLWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QOpenGLWidget::initializeGL +440 (int (*)(...))QOpenGLWidget::resizeGL +448 (int (*)(...))QOpenGLWidget::paintGL +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI13QOpenGLWidget) +472 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD1Ev +480 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget11paintEngineEv +504 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QOpenGLWidget + size=40 align=8 + base size=40 base align=8 +QOpenGLWidget (0x0x7f86807b7410) 0 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 16) + QWidget (0x0x7f86807f92a0) 0 + primary-for QOpenGLWidget (0x0x7f86807b7410) + QObject (0x0x7f868081e5a0) 0 + primary-for QWidget (0x0x7f86807f92a0) + QPaintDevice (0x0x7f868081e600) 16 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 472) + +Class QDesignerActionEditorInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerActionEditorInterface::QPrivateSignal (0x0x7f868081e8a0) 0 empty + +Vtable for QDesignerActionEditorInterface +QDesignerActionEditorInterface::_ZTV30QDesignerActionEditorInterface: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QDesignerActionEditorInterface) +16 (int (*)(...))QDesignerActionEditorInterface::metaObject +24 (int (*)(...))QDesignerActionEditorInterface::qt_metacast +32 (int (*)(...))QDesignerActionEditorInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDesignerActionEditorInterface::core +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))__cxa_pure_virtual +456 (int (*)(...))__cxa_pure_virtual +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI30QDesignerActionEditorInterface) +480 0 +488 0 +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerActionEditorInterface + size=40 align=8 + base size=40 base align=8 +QDesignerActionEditorInterface (0x0x7f86807b74e0) 0 + vptr=((& QDesignerActionEditorInterface::_ZTV30QDesignerActionEditorInterface) + 16) + QWidget (0x0x7f86807f93f0) 0 + primary-for QDesignerActionEditorInterface (0x0x7f86807b74e0) + QObject (0x0x7f868081e7e0) 0 + primary-for QWidget (0x0x7f86807f93f0) + QPaintDevice (0x0x7f868081e840) 16 + vptr=((& QDesignerActionEditorInterface::_ZTV30QDesignerActionEditorInterface) + 480) + +Vtable for QDesignerDnDItemInterface +QDesignerDnDItemInterface::_ZTV25QDesignerDnDItemInterface: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QDesignerDnDItemInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QDesignerDnDItemInterface + size=8 align=8 + base size=8 base align=8 +QDesignerDnDItemInterface (0x0x7f868081e960) 0 nearly-empty + vptr=((& QDesignerDnDItemInterface::_ZTV25QDesignerDnDItemInterface) + 16) + +Vtable for QAbstractFormBuilder +QAbstractFormBuilder::_ZTV20QAbstractFormBuilder: 42 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAbstractFormBuilder) +16 (int (*)(...))QAbstractFormBuilder::~QAbstractFormBuilder +24 (int (*)(...))QAbstractFormBuilder::~QAbstractFormBuilder +32 (int (*)(...))QAbstractFormBuilder::load +40 (int (*)(...))QAbstractFormBuilder::save +48 (int (*)(...))QAbstractFormBuilder::loadExtraInfo +56 (int (*)(...))QAbstractFormBuilder::create +64 (int (*)(...))QAbstractFormBuilder::create +72 (int (*)(...))QAbstractFormBuilder::create +80 (int (*)(...))QAbstractFormBuilder::create +88 (int (*)(...))QAbstractFormBuilder::create +96 (int (*)(...))QAbstractFormBuilder::create +104 (int (*)(...))QAbstractFormBuilder::addMenuAction +112 (int (*)(...))QAbstractFormBuilder::applyProperties +120 (int (*)(...))QAbstractFormBuilder::applyTabStops +128 (int (*)(...))QAbstractFormBuilder::createWidget +136 (int (*)(...))QAbstractFormBuilder::createLayout +144 (int (*)(...))QAbstractFormBuilder::createAction +152 (int (*)(...))QAbstractFormBuilder::createActionGroup +160 (int (*)(...))QAbstractFormBuilder::createCustomWidgets +168 (int (*)(...))QAbstractFormBuilder::createConnections +176 (int (*)(...))QAbstractFormBuilder::createResources +184 (int (*)(...))QAbstractFormBuilder::addItem +192 (int (*)(...))QAbstractFormBuilder::addItem +200 (int (*)(...))QAbstractFormBuilder::saveExtraInfo +208 (int (*)(...))QAbstractFormBuilder::saveDom +216 (int (*)(...))QAbstractFormBuilder::createActionRefDom +224 (int (*)(...))QAbstractFormBuilder::createDom +232 (int (*)(...))QAbstractFormBuilder::createDom +240 (int (*)(...))QAbstractFormBuilder::createDom +248 (int (*)(...))QAbstractFormBuilder::createDom +256 (int (*)(...))QAbstractFormBuilder::createDom +264 (int (*)(...))QAbstractFormBuilder::createDom +272 (int (*)(...))QAbstractFormBuilder::saveConnections +280 (int (*)(...))QAbstractFormBuilder::saveCustomWidgets +288 (int (*)(...))QAbstractFormBuilder::saveTabStops +296 (int (*)(...))QAbstractFormBuilder::saveResources +304 (int (*)(...))QAbstractFormBuilder::computeProperties +312 (int (*)(...))QAbstractFormBuilder::checkProperty +320 (int (*)(...))QAbstractFormBuilder::createProperty +328 (int (*)(...))QAbstractFormBuilder::layoutInfo + +Class QAbstractFormBuilder + size=16 align=8 + base size=16 base align=8 +QAbstractFormBuilder (0x0x7f868081e9c0) 0 + vptr=((& QAbstractFormBuilder::_ZTV20QAbstractFormBuilder) + 16) + +Class QDesignerFormEditorInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerFormEditorInterface::QPrivateSignal (0x0x7f868081ec00) 0 empty + +Vtable for QDesignerFormEditorInterface +QDesignerFormEditorInterface::_ZTV28QDesignerFormEditorInterface: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QDesignerFormEditorInterface) +16 (int (*)(...))QDesignerFormEditorInterface::metaObject +24 (int (*)(...))QDesignerFormEditorInterface::qt_metacast +32 (int (*)(...))QDesignerFormEditorInterface::qt_metacall +40 (int (*)(...))QDesignerFormEditorInterface::~QDesignerFormEditorInterface +48 (int (*)(...))QDesignerFormEditorInterface::~QDesignerFormEditorInterface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDesignerFormEditorInterface + size=24 align=8 + base size=24 base align=8 +QDesignerFormEditorInterface (0x0x7f86807b7548) 0 + vptr=((& QDesignerFormEditorInterface::_ZTV28QDesignerFormEditorInterface) + 16) + QObject (0x0x7f868081eba0) 0 + primary-for QDesignerFormEditorInterface (0x0x7f86807b7548) + +Vtable for QDesignerFormEditorPluginInterface +QDesignerFormEditorPluginInterface::_ZTV34QDesignerFormEditorPluginInterface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI34QDesignerFormEditorPluginInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QDesignerFormEditorPluginInterface + size=8 align=8 + base size=8 base align=8 +QDesignerFormEditorPluginInterface (0x0x7f868081ed20) 0 nearly-empty + vptr=((& QDesignerFormEditorPluginInterface::_ZTV34QDesignerFormEditorPluginInterface) + 16) + +Class QDesignerFormWindowInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerFormWindowInterface::QPrivateSignal (0x0x7f86808b7000) 0 empty + +Vtable for QDesignerFormWindowInterface +QDesignerFormWindowInterface::_ZTV28QDesignerFormWindowInterface: 121 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QDesignerFormWindowInterface) +16 (int (*)(...))QDesignerFormWindowInterface::metaObject +24 (int (*)(...))QDesignerFormWindowInterface::qt_metacast +32 (int (*)(...))QDesignerFormWindowInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))__cxa_pure_virtual +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))__cxa_pure_virtual +456 (int (*)(...))__cxa_pure_virtual +464 (int (*)(...))__cxa_pure_virtual +472 (int (*)(...))__cxa_pure_virtual +480 (int (*)(...))__cxa_pure_virtual +488 (int (*)(...))__cxa_pure_virtual +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))__cxa_pure_virtual +528 (int (*)(...))__cxa_pure_virtual +536 (int (*)(...))__cxa_pure_virtual +544 (int (*)(...))__cxa_pure_virtual +552 (int (*)(...))__cxa_pure_virtual +560 (int (*)(...))__cxa_pure_virtual +568 (int (*)(...))__cxa_pure_virtual +576 (int (*)(...))__cxa_pure_virtual +584 (int (*)(...))__cxa_pure_virtual +592 (int (*)(...))__cxa_pure_virtual +600 (int (*)(...))__cxa_pure_virtual +608 (int (*)(...))__cxa_pure_virtual +616 (int (*)(...))__cxa_pure_virtual +624 (int (*)(...))__cxa_pure_virtual +632 (int (*)(...))QDesignerFormWindowInterface::core +640 (int (*)(...))__cxa_pure_virtual +648 (int (*)(...))__cxa_pure_virtual +656 (int (*)(...))__cxa_pure_virtual +664 (int (*)(...))__cxa_pure_virtual +672 (int (*)(...))__cxa_pure_virtual +680 (int (*)(...))__cxa_pure_virtual +688 (int (*)(...))__cxa_pure_virtual +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))__cxa_pure_virtual +736 (int (*)(...))__cxa_pure_virtual +744 (int (*)(...))__cxa_pure_virtual +752 (int (*)(...))__cxa_pure_virtual +760 (int (*)(...))__cxa_pure_virtual +768 (int (*)(...))__cxa_pure_virtual +776 (int (*)(...))__cxa_pure_virtual +784 (int (*)(...))__cxa_pure_virtual +792 (int (*)(...))__cxa_pure_virtual +800 (int (*)(...))__cxa_pure_virtual +808 (int (*)(...))__cxa_pure_virtual +816 (int (*)(...))__cxa_pure_virtual +824 (int (*)(...))__cxa_pure_virtual +832 (int (*)(...))__cxa_pure_virtual +840 (int (*)(...))__cxa_pure_virtual +848 (int (*)(...))__cxa_pure_virtual +856 (int (*)(...))__cxa_pure_virtual +864 (int (*)(...))__cxa_pure_virtual +872 (int (*)(...))__cxa_pure_virtual +880 (int (*)(...))__cxa_pure_virtual +888 (int (*)(...))-16 +896 (int (*)(...))(& _ZTI28QDesignerFormWindowInterface) +904 0 +912 0 +920 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +928 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +936 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +944 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +952 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +960 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerFormWindowInterface + size=40 align=8 + base size=40 base align=8 +QDesignerFormWindowInterface (0x0x7f86807b75b0) 0 + vptr=((& QDesignerFormWindowInterface::_ZTV28QDesignerFormWindowInterface) + 16) + QWidget (0x0x7f86807f9540) 0 + primary-for QDesignerFormWindowInterface (0x0x7f86807b75b0) + QObject (0x0x7f868081ef00) 0 + primary-for QWidget (0x0x7f86807f9540) + QPaintDevice (0x0x7f868081ef60) 16 + vptr=((& QDesignerFormWindowInterface::_ZTV28QDesignerFormWindowInterface) + 904) + +Vtable for QDesignerFormWindowCursorInterface +QDesignerFormWindowCursorInterface::_ZTV34QDesignerFormWindowCursorInterface: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI34QDesignerFormWindowCursorInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual + +Class QDesignerFormWindowCursorInterface + size=8 align=8 + base size=8 base align=8 +QDesignerFormWindowCursorInterface (0x0x7f86808b7180) 0 nearly-empty + vptr=((& QDesignerFormWindowCursorInterface::_ZTV34QDesignerFormWindowCursorInterface) + 16) + +Class QDesignerFormWindowManagerInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerFormWindowManagerInterface::QPrivateSignal (0x0x7f86808b7240) 0 empty + +Vtable for QDesignerFormWindowManagerInterface +QDesignerFormWindowManagerInterface::_ZTV35QDesignerFormWindowManagerInterface: 29 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI35QDesignerFormWindowManagerInterface) +16 (int (*)(...))QDesignerFormWindowManagerInterface::metaObject +24 (int (*)(...))QDesignerFormWindowManagerInterface::qt_metacast +32 (int (*)(...))QDesignerFormWindowManagerInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual + +Class QDesignerFormWindowManagerInterface + size=16 align=8 + base size=16 base align=8 +QDesignerFormWindowManagerInterface (0x0x7f86807b7618) 0 + vptr=((& QDesignerFormWindowManagerInterface::_ZTV35QDesignerFormWindowManagerInterface) + 16) + QObject (0x0x7f86808b71e0) 0 + primary-for QDesignerFormWindowManagerInterface (0x0x7f86807b7618) + +Class QDesignerFormWindowToolInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerFormWindowToolInterface::QPrivateSignal (0x0x7f86808b7540) 0 empty + +Vtable for QDesignerFormWindowToolInterface +QDesignerFormWindowToolInterface::_ZTV32QDesignerFormWindowToolInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QDesignerFormWindowToolInterface) +16 (int (*)(...))QDesignerFormWindowToolInterface::metaObject +24 (int (*)(...))QDesignerFormWindowToolInterface::qt_metacast +32 (int (*)(...))QDesignerFormWindowToolInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QDesignerFormWindowToolInterface::saveToDom +168 (int (*)(...))QDesignerFormWindowToolInterface::loadFromDom +176 (int (*)(...))__cxa_pure_virtual + +Class QDesignerFormWindowToolInterface + size=16 align=8 + base size=16 base align=8 +QDesignerFormWindowToolInterface (0x0x7f86807b7680) 0 + vptr=((& QDesignerFormWindowToolInterface::_ZTV32QDesignerFormWindowToolInterface) + 16) + QObject (0x0x7f86808b74e0) 0 + primary-for QDesignerFormWindowToolInterface (0x0x7f86807b7680) + +Class QDesignerIntegrationInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerIntegrationInterface::QPrivateSignal (0x0x7f86808b7720) 0 empty + +Vtable for QDesignerIntegrationInterface +QDesignerIntegrationInterface::_ZTV29QDesignerIntegrationInterface: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QDesignerIntegrationInterface) +16 (int (*)(...))QDesignerIntegrationInterface::metaObject +24 (int (*)(...))QDesignerIntegrationInterface::qt_metacast +32 (int (*)(...))QDesignerIntegrationInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual + +Class QDesignerIntegrationInterface + size=24 align=8 + base size=24 base align=8 +QDesignerIntegrationInterface (0x0x7f86807b76e8) 0 + vptr=((& QDesignerIntegrationInterface::_ZTV29QDesignerIntegrationInterface) + 16) + QObject (0x0x7f86808b76c0) 0 + primary-for QDesignerIntegrationInterface (0x0x7f86807b76e8) + +Class QDesignerIntegration::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerIntegration::QPrivateSignal (0x0x7f86808b7960) 0 empty + +Vtable for QDesignerIntegration +QDesignerIntegration::_ZTV20QDesignerIntegration: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDesignerIntegration) +16 (int (*)(...))QDesignerIntegration::metaObject +24 (int (*)(...))QDesignerIntegration::qt_metacast +32 (int (*)(...))QDesignerIntegration::qt_metacall +40 (int (*)(...))QDesignerIntegration::~QDesignerIntegration +48 (int (*)(...))QDesignerIntegration::~QDesignerIntegration +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDesignerIntegration::containerWindow +120 (int (*)(...))QDesignerIntegration::createResourceBrowser +128 (int (*)(...))QDesignerIntegration::headerSuffix +136 (int (*)(...))QDesignerIntegration::setHeaderSuffix +144 (int (*)(...))QDesignerIntegration::isHeaderLowercase +152 (int (*)(...))QDesignerIntegration::setHeaderLowercase +160 (int (*)(...))QDesignerIntegration::features +168 (int (*)(...))QDesignerIntegration::resourceFileWatcherBehaviour +176 (int (*)(...))QDesignerIntegration::setResourceFileWatcherBehaviour +184 (int (*)(...))QDesignerIntegration::contextHelpId +192 (int (*)(...))QDesignerIntegration::setFeatures +200 (int (*)(...))QDesignerIntegration::updateProperty +208 (int (*)(...))QDesignerIntegration::updateProperty +216 (int (*)(...))QDesignerIntegration::resetProperty +224 (int (*)(...))QDesignerIntegration::addDynamicProperty +232 (int (*)(...))QDesignerIntegration::removeDynamicProperty +240 (int (*)(...))QDesignerIntegration::updateActiveFormWindow +248 (int (*)(...))QDesignerIntegration::setupFormWindow +256 (int (*)(...))QDesignerIntegration::updateSelection +264 (int (*)(...))QDesignerIntegration::updateCustomWidgetPlugins + +Class QDesignerIntegration + size=32 align=8 + base size=32 base align=8 +QDesignerIntegration (0x0x7f86807b7750) 0 + vptr=((& QDesignerIntegration::_ZTV20QDesignerIntegration) + 16) + QDesignerIntegrationInterface (0x0x7f86807b77b8) 0 + primary-for QDesignerIntegration (0x0x7f86807b7750) + QObject (0x0x7f86808b7900) 0 + primary-for QDesignerIntegrationInterface (0x0x7f86807b77b8) + +Vtable for QAbstractExtensionFactory +QAbstractExtensionFactory::_ZTV25QAbstractExtensionFactory: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractExtensionFactory) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractExtensionFactory + size=8 align=8 + base size=8 base align=8 +QAbstractExtensionFactory (0x0x7f86808b7a80) 0 nearly-empty + vptr=((& QAbstractExtensionFactory::_ZTV25QAbstractExtensionFactory) + 16) + +Vtable for QAbstractExtensionManager +QAbstractExtensionManager::_ZTV25QAbstractExtensionManager: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractExtensionManager) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAbstractExtensionManager + size=8 align=8 + base size=8 base align=8 +QAbstractExtensionManager (0x0x7f86808b7e40) 0 nearly-empty + vptr=((& QAbstractExtensionManager::_ZTV25QAbstractExtensionManager) + 16) + +Vtable for QDesignerLanguageExtension +QDesignerLanguageExtension::_ZTV26QDesignerLanguageExtension: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QDesignerLanguageExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual + +Class QDesignerLanguageExtension + size=8 align=8 + base size=8 base align=8 +QDesignerLanguageExtension (0x0x7f86809412a0) 0 nearly-empty + vptr=((& QDesignerLanguageExtension::_ZTV26QDesignerLanguageExtension) + 16) + +Vtable for QDesignerMetaDataBaseItemInterface +QDesignerMetaDataBaseItemInterface::_ZTV34QDesignerMetaDataBaseItemInterface: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI34QDesignerMetaDataBaseItemInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QDesignerMetaDataBaseItemInterface + size=8 align=8 + base size=8 base align=8 +QDesignerMetaDataBaseItemInterface (0x0x7f86809414e0) 0 nearly-empty + vptr=((& QDesignerMetaDataBaseItemInterface::_ZTV34QDesignerMetaDataBaseItemInterface) + 16) + +Class QDesignerMetaDataBaseInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerMetaDataBaseInterface::QPrivateSignal (0x0x7f86809415a0) 0 empty + +Vtable for QDesignerMetaDataBaseInterface +QDesignerMetaDataBaseInterface::_ZTV30QDesignerMetaDataBaseInterface: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QDesignerMetaDataBaseInterface) +16 (int (*)(...))QDesignerMetaDataBaseInterface::metaObject +24 (int (*)(...))QDesignerMetaDataBaseInterface::qt_metacast +32 (int (*)(...))QDesignerMetaDataBaseInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual + +Class QDesignerMetaDataBaseInterface + size=16 align=8 + base size=16 base align=8 +QDesignerMetaDataBaseInterface (0x0x7f86807b7820) 0 + vptr=((& QDesignerMetaDataBaseInterface::_ZTV30QDesignerMetaDataBaseInterface) + 16) + QObject (0x0x7f8680941540) 0 + primary-for QDesignerMetaDataBaseInterface (0x0x7f86807b7820) + +Class QDesignerNewFormWidgetInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerNewFormWidgetInterface::QPrivateSignal (0x0x7f8680941720) 0 empty + +Vtable for QDesignerNewFormWidgetInterface +QDesignerNewFormWidgetInterface::_ZTV31QDesignerNewFormWidgetInterface: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI31QDesignerNewFormWidgetInterface) +16 (int (*)(...))QDesignerNewFormWidgetInterface::metaObject +24 (int (*)(...))QDesignerNewFormWidgetInterface::qt_metacast +32 (int (*)(...))QDesignerNewFormWidgetInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))__cxa_pure_virtual +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI31QDesignerNewFormWidgetInterface) +464 0 +472 0 +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerNewFormWidgetInterface + size=40 align=8 + base size=40 base align=8 +QDesignerNewFormWidgetInterface (0x0x7f86807b7888) 0 + vptr=((& QDesignerNewFormWidgetInterface::_ZTV31QDesignerNewFormWidgetInterface) + 16) + QWidget (0x0x7f86808e5a10) 0 + primary-for QDesignerNewFormWidgetInterface (0x0x7f86807b7888) + QObject (0x0x7f8680941660) 0 + primary-for QWidget (0x0x7f86808e5a10) + QPaintDevice (0x0x7f86809416c0) 16 + vptr=((& QDesignerNewFormWidgetInterface::_ZTV31QDesignerNewFormWidgetInterface) + 464) + +Class QDesignerObjectInspectorInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerObjectInspectorInterface::QPrivateSignal (0x0x7f86809418a0) 0 empty + +Vtable for QDesignerObjectInspectorInterface +QDesignerObjectInspectorInterface::_ZTV33QDesignerObjectInspectorInterface: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI33QDesignerObjectInspectorInterface) +16 (int (*)(...))QDesignerObjectInspectorInterface::metaObject +24 (int (*)(...))QDesignerObjectInspectorInterface::qt_metacast +32 (int (*)(...))QDesignerObjectInspectorInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDesignerObjectInspectorInterface::core +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI33QDesignerObjectInspectorInterface) +464 0 +472 0 +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerObjectInspectorInterface + size=40 align=8 + base size=40 base align=8 +QDesignerObjectInspectorInterface (0x0x7f86807b78f0) 0 + vptr=((& QDesignerObjectInspectorInterface::_ZTV33QDesignerObjectInspectorInterface) + 16) + QWidget (0x0x7f86808e5a80) 0 + primary-for QDesignerObjectInspectorInterface (0x0x7f86807b78f0) + QObject (0x0x7f86809417e0) 0 + primary-for QWidget (0x0x7f86808e5a80) + QPaintDevice (0x0x7f8680941840) 16 + vptr=((& QDesignerObjectInspectorInterface::_ZTV33QDesignerObjectInspectorInterface) + 464) + +Vtable for QDesignerOptionsPageInterface +QDesignerOptionsPageInterface::_ZTV29QDesignerOptionsPageInterface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QDesignerOptionsPageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QDesignerOptionsPageInterface + size=8 align=8 + base size=8 base align=8 +QDesignerOptionsPageInterface (0x0x7f8680941960) 0 nearly-empty + vptr=((& QDesignerOptionsPageInterface::_ZTV29QDesignerOptionsPageInterface) + 16) + +Class QDesignerPromotionInterface::PromotedClass + size=16 align=8 + base size=16 base align=8 +QDesignerPromotionInterface::PromotedClass (0x0x7f8680941a20) 0 + +Vtable for QDesignerPromotionInterface +QDesignerPromotionInterface::_ZTV27QDesignerPromotionInterface: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDesignerPromotionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual + +Class QDesignerPromotionInterface + size=8 align=8 + base size=8 base align=8 +QDesignerPromotionInterface (0x0x7f86809419c0) 0 nearly-empty + vptr=((& QDesignerPromotionInterface::_ZTV27QDesignerPromotionInterface) + 16) + +Class QDesignerPropertyEditorInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerPropertyEditorInterface::QPrivateSignal (0x0x7f8680941b40) 0 empty + +Vtable for QDesignerPropertyEditorInterface +QDesignerPropertyEditorInterface::_ZTV32QDesignerPropertyEditorInterface: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QDesignerPropertyEditorInterface) +16 (int (*)(...))QDesignerPropertyEditorInterface::metaObject +24 (int (*)(...))QDesignerPropertyEditorInterface::qt_metacast +32 (int (*)(...))QDesignerPropertyEditorInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDesignerPropertyEditorInterface::core +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))__cxa_pure_virtual +456 (int (*)(...))__cxa_pure_virtual +464 (int (*)(...))__cxa_pure_virtual +472 (int (*)(...))__cxa_pure_virtual +480 (int (*)(...))__cxa_pure_virtual +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI32QDesignerPropertyEditorInterface) +504 0 +512 0 +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerPropertyEditorInterface + size=40 align=8 + base size=40 base align=8 +QDesignerPropertyEditorInterface (0x0x7f86807b7958) 0 + vptr=((& QDesignerPropertyEditorInterface::_ZTV32QDesignerPropertyEditorInterface) + 16) + QWidget (0x0x7f86808e5af0) 0 + primary-for QDesignerPropertyEditorInterface (0x0x7f86807b7958) + QObject (0x0x7f8680941a80) 0 + primary-for QWidget (0x0x7f86808e5af0) + QPaintDevice (0x0x7f8680941ae0) 16 + vptr=((& QDesignerPropertyEditorInterface::_ZTV32QDesignerPropertyEditorInterface) + 504) + +Class QDesignerResourceBrowserInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerResourceBrowserInterface::QPrivateSignal (0x0x7f8680941cc0) 0 empty + +Vtable for QDesignerResourceBrowserInterface +QDesignerResourceBrowserInterface::_ZTV33QDesignerResourceBrowserInterface: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI33QDesignerResourceBrowserInterface) +16 (int (*)(...))QDesignerResourceBrowserInterface::metaObject +24 (int (*)(...))QDesignerResourceBrowserInterface::qt_metacast +32 (int (*)(...))QDesignerResourceBrowserInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))__cxa_pure_virtual +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI33QDesignerResourceBrowserInterface) +464 0 +472 0 +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerResourceBrowserInterface + size=40 align=8 + base size=40 base align=8 +QDesignerResourceBrowserInterface (0x0x7f86807b79c0) 0 + vptr=((& QDesignerResourceBrowserInterface::_ZTV33QDesignerResourceBrowserInterface) + 16) + QWidget (0x0x7f86808e5b60) 0 + primary-for QDesignerResourceBrowserInterface (0x0x7f86807b79c0) + QObject (0x0x7f8680941c00) 0 + primary-for QWidget (0x0x7f86808e5b60) + QPaintDevice (0x0x7f8680941c60) 16 + vptr=((& QDesignerResourceBrowserInterface::_ZTV33QDesignerResourceBrowserInterface) + 464) + +Vtable for QDesignerSettingsInterface +QDesignerSettingsInterface::_ZTV26QDesignerSettingsInterface: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QDesignerSettingsInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QDesignerSettingsInterface + size=8 align=8 + base size=8 base align=8 +QDesignerSettingsInterface (0x0x7f8680941d80) 0 nearly-empty + vptr=((& QDesignerSettingsInterface::_ZTV26QDesignerSettingsInterface) + 16) + +Class QDesignerWidgetBoxInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerWidgetBoxInterface::QPrivateSignal (0x0x7f8680941ea0) 0 empty + +Class QDesignerWidgetBoxInterface::Widget + size=8 align=8 + base size=8 base align=8 +QDesignerWidgetBoxInterface::Widget (0x0x7f8680941f00) 0 + +Class QDesignerWidgetBoxInterface::Category + size=56 align=8 + base size=56 base align=8 +QDesignerWidgetBoxInterface::Category (0x0x7f86805c6000) 0 + +Vtable for QDesignerWidgetBoxInterface +QDesignerWidgetBoxInterface::_ZTV27QDesignerWidgetBoxInterface: 77 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDesignerWidgetBoxInterface) +16 (int (*)(...))QDesignerWidgetBoxInterface::metaObject +24 (int (*)(...))QDesignerWidgetBoxInterface::qt_metacast +32 (int (*)(...))QDesignerWidgetBoxInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))__cxa_pure_virtual +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))__cxa_pure_virtual +456 (int (*)(...))__cxa_pure_virtual +464 (int (*)(...))__cxa_pure_virtual +472 (int (*)(...))__cxa_pure_virtual +480 (int (*)(...))__cxa_pure_virtual +488 (int (*)(...))__cxa_pure_virtual +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))__cxa_pure_virtual +528 (int (*)(...))__cxa_pure_virtual +536 (int (*)(...))-16 +544 (int (*)(...))(& _ZTI27QDesignerWidgetBoxInterface) +552 0 +560 0 +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerWidgetBoxInterface + size=40 align=8 + base size=40 base align=8 +QDesignerWidgetBoxInterface (0x0x7f86807b7a28) 0 + vptr=((& QDesignerWidgetBoxInterface::_ZTV27QDesignerWidgetBoxInterface) + 16) + QWidget (0x0x7f86808e5bd0) 0 + primary-for QDesignerWidgetBoxInterface (0x0x7f86807b7a28) + QObject (0x0x7f8680941de0) 0 + primary-for QWidget (0x0x7f86808e5bd0) + QPaintDevice (0x0x7f8680941e40) 16 + vptr=((& QDesignerWidgetBoxInterface::_ZTV27QDesignerWidgetBoxInterface) + 552) + +Vtable for QDesignerWidgetDataBaseItemInterface +QDesignerWidgetDataBaseItemInterface::_ZTV36QDesignerWidgetDataBaseItemInterface: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI36QDesignerWidgetDataBaseItemInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual + +Class QDesignerWidgetDataBaseItemInterface + size=8 align=8 + base size=8 base align=8 +QDesignerWidgetDataBaseItemInterface (0x0x7f86806444e0) 0 nearly-empty + vptr=((& QDesignerWidgetDataBaseItemInterface::_ZTV36QDesignerWidgetDataBaseItemInterface) + 16) + +Class QDesignerWidgetDataBaseInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerWidgetDataBaseInterface::QPrivateSignal (0x0x7f8680644600) 0 empty + +Vtable for QDesignerWidgetDataBaseInterface +QDesignerWidgetDataBaseInterface::_ZTV32QDesignerWidgetDataBaseInterface: 22 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QDesignerWidgetDataBaseInterface) +16 (int (*)(...))QDesignerWidgetDataBaseInterface::metaObject +24 (int (*)(...))QDesignerWidgetDataBaseInterface::qt_metacast +32 (int (*)(...))QDesignerWidgetDataBaseInterface::qt_metacall +40 (int (*)(...))QDesignerWidgetDataBaseInterface::~QDesignerWidgetDataBaseInterface +48 (int (*)(...))QDesignerWidgetDataBaseInterface::~QDesignerWidgetDataBaseInterface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDesignerWidgetDataBaseInterface::count +120 (int (*)(...))QDesignerWidgetDataBaseInterface::item +128 (int (*)(...))QDesignerWidgetDataBaseInterface::indexOf +136 (int (*)(...))QDesignerWidgetDataBaseInterface::insert +144 (int (*)(...))QDesignerWidgetDataBaseInterface::append +152 (int (*)(...))QDesignerWidgetDataBaseInterface::indexOfObject +160 (int (*)(...))QDesignerWidgetDataBaseInterface::indexOfClassName +168 (int (*)(...))QDesignerWidgetDataBaseInterface::core + +Class QDesignerWidgetDataBaseInterface + size=40 align=8 + base size=40 base align=8 +QDesignerWidgetDataBaseInterface (0x0x7f86805da270) 0 + vptr=((& QDesignerWidgetDataBaseInterface::_ZTV32QDesignerWidgetDataBaseInterface) + 16) + QObject (0x0x7f86806445a0) 0 + primary-for QDesignerWidgetDataBaseInterface (0x0x7f86805da270) + +Class QDesignerWidgetFactoryInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerWidgetFactoryInterface::QPrivateSignal (0x0x7f8680644e40) 0 empty + +Vtable for QDesignerWidgetFactoryInterface +QDesignerWidgetFactoryInterface::_ZTV31QDesignerWidgetFactoryInterface: 21 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI31QDesignerWidgetFactoryInterface) +16 (int (*)(...))QDesignerWidgetFactoryInterface::metaObject +24 (int (*)(...))QDesignerWidgetFactoryInterface::qt_metacast +32 (int (*)(...))QDesignerWidgetFactoryInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual + +Class QDesignerWidgetFactoryInterface + size=16 align=8 + base size=16 base align=8 +QDesignerWidgetFactoryInterface (0x0x7f86805daa90) 0 + vptr=((& QDesignerWidgetFactoryInterface::_ZTV31QDesignerWidgetFactoryInterface) + 16) + QObject (0x0x7f8680644f60) 0 + primary-for QDesignerWidgetFactoryInterface (0x0x7f86805daa90) + +Vtable for QDesignerContainerExtension +QDesignerContainerExtension::_ZTV27QDesignerContainerExtension: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDesignerContainerExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual + +Class QDesignerContainerExtension + size=8 align=8 + base size=8 base align=8 +QDesignerContainerExtension (0x0x7f86806d3060) 0 nearly-empty + vptr=((& QDesignerContainerExtension::_ZTV27QDesignerContainerExtension) + 16) + +Vtable for QDesignerDynamicPropertySheetExtension +QDesignerDynamicPropertySheetExtension::_ZTV38QDesignerDynamicPropertySheetExtension: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI38QDesignerDynamicPropertySheetExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QDesignerDynamicPropertySheetExtension + size=8 align=8 + base size=8 base align=8 +QDesignerDynamicPropertySheetExtension (0x0x7f86806d32a0) 0 nearly-empty + vptr=((& QDesignerDynamicPropertySheetExtension::_ZTV38QDesignerDynamicPropertySheetExtension) + 16) + +Vtable for QDesignerExtraInfoExtension +QDesignerExtraInfoExtension::_ZTV27QDesignerExtraInfoExtension: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDesignerExtraInfoExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QDesignerExtraInfoExtension + size=32 align=8 + base size=32 base align=8 +QDesignerExtraInfoExtension (0x0x7f86806d3540) 0 + vptr=((& QDesignerExtraInfoExtension::_ZTV27QDesignerExtraInfoExtension) + 16) + +Vtable for QFormBuilder +QFormBuilder::_ZTV12QFormBuilder: 43 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QFormBuilder) +16 (int (*)(...))QFormBuilder::~QFormBuilder +24 (int (*)(...))QFormBuilder::~QFormBuilder +32 (int (*)(...))QAbstractFormBuilder::load +40 (int (*)(...))QAbstractFormBuilder::save +48 (int (*)(...))QAbstractFormBuilder::loadExtraInfo +56 (int (*)(...))QFormBuilder::create +64 (int (*)(...))QFormBuilder::create +72 (int (*)(...))QFormBuilder::create +80 (int (*)(...))QFormBuilder::create +88 (int (*)(...))QFormBuilder::create +96 (int (*)(...))QFormBuilder::create +104 (int (*)(...))QAbstractFormBuilder::addMenuAction +112 (int (*)(...))QFormBuilder::applyProperties +120 (int (*)(...))QAbstractFormBuilder::applyTabStops +128 (int (*)(...))QFormBuilder::createWidget +136 (int (*)(...))QFormBuilder::createLayout +144 (int (*)(...))QAbstractFormBuilder::createAction +152 (int (*)(...))QAbstractFormBuilder::createActionGroup +160 (int (*)(...))QAbstractFormBuilder::createCustomWidgets +168 (int (*)(...))QFormBuilder::createConnections +176 (int (*)(...))QAbstractFormBuilder::createResources +184 (int (*)(...))QFormBuilder::addItem +192 (int (*)(...))QFormBuilder::addItem +200 (int (*)(...))QAbstractFormBuilder::saveExtraInfo +208 (int (*)(...))QAbstractFormBuilder::saveDom +216 (int (*)(...))QAbstractFormBuilder::createActionRefDom +224 (int (*)(...))QAbstractFormBuilder::createDom +232 (int (*)(...))QAbstractFormBuilder::createDom +240 (int (*)(...))QAbstractFormBuilder::createDom +248 (int (*)(...))QAbstractFormBuilder::createDom +256 (int (*)(...))QAbstractFormBuilder::createDom +264 (int (*)(...))QAbstractFormBuilder::createDom +272 (int (*)(...))QAbstractFormBuilder::saveConnections +280 (int (*)(...))QAbstractFormBuilder::saveCustomWidgets +288 (int (*)(...))QAbstractFormBuilder::saveTabStops +296 (int (*)(...))QAbstractFormBuilder::saveResources +304 (int (*)(...))QAbstractFormBuilder::computeProperties +312 (int (*)(...))QAbstractFormBuilder::checkProperty +320 (int (*)(...))QAbstractFormBuilder::createProperty +328 (int (*)(...))QAbstractFormBuilder::layoutInfo +336 (int (*)(...))QFormBuilder::updateCustomWidgets + +Class QFormBuilder + size=16 align=8 + base size=16 base align=8 +QFormBuilder (0x0x7f86805daaf8) 0 + vptr=((& QFormBuilder::_ZTV12QFormBuilder) + 16) + QAbstractFormBuilder (0x0x7f86806d3780) 0 + primary-for QFormBuilder (0x0x7f86805daaf8) + +Vtable for QDesignerLayoutDecorationExtension +QDesignerLayoutDecorationExtension::_ZTV34QDesignerLayoutDecorationExtension: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI34QDesignerLayoutDecorationExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual + +Class QDesignerLayoutDecorationExtension + size=8 align=8 + base size=8 base align=8 +QDesignerLayoutDecorationExtension (0x0x7f86806d37e0) 0 nearly-empty + vptr=((& QDesignerLayoutDecorationExtension::_ZTV34QDesignerLayoutDecorationExtension) + 16) + +Vtable for QDesignerMemberSheetExtension +QDesignerMemberSheetExtension::_ZTV29QDesignerMemberSheetExtension: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QDesignerMemberSheetExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual + +Class QDesignerMemberSheetExtension + size=8 align=8 + base size=8 base align=8 +QDesignerMemberSheetExtension (0x0x7f86806d3a20) 0 nearly-empty + vptr=((& QDesignerMemberSheetExtension::_ZTV29QDesignerMemberSheetExtension) + 16) + +Vtable for QDesignerPropertySheetExtension +QDesignerPropertySheetExtension::_ZTV31QDesignerPropertySheetExtension: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI31QDesignerPropertySheetExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QDesignerPropertySheetExtension + size=8 align=8 + base size=8 base align=8 +QDesignerPropertySheetExtension (0x0x7f86806d3c60) 0 nearly-empty + vptr=((& QDesignerPropertySheetExtension::_ZTV31QDesignerPropertySheetExtension) + 16) + +Class QExtensionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QExtensionManager::QPrivateSignal (0x0x7f86806d3f60) 0 empty + +Vtable for QExtensionManager +QExtensionManager::_ZTV17QExtensionManager: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QExtensionManager) +16 (int (*)(...))QExtensionManager::metaObject +24 (int (*)(...))QExtensionManager::qt_metacast +32 (int (*)(...))QExtensionManager::qt_metacall +40 (int (*)(...))QExtensionManager::~QExtensionManager +48 (int (*)(...))QExtensionManager::~QExtensionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QExtensionManager::registerExtensions +120 (int (*)(...))QExtensionManager::unregisterExtensions +128 (int (*)(...))QExtensionManager::extension +136 (int (*)(...))-16 +144 (int (*)(...))(& _ZTI17QExtensionManager) +152 (int (*)(...))QExtensionManager::_ZThn16_N17QExtensionManagerD1Ev +160 (int (*)(...))QExtensionManager::_ZThn16_N17QExtensionManagerD0Ev +168 (int (*)(...))QExtensionManager::_ZThn16_N17QExtensionManager18registerExtensionsEP25QAbstractExtensionFactoryRK7QString +176 (int (*)(...))QExtensionManager::_ZThn16_N17QExtensionManager20unregisterExtensionsEP25QAbstractExtensionFactoryRK7QString +184 (int (*)(...))QExtensionManager::_ZThn16_NK17QExtensionManager9extensionEP7QObjectRK7QString + +Class QExtensionManager + size=56 align=8 + base size=56 base align=8 +QExtensionManager (0x0x7f868064c460) 0 + vptr=((& QExtensionManager::_ZTV17QExtensionManager) + 16) + QObject (0x0x7f86806d3ea0) 0 + primary-for QExtensionManager (0x0x7f868064c460) + QAbstractExtensionManager (0x0x7f86806d3f00) 16 nearly-empty + vptr=((& QExtensionManager::_ZTV17QExtensionManager) + 152) + +Vtable for QDesignerTaskMenuExtension +QDesignerTaskMenuExtension::_ZTV26QDesignerTaskMenuExtension: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QDesignerTaskMenuExtension) +16 0 +24 0 +32 (int (*)(...))QDesignerTaskMenuExtension::preferredEditAction +40 (int (*)(...))__cxa_pure_virtual + +Class QDesignerTaskMenuExtension + size=8 align=8 + base size=8 base align=8 +QDesignerTaskMenuExtension (0x0x7f8680736a20) 0 nearly-empty + vptr=((& QDesignerTaskMenuExtension::_ZTV26QDesignerTaskMenuExtension) + 16) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f86803e5060) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f86803e53c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f86803e55a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f86803e5900) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f86803e5ae0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f86803e5e40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f86803e54e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f868041e300) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f868041e4e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f868041e840) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f868041ea20) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f868041ed80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f868041ef60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f868044b300) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f868044b4e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f868044b840) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8680496120) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8680496480) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8680496600) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8680496960) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8680496ae0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8680496e40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f86804c2000) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f86804c2360) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f86804c24e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f86804c2840) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f86804c29c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f86804c2d20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f86804c2ea0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f86804f3240) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f86804f33c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f86804f3720) 0 empty + +Class QtPrivate::q_relocate_overlap_n_left_move(iterator, N, iterator) [with iterator = QDesignerWidgetBoxInterface::Widget*; N = long long int]::Destructor + size=24 align=8 + base size=24 base align=8 +QtPrivate::q_relocate_overlap_n_left_move(iterator, N, iterator) [with iterator = QDesignerWidgetBoxInterface::Widget*; N = long long int]::Destructor (0x0x7f867b0fa840) 0 + diff --git a/tests/auto/bic/data/QtDesigner.6.2.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtDesigner.6.2.0.linux-gcc-amd64.txt new file mode 100644 index 0000000..63b8758 --- /dev/null +++ b/tests/auto/bic/data/QtDesigner.6.2.0.linux-gcc-amd64.txt @@ -0,0 +1,21876 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7fec4719ade0) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7fec472b6600) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7fec472b6840) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7fec46ee5960) 0 empty + +Class std::__make_unsigned_selector_base + size=1 align=1 + base size=0 base align=1 +std::__make_unsigned_selector_base (0x0x7fec46f40180) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7fec46f90f60) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7fec46fc0060) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7fec46fc0540) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7fec46fc05a0) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7fec46fc0600) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7fec46fc0660) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7fec46fc06c0) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7fec46fc0780) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7fec46fc0840) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7fec46fc0900) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7fec46fc09c0) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7fec46fc0d20) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7fec470070c0) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7fec47007120) 0 empty + +Class std::__swappable_with_details::__do_is_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_swappable_with_impl (0x0x7fec470073c0) 0 empty + +Class std::__swappable_with_details::__do_is_nothrow_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_nothrow_swappable_with_impl (0x0x7fec47007420) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7fec47007c60) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7fec47084240) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7fec46ff0f70) 0 empty + std::__nonesuch (0x0x7fec47084720) 0 empty + +Class std::in_place_t + size=1 align=1 + base size=0 base align=1 +std::in_place_t (0x0x7fec4650a480) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7fec4650a780) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7fec4650a7e0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7fec4656e540) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7fec4656e5a0) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7fec470a84e0) 0 empty + std::input_iterator_tag (0x0x7fec4656e600) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7fec470a8548) 0 empty + std::forward_iterator_tag (0x0x7fec470a85b0) 0 empty + std::input_iterator_tag (0x0x7fec4656e660) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7fec470a8618) 0 empty + std::bidirectional_iterator_tag (0x0x7fec470a8680) 0 empty + std::forward_iterator_tag (0x0x7fec470a86e8) 0 empty + std::input_iterator_tag (0x0x7fec4656e6c0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7fec466243c0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7fec466244e0) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7fec466247e0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7fec46624ae0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7fec46624c00) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7fec462e2420) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7fec462e2720) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7fec462e2780) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7fec462e2840) 0 + +Class __pthread_internal_slist + size=8 align=8 + base size=8 base align=8 +__pthread_internal_slist (0x0x7fec462e28a0) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7fec462e2900) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7fec462e2960) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7fec462e29c0) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7fec462e2c60) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7fec462e2f00) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7fec462e2f60) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7fec4633ad20) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7fec470a8a90) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7fec4633af00) 0 nearly-empty + primary-for std::bad_exception (0x0x7fec470a8a90) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7fec463dc120) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7fec470a8af8) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7fec463dc4e0) 0 nearly-empty + primary-for std::bad_cast (0x0x7fec470a8af8) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7fec470a8b60) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7fec463dc6c0) 0 nearly-empty + primary-for std::bad_typeid (0x0x7fec470a8b60) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7fec463dc8a0) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7fec463dcde0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7fec470a8bc8) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7fec464154e0) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fec470a8bc8) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7fec470a8c30) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7fec470a8c98) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7fec470a8c30) + std::exception (0x0x7fec464156c0) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fec470a8c98) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7fec464158a0) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7fec46415ae0) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7fec464c32a0) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7fec4609d660) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7fec4609d720) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7fec45d19600) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7fec45d196c0) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7fec45d19720) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7fec45d19780) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7fec45d197e0) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7fec45d19900) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7fec45d19960) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7fec45dd1000) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7fec45dd1180) 0 empty + +Class _G_fpos_t + size=16 align=8 + base size=16 base align=8 +_G_fpos_t (0x0x7fec45c00000) 0 + +Class _G_fpos64_t + size=16 align=8 + base size=16 base align=8 +_G_fpos64_t (0x0x7fec45c00060) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7fec45c000c0) 0 + +Class _IO_cookie_io_functions_t + size=32 align=8 + base size=32 base align=8 +_IO_cookie_io_functions_t (0x0x7fec45c00120) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7fec4581f8a0) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7fec457b6c30) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7fec4581f960) 0 nearly-empty + primary-for std::logic_error (0x0x7fec457b6c30) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7fec457b6c98) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7fec457b6d00) 0 + primary-for std::domain_error (0x0x7fec457b6c98) + std::exception (0x0x7fec4581f9c0) 0 nearly-empty + primary-for std::logic_error (0x0x7fec457b6d00) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7fec457b6d68) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7fec457b6dd0) 0 + primary-for std::invalid_argument (0x0x7fec457b6d68) + std::exception (0x0x7fec4581fa20) 0 nearly-empty + primary-for std::logic_error (0x0x7fec457b6dd0) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7fec457b6e38) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7fec457b6ea0) 0 + primary-for std::length_error (0x0x7fec457b6e38) + std::exception (0x0x7fec4581fa80) 0 nearly-empty + primary-for std::logic_error (0x0x7fec457b6ea0) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7fec457b6f08) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7fec457b6f70) 0 + primary-for std::out_of_range (0x0x7fec457b6f08) + std::exception (0x0x7fec4581fae0) 0 nearly-empty + primary-for std::logic_error (0x0x7fec457b6f70) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7fec45865000) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7fec4581fb40) 0 nearly-empty + primary-for std::runtime_error (0x0x7fec45865000) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7fec45865068) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7fec458650d0) 0 + primary-for std::range_error (0x0x7fec45865068) + std::exception (0x0x7fec4581fba0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fec458650d0) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7fec45865138) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7fec458651a0) 0 + primary-for std::overflow_error (0x0x7fec45865138) + std::exception (0x0x7fec4581fc00) 0 nearly-empty + primary-for std::runtime_error (0x0x7fec458651a0) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7fec45865208) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7fec45865270) 0 + primary-for std::underflow_error (0x0x7fec45865208) + std::exception (0x0x7fec4581fc60) 0 nearly-empty + primary-for std::runtime_error (0x0x7fec45865270) + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7fec45896f60) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7fec458b7000) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7fec458b7180) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7fec458b7240) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7fec458654e0) 0 + std::__uses_alloc_base (0x0x7fec458b71e0) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7fec45627840) 0 empty + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7fec456bb8f0) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7fec456c9f00) 0 nearly-empty + primary-for std::bad_function_call (0x0x7fec456bb8f0) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7fec452fa000) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7fec452fa060) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7fec452fa360) 0 + +Class std::__detail::_Identity + size=1 align=1 + base size=0 base align=1 +std::__detail::_Identity (0x0x7fec453cd1e0) 0 empty + +Class std::__detail::_Select1st + size=1 align=1 + base size=0 base align=1 +std::__detail::_Select1st (0x0x7fec453cd2a0) 0 empty + +Class std::__detail::_Hash_node_base + size=8 align=8 + base size=8 base align=8 +std::__detail::_Hash_node_base (0x0x7fec453cd780) 0 + +Class std::__detail::_Mod_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mod_range_hashing (0x0x7fec453f6600) 0 empty + +Class std::__detail::_Default_ranged_hash + size=1 align=1 + base size=0 base align=1 +std::__detail::_Default_ranged_hash (0x0x7fec453f66c0) 0 empty + +Class std::__detail::_Prime_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Prime_rehash_policy (0x0x7fec453f6720) 0 + +Class std::__detail::_Mask_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mask_range_hashing (0x0x7fec453f6ae0) 0 empty + +Class std::__detail::_Power2_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Power2_rehash_policy (0x0x7fec453f6c00) 0 + +Class std::__detail::_Equality_base + size=1 align=1 + base size=0 base align=1 +std::__detail::_Equality_base (0x0x7fec451d7cc0) 0 empty + +Class std::_Enable_default_constructor_tag + size=1 align=1 + base size=0 base align=1 +std::_Enable_default_constructor_tag (0x0x7fec452115a0) 0 empty + +Class std::nullopt_t + size=1 align=1 + base size=0 base align=1 +std::nullopt_t (0x0x7fec45211f60) 0 empty + +Vtable for std::bad_optional_access +std::bad_optional_access::_ZTVSt19bad_optional_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt19bad_optional_access) +16 (int (*)(...))std::bad_optional_access::~bad_optional_access +24 (int (*)(...))std::bad_optional_access::~bad_optional_access +32 (int (*)(...))std::bad_optional_access::what + +Class std::bad_optional_access + size=8 align=8 + base size=8 base align=8 +std::bad_optional_access (0x0x7fec4520a820) 0 nearly-empty + vptr=((& std::bad_optional_access::_ZTVSt19bad_optional_access) + 16) + std::exception (0x0x7fec452601e0) 0 nearly-empty + primary-for std::bad_optional_access (0x0x7fec4520a820) + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7fec448f6b40) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7fec44bef340) 0 + std::iterator (0x0x7fec4491d300) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7fec44bef410) 0 + std::_Bit_iterator_base (0x0x7fec44bef478) 0 + std::iterator (0x0x7fec4491d8a0) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7fec44bef548) 0 + std::_Bit_iterator_base (0x0x7fec44bef5b0) 0 + std::iterator (0x0x7fec44952060) 0 empty + +Class __pstl::execution::v1::sequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::sequenced_policy (0x0x7fec4472f5a0) 0 empty + +Class __pstl::execution::v1::parallel_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_policy (0x0x7fec4472f720) 0 empty + +Class __pstl::execution::v1::parallel_unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_unsequenced_policy (0x0x7fec4472f8a0) 0 empty + +Class __pstl::execution::v1::unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::unsequenced_policy (0x0x7fec4472fa20) 0 empty + +Class std::__detail::__variant::__variant_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_cookie (0x0x7fec448675a0) 0 empty + +Class std::__detail::__variant::__variant_idx_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_idx_cookie (0x0x7fec44867600) 0 empty + +Class std::monostate + size=1 align=1 + base size=0 base align=1 +std::monostate (0x0x7fec445430c0) 0 empty + +Vtable for std::bad_variant_access +std::bad_variant_access::_ZTVSt18bad_variant_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt18bad_variant_access) +16 (int (*)(...))std::bad_variant_access::~bad_variant_access +24 (int (*)(...))std::bad_variant_access::~bad_variant_access +32 (int (*)(...))std::bad_variant_access::what + +Class std::bad_variant_access + size=16 align=8 + base size=16 base align=8 +std::bad_variant_access (0x0x7fec4486e958) 0 + vptr=((& std::bad_variant_access::_ZTVSt18bad_variant_access) + 16) + std::exception (0x0x7fec44566600) 0 nearly-empty + primary-for std::bad_variant_access (0x0x7fec4486e958) + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7fec4462e060) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7fec4462e0c0) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7fec4462e360) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7fec4462eba0) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7fec4467dc60) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7fec44314f00) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7fec446b4c30) 0 + std::__atomic_flag_base (0x0x7fec44314f60) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7fec44131f08) 0 + QAtomicInteger (0x0x7fec44131f70) 0 + QBasicAtomicInteger (0x0x7fec44292ea0) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7fec4373d180) 0 empty + +Class QKeyCombination + size=4 align=4 + base size=4 base align=4 +QKeyCombination (0x0x7fec4373d1e0) 0 + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7fec437fd4e0) 0 + +Class QMethodRawArguments + size=8 align=8 + base size=8 base align=8 +QMethodRawArguments (0x0x7fec437fdc00) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7fec437fdc60) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7fec437f83a8) 0 + QGenericArgument (0x0x7fec437fdf00) 0 + +Class QMetaObject::SuperData + size=8 align=8 + base size=8 base align=8 +QMetaObject::SuperData (0x0x7fec43838420) 0 + +Class QMetaObject::Data + size=56 align=8 + base size=56 base align=8 +QMetaObject::Data (0x0x7fec43838480) 0 + +Class QMetaObject + size=56 align=8 + base size=56 base align=8 +QMetaObject (0x0x7fec438383c0) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7fec43838de0) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7fec438aa840) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7fec434d4240) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7fec43590d20) 0 + +Class QArrayData + size=16 align=8 + base size=16 base align=8 +QArrayData (0x0x7fec435b30c0) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7fec43646b40) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7fec43646c60) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7fec43686060) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7fec43686300) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7fec436864e0) 0 + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7fec432d8600) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7fec432d8960) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7fec43313180) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7fec43665888) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7fec436658f0) 0 + primary-for std::system_error (0x0x7fec43665888) + std::exception (0x0x7fec43313d20) 0 nearly-empty + primary-for std::runtime_error (0x0x7fec436658f0) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7fec43665c30) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7fec43665c98) 0 + primary-for std::ios_base::failure (0x0x7fec43665c30) + std::runtime_error (0x0x7fec43665d00) 0 + primary-for std::system_error (0x0x7fec43665c98) + std::exception (0x0x7fec433724e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fec43665d00) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7fec43372540) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7fec433725a0) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7fec43372600) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7fec43372480) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7fec4342d240) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7fec430e5540) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7fec4304b888 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fec4304b958 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7fec4304bea0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fec4304bf70 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7fec430b93a8) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7fec43099f00) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7fec430b93a8) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7fec430b9410) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7fec42cd8060) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7fec430b9410) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7fec430b9478) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7fec42cd8180) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7fec430b9478) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7fec430b9548) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7fec42cd82a0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7fec430b9548) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7fec42cd8b40) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7fec42cd8ea0) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7fec42d07180) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7fec42d074e0) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7fec430b9680) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7fec42d88cc0) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7fec430b9680) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7fec42df5a80) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7fec42e1f000) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7fec42b31de0) 0 + +Class QByteArrayView + size=16 align=8 + base size=16 base align=8 +QByteArrayView (0x0x7fec42cc3180) 0 + +Class QByteArray + size=24 align=8 + base size=24 base align=8 +QByteArray (0x0x7fec429b82a0) 0 + +Class QByteArray::FromBase64Result + size=32 align=8 + base size=28 base align=8 +QByteArray::FromBase64Result (0x0x7fec42804660) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7fec42899600) 0 + +Class QChar::fromUcs4(char32_t)::R + size=4 align=2 + base size=4 base align=2 +QChar::fromUcs4(char32_t)::R (0x0x7fec42613540) 0 + +Class QtPrivate::hide_char8_t + size=1 align=1 + base size=0 base align=1 +QtPrivate::hide_char8_t (0x0x7fec42613960) 0 empty + +Class QtPrivate::wrap_char + size=1 align=1 + base size=0 base align=1 +QtPrivate::wrap_char (0x0x7fec426139c0) 0 empty + +Class QAnyStringView + size=16 align=8 + base size=16 base align=8 +QAnyStringView (0x0x7fec426a1720) 0 + +Class QStringTokenizerBaseBase::tokenizer_state + size=24 align=8 + base size=24 base align=8 +QStringTokenizerBaseBase::tokenizer_state (0x0x7fec42388900) 0 + +Class QStringTokenizerBaseBase + size=8 align=4 + base size=8 base align=4 +QStringTokenizerBaseBase (0x0x7fec423888a0) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7fec423d57e0) 0 + +Class QString + size=24 align=8 + base size=24 base align=8 +QString (0x0x7fec42140a80) 0 + +Class QtPrivate::ArgBase + size=1 align=1 + base size=1 base align=1 +QtPrivate::ArgBase (0x0x7fec3fd35d80) 0 + +Class QtPrivate::QStringViewArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QStringViewArg (0x0x7fec3fd3d478) 0 + QtPrivate::ArgBase (0x0x7fec3fd35de0) 0 + +Class QtPrivate::QLatin1StringArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QLatin1StringArg (0x0x7fec3fd3d548) 0 + QtPrivate::ArgBase (0x0x7fec3fd6a060) 0 + +Class QHashSeed + size=8 align=8 + base size=8 base align=8 +QHashSeed (0x0x7fec3fda38a0) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7fec3fddc840) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7fec3fddc900) 0 empty + +Class QStringMatcher + size=312 align=8 + base size=312 base align=8 +QStringMatcher (0x0x7fec3fbebde0) 0 + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7fec3fc1f480) 0 empty + +Class QtPrivate::CompareAgainstLiteralZero + size=1 align=1 + base size=0 base align=1 +QtPrivate::CompareAgainstLiteralZero (0x0x7fec3fcb5cc0) 0 empty + +Class QPartialOrdering + size=1 align=1 + base size=1 base align=1 +QPartialOrdering (0x0x7fec3fcb5f00) 0 + +Class QIODeviceBase + size=1 align=1 + base size=0 base align=1 +QIODeviceBase (0x0x7fec3f95da20) 0 empty + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7fec3fe5fd68) 0 + QIODeviceBase (0x0x7fec3f95da80) 0 empty + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7fec3f95dc00) 0 + +Class QtMetaContainerPrivate::QMetaContainerInterface + size=120 align=8 + base size=120 base align=8 +QtMetaContainerPrivate::QMetaContainerInterface (0x0x7fec3fa911e0) 0 + +Class QtMetaContainerPrivate::QMetaSequenceInterface + size=216 align=8 + base size=216 base align=8 +QtMetaContainerPrivate::QMetaSequenceInterface (0x0x7fec3fa018f0) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7fec3fa912a0) 0 + +Class QtMetaContainerPrivate::QMetaAssociationInterface + size=240 align=8 + base size=240 base align=8 +QtMetaContainerPrivate::QMetaAssociationInterface (0x0x7fec3fa019c0) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7fec3fa91360) 0 + +Class QMetaContainer + size=8 align=8 + base size=8 base align=8 +QMetaContainer (0x0x7fec3f739e40) 0 + +Class QMetaSequence + size=8 align=8 + base size=8 base align=8 +QMetaSequence (0x0x7fec3fa01d68) 0 + QMetaContainer (0x0x7fec3f74e060) 0 + +Class QMetaAssociation + size=8 align=8 + base size=8 base align=8 +QMetaAssociation (0x0x7fec3fa01dd0) 0 + QMetaContainer (0x0x7fec3f74e420) 0 + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7fec3f856600) 0 + +Class std::__detail::_List_node_header + size=24 align=8 + base size=24 base align=8 +std::__detail::_List_node_header (0x0x7fec3f7e9e38) 0 + std::__detail::_List_node_base (0x0x7fec3f856660) 0 + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7fec3f52c720) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7fec3f52ca80) 0 + +Class QtPrivate::QMetaTypeInterface + size=112 align=8 + base size=112 base align=8 +QtPrivate::QMetaTypeInterface (0x0x7fec3f39bf00) 0 + +Class QMetaType + size=8 align=8 + base size=8 base align=8 +QMetaType (0x0x7fec3f3c6120) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7fec3f476180) 0 + +Class QtPrivate::QTypeNormalizer + size=16 align=8 + base size=16 base align=8 +QtPrivate::QTypeNormalizer (0x0x7fec3ef60a20) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7fec3eb51d20) 0 + +Class QAdoptSharedDataTag + size=1 align=1 + base size=0 base align=1 +QAdoptSharedDataTag (0x0x7fec3eb7f0c0) 0 empty + +Class QtPrivate::RefCounted + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCounted (0x0x7fec3ebd9120) 0 + +Class QPropertyBindingPrivatePtr + size=8 align=8 + base size=8 base align=8 +QPropertyBindingPrivatePtr (0x0x7fec3ebd9240) 0 + +Class QUntypedPropertyData::InheritsQUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData::InheritsQUntypedPropertyData (0x0x7fec3ec2a8a0) 0 empty + +Class QUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData (0x0x7fec3ec2a840) 0 empty + +Class QPropertyProxyBindingData + size=24 align=8 + base size=24 base align=8 +QPropertyProxyBindingData (0x0x7fec3ec2a900) 0 + +Class QtPrivate::BindingFunctionVTable + size=32 align=8 + base size=32 base align=8 +QtPrivate::BindingFunctionVTable (0x0x7fec3ec2a960) 0 + +Class QtPrivate::QPropertyBindingFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::QPropertyBindingFunction (0x0x7fec3ec2aea0) 0 + +Class QtPrivate::QPropertyBindingData + size=8 align=8 + base size=8 base align=8 +QtPrivate::QPropertyBindingData (0x0x7fec3ec2af00) 0 + +Class std::experimental::fundamentals_v2::source_location + size=24 align=8 + base size=24 base align=8 +std::experimental::fundamentals_v2::source_location (0x0x7fec3ec51660) 0 + +Class QPropertyBindingSourceLocation + size=24 align=8 + base size=24 base align=8 +QPropertyBindingSourceLocation (0x0x7fec3ec51d80) 0 + +Class QPropertyBindingError + size=8 align=8 + base size=8 base align=8 +QPropertyBindingError (0x0x7fec3ec7f0c0) 0 + +Class QUntypedPropertyBinding + size=8 align=8 + base size=8 base align=8 +QUntypedPropertyBinding (0x0x7fec3ec7f1e0) 0 + +Class QPropertyObserverBase + size=24 align=8 + base size=24 base align=8 +QPropertyObserverBase (0x0x7fec3ec7f420) 0 + +Class QPropertyObserver + size=24 align=8 + base size=24 base align=8 +QPropertyObserver (0x0x7fec3ec34888) 0 + QPropertyObserverBase (0x0x7fec3ec7f5a0) 0 + +Class QPropertyNotifier + size=56 align=8 + base size=56 base align=8 +QPropertyNotifier (0x0x7fec3ec34bc8) 0 + QPropertyObserver (0x0x7fec3ec34c30) 0 + QPropertyObserverBase (0x0x7fec3ec7fa80) 0 + +Class QtPrivate::QBindableInterface + size=56 align=8 + base size=56 base align=8 +QtPrivate::QBindableInterface (0x0x7fec3e8fe960) 0 + +Class QUntypedBindable + size=16 align=8 + base size=16 base align=8 +QUntypedBindable (0x0x7fec3e920ae0) 0 + +Class QBindingStatus + size=32 align=8 + base size=32 base align=8 +QBindingStatus (0x0x7fec3ea39a20) 0 + +Class QBindingStorage + size=16 align=8 + base size=16 base align=8 +QBindingStorage (0x0x7fec3ea39a80) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7fec3e744840) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7fec3e7f35a0) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=80 align=8 + base size=80 base align=8 +QObjectData (0x0x7fec3e832f00) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7fec3e4e08a0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7fec3e4e0840) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7fec3e59f7e0) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7fec3e5cb0c0) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7fec3e5a30d0) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7fec3e5cb060) 0 + primary-for QAbstractAnimation (0x0x7fec3e5a30d0) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7fec3e5cb420) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7fec3e5a3138) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7fec3e5cb3c0) 0 + primary-for QAnimationDriver (0x0x7fec3e5a3138) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7fec3e5cb600) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7fec3e5a31a0) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7fec3e5cb5a0) 0 + primary-for QEventLoop (0x0x7fec3e5a31a0) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7fec3e5cbb40) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7fec3e5cbc00) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7fec3e5cbc60) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QAbstractEventDispatcher::startingUp +200 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7fec3e5a3340) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7fec3e5cbba0) 0 + primary-for QAbstractEventDispatcher (0x0x7fec3e5a3340) + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7fec3e66d420) 0 empty + +Class QStringConverterBase::State + size=48 align=8 + base size=48 base align=8 +QStringConverterBase::State (0x0x7fec3e15b060) 0 + +Class QStringConverterBase + size=1 align=1 + base size=0 base align=1 +QStringConverterBase (0x0x7fec3e15b000) 0 empty + +Class QStringConverter::Interface + size=40 align=8 + base size=40 base align=8 +QStringConverter::Interface (0x0x7fec3e15bc60) 0 + +Class QStringConverter + size=56 align=8 + base size=56 base align=8 +QStringConverter (0x0x7fec3e2d44e0) 0 + QStringConverterBase (0x0x7fec3e15bc00) 0 empty + +Class QStringEncoder + size=56 align=8 + base size=56 base align=8 +QStringEncoder (0x0x7fec3e2d4548) 0 + QStringConverter (0x0x7fec3e2d45b0) 0 + QStringConverterBase (0x0x7fec3e1b9660) 0 empty + +Class QStringDecoder + size=56 align=8 + base size=56 base align=8 +QStringDecoder (0x0x7fec3e2d4618) 0 + QStringConverter (0x0x7fec3e2d4680) 0 + QStringConverterBase (0x0x7fec3e1d84e0) 0 empty + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7fec3e2d46e8) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + QIODeviceBase (0x0x7fec3e1ff1e0) 0 empty + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7fec3e1ff960) 0 + +Class QContiguousCacheData + size=40 align=8 + base size=40 base align=8 +QContiguousCacheData (0x0x7fec3dedeb40) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7fec3df341e0) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7fec3df34360) 0 + +Class QtPrivate::EnableInternalData + size=1 align=1 + base size=0 base align=1 +QtPrivate::EnableInternalData (0x0x7fec3dfe95a0) 0 empty + +Class QDebug::Stream + size=88 align=8 + base size=88 base align=8 +QDebug::Stream (0x0x7fec3e00b4e0) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7fec3dfc51a0) 0 + QIODeviceBase (0x0x7fec3e00b480) 0 empty + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7fec3dd0de40) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7fec3dd0df00) 0 empty + +Class QVariant::PrivateShared + size=8 align=8 + base size=8 base align=8 +QVariant::PrivateShared (0x0x7fec3deb7b40) 0 + +Class QVariant::Private + size=32 align=8 + base size=32 base align=8 +QVariant::Private (0x0x7fec3deb7ba0) 0 + +Class QVariant + size=32 align=8 + base size=32 base align=8 +QVariant (0x0x7fec3deb7ae0) 0 + +Class QtPrivate::QVariantTypeCoercer + size=32 align=8 + base size=32 base align=8 +QtPrivate::QVariantTypeCoercer (0x0x7fec3dca4300) 0 + +Class QVariantConstPointer + size=32 align=8 + base size=32 base align=8 +QVariantConstPointer (0x0x7fec3dca4540) 0 + +Class QModelRoleData + size=40 align=8 + base size=40 base align=8 +QModelRoleData (0x0x7fec3dca4720) 0 + +Class QModelRoleDataSpan + size=16 align=8 + base size=16 base align=8 +QModelRoleDataSpan (0x0x7fec3d8e4660) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7fec3d92d660) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7fec3d97a840) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7fec3da0e120) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractItemModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractItemModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7fec3d9f4f70) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7fec3da0e0c0) 0 + primary-for QAbstractItemModel (0x0x7fec3d9f4f70) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7fec3d727ea0) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractTableModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7fec3da49820) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7fec3da49888) 0 + primary-for QAbstractTableModel (0x0x7fec3da49820) + QObject (0x0x7fec3d727e40) 0 + primary-for QAbstractItemModel (0x0x7fec3da49888) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7fec3d763000) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractListModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7fec3da498f0) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7fec3da49958) 0 + primary-for QAbstractListModel (0x0x7fec3da498f0) + QObject (0x0x7fec3d727f60) 0 + primary-for QAbstractItemModel (0x0x7fec3da49958) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7fec3d7a1840) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7fec3d7a1900) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QAbstractProxyModel::setSourceModel +416 (int (*)(...))__cxa_pure_virtual +424 (int (*)(...))__cxa_pure_virtual +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7fec3d796d68) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7fec3d796dd0) 0 + primary-for QAbstractProxyModel (0x0x7fec3d796d68) + QObject (0x0x7fec3d7a18a0) 0 + primary-for QAbstractItemModel (0x0x7fec3d796dd0) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7fec3d7a1ae0) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7fec3d796e38) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7fec3d796ea0) 0 + primary-for QAnimationGroup (0x0x7fec3d796e38) + QObject (0x0x7fec3d7a1a80) 0 + primary-for QAbstractAnimation (0x0x7fec3d796ea0) + +Class QAssociativeIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeIterator (0x0x7fec3d796f08) 0 + QIterator (0x0x7fec3d81c000) 0 + QBaseIterator (0x0x7fec3d7a1f00) 0 + +Class QAssociativeConstIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeConstIterator (0x0x7fec3d81c138) 0 + QConstIterator (0x0x7fec3d81c1a0) 0 + QBaseIterator (0x0x7fec3d826480) 0 + +Class QAssociativeIterable + size=24 align=8 + base size=24 base align=8 +QAssociativeIterable (0x0x7fec3d81c270) 0 + QIterable (0x0x7fec3d8269c0) 0 + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7fec3d5284e0) 0 + +Class QBitArray + size=24 align=8 + base size=24 base align=8 +QBitArray (0x0x7fec3d589240) 0 + +Class QBitRef + size=16 align=8 + base size=16 base align=8 +QBitRef (0x0x7fec3d5b8180) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7fec3d5e1cc0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7fec3d5f4070) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7fec3d5e1c00) 0 + primary-for QIODevice (0x0x7fec3d5f4070) + QIODeviceBase (0x0x7fec3d5e1c60) 0 empty + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7fec3d629120) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7fec3d5f2208) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7fec3d5f40e0) 0 + primary-for QBuffer (0x0x7fec3d5f2208) + QObject (0x0x7fec3d629060) 0 + primary-for QIODevice (0x0x7fec3d5f40e0) + QIODeviceBase (0x0x7fec3d6290c0) 0 empty + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7fec3d629360) 0 + +Class QByteArrayMatcher + size=1056 align=8 + base size=1056 base align=8 +QByteArrayMatcher (0x0x7fec3d629300) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7fec3d6294e0) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7fec3d629480) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7fec3d68ecc0) 0 + +Class QCalendar::YearMonthDay + size=12 align=4 + base size=12 base align=4 +QCalendar::YearMonthDay (0x0x7fec3d3a8b40) 0 + +Class QCalendar::SystemId + size=8 align=8 + base size=8 base align=8 +QCalendar::SystemId (0x0x7fec3d3a8ba0) 0 + +Class QCalendar + size=8 align=8 + base size=8 base align=8 +QCalendar (0x0x7fec3d3a8ae0) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7fec3d404600) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7fec3d456c00) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7fec3d4a6e40) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7fec3d4a6ea0) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7fec3d4a6de0) 0 + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7fec3d14b120) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7fec3d1824e0) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7fec3d236720) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel + size=1 align=1 + base size=0 base align=1 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel (0x0x7fec3d2a9ea0) 0 empty + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7fec3d2a9f60) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator + size=24 align=8 + base size=17 base align=8 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator (0x0x7fec3cee7120) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7fec3cf56360) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7fec3d029f60) 0 + +Class QCborParserError + size=16 align=8 + base size=16 base align=8 +QCborParserError (0x0x7fec3d0c8120) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7fec3d0c81e0) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7fec3cde9a80) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7fec3ce43000) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7fec3ce43060) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7fec3ce1ff60) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7fec3cb32600) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7fec3cb32660) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7fec3cb325a0) 0 + +Class qfloat16::Wrap + size=2 align=2 + base size=2 base align=2 +qfloat16::Wrap (0x0x7fec3c9426c0) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7fec3c942660) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7fec3ca34a80) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7fec3ca88f00) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7fec3cabc960) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7fec3cabcb40) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7fec3c7805a0) 0 + +Class QEvent::InputEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::InputEventTag (0x0x7fec3c7ecf00) 0 empty + +Class QEvent::PointerEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::PointerEventTag (0x0x7fec3c7ecf60) 0 empty + +Class QEvent::SinglePointEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::SinglePointEventTag (0x0x7fec3c845000) 0 empty + +Vtable for QEvent +QEvent::_ZTV6QEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QEvent + size=16 align=8 + base size=16 base align=8 +QEvent (0x0x7fec3c7ecea0) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QTimerEvent::clone + +Class QTimerEvent + size=24 align=8 + base size=20 base align=8 +QTimerEvent (0x0x7fec3c7f5680) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7fec3c845960) 0 + primary-for QTimerEvent (0x0x7fec3c7f5680) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QChildEvent::clone + +Class QChildEvent + size=24 align=8 + base size=24 base align=8 +QChildEvent (0x0x7fec3c7f56e8) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7fec3c845e40) 0 + primary-for QChildEvent (0x0x7fec3c7f56e8) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDynamicPropertyChangeEvent::clone + +Class QDynamicPropertyChangeEvent + size=40 align=8 + base size=40 base align=8 +QDynamicPropertyChangeEvent (0x0x7fec3c7f5750) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7fec3c87d2a0) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7fec3c7f5750) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDeferredDeleteEvent::clone + +Class QDeferredDeleteEvent + size=24 align=8 + base size=20 base align=8 +QDeferredDeleteEvent (0x0x7fec3c7f57b8) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7fec3c87d540) 0 + primary-for QDeferredDeleteEvent (0x0x7fec3c7f57b8) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7fec3c87d900) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7fec3c7f5888) 0 + QBasicMutex (0x0x7fec3c4f2660) 0 + +Class QRecursiveMutex + size=24 align=8 + base size=24 base align=8 +QRecursiveMutex (0x0x7fec3c4f2a80) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7fec3c55f0c0) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7fec3c55f6c0) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7fec3c5ed360) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7fec3c2cdd80) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7fec3c2fdf00) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7fec3c342240) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7fec3c47a600) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7fec3c482b60) 0 + std::__mutex_base (0x0x7fec3c47a660) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7fec3c47a840) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7fec3c47a8a0) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7fec3c47a900) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7fec3c4b7360) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7fec3c482bc8) 0 + std::__recursive_mutex_base (0x0x7fec3c4b73c0) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7fec3c38ce00) 0 + std::__mutex_base (0x0x7fec3c4b7780) 0 + std::__timed_mutex_impl (0x0x7fec3c4b77e0) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7fec3c38ce70) 0 + std::__recursive_mutex_base (0x0x7fec3c4b7ba0) 0 + std::__timed_mutex_impl (0x0x7fec3c4b7c00) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7fec3c0f2a20) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7fec3c0f2cc0) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7fec3c0f2d20) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7fec3c0f2c60) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7fec3bedaf60) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7fec3bf14360) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7fec3bf143c0) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7fec3bfc7900) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7fec3bf749c0) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7fec3bf74a28) 0 + primary-for std::future_error (0x0x7fec3bf749c0) + std::exception (0x0x7fec3bff0060) 0 nearly-empty + primary-for std::logic_error (0x0x7fec3bf74a28) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7fec3bff0780) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7fec3bff0720) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7fec3bd681e0) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7fec3bd5b208) 0 + std::__at_thread_exit_elt (0x0x7fec3bd682a0) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7fec3bff0900) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7fec3bff06c0) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7fec3ba12618) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7fec3ba2bf60) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7fec3ba12618) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7fec3ba65840) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7fec3ba12958) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7fec3ba657e0) 0 + primary-for QThread (0x0x7fec3ba12958) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=9 base align=8 +QRunnable (0x0x7fec3ba65ba0) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7fec3ba65d20) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7fec3ba129c0) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7fec3ba65cc0) 0 + primary-for QThreadPool (0x0x7fec3ba129c0) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7fec3ba12a28) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7fec3ba65ea0) 0 nearly-empty + primary-for QException (0x0x7fec3ba12a28) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=16 align=8 + base size=16 base align=8 +QUnhandledException (0x0x7fec3ba12a90) 0 + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7fec3ba12af8) 0 nearly-empty + primary-for QUnhandledException (0x0x7fec3ba12a90) + std::exception (0x0x7fec3ba65f00) 0 nearly-empty + primary-for QException (0x0x7fec3ba12af8) + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7fec3b6d0d80) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7fec3b503480) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7fec3b503420) 0 + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7fec3b5276c0) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7fec3b51f6e8) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7fec3b527660) 0 + primary-for QCoreApplication (0x0x7fec3b51f6e8) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7fec3b527900) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7fec3b527a20) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +224 (int (*)(...))QConcatenateTablesProxyModel::mimeData +232 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +240 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QConcatenateTablesProxyModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QConcatenateTablesProxyModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7fec3b51f750) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7fec3b51f7b8) 0 + primary-for QConcatenateTablesProxyModel (0x0x7fec3b51f750) + QObject (0x0x7fec3b5279c0) 0 + primary-for QAbstractItemModel (0x0x7fec3b51f7b8) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7fec3b527ba0) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7fec3b527d80) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFileDevice::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7fec3b51f820) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7fec3b578d20) 0 + primary-for QFileDevice (0x0x7fec3b51f820) + QObject (0x0x7fec3b527cc0) 0 + primary-for QIODevice (0x0x7fec3b578d20) + QIODeviceBase (0x0x7fec3b527d20) 0 empty + +Class std::filesystem::space_info + size=24 align=8 + base size=24 base align=8 +std::filesystem::space_info (0x0x7fec3b5d4a80) 0 + +Class std::filesystem::__file_clock + size=1 align=1 + base size=0 base align=1 +std::filesystem::__file_clock (0x0x7fec3b686060) 0 empty + +Class std::time_base + size=1 align=1 + base size=0 base align=1 +std::time_base (0x0x7fec3b6864e0) 0 empty + +Class std::money_base::pattern + size=4 align=1 + base size=4 base align=1 +std::money_base::pattern (0x0x7fec3b2ef7e0) 0 + +Class std::money_base + size=1 align=1 + base size=0 base align=1 +std::money_base (0x0x7fec3b2ef780) 0 empty + +Class std::messages_base + size=1 align=1 + base size=0 base align=1 +std::messages_base (0x0x7fec3b315d80) 0 empty + +Class std::codecvt_base + size=1 align=1 + base size=0 base align=1 +std::codecvt_base (0x0x7fec3b367900) 0 empty + +Construction vtable for std::basic_istream (0x0x7fec3b1c7a90 instance) in std::__cxx11::basic_istringstream +std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE0_Si: 10 entries +0 120 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551496 +48 (int (*)(...))-120 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +VTT for std::__cxx11::basic_istringstream +std::__cxx11::basic_istringstream::_ZTTNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE: 4 entries +0 ((& std::__cxx11::basic_istringstream::_ZTVNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE) + 24) +8 ((& std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE0_Si) + 24) +16 ((& std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE0_Si) + 64) +24 ((& std::__cxx11::basic_istringstream::_ZTVNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE) + 64) + +Construction vtable for std::basic_ostream (0x0x7fec3b1c7d00 instance) in std::__cxx11::basic_ostringstream +std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE0_So: 10 entries +0 112 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551504 +48 (int (*)(...))-112 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::__cxx11::basic_ostringstream +std::__cxx11::basic_ostringstream::_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE: 4 entries +0 ((& std::__cxx11::basic_ostringstream::_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE) + 24) +8 ((& std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE0_So) + 24) +16 ((& std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE0_So) + 64) +24 ((& std::__cxx11::basic_ostringstream::_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE) + 64) + +Construction vtable for std::basic_iostream (0x0x7fec3b4c6e00 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Sd: 15 entries +0 128 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISd) +24 0 +32 0 +40 112 +48 (int (*)(...))-16 +56 (int (*)(...))(& _ZTISd) +64 0 +72 0 +80 18446744073709551488 +88 (int (*)(...))-128 +96 (int (*)(...))(& _ZTISd) +104 0 +112 0 + +Construction vtable for std::basic_istream (0x0x7fec3b1c7f70 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Si: 10 entries +0 128 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551488 +48 (int (*)(...))-128 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fec3b1c7c30 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE16_So: 10 entries +0 112 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551504 +48 (int (*)(...))-112 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE: 10 entries +0 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE) + 24) +8 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Sd) + 24) +16 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Si) + 24) +24 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Si) + 64) +32 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE16_So) + 24) +40 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE16_So) + 64) +48 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Sd) + 104) +56 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Sd) + 64) +64 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE) + 104) +72 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE) + 64) + +Construction vtable for std::basic_istream (0x0x7fec3b25b340 instance) in std::__cxx11::basic_istringstream +std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E: 10 entries +0 120 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551496 +48 (int (*)(...))-120 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::__cxx11::basic_istringstream +std::__cxx11::basic_istringstream::_ZTTNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE: 4 entries +0 ((& std::__cxx11::basic_istringstream::_ZTVNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE) + 24) +8 ((& std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E) + 24) +16 ((& std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E) + 64) +24 ((& std::__cxx11::basic_istringstream::_ZTVNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE) + 64) + +Construction vtable for std::basic_ostream (0x0x7fec3b25b5b0 instance) in std::__cxx11::basic_ostringstream +std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_ostreamIwS2_E: 10 entries +0 112 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551504 +48 (int (*)(...))-112 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::__cxx11::basic_ostringstream +std::__cxx11::basic_ostringstream::_ZTTNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE: 4 entries +0 ((& std::__cxx11::basic_ostringstream::_ZTVNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE) + 24) +8 ((& std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_ostreamIwS2_E) + 24) +16 ((& std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_ostreamIwS2_E) + 64) +24 ((& std::__cxx11::basic_ostringstream::_ZTVNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE) + 64) + +Construction vtable for std::basic_iostream (0x0x7fec3b27e1c0 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St14basic_iostreamIwS2_E: 15 entries +0 128 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt14basic_iostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 112 +48 (int (*)(...))-16 +56 (int (*)(...))(& _ZTISt14basic_iostreamIwSt11char_traitsIwEE) +64 0 +72 0 +80 18446744073709551488 +88 (int (*)(...))-128 +96 (int (*)(...))(& _ZTISt14basic_iostreamIwSt11char_traitsIwEE) +104 0 +112 0 + +Construction vtable for std::basic_istream (0x0x7fec3b25b820 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E: 10 entries +0 128 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551488 +48 (int (*)(...))-128 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fec3b25b8f0 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE16_St13basic_ostreamIwS2_E: 10 entries +0 112 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551504 +48 (int (*)(...))-112 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTTNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE: 10 entries +0 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE) + 24) +8 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St14basic_iostreamIwS2_E) + 24) +16 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E) + 24) +24 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E) + 64) +32 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE16_St13basic_ostreamIwS2_E) + 24) +40 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE16_St13basic_ostreamIwS2_E) + 64) +48 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St14basic_iostreamIwS2_E) + 104) +56 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St14basic_iostreamIwS2_E) + 64) +64 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE) + 104) +72 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE) + 64) + +Class std::_Resetiosflags + size=4 align=4 + base size=4 base align=4 +std::_Resetiosflags (0x0x7fec3b2a5180) 0 + +Class std::_Setiosflags + size=4 align=4 + base size=4 base align=4 +std::_Setiosflags (0x0x7fec3b2a5300) 0 + +Class std::_Setbase + size=4 align=4 + base size=4 base align=4 +std::_Setbase (0x0x7fec3b2a5480) 0 + +Class std::_Setprecision + size=4 align=4 + base size=4 base align=4 +std::_Setprecision (0x0x7fec3b2a5780) 0 + +Class std::_Setw + size=4 align=4 + base size=4 base align=4 +std::_Setw (0x0x7fec3b2a5900) 0 + +Class std::filesystem::__cxx11::path::__null_terminated + size=1 align=1 + base size=0 base align=1 +std::filesystem::__cxx11::path::__null_terminated (0x0x7fec3af689c0) 0 empty + +Class std::filesystem::__cxx11::path::_List::_Impl_deleter + size=1 align=1 + base size=0 base align=1 +std::filesystem::__cxx11::path::_List::_Impl_deleter (0x0x7fec3af68a80) 0 empty + +Class std::filesystem::__cxx11::path::_List + size=8 align=8 + base size=8 base align=8 +std::filesystem::__cxx11::path::_List (0x0x7fec3af68a20) 0 + +Class std::filesystem::__cxx11::path + size=40 align=8 + base size=40 base align=8 +std::filesystem::__cxx11::path (0x0x7fec3af688a0) 0 + +Vtable for std::filesystem::__cxx11::filesystem_error +std::filesystem::__cxx11::filesystem_error::_ZTVNSt10filesystem7__cxx1116filesystem_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt10filesystem7__cxx1116filesystem_errorE) +16 (int (*)(...))std::filesystem::__cxx11::filesystem_error::~filesystem_error +24 (int (*)(...))std::filesystem::__cxx11::filesystem_error::~filesystem_error +32 (int (*)(...))std::filesystem::__cxx11::filesystem_error::what + +Class std::filesystem::__cxx11::filesystem_error + size=48 align=8 + base size=48 base align=8 +std::filesystem::__cxx11::filesystem_error (0x0x7fec3adde5b0) 0 + vptr=((& std::filesystem::__cxx11::filesystem_error::_ZTVNSt10filesystem7__cxx1116filesystem_errorE) + 16) + std::system_error (0x0x7fec3adde618) 0 + primary-for std::filesystem::__cxx11::filesystem_error (0x0x7fec3adde5b0) + std::runtime_error (0x0x7fec3adde680) 0 + primary-for std::system_error (0x0x7fec3adde618) + std::exception (0x0x7fec3ade0960) 0 nearly-empty + primary-for std::runtime_error (0x0x7fec3adde680) + +Class std::filesystem::__cxx11::path::_Cmpt + size=48 align=8 + base size=48 base align=8 +std::filesystem::__cxx11::path::_Cmpt (0x0x7fec3ae4b000) 0 + std::filesystem::__cxx11::path (0x0x7fec3ae3a420) 0 + +Class std::filesystem::__cxx11::path::iterator + size=24 align=8 + base size=17 base align=8 +std::filesystem::__cxx11::path::iterator (0x0x7fec3ae636c0) 0 + +Class std::filesystem::file_status + size=8 align=4 + base size=8 base align=4 +std::filesystem::file_status (0x0x7fec3ab14ea0) 0 + +Class std::filesystem::__cxx11::directory_entry + size=48 align=8 + base size=41 base align=8 +std::filesystem::__cxx11::directory_entry (0x0x7fec3ab633c0) 0 + +Class std::filesystem::__cxx11::__directory_iterator_proxy + size=48 align=8 + base size=48 base align=8 +std::filesystem::__cxx11::__directory_iterator_proxy (0x0x7fec3aba3a80) 0 + +Class std::filesystem::__cxx11::directory_iterator + size=16 align=8 + base size=16 base align=8 +std::filesystem::__cxx11::directory_iterator (0x0x7fec3abd5240) 0 + +Class std::filesystem::__cxx11::recursive_directory_iterator + size=16 align=8 + base size=16 base align=8 +std::filesystem::__cxx11::recursive_directory_iterator (0x0x7fec3ac4d360) 0 + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7fec3a91f4e0) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7fec3a920a90) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7fec3a920af8) 0 + primary-for QFile (0x0x7fec3a920a90) + QIODevice (0x0x7fec3ab214d0) 0 + primary-for QFileDevice (0x0x7fec3a920af8) + QObject (0x0x7fec3a91f420) 0 + primary-for QIODevice (0x0x7fec3ab214d0) + QIODeviceBase (0x0x7fec3a91f480) 0 empty + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7fec3a91fae0) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7fec3a9fd480) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7fec3aac9ba0) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7fec3a756060) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7fec3a7f77e0) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7fec3a7f7a20) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7fec3a7bdc98) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7fec3a7f79c0) 0 + primary-for QFileSelector (0x0x7fec3a7bdc98) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7fec3a7f7c00) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7fec3a7bdd00) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7fec3a7f7ba0) 0 + primary-for QFileSystemWatcher (0x0x7fec3a7bdd00) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7fec3a82e3c0) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7fec3a7bdd68) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7fec3a82e360) 0 + primary-for QFutureWatcherBase (0x0x7fec3a7bdd68) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7fec3a82e900) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QIdentityProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QIdentityProxyModel::insertRows +272 (int (*)(...))QIdentityProxyModel::insertColumns +280 (int (*)(...))QIdentityProxyModel::removeRows +288 (int (*)(...))QIdentityProxyModel::removeColumns +296 (int (*)(...))QIdentityProxyModel::moveRows +304 (int (*)(...))QIdentityProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QIdentityProxyModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QIdentityProxyModel::setSourceModel +416 (int (*)(...))QIdentityProxyModel::mapToSource +424 (int (*)(...))QIdentityProxyModel::mapFromSource +432 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +440 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7fec3a7bdf70) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7fec3a847000) 0 + primary-for QIdentityProxyModel (0x0x7fec3a7bdf70) + QAbstractItemModel (0x0x7fec3a847068) 0 + primary-for QAbstractProxyModel (0x0x7fec3a847000) + QObject (0x0x7fec3a82e8a0) 0 + primary-for QAbstractItemModel (0x0x7fec3a847068) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7fec3a82ea80) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7fec3a8b96c0) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7fec3a8b3e38) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7fec3a8b9660) 0 + primary-for QItemSelectionModel (0x0x7fec3a8b3e38) + +Class QItemSelection + size=24 align=8 + base size=24 base align=8 +QItemSelection (0x0x7fec3a519340) 0 + QList (0x0x7fec3a5193a8) 0 + QListSpecialMethods (0x0x7fec3a519410) 0 empty + QListSpecialMethodsBase (0x0x7fec3a536180) 0 empty + +Class QJsonValue + size=24 align=8 + base size=24 base align=8 +QJsonValue (0x0x7fec3a6072a0) 0 + +Class QJsonValueRef + size=16 align=8 + base size=16 base align=8 +QJsonValueRef (0x0x7fec3a607780) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::iterator (0x0x7fec3a66dae0) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::const_iterator (0x0x7fec3a66db40) 0 + +Class QJsonArray + size=8 align=8 + base size=8 base align=8 +QJsonArray (0x0x7fec3a66da80) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7fec3a31a540) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7fec3a31a5a0) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::iterator (0x0x7fec3a4b0ae0) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::const_iterator (0x0x7fec3a4b0b40) 0 + +Class QJsonObject + size=8 align=8 + base size=8 base align=8 +QJsonObject (0x0x7fec3a4b0a80) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7fec3a167660) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=24 align=8 + base size=24 base align=8 +QLibrary (0x0x7fec3a163c98) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7fec3a167600) 0 + primary-for QLibrary (0x0x7fec3a163c98) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7fec3a167d20) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7fec3a167cc0) 0 + +Class QTypeRevision + size=2 align=1 + base size=2 base align=1 +QTypeRevision (0x0x7fec3a2894e0) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7fec39f17d20) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7fec39f17de0) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7fec39fa14e0) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7fec39ffbe40) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7fec3a063480) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7fec3a0b8c60) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7fec39cfc420) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7fec39d47d20) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7fec39dd8a80) 0 + +Class QMetaMethod::Data + size=8 align=8 + base size=8 base align=8 +QMetaMethod::Data (0x0x7fec39dd8b40) 0 + +Class QMetaMethod + size=16 align=8 + base size=16 base align=8 +QMetaMethod (0x0x7fec39dd8ae0) 0 + +Class QMetaEnum::Data + size=8 align=8 + base size=8 base align=8 +QMetaEnum::Data (0x0x7fec39e55d80) 0 + +Class QMetaEnum + size=16 align=8 + base size=16 base align=8 +QMetaEnum (0x0x7fec39e55d20) 0 + +Class QMetaProperty::Data + size=8 align=8 + base size=8 base align=8 +QMetaProperty::Data (0x0x7fec39e98ae0) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7fec39e98a80) 0 + +Class QMetaClassInfo::Data + size=8 align=8 + base size=8 base align=8 +QMetaClassInfo::Data (0x0x7fec39ec3180) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=16 base align=8 +QMetaClassInfo (0x0x7fec39ec3120) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7fec39ae1d20) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7fec39af17b8) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7fec39ae1f60) 0 + primary-for QMimeData (0x0x7fec39af17b8) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7fec39b09120) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7fec39b74c60) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7fec39b74d20) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=40 align=8 + base size=40 base align=8 +QObjectCleanupHandler (0x0x7fec39b82680) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7fec39b74cc0) 0 + primary-for QObjectCleanupHandler (0x0x7fec39b82680) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7fec39b74de0) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7fec39bcfc00) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7fec39be40d0) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7fec39be4138) 0 + primary-for QParallelAnimationGroup (0x0x7fec39be40d0) + QAbstractAnimation (0x0x7fec39be41a0) 0 + primary-for QAnimationGroup (0x0x7fec39be4138) + QObject (0x0x7fec39bcfba0) 0 + primary-for QAbstractAnimation (0x0x7fec39be41a0) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7fec39bcfde0) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7fec39be4208) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7fec39be4270) 0 + primary-for QPauseAnimation (0x0x7fec39be4208) + QObject (0x0x7fec39bcfd80) 0 + primary-for QAbstractAnimation (0x0x7fec39be4270) + +Class QPluginMetaData + size=16 align=8 + base size=16 base align=8 +QPluginMetaData (0x0x7fec39c03000) 0 + +Class QStaticPlugin + size=24 align=8 + base size=24 base align=8 +QStaticPlugin (0x0x7fec39c03060) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7fec39c23a80) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7fec39c24e38) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7fec39c23a20) 0 + primary-for QPluginLoader (0x0x7fec39c24e38) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7fec39c23b40) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7fec39caf3c0) 0 empty + +Class QProcess::Use_setChildProcessModifier_Instead + size=1 align=1 + base size=0 base align=1 +QProcess::Use_setChildProcessModifier_Instead (0x0x7fec39caf420) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 32 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QProcess::writeData +248 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7fec39ca1f08) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7fec39bdbb60) 0 + primary-for QProcess (0x0x7fec39ca1f08) + QObject (0x0x7fec39caf300) 0 + primary-for QIODevice (0x0x7fec39bdbb60) + QIODeviceBase (0x0x7fec39caf360) 0 empty + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7fec3baf0780) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7fec3ad4cd00) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7fec3ad4cd68) 0 + primary-for QVariantAnimation (0x0x7fec3ad4cd00) + QObject (0x0x7fec3baf0720) 0 + primary-for QAbstractAnimation (0x0x7fec3ad4cd68) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7fec3bd2d120) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7fec3cbad548) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7fec3cbad5b0) 0 + primary-for QPropertyAnimation (0x0x7fec3cbad548) + QAbstractAnimation (0x0x7fec3cbada90) 0 + primary-for QVariantAnimation (0x0x7fec3cbad5b0) + QObject (0x0x7fec3bd2d0c0) 0 + primary-for QAbstractAnimation (0x0x7fec3cbada90) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7fec4513f060) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7fec425f71e0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7fec425c2900) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7fec3cea5d80) 0 + +Class QRandomGenerator::InitialRandomData + size=16 align=8 + base size=16 base align=8 +QRandomGenerator::InitialRandomData (0x0x7fec3a897a80) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7fec3a8b91e0) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7fec3a897a20) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7fec44d56750) 0 + QRandomGenerator (0x0x7fec39fa1f60) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7fec39d29c00) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7fec39d95f60) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7fec39e78780) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7fec39ec3cc0) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7fec3d4166c0) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7fec44957180) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7fec4490ff60) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7fec434caae0) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7fec434cade0) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QSaveFile::writeData +248 (int (*)(...))QSaveFile::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7fec44fde7b8) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7fec44fde820) 0 + primary-for QSaveFile (0x0x7fec44fde7b8) + QIODevice (0x0x7fec3d7f64d0) 0 + primary-for QFileDevice (0x0x7fec44fde820) + QObject (0x0x7fec434cad20) 0 + primary-for QIODevice (0x0x7fec3d7f64d0) + QIODeviceBase (0x0x7fec434cad80) 0 empty + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7fec42a02180) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7fec42a2e960) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7fec424276c0) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7fec45048618) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7fec45048680) 0 + primary-for QSequentialAnimationGroup (0x0x7fec45048618) + QAbstractAnimation (0x0x7fec450486e8) 0 + primary-for QAnimationGroup (0x0x7fec45048680) + QObject (0x0x7fec42427660) 0 + primary-for QAbstractAnimation (0x0x7fec450486e8) + +Class QSequentialIterator + size=16 align=8 + base size=16 base align=8 +QSequentialIterator (0x0x7fec45048750) 0 + QIterator (0x0x7fec45048888) 0 + QBaseIterator (0x0x7fec42427a20) 0 + +Class QSequentialConstIterator + size=16 align=8 + base size=16 base align=8 +QSequentialConstIterator (0x0x7fec45048958) 0 + QConstIterator (0x0x7fec45048a28) 0 + QBaseIterator (0x0x7fec42427960) 0 + +Class QSequentialIterable + size=24 align=8 + base size=24 base align=8 +QSequentialIterable (0x0x7fec45048a90) 0 + QIterable (0x0x7fec421c64e0) 0 + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7fec3f998ae0) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7fec44e08000) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7fec3f998a80) 0 + primary-for QSettings (0x0x7fec44e08000) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7fec3f998f00) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7fec44e08068) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7fec3f998ea0) 0 + primary-for QSharedMemory (0x0x7fec44e08068) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7fec3ebdf120) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7fec44e080d0) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7fec3ebdf0c0) 0 + primary-for QSignalMapper (0x0x7fec44e080d0) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7fec39384b40) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7fec44e14a28) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7fec39384ae0) 0 + primary-for QSocketNotifier (0x0x7fec44e14a28) + +Class QSocketDescriptor + size=4 align=4 + base size=4 base align=4 +QSocketDescriptor (0x0x7fec39384cc0) 0 + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7fec393b0660) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QSortFilterProxyModel::mimeTypes +224 (int (*)(...))QSortFilterProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QSortFilterProxyModel::dropMimeData +248 (int (*)(...))QSortFilterProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QSortFilterProxyModel::insertRows +272 (int (*)(...))QSortFilterProxyModel::insertColumns +280 (int (*)(...))QSortFilterProxyModel::removeRows +288 (int (*)(...))QSortFilterProxyModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSortFilterProxyModel::fetchMore +320 (int (*)(...))QSortFilterProxyModel::canFetchMore +328 (int (*)(...))QSortFilterProxyModel::flags +336 (int (*)(...))QSortFilterProxyModel::sort +344 (int (*)(...))QSortFilterProxyModel::buddy +352 (int (*)(...))QSortFilterProxyModel::match +360 (int (*)(...))QSortFilterProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSortFilterProxyModel::setSourceModel +416 (int (*)(...))QSortFilterProxyModel::mapToSource +424 (int (*)(...))QSortFilterProxyModel::mapFromSource +432 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +440 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +448 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +456 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +464 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7fec44e1b680) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7fec44e1b6e8) 0 + primary-for QSortFilterProxyModel (0x0x7fec44e1b680) + QAbstractItemModel (0x0x7fec44e1b7b8) 0 + primary-for QAbstractProxyModel (0x0x7fec44e1b6e8) + QObject (0x0x7fec393b0600) 0 + primary-for QAbstractItemModel (0x0x7fec44e1b7b8) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7fec393b0a20) 0 empty + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7fec393dd420) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7fec3940ec60) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7fec3944d4e0) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QStringListModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QStringListModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStringListModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QStringListModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QStringListModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStringListModel::flags +336 (int (*)(...))QStringListModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStringListModel + size=40 align=8 + base size=40 base align=8 +QStringListModel (0x0x7fec44e2f3a8) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7fec44e2f410) 0 + primary-for QStringListModel (0x0x7fec44e2f3a8) + QAbstractItemModel (0x0x7fec44e2f478) 0 + primary-for QAbstractListModel (0x0x7fec44e2f410) + QObject (0x0x7fec3944d480) 0 + primary-for QAbstractItemModel (0x0x7fec44e2f478) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7fec3944d5a0) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7fec3944d6c0) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7fec3944d840) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QTemporaryFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7fec44e2f4e0) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7fec44e2f548) 0 + primary-for QTemporaryFile (0x0x7fec44e2f4e0) + QFileDevice (0x0x7fec44e2f618) 0 + primary-for QFile (0x0x7fec44e2f548) + QIODevice (0x0x7fec39438af0) 0 + primary-for QFileDevice (0x0x7fec44e2f618) + QObject (0x0x7fec3944d780) 0 + primary-for QIODevice (0x0x7fec39438af0) + QIODeviceBase (0x0x7fec3944d7e0) 0 empty + +Class QTextBoundaryFinder + size=72 align=8 + base size=72 base align=8 +QTextBoundaryFinder (0x0x7fec3944da80) 0 + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7fec39487120) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7fec394877e0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7fec44e2f7b8) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7fec39487780) 0 + primary-for QTimeLine (0x0x7fec44e2f7b8) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7fec394879c0) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=16 align=8 + base size=16 base align=8 +QTimer (0x0x7fec44e2f820) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7fec39487960) 0 + primary-for QTimer (0x0x7fec44e2f820) + +Class QTimeZone::OffsetData + size=48 align=8 + base size=44 base align=8 +QTimeZone::OffsetData (0x0x7fec394aa360) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7fec394aa300) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7fec390dc3c0) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7fec44e40820) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7fec390dc360) 0 + primary-for QTranslator (0x0x7fec44e40820) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7fec390dc5a0) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QTransposeProxyModel::insertRows +272 (int (*)(...))QTransposeProxyModel::insertColumns +280 (int (*)(...))QTransposeProxyModel::removeRows +288 (int (*)(...))QTransposeProxyModel::removeColumns +296 (int (*)(...))QTransposeProxyModel::moveRows +304 (int (*)(...))QTransposeProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QTransposeProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QTransposeProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QTransposeProxyModel::setSourceModel +416 (int (*)(...))QTransposeProxyModel::mapToSource +424 (int (*)(...))QTransposeProxyModel::mapFromSource +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7fec44e40888) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7fec44e408f0) 0 + primary-for QTransposeProxyModel (0x0x7fec44e40888) + QAbstractItemModel (0x0x7fec44e40958) 0 + primary-for QAbstractProxyModel (0x0x7fec44e408f0) + QObject (0x0x7fec390dc540) 0 + primary-for QAbstractItemModel (0x0x7fec44e40958) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7fec390dc720) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7fec3912cf60) 0 + +Class QtPrivate::QXmlString + size=24 align=8 + base size=24 base align=8 +QtPrivate::QXmlString (0x0x7fec391380c0) 0 + +Class QXmlStreamAttribute + size=104 align=8 + base size=97 base align=8 +QXmlStreamAttribute (0x0x7fec39145f00) 0 + +Class QXmlStreamAttributes + size=24 align=8 + base size=24 base align=8 +QXmlStreamAttributes (0x0x7fec44e5b5b0) 0 + QList (0x0x7fec44e5b618) 0 + QListSpecialMethods (0x0x7fec44e5b680) 0 empty + QListSpecialMethodsBase (0x0x7fec3915ff00) 0 empty + +Class QXmlStreamNamespaceDeclaration + size=48 align=8 + base size=48 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7fec39191840) 0 + +Class QXmlStreamNotationDeclaration + size=72 align=8 + base size=72 base align=8 +QXmlStreamNotationDeclaration (0x0x7fec3919df00) 0 + +Class QXmlStreamEntityDeclaration + size=120 align=8 + base size=120 base align=8 +QXmlStreamEntityDeclaration (0x0x7fec391b45a0) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7fec391c1d20) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7fec391c1d80) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7fec391e0360) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=16 align=8 + base size=10 base align=8 +QPaintDevice (0x0x7fec391e0540) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16) + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7fec39204000) 0 + +Class QColor::CT + size=10 align=2 + base size=10 base align=2 +QColor::CT (0x0x7fec3922ccc0) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7fec3922cc60) 0 + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7fec39269d20) 0 + +Class QPolygon + size=24 align=8 + base size=24 base align=8 +QPolygon (0x0x7fec44b65208) 0 + QList (0x0x7fec44b65270) 0 + QListSpecialMethods (0x0x7fec44b651a0) 0 empty + QListSpecialMethodsBase (0x0x7fec3929ea20) 0 empty + +Class QPolygonF + size=24 align=8 + base size=24 base align=8 +QPolygonF (0x0x7fec44b6b548) 0 + QList (0x0x7fec44b6b5b0) 0 + QListSpecialMethods (0x0x7fec44b6b618) 0 empty + QListSpecialMethodsBase (0x0x7fec38ef5660) 0 empty + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7fec38f3be40) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7fec38f3bde0) 0 + +Class QTransform::Affine + size=8 align=8 + base size=8 base align=8 +QTransform::Affine (0x0x7fec38f7a3c0) 0 + +Class QTransform + size=80 align=8 + base size=74 base align=8 +QTransform (0x0x7fec38f7a360) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=24 align=8 + base size=24 base align=8 +QImage (0x0x7fec44b84820) 0 + vptr=((& QImage::_ZTV6QImage) + 16) + QPaintDevice (0x0x7fec38f9df60) 0 + primary-for QImage (0x0x7fec44b84820) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=24 align=8 + base size=24 base align=8 +QPixmap (0x0x7fec44b8dc98) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16) + QPaintDevice (0x0x7fec38fef780) 0 + primary-for QPixmap (0x0x7fec44b8dc98) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7fec390283c0) 0 + +Vtable for QAbstractFileIconProvider +QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractFileIconProvider) +16 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +24 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +32 (int (*)(...))QAbstractFileIconProvider::icon +40 (int (*)(...))QAbstractFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QAbstractFileIconProvider + size=16 align=8 + base size=16 base align=8 +QAbstractFileIconProvider (0x0x7fec39051720) 0 + vptr=((& QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider) + 16) + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7fec39051cc0) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7fec39088a80) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7fec390a8a20) 0 + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7fec38d16540) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7fec3e952138) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16) + QObject (0x0x7fec38d164e0) 0 + primary-for QScreen (0x0x7fec3e952138) + +Class QInputDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDevice::QPrivateSignal (0x0x7fec38d16780) 0 empty + +Vtable for QInputDevice +QInputDevice::_ZTV12QInputDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDevice) +16 (int (*)(...))QInputDevice::metaObject +24 (int (*)(...))QInputDevice::qt_metacast +32 (int (*)(...))QInputDevice::qt_metacall +40 (int (*)(...))QInputDevice::~QInputDevice +48 (int (*)(...))QInputDevice::~QInputDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputDevice + size=16 align=8 + base size=16 base align=8 +QInputDevice (0x0x7fec3e9521a0) 0 + vptr=((& QInputDevice::_ZTV12QInputDevice) + 16) + QObject (0x0x7fec38d16720) 0 + primary-for QInputDevice (0x0x7fec3e9521a0) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7fec38d47240) 0 + +Class QPointingDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPointingDevice::QPrivateSignal (0x0x7fec38d5cba0) 0 empty + +Vtable for QPointingDevice +QPointingDevice::_ZTV15QPointingDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPointingDevice) +16 (int (*)(...))QPointingDevice::metaObject +24 (int (*)(...))QPointingDevice::qt_metacast +32 (int (*)(...))QPointingDevice::qt_metacall +40 (int (*)(...))QPointingDevice::~QPointingDevice +48 (int (*)(...))QPointingDevice::~QPointingDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPointingDevice + size=16 align=8 + base size=16 base align=8 +QPointingDevice (0x0x7fec3d9690d0) 0 + vptr=((& QPointingDevice::_ZTV15QPointingDevice) + 16) + QInputDevice (0x0x7fec3d969138) 0 + primary-for QPointingDevice (0x0x7fec3d9690d0) + QObject (0x0x7fec38d5cb40) 0 + primary-for QInputDevice (0x0x7fec3d969138) + +Class QEventPoint + size=8 align=8 + base size=8 base align=8 +QEventPoint (0x0x7fec38d78300) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7fec38db8240) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QInputEvent + size=40 align=8 + base size=40 base align=8 +QInputEvent (0x0x7fec3acd06e8) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16) + QEvent (0x0x7fec38de6240) 0 + primary-for QInputEvent (0x0x7fec3acd06e8) + +Vtable for QPointerEvent +QPointerEvent::_ZTV13QPointerEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPointerEvent) +16 (int (*)(...))QPointerEvent::~QPointerEvent +24 (int (*)(...))QPointerEvent::~QPointerEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QPointerEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QPointerEvent::isBeginEvent +64 (int (*)(...))QPointerEvent::isUpdateEvent +72 (int (*)(...))QPointerEvent::isEndEvent + +Class QPointerEvent + size=64 align=8 + base size=64 base align=8 +QPointerEvent (0x0x7fec3acd07b8) 0 + vptr=((& QPointerEvent::_ZTV13QPointerEvent) + 16) + QInputEvent (0x0x7fec3acd0820) 0 + primary-for QPointerEvent (0x0x7fec3acd07b8) + QEvent (0x0x7fec38de6720) 0 + primary-for QInputEvent (0x0x7fec3acd0820) + +Vtable for QSinglePointEvent +QSinglePointEvent::_ZTV17QSinglePointEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSinglePointEvent) +16 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +24 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QSinglePointEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QSinglePointEvent + size=80 align=8 + base size=80 base align=8 +QSinglePointEvent (0x0x7fec3ae4bea0) 0 + vptr=((& QSinglePointEvent::_ZTV17QSinglePointEvent) + 16) + QPointerEvent (0x0x7fec3ae8f000) 0 + primary-for QSinglePointEvent (0x0x7fec3ae4bea0) + QInputEvent (0x0x7fec3ae8f1a0) 0 + primary-for QPointerEvent (0x0x7fec3ae8f000) + QEvent (0x0x7fec38e25600) 0 + primary-for QInputEvent (0x0x7fec3ae8f1a0) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QEnterEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QEnterEvent + size=80 align=8 + base size=80 base align=8 +QEnterEvent (0x0x7fec3ae8f478) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16) + QSinglePointEvent (0x0x7fec3ae8f4e0) 0 + primary-for QEnterEvent (0x0x7fec3ae8f478) + QPointerEvent (0x0x7fec3ae8f5b0) 0 + primary-for QSinglePointEvent (0x0x7fec3ae8f4e0) + QInputEvent (0x0x7fec3ab18958) 0 + primary-for QPointerEvent (0x0x7fec3ae8f5b0) + QEvent (0x0x7fec38e25ae0) 0 + primary-for QInputEvent (0x0x7fec3ab18958) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QMouseEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QMouseEvent + size=80 align=8 + base size=80 base align=8 +QMouseEvent (0x0x7fec3ab189c0) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16) + QSinglePointEvent (0x0x7fec3ab18af8) 0 + primary-for QMouseEvent (0x0x7fec3ab189c0) + QPointerEvent (0x0x7fec3ab18c98) 0 + primary-for QSinglePointEvent (0x0x7fec3ab18af8) + QInputEvent (0x0x7fec3abe2680) 0 + primary-for QPointerEvent (0x0x7fec3ab18c98) + QEvent (0x0x7fec38e3d2a0) 0 + primary-for QInputEvent (0x0x7fec3abe2680) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QHoverEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QHoverEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QHoverEvent + size=96 align=8 + base size=96 base align=8 +QHoverEvent (0x0x7fec3abe26e8) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16) + QSinglePointEvent (0x0x7fec3a9914e0) 0 + primary-for QHoverEvent (0x0x7fec3abe26e8) + QPointerEvent (0x0x7fec3a991548) 0 + primary-for QSinglePointEvent (0x0x7fec3a9914e0) + QInputEvent (0x0x7fec3a991680) 0 + primary-for QPointerEvent (0x0x7fec3a991548) + QEvent (0x0x7fec38e3d840) 0 + primary-for QInputEvent (0x0x7fec3a991680) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QWheelEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QWheelEvent::isBeginEvent +64 (int (*)(...))QWheelEvent::isUpdateEvent +72 (int (*)(...))QWheelEvent::isEndEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7fec3a991820) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16) + QSinglePointEvent (0x0x7fec3a9918f0) 0 + primary-for QWheelEvent (0x0x7fec3a991820) + QPointerEvent (0x0x7fec3a991958) 0 + primary-for QSinglePointEvent (0x0x7fec3a9918f0) + QInputEvent (0x0x7fec3a991a90) 0 + primary-for QPointerEvent (0x0x7fec3a991958) + QEvent (0x0x7fec38e3dc60) 0 + primary-for QInputEvent (0x0x7fec3a991a90) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTabletEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QTabletEvent + size=96 align=8 + base size=96 base align=8 +QTabletEvent (0x0x7fec3a991c30) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16) + QSinglePointEvent (0x0x7fec3a991e38) 0 + primary-for QTabletEvent (0x0x7fec3a991c30) + QPointerEvent (0x0x7fec3a99d0d0) 0 + primary-for QSinglePointEvent (0x0x7fec3a991e38) + QInputEvent (0x0x7fec3a99d5b0) 0 + primary-for QPointerEvent (0x0x7fec3a99d0d0) + QEvent (0x0x7fec38e5e180) 0 + primary-for QInputEvent (0x0x7fec3a99d5b0) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QNativeGestureEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7fec3a99d618) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16) + QSinglePointEvent (0x0x7fec3a99d958) 0 + primary-for QNativeGestureEvent (0x0x7fec3a99d618) + QPointerEvent (0x0x7fec3a99d9c0) 0 + primary-for QSinglePointEvent (0x0x7fec3a99d958) + QInputEvent (0x0x7fec3a778270) 0 + primary-for QPointerEvent (0x0x7fec3a99d9c0) + QEvent (0x0x7fec38e5ea20) 0 + primary-for QInputEvent (0x0x7fec3a778270) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QKeyEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QKeyEvent + size=88 align=8 + base size=82 base align=8 +QKeyEvent (0x0x7fec3a7782d8) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16) + QInputEvent (0x0x7fec3a7786e8) 0 + primary-for QKeyEvent (0x0x7fec3a7782d8) + QEvent (0x0x7fec38e78000) 0 + primary-for QInputEvent (0x0x7fec3a7786e8) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFocusEvent::clone + +Class QFocusEvent + size=24 align=8 + base size=20 base align=8 +QFocusEvent (0x0x7fec3a778750) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16) + QEvent (0x0x7fec38e78600) 0 + primary-for QFocusEvent (0x0x7fec3a778750) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPaintEvent::clone + +Class QPaintEvent + size=48 align=8 + base size=41 base align=8 +QPaintEvent (0x0x7fec3a79a2d8) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16) + QEvent (0x0x7fec38e78960) 0 + primary-for QPaintEvent (0x0x7fec3a79a2d8) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QMoveEvent::clone + +Class QMoveEvent + size=32 align=8 + base size=32 base align=8 +QMoveEvent (0x0x7fec3a79a340) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16) + QEvent (0x0x7fec38e78c60) 0 + primary-for QMoveEvent (0x0x7fec3a79a340) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QExposeEvent::clone + +Class QExposeEvent + size=24 align=8 + base size=24 base align=8 +QExposeEvent (0x0x7fec3a79a5b0) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16) + QEvent (0x0x7fec38e96000) 0 + primary-for QExposeEvent (0x0x7fec3a79a5b0) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPlatformSurfaceEvent::clone + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=20 base align=8 +QPlatformSurfaceEvent (0x0x7fec3a79a618) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16) + QEvent (0x0x7fec38e962a0) 0 + primary-for QPlatformSurfaceEvent (0x0x7fec3a79a618) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QResizeEvent::clone + +Class QResizeEvent + size=32 align=8 + base size=32 base align=8 +QResizeEvent (0x0x7fec3a7bd000) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16) + QEvent (0x0x7fec38e965a0) 0 + primary-for QResizeEvent (0x0x7fec3a7bd000) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QCloseEvent + size=16 align=8 + base size=16 base align=8 +QCloseEvent (0x0x7fec3a7bd068) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16) + QEvent (0x0x7fec38e96900) 0 + primary-for QCloseEvent (0x0x7fec3a7bd068) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QIconDragEvent + size=16 align=8 + base size=16 base align=8 +QIconDragEvent (0x0x7fec3a7bd9c0) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16) + QEvent (0x0x7fec38e96960) 0 + primary-for QIconDragEvent (0x0x7fec3a7bd9c0) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QShowEvent + size=16 align=8 + base size=16 base align=8 +QShowEvent (0x0x7fec3a7bda28) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16) + QEvent (0x0x7fec38e969c0) 0 + primary-for QShowEvent (0x0x7fec3a7bda28) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QHideEvent + size=16 align=8 + base size=16 base align=8 +QHideEvent (0x0x7fec3a847270) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16) + QEvent (0x0x7fec38e96a20) 0 + primary-for QHideEvent (0x0x7fec3a847270) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QContextMenuEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QContextMenuEvent + size=64 align=8 + base size=57 base align=8 +QContextMenuEvent (0x0x7fec3a8472d8) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16) + QInputEvent (0x0x7fec3a895340) 0 + primary-for QContextMenuEvent (0x0x7fec3a8472d8) + QEvent (0x0x7fec38e96a80) 0 + primary-for QInputEvent (0x0x7fec3a895340) + +Class QInputMethodEvent::Attribute + size=48 align=8 + base size=48 base align=8 +QInputMethodEvent::Attribute (0x0x7fec38eb9060) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodEvent::clone + +Class QInputMethodEvent + size=96 align=8 + base size=96 base align=8 +QInputMethodEvent (0x0x7fec3a8953a8) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16) + QEvent (0x0x7fec38eb9000) 0 + primary-for QInputMethodEvent (0x0x7fec3a8953a8) + +Class QInputMethodQueryEvent::QueryPair + size=40 align=8 + base size=40 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7fec38b01840) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodQueryEvent::clone + +Class QInputMethodQueryEvent + size=48 align=8 + base size=48 base align=8 +QInputMethodQueryEvent (0x0x7fec39ff25b0) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16) + QEvent (0x0x7fec38b017e0) 0 + primary-for QInputMethodQueryEvent (0x0x7fec39ff25b0) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDropEvent::clone + +Class QDropEvent + size=64 align=8 + base size=64 base align=8 +QDropEvent (0x0x7fec38b49478) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16) + QEvent (0x0x7fec38b44960) 0 + primary-for QDropEvent (0x0x7fec38b49478) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragMoveEvent + size=80 align=8 + base size=80 base align=8 +QDragMoveEvent (0x0x7fec38b494e0) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16) + QDropEvent (0x0x7fec38b49548) 0 + primary-for QDragMoveEvent (0x0x7fec38b494e0) + QEvent (0x0x7fec38b570c0) 0 + primary-for QDropEvent (0x0x7fec38b49548) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragEnterEvent + size=80 align=8 + base size=80 base align=8 +QDragEnterEvent (0x0x7fec38b495b0) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16) + QDragMoveEvent (0x0x7fec38b49618) 0 + primary-for QDragEnterEvent (0x0x7fec38b495b0) + QDropEvent (0x0x7fec38b49680) 0 + primary-for QDragMoveEvent (0x0x7fec38b49618) + QEvent (0x0x7fec38b57540) 0 + primary-for QDropEvent (0x0x7fec38b49680) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QDragLeaveEvent + size=16 align=8 + base size=16 base align=8 +QDragLeaveEvent (0x0x7fec38b496e8) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16) + QEvent (0x0x7fec38b575a0) 0 + primary-for QDragLeaveEvent (0x0x7fec38b496e8) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QHelpEvent::clone + +Class QHelpEvent + size=32 align=8 + base size=32 base align=8 +QHelpEvent (0x0x7fec38b49750) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16) + QEvent (0x0x7fec38b57600) 0 + primary-for QHelpEvent (0x0x7fec38b49750) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QStatusTipEvent::clone + +Class QStatusTipEvent + size=40 align=8 + base size=40 base align=8 +QStatusTipEvent (0x0x7fec38b497b8) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16) + QEvent (0x0x7fec38b57ae0) 0 + primary-for QStatusTipEvent (0x0x7fec38b497b8) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWhatsThisClickedEvent::clone + +Class QWhatsThisClickedEvent + size=40 align=8 + base size=40 base align=8 +QWhatsThisClickedEvent (0x0x7fec38b49820) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16) + QEvent (0x0x7fec38b57d80) 0 + primary-for QWhatsThisClickedEvent (0x0x7fec38b49820) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QActionEvent::clone + +Class QActionEvent + size=32 align=8 + base size=32 base align=8 +QActionEvent (0x0x7fec38b49888) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16) + QEvent (0x0x7fec38b76060) 0 + primary-for QActionEvent (0x0x7fec38b49888) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFileOpenEvent::clone + +Class QFileOpenEvent + size=48 align=8 + base size=48 base align=8 +QFileOpenEvent (0x0x7fec38b498f0) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16) + QEvent (0x0x7fec38b763c0) 0 + primary-for QFileOpenEvent (0x0x7fec38b498f0) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QToolBarChangeEvent::clone + +Class QToolBarChangeEvent + size=24 align=8 + base size=17 base align=8 +QToolBarChangeEvent (0x0x7fec38b49958) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16) + QEvent (0x0x7fec38b766c0) 0 + primary-for QToolBarChangeEvent (0x0x7fec38b49958) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QShortcutEvent::clone + +Class QShortcutEvent + size=32 align=8 + base size=29 base align=8 +QShortcutEvent (0x0x7fec38b499c0) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16) + QEvent (0x0x7fec38b769c0) 0 + primary-for QShortcutEvent (0x0x7fec38b499c0) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWindowStateChangeEvent::clone + +Class QWindowStateChangeEvent + size=24 align=8 + base size=21 base align=8 +QWindowStateChangeEvent (0x0x7fec38b49a28) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16) + QEvent (0x0x7fec38b76d20) 0 + primary-for QWindowStateChangeEvent (0x0x7fec38b49a28) + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTouchEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QTouchEvent::isBeginEvent +64 (int (*)(...))QTouchEvent::isUpdateEvent +72 (int (*)(...))QTouchEvent::isEndEvent + +Class QTouchEvent + size=80 align=8 + base size=79 base align=8 +QTouchEvent (0x0x7fec38b49a90) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16) + QPointerEvent (0x0x7fec38b49af8) 0 + primary-for QTouchEvent (0x0x7fec38b49a90) + QInputEvent (0x0x7fec38b49b60) 0 + primary-for QPointerEvent (0x0x7fec38b49af8) + QEvent (0x0x7fec38b92060) 0 + primary-for QInputEvent (0x0x7fec38b49b60) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollPrepareEvent::clone + +Class QScrollPrepareEvent + size=96 align=8 + base size=96 base align=8 +QScrollPrepareEvent (0x0x7fec38b49bc8) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16) + QEvent (0x0x7fec38b923c0) 0 + primary-for QScrollPrepareEvent (0x0x7fec38b49bc8) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollEvent::clone + +Class QScrollEvent + size=56 align=8 + base size=52 base align=8 +QScrollEvent (0x0x7fec38b49c30) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16) + QEvent (0x0x7fec38b927e0) 0 + primary-for QScrollEvent (0x0x7fec38b49c30) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScreenOrientationChangeEvent::clone + +Class QScreenOrientationChangeEvent + size=32 align=8 + base size=28 base align=8 +QScreenOrientationChangeEvent (0x0x7fec38b49c98) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16) + QEvent (0x0x7fec38b92ba0) 0 + primary-for QScreenOrientationChangeEvent (0x0x7fec38b49c98) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QApplicationStateChangeEvent::clone + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=20 base align=8 +QApplicationStateChangeEvent (0x0x7fec38b49d00) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16) + QEvent (0x0x7fec38b92f00) 0 + primary-for QApplicationStateChangeEvent (0x0x7fec38b49d00) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7fec38bb3240) 0 + +Class QFontDatabase + size=1 align=1 + base size=0 base align=1 +QFontDatabase (0x0x7fec38bf93c0) 0 empty + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7fec38bf95a0) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7fec38c45660) 0 + +Class QBrushDataPointerDeleter + size=1 align=1 + base size=0 base align=1 +QBrushDataPointerDeleter (0x0x7fec38c6de40) 0 empty + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7fec38c6dea0) 0 + +Class QBrushData + size=104 align=8 + base size=104 base align=8 +QBrushData (0x0x7fec38989900) 0 + +Class QGradient::QGradientData + size=48 align=8 + base size=48 base align=8 +QGradient::QGradientData (0x0x7fec38989b40) 0 + +Class QGradient + size=88 align=8 + base size=88 base align=8 +QGradient (0x0x7fec38989ae0) 0 + +Class QLinearGradient + size=88 align=8 + base size=88 base align=8 +QLinearGradient (0x0x7fec3898ed00) 0 + QGradient (0x0x7fec389b1a20) 0 + +Class QRadialGradient + size=88 align=8 + base size=88 base align=8 +QRadialGradient (0x0x7fec3898ed68) 0 + QGradient (0x0x7fec389b1b40) 0 + +Class QConicalGradient + size=88 align=8 + base size=88 base align=8 +QConicalGradient (0x0x7fec3898edd0) 0 + QGradient (0x0x7fec389b1c60) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7fec389b1d20) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7fec38a39de0) 0 + +Class QTextOption + size=24 align=8 + base size=24 base align=8 +QTextOption (0x0x7fec38a39d80) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7fec38a821e0) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7fec38a9aea0) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7fec38737888) 0 + QTextFormat (0x0x7fec3873b660) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7fec3879b618) 0 + QTextFormat (0x0x7fec38797b40) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7fec387cc270) 0 + QTextFormat (0x0x7fec387d00c0) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7fec387e7e38) 0 + QTextCharFormat (0x0x7fec387e7ea0) 0 + QTextFormat (0x0x7fec387e5f60) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7fec3880eaf8) 0 + QTextFormat (0x0x7fec3880ade0) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7fec3883f750) 0 + QTextFrameFormat (0x0x7fec3883f7b8) 0 + QTextFormat (0x0x7fec38847240) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7fec3886a410) 0 + QTextCharFormat (0x0x7fec3886a478) 0 + QTextFormat (0x0x7fec3886d4e0) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7fec3889ba20) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7fec384fe120) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7fec384fe540) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7fec384fe4e0) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7fec3856c600) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7fec3856ca80) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7fec3856cd20) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7fec385750d0) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16) + QObject (0x0x7fec3856ccc0) 0 + primary-for QTextDocument (0x0x7fec385750d0) + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7fec385b7600) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7fec3863fa20) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7fec3863fa80) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=80 align=8 + base size=80 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7fec3863fae0) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7fec386444e0) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16) + QObject (0x0x7fec3863f9c0) 0 + primary-for QAbstractTextDocumentLayout (0x0x7fec386444e0) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7fec382e80c0) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7fec382e8300) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7fec382e8360) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7fec382e82a0) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7fec382e8c60) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7fec3832a060) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7fec3832a0c0) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7fec3832a120) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7fec3832a180) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7fec3832a1e0) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7fec3832a240) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7fec3832a300) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16) + +Vtable for QAccessibleHyperlinkInterface +QAccessibleHyperlinkInterface::_ZTV29QAccessibleHyperlinkInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleHyperlinkInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleHyperlinkInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleHyperlinkInterface (0x0x7fec3832a360) 0 nearly-empty + vptr=((& QAccessibleHyperlinkInterface::_ZTV29QAccessibleHyperlinkInterface) + 16) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7fec3832a3c0) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7fec382e19c0) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16) + QAccessibleEvent (0x0x7fec3832a900) 0 + primary-for QAccessibleStateChangeEvent (0x0x7fec382e19c0) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7fec382e1a28) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16) + QAccessibleEvent (0x0x7fec3832acc0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fec382e1a28) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7fec382e1a90) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fec382e1af8) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7fec382e1a90) + QAccessibleEvent (0x0x7fec38359120) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fec382e1af8) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextInsertEvent (0x0x7fec382e1b60) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fec382e1bc8) 0 + primary-for QAccessibleTextInsertEvent (0x0x7fec382e1b60) + QAccessibleEvent (0x0x7fec383595a0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fec382e1bc8) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextRemoveEvent (0x0x7fec382e1c30) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fec382e1c98) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7fec382e1c30) + QAccessibleEvent (0x0x7fec383599c0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fec382e1c98) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=88 align=8 + base size=88 base align=8 +QAccessibleTextUpdateEvent (0x0x7fec382e1d00) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fec382e1d68) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7fec382e1d00) + QAccessibleEvent (0x0x7fec38359de0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fec382e1d68) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleValueChangeEvent (0x0x7fec382e1dd0) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16) + QAccessibleEvent (0x0x7fec383742a0) 0 + primary-for QAccessibleValueChangeEvent (0x0x7fec382e1dd0) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7fec382e1e38) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16) + QAccessibleEvent (0x0x7fec383746c0) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7fec382e1e38) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7fec38374f60) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7fec3838e240) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7fec382e1ea0) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16) + QObject (0x0x7fec3838e1e0) 0 + primary-for QAccessibleBridgePlugin (0x0x7fec382e1ea0) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0 +24 0 +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7fec382e1f08) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16) + QAccessibleInterface (0x0x7fec3838e300) 0 nearly-empty + primary-for QAccessibleObject (0x0x7fec382e1f08) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7fec382e1f70) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16) + QAccessibleObject (0x0x7fec38398000) 0 + primary-for QAccessibleApplication (0x0x7fec382e1f70) + QAccessibleInterface (0x0x7fec3838e360) 0 nearly-empty + primary-for QAccessibleObject (0x0x7fec38398000) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7fec3838e420) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7fec38398068) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16) + QObject (0x0x7fec3838e3c0) 0 + primary-for QAccessiblePlugin (0x0x7fec38398068) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7fec3838e540) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7fec383980d0) 0 + vptr=((& QAction::_ZTV7QAction) + 16) + QObject (0x0x7fec3838e4e0) 0 + primary-for QAction (0x0x7fec383980d0) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7fec3838ee40) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7fec38398138) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16) + QObject (0x0x7fec3838ede0) 0 + primary-for QActionGroup (0x0x7fec38398138) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7fec383ce120) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7fec383cea20) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16) + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=24 align=8 + base size=24 base align=8 +QBitmap (0x0x7fec38398340) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16) + QPixmap (0x0x7fec383983a8) 0 + primary-for QBitmap (0x0x7fec38398340) + QPaintDevice (0x0x7fec384090c0) 0 + primary-for QPixmap (0x0x7fec383983a8) + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7fec384219c0) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7fec38464c00) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 47 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))-16 +320 (int (*)(...))(& _ZTI7QWindow) +328 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +336 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7fec383d6d20) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16) + QObject (0x0x7fec38464b40) 0 + primary-for QWindow (0x0x7fec383d6d20) + QSurface (0x0x7fec38464ba0) 16 + vptr=((& QWindow::_ZTV7QWindow) + 328) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7fec384a24e0) 0 + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7fec384a2600) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7fec3846ba90) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16) + QObject (0x0x7fec384a25a0) 0 + primary-for QClipboard (0x0x7fec3846ba90) + +Class QColorTransform + size=8 align=8 + base size=8 base align=8 +QColorTransform (0x0x7fec384a2720) 0 + +Class QColorSpace + size=8 align=8 + base size=8 base align=8 +QColorSpace (0x0x7fec380fd720) 0 + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7fec381544e0) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7fec381545a0) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7fec38153618) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16) + QObject (0x0x7fec38154540) 0 + primary-for QDrag (0x0x7fec38153618) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7fec38154780) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QFileSystemModel::mimeTypes +224 (int (*)(...))QFileSystemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QFileSystemModel::dropMimeData +248 (int (*)(...))QFileSystemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QFileSystemModel::fetchMore +320 (int (*)(...))QFileSystemModel::canFetchMore +328 (int (*)(...))QFileSystemModel::flags +336 (int (*)(...))QFileSystemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QFileSystemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7fec38153680) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16) + QAbstractItemModel (0x0x7fec381536e8) 0 + primary-for QFileSystemModel (0x0x7fec38153680) + QObject (0x0x7fec38154720) 0 + primary-for QAbstractItemModel (0x0x7fec381536e8) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7fec38154e40) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7fec381b3780) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7fec381e41e0) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7fec38262ea0) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7fec3823b820) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16) + QObject (0x0x7fec38262e40) 0 + primary-for QGenericPlugin (0x0x7fec3823b820) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7fec38262f60) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7fec38274060) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7fec3823b888) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16) + QObject (0x0x7fec38274000) 0 + primary-for QInputMethod (0x0x7fec3823b888) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7fec38274300) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7fec3823b8f0) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16) + QCoreApplication (0x0x7fec3823b958) 0 + primary-for QGuiApplication (0x0x7fec3823b8f0) + QObject (0x0x7fec382742a0) 0 + primary-for QCoreApplication (0x0x7fec3823b958) + +Class QNativeInterface::QX11Application::TypeInfo + size=1 align=1 + base size=0 base align=1 +QNativeInterface::QX11Application::TypeInfo (0x0x7fec38274600) 0 empty + +Vtable for QNativeInterface::QX11Application +QNativeInterface::QX11Application::_ZTVN16QNativeInterface15QX11ApplicationE: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface15QX11ApplicationE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QX11Application + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QX11Application (0x0x7fec382745a0) 0 nearly-empty + vptr=((& QNativeInterface::QX11Application::_ZTVN16QNativeInterface15QX11ApplicationE) + 16) + +Class QIconEngine::ScaledPixmapArgument + size=48 align=8 + base size=48 base align=8 +QIconEngine::ScaledPixmapArgument (0x0x7fec382746c0) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::isNull +128 (int (*)(...))QIconEngine::scaledPixmap +136 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7fec38274660) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7fec38274780) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7fec3823b9c0) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16) + QObject (0x0x7fec38274720) 0 + primary-for QIconEnginePlugin (0x0x7fec3823b9c0) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QImageIOHandler::write +56 (int (*)(...))QImageIOHandler::option +64 (int (*)(...))QImageIOHandler::setOption +72 (int (*)(...))QImageIOHandler::supportsOption +80 (int (*)(...))QImageIOHandler::jumpToNextImage +88 (int (*)(...))QImageIOHandler::jumpToImage +96 (int (*)(...))QImageIOHandler::loopCount +104 (int (*)(...))QImageIOHandler::imageCount +112 (int (*)(...))QImageIOHandler::nextImageDelay +120 (int (*)(...))QImageIOHandler::currentImageNumber +128 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7fec38274840) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7fec38274a80) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7fec3823ba28) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16) + QObject (0x0x7fec38274a20) 0 + primary-for QImageIOPlugin (0x0x7fec3823ba28) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7fec38274f00) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7fec37ee1000) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7fec37ee10c0) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7fec37f1bde0) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7fec37f8e360) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7fec37f78270) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16) + QObject (0x0x7fec37f8e300) 0 + primary-for QMovie (0x0x7fec37f78270) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7fec37f8e720) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7fec37f795b0) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16) + QObject (0x0x7fec37f8e660) 0 + primary-for QOffscreenSurface (0x0x7fec37f795b0) + QSurface (0x0x7fec37f8e6c0) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160) + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7fec37f8e9c0) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7fec37f782d8) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16) + QObject (0x0x7fec37f8e960) 0 + primary-for QOpenGLContextGroup (0x0x7fec37f782d8) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7fec37f8eba0) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7fec37f78340) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16) + QObject (0x0x7fec37f8eb40) 0 + primary-for QOpenGLContext (0x0x7fec37f78340) + +Class QNativeInterface::QGLXContext::TypeInfo + size=1 align=1 + base size=0 base align=1 +QNativeInterface::QGLXContext::TypeInfo (0x0x7fec37f8ede0) 0 empty + +Vtable for QNativeInterface::QGLXContext +QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QGLXContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QGLXContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QGLXContext (0x0x7fec37f8ed80) 0 nearly-empty + vptr=((& QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE) + 16) + +Class QNativeInterface::QEGLContext::TypeInfo + size=1 align=1 + base size=0 base align=1 +QNativeInterface::QEGLContext::TypeInfo (0x0x7fec37f8eea0) 0 empty + +Vtable for QNativeInterface::QEGLContext +QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QEGLContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QEGLContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QEGLContext (0x0x7fec37f8ee40) 0 nearly-empty + vptr=((& QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE) + 16) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7fec37f8ef00) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7fec37adc5a0) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7fec37adc540) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7fec37f78750) 0 + QOpenGLFunctions (0x0x7fec37b50d20) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1728 align=8 + base size=1728 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7fec37ba90c0) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2880 align=8 + base size=2880 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7fec37f787b8) 0 + QOpenGLFunctionsPrivate (0x0x7fec37ba9060) 0 + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7fec37c83d80) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7fec3790d3c0) 0 + +Class QPageRanges::Range + size=8 align=4 + base size=8 base align=4 +QPageRanges::Range (0x0x7fec379c13c0) 0 + +Class QPageRanges + size=8 align=8 + base size=8 base align=8 +QPageRanges (0x0x7fec379c1360) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageLayout +96 (int (*)(...))QPagedPaintDevice::setPageSize +104 (int (*)(...))QPagedPaintDevice::setPageOrientation +112 (int (*)(...))QPagedPaintDevice::setPageMargins +120 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPagedPaintDevice + size=24 align=8 + base size=24 base align=8 +QPagedPaintDevice (0x0x7fec37a37618) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16) + QPaintDevice (0x0x7fec37a38960) 0 + primary-for QPagedPaintDevice (0x0x7fec37a37618) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7fec37a38ae0) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QPaintDeviceWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +352 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +416 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QPaintDevice::redirected +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=56 align=8 + base size=50 base align=8 +QPaintDeviceWindow (0x0x7fec37985230) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16) + QWindow (0x0x7fec379852a0) 0 + primary-for QPaintDeviceWindow (0x0x7fec37985230) + QObject (0x0x7fec37a389c0) 0 + primary-for QWindow (0x0x7fec379852a0) + QSurface (0x0x7fec37a38a20) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 344) + QPaintDevice (0x0x7fec37a38a80) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 408) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7fec37a38cc0) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7fec37a38c60) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7fec3786b8a0) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QPaintEngine::createPixmap +200 (int (*)(...))QPaintEngine::createPixmapFromImage + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7fec378ac0c0) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7fec378ac6c0) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7fec375493c0) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7fec37549360) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7fec375ea6c0) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7fec375eaea0) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 33 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::paintEngine +128 (int (*)(...))QPdfWriter::metric +136 (int (*)(...))-16 +144 (int (*)(...))(& _ZTI10QPdfWriter) +152 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +160 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +168 (int (*)(...))QPaintDevice::devType +176 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +184 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +192 (int (*)(...))QPaintDevice::initPainter +200 (int (*)(...))QPaintDevice::redirected +208 (int (*)(...))QPaintDevice::sharedPainter +216 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +224 (int (*)(...))QPagedPaintDevice::setPageLayout +232 (int (*)(...))QPagedPaintDevice::setPageSize +240 (int (*)(...))QPagedPaintDevice::setPageOrientation +248 (int (*)(...))QPagedPaintDevice::setPageMargins +256 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPdfWriter + size=40 align=8 + base size=40 base align=8 +QPdfWriter (0x0x7fec37571930) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16) + QObject (0x0x7fec375eade0) 0 + primary-for QPdfWriter (0x0x7fec37571930) + QPagedPaintDevice (0x0x7fec375ee478) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 152) + QPaintDevice (0x0x7fec375eae40) 16 + primary-for QPagedPaintDevice (0x0x7fec375ee478) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=24 align=8 + base size=24 base align=8 +QPicture (0x0x7fec375ee4e0) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16) + QPaintDevice (0x0x7fec37621060) 0 + primary-for QPicture (0x0x7fec375ee4e0) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7fec37658b40) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7fec37658ae0) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7fec376adde0) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 60 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QRasterWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QRasterWindow::redirected +336 (int (*)(...))-16 +344 (int (*)(...))(& _ZTI13QRasterWindow) +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +360 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +392 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +400 (int (*)(...))-40 +408 (int (*)(...))(& _ZTI13QRasterWindow) +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +424 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +432 (int (*)(...))QPaintDevice::devType +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +448 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +456 (int (*)(...))QPaintDevice::initPainter +464 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +472 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=56 align=8 + base size=50 base align=8 +QRasterWindow (0x0x7fec376b3a90) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16) + QPaintDeviceWindow (0x0x7fec37684540) 0 + primary-for QRasterWindow (0x0x7fec376b3a90) + QWindow (0x0x7fec376845b0) 0 + primary-for QPaintDeviceWindow (0x0x7fec37684540) + QObject (0x0x7fec376adcc0) 0 + primary-for QWindow (0x0x7fec376845b0) + QSurface (0x0x7fec376add20) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 352) + QPaintDevice (0x0x7fec376add80) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 416) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7fec372d4ae0) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7fec376b3b60) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16) + QObject (0x0x7fec372d4a80) 0 + primary-for QSessionManager (0x0x7fec376b3b60) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7fec372d4cc0) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7fec376b3bc8) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16) + QObject (0x0x7fec372d4c60) 0 + primary-for QShortcut (0x0x7fec376b3bc8) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::multiData +48 (int (*)(...))QStandardItem::setData +56 (int (*)(...))QStandardItem::clone +64 (int (*)(...))QStandardItem::type +72 (int (*)(...))QStandardItem::read +80 (int (*)(...))QStandardItem::write +88 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7fec373081e0) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7fec373f81e0) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::clearItemData +216 (int (*)(...))QStandardItemModel::mimeTypes +224 (int (*)(...))QStandardItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QStandardItemModel::dropMimeData +248 (int (*)(...))QStandardItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStandardItemModel::insertRows +272 (int (*)(...))QStandardItemModel::insertColumns +280 (int (*)(...))QStandardItemModel::removeRows +288 (int (*)(...))QStandardItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStandardItemModel::flags +336 (int (*)(...))QStandardItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QStandardItemModel::roleNames +376 (int (*)(...))QStandardItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7fec37393548) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16) + QAbstractItemModel (0x0x7fec373935b0) 0 + primary-for QStandardItemModel (0x0x7fec37393548) + QObject (0x0x7fec373f8180) 0 + primary-for QAbstractItemModel (0x0x7fec373935b0) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7fec373f8540) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7fec374ad300) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7fec374992d8) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16) + QObject (0x0x7fec374ad2a0) 0 + primary-for QStyleHints (0x0x7fec374992d8) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7fec374ad4e0) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7fec37499340) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16) + QObject (0x0x7fec374ad480) 0 + primary-for QTextObject (0x0x7fec37499340) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7fec374ad6c0) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7fec374993a8) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16) + QTextObject (0x0x7fec37499410) 0 + primary-for QTextBlockGroup (0x0x7fec374993a8) + QObject (0x0x7fec374ad660) 0 + primary-for QTextObject (0x0x7fec37499410) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7fec374ad840) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7fec374ad900) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7fec374ad960) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7fec37499478) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16) + QTextObject (0x0x7fec374994e0) 0 + primary-for QTextFrame (0x0x7fec37499478) + QObject (0x0x7fec374ad8a0) 0 + primary-for QTextObject (0x0x7fec374994e0) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7fec371217e0) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7fec371218a0) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7fec37121840) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7fec371a9120) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7fec371cbf60) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7fec371dd680) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16) + QObject (0x0x7fec371cbf00) 0 + primary-for QSyntaxHighlighter (0x0x7fec371dd680) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7fec371f4120) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7fec371f4180) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7fec371f4240) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7fec371dd6e8) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16) + QTextBlockGroup (0x0x7fec371dd750) 0 + primary-for QTextList (0x0x7fec371dd6e8) + QTextObject (0x0x7fec371dd7b8) 0 + primary-for QTextBlockGroup (0x0x7fec371dd750) + QObject (0x0x7fec371f41e0) 0 + primary-for QTextObject (0x0x7fec371dd7b8) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7fec371f4600) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7fec371f4e40) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7fec371dd820) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16) + QTextFrame (0x0x7fec371dd888) 0 + primary-for QTextTable (0x0x7fec371dd820) + QTextObject (0x0x7fec371dd8f0) 0 + primary-for QTextFrame (0x0x7fec371dd888) + QObject (0x0x7fec371f4de0) 0 + primary-for QTextObject (0x0x7fec371dd8f0) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7fec3722d240) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7fec371dd958) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16) + QObject (0x0x7fec3722d1e0) 0 + primary-for QUndoGroup (0x0x7fec371dd958) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7fec3722d3c0) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7fec3722d480) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7fec371dd9c0) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16) + QObject (0x0x7fec3722d420) 0 + primary-for QUndoStack (0x0x7fec371dd9c0) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7fec3722d660) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7fec371dda28) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16) + QObject (0x0x7fec3722d600) 0 + primary-for QValidator (0x0x7fec371dda28) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7fec3722d900) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7fec371dda90) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16) + QValidator (0x0x7fec371ddaf8) 0 + primary-for QIntValidator (0x0x7fec371dda90) + QObject (0x0x7fec3722d8a0) 0 + primary-for QValidator (0x0x7fec371ddaf8) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7fec3722dae0) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7fec371ddb60) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16) + QValidator (0x0x7fec371ddbc8) 0 + primary-for QDoubleValidator (0x0x7fec371ddb60) + QObject (0x0x7fec3722da80) 0 + primary-for QValidator (0x0x7fec371ddbc8) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7fec3722dea0) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7fec371ddc30) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16) + QValidator (0x0x7fec371ddc98) 0 + primary-for QRegularExpressionValidator (0x0x7fec371ddc30) + QObject (0x0x7fec3722de40) 0 + primary-for QValidator (0x0x7fec371ddc98) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7fec372950c0) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7fec37295060) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7fec36f42120) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7fec36f42240) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=40 align=8 + base size=40 base align=8 +QWidget (0x0x7fec37277ee0) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16) + QObject (0x0x7fec36f42180) 0 + primary-for QWidget (0x0x7fec37277ee0) + QPaintDevice (0x0x7fec36f421e0) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7fec37003ba0) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0 +480 0 +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=40 align=8 + base size=40 base align=8 +QAbstractButton (0x0x7fec36f1fc98) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16) + QWidget (0x0x7fec3701d070) 0 + primary-for QAbstractButton (0x0x7fec36f1fc98) + QObject (0x0x7fec37003ae0) 0 + primary-for QWidget (0x0x7fec3701d070) + QPaintDevice (0x0x7fec37003b40) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7fec37003de0) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI16QAbstractSpinBox) +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +504 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=40 align=8 + base size=40 base align=8 +QAbstractSpinBox (0x0x7fec36f1fd00) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16) + QWidget (0x0x7fec3701d0e0) 0 + primary-for QAbstractSpinBox (0x0x7fec36f1fd00) + QObject (0x0x7fec37003d20) 0 + primary-for QWidget (0x0x7fec3701d0e0) + QPaintDevice (0x0x7fec37003d80) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 496) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7fec37059660) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=40 align=8 + base size=40 base align=8 +QAbstractSlider (0x0x7fec36f1fea0) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16) + QWidget (0x0x7fec3701d5b0) 0 + primary-for QAbstractSlider (0x0x7fec36f1fea0) + QObject (0x0x7fec370595a0) 0 + primary-for QWidget (0x0x7fec3701d5b0) + QPaintDevice (0x0x7fec37059600) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7fec370598a0) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))QSlider::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI7QSlider) +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +472 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=40 align=8 + base size=40 base align=8 +QSlider (0x0x7fec36f1ff08) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16) + QAbstractSlider (0x0x7fec36f1ff70) 0 + primary-for QSlider (0x0x7fec36f1ff08) + QWidget (0x0x7fec3701db60) 0 + primary-for QAbstractSlider (0x0x7fec36f1ff70) + QObject (0x0x7fec370597e0) 0 + primary-for QWidget (0x0x7fec3701db60) + QPaintDevice (0x0x7fec37059840) 16 + vptr=((& QSlider::_ZTV7QSlider) + 464) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7fec37059b40) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7fec370c7000) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16) + QObject (0x0x7fec37059ae0) 0 + primary-for QStyle (0x0x7fec370c7000) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7fec36d19d80) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QTabBar::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))QTabBar::initStyleOption +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI7QTabBar) +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +504 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=40 align=8 + base size=40 base align=8 +QTabBar (0x0x7fec370c72d8) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16) + QWidget (0x0x7fec36d02700) 0 + primary-for QTabBar (0x0x7fec370c72d8) + QObject (0x0x7fec36d19cc0) 0 + primary-for QWidget (0x0x7fec36d02700) + QPaintDevice (0x0x7fec36d19d20) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 496) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7fec36dc40c0) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))QTabWidget::initStyleOption +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI10QTabWidget) +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +480 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=40 align=8 + base size=40 base align=8 +QTabWidget (0x0x7fec370c7340) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16) + QWidget (0x0x7fec36d02d20) 0 + primary-for QTabWidget (0x0x7fec370c7340) + QObject (0x0x7fec36dc4000) 0 + primary-for QWidget (0x0x7fec36d02d20) + QPaintDevice (0x0x7fec36dc4060) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 472) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7fec36dc4480) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRubberBand::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QRubberBand) +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +464 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=40 align=8 + base size=40 base align=8 +QRubberBand (0x0x7fec370c73a8) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16) + QWidget (0x0x7fec36dd3070) 0 + primary-for QRubberBand (0x0x7fec370c73a8) + QObject (0x0x7fec36dc43c0) 0 + primary-for QWidget (0x0x7fec36dd3070) + QPaintDevice (0x0x7fec36dc4420) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 456) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7fec36dc48a0) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QFrame) +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +464 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=40 align=8 + base size=40 base align=8 +QFrame (0x0x7fec370c7410) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16) + QWidget (0x0x7fec36dd31c0) 0 + primary-for QFrame (0x0x7fec370c7410) + QObject (0x0x7fec36dc47e0) 0 + primary-for QWidget (0x0x7fec36dd31c0) + QPaintDevice (0x0x7fec36dc4840) 16 + vptr=((& QFrame::_ZTV6QFrame) + 456) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7fec36dc4ba0) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7fec370c7478) 0 + QStyleOption (0x0x7fec36dc4c00) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7fec44b3cd68) 0 + QStyleOption (0x0x7fec36dc4e40) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7fec44b3cf70) 0 + QStyleOption (0x0x7fec36e34480) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7fec370c74e0) 0 + QStyleOption (0x0x7fec36e346c0) 0 + +Class QStyleOptionHeader + size=136 align=8 + base size=132 base align=8 +QStyleOptionHeader (0x0x7fec370c7548) 0 + QStyleOption (0x0x7fec36e34900) 0 + +Class QStyleOptionHeaderV2 + size=136 align=8 + base size=136 base align=8 +QStyleOptionHeaderV2 (0x0x7fec370c75b0) 0 + QStyleOptionHeader (0x0x7fec370c7618) 0 + QStyleOption (0x0x7fec36e34b40) 0 + +Class QStyleOptionButton + size=112 align=8 + base size=112 base align=8 +QStyleOptionButton (0x0x7fec370c76e8) 0 + QStyleOption (0x0x7fec36e34f00) 0 + +Class QStyleOptionTab + size=160 align=8 + base size=156 base align=8 +QStyleOptionTab (0x0x7fec370c7888) 0 + QStyleOption (0x0x7fec36eaa540) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7fec370c7b60) 0 + QStyleOption (0x0x7fec36eaad20) 0 + +Class QStyleOptionProgressBar + size=112 align=8 + base size=111 base align=8 +QStyleOptionProgressBar (0x0x7fec370c7d00) 0 + QStyleOption (0x0x7fec36b81360) 0 + +Class QStyleOptionMenuItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionMenuItem (0x0x7fec370c7d68) 0 + QStyleOption (0x0x7fec36b815a0) 0 + +Class QStyleOptionDockWidget + size=96 align=8 + base size=92 base align=8 +QStyleOptionDockWidget (0x0x7fec370c7dd0) 0 + QStyleOption (0x0x7fec36b817e0) 0 + +Class QStyleOptionViewItem + size=208 align=8 + base size=208 base align=8 +QStyleOptionViewItem (0x0x7fec370c7e38) 0 + QStyleOption (0x0x7fec36b81a20) 0 + +Class QStyleOptionToolBox + size=104 align=8 + base size=104 base align=8 +QStyleOptionToolBox (0x0x7fec36c21000) 0 + QStyleOption (0x0x7fec36c1f060) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7fec36c21068) 0 + QStyleOption (0x0x7fec36c1f2a0) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7fec36c210d0) 0 + QStyleOption (0x0x7fec36c1f540) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=128 base align=8 +QStyleOptionSlider (0x0x7fec36c21138) 0 + QStyleOptionComplex (0x0x7fec36c211a0) 0 + QStyleOption (0x0x7fec36c1f7e0) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7fec36c21270) 0 + QStyleOptionComplex (0x0x7fec36c212d8) 0 + QStyleOption (0x0x7fec36c1fba0) 0 + +Class QStyleOptionToolButton + size=152 align=8 + base size=152 base align=8 +QStyleOptionToolButton (0x0x7fec36c213a8) 0 + QStyleOptionComplex (0x0x7fec36c21410) 0 + QStyleOption (0x0x7fec36c1fde0) 0 + +Class QStyleOptionComboBox + size=144 align=8 + base size=140 base align=8 +QStyleOptionComboBox (0x0x7fec36c215b0) 0 + QStyleOptionComplex (0x0x7fec36c21618) 0 + QStyleOption (0x0x7fec36c793c0) 0 + +Class QStyleOptionTitleBar + size=112 align=8 + base size=112 base align=8 +QStyleOptionTitleBar (0x0x7fec36c21680) 0 + QStyleOptionComplex (0x0x7fec36c216e8) 0 + QStyleOption (0x0x7fec36c79600) 0 + +Class QStyleOptionGroupBox + size=136 align=8 + base size=132 base align=8 +QStyleOptionGroupBox (0x0x7fec36c21750) 0 + QStyleOptionComplex (0x0x7fec36c217b8) 0 + QStyleOption (0x0x7fec36c79840) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7fec36c21820) 0 + QStyleOptionComplex (0x0x7fec36c21888) 0 + QStyleOption (0x0x7fec36c79a80) 0 + +Class QStyleOptionGraphicsItem + size=96 align=8 + base size=96 base align=8 +QStyleOptionGraphicsItem (0x0x7fec36c218f0) 0 + QStyleOption (0x0x7fec36c79cc0) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7fec368db060) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7fec36c21958) 0 + QStyleHintReturn (0x0x7fec368db0c0) 0 + +Class QStyleHintReturnVariant + size=40 align=8 + base size=40 base align=8 +QStyleHintReturnVariant (0x0x7fec36c21a28) 0 + QStyleHintReturn (0x0x7fec368db120) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7fec368db2a0) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7fec36c21af8) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16) + QObject (0x0x7fec368db240) 0 + primary-for QAbstractItemDelegate (0x0x7fec36c21af8) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7fec368db4e0) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI19QAbstractScrollArea) +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +496 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=40 align=8 + base size=40 base align=8 +QAbstractScrollArea (0x0x7fec36c21b60) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16) + QFrame (0x0x7fec36c21bc8) 0 + primary-for QAbstractScrollArea (0x0x7fec36c21b60) + QWidget (0x0x7fec368de4d0) 0 + primary-for QFrame (0x0x7fec36c21bc8) + QObject (0x0x7fec368db420) 0 + primary-for QWidget (0x0x7fec368de4d0) + QPaintDevice (0x0x7fec368db480) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 488) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7fec368db7e0) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QAbstractItemView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))__cxa_pure_virtual +736 (int (*)(...))__cxa_pure_virtual +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI17QAbstractItemView) +800 0 +808 0 +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=40 align=8 + base size=40 base align=8 +QAbstractItemView (0x0x7fec36c21c30) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16) + QAbstractScrollArea (0x0x7fec36c21c98) 0 + primary-for QAbstractItemView (0x0x7fec36c21c30) + QFrame (0x0x7fec36c21d00) 0 + primary-for QAbstractScrollArea (0x0x7fec36c21c98) + QWidget (0x0x7fec368de690) 0 + primary-for QFrame (0x0x7fec36c21d00) + QObject (0x0x7fec368db720) 0 + primary-for QWidget (0x0x7fec368de690) + QPaintDevice (0x0x7fec368db780) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 800) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7fec36923bd0) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16) + QAccessibleObject (0x0x7fec36c21ea0) 0 + primary-for QAccessibleWidget (0x0x7fec36923bd0) + QAccessibleInterface (0x0x7fec36976240) 0 nearly-empty + primary-for QAccessibleObject (0x0x7fec36c21ea0) + QAccessibleActionInterface (0x0x7fec369762a0) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7fec369763c0) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7fec36c21f08) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16) + QGuiApplication (0x0x7fec36c21f70) 0 + primary-for QApplication (0x0x7fec36c21f08) + QCoreApplication (0x0x7fec36c21208) 0 + primary-for QGuiApplication (0x0x7fec36c21f70) + QObject (0x0x7fec36976360) 0 + primary-for QCoreApplication (0x0x7fec36c21208) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7fec36976660) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7fec369d2000) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16) + QLayoutItem (0x0x7fec369768a0) 0 + primary-for QSpacerItem (0x0x7fec369d2000) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QWidgetItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7fec369d2068) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16) + QLayoutItem (0x0x7fec36976ae0) 0 + primary-for QWidgetItem (0x0x7fec369d2068) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QWidgetItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7fec369d20d0) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16) + QWidgetItem (0x0x7fec369d2138) 0 + primary-for QWidgetItemV2 (0x0x7fec369d20d0) + QLayoutItem (0x0x7fec36976cc0) 0 + primary-for QWidgetItem (0x0x7fec369d2138) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7fec36976e40) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QLayout::setGeometry +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI7QLayout) +272 0 +280 0 +288 (int (*)(...))__cxa_pure_virtual +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +312 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +320 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QLayoutItem::hasHeightForWidth +352 (int (*)(...))QLayoutItem::heightForWidth +360 (int (*)(...))QLayoutItem::minimumHeightForWidth +368 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7fec36923d90) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16) + QObject (0x0x7fec36976d80) 0 + primary-for QLayout (0x0x7fec36923d90) + QLayoutItem (0x0x7fec36976de0) 16 + vptr=((& QLayout::_ZTV7QLayout) + 272) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7fec36a10180) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::spacing +120 (int (*)(...))QGridLayout::setSpacing +128 (int (*)(...))QGridLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QGridLayout::addItem +152 (int (*)(...))QGridLayout::expandingDirections +160 (int (*)(...))QGridLayout::minimumSize +168 (int (*)(...))QGridLayout::maximumSize +176 (int (*)(...))QGridLayout::setGeometry +184 (int (*)(...))QGridLayout::itemAt +192 (int (*)(...))QGridLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QGridLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QGridLayout::sizeHint +264 (int (*)(...))QGridLayout::hasHeightForWidth +272 (int (*)(...))QGridLayout::heightForWidth +280 (int (*)(...))QGridLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QGridLayout) +304 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +312 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +320 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +328 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +336 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +352 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +384 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +392 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +400 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7fec369d21a0) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16) + QLayout (0x0x7fec369f50e0) 0 + primary-for QGridLayout (0x0x7fec369d21a0) + QObject (0x0x7fec36a100c0) 0 + primary-for QLayout (0x0x7fec369f50e0) + QLayoutItem (0x0x7fec36a10120) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 304) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7fec36a10420) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI10QBoxLayout) +304 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +312 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7fec369d2208) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16) + QLayout (0x0x7fec369f5150) 0 + primary-for QBoxLayout (0x0x7fec369d2208) + QObject (0x0x7fec36a10360) 0 + primary-for QLayout (0x0x7fec369f5150) + QLayoutItem (0x0x7fec36a103c0) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 304) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7fec36a10660) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QHBoxLayout) +304 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +312 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7fec369d2270) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16) + QBoxLayout (0x0x7fec369d22d8) 0 + primary-for QHBoxLayout (0x0x7fec369d2270) + QLayout (0x0x7fec369f5460) 0 + primary-for QBoxLayout (0x0x7fec369d22d8) + QObject (0x0x7fec36a105a0) 0 + primary-for QLayout (0x0x7fec369f5460) + QLayoutItem (0x0x7fec36a10600) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 304) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7fec36a107e0) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QVBoxLayout) +304 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +312 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7fec369d2340) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16) + QBoxLayout (0x0x7fec369d23a8) 0 + primary-for QVBoxLayout (0x0x7fec369d2340) + QLayout (0x0x7fec369f54d0) 0 + primary-for QBoxLayout (0x0x7fec369d23a8) + QObject (0x0x7fec36a10720) 0 + primary-for QLayout (0x0x7fec369f54d0) + QLayoutItem (0x0x7fec36a10780) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 304) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7fec36a10900) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7fec369d2410) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16) + QObject (0x0x7fec36a108a0) 0 + primary-for QButtonGroup (0x0x7fec369d2410) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7fec36a10b40) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=40 align=8 + base size=40 base align=8 +QCalendarWidget (0x0x7fec369d2478) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16) + QWidget (0x0x7fec369f5540) 0 + primary-for QCalendarWidget (0x0x7fec369d2478) + QObject (0x0x7fec36a10a80) 0 + primary-for QWidget (0x0x7fec369f5540) + QPaintDevice (0x0x7fec36a10ae0) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7fec36a90000) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))QCheckBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QCheckBox) +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +488 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=40 align=8 + base size=40 base align=8 +QCheckBox (0x0x7fec369d24e0) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16) + QAbstractButton (0x0x7fec369d2548) 0 + primary-for QCheckBox (0x0x7fec369d24e0) + QWidget (0x0x7fec369f5930) 0 + primary-for QAbstractButton (0x0x7fec369d2548) + QObject (0x0x7fec36a10f00) 0 + primary-for QWidget (0x0x7fec369f5930) + QPaintDevice (0x0x7fec36a10f60) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 480) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7fec36a90240) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=40 align=8 + base size=40 base align=8 +QDialog (0x0x7fec369d25b0) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16) + QWidget (0x0x7fec369f59a0) 0 + primary-for QDialog (0x0x7fec369d25b0) + QObject (0x0x7fec36a90180) 0 + primary-for QWidget (0x0x7fec369f59a0) + QPaintDevice (0x0x7fec36a901e0) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7fec36a90480) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=40 align=8 + base size=40 base align=8 +QColorDialog (0x0x7fec369d2618) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16) + QDialog (0x0x7fec369d2680) 0 + primary-for QColorDialog (0x0x7fec369d2618) + QWidget (0x0x7fec369f5af0) 0 + primary-for QDialog (0x0x7fec369d2680) + QObject (0x0x7fec36a903c0) 0 + primary-for QWidget (0x0x7fec369f5af0) + QPaintDevice (0x0x7fec36a90420) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7fec36a90a80) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7fec36a90ba0) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 109 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QColumnView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QColumnView::setModel +480 (int (*)(...))QColumnView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QColumnView::visualRect +504 (int (*)(...))QColumnView::scrollTo +512 (int (*)(...))QColumnView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QColumnView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QColumnView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QColumnView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QColumnView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QColumnView::moveCursor +704 (int (*)(...))QColumnView::horizontalOffset +712 (int (*)(...))QColumnView::verticalOffset +720 (int (*)(...))QColumnView::isIndexHidden +728 (int (*)(...))QColumnView::setSelection +736 (int (*)(...))QColumnView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QColumnView::createColumn +792 (int (*)(...))-16 +800 (int (*)(...))(& _ZTI11QColumnView) +808 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +816 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=40 align=8 + base size=40 base align=8 +QColumnView (0x0x7fec369d2820) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16) + QAbstractItemView (0x0x7fec369d2888) 0 + primary-for QColumnView (0x0x7fec369d2820) + QAbstractScrollArea (0x0x7fec369d28f0) 0 + primary-for QAbstractItemView (0x0x7fec369d2888) + QFrame (0x0x7fec369d2958) 0 + primary-for QAbstractScrollArea (0x0x7fec369d28f0) + QWidget (0x0x7fec369f5e00) 0 + primary-for QFrame (0x0x7fec369d2958) + QObject (0x0x7fec36a90ae0) 0 + primary-for QWidget (0x0x7fec369f5e00) + QPaintDevice (0x0x7fec36a90b40) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 808) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7fec36a90de0) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QComboBox) +480 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +488 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=40 align=8 + base size=40 base align=8 +QComboBox (0x0x7fec369d29c0) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16) + QWidget (0x0x7fec369f5e70) 0 + primary-for QComboBox (0x0x7fec369d29c0) + QObject (0x0x7fec36a90d20) 0 + primary-for QWidget (0x0x7fec369f5e70) + QPaintDevice (0x0x7fec36a90d80) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 480) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7fec3675a3c0) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QPushButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QPushButton) +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +488 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=40 align=8 + base size=40 base align=8 +QPushButton (0x0x7fec369d2a28) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16) + QAbstractButton (0x0x7fec369d2a90) 0 + primary-for QPushButton (0x0x7fec369d2a28) + QWidget (0x0x7fec36733380) 0 + primary-for QAbstractButton (0x0x7fec369d2a90) + QObject (0x0x7fec3675a300) 0 + primary-for QWidget (0x0x7fec36733380) + QPaintDevice (0x0x7fec3675a360) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 480) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7fec3675a600) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QCommandLinkButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI18QCommandLinkButton) +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +488 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=40 align=8 + base size=40 base align=8 +QCommandLinkButton (0x0x7fec369d2af8) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16) + QPushButton (0x0x7fec369d2b60) 0 + primary-for QCommandLinkButton (0x0x7fec369d2af8) + QAbstractButton (0x0x7fec369d2bc8) 0 + primary-for QPushButton (0x0x7fec369d2b60) + QWidget (0x0x7fec367333f0) 0 + primary-for QAbstractButton (0x0x7fec369d2bc8) + QObject (0x0x7fec3675a540) 0 + primary-for QWidget (0x0x7fec367333f0) + QPaintDevice (0x0x7fec3675a5a0) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 480) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7fec3675a7e0) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7fec369d2c30) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16) + QStyle (0x0x7fec369d2c98) 0 + primary-for QCommonStyle (0x0x7fec369d2c30) + QObject (0x0x7fec3675a780) 0 + primary-for QStyle (0x0x7fec369d2c98) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7fec3675a9c0) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7fec369d2d00) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16) + QObject (0x0x7fec3675a960) 0 + primary-for QCompleter (0x0x7fec369d2d00) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7fec3675ad20) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7fec369d2d68) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16) + QObject (0x0x7fec3675acc0) 0 + primary-for QDataWidgetMapper (0x0x7fec369d2d68) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7fec367c7060) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QDateTimeEdit) +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +520 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=40 align=8 + base size=40 base align=8 +QDateTimeEdit (0x0x7fec369d2dd0) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16) + QAbstractSpinBox (0x0x7fec369d2e38) 0 + primary-for QDateTimeEdit (0x0x7fec369d2dd0) + QWidget (0x0x7fec367337e0) 0 + primary-for QAbstractSpinBox (0x0x7fec369d2e38) + QObject (0x0x7fec3675af60) 0 + primary-for QWidget (0x0x7fec367337e0) + QPaintDevice (0x0x7fec367c7000) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 512) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7fec367c7600) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QTimeEdit) +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +520 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=40 align=8 + base size=40 base align=8 +QTimeEdit (0x0x7fec36809000) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16) + QDateTimeEdit (0x0x7fec36809068) 0 + primary-for QTimeEdit (0x0x7fec36809000) + QAbstractSpinBox (0x0x7fec368090d0) 0 + primary-for QDateTimeEdit (0x0x7fec36809068) + QWidget (0x0x7fec36733d20) 0 + primary-for QAbstractSpinBox (0x0x7fec368090d0) + QObject (0x0x7fec367c7540) 0 + primary-for QWidget (0x0x7fec36733d20) + QPaintDevice (0x0x7fec367c75a0) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 512) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7fec367c7780) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QDateEdit) +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +520 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=40 align=8 + base size=40 base align=8 +QDateEdit (0x0x7fec36809138) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16) + QDateTimeEdit (0x0x7fec368091a0) 0 + primary-for QDateEdit (0x0x7fec36809138) + QAbstractSpinBox (0x0x7fec36809208) 0 + primary-for QDateTimeEdit (0x0x7fec368091a0) + QWidget (0x0x7fec36733d90) 0 + primary-for QAbstractSpinBox (0x0x7fec36809208) + QObject (0x0x7fec367c76c0) 0 + primary-for QWidget (0x0x7fec36733d90) + QPaintDevice (0x0x7fec367c7720) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 512) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7fec367c7ae0) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))QDial::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI5QDial) +464 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +472 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=40 align=8 + base size=40 base align=8 +QDial (0x0x7fec36809270) 0 + vptr=((& QDial::_ZTV5QDial) + 16) + QAbstractSlider (0x0x7fec368092d8) 0 + primary-for QDial (0x0x7fec36809270) + QWidget (0x0x7fec36733e00) 0 + primary-for QAbstractSlider (0x0x7fec368092d8) + QObject (0x0x7fec367c7a20) 0 + primary-for QWidget (0x0x7fec36733e00) + QPaintDevice (0x0x7fec367c7a80) 16 + vptr=((& QDial::_ZTV5QDial) + 464) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7fec367c7d20) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=40 align=8 + base size=40 base align=8 +QDialogButtonBox (0x0x7fec36809340) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16) + QWidget (0x0x7fec36733e70) 0 + primary-for QDialogButtonBox (0x0x7fec36809340) + QObject (0x0x7fec367c7c60) 0 + primary-for QWidget (0x0x7fec36733e70) + QPaintDevice (0x0x7fec367c7cc0) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7fec3688c420) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDockWidget::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QDockWidget) +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +464 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=40 align=8 + base size=40 base align=8 +QDockWidget (0x0x7fec368094e0) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16) + QWidget (0x0x7fec3685df50) 0 + primary-for QDockWidget (0x0x7fec368094e0) + QObject (0x0x7fec3688c360) 0 + primary-for QWidget (0x0x7fec3685df50) + QPaintDevice (0x0x7fec3688c3c0) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 456) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7fec3688cae0) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7fec3653d180) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=40 align=8 + base size=40 base align=8 +QErrorMessage (0x0x7fec368097b8) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16) + QDialog (0x0x7fec36809820) 0 + primary-for QErrorMessage (0x0x7fec368097b8) + QWidget (0x0x7fec368bf9a0) 0 + primary-for QDialog (0x0x7fec36809820) + QObject (0x0x7fec3653d0c0) 0 + primary-for QWidget (0x0x7fec368bf9a0) + QPaintDevice (0x0x7fec3653d120) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7fec3653d3c0) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=40 align=8 + base size=40 base align=8 +QFileDialog (0x0x7fec36809888) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16) + QDialog (0x0x7fec368098f0) 0 + primary-for QFileDialog (0x0x7fec36809888) + QWidget (0x0x7fec368bfa10) 0 + primary-for QDialog (0x0x7fec368098f0) + QObject (0x0x7fec3653d300) 0 + primary-for QWidget (0x0x7fec368bfa10) + QPaintDevice (0x0x7fec3653d360) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7fec36809a90) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16) + QAbstractFileIconProvider (0x0x7fec3653dd20) 0 + primary-for QFileIconProvider (0x0x7fec36809a90) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7fec3653df00) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFocusFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QFocusFrame) +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +464 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=40 align=8 + base size=40 base align=8 +QFocusFrame (0x0x7fec36809af8) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16) + QWidget (0x0x7fec36561380) 0 + primary-for QFocusFrame (0x0x7fec36809af8) + QObject (0x0x7fec3653de40) 0 + primary-for QWidget (0x0x7fec36561380) + QPaintDevice (0x0x7fec3653dea0) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 456) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7fec365f2180) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI13QFontComboBox) +480 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +488 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=40 align=8 + base size=40 base align=8 +QFontComboBox (0x0x7fec36809b60) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16) + QComboBox (0x0x7fec36809bc8) 0 + primary-for QFontComboBox (0x0x7fec36809b60) + QWidget (0x0x7fec365613f0) 0 + primary-for QComboBox (0x0x7fec36809bc8) + QObject (0x0x7fec365f20c0) 0 + primary-for QWidget (0x0x7fec365613f0) + QPaintDevice (0x0x7fec365f2120) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 480) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7fec365f2840) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=40 align=8 + base size=40 base align=8 +QFontDialog (0x0x7fec36809d68) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16) + QDialog (0x0x7fec36809dd0) 0 + primary-for QFontDialog (0x0x7fec36809d68) + QWidget (0x0x7fec36561690) 0 + primary-for QDialog (0x0x7fec36809dd0) + QObject (0x0x7fec365f2780) 0 + primary-for QWidget (0x0x7fec36561690) + QPaintDevice (0x0x7fec365f27e0) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7fec365f2f00) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7fec365f2f60) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::spacing +120 (int (*)(...))QFormLayout::setSpacing +128 (int (*)(...))QFormLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QFormLayout::addItem +152 (int (*)(...))QFormLayout::expandingDirections +160 (int (*)(...))QFormLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QFormLayout::setGeometry +184 (int (*)(...))QFormLayout::itemAt +192 (int (*)(...))QFormLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QFormLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QFormLayout::sizeHint +264 (int (*)(...))QFormLayout::hasHeightForWidth +272 (int (*)(...))QFormLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI11QFormLayout) +296 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +304 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +312 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +320 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +344 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +376 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7fec36809f70) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16) + QLayout (0x0x7fec365619a0) 0 + primary-for QFormLayout (0x0x7fec36809f70) + QObject (0x0x7fec365f2e40) 0 + primary-for QLayout (0x0x7fec365619a0) + QLayoutItem (0x0x7fec365f2ea0) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 296) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7fec36325240) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7fec362edaf8) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16) + QObject (0x0x7fec363251e0) 0 + primary-for QGesture (0x0x7fec362edaf8) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7fec36325420) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7fec362edb60) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16) + QGesture (0x0x7fec362edbc8) 0 + primary-for QPanGesture (0x0x7fec362edb60) + QObject (0x0x7fec363253c0) 0 + primary-for QGesture (0x0x7fec362edbc8) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7fec36325600) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7fec362edc30) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16) + QGesture (0x0x7fec362edc98) 0 + primary-for QPinchGesture (0x0x7fec362edc30) + QObject (0x0x7fec363255a0) 0 + primary-for QGesture (0x0x7fec362edc98) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7fec363c6e40) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7fec363f75b0) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16) + QGesture (0x0x7fec363f7618) 0 + primary-for QSwipeGesture (0x0x7fec363f75b0) + QObject (0x0x7fec363c6de0) 0 + primary-for QGesture (0x0x7fec363f7618) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7fec3640a120) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7fec363f7680) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16) + QGesture (0x0x7fec363f76e8) 0 + primary-for QTapGesture (0x0x7fec363f7680) + QObject (0x0x7fec3640a0c0) 0 + primary-for QGesture (0x0x7fec363f76e8) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7fec3640a300) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7fec363f7750) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16) + QGesture (0x0x7fec363f77b8) 0 + primary-for QTapAndHoldGesture (0x0x7fec363f7750) + QObject (0x0x7fec3640a2a0) 0 + primary-for QGesture (0x0x7fec363f77b8) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGestureEvent + size=64 align=8 + base size=64 base align=8 +QGestureEvent (0x0x7fec363f7820) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16) + QEvent (0x0x7fec3640a480) 0 + primary-for QGestureEvent (0x0x7fec363f7820) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0 +24 0 +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7fec36126000) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7fec36126420) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7fec3621d6c0) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0 +48 0 +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0 +136 0 +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7fec36230000) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16) + QObject (0x0x7fec3621d600) 0 + primary-for QGraphicsObject (0x0x7fec36230000) + QGraphicsItem (0x0x7fec3621d660) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7fec3611e958) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16) + QGraphicsItem (0x0x7fec3621d780) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fec3611e958) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7fec3611e9c0) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fec3611ea28) 0 + primary-for QGraphicsPathItem (0x0x7fec3611e9c0) + QGraphicsItem (0x0x7fec3621d8a0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fec3611ea28) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7fec3611ea90) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fec3611eaf8) 0 + primary-for QGraphicsRectItem (0x0x7fec3611ea90) + QGraphicsItem (0x0x7fec3621d9c0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fec3611eaf8) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7fec3611eb60) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fec3611ebc8) 0 + primary-for QGraphicsEllipseItem (0x0x7fec3611eb60) + QGraphicsItem (0x0x7fec3621db40) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fec3611ebc8) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7fec3611ec30) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fec3611ec98) 0 + primary-for QGraphicsPolygonItem (0x0x7fec3611ec30) + QGraphicsItem (0x0x7fec3621dcc0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fec3611ec98) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7fec3611ed00) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16) + QGraphicsItem (0x0x7fec3621dde0) 0 + primary-for QGraphicsLineItem (0x0x7fec3611ed00) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7fec3611ed68) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16) + QGraphicsItem (0x0x7fec3621df60) 0 + primary-for QGraphicsPixmapItem (0x0x7fec3611ed68) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7fec362a51e0) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7fec3611edd0) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16) + QGraphicsObject (0x0x7fec36230460) 0 + primary-for QGraphicsTextItem (0x0x7fec3611edd0) + QObject (0x0x7fec362a5120) 0 + primary-for QGraphicsObject (0x0x7fec36230460) + QGraphicsItem (0x0x7fec362a5180) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7fec3611ef08) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fec3611ef70) 0 + primary-for QGraphicsSimpleTextItem (0x0x7fec3611ef08) + QGraphicsItem (0x0x7fec362a5480) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fec3611ef70) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7fec35ed0000) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16) + QGraphicsItem (0x0x7fec362a55a0) 0 + primary-for QGraphicsItemGroup (0x0x7fec35ed0000) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7fec362a5c60) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))QGraphicsLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7fec35ed00d0) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16) + QGraphicsLayoutItem (0x0x7fec35f19360) 0 + primary-for QGraphicsLayout (0x0x7fec35ed00d0) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7fec35f19660) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7fec35ed0138) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16) + QObject (0x0x7fec35f19600) 0 + primary-for QGraphicsAnchor (0x0x7fec35ed0138) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsAnchorLayout::sizeHint +72 (int (*)(...))QGraphicsAnchorLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsAnchorLayout::count +96 (int (*)(...))QGraphicsAnchorLayout::itemAt +104 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7fec35ed01a0) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16) + QGraphicsLayout (0x0x7fec35ed0208) 0 + primary-for QGraphicsAnchorLayout (0x0x7fec35ed01a0) + QGraphicsLayoutItem (0x0x7fec35f197e0) 0 + primary-for QGraphicsLayout (0x0x7fec35ed0208) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7fec35f19960) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7fec35ed0270) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16) + QObject (0x0x7fec35f19900) 0 + primary-for QGraphicsEffect (0x0x7fec35ed0270) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7fec35f9d000) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7fec35ed0410) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16) + QGraphicsEffect (0x0x7fec35ed0478) 0 + primary-for QGraphicsColorizeEffect (0x0x7fec35ed0410) + QObject (0x0x7fec35f19f60) 0 + primary-for QGraphicsEffect (0x0x7fec35ed0478) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7fec35f9d1e0) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7fec35ed04e0) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16) + QGraphicsEffect (0x0x7fec35ed0548) 0 + primary-for QGraphicsBlurEffect (0x0x7fec35ed04e0) + QObject (0x0x7fec35f9d180) 0 + primary-for QGraphicsEffect (0x0x7fec35ed0548) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7fec35f9d900) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7fec35ed06e8) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16) + QGraphicsEffect (0x0x7fec35ed0750) 0 + primary-for QGraphicsDropShadowEffect (0x0x7fec35ed06e8) + QObject (0x0x7fec35f9d8a0) 0 + primary-for QGraphicsEffect (0x0x7fec35ed0750) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7fec35f9dd20) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7fec35ed07b8) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16) + QGraphicsEffect (0x0x7fec35ed0820) 0 + primary-for QGraphicsOpacityEffect (0x0x7fec35ed07b8) + QObject (0x0x7fec35f9dcc0) 0 + primary-for QGraphicsEffect (0x0x7fec35ed0820) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsGridLayout::sizeHint +72 (int (*)(...))QGraphicsGridLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsGridLayout::count +96 (int (*)(...))QGraphicsGridLayout::itemAt +104 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7fec35ed0888) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16) + QGraphicsLayout (0x0x7fec35ed08f0) 0 + primary-for QGraphicsGridLayout (0x0x7fec35ed0888) + QGraphicsLayoutItem (0x0x7fec35f9dea0) 0 + primary-for QGraphicsLayout (0x0x7fec35ed08f0) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7fec360330c0) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7fec35ed0a28) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16) + QObject (0x0x7fec36033060) 0 + primary-for QGraphicsItemAnimation (0x0x7fec35ed0a28) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsLinearLayout::sizeHint +72 (int (*)(...))QGraphicsLinearLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsLinearLayout::count +96 (int (*)(...))QGraphicsLinearLayout::itemAt +104 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7fec35ed0a90) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16) + QGraphicsLayout (0x0x7fec35ed0af8) 0 + primary-for QGraphicsLinearLayout (0x0x7fec35ed0a90) + QGraphicsLayoutItem (0x0x7fec36033180) 0 + primary-for QGraphicsLayout (0x0x7fec35ed0af8) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7fec36033480) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 93 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsLayoutItem::isEmpty +736 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7fec36057000) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16) + QGraphicsObject (0x0x7fec36057070) 0 + primary-for QGraphicsWidget (0x0x7fec36057000) + QObject (0x0x7fec36033360) 0 + primary-for QGraphicsObject (0x0x7fec36057070) + QGraphicsItem (0x0x7fec360333c0) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376) + QGraphicsLayoutItem (0x0x7fec36033420) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7fec36033900) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsLayoutItem::isEmpty +856 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7fec35ed0c30) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16) + QGraphicsWidget (0x0x7fec360571c0) 0 + primary-for QGraphicsProxyWidget (0x0x7fec35ed0c30) + QGraphicsObject (0x0x7fec36057230) 0 + primary-for QGraphicsWidget (0x0x7fec360571c0) + QObject (0x0x7fec360337e0) 0 + primary-for QGraphicsObject (0x0x7fec36057230) + QGraphicsItem (0x0x7fec36033840) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496) + QGraphicsLayoutItem (0x0x7fec360338a0) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7fec36033c60) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems +272 (int (*)(...))QGraphicsScene::focusNextPrevChild + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7fec35ed0e38) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16) + QObject (0x0x7fec36033c00) 0 + primary-for QGraphicsScene (0x0x7fec35ed0e38) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneEvent (0x0x7fec35cf6888) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16) + QEvent (0x0x7fec35d8d060) 0 + primary-for QGraphicsSceneEvent (0x0x7fec35cf6888) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMouseEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMouseEvent (0x0x7fec35cf68f0) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16) + QGraphicsSceneEvent (0x0x7fec35cf6958) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7fec35cf68f0) + QEvent (0x0x7fec35d8d240) 0 + primary-for QGraphicsSceneEvent (0x0x7fec35cf6958) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneWheelEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneWheelEvent (0x0x7fec35cf69c0) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16) + QGraphicsSceneEvent (0x0x7fec35cf6a28) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7fec35cf69c0) + QEvent (0x0x7fec35d8d360) 0 + primary-for QGraphicsSceneEvent (0x0x7fec35cf6a28) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneContextMenuEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7fec35cf6a90) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16) + QGraphicsSceneEvent (0x0x7fec35cf6af8) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7fec35cf6a90) + QEvent (0x0x7fec35d8d480) 0 + primary-for QGraphicsSceneEvent (0x0x7fec35cf6af8) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHoverEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHoverEvent (0x0x7fec35cf6b60) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16) + QGraphicsSceneEvent (0x0x7fec35cf6bc8) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7fec35cf6b60) + QEvent (0x0x7fec35d8d5a0) 0 + primary-for QGraphicsSceneEvent (0x0x7fec35cf6bc8) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHelpEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHelpEvent (0x0x7fec35cf6c30) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16) + QGraphicsSceneEvent (0x0x7fec35cf6c98) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7fec35cf6c30) + QEvent (0x0x7fec35d8d6c0) 0 + primary-for QGraphicsSceneEvent (0x0x7fec35cf6c98) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneDragDropEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneDragDropEvent (0x0x7fec35cf6d00) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16) + QGraphicsSceneEvent (0x0x7fec35cf6d68) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7fec35cf6d00) + QEvent (0x0x7fec35d8d7e0) 0 + primary-for QGraphicsSceneEvent (0x0x7fec35cf6d68) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneResizeEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneResizeEvent (0x0x7fec35cf6dd0) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16) + QGraphicsSceneEvent (0x0x7fec35cf6e38) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7fec35cf6dd0) + QEvent (0x0x7fec35d8d900) 0 + primary-for QGraphicsSceneEvent (0x0x7fec35cf6e38) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMoveEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMoveEvent (0x0x7fec35cf6ea0) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16) + QGraphicsSceneEvent (0x0x7fec35cf6f08) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7fec35cf6ea0) + QEvent (0x0x7fec35d8da20) 0 + primary-for QGraphicsSceneEvent (0x0x7fec35cf6f08) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7fec35d8dba0) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7fec35cf6f70) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16) + QObject (0x0x7fec35d8db40) 0 + primary-for QGraphicsTransform (0x0x7fec35cf6f70) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7fec35d8dd80) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7fec35cf6820) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16) + QGraphicsTransform (0x0x7fec35df6000) 0 + primary-for QGraphicsScale (0x0x7fec35cf6820) + QObject (0x0x7fec35d8dd20) 0 + primary-for QGraphicsTransform (0x0x7fec35df6000) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7fec35d8df60) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7fec35df6068) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16) + QGraphicsTransform (0x0x7fec35df60d0) 0 + primary-for QGraphicsRotation (0x0x7fec35df6068) + QObject (0x0x7fec35d8df00) 0 + primary-for QGraphicsTransform (0x0x7fec35df60d0) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7fec35e0b1e0) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QScrollArea::scrollContentsBy +464 (int (*)(...))QScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QScrollArea) +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +496 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=40 align=8 + base size=40 base align=8 +QScrollArea (0x0x7fec35df6138) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16) + QAbstractScrollArea (0x0x7fec35df61a0) 0 + primary-for QScrollArea (0x0x7fec35df6138) + QFrame (0x0x7fec35df6208) 0 + primary-for QAbstractScrollArea (0x0x7fec35df61a0) + QWidget (0x0x7fec36057a80) 0 + primary-for QFrame (0x0x7fec35df6208) + QObject (0x0x7fec35e0b120) 0 + primary-for QWidget (0x0x7fec36057a80) + QPaintDevice (0x0x7fec35e0b180) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 488) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7fec35e0b420) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QGraphicsView::setupViewport +448 (int (*)(...))QGraphicsView::viewportEvent +456 (int (*)(...))QGraphicsView::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QGraphicsView::drawBackground +480 (int (*)(...))QGraphicsView::drawForeground +488 (int (*)(...))QGraphicsView::drawItems +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QGraphicsView) +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +520 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=40 align=8 + base size=40 base align=8 +QGraphicsView (0x0x7fec35df6270) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16) + QAbstractScrollArea (0x0x7fec35df62d8) 0 + primary-for QGraphicsView (0x0x7fec35df6270) + QFrame (0x0x7fec35df6340) 0 + primary-for QAbstractScrollArea (0x0x7fec35df62d8) + QWidget (0x0x7fec36057af0) 0 + primary-for QFrame (0x0x7fec35df6340) + QObject (0x0x7fec35e0b360) 0 + primary-for QWidget (0x0x7fec36057af0) + QPaintDevice (0x0x7fec35e0b3c0) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 512) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7fec35aee480) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QGroupBox::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QGroupBox) +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +464 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=40 align=8 + base size=40 base align=8 +QGroupBox (0x0x7fec35df6618) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16) + QWidget (0x0x7fec35e292a0) 0 + primary-for QGroupBox (0x0x7fec35df6618) + QObject (0x0x7fec35aee3c0) 0 + primary-for QWidget (0x0x7fec35e292a0) + QPaintDevice (0x0x7fec35aee420) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 456) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7fec35aee6c0) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QHeaderView::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QHeaderView::viewportEvent +456 (int (*)(...))QHeaderView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QHeaderView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QHeaderView::visualRect +504 (int (*)(...))QHeaderView::scrollTo +512 (int (*)(...))QHeaderView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QHeaderView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QHeaderView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QHeaderView::dataChanged +584 (int (*)(...))QHeaderView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QHeaderView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QHeaderView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QHeaderView::moveCursor +704 (int (*)(...))QHeaderView::horizontalOffset +712 (int (*)(...))QHeaderView::verticalOffset +720 (int (*)(...))QHeaderView::isIndexHidden +728 (int (*)(...))QHeaderView::setSelection +736 (int (*)(...))QHeaderView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QHeaderView::paintSection +792 (int (*)(...))QHeaderView::sectionSizeFromContents +800 (int (*)(...))QHeaderView::initStyleOptionForIndex +808 (int (*)(...))QHeaderView::initStyleOption +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QHeaderView) +832 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +840 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=40 align=8 + base size=40 base align=8 +QHeaderView (0x0x7fec35df6680) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16) + QAbstractItemView (0x0x7fec35df66e8) 0 + primary-for QHeaderView (0x0x7fec35df6680) + QAbstractScrollArea (0x0x7fec35df6750) 0 + primary-for QAbstractItemView (0x0x7fec35df66e8) + QFrame (0x0x7fec35df67b8) 0 + primary-for QAbstractScrollArea (0x0x7fec35df6750) + QWidget (0x0x7fec35e29310) 0 + primary-for QFrame (0x0x7fec35df67b8) + QObject (0x0x7fec35aee600) 0 + primary-for QWidget (0x0x7fec35e29310) + QPaintDevice (0x0x7fec35aee660) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 832) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7fec35aeeb40) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QLineEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QLineEdit::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QLineEdit::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QLineEdit) +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +464 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=40 align=8 + base size=40 base align=8 +QLineEdit (0x0x7fec35df6820) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16) + QWidget (0x0x7fec35e295b0) 0 + primary-for QLineEdit (0x0x7fec35df6820) + QObject (0x0x7fec35aeea80) 0 + primary-for QWidget (0x0x7fec35e295b0) + QPaintDevice (0x0x7fec35aeeae0) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 456) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7fec35aeef00) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=40 align=8 + base size=40 base align=8 +QInputDialog (0x0x7fec35df6888) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16) + QDialog (0x0x7fec35df68f0) 0 + primary-for QInputDialog (0x0x7fec35df6888) + QWidget (0x0x7fec35e298c0) 0 + primary-for QDialog (0x0x7fec35df68f0) + QObject (0x0x7fec35aeee40) 0 + primary-for QWidget (0x0x7fec35e298c0) + QPaintDevice (0x0x7fec35aeeea0) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7fec35b864e0) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7fec35df6a90) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16) + QAbstractItemDelegate (0x0x7fec35df6af8) 0 + primary-for QItemDelegate (0x0x7fec35df6a90) + QObject (0x0x7fec35b86480) 0 + primary-for QAbstractItemDelegate (0x0x7fec35df6af8) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7fec35b86660) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7fec35b869c0) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7fec35b86ea0) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=40 align=8 + base size=40 base align=8 +QKeySequenceEdit (0x0x7fec35df6c30) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16) + QWidget (0x0x7fec35e29bd0) 0 + primary-for QKeySequenceEdit (0x0x7fec35df6c30) + QObject (0x0x7fec35b86de0) 0 + primary-for QWidget (0x0x7fec35e29bd0) + QPaintDevice (0x0x7fec35b86e40) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7fec35c24120) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QLabel) +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +464 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=40 align=8 + base size=40 base align=8 +QLabel (0x0x7fec35df6c98) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16) + QFrame (0x0x7fec35df6d00) 0 + primary-for QLabel (0x0x7fec35df6c98) + QWidget (0x0x7fec35e29c40) 0 + primary-for QFrame (0x0x7fec35df6d00) + QObject (0x0x7fec35c24060) 0 + primary-for QWidget (0x0x7fec35e29c40) + QPaintDevice (0x0x7fec35c240c0) 16 + vptr=((& QLabel::_ZTV6QLabel) + 456) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7fec35c24420) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QLCDNumber) +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +464 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=40 align=8 + base size=40 base align=8 +QLCDNumber (0x0x7fec35df6d68) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16) + QFrame (0x0x7fec35df6dd0) 0 + primary-for QLCDNumber (0x0x7fec35df6d68) + QWidget (0x0x7fec35e29cb0) 0 + primary-for QFrame (0x0x7fec35df6dd0) + QObject (0x0x7fec35c24360) 0 + primary-for QWidget (0x0x7fec35e29cb0) + QPaintDevice (0x0x7fec35c243c0) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 456) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7fec35c247e0) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QListView) +800 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +808 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=40 align=8 + base size=40 base align=8 +QListView (0x0x7fec35df6e38) 0 + vptr=((& QListView::_ZTV9QListView) + 16) + QAbstractItemView (0x0x7fec35df6ea0) 0 + primary-for QListView (0x0x7fec35df6e38) + QAbstractScrollArea (0x0x7fec35df6f08) 0 + primary-for QAbstractItemView (0x0x7fec35df6ea0) + QFrame (0x0x7fec35df6f70) 0 + primary-for QAbstractScrollArea (0x0x7fec35df6f08) + QWidget (0x0x7fec35c45070) 0 + primary-for QFrame (0x0x7fec35df6f70) + QObject (0x0x7fec35c24720) 0 + primary-for QWidget (0x0x7fec35c45070) + QPaintDevice (0x0x7fec35c24780) 16 + vptr=((& QListView::_ZTV9QListView) + 800) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::data +48 (int (*)(...))QListWidgetItem::setData +56 (int (*)(...))QListWidgetItem::operator< +64 (int (*)(...))QListWidgetItem::read +72 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=40 align=8 + base size=36 base align=8 +QListWidgetItem (0x0x7fec35c24d20) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7fec35ca17e0) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QListWidget::setModel +480 (int (*)(...))QListWidget::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))QListWidget::mimeTypes +792 (int (*)(...))QListWidget::mimeData +800 (int (*)(...))QListWidget::dropMimeData +808 (int (*)(...))QListWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QListWidget) +832 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +840 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=40 align=8 + base size=40 base align=8 +QListWidget (0x0x7fec35cbc000) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16) + QListView (0x0x7fec35cbc068) 0 + primary-for QListWidget (0x0x7fec35cbc000) + QAbstractItemView (0x0x7fec35cbc0d0) 0 + primary-for QListView (0x0x7fec35cbc068) + QAbstractScrollArea (0x0x7fec35cbc138) 0 + primary-for QAbstractItemView (0x0x7fec35cbc0d0) + QFrame (0x0x7fec35cbc1a0) 0 + primary-for QAbstractScrollArea (0x0x7fec35cbc138) + QWidget (0x0x7fec35c45690) 0 + primary-for QFrame (0x0x7fec35cbc1a0) + QObject (0x0x7fec35ca1720) 0 + primary-for QWidget (0x0x7fec35c45690) + QPaintDevice (0x0x7fec35ca1780) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 832) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7fec35ca1cc0) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=40 align=8 + base size=40 base align=8 +QMainWindow (0x0x7fec35cbc208) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16) + QWidget (0x0x7fec35c45700) 0 + primary-for QMainWindow (0x0x7fec35cbc208) + QObject (0x0x7fec35ca1c00) 0 + primary-for QWidget (0x0x7fec35c45700) + QPaintDevice (0x0x7fec35ca1c60) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7fec35914480) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QMdiArea::setupViewport +448 (int (*)(...))QMdiArea::viewportEvent +456 (int (*)(...))QMdiArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI8QMdiArea) +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +496 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=40 align=8 + base size=40 base align=8 +QMdiArea (0x0x7fec35cbc3a8) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16) + QAbstractScrollArea (0x0x7fec35cbc410) 0 + primary-for QMdiArea (0x0x7fec35cbc3a8) + QFrame (0x0x7fec35cbc478) 0 + primary-for QAbstractScrollArea (0x0x7fec35cbc410) + QWidget (0x0x7fec35c45a10) 0 + primary-for QFrame (0x0x7fec35cbc478) + QObject (0x0x7fec359143c0) 0 + primary-for QWidget (0x0x7fec35c45a10) + QPaintDevice (0x0x7fec35914420) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 488) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7fec35914c00) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=40 align=8 + base size=40 base align=8 +QMdiSubWindow (0x0x7fec35cbc618) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16) + QWidget (0x0x7fec35c45d90) 0 + primary-for QMdiSubWindow (0x0x7fec35cbc618) + QObject (0x0x7fec35914b40) 0 + primary-for QWidget (0x0x7fec35c45d90) + QPaintDevice (0x0x7fec35914ba0) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7fec359fe240) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))QMenu::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QMenu) +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +464 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=40 align=8 + base size=40 base align=8 +QMenu (0x0x7fec35cbc7b8) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16) + QWidget (0x0x7fec35a1b000) 0 + primary-for QMenu (0x0x7fec35cbc7b8) + QObject (0x0x7fec359fe180) 0 + primary-for QWidget (0x0x7fec35a1b000) + QPaintDevice (0x0x7fec359fe1e0) 16 + vptr=((& QMenu::_ZTV5QMenu) + 456) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7fec359fe600) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMenuBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QMenuBar) +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +464 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=40 align=8 + base size=40 base align=8 +QMenuBar (0x0x7fec35cbc820) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16) + QWidget (0x0x7fec35a1b070) 0 + primary-for QMenuBar (0x0x7fec35cbc820) + QObject (0x0x7fec359fe540) 0 + primary-for QWidget (0x0x7fec35a1b070) + QPaintDevice (0x0x7fec359fe5a0) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 456) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7fec359fe900) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=40 align=8 + base size=40 base align=8 +QMessageBox (0x0x7fec35cbc888) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16) + QDialog (0x0x7fec35cbc8f0) 0 + primary-for QMessageBox (0x0x7fec35cbc888) + QWidget (0x0x7fec35a1b0e0) 0 + primary-for QDialog (0x0x7fec35cbc8f0) + QObject (0x0x7fec359fe840) 0 + primary-for QWidget (0x0x7fec35a1b0e0) + QPaintDevice (0x0x7fec359fe8a0) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7fec35ac9240) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7fec35ac92a0) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextEdit::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI9QTextEdit) +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +536 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=40 align=8 + base size=40 base align=8 +QTextEdit (0x0x7fec35cbca90) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16) + QAbstractScrollArea (0x0x7fec35cbcaf8) 0 + primary-for QTextEdit (0x0x7fec35cbca90) + QFrame (0x0x7fec35cbcb60) 0 + primary-for QAbstractScrollArea (0x0x7fec35cbcaf8) + QWidget (0x0x7fec35a5f460) 0 + primary-for QFrame (0x0x7fec35cbcb60) + QObject (0x0x7fec35ac9180) 0 + primary-for QWidget (0x0x7fec35a5f460) + QPaintDevice (0x0x7fec35ac91e0) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 528) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7fec35ac9ba0) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QPlainTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QPlainTextEdit::loadResource +480 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +488 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +496 (int (*)(...))QPlainTextEdit::insertFromMimeData +504 (int (*)(...))QPlainTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI14QPlainTextEdit) +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +536 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=40 align=8 + base size=40 base align=8 +QPlainTextEdit (0x0x7fec35cbcd00) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16) + QAbstractScrollArea (0x0x7fec35cbcd68) 0 + primary-for QPlainTextEdit (0x0x7fec35cbcd00) + QFrame (0x0x7fec35cbcdd0) 0 + primary-for QAbstractScrollArea (0x0x7fec35cbcd68) + QWidget (0x0x7fec35a5f7e0) 0 + primary-for QFrame (0x0x7fec35cbcdd0) + QObject (0x0x7fec35ac9ae0) 0 + primary-for QWidget (0x0x7fec35a5f7e0) + QPaintDevice (0x0x7fec35ac9b40) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 528) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7fec35790120) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7fec35cbce38) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16) + QAbstractTextDocumentLayout (0x0x7fec35cbcea0) 0 + primary-for QPlainTextDocumentLayout (0x0x7fec35cbce38) + QObject (0x0x7fec357900c0) 0 + primary-for QAbstractTextDocumentLayout (0x0x7fec35cbcea0) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7fec35790360) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))QProgressBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI12QProgressBar) +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +472 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=40 align=8 + base size=40 base align=8 +QProgressBar (0x0x7fec35cbcf08) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16) + QWidget (0x0x7fec35a5f930) 0 + primary-for QProgressBar (0x0x7fec35cbcf08) + QObject (0x0x7fec357902a0) 0 + primary-for QWidget (0x0x7fec35a5f930) + QPaintDevice (0x0x7fec35790300) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 464) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7fec35790660) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=40 align=8 + base size=40 base align=8 +QProgressDialog (0x0x7fec35cbcf70) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16) + QDialog (0x0x7fec357b5000) 0 + primary-for QProgressDialog (0x0x7fec35cbcf70) + QWidget (0x0x7fec35a5fa80) 0 + primary-for QDialog (0x0x7fec357b5000) + QObject (0x0x7fec357905a0) 0 + primary-for QWidget (0x0x7fec35a5fa80) + QPaintDevice (0x0x7fec35790600) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7fec35790840) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7fec357b5068) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16) + QCommonStyle (0x0x7fec357b50d0) 0 + primary-for QProxyStyle (0x0x7fec357b5068) + QStyle (0x0x7fec357b5138) 0 + primary-for QCommonStyle (0x0x7fec357b50d0) + QObject (0x0x7fec357907e0) 0 + primary-for QStyle (0x0x7fec357b5138) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7fec35790a80) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QRadioButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI12QRadioButton) +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +488 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=40 align=8 + base size=40 base align=8 +QRadioButton (0x0x7fec357b51a0) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16) + QAbstractButton (0x0x7fec357b5208) 0 + primary-for QRadioButton (0x0x7fec357b51a0) + QWidget (0x0x7fec35a5faf0) 0 + primary-for QAbstractButton (0x0x7fec357b5208) + QObject (0x0x7fec357909c0) 0 + primary-for QWidget (0x0x7fec35a5faf0) + QPaintDevice (0x0x7fec35790a20) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 480) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7fec35790cc0) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))QScrollBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QScrollBar) +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +472 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=40 align=8 + base size=40 base align=8 +QScrollBar (0x0x7fec357b5270) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16) + QAbstractSlider (0x0x7fec357b52d8) 0 + primary-for QScrollBar (0x0x7fec357b5270) + QWidget (0x0x7fec35a5fb60) 0 + primary-for QAbstractSlider (0x0x7fec357b52d8) + QObject (0x0x7fec35790c00) 0 + primary-for QWidget (0x0x7fec35a5fb60) + QPaintDevice (0x0x7fec35790c60) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 464) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7fec35790e40) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7fec358c5240) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7fec358c4208) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16) + QObject (0x0x7fec358c51e0) 0 + primary-for QScroller (0x0x7fec358c4208) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7fec358c5540) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=40 align=8 + base size=40 base align=8 +QSizeGrip (0x0x7fec358c4270) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16) + QWidget (0x0x7fec358c35b0) 0 + primary-for QSizeGrip (0x0x7fec358c4270) + QObject (0x0x7fec358c5480) 0 + primary-for QWidget (0x0x7fec358c35b0) + QPaintDevice (0x0x7fec358c54e0) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7fec358c5780) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QSpinBox::valueFromText +488 (int (*)(...))QSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI8QSpinBox) +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +520 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=40 align=8 + base size=40 base align=8 +QSpinBox (0x0x7fec358c42d8) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16) + QAbstractSpinBox (0x0x7fec358c4340) 0 + primary-for QSpinBox (0x0x7fec358c42d8) + QWidget (0x0x7fec358c3620) 0 + primary-for QAbstractSpinBox (0x0x7fec358c4340) + QObject (0x0x7fec358c56c0) 0 + primary-for QWidget (0x0x7fec358c3620) + QPaintDevice (0x0x7fec358c5720) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 512) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7fec358c59c0) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QDoubleSpinBox::valueFromText +488 (int (*)(...))QDoubleSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI14QDoubleSpinBox) +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +520 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=40 align=8 + base size=40 base align=8 +QDoubleSpinBox (0x0x7fec358c43a8) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16) + QAbstractSpinBox (0x0x7fec358c4410) 0 + primary-for QDoubleSpinBox (0x0x7fec358c43a8) + QWidget (0x0x7fec358c3690) 0 + primary-for QAbstractSpinBox (0x0x7fec358c4410) + QObject (0x0x7fec358c5900) 0 + primary-for QWidget (0x0x7fec358c3690) + QPaintDevice (0x0x7fec358c5960) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 512) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7fec358c5c00) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=40 align=8 + base size=40 base align=8 +QSplashScreen (0x0x7fec358c4478) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16) + QWidget (0x0x7fec358c3700) 0 + primary-for QSplashScreen (0x0x7fec358c4478) + QObject (0x0x7fec358c5b40) 0 + primary-for QWidget (0x0x7fec358c3700) + QPaintDevice (0x0x7fec358c5ba0) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7fec358c5e40) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QSplitter::createHandle +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QSplitter) +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +472 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=40 align=8 + base size=40 base align=8 +QSplitter (0x0x7fec358c44e0) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16) + QFrame (0x0x7fec358c4548) 0 + primary-for QSplitter (0x0x7fec358c44e0) + QWidget (0x0x7fec358c3770) 0 + primary-for QFrame (0x0x7fec358c4548) + QObject (0x0x7fec358c5d80) 0 + primary-for QWidget (0x0x7fec358c3770) + QPaintDevice (0x0x7fec358c5de0) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 464) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7fec355420c0) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=40 align=8 + base size=40 base align=8 +QSplitterHandle (0x0x7fec358c45b0) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16) + QWidget (0x0x7fec358c37e0) 0 + primary-for QSplitterHandle (0x0x7fec358c45b0) + QObject (0x0x7fec35542000) 0 + primary-for QWidget (0x0x7fec358c37e0) + QPaintDevice (0x0x7fec35542060) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7fec35542300) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QStackedLayout::addItem +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QStackedLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QStackedLayout::setGeometry +184 (int (*)(...))QStackedLayout::itemAt +192 (int (*)(...))QStackedLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QStackedLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QStackedLayout::sizeHint +264 (int (*)(...))QStackedLayout::hasHeightForWidth +272 (int (*)(...))QStackedLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI14QStackedLayout) +296 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +304 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +312 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +320 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +344 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +376 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7fec358c4618) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16) + QLayout (0x0x7fec358c3850) 0 + primary-for QStackedLayout (0x0x7fec358c4618) + QObject (0x0x7fec35542240) 0 + primary-for QLayout (0x0x7fec358c3850) + QLayoutItem (0x0x7fec355422a0) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 296) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7fec35542600) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI14QStackedWidget) +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +464 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=40 align=8 + base size=40 base align=8 +QStackedWidget (0x0x7fec358c4680) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16) + QFrame (0x0x7fec358c46e8) 0 + primary-for QStackedWidget (0x0x7fec358c4680) + QWidget (0x0x7fec358c39a0) 0 + primary-for QFrame (0x0x7fec358c46e8) + QObject (0x0x7fec35542540) 0 + primary-for QWidget (0x0x7fec358c39a0) + QPaintDevice (0x0x7fec355425a0) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 456) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7fec35542840) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=40 align=8 + base size=40 base align=8 +QStatusBar (0x0x7fec358c4750) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16) + QWidget (0x0x7fec358c3a10) 0 + primary-for QStatusBar (0x0x7fec358c4750) + QObject (0x0x7fec35542780) 0 + primary-for QWidget (0x0x7fec358c3a10) + QPaintDevice (0x0x7fec355427e0) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7fec35542a20) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7fec358c47b8) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16) + QAbstractItemDelegate (0x0x7fec358c4820) 0 + primary-for QStyledItemDelegate (0x0x7fec358c47b8) + QObject (0x0x7fec355429c0) 0 + primary-for QAbstractItemDelegate (0x0x7fec358c4820) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7fec35542ba0) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7fec358c4888) 0 + QPainter (0x0x7fec35542c00) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7fec355aa480) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7fec358c48f0) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16) + QObject (0x0x7fec355aa420) 0 + primary-for QStylePlugin (0x0x7fec358c48f0) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7fec355aa5a0) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7fec358c4958) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16) + QObject (0x0x7fec355aa540) 0 + primary-for QSystemTrayIcon (0x0x7fec358c4958) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7fec355aa8a0) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableView::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI10QTableView) +800 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +808 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=40 align=8 + base size=40 base align=8 +QTableView (0x0x7fec358c49c0) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16) + QAbstractItemView (0x0x7fec358c4a28) 0 + primary-for QTableView (0x0x7fec358c49c0) + QAbstractScrollArea (0x0x7fec358c4a90) 0 + primary-for QAbstractItemView (0x0x7fec358c4a28) + QFrame (0x0x7fec358c4af8) 0 + primary-for QAbstractScrollArea (0x0x7fec358c4a90) + QWidget (0x0x7fec358c3f50) 0 + primary-for QFrame (0x0x7fec358c4af8) + QObject (0x0x7fec355aa7e0) 0 + primary-for QWidget (0x0x7fec358c3f50) + QPaintDevice (0x0x7fec355aa840) 16 + vptr=((& QTableView::_ZTV10QTableView) + 800) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7fec355aaa20) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=64 align=8 + base size=60 base align=8 +QTableWidgetItem (0x0x7fec355aae40) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7fec35685180) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableWidget::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))QTableWidget::mimeTypes +792 (int (*)(...))QTableWidget::mimeData +800 (int (*)(...))QTableWidget::dropMimeData +808 (int (*)(...))QTableWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI12QTableWidget) +832 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +840 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=40 align=8 + base size=40 base align=8 +QTableWidget (0x0x7fec35610410) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16) + QTableView (0x0x7fec35610478) 0 + primary-for QTableWidget (0x0x7fec35610410) + QAbstractItemView (0x0x7fec356104e0) 0 + primary-for QTableView (0x0x7fec35610478) + QAbstractScrollArea (0x0x7fec35610548) 0 + primary-for QAbstractItemView (0x0x7fec356104e0) + QFrame (0x0x7fec356105b0) 0 + primary-for QAbstractScrollArea (0x0x7fec35610548) + QWidget (0x0x7fec355f41c0) 0 + primary-for QFrame (0x0x7fec356105b0) + QObject (0x0x7fec356850c0) 0 + primary-for QWidget (0x0x7fec355f41c0) + QPaintDevice (0x0x7fec35685120) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 832) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7fec35685540) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 79 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextBrowser::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))QTextBrowser::doSetSource +552 (int (*)(...))-16 +560 (int (*)(...))(& _ZTI12QTextBrowser) +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +576 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +624 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=40 align=8 + base size=40 base align=8 +QTextBrowser (0x0x7fec35610618) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16) + QTextEdit (0x0x7fec35610680) 0 + primary-for QTextBrowser (0x0x7fec35610618) + QAbstractScrollArea (0x0x7fec356106e8) 0 + primary-for QTextEdit (0x0x7fec35610680) + QFrame (0x0x7fec35610750) 0 + primary-for QAbstractScrollArea (0x0x7fec356106e8) + QWidget (0x0x7fec355f4230) 0 + primary-for QFrame (0x0x7fec35610750) + QObject (0x0x7fec35685480) 0 + primary-for QWidget (0x0x7fec355f4230) + QPaintDevice (0x0x7fec356854e0) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 568) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7fec35685780) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QToolBar) +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +464 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=40 align=8 + base size=40 base align=8 +QToolBar (0x0x7fec356107b8) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16) + QWidget (0x0x7fec355f42a0) 0 + primary-for QToolBar (0x0x7fec356107b8) + QObject (0x0x7fec356856c0) 0 + primary-for QWidget (0x0x7fec355f42a0) + QPaintDevice (0x0x7fec35685720) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 456) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7fec35685c00) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QToolBox::itemInserted +448 (int (*)(...))QToolBox::itemRemoved +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI8QToolBox) +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +480 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=40 align=8 + base size=40 base align=8 +QToolBox (0x0x7fec35610820) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16) + QFrame (0x0x7fec35610888) 0 + primary-for QToolBox (0x0x7fec35610820) + QWidget (0x0x7fec355f4310) 0 + primary-for QFrame (0x0x7fec35610888) + QObject (0x0x7fec35685b40) 0 + primary-for QWidget (0x0x7fec355f4310) + QPaintDevice (0x0x7fec35685ba0) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 472) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7fec35685f60) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QToolButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))QToolButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QToolButton) +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +488 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=40 align=8 + base size=40 base align=8 +QToolButton (0x0x7fec356108f0) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16) + QAbstractButton (0x0x7fec35610958) 0 + primary-for QToolButton (0x0x7fec356108f0) + QWidget (0x0x7fec355f4380) 0 + primary-for QAbstractButton (0x0x7fec35610958) + QObject (0x0x7fec35685ea0) 0 + primary-for QWidget (0x0x7fec355f4380) + QPaintDevice (0x0x7fec35685f00) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 480) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7fec3531d1e0) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7fec3531d360) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeView::setModel +480 (int (*)(...))QTreeView::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI9QTreeView) +816 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +824 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=40 align=8 + base size=40 base align=8 +QTreeView (0x0x7fec356109c0) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16) + QAbstractItemView (0x0x7fec35610a28) 0 + primary-for QTreeView (0x0x7fec356109c0) + QAbstractScrollArea (0x0x7fec35610a90) 0 + primary-for QAbstractItemView (0x0x7fec35610a28) + QFrame (0x0x7fec35610af8) 0 + primary-for QAbstractScrollArea (0x0x7fec35610a90) + QWidget (0x0x7fec355f4540) 0 + primary-for QFrame (0x0x7fec35610af8) + QObject (0x0x7fec3531d2a0) 0 + primary-for QWidget (0x0x7fec355f4540) + QPaintDevice (0x0x7fec3531d300) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 816) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7fec3531d4e0) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=96 align=8 + base size=92 base align=8 +QTreeWidgetItem (0x0x7fec3531dc60) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7fec354a2a80) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 114 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeWidget::setModel +480 (int (*)(...))QTreeWidget::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))QTreeWidget::mimeTypes +808 (int (*)(...))QTreeWidget::mimeData +816 (int (*)(...))QTreeWidget::dropMimeData +824 (int (*)(...))QTreeWidget::supportedDropActions +832 (int (*)(...))-16 +840 (int (*)(...))(& _ZTI11QTreeWidget) +848 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +856 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +896 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +904 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=40 align=8 + base size=40 base align=8 +QTreeWidget (0x0x7fec353dfe38) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16) + QTreeView (0x0x7fec353dfea0) 0 + primary-for QTreeWidget (0x0x7fec353dfe38) + QAbstractItemView (0x0x7fec353dff08) 0 + primary-for QTreeView (0x0x7fec353dfea0) + QAbstractScrollArea (0x0x7fec353dff70) 0 + primary-for QAbstractItemView (0x0x7fec353dff08) + QFrame (0x0x7fec353df548) 0 + primary-for QAbstractScrollArea (0x0x7fec353dff70) + QWidget (0x0x7fec353bf310) 0 + primary-for QFrame (0x0x7fec353df548) + QObject (0x0x7fec354a29c0) 0 + primary-for QWidget (0x0x7fec353bf310) + QPaintDevice (0x0x7fec354a2a20) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 848) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7fec354a2ea0) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QUndoView) +800 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +808 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=40 align=8 + base size=40 base align=8 +QUndoView (0x0x7fec353dfdd0) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16) + QListView (0x0x7fec35104000) 0 + primary-for QUndoView (0x0x7fec353dfdd0) + QAbstractItemView (0x0x7fec35104068) 0 + primary-for QListView (0x0x7fec35104000) + QAbstractScrollArea (0x0x7fec351040d0) 0 + primary-for QAbstractItemView (0x0x7fec35104068) + QFrame (0x0x7fec35104138) 0 + primary-for QAbstractScrollArea (0x0x7fec351040d0) + QWidget (0x0x7fec353bf380) 0 + primary-for QFrame (0x0x7fec35104138) + QObject (0x0x7fec354a2de0) 0 + primary-for QWidget (0x0x7fec353bf380) + QPaintDevice (0x0x7fec354a2e40) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 800) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7fec35117060) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7fec35117120) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7fec351041a0) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16) + QAction (0x0x7fec35104208) 0 + primary-for QWidgetAction (0x0x7fec351041a0) + QObject (0x0x7fec351170c0) 0 + primary-for QAction (0x0x7fec35104208) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7fec35117360) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=40 align=8 + base size=40 base align=8 +QWizard (0x0x7fec35104270) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16) + QDialog (0x0x7fec351042d8) 0 + primary-for QWizard (0x0x7fec35104270) + QWidget (0x0x7fec353bf3f0) 0 + primary-for QDialog (0x0x7fec351042d8) + QObject (0x0x7fec351172a0) 0 + primary-for QWidget (0x0x7fec353bf3f0) + QPaintDevice (0x0x7fec35117300) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7fec35117ba0) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=40 align=8 + base size=40 base align=8 +QWizardPage (0x0x7fec35104478) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16) + QWidget (0x0x7fec3512b5b0) 0 + primary-for QWizardPage (0x0x7fec35104478) + QObject (0x0x7fec35117ae0) 0 + primary-for QWidget (0x0x7fec3512b5b0) + QPaintDevice (0x0x7fec35117b40) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488) + +Vtable for QDesignerCustomWidgetInterface +QDesignerCustomWidgetInterface::_ZTV30QDesignerCustomWidgetInterface: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QDesignerCustomWidgetInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QDesignerCustomWidgetInterface::isInitialized +104 (int (*)(...))QDesignerCustomWidgetInterface::initialize +112 (int (*)(...))QDesignerCustomWidgetInterface::domXml +120 (int (*)(...))QDesignerCustomWidgetInterface::codeTemplate + +Class QDesignerCustomWidgetInterface + size=8 align=8 + base size=8 base align=8 +QDesignerCustomWidgetInterface (0x0x7fec35117d20) 0 nearly-empty + vptr=((& QDesignerCustomWidgetInterface::_ZTV30QDesignerCustomWidgetInterface) + 16) + +Vtable for QDesignerCustomWidgetCollectionInterface +QDesignerCustomWidgetCollectionInterface::_ZTV40QDesignerCustomWidgetCollectionInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI40QDesignerCustomWidgetCollectionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QDesignerCustomWidgetCollectionInterface + size=8 align=8 + base size=8 base align=8 +QDesignerCustomWidgetCollectionInterface (0x0x7fec351dd240) 0 nearly-empty + vptr=((& QDesignerCustomWidgetCollectionInterface::_ZTV40QDesignerCustomWidgetCollectionInterface) + 16) + +Class QDomImplementation + size=8 align=8 + base size=8 base align=8 +QDomImplementation (0x0x7fec351dd660) 0 + +Class QDomNode + size=8 align=8 + base size=8 base align=8 +QDomNode (0x0x7fec351dd6c0) 0 + +Class QDomNodeList + size=8 align=8 + base size=8 base align=8 +QDomNodeList (0x0x7fec351dd720) 0 + +Class QDomDocumentType + size=8 align=8 + base size=8 base align=8 +QDomDocumentType (0x0x7fec351d7208) 0 + QDomNode (0x0x7fec351dd900) 0 + +Class QDomDocument + size=8 align=8 + base size=8 base align=8 +QDomDocument (0x0x7fec351d7270) 0 + QDomNode (0x0x7fec351dd9c0) 0 + +Class QDomNamedNodeMap + size=8 align=8 + base size=8 base align=8 +QDomNamedNodeMap (0x0x7fec351dda80) 0 + +Class QDomDocumentFragment + size=8 align=8 + base size=8 base align=8 +QDomDocumentFragment (0x0x7fec351d72d8) 0 + QDomNode (0x0x7fec351ddc00) 0 + +Class QDomCharacterData + size=8 align=8 + base size=8 base align=8 +QDomCharacterData (0x0x7fec351d7340) 0 + QDomNode (0x0x7fec351ddcc0) 0 + +Class QDomAttr + size=8 align=8 + base size=8 base align=8 +QDomAttr (0x0x7fec351d73a8) 0 + QDomNode (0x0x7fec351ddd20) 0 + +Class QDomElement + size=8 align=8 + base size=8 base align=8 +QDomElement (0x0x7fec351d7410) 0 + QDomNode (0x0x7fec351ddde0) 0 + +Class QDomText + size=8 align=8 + base size=8 base align=8 +QDomText (0x0x7fec351d7478) 0 + QDomCharacterData (0x0x7fec351d74e0) 0 + QDomNode (0x0x7fec35254060) 0 + +Class QDomComment + size=8 align=8 + base size=8 base align=8 +QDomComment (0x0x7fec351d7548) 0 + QDomCharacterData (0x0x7fec351d75b0) 0 + QDomNode (0x0x7fec35254120) 0 + +Class QDomCDATASection + size=8 align=8 + base size=8 base align=8 +QDomCDATASection (0x0x7fec351d7618) 0 + QDomText (0x0x7fec351d7680) 0 + QDomCharacterData (0x0x7fec351d76e8) 0 + QDomNode (0x0x7fec352541e0) 0 + +Class QDomNotation + size=8 align=8 + base size=8 base align=8 +QDomNotation (0x0x7fec351d7750) 0 + QDomNode (0x0x7fec352542a0) 0 + +Class QDomEntity + size=8 align=8 + base size=8 base align=8 +QDomEntity (0x0x7fec351d77b8) 0 + QDomNode (0x0x7fec35254360) 0 + +Class QDomEntityReference + size=8 align=8 + base size=8 base align=8 +QDomEntityReference (0x0x7fec351d7820) 0 + QDomNode (0x0x7fec35254420) 0 + +Class QDomProcessingInstruction + size=8 align=8 + base size=8 base align=8 +QDomProcessingInstruction (0x0x7fec351d7888) 0 + QDomNode (0x0x7fec352544e0) 0 + +Class QOpenGLBuffer + size=8 align=8 + base size=8 base align=8 +QOpenGLBuffer (0x0x7fec352545a0) 0 + +Class QOpenGLDebugMessage + size=8 align=8 + base size=8 base align=8 +QOpenGLDebugMessage (0x0x7fec35254ae0) 0 + +Class QOpenGLDebugLogger::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLDebugLogger::QPrivateSignal (0x0x7fec34f44e40) 0 empty + +Vtable for QOpenGLDebugLogger +QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLDebugLogger) +16 (int (*)(...))QOpenGLDebugLogger::metaObject +24 (int (*)(...))QOpenGLDebugLogger::qt_metacast +32 (int (*)(...))QOpenGLDebugLogger::qt_metacall +40 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +48 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLDebugLogger + size=16 align=8 + base size=16 base align=8 +QOpenGLDebugLogger (0x0x7fec34f3ce38) 0 + vptr=((& QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger) + 16) + QObject (0x0x7fec34f44de0) 0 + primary-for QOpenGLDebugLogger (0x0x7fec34f3ce38) + +Vtable for QOpenGLFramebufferObject +QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLFramebufferObject) +16 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject +24 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject + +Class QOpenGLFramebufferObject + size=16 align=8 + base size=16 base align=8 +QOpenGLFramebufferObject (0x0x7fec3503e5a0) 0 + vptr=((& QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject) + 16) + +Class QOpenGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QOpenGLFramebufferObjectFormat (0x0x7fec3503e840) 0 + +Vtable for QOpenGLPaintDevice +QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLPaintDevice) +16 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +24 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +32 (int (*)(...))QOpenGLPaintDevice::devType +40 (int (*)(...))QOpenGLPaintDevice::paintEngine +48 (int (*)(...))QOpenGLPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QOpenGLPaintDevice::ensureActiveTarget + +Class QOpenGLPaintDevice + size=24 align=8 + base size=24 base align=8 +QOpenGLPaintDevice (0x0x7fec34f3cf08) 0 + vptr=((& QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice) + 16) + QPaintDevice (0x0x7fec3503e8a0) 0 + primary-for QOpenGLPaintDevice (0x0x7fec34f3cf08) + +Class QOpenGLPixelTransferOptions + size=8 align=8 + base size=8 base align=8 +QOpenGLPixelTransferOptions (0x0x7fec3503eae0) 0 + +Class QOpenGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShader::QPrivateSignal (0x0x7fec34cde1e0) 0 empty + +Vtable for QOpenGLShader +QOpenGLShader::_ZTV13QOpenGLShader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLShader) +16 (int (*)(...))QOpenGLShader::metaObject +24 (int (*)(...))QOpenGLShader::qt_metacast +32 (int (*)(...))QOpenGLShader::qt_metacall +40 (int (*)(...))QOpenGLShader::~QOpenGLShader +48 (int (*)(...))QOpenGLShader::~QOpenGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLShader + size=16 align=8 + base size=16 base align=8 +QOpenGLShader (0x0x7fec34cd78f0) 0 + vptr=((& QOpenGLShader::_ZTV13QOpenGLShader) + 16) + QObject (0x0x7fec34cde180) 0 + primary-for QOpenGLShader (0x0x7fec34cd78f0) + +Class QOpenGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShaderProgram::QPrivateSignal (0x0x7fec34cde780) 0 empty + +Vtable for QOpenGLShaderProgram +QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QOpenGLShaderProgram) +16 (int (*)(...))QOpenGLShaderProgram::metaObject +24 (int (*)(...))QOpenGLShaderProgram::qt_metacast +32 (int (*)(...))QOpenGLShaderProgram::qt_metacall +40 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +48 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOpenGLShaderProgram::link + +Class QOpenGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QOpenGLShaderProgram (0x0x7fec34cd7a90) 0 + vptr=((& QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram) + 16) + QObject (0x0x7fec34cde720) 0 + primary-for QOpenGLShaderProgram (0x0x7fec34cd7a90) + +Class QOpenGLTexture + size=8 align=8 + base size=8 base align=8 +QOpenGLTexture (0x0x7fec34cde900) 0 + +Class QOpenGLTextureBlitter + size=8 align=8 + base size=8 base align=8 +QOpenGLTextureBlitter (0x0x7fec34defae0) 0 + +Class QOpenGLTimerQuery::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimerQuery::QPrivateSignal (0x0x7fec34defd20) 0 empty + +Vtable for QOpenGLTimerQuery +QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOpenGLTimerQuery) +16 (int (*)(...))QOpenGLTimerQuery::metaObject +24 (int (*)(...))QOpenGLTimerQuery::qt_metacast +32 (int (*)(...))QOpenGLTimerQuery::qt_metacall +40 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +48 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimerQuery + size=16 align=8 + base size=16 base align=8 +QOpenGLTimerQuery (0x0x7fec34cd7c30) 0 + vptr=((& QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery) + 16) + QObject (0x0x7fec34defcc0) 0 + primary-for QOpenGLTimerQuery (0x0x7fec34cd7c30) + +Class QOpenGLTimeMonitor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimeMonitor::QPrivateSignal (0x0x7fec34deff00) 0 empty + +Vtable for QOpenGLTimeMonitor +QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLTimeMonitor) +16 (int (*)(...))QOpenGLTimeMonitor::metaObject +24 (int (*)(...))QOpenGLTimeMonitor::qt_metacast +32 (int (*)(...))QOpenGLTimeMonitor::qt_metacall +40 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +48 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimeMonitor + size=16 align=8 + base size=16 base align=8 +QOpenGLTimeMonitor (0x0x7fec34cd7c98) 0 + vptr=((& QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor) + 16) + QObject (0x0x7fec34defea0) 0 + primary-for QOpenGLTimeMonitor (0x0x7fec34cd7c98) + +Class QOpenGLVersionStatus + size=12 align=4 + base size=12 base align=4 +QOpenGLVersionStatus (0x0x7fec34e710c0) 0 + +Class QOpenGLVersionFunctionsBackend + size=16 align=8 + base size=12 base align=8 +QOpenGLVersionFunctionsBackend (0x0x7fec34b3b120) 0 + +Class QOpenGLVersionFunctionsStorage + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionFunctionsStorage (0x0x7fec34b3b300) 0 + +Class QAbstractOpenGLFunctionsPrivate + size=16 align=8 + base size=9 base align=8 +QAbstractOpenGLFunctionsPrivate (0x0x7fec34b3b360) 0 + +Vtable for QAbstractOpenGLFunctions +QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractOpenGLFunctions) +16 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +24 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +32 (int (*)(...))QAbstractOpenGLFunctions::initializeOpenGLFunctions + +Class QAbstractOpenGLFunctions + size=16 align=8 + base size=16 base align=8 +QAbstractOpenGLFunctions (0x0x7fec34b3b540) 0 + vptr=((& QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions) + 16) + +Class QOpenGLFunctions_1_0_CoreBackend::Functions + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_1_0_CoreBackend::Functions (0x0x7fec34b3b720) 0 + +Class QOpenGLFunctions_1_0_CoreBackend + size=400 align=8 + base size=400 base align=8 +QOpenGLFunctions_1_0_CoreBackend (0x0x7fec34b1e548) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34b3b6c0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend::Functions + size=128 align=8 + base size=128 base align=8 +QOpenGLFunctions_1_1_CoreBackend::Functions (0x0x7fec34b3ba80) 0 + +Class QOpenGLFunctions_1_1_CoreBackend + size=144 align=8 + base size=144 base align=8 +QOpenGLFunctions_1_1_CoreBackend (0x0x7fec34b1e5b0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34b3ba20) 0 + +Class QOpenGLFunctions_1_2_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_1_2_CoreBackend::Functions (0x0x7fec34b3bde0) 0 + +Class QOpenGLFunctions_1_2_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_1_2_CoreBackend (0x0x7fec34b1e618) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34b3bd80) 0 + +Class QOpenGLFunctions_1_3_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_3_CoreBackend::Functions (0x0x7fec34b75180) 0 + +Class QOpenGLFunctions_1_3_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_1_3_CoreBackend (0x0x7fec34b1e680) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34b75120) 0 + +Class QOpenGLFunctions_1_4_CoreBackend::Functions + size=56 align=8 + base size=56 base align=8 +QOpenGLFunctions_1_4_CoreBackend::Functions (0x0x7fec34b754e0) 0 + +Class QOpenGLFunctions_1_4_CoreBackend + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_4_CoreBackend (0x0x7fec34b1e6e8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34b75480) 0 + +Class QOpenGLFunctions_1_5_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_5_CoreBackend::Functions (0x0x7fec34b75840) 0 + +Class QOpenGLFunctions_1_5_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_1_5_CoreBackend (0x0x7fec34b1e750) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34b757e0) 0 + +Class QOpenGLFunctions_2_0_CoreBackend::Functions + size=744 align=8 + base size=744 base align=8 +QOpenGLFunctions_2_0_CoreBackend::Functions (0x0x7fec34b75ba0) 0 + +Class QOpenGLFunctions_2_0_CoreBackend + size=760 align=8 + base size=760 base align=8 +QOpenGLFunctions_2_0_CoreBackend (0x0x7fec34b1e7b8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34b75b40) 0 + +Class QOpenGLFunctions_2_1_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_2_1_CoreBackend::Functions (0x0x7fec34b75f00) 0 + +Class QOpenGLFunctions_2_1_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_2_1_CoreBackend (0x0x7fec34b1e820) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34b75ea0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend::Functions + size=672 align=8 + base size=672 base align=8 +QOpenGLFunctions_3_0_CoreBackend::Functions (0x0x7fec34bb12a0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend + size=688 align=8 + base size=688 base align=8 +QOpenGLFunctions_3_0_CoreBackend (0x0x7fec34b1e888) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34bb1240) 0 + +Class QOpenGLFunctions_3_1_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_3_1_CoreBackend::Functions (0x0x7fec34bb1600) 0 + +Class QOpenGLFunctions_3_1_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_3_1_CoreBackend (0x0x7fec34b1e8f0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34bb15a0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_3_2_CoreBackend::Functions (0x0x7fec34bb1960) 0 + +Class QOpenGLFunctions_3_2_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_3_2_CoreBackend (0x0x7fec34b1e958) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34bb1900) 0 + +Class QOpenGLFunctions_3_3_CoreBackend::Functions + size=464 align=8 + base size=464 base align=8 +QOpenGLFunctions_3_3_CoreBackend::Functions (0x0x7fec34bb1cc0) 0 + +Class QOpenGLFunctions_3_3_CoreBackend + size=480 align=8 + base size=480 base align=8 +QOpenGLFunctions_3_3_CoreBackend (0x0x7fec34b1e9c0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34bb1c60) 0 + +Class QOpenGLFunctions_4_0_CoreBackend::Functions + size=368 align=8 + base size=368 base align=8 +QOpenGLFunctions_4_0_CoreBackend::Functions (0x0x7fec34bf4060) 0 + +Class QOpenGLFunctions_4_0_CoreBackend + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_4_0_CoreBackend (0x0x7fec34b1ea28) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34bf4000) 0 + +Class QOpenGLFunctions_4_1_CoreBackend::Functions + size=704 align=8 + base size=704 base align=8 +QOpenGLFunctions_4_1_CoreBackend::Functions (0x0x7fec34bf43c0) 0 + +Class QOpenGLFunctions_4_1_CoreBackend + size=720 align=8 + base size=720 base align=8 +QOpenGLFunctions_4_1_CoreBackend (0x0x7fec34b1ea90) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34bf4360) 0 + +Class QOpenGLFunctions_4_2_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_2_CoreBackend::Functions (0x0x7fec34bf4720) 0 + +Class QOpenGLFunctions_4_2_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_2_CoreBackend (0x0x7fec34b1eaf8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34bf46c0) 0 + +Class QOpenGLFunctions_4_3_CoreBackend::Functions + size=344 align=8 + base size=344 base align=8 +QOpenGLFunctions_4_3_CoreBackend::Functions (0x0x7fec34bf4a80) 0 + +Class QOpenGLFunctions_4_3_CoreBackend + size=360 align=8 + base size=360 base align=8 +QOpenGLFunctions_4_3_CoreBackend (0x0x7fec34b1eb60) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34bf4a20) 0 + +Class QOpenGLFunctions_4_4_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_4_4_CoreBackend::Functions (0x0x7fec34bf4de0) 0 + +Class QOpenGLFunctions_4_4_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_4_4_CoreBackend (0x0x7fec34b1ebc8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34bf4d80) 0 + +Class QOpenGLFunctions_4_5_CoreBackend::Functions + size=848 align=8 + base size=848 base align=8 +QOpenGLFunctions_4_5_CoreBackend::Functions (0x0x7fec34c49180) 0 + +Class QOpenGLFunctions_4_5_CoreBackend + size=864 align=8 + base size=864 base align=8 +QOpenGLFunctions_4_5_CoreBackend (0x0x7fec34b1ec30) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34c49120) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend::Functions + size=2064 align=8 + base size=2064 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend::Functions (0x0x7fec34c494e0) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend + size=2080 align=8 + base size=2080 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend (0x0x7fec34b1ec98) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34c49480) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend::Functions + size=136 align=8 + base size=136 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend::Functions (0x0x7fec34c49840) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend (0x0x7fec34b1ed00) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34c497e0) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend::Functions + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend::Functions (0x0x7fec34c49ba0) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend + size=272 align=8 + base size=272 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend (0x0x7fec34b1ed68) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34c49b40) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend::Functions + size=296 align=8 + base size=296 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend::Functions (0x0x7fec34c49f00) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend + size=312 align=8 + base size=312 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend (0x0x7fec34b1edd0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34c49ea0) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend::Functions + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend::Functions (0x0x7fec348d42a0) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend + size=320 align=8 + base size=320 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend (0x0x7fec34b1ee38) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec348d4240) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend::Functions + size=288 align=8 + base size=288 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend::Functions (0x0x7fec348d4600) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend (0x0x7fec34b1eea0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec348d45a0) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend::Functions + size=160 align=8 + base size=160 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend::Functions (0x0x7fec348d4960) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend + size=176 align=8 + base size=176 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend (0x0x7fec34b1ef08) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec348d4900) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend::Functions + size=240 align=8 + base size=240 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend::Functions (0x0x7fec348d4cc0) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend (0x0x7fec34b1ef70) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec348d4c60) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend::Functions (0x0x7fec34905060) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend (0x0x7fec34904000) 0 + QOpenGLVersionFunctionsBackend (0x0x7fec34905000) 0 + +Class QOpenGLVersionProfile + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionProfile (0x0x7fec34905360) 0 + +Class QOpenGLVersionFunctionsFactory + size=1 align=1 + base size=0 base align=1 +QOpenGLVersionFunctionsFactory (0x0x7fec349054e0) 0 empty + +Class QOpenGLVertexArrayObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLVertexArrayObject::QPrivateSignal (0x0x7fec34905600) 0 empty + +Class QOpenGLVertexArrayObject::Binder + size=8 align=8 + base size=8 base align=8 +QOpenGLVertexArrayObject::Binder (0x0x7fec34905660) 0 + +Vtable for QOpenGLVertexArrayObject +QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLVertexArrayObject) +16 (int (*)(...))QOpenGLVertexArrayObject::metaObject +24 (int (*)(...))QOpenGLVertexArrayObject::qt_metacast +32 (int (*)(...))QOpenGLVertexArrayObject::qt_metacall +40 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +48 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLVertexArrayObject + size=16 align=8 + base size=16 base align=8 +QOpenGLVertexArrayObject (0x0x7fec34904068) 0 + vptr=((& QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject) + 16) + QObject (0x0x7fec349055a0) 0 + primary-for QOpenGLVertexArrayObject (0x0x7fec34904068) + +Class QOpenGLWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWindow::QPrivateSignal (0x0x7fec34905cc0) 0 empty + +Vtable for QOpenGLWindow +QOpenGLWindow::_ZTV13QOpenGLWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWindow) +16 (int (*)(...))QOpenGLWindow::metaObject +24 (int (*)(...))QOpenGLWindow::qt_metacast +32 (int (*)(...))QOpenGLWindow::qt_metacall +40 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +48 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QOpenGLWindow::resizeEvent +168 (int (*)(...))QOpenGLWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QOpenGLWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QOpenGLWindow::initializeGL +336 (int (*)(...))QOpenGLWindow::resizeGL +344 (int (*)(...))QOpenGLWindow::paintGL +352 (int (*)(...))QOpenGLWindow::paintUnderGL +360 (int (*)(...))QOpenGLWindow::paintOverGL +368 (int (*)(...))QOpenGLWindow::redirected +376 (int (*)(...))-16 +384 (int (*)(...))(& _ZTI13QOpenGLWindow) +392 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD1Ev +400 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD0Ev +408 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +416 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +424 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +432 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +440 (int (*)(...))-40 +448 (int (*)(...))(& _ZTI13QOpenGLWindow) +456 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD1Ev +464 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD0Ev +472 (int (*)(...))QPaintDevice::devType +480 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +488 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QPaintDevice::initPainter +504 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow10redirectedEP6QPoint +512 (int (*)(...))QPaintDevice::sharedPainter + +Class QOpenGLWindow + size=56 align=8 + base size=50 base align=8 +QOpenGLWindow (0x0x7fec34904138) 0 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 16) + QPaintDeviceWindow (0x0x7fec34b417e0) 0 + primary-for QOpenGLWindow (0x0x7fec34904138) + QWindow (0x0x7fec34b41850) 0 + primary-for QPaintDeviceWindow (0x0x7fec34b417e0) + QObject (0x0x7fec34905ba0) 0 + primary-for QWindow (0x0x7fec34b41850) + QSurface (0x0x7fec34905c00) 16 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 392) + QPaintDevice (0x0x7fec34905c60) 40 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 456) + +Class QOpenGLWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWidget::QPrivateSignal (0x0x7fec34905f00) 0 empty + +Vtable for QOpenGLWidget +QOpenGLWidget::_ZTV13QOpenGLWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWidget) +16 (int (*)(...))QOpenGLWidget::metaObject +24 (int (*)(...))QOpenGLWidget::qt_metacast +32 (int (*)(...))QOpenGLWidget::qt_metacall +40 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +48 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +56 (int (*)(...))QOpenGLWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QOpenGLWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QOpenGLWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QOpenGLWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QOpenGLWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QOpenGLWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QOpenGLWidget::initializeGL +440 (int (*)(...))QOpenGLWidget::resizeGL +448 (int (*)(...))QOpenGLWidget::paintGL +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI13QOpenGLWidget) +472 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD1Ev +480 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget11paintEngineEv +504 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QOpenGLWidget + size=40 align=8 + base size=40 base align=8 +QOpenGLWidget (0x0x7fec34904208) 0 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 16) + QWidget (0x0x7fec34b41a10) 0 + primary-for QOpenGLWidget (0x0x7fec34904208) + QObject (0x0x7fec34905e40) 0 + primary-for QWidget (0x0x7fec34b41a10) + QPaintDevice (0x0x7fec34905ea0) 16 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 472) + +Class QDesignerActionEditorInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerActionEditorInterface::QPrivateSignal (0x0x7fec3495c180) 0 empty + +Vtable for QDesignerActionEditorInterface +QDesignerActionEditorInterface::_ZTV30QDesignerActionEditorInterface: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QDesignerActionEditorInterface) +16 (int (*)(...))QDesignerActionEditorInterface::metaObject +24 (int (*)(...))QDesignerActionEditorInterface::qt_metacast +32 (int (*)(...))QDesignerActionEditorInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDesignerActionEditorInterface::core +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))__cxa_pure_virtual +456 (int (*)(...))__cxa_pure_virtual +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI30QDesignerActionEditorInterface) +480 0 +488 0 +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerActionEditorInterface + size=40 align=8 + base size=40 base align=8 +QDesignerActionEditorInterface (0x0x7fec349042d8) 0 + vptr=((& QDesignerActionEditorInterface::_ZTV30QDesignerActionEditorInterface) + 16) + QWidget (0x0x7fec34b41b60) 0 + primary-for QDesignerActionEditorInterface (0x0x7fec349042d8) + QObject (0x0x7fec3495c0c0) 0 + primary-for QWidget (0x0x7fec34b41b60) + QPaintDevice (0x0x7fec3495c120) 16 + vptr=((& QDesignerActionEditorInterface::_ZTV30QDesignerActionEditorInterface) + 480) + +Vtable for QDesignerDnDItemInterface +QDesignerDnDItemInterface::_ZTV25QDesignerDnDItemInterface: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QDesignerDnDItemInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QDesignerDnDItemInterface + size=8 align=8 + base size=8 base align=8 +QDesignerDnDItemInterface (0x0x7fec3495c240) 0 nearly-empty + vptr=((& QDesignerDnDItemInterface::_ZTV25QDesignerDnDItemInterface) + 16) + +Vtable for QAbstractFormBuilder +QAbstractFormBuilder::_ZTV20QAbstractFormBuilder: 42 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAbstractFormBuilder) +16 (int (*)(...))QAbstractFormBuilder::~QAbstractFormBuilder +24 (int (*)(...))QAbstractFormBuilder::~QAbstractFormBuilder +32 (int (*)(...))QAbstractFormBuilder::load +40 (int (*)(...))QAbstractFormBuilder::save +48 (int (*)(...))QAbstractFormBuilder::loadExtraInfo +56 (int (*)(...))QAbstractFormBuilder::create +64 (int (*)(...))QAbstractFormBuilder::create +72 (int (*)(...))QAbstractFormBuilder::create +80 (int (*)(...))QAbstractFormBuilder::create +88 (int (*)(...))QAbstractFormBuilder::create +96 (int (*)(...))QAbstractFormBuilder::create +104 (int (*)(...))QAbstractFormBuilder::addMenuAction +112 (int (*)(...))QAbstractFormBuilder::applyProperties +120 (int (*)(...))QAbstractFormBuilder::applyTabStops +128 (int (*)(...))QAbstractFormBuilder::createWidget +136 (int (*)(...))QAbstractFormBuilder::createLayout +144 (int (*)(...))QAbstractFormBuilder::createAction +152 (int (*)(...))QAbstractFormBuilder::createActionGroup +160 (int (*)(...))QAbstractFormBuilder::createCustomWidgets +168 (int (*)(...))QAbstractFormBuilder::createConnections +176 (int (*)(...))QAbstractFormBuilder::createResources +184 (int (*)(...))QAbstractFormBuilder::addItem +192 (int (*)(...))QAbstractFormBuilder::addItem +200 (int (*)(...))QAbstractFormBuilder::saveExtraInfo +208 (int (*)(...))QAbstractFormBuilder::saveDom +216 (int (*)(...))QAbstractFormBuilder::createActionRefDom +224 (int (*)(...))QAbstractFormBuilder::createDom +232 (int (*)(...))QAbstractFormBuilder::createDom +240 (int (*)(...))QAbstractFormBuilder::createDom +248 (int (*)(...))QAbstractFormBuilder::createDom +256 (int (*)(...))QAbstractFormBuilder::createDom +264 (int (*)(...))QAbstractFormBuilder::createDom +272 (int (*)(...))QAbstractFormBuilder::saveConnections +280 (int (*)(...))QAbstractFormBuilder::saveCustomWidgets +288 (int (*)(...))QAbstractFormBuilder::saveTabStops +296 (int (*)(...))QAbstractFormBuilder::saveResources +304 (int (*)(...))QAbstractFormBuilder::computeProperties +312 (int (*)(...))QAbstractFormBuilder::checkProperty +320 (int (*)(...))QAbstractFormBuilder::createProperty +328 (int (*)(...))QAbstractFormBuilder::layoutInfo + +Class QAbstractFormBuilder + size=16 align=8 + base size=16 base align=8 +QAbstractFormBuilder (0x0x7fec3495c2a0) 0 + vptr=((& QAbstractFormBuilder::_ZTV20QAbstractFormBuilder) + 16) + +Class QDesignerFormEditorInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerFormEditorInterface::QPrivateSignal (0x0x7fec3495c4e0) 0 empty + +Vtable for QDesignerFormEditorInterface +QDesignerFormEditorInterface::_ZTV28QDesignerFormEditorInterface: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QDesignerFormEditorInterface) +16 (int (*)(...))QDesignerFormEditorInterface::metaObject +24 (int (*)(...))QDesignerFormEditorInterface::qt_metacast +32 (int (*)(...))QDesignerFormEditorInterface::qt_metacall +40 (int (*)(...))QDesignerFormEditorInterface::~QDesignerFormEditorInterface +48 (int (*)(...))QDesignerFormEditorInterface::~QDesignerFormEditorInterface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDesignerFormEditorInterface + size=24 align=8 + base size=24 base align=8 +QDesignerFormEditorInterface (0x0x7fec34904340) 0 + vptr=((& QDesignerFormEditorInterface::_ZTV28QDesignerFormEditorInterface) + 16) + QObject (0x0x7fec3495c480) 0 + primary-for QDesignerFormEditorInterface (0x0x7fec34904340) + +Vtable for QDesignerFormEditorPluginInterface +QDesignerFormEditorPluginInterface::_ZTV34QDesignerFormEditorPluginInterface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI34QDesignerFormEditorPluginInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QDesignerFormEditorPluginInterface + size=8 align=8 + base size=8 base align=8 +QDesignerFormEditorPluginInterface (0x0x7fec3495c600) 0 nearly-empty + vptr=((& QDesignerFormEditorPluginInterface::_ZTV34QDesignerFormEditorPluginInterface) + 16) + +Class QDesignerFormWindowInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerFormWindowInterface::QPrivateSignal (0x0x7fec3495c8a0) 0 empty + +Vtable for QDesignerFormWindowInterface +QDesignerFormWindowInterface::_ZTV28QDesignerFormWindowInterface: 121 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QDesignerFormWindowInterface) +16 (int (*)(...))QDesignerFormWindowInterface::metaObject +24 (int (*)(...))QDesignerFormWindowInterface::qt_metacast +32 (int (*)(...))QDesignerFormWindowInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))__cxa_pure_virtual +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))__cxa_pure_virtual +456 (int (*)(...))__cxa_pure_virtual +464 (int (*)(...))__cxa_pure_virtual +472 (int (*)(...))__cxa_pure_virtual +480 (int (*)(...))__cxa_pure_virtual +488 (int (*)(...))__cxa_pure_virtual +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))__cxa_pure_virtual +528 (int (*)(...))__cxa_pure_virtual +536 (int (*)(...))__cxa_pure_virtual +544 (int (*)(...))__cxa_pure_virtual +552 (int (*)(...))__cxa_pure_virtual +560 (int (*)(...))__cxa_pure_virtual +568 (int (*)(...))__cxa_pure_virtual +576 (int (*)(...))__cxa_pure_virtual +584 (int (*)(...))__cxa_pure_virtual +592 (int (*)(...))__cxa_pure_virtual +600 (int (*)(...))__cxa_pure_virtual +608 (int (*)(...))__cxa_pure_virtual +616 (int (*)(...))__cxa_pure_virtual +624 (int (*)(...))__cxa_pure_virtual +632 (int (*)(...))QDesignerFormWindowInterface::core +640 (int (*)(...))__cxa_pure_virtual +648 (int (*)(...))__cxa_pure_virtual +656 (int (*)(...))__cxa_pure_virtual +664 (int (*)(...))__cxa_pure_virtual +672 (int (*)(...))__cxa_pure_virtual +680 (int (*)(...))__cxa_pure_virtual +688 (int (*)(...))__cxa_pure_virtual +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))__cxa_pure_virtual +736 (int (*)(...))__cxa_pure_virtual +744 (int (*)(...))__cxa_pure_virtual +752 (int (*)(...))__cxa_pure_virtual +760 (int (*)(...))__cxa_pure_virtual +768 (int (*)(...))__cxa_pure_virtual +776 (int (*)(...))__cxa_pure_virtual +784 (int (*)(...))__cxa_pure_virtual +792 (int (*)(...))__cxa_pure_virtual +800 (int (*)(...))__cxa_pure_virtual +808 (int (*)(...))__cxa_pure_virtual +816 (int (*)(...))__cxa_pure_virtual +824 (int (*)(...))__cxa_pure_virtual +832 (int (*)(...))__cxa_pure_virtual +840 (int (*)(...))__cxa_pure_virtual +848 (int (*)(...))__cxa_pure_virtual +856 (int (*)(...))__cxa_pure_virtual +864 (int (*)(...))__cxa_pure_virtual +872 (int (*)(...))__cxa_pure_virtual +880 (int (*)(...))__cxa_pure_virtual +888 (int (*)(...))-16 +896 (int (*)(...))(& _ZTI28QDesignerFormWindowInterface) +904 0 +912 0 +920 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +928 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +936 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +944 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +952 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +960 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerFormWindowInterface + size=40 align=8 + base size=40 base align=8 +QDesignerFormWindowInterface (0x0x7fec349043a8) 0 + vptr=((& QDesignerFormWindowInterface::_ZTV28QDesignerFormWindowInterface) + 16) + QWidget (0x0x7fec34b41cb0) 0 + primary-for QDesignerFormWindowInterface (0x0x7fec349043a8) + QObject (0x0x7fec3495c7e0) 0 + primary-for QWidget (0x0x7fec34b41cb0) + QPaintDevice (0x0x7fec3495c840) 16 + vptr=((& QDesignerFormWindowInterface::_ZTV28QDesignerFormWindowInterface) + 904) + +Vtable for QDesignerFormWindowCursorInterface +QDesignerFormWindowCursorInterface::_ZTV34QDesignerFormWindowCursorInterface: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI34QDesignerFormWindowCursorInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual + +Class QDesignerFormWindowCursorInterface + size=8 align=8 + base size=8 base align=8 +QDesignerFormWindowCursorInterface (0x0x7fec3495ca20) 0 nearly-empty + vptr=((& QDesignerFormWindowCursorInterface::_ZTV34QDesignerFormWindowCursorInterface) + 16) + +Class QDesignerFormWindowManagerInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerFormWindowManagerInterface::QPrivateSignal (0x0x7fec3495cae0) 0 empty + +Vtable for QDesignerFormWindowManagerInterface +QDesignerFormWindowManagerInterface::_ZTV35QDesignerFormWindowManagerInterface: 29 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI35QDesignerFormWindowManagerInterface) +16 (int (*)(...))QDesignerFormWindowManagerInterface::metaObject +24 (int (*)(...))QDesignerFormWindowManagerInterface::qt_metacast +32 (int (*)(...))QDesignerFormWindowManagerInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual + +Class QDesignerFormWindowManagerInterface + size=16 align=8 + base size=16 base align=8 +QDesignerFormWindowManagerInterface (0x0x7fec34904410) 0 + vptr=((& QDesignerFormWindowManagerInterface::_ZTV35QDesignerFormWindowManagerInterface) + 16) + QObject (0x0x7fec3495ca80) 0 + primary-for QDesignerFormWindowManagerInterface (0x0x7fec34904410) + +Class QDesignerFormWindowToolInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerFormWindowToolInterface::QPrivateSignal (0x0x7fec3495cde0) 0 empty + +Vtable for QDesignerFormWindowToolInterface +QDesignerFormWindowToolInterface::_ZTV32QDesignerFormWindowToolInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QDesignerFormWindowToolInterface) +16 (int (*)(...))QDesignerFormWindowToolInterface::metaObject +24 (int (*)(...))QDesignerFormWindowToolInterface::qt_metacast +32 (int (*)(...))QDesignerFormWindowToolInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QDesignerFormWindowToolInterface::saveToDom +168 (int (*)(...))QDesignerFormWindowToolInterface::loadFromDom +176 (int (*)(...))__cxa_pure_virtual + +Class QDesignerFormWindowToolInterface + size=16 align=8 + base size=16 base align=8 +QDesignerFormWindowToolInterface (0x0x7fec34904478) 0 + vptr=((& QDesignerFormWindowToolInterface::_ZTV32QDesignerFormWindowToolInterface) + 16) + QObject (0x0x7fec3495cd80) 0 + primary-for QDesignerFormWindowToolInterface (0x0x7fec34904478) + +Class QDesignerIntegrationInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerIntegrationInterface::QPrivateSignal (0x0x7fec34a13000) 0 empty + +Vtable for QDesignerIntegrationInterface +QDesignerIntegrationInterface::_ZTV29QDesignerIntegrationInterface: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QDesignerIntegrationInterface) +16 (int (*)(...))QDesignerIntegrationInterface::metaObject +24 (int (*)(...))QDesignerIntegrationInterface::qt_metacast +32 (int (*)(...))QDesignerIntegrationInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual + +Class QDesignerIntegrationInterface + size=24 align=8 + base size=24 base align=8 +QDesignerIntegrationInterface (0x0x7fec349044e0) 0 + vptr=((& QDesignerIntegrationInterface::_ZTV29QDesignerIntegrationInterface) + 16) + QObject (0x0x7fec3495cf60) 0 + primary-for QDesignerIntegrationInterface (0x0x7fec349044e0) + +Class QDesignerIntegration::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerIntegration::QPrivateSignal (0x0x7fec34a13240) 0 empty + +Vtable for QDesignerIntegration +QDesignerIntegration::_ZTV20QDesignerIntegration: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDesignerIntegration) +16 (int (*)(...))QDesignerIntegration::metaObject +24 (int (*)(...))QDesignerIntegration::qt_metacast +32 (int (*)(...))QDesignerIntegration::qt_metacall +40 (int (*)(...))QDesignerIntegration::~QDesignerIntegration +48 (int (*)(...))QDesignerIntegration::~QDesignerIntegration +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDesignerIntegration::containerWindow +120 (int (*)(...))QDesignerIntegration::createResourceBrowser +128 (int (*)(...))QDesignerIntegration::headerSuffix +136 (int (*)(...))QDesignerIntegration::setHeaderSuffix +144 (int (*)(...))QDesignerIntegration::isHeaderLowercase +152 (int (*)(...))QDesignerIntegration::setHeaderLowercase +160 (int (*)(...))QDesignerIntegration::features +168 (int (*)(...))QDesignerIntegration::resourceFileWatcherBehaviour +176 (int (*)(...))QDesignerIntegration::setResourceFileWatcherBehaviour +184 (int (*)(...))QDesignerIntegration::contextHelpId +192 (int (*)(...))QDesignerIntegration::setFeatures +200 (int (*)(...))QDesignerIntegration::updateProperty +208 (int (*)(...))QDesignerIntegration::updateProperty +216 (int (*)(...))QDesignerIntegration::resetProperty +224 (int (*)(...))QDesignerIntegration::addDynamicProperty +232 (int (*)(...))QDesignerIntegration::removeDynamicProperty +240 (int (*)(...))QDesignerIntegration::updateActiveFormWindow +248 (int (*)(...))QDesignerIntegration::setupFormWindow +256 (int (*)(...))QDesignerIntegration::updateSelection +264 (int (*)(...))QDesignerIntegration::updateCustomWidgetPlugins + +Class QDesignerIntegration + size=32 align=8 + base size=32 base align=8 +QDesignerIntegration (0x0x7fec34904548) 0 + vptr=((& QDesignerIntegration::_ZTV20QDesignerIntegration) + 16) + QDesignerIntegrationInterface (0x0x7fec349045b0) 0 + primary-for QDesignerIntegration (0x0x7fec34904548) + QObject (0x0x7fec34a131e0) 0 + primary-for QDesignerIntegrationInterface (0x0x7fec349045b0) + +Vtable for QAbstractExtensionFactory +QAbstractExtensionFactory::_ZTV25QAbstractExtensionFactory: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractExtensionFactory) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractExtensionFactory + size=8 align=8 + base size=8 base align=8 +QAbstractExtensionFactory (0x0x7fec34a13360) 0 nearly-empty + vptr=((& QAbstractExtensionFactory::_ZTV25QAbstractExtensionFactory) + 16) + +Vtable for QAbstractExtensionManager +QAbstractExtensionManager::_ZTV25QAbstractExtensionManager: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractExtensionManager) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAbstractExtensionManager + size=8 align=8 + base size=8 base align=8 +QAbstractExtensionManager (0x0x7fec34a13720) 0 nearly-empty + vptr=((& QAbstractExtensionManager::_ZTV25QAbstractExtensionManager) + 16) + +Vtable for QDesignerLanguageExtension +QDesignerLanguageExtension::_ZTV26QDesignerLanguageExtension: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QDesignerLanguageExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual + +Class QDesignerLanguageExtension + size=8 align=8 + base size=8 base align=8 +QDesignerLanguageExtension (0x0x7fec34a13b40) 0 nearly-empty + vptr=((& QDesignerLanguageExtension::_ZTV26QDesignerLanguageExtension) + 16) + +Vtable for QDesignerMetaDataBaseItemInterface +QDesignerMetaDataBaseItemInterface::_ZTV34QDesignerMetaDataBaseItemInterface: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI34QDesignerMetaDataBaseItemInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QDesignerMetaDataBaseItemInterface + size=8 align=8 + base size=8 base align=8 +QDesignerMetaDataBaseItemInterface (0x0x7fec34a13d80) 0 nearly-empty + vptr=((& QDesignerMetaDataBaseItemInterface::_ZTV34QDesignerMetaDataBaseItemInterface) + 16) + +Class QDesignerMetaDataBaseInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerMetaDataBaseInterface::QPrivateSignal (0x0x7fec34a13e40) 0 empty + +Vtable for QDesignerMetaDataBaseInterface +QDesignerMetaDataBaseInterface::_ZTV30QDesignerMetaDataBaseInterface: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QDesignerMetaDataBaseInterface) +16 (int (*)(...))QDesignerMetaDataBaseInterface::metaObject +24 (int (*)(...))QDesignerMetaDataBaseInterface::qt_metacast +32 (int (*)(...))QDesignerMetaDataBaseInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual + +Class QDesignerMetaDataBaseInterface + size=16 align=8 + base size=16 base align=8 +QDesignerMetaDataBaseInterface (0x0x7fec34904618) 0 + vptr=((& QDesignerMetaDataBaseInterface::_ZTV30QDesignerMetaDataBaseInterface) + 16) + QObject (0x0x7fec34a13de0) 0 + primary-for QDesignerMetaDataBaseInterface (0x0x7fec34904618) + +Class QDesignerNewFormWidgetInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerNewFormWidgetInterface::QPrivateSignal (0x0x7fec34a77000) 0 empty + +Vtable for QDesignerNewFormWidgetInterface +QDesignerNewFormWidgetInterface::_ZTV31QDesignerNewFormWidgetInterface: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI31QDesignerNewFormWidgetInterface) +16 (int (*)(...))QDesignerNewFormWidgetInterface::metaObject +24 (int (*)(...))QDesignerNewFormWidgetInterface::qt_metacast +32 (int (*)(...))QDesignerNewFormWidgetInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))__cxa_pure_virtual +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI31QDesignerNewFormWidgetInterface) +464 0 +472 0 +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerNewFormWidgetInterface + size=40 align=8 + base size=40 base align=8 +QDesignerNewFormWidgetInterface (0x0x7fec34904680) 0 + vptr=((& QDesignerNewFormWidgetInterface::_ZTV31QDesignerNewFormWidgetInterface) + 16) + QWidget (0x0x7fec34a171c0) 0 + primary-for QDesignerNewFormWidgetInterface (0x0x7fec34904680) + QObject (0x0x7fec34a13f00) 0 + primary-for QWidget (0x0x7fec34a171c0) + QPaintDevice (0x0x7fec34a13f60) 16 + vptr=((& QDesignerNewFormWidgetInterface::_ZTV31QDesignerNewFormWidgetInterface) + 464) + +Class QDesignerObjectInspectorInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerObjectInspectorInterface::QPrivateSignal (0x0x7fec34a77180) 0 empty + +Vtable for QDesignerObjectInspectorInterface +QDesignerObjectInspectorInterface::_ZTV33QDesignerObjectInspectorInterface: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI33QDesignerObjectInspectorInterface) +16 (int (*)(...))QDesignerObjectInspectorInterface::metaObject +24 (int (*)(...))QDesignerObjectInspectorInterface::qt_metacast +32 (int (*)(...))QDesignerObjectInspectorInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDesignerObjectInspectorInterface::core +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI33QDesignerObjectInspectorInterface) +464 0 +472 0 +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerObjectInspectorInterface + size=40 align=8 + base size=40 base align=8 +QDesignerObjectInspectorInterface (0x0x7fec349046e8) 0 + vptr=((& QDesignerObjectInspectorInterface::_ZTV33QDesignerObjectInspectorInterface) + 16) + QWidget (0x0x7fec34a17230) 0 + primary-for QDesignerObjectInspectorInterface (0x0x7fec349046e8) + QObject (0x0x7fec34a770c0) 0 + primary-for QWidget (0x0x7fec34a17230) + QPaintDevice (0x0x7fec34a77120) 16 + vptr=((& QDesignerObjectInspectorInterface::_ZTV33QDesignerObjectInspectorInterface) + 464) + +Vtable for QDesignerOptionsPageInterface +QDesignerOptionsPageInterface::_ZTV29QDesignerOptionsPageInterface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QDesignerOptionsPageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QDesignerOptionsPageInterface + size=8 align=8 + base size=8 base align=8 +QDesignerOptionsPageInterface (0x0x7fec34a77240) 0 nearly-empty + vptr=((& QDesignerOptionsPageInterface::_ZTV29QDesignerOptionsPageInterface) + 16) + +Class QDesignerPromotionInterface::PromotedClass + size=16 align=8 + base size=16 base align=8 +QDesignerPromotionInterface::PromotedClass (0x0x7fec34a77300) 0 + +Vtable for QDesignerPromotionInterface +QDesignerPromotionInterface::_ZTV27QDesignerPromotionInterface: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDesignerPromotionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual + +Class QDesignerPromotionInterface + size=8 align=8 + base size=8 base align=8 +QDesignerPromotionInterface (0x0x7fec34a772a0) 0 nearly-empty + vptr=((& QDesignerPromotionInterface::_ZTV27QDesignerPromotionInterface) + 16) + +Class QDesignerPropertyEditorInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerPropertyEditorInterface::QPrivateSignal (0x0x7fec34a77420) 0 empty + +Vtable for QDesignerPropertyEditorInterface +QDesignerPropertyEditorInterface::_ZTV32QDesignerPropertyEditorInterface: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QDesignerPropertyEditorInterface) +16 (int (*)(...))QDesignerPropertyEditorInterface::metaObject +24 (int (*)(...))QDesignerPropertyEditorInterface::qt_metacast +32 (int (*)(...))QDesignerPropertyEditorInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDesignerPropertyEditorInterface::core +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))__cxa_pure_virtual +456 (int (*)(...))__cxa_pure_virtual +464 (int (*)(...))__cxa_pure_virtual +472 (int (*)(...))__cxa_pure_virtual +480 (int (*)(...))__cxa_pure_virtual +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI32QDesignerPropertyEditorInterface) +504 0 +512 0 +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerPropertyEditorInterface + size=40 align=8 + base size=40 base align=8 +QDesignerPropertyEditorInterface (0x0x7fec34904750) 0 + vptr=((& QDesignerPropertyEditorInterface::_ZTV32QDesignerPropertyEditorInterface) + 16) + QWidget (0x0x7fec34a172a0) 0 + primary-for QDesignerPropertyEditorInterface (0x0x7fec34904750) + QObject (0x0x7fec34a77360) 0 + primary-for QWidget (0x0x7fec34a172a0) + QPaintDevice (0x0x7fec34a773c0) 16 + vptr=((& QDesignerPropertyEditorInterface::_ZTV32QDesignerPropertyEditorInterface) + 504) + +Class QDesignerResourceBrowserInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerResourceBrowserInterface::QPrivateSignal (0x0x7fec34a775a0) 0 empty + +Vtable for QDesignerResourceBrowserInterface +QDesignerResourceBrowserInterface::_ZTV33QDesignerResourceBrowserInterface: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI33QDesignerResourceBrowserInterface) +16 (int (*)(...))QDesignerResourceBrowserInterface::metaObject +24 (int (*)(...))QDesignerResourceBrowserInterface::qt_metacast +32 (int (*)(...))QDesignerResourceBrowserInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))__cxa_pure_virtual +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI33QDesignerResourceBrowserInterface) +464 0 +472 0 +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerResourceBrowserInterface + size=40 align=8 + base size=40 base align=8 +QDesignerResourceBrowserInterface (0x0x7fec349047b8) 0 + vptr=((& QDesignerResourceBrowserInterface::_ZTV33QDesignerResourceBrowserInterface) + 16) + QWidget (0x0x7fec34a17310) 0 + primary-for QDesignerResourceBrowserInterface (0x0x7fec349047b8) + QObject (0x0x7fec34a774e0) 0 + primary-for QWidget (0x0x7fec34a17310) + QPaintDevice (0x0x7fec34a77540) 16 + vptr=((& QDesignerResourceBrowserInterface::_ZTV33QDesignerResourceBrowserInterface) + 464) + +Vtable for QDesignerSettingsInterface +QDesignerSettingsInterface::_ZTV26QDesignerSettingsInterface: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QDesignerSettingsInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QDesignerSettingsInterface + size=8 align=8 + base size=8 base align=8 +QDesignerSettingsInterface (0x0x7fec34a77660) 0 nearly-empty + vptr=((& QDesignerSettingsInterface::_ZTV26QDesignerSettingsInterface) + 16) + +Class QDesignerWidgetBoxInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerWidgetBoxInterface::QPrivateSignal (0x0x7fec34a77780) 0 empty + +Class QDesignerWidgetBoxInterface::Widget + size=8 align=8 + base size=8 base align=8 +QDesignerWidgetBoxInterface::Widget (0x0x7fec34a777e0) 0 + +Class QDesignerWidgetBoxInterface::Category + size=56 align=8 + base size=56 base align=8 +QDesignerWidgetBoxInterface::Category (0x0x7fec34a778a0) 0 + +Vtable for QDesignerWidgetBoxInterface +QDesignerWidgetBoxInterface::_ZTV27QDesignerWidgetBoxInterface: 77 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDesignerWidgetBoxInterface) +16 (int (*)(...))QDesignerWidgetBoxInterface::metaObject +24 (int (*)(...))QDesignerWidgetBoxInterface::qt_metacast +32 (int (*)(...))QDesignerWidgetBoxInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))__cxa_pure_virtual +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))__cxa_pure_virtual +456 (int (*)(...))__cxa_pure_virtual +464 (int (*)(...))__cxa_pure_virtual +472 (int (*)(...))__cxa_pure_virtual +480 (int (*)(...))__cxa_pure_virtual +488 (int (*)(...))__cxa_pure_virtual +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))__cxa_pure_virtual +528 (int (*)(...))__cxa_pure_virtual +536 (int (*)(...))-16 +544 (int (*)(...))(& _ZTI27QDesignerWidgetBoxInterface) +552 0 +560 0 +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesignerWidgetBoxInterface + size=40 align=8 + base size=40 base align=8 +QDesignerWidgetBoxInterface (0x0x7fec34904820) 0 + vptr=((& QDesignerWidgetBoxInterface::_ZTV27QDesignerWidgetBoxInterface) + 16) + QWidget (0x0x7fec34a17380) 0 + primary-for QDesignerWidgetBoxInterface (0x0x7fec34904820) + QObject (0x0x7fec34a776c0) 0 + primary-for QWidget (0x0x7fec34a17380) + QPaintDevice (0x0x7fec34a77720) 16 + vptr=((& QDesignerWidgetBoxInterface::_ZTV27QDesignerWidgetBoxInterface) + 552) + +Vtable for QDesignerWidgetDataBaseItemInterface +QDesignerWidgetDataBaseItemInterface::_ZTV36QDesignerWidgetDataBaseItemInterface: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI36QDesignerWidgetDataBaseItemInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual + +Class QDesignerWidgetDataBaseItemInterface + size=8 align=8 + base size=8 base align=8 +QDesignerWidgetDataBaseItemInterface (0x0x7fec34784de0) 0 nearly-empty + vptr=((& QDesignerWidgetDataBaseItemInterface::_ZTV36QDesignerWidgetDataBaseItemInterface) + 16) + +Class QDesignerWidgetDataBaseInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerWidgetDataBaseInterface::QPrivateSignal (0x0x7fec34784f00) 0 empty + +Vtable for QDesignerWidgetDataBaseInterface +QDesignerWidgetDataBaseInterface::_ZTV32QDesignerWidgetDataBaseInterface: 22 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QDesignerWidgetDataBaseInterface) +16 (int (*)(...))QDesignerWidgetDataBaseInterface::metaObject +24 (int (*)(...))QDesignerWidgetDataBaseInterface::qt_metacast +32 (int (*)(...))QDesignerWidgetDataBaseInterface::qt_metacall +40 (int (*)(...))QDesignerWidgetDataBaseInterface::~QDesignerWidgetDataBaseInterface +48 (int (*)(...))QDesignerWidgetDataBaseInterface::~QDesignerWidgetDataBaseInterface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDesignerWidgetDataBaseInterface::count +120 (int (*)(...))QDesignerWidgetDataBaseInterface::item +128 (int (*)(...))QDesignerWidgetDataBaseInterface::indexOf +136 (int (*)(...))QDesignerWidgetDataBaseInterface::insert +144 (int (*)(...))QDesignerWidgetDataBaseInterface::append +152 (int (*)(...))QDesignerWidgetDataBaseInterface::indexOfObject +160 (int (*)(...))QDesignerWidgetDataBaseInterface::indexOfClassName +168 (int (*)(...))QDesignerWidgetDataBaseInterface::core + +Class QDesignerWidgetDataBaseInterface + size=40 align=8 + base size=40 base align=8 +QDesignerWidgetDataBaseInterface (0x0x7fec347b3750) 0 + vptr=((& QDesignerWidgetDataBaseInterface::_ZTV32QDesignerWidgetDataBaseInterface) + 16) + QObject (0x0x7fec34784ea0) 0 + primary-for QDesignerWidgetDataBaseInterface (0x0x7fec347b3750) + +Class QDesignerWidgetFactoryInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesignerWidgetFactoryInterface::QPrivateSignal (0x0x7fec347d4900) 0 empty + +Vtable for QDesignerWidgetFactoryInterface +QDesignerWidgetFactoryInterface::_ZTV31QDesignerWidgetFactoryInterface: 21 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI31QDesignerWidgetFactoryInterface) +16 (int (*)(...))QDesignerWidgetFactoryInterface::metaObject +24 (int (*)(...))QDesignerWidgetFactoryInterface::qt_metacast +32 (int (*)(...))QDesignerWidgetFactoryInterface::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual + +Class QDesignerWidgetFactoryInterface + size=16 align=8 + base size=16 base align=8 +QDesignerWidgetFactoryInterface (0x0x7fec347b3f70) 0 + vptr=((& QDesignerWidgetFactoryInterface::_ZTV31QDesignerWidgetFactoryInterface) + 16) + QObject (0x0x7fec347d48a0) 0 + primary-for QDesignerWidgetFactoryInterface (0x0x7fec347b3f70) + +Vtable for QDesignerContainerExtension +QDesignerContainerExtension::_ZTV27QDesignerContainerExtension: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDesignerContainerExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual + +Class QDesignerContainerExtension + size=8 align=8 + base size=8 base align=8 +QDesignerContainerExtension (0x0x7fec347d49c0) 0 nearly-empty + vptr=((& QDesignerContainerExtension::_ZTV27QDesignerContainerExtension) + 16) + +Vtable for QDesignerDynamicPropertySheetExtension +QDesignerDynamicPropertySheetExtension::_ZTV38QDesignerDynamicPropertySheetExtension: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI38QDesignerDynamicPropertySheetExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QDesignerDynamicPropertySheetExtension + size=8 align=8 + base size=8 base align=8 +QDesignerDynamicPropertySheetExtension (0x0x7fec347d4c00) 0 nearly-empty + vptr=((& QDesignerDynamicPropertySheetExtension::_ZTV38QDesignerDynamicPropertySheetExtension) + 16) + +Vtable for QDesignerExtraInfoExtension +QDesignerExtraInfoExtension::_ZTV27QDesignerExtraInfoExtension: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDesignerExtraInfoExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QDesignerExtraInfoExtension + size=32 align=8 + base size=32 base align=8 +QDesignerExtraInfoExtension (0x0x7fec347d4ea0) 0 + vptr=((& QDesignerExtraInfoExtension::_ZTV27QDesignerExtraInfoExtension) + 16) + +Vtable for QFormBuilder +QFormBuilder::_ZTV12QFormBuilder: 43 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QFormBuilder) +16 (int (*)(...))QFormBuilder::~QFormBuilder +24 (int (*)(...))QFormBuilder::~QFormBuilder +32 (int (*)(...))QAbstractFormBuilder::load +40 (int (*)(...))QAbstractFormBuilder::save +48 (int (*)(...))QAbstractFormBuilder::loadExtraInfo +56 (int (*)(...))QFormBuilder::create +64 (int (*)(...))QFormBuilder::create +72 (int (*)(...))QFormBuilder::create +80 (int (*)(...))QFormBuilder::create +88 (int (*)(...))QFormBuilder::create +96 (int (*)(...))QFormBuilder::create +104 (int (*)(...))QAbstractFormBuilder::addMenuAction +112 (int (*)(...))QFormBuilder::applyProperties +120 (int (*)(...))QAbstractFormBuilder::applyTabStops +128 (int (*)(...))QFormBuilder::createWidget +136 (int (*)(...))QFormBuilder::createLayout +144 (int (*)(...))QAbstractFormBuilder::createAction +152 (int (*)(...))QAbstractFormBuilder::createActionGroup +160 (int (*)(...))QAbstractFormBuilder::createCustomWidgets +168 (int (*)(...))QFormBuilder::createConnections +176 (int (*)(...))QAbstractFormBuilder::createResources +184 (int (*)(...))QFormBuilder::addItem +192 (int (*)(...))QFormBuilder::addItem +200 (int (*)(...))QAbstractFormBuilder::saveExtraInfo +208 (int (*)(...))QAbstractFormBuilder::saveDom +216 (int (*)(...))QAbstractFormBuilder::createActionRefDom +224 (int (*)(...))QAbstractFormBuilder::createDom +232 (int (*)(...))QAbstractFormBuilder::createDom +240 (int (*)(...))QAbstractFormBuilder::createDom +248 (int (*)(...))QAbstractFormBuilder::createDom +256 (int (*)(...))QAbstractFormBuilder::createDom +264 (int (*)(...))QAbstractFormBuilder::createDom +272 (int (*)(...))QAbstractFormBuilder::saveConnections +280 (int (*)(...))QAbstractFormBuilder::saveCustomWidgets +288 (int (*)(...))QAbstractFormBuilder::saveTabStops +296 (int (*)(...))QAbstractFormBuilder::saveResources +304 (int (*)(...))QAbstractFormBuilder::computeProperties +312 (int (*)(...))QAbstractFormBuilder::checkProperty +320 (int (*)(...))QAbstractFormBuilder::createProperty +328 (int (*)(...))QAbstractFormBuilder::layoutInfo +336 (int (*)(...))QFormBuilder::updateCustomWidgets + +Class QFormBuilder + size=16 align=8 + base size=16 base align=8 +QFormBuilder (0x0x7fec347b3f08) 0 + vptr=((& QFormBuilder::_ZTV12QFormBuilder) + 16) + QAbstractFormBuilder (0x0x7fec348640c0) 0 + primary-for QFormBuilder (0x0x7fec347b3f08) + +Vtable for QDesignerLayoutDecorationExtension +QDesignerLayoutDecorationExtension::_ZTV34QDesignerLayoutDecorationExtension: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI34QDesignerLayoutDecorationExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual + +Class QDesignerLayoutDecorationExtension + size=8 align=8 + base size=8 base align=8 +QDesignerLayoutDecorationExtension (0x0x7fec34864120) 0 nearly-empty + vptr=((& QDesignerLayoutDecorationExtension::_ZTV34QDesignerLayoutDecorationExtension) + 16) + +Vtable for QDesignerMemberSheetExtension +QDesignerMemberSheetExtension::_ZTV29QDesignerMemberSheetExtension: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QDesignerMemberSheetExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual + +Class QDesignerMemberSheetExtension + size=8 align=8 + base size=8 base align=8 +QDesignerMemberSheetExtension (0x0x7fec34864360) 0 nearly-empty + vptr=((& QDesignerMemberSheetExtension::_ZTV29QDesignerMemberSheetExtension) + 16) + +Vtable for QDesignerPropertySheetExtension +QDesignerPropertySheetExtension::_ZTV31QDesignerPropertySheetExtension: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI31QDesignerPropertySheetExtension) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QDesignerPropertySheetExtension + size=8 align=8 + base size=8 base align=8 +QDesignerPropertySheetExtension (0x0x7fec348645a0) 0 nearly-empty + vptr=((& QDesignerPropertySheetExtension::_ZTV31QDesignerPropertySheetExtension) + 16) + +Class QExtensionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QExtensionManager::QPrivateSignal (0x0x7fec348648a0) 0 empty + +Vtable for QExtensionManager +QExtensionManager::_ZTV17QExtensionManager: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QExtensionManager) +16 (int (*)(...))QExtensionManager::metaObject +24 (int (*)(...))QExtensionManager::qt_metacast +32 (int (*)(...))QExtensionManager::qt_metacall +40 (int (*)(...))QExtensionManager::~QExtensionManager +48 (int (*)(...))QExtensionManager::~QExtensionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QExtensionManager::registerExtensions +120 (int (*)(...))QExtensionManager::unregisterExtensions +128 (int (*)(...))QExtensionManager::extension +136 (int (*)(...))-16 +144 (int (*)(...))(& _ZTI17QExtensionManager) +152 (int (*)(...))QExtensionManager::_ZThn16_N17QExtensionManagerD1Ev +160 (int (*)(...))QExtensionManager::_ZThn16_N17QExtensionManagerD0Ev +168 (int (*)(...))QExtensionManager::_ZThn16_N17QExtensionManager18registerExtensionsEP25QAbstractExtensionFactoryRK7QString +176 (int (*)(...))QExtensionManager::_ZThn16_N17QExtensionManager20unregisterExtensionsEP25QAbstractExtensionFactoryRK7QString +184 (int (*)(...))QExtensionManager::_ZThn16_NK17QExtensionManager9extensionEP7QObjectRK7QString + +Class QExtensionManager + size=56 align=8 + base size=56 base align=8 +QExtensionManager (0x0x7fec34a177e0) 0 + vptr=((& QExtensionManager::_ZTV17QExtensionManager) + 16) + QObject (0x0x7fec348647e0) 0 + primary-for QExtensionManager (0x0x7fec34a177e0) + QAbstractExtensionManager (0x0x7fec34864840) 16 nearly-empty + vptr=((& QExtensionManager::_ZTV17QExtensionManager) + 152) + +Vtable for QDesignerTaskMenuExtension +QDesignerTaskMenuExtension::_ZTV26QDesignerTaskMenuExtension: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QDesignerTaskMenuExtension) +16 0 +24 0 +32 (int (*)(...))QDesignerTaskMenuExtension::preferredEditAction +40 (int (*)(...))__cxa_pure_virtual + +Class QDesignerTaskMenuExtension + size=8 align=8 + base size=8 base align=8 +QDesignerTaskMenuExtension (0x0x7fec344d9360) 0 nearly-empty + vptr=((& QDesignerTaskMenuExtension::_ZTV26QDesignerTaskMenuExtension) + 16) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec3454d480) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec3454d7e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec3454d9c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec3454dd20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec3454df00) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec34578240) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec345783c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec34578720) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec34578900) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec34578c60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec34578e40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec345a61e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec345a63c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec345a6720) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec345a6900) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec345a6c60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec345fd540) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec345fd8a0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec345fda20) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec345fdd80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec345fdf00) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec346242a0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec34624420) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec34624780) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec34624900) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec34624c60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec34624de0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec3464f180) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec3464f300) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec3464f660) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fec3464f7e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fec3464fb40) 0 empty + +Class QtPrivate::q_relocate_overlap_n_left_move(iterator, N, iterator) [with iterator = QDesignerWidgetBoxInterface::Widget*; N = long long int]::Destructor + size=24 align=8 + base size=24 base align=8 +QtPrivate::q_relocate_overlap_n_left_move(iterator, N, iterator) [with iterator = QDesignerWidgetBoxInterface::Widget*; N = long long int]::Destructor (0x0x7fec2eb65840) 0 + diff --git a/tests/auto/bic/data/QtHelp.6.0.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtHelp.6.0.0.linux-gcc-amd64.txt new file mode 100644 index 0000000..abb64b2 --- /dev/null +++ b/tests/auto/bic/data/QtHelp.6.0.0.linux-gcc-amd64.txt @@ -0,0 +1,20252 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7ff6e3cd18a0) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7ff6e3d660c0) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7ff6e3d66300) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7ff6e3d97420) 0 empty + +Class std::__make_unsigned_selector_base + size=1 align=1 + base size=0 base align=1 +std::__make_unsigned_selector_base (0x0x7ff6e3dc5c00) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7ff6e3e3fa20) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7ff6e3e3fae0) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7ff6e4074000) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7ff6e4074060) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7ff6e40740c0) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7ff6e4074120) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7ff6e4074180) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7ff6e4074240) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7ff6e4074300) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7ff6e40743c0) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7ff6e4074480) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7ff6e40747e0) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7ff6e4074b40) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7ff6e4074ba0) 0 empty + +Class std::__swappable_with_details::__do_is_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_swappable_with_impl (0x0x7ff6e4074e40) 0 empty + +Class std::__swappable_with_details::__do_is_nothrow_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_nothrow_swappable_with_impl (0x0x7ff6e4074ea0) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7ff6e40c2720) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7ff6e4110cc0) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7ff6e40c4958) 0 empty + std::__nonesuch (0x0x7ff6e41441e0) 0 empty + +Class std::in_place_t + size=1 align=1 + base size=0 base align=1 +std::in_place_t (0x0x7ff6e418af00) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7ff6e41c11e0) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7ff6e41c1240) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7ff6e41f3f60) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7ff6e421f000) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7ff6e40c4ea0) 0 empty + std::input_iterator_tag (0x0x7ff6e421f060) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7ff6e40c4f08) 0 empty + std::forward_iterator_tag (0x0x7ff6e40c4f70) 0 empty + std::input_iterator_tag (0x0x7ff6e421f0c0) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7ff6e4220000) 0 empty + std::bidirectional_iterator_tag (0x0x7ff6e4220068) 0 empty + std::forward_iterator_tag (0x0x7ff6e42200d0) 0 empty + std::input_iterator_tag (0x0x7ff6e421f120) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7ff6e3eaade0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7ff6e3eaaf00) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7ff6e3ed8240) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7ff6e3ed8540) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7ff6e3ed8660) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7ff6e3f60e40) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7ff6e3fad1e0) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7ff6e3fad240) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7ff6e3fad300) 0 + +Class __pthread_internal_slist + size=8 align=8 + base size=8 base align=8 +__pthread_internal_slist (0x0x7ff6e3fad360) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7ff6e3fad3c0) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7ff6e3fad420) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7ff6e3fad480) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7ff6e3fad720) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7ff6e3fad9c0) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7ff6e3fada20) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7ff6e32587e0) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7ff6e4220478) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7ff6e32589c0) 0 nearly-empty + primary-for std::bad_exception (0x0x7ff6e4220478) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7ff6e3258ba0) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7ff6e42204e0) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7ff6e3258f60) 0 nearly-empty + primary-for std::bad_cast (0x0x7ff6e42204e0) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7ff6e4220548) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7ff6e3291180) 0 nearly-empty + primary-for std::bad_typeid (0x0x7ff6e4220548) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7ff6e3291360) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7ff6e32918a0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7ff6e42205b0) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7ff6e3291f60) 0 nearly-empty + primary-for std::bad_alloc (0x0x7ff6e42205b0) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7ff6e4220618) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7ff6e4220680) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7ff6e4220618) + std::exception (0x0x7ff6e32c9180) 0 nearly-empty + primary-for std::bad_alloc (0x0x7ff6e4220680) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7ff6e32c9360) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7ff6e32c95a0) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7ff6e334bd20) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7ff6e2f6b120) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7ff6e2f6b1e0) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7ff6e2fca0c0) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7ff6e2fca180) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7ff6e2fca1e0) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7ff6e2fca240) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7ff6e2fca2a0) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7ff6e2fca3c0) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7ff6e2fca420) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7ff6e2c5ea80) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7ff6e2c5ec00) 0 empty + +Class _G_fpos_t + size=16 align=8 + base size=16 base align=8 +_G_fpos_t (0x0x7ff6e2a7ea80) 0 + +Class _G_fpos64_t + size=16 align=8 + base size=16 base align=8 +_G_fpos64_t (0x0x7ff6e2a7eae0) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7ff6e2a7eb40) 0 + +Class _IO_cookie_io_functions_t + size=32 align=8 + base size=32 base align=8 +_IO_cookie_io_functions_t (0x0x7ff6e2a7eba0) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7ff6e26db360) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7ff6e266a618) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7ff6e26db420) 0 nearly-empty + primary-for std::logic_error (0x0x7ff6e266a618) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7ff6e266a680) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7ff6e266a6e8) 0 + primary-for std::domain_error (0x0x7ff6e266a680) + std::exception (0x0x7ff6e26db480) 0 nearly-empty + primary-for std::logic_error (0x0x7ff6e266a6e8) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7ff6e266a750) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7ff6e266a7b8) 0 + primary-for std::invalid_argument (0x0x7ff6e266a750) + std::exception (0x0x7ff6e26db4e0) 0 nearly-empty + primary-for std::logic_error (0x0x7ff6e266a7b8) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7ff6e266a820) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7ff6e266a888) 0 + primary-for std::length_error (0x0x7ff6e266a820) + std::exception (0x0x7ff6e26db540) 0 nearly-empty + primary-for std::logic_error (0x0x7ff6e266a888) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7ff6e266a8f0) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7ff6e266a958) 0 + primary-for std::out_of_range (0x0x7ff6e266a8f0) + std::exception (0x0x7ff6e26db5a0) 0 nearly-empty + primary-for std::logic_error (0x0x7ff6e266a958) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7ff6e266a9c0) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7ff6e26db600) 0 nearly-empty + primary-for std::runtime_error (0x0x7ff6e266a9c0) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7ff6e266aa28) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7ff6e266aa90) 0 + primary-for std::range_error (0x0x7ff6e266aa28) + std::exception (0x0x7ff6e26db660) 0 nearly-empty + primary-for std::runtime_error (0x0x7ff6e266aa90) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7ff6e266aaf8) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7ff6e266ab60) 0 + primary-for std::overflow_error (0x0x7ff6e266aaf8) + std::exception (0x0x7ff6e26db6c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7ff6e266ab60) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7ff6e266abc8) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7ff6e266ac30) 0 + primary-for std::underflow_error (0x0x7ff6e266abc8) + std::exception (0x0x7ff6e26db720) 0 nearly-empty + primary-for std::runtime_error (0x0x7ff6e266ac30) + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7ff6e2742a20) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7ff6e2742a80) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7ff6e2742c00) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7ff6e2742cc0) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7ff6e266aea0) 0 + std::__uses_alloc_base (0x0x7ff6e2742c60) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7ff6e24e3300) 0 empty + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7ff6e25882d8) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7ff6e257e9c0) 0 nearly-empty + primary-for std::bad_function_call (0x0x7ff6e25882d8) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7ff6e257ea80) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7ff6e257eae0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7ff6e257ede0) 0 + +Class std::__detail::_Identity + size=1 align=1 + base size=0 base align=1 +std::__detail::_Identity (0x0x7ff6e2257c60) 0 empty + +Class std::__detail::_Select1st + size=1 align=1 + base size=0 base align=1 +std::__detail::_Select1st (0x0x7ff6e2257d20) 0 empty + +Class std::__detail::_Hash_node_base + size=8 align=8 + base size=8 base align=8 +std::__detail::_Hash_node_base (0x0x7ff6e2282240) 0 + +Class std::__detail::_Mod_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mod_range_hashing (0x0x7ff6e22aa0c0) 0 empty + +Class std::__detail::_Default_ranged_hash + size=1 align=1 + base size=0 base align=1 +std::__detail::_Default_ranged_hash (0x0x7ff6e22aa180) 0 empty + +Class std::__detail::_Prime_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Prime_rehash_policy (0x0x7ff6e22aa1e0) 0 + +Class std::__detail::_Mask_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mask_range_hashing (0x0x7ff6e22aa5a0) 0 empty + +Class std::__detail::_Power2_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Power2_rehash_policy (0x0x7ff6e22aa6c0) 0 + +Class std::__detail::_Equality_base + size=1 align=1 + base size=0 base align=1 +std::__detail::_Equality_base (0x0x7ff6e208c780) 0 empty + +Class std::_Enable_default_constructor_tag + size=1 align=1 + base size=0 base align=1 +std::_Enable_default_constructor_tag (0x0x7ff6e20cc060) 0 empty + +Class std::nullopt_t + size=1 align=1 + base size=0 base align=1 +std::nullopt_t (0x0x7ff6e20cca20) 0 empty + +Vtable for std::bad_optional_access +std::bad_optional_access::_ZTVSt19bad_optional_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt19bad_optional_access) +16 (int (*)(...))std::bad_optional_access::~bad_optional_access +24 (int (*)(...))std::bad_optional_access::~bad_optional_access +32 (int (*)(...))std::bad_optional_access::what + +Class std::bad_optional_access + size=8 align=8 + base size=8 base align=8 +std::bad_optional_access (0x0x7ff6e20b6208) 0 nearly-empty + vptr=((& std::bad_optional_access::_ZTVSt19bad_optional_access) + 16) + std::exception (0x0x7ff6e20ccc60) 0 nearly-empty + primary-for std::bad_optional_access (0x0x7ff6e20b6208) + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7ff6e1ba1600) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7ff6e1a77d00) 0 + std::iterator (0x0x7ff6e1ba1d80) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7ff6e1a77dd0) 0 + std::_Bit_iterator_base (0x0x7ff6e1a77e38) 0 + std::iterator (0x0x7ff6e1bcf360) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7ff6e1a77f08) 0 + std::_Bit_iterator_base (0x0x7ff6e1a77f70) 0 + std::iterator (0x0x7ff6e1bcfb40) 0 empty + +Class __pstl::execution::v1::sequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::sequenced_policy (0x0x7ff6e19e1060) 0 empty + +Class __pstl::execution::v1::parallel_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_policy (0x0x7ff6e19e11e0) 0 empty + +Class __pstl::execution::v1::parallel_unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_unsequenced_policy (0x0x7ff6e19e1360) 0 empty + +Class __pstl::execution::v1::unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::unsequenced_policy (0x0x7ff6e19e14e0) 0 empty + +Class std::__detail::__variant::__variant_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_cookie (0x0x7ff6e1720000) 0 empty + +Class std::__detail::__variant::__variant_idx_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_idx_cookie (0x0x7ff6e1720060) 0 empty + +Class std::monostate + size=1 align=1 + base size=0 base align=1 +std::monostate (0x0x7ff6e17a5ae0) 0 empty + +Vtable for std::bad_variant_access +std::bad_variant_access::_ZTVSt18bad_variant_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt18bad_variant_access) +16 (int (*)(...))std::bad_variant_access::~bad_variant_access +24 (int (*)(...))std::bad_variant_access::~bad_variant_access +32 (int (*)(...))std::bad_variant_access::what + +Class std::bad_variant_access + size=16 align=8 + base size=16 base align=8 +std::bad_variant_access (0x0x7ff6e178e340) 0 + vptr=((& std::bad_variant_access::_ZTVSt18bad_variant_access) + 16) + std::exception (0x0x7ff6e180c060) 0 nearly-empty + primary-for std::bad_variant_access (0x0x7ff6e178e340) + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7ff6e14a0a20) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7ff6e14a0a80) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7ff6e14a0d20) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7ff6e14eb540) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7ff6e1524660) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7ff6e15b4480) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7ff6e15545b0) 0 + std::__atomic_flag_base (0x0x7ff6e15b44e0) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7ff6e1134888) 0 + QAtomicInteger (0x0x7ff6e11348f0) 0 + QBasicAtomicInteger (0x0x7ff6e113d3c0) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7ff6e0da46c0) 0 empty + +Class QKeyCombination + size=4 align=4 + base size=4 base align=4 +QKeyCombination (0x0x7ff6e0da4720) 0 + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7ff6e0a58a20) 0 + +Class QMethodRawArguments + size=8 align=8 + base size=8 base align=8 +QMethodRawArguments (0x0x7ff6e0a9b180) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7ff6e0a9b1e0) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7ff6e0df3d00) 0 + QGenericArgument (0x0x7ff6e0a9b480) 0 + +Class QMetaObject::SuperData + size=8 align=8 + base size=8 base align=8 +QMetaObject::SuperData (0x0x7ff6e0a9b960) 0 + +Class QMetaObject::Data + size=56 align=8 + base size=56 base align=8 +QMetaObject::Data (0x0x7ff6e0a9b9c0) 0 + +Class QMetaObject + size=56 align=8 + base size=56 base align=8 +QMetaObject (0x0x7ff6e0a9b900) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7ff6e0ae9360) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7ff6e0b15d80) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7ff6e0b3c780) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7ff6e0c142a0) 0 + +Class QArrayData + size=16 align=8 + base size=16 base align=8 +QArrayData (0x0x7ff6e0c14600) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7ff6e08cf000) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7ff6e08cf120) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7ff6e08cf4e0) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7ff6e08cf780) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7ff6e08cf960) 0 + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7ff6e0922a80) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7ff6e0922de0) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7ff6e0971600) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7ff6e097b208) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7ff6e097b270) 0 + primary-for std::system_error (0x0x7ff6e097b208) + std::exception (0x0x7ff6e099d1e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7ff6e097b270) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7ff6e097b5b0) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7ff6e097b618) 0 + primary-for std::ios_base::failure (0x0x7ff6e097b5b0) + std::runtime_error (0x0x7ff6e097b680) 0 + primary-for std::system_error (0x0x7ff6e097b618) + std::exception (0x0x7ff6e09d2960) 0 nearly-empty + primary-for std::runtime_error (0x0x7ff6e097b680) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7ff6e09d29c0) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7ff6e09d2a20) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7ff6e09d2a80) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7ff6e09d2900) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7ff6e068b6c0) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7ff6e07439c0) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7ff6e02e1208 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7ff6e02e12d8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7ff6e02e1820 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7ff6e02e18f0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7ff6e02e1ea0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7ff6e03373c0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7ff6e02e1ea0) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7ff6e02e1f08) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7ff6e03374e0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7ff6e02e1f08) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7ff6e02e1f70) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7ff6e0337600) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7ff6e02e1f70) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7ff6e02e1410) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7ff6e0337720) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7ff6e02e1410) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7ff6e035e000) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7ff6e035e360) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7ff6e035e660) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7ff6e035e9c0) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7ff6e02e1bc8) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7ff6e0413180) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7ff6e02e1bc8) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7ff6e0051f00) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7ff6e007d480) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7ff6e01c12a0) 0 + +Class QByteArrayView + size=16 align=8 + base size=16 base align=8 +QByteArrayView (0x0x7ff6dfef0120) 0 + +Class QByteArray + size=24 align=8 + base size=24 base align=8 +QByteArray (0x0x7ff6dffd8ae0) 0 + +Class QByteArray::FromBase64Result + size=32 align=8 + base size=28 base align=8 +QByteArray::FromBase64Result (0x0x7ff6dfe351e0) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7ff6dfaa0cc0) 0 + +Class QChar::fromUcs4(char32_t)::R + size=4 align=2 + base size=4 base align=2 +QChar::fromUcs4(char32_t)::R (0x0x7ff6dfc04060) 0 + +Class QtPrivate::hide_char8_t + size=1 align=1 + base size=0 base align=1 +QtPrivate::hide_char8_t (0x0x7ff6dfc04480) 0 empty + +Class QtPrivate::wrap_char + size=1 align=1 + base size=0 base align=1 +QtPrivate::wrap_char (0x0x7ff6dfc044e0) 0 empty + +Class QAnyStringView + size=16 align=8 + base size=16 base align=8 +QAnyStringView (0x0x7ff6df884660) 0 + +Class QStringTokenizerBaseBase::tokenizer_state + size=24 align=8 + base size=24 base align=8 +QStringTokenizerBaseBase::tokenizer_state (0x0x7ff6df964c60) 0 + +Class QStringTokenizerBaseBase + size=8 align=4 + base size=8 base align=4 +QStringTokenizerBaseBase (0x0x7ff6df964c00) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7ff6df9a9cc0) 0 + +Class QString + size=24 align=8 + base size=24 base align=8 +QString (0x0x7ff6df740000) 0 + +Class QtPrivate::ArgBase + size=1 align=1 + base size=1 base align=1 +QtPrivate::ArgBase (0x0x7ff6df331360) 0 + +Class QtPrivate::QStringViewArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QStringViewArg (0x0x7ff6df31bdd0) 0 + QtPrivate::ArgBase (0x0x7ff6df3313c0) 0 + +Class QtPrivate::QLatin1StringArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QLatin1StringArg (0x0x7ff6df31bea0) 0 + QtPrivate::ArgBase (0x0x7ff6df331600) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7ff6df3adde0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7ff6df3adea0) 0 empty + +Class QStringMatcher + size=312 align=8 + base size=312 base align=8 +QStringMatcher (0x0x7ff6df1cd0c0) 0 + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7ff6dee64180) 0 empty + +Class QtPrivate::CompareAgainstLiteralZero + size=1 align=1 + base size=0 base align=1 +QtPrivate::CompareAgainstLiteralZero (0x0x7ff6dee64e40) 0 empty + +Class QPartialOrdering + size=1 align=1 + base size=1 base align=1 +QPartialOrdering (0x0x7ff6dee8c0c0) 0 + +Class QIODeviceBase + size=1 align=1 + base size=0 base align=1 +QIODeviceBase (0x0x7ff6def1c180) 0 empty + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7ff6df1f5340) 0 + QIODeviceBase (0x0x7ff6def1c1e0) 0 empty + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7ff6def1c360) 0 + +Class QtMetaContainerPrivate::QMetaContainerInterface + size=120 align=8 + base size=120 base align=8 +QtMetaContainerPrivate::QMetaContainerInterface (0x0x7ff6defd1780) 0 + +Class QtMetaContainerPrivate::QMetaSequenceInterface + size=216 align=8 + base size=216 base align=8 +QtMetaContainerPrivate::QMetaSequenceInterface (0x0x7ff6df1f5c98) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7ff6defd1840) 0 + +Class QtMetaContainerPrivate::QMetaAssociationInterface + size=240 align=8 + base size=240 base align=8 +QtMetaContainerPrivate::QMetaAssociationInterface (0x0x7ff6df1f5d68) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7ff6defd1900) 0 + +Class QMetaContainer + size=8 align=8 + base size=8 base align=8 +QMetaContainer (0x0x7ff6decbe420) 0 + +Class QMetaSequence + size=8 align=8 + base size=8 base align=8 +QMetaSequence (0x0x7ff6df1f5e38) 0 + QMetaContainer (0x0x7ff6decbe600) 0 + +Class QMetaAssociation + size=8 align=8 + base size=8 base align=8 +QMetaAssociation (0x0x7ff6df1f5f08) 0 + QMetaContainer (0x0x7ff6decbe9c0) 0 + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7ff6de8f9060) 0 + +Class std::__detail::_List_node_header + size=24 align=8 + base size=24 base align=8 +std::__detail::_List_node_header (0x0x7ff6de8e30d0) 0 + std::__detail::_List_node_base (0x0x7ff6de8f90c0) 0 + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7ff6de9d6180) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7ff6de9d64e0) 0 + +Class QMetaType + size=8 align=8 + base size=8 base align=8 +QMetaType (0x0x7ff6de83aae0) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7ff6de4bf180) 0 + +Class QtPrivate::QMetaTypeInterface + size=112 align=8 + base size=112 base align=8 +QtPrivate::QMetaTypeInterface (0x0x7ff6de3d5000) 0 + +Class QtPrivate::QTypeNormalizer + size=16 align=8 + base size=16 base align=8 +QtPrivate::QTypeNormalizer (0x0x7ff6de3d5060) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7ff6ddee5720) 0 + +Class QAdoptSharedDataTag + size=1 align=1 + base size=0 base align=1 +QAdoptSharedDataTag (0x0x7ff6ddee5a80) 0 empty + +Class QtPrivate::RefCounted + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCounted (0x0x7ff6ddf53ae0) 0 + +Class QPropertyBindingPrivatePtr + size=8 align=8 + base size=8 base align=8 +QPropertyBindingPrivatePtr (0x0x7ff6ddf53c00) 0 + +Class QUntypedPropertyData::InheritsQUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData::InheritsQUntypedPropertyData (0x0x7ff6ddfbc2a0) 0 empty + +Class QUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData (0x0x7ff6ddfbc240) 0 empty + +Class QtPrivate::BindingFunctionVTable + size=32 align=8 + base size=32 base align=8 +QtPrivate::BindingFunctionVTable (0x0x7ff6ddfbc300) 0 + +Class QtPrivate::QPropertyBindingFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::QPropertyBindingFunction (0x0x7ff6ddfbc780) 0 + +Class QtPrivate::QPropertyBindingData + size=8 align=8 + base size=8 base align=8 +QtPrivate::QPropertyBindingData (0x0x7ff6ddfbc7e0) 0 + +Class std::experimental::fundamentals_v2::source_location + size=24 align=8 + base size=24 base align=8 +std::experimental::fundamentals_v2::source_location (0x0x7ff6ddfbcde0) 0 + +Class QPropertyBindingSourceLocation + size=24 align=8 + base size=24 base align=8 +QPropertyBindingSourceLocation (0x0x7ff6ddfeb540) 0 + +Class QPropertyBindingError + size=8 align=8 + base size=8 base align=8 +QPropertyBindingError (0x0x7ff6ddfeb840) 0 + +Class QUntypedPropertyBinding + size=8 align=8 + base size=8 base align=8 +QUntypedPropertyBinding (0x0x7ff6ddfeb960) 0 + +Class QPropertyObserverBase + size=24 align=8 + base size=24 base align=8 +QPropertyObserverBase (0x0x7ff6ddfebc00) 0 + +Class QPropertyObserver + size=24 align=8 + base size=24 base align=8 +QPropertyObserver (0x0x7ff6de025208) 0 + QPropertyObserverBase (0x0x7ff6ddfebd80) 0 + +Class QtPrivate::QBindableInterface + size=56 align=8 + base size=56 base align=8 +QtPrivate::QBindableInterface (0x0x7ff6ddc51c60) 0 + +Class QUntypedBindable + size=16 align=8 + base size=16 base align=8 +QUntypedBindable (0x0x7ff6ddc7c8a0) 0 + +Class QBindingStatus + size=16 align=8 + base size=16 base align=8 +QBindingStatus (0x0x7ff6ddcacb40) 0 + +Class QBindingStorage + size=16 align=8 + base size=16 base align=8 +QBindingStorage (0x0x7ff6ddcacba0) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7ff6dddb4780) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7ff6dda614e0) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=80 align=8 + base size=80 base align=8 +QObjectData (0x0x7ff6ddaa2e40) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7ff6ddb537e0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7ff6ddb53780) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7ff6ddc05720) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7ff6ddc31000) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7ff6ddb6a410) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7ff6ddc05f60) 0 + primary-for QAbstractAnimation (0x0x7ff6ddb6a410) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7ff6ddc31360) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7ff6ddb6a478) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7ff6ddc31300) 0 + primary-for QAnimationDriver (0x0x7ff6ddb6a478) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7ff6ddc31540) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7ff6ddb6a4e0) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7ff6ddc314e0) 0 + primary-for QEventLoop (0x0x7ff6ddb6a4e0) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7ff6ddc319c0) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7ff6ddc31a80) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7ff6ddc31ae0) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QAbstractEventDispatcher::startingUp +200 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7ff6ddb6a680) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7ff6ddc31a20) 0 + primary-for QAbstractEventDispatcher (0x0x7ff6ddb6a680) + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7ff6dd8c62a0) 0 empty + +Class QStringConverterBase::State + size=48 align=8 + base size=48 base align=8 +QStringConverterBase::State (0x0x7ff6dd771d20) 0 + +Class QStringConverterBase + size=1 align=1 + base size=0 base align=1 +QStringConverterBase (0x0x7ff6dd771cc0) 0 empty + +Class QStringConverter::Interface + size=40 align=8 + base size=40 base align=8 +QStringConverter::Interface (0x0x7ff6dd790960) 0 + +Class QStringConverter + size=56 align=8 + base size=56 base align=8 +QStringConverter (0x0x7ff6dd91f888) 0 + QStringConverterBase (0x0x7ff6dd790900) 0 empty + +Class QStringEncoder + size=56 align=8 + base size=56 base align=8 +QStringEncoder (0x0x7ff6dd91f8f0) 0 + QStringConverter (0x0x7ff6dd91f958) 0 + QStringConverterBase (0x0x7ff6dd7e3360) 0 empty + +Class QStringDecoder + size=56 align=8 + base size=56 base align=8 +QStringDecoder (0x0x7ff6dd91f9c0) 0 + QStringConverter (0x0x7ff6dd91fa28) 0 + QStringConverterBase (0x0x7ff6dd8051e0) 0 empty + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7ff6dd91fa90) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + QIODeviceBase (0x0x7ff6dd805ea0) 0 empty + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7ff6dd45a5a0) 0 + +Class QContiguousCacheData + size=40 align=8 + base size=40 base align=8 +QContiguousCacheData (0x0x7ff6dd4fa600) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7ff6dd551060) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7ff6dd5511e0) 0 + +Class QtPrivate::EnableInternalData + size=1 align=1 + base size=0 base align=1 +QtPrivate::EnableInternalData (0x0x7ff6dd5fb3c0) 0 empty + +Class QDebug::Stream + size=88 align=8 + base size=88 base align=8 +QDebug::Stream (0x0x7ff6dd6213c0) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7ff6dd5d5548) 0 + QIODeviceBase (0x0x7ff6dd621360) 0 empty + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7ff6dd347300) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7ff6dd3473c0) 0 empty + +Class QVariant::PrivateShared + size=8 align=8 + base size=8 base align=8 +QVariant::PrivateShared (0x0x7ff6dd0f2de0) 0 + +Class QVariant::Private + size=32 align=8 + base size=32 base align=8 +QVariant::Private (0x0x7ff6dd0f2e40) 0 + +Class QVariant + size=32 align=8 + base size=32 base align=8 +QVariant (0x0x7ff6dd0f2d80) 0 + +Class QtPrivate::QVariantTypeCoercer + size=32 align=8 + base size=32 base align=8 +QtPrivate::QVariantTypeCoercer (0x0x7ff6dcec0240) 0 + +Class QVariantConstPointer + size=32 align=8 + base size=32 base align=8 +QVariantConstPointer (0x0x7ff6dcec0480) 0 + +Class QModelRoleData + size=40 align=8 + base size=40 base align=8 +QModelRoleData (0x0x7ff6dcec0660) 0 + +Class QModelRoleDataSpan + size=16 align=8 + base size=16 base align=8 +QModelRoleDataSpan (0x0x7ff6dceff5a0) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7ff6dcf495a0) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7ff6dcf97780) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7ff6dd02a060) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractItemModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractItemModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7ff6dd01f618) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7ff6dd02a000) 0 + primary-for QAbstractItemModel (0x0x7ff6dd01f618) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7ff6dcd30d20) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractTableModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7ff6dd01fea0) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7ff6dd01ff08) 0 + primary-for QAbstractTableModel (0x0x7ff6dd01fea0) + QObject (0x0x7ff6dcd30cc0) 0 + primary-for QAbstractItemModel (0x0x7ff6dd01ff08) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7ff6dcd30e40) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractListModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7ff6dd01ff70) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7ff6dd01fa28) 0 + primary-for QAbstractListModel (0x0x7ff6dd01ff70) + QObject (0x0x7ff6dcd30de0) 0 + primary-for QAbstractItemModel (0x0x7ff6dd01fa28) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7ff6dcdaa2a0) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7ff6dcdaa360) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QAbstractProxyModel::setSourceModel +416 (int (*)(...))__cxa_pure_virtual +424 (int (*)(...))__cxa_pure_virtual +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7ff6dcda83a8) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7ff6dcda8410) 0 + primary-for QAbstractProxyModel (0x0x7ff6dcda83a8) + QObject (0x0x7ff6dcdaa300) 0 + primary-for QAbstractItemModel (0x0x7ff6dcda8410) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7ff6dcdaa540) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7ff6dcda8478) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7ff6dcda84e0) 0 + primary-for QAnimationGroup (0x0x7ff6dcda8478) + QObject (0x0x7ff6dcdaa4e0) 0 + primary-for QAbstractAnimation (0x0x7ff6dcda84e0) + +Class QAssociativeIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeIterator (0x0x7ff6dcda8618) 0 + QIterator (0x0x7ff6dcda8680) 0 + QBaseIterator (0x0x7ff6dcdaa960) 0 + +Class QAssociativeConstIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeConstIterator (0x0x7ff6dcda87b8) 0 + QConstIterator (0x0x7ff6dcda8820) 0 + QBaseIterator (0x0x7ff6dcdaaf00) 0 + +Class QAssociativeIterable + size=24 align=8 + base size=24 base align=8 +QAssociativeIterable (0x0x7ff6dcda88f0) 0 + QIterable (0x0x7ff6dce1c420) 0 + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7ff6dcaf7f00) 0 + +Class QBitArray + size=24 align=8 + base size=24 base align=8 +QBitArray (0x0x7ff6dcb5bc60) 0 + +Class QBitRef + size=16 align=8 + base size=16 base align=8 +QBitRef (0x0x7ff6dcb88ba0) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7ff6dcbcf720) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7ff6dcae97e0) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7ff6dcbcf660) 0 + primary-for QIODevice (0x0x7ff6dcae97e0) + QIODeviceBase (0x0x7ff6dcbcf6c0) 0 empty + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7ff6dcbcfa80) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7ff6dcbd1820) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7ff6dcae9850) 0 + primary-for QBuffer (0x0x7ff6dcbd1820) + QObject (0x0x7ff6dcbcf9c0) 0 + primary-for QIODevice (0x0x7ff6dcae9850) + QIODeviceBase (0x0x7ff6dcbcfa20) 0 empty + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7ff6dcbcfcc0) 0 + +Class QByteArrayMatcher + size=1056 align=8 + base size=1056 base align=8 +QByteArrayMatcher (0x0x7ff6dcbcfc60) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7ff6dcbcfe40) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7ff6dcbcfde0) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7ff6dc8745a0) 0 + +Class QCalendar::YearMonthDay + size=12 align=4 + base size=12 base align=4 +QCalendar::YearMonthDay (0x0x7ff6dc98c360) 0 + +Class QCalendar + size=8 align=8 + base size=8 base align=8 +QCalendar (0x0x7ff6dc98c300) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7ff6dc98c6c0) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7ff6dca14cc0) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7ff6dc65af00) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7ff6dc65af60) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7ff6dc65aea0) 0 + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7ff6dc6ff1e0) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7ff6dc6ffa20) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7ff6dc7adc00) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel + size=1 align=1 + base size=0 base align=1 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel (0x0x7ff6dc835420) 0 empty + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7ff6dc835480) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator + size=24 align=8 + base size=17 base align=8 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator (0x0x7ff6dc835660) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7ff6dc4c0360) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7ff6dc58bea0) 0 + +Class QCborParserError + size=16 align=8 + base size=16 base align=8 +QCborParserError (0x0x7ff6dc621060) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7ff6dc621120) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7ff6dc33c9c0) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7ff6dc36ef00) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7ff6dc36ef60) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7ff6dc36eea0) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7ff6dc082540) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7ff6dc0825a0) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7ff6dc0824e0) 0 + +Class qfloat16::Wrap + size=2 align=2 + base size=2 base align=2 +qfloat16::Wrap (0x0x7ff6dbe97600) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7ff6dbe975a0) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7ff6dbf59de0) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7ff6dbfb9780) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7ff6dbfe71e0) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7ff6dbfe73c0) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7ff6dbc90de0) 0 + +Class QEvent::InputEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::InputEventTag (0x0x7ff6dbd196c0) 0 empty + +Class QEvent::PointerEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::PointerEventTag (0x0x7ff6dbd19720) 0 empty + +Class QEvent::SinglePointEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::SinglePointEventTag (0x0x7ff6dbd19780) 0 empty + +Vtable for QEvent +QEvent::_ZTV6QEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QEvent + size=16 align=8 + base size=16 base align=8 +QEvent (0x0x7ff6dbd19660) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QTimerEvent::clone + +Class QTimerEvent + size=24 align=8 + base size=20 base align=8 +QTimerEvent (0x0x7ff6dbd15618) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7ff6dbd74120) 0 + primary-for QTimerEvent (0x0x7ff6dbd15618) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QChildEvent::clone + +Class QChildEvent + size=24 align=8 + base size=24 base align=8 +QChildEvent (0x0x7ff6dbd15680) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7ff6dbd74600) 0 + primary-for QChildEvent (0x0x7ff6dbd15680) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDynamicPropertyChangeEvent::clone + +Class QDynamicPropertyChangeEvent + size=40 align=8 + base size=40 base align=8 +QDynamicPropertyChangeEvent (0x0x7ff6dbd156e8) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7ff6dbd74a20) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7ff6dbd156e8) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDeferredDeleteEvent::clone + +Class QDeferredDeleteEvent + size=24 align=8 + base size=20 base align=8 +QDeferredDeleteEvent (0x0x7ff6dbd15750) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7ff6dbd74cc0) 0 + primary-for QDeferredDeleteEvent (0x0x7ff6dbd15750) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7ff6dbdac060) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7ff6dbd157b8) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7ff6dbdac000) 0 + primary-for QCoreApplication (0x0x7ff6dbd157b8) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7ff6dbdac240) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7ff6dbdac360) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +224 (int (*)(...))QConcatenateTablesProxyModel::mimeData +232 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +240 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QConcatenateTablesProxyModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QConcatenateTablesProxyModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7ff6dbd15820) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7ff6dbd15888) 0 + primary-for QConcatenateTablesProxyModel (0x0x7ff6dbd15820) + QObject (0x0x7ff6dbdac300) 0 + primary-for QAbstractItemModel (0x0x7ff6dbd15888) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7ff6dbdac4e0) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7ff6dbdac600) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7ff6dbdac900) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7ff6dbad9a20) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFileDevice::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7ff6dbadaa90) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7ff6dbdffd90) 0 + primary-for QFileDevice (0x0x7ff6dbadaa90) + QObject (0x0x7ff6dbad9960) 0 + primary-for QIODevice (0x0x7ff6dbdffd90) + QIODeviceBase (0x0x7ff6dbad99c0) 0 empty + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7ff6dbb3c5a0) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7ff6dbadaea0) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7ff6dbadaf08) 0 + primary-for QFile (0x0x7ff6dbadaea0) + QIODevice (0x0x7ff6dbaf0d20) 0 + primary-for QFileDevice (0x0x7ff6dbadaf08) + QObject (0x0x7ff6dbb3c4e0) 0 + primary-for QIODevice (0x0x7ff6dbaf0d20) + QIODeviceBase (0x0x7ff6dbb3c540) 0 empty + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7ff6dbb3c840) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7ff6dbc152a0) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7ff6db8ce540) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7ff6db8ce900) 0 + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7ff6db99daf8) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7ff6db9e3060) 0 nearly-empty + primary-for QException (0x0x7ff6db99daf8) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=16 align=8 + base size=16 base align=8 +QUnhandledException (0x0x7ff6db99db60) 0 + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7ff6db99dbc8) 0 nearly-empty + primary-for QUnhandledException (0x0x7ff6db99db60) + std::exception (0x0x7ff6db9e30c0) 0 nearly-empty + primary-for QException (0x0x7ff6db99dbc8) + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7ff6db9e3f00) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7ff6db9e3f60) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7ff6dba311e0) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7ff6dba1bdd0) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7ff6dba31180) 0 + primary-for QFileSelector (0x0x7ff6dba1bdd0) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7ff6dba313c0) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7ff6dba1be38) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7ff6dba31360) 0 + primary-for QFileSystemWatcher (0x0x7ff6dba1be38) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=9 base align=8 +QRunnable (0x0x7ff6dba31540) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7ff6dba31720) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7ff6dba1bf08) 0 + QBasicMutex (0x0x7ff6db6ac480) 0 + +Class QRecursiveMutex + size=24 align=8 + base size=24 base align=8 +QRecursiveMutex (0x0x7ff6db6ac8a0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7ff6db6acea0) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7ff6db71d4e0) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7ff6db44d180) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7ff6db47fba0) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7ff6db4921a0) 0 + std::__mutex_base (0x0x7ff6db47fc00) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7ff6db47fde0) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7ff6db47fe40) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7ff6db47fea0) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7ff6db4ae8a0) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7ff6db492208) 0 + std::__recursive_mutex_base (0x0x7ff6db4ae900) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7ff6db4715b0) 0 + std::__mutex_base (0x0x7ff6db4aecc0) 0 + std::__timed_mutex_impl (0x0x7ff6db4aed20) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7ff6db471620) 0 + std::__recursive_mutex_base (0x0x7ff6db4ea120) 0 + std::__timed_mutex_impl (0x0x7ff6db4ea180) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7ff6db4eaf60) 0 + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7ff6db5201e0) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7ff6db572120) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7ff6db572180) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7ff6db5720c0) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7ff6db3523c0) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7ff6db352780) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7ff6db3527e0) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7ff6db400d80) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7ff6db402410) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7ff6db402478) 0 + primary-for std::future_error (0x0x7ff6db402410) + std::exception (0x0x7ff6db440480) 0 nearly-empty + primary-for std::logic_error (0x0x7ff6db402478) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7ff6db440ba0) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7ff6db440b40) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7ff6db1b2600) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7ff6db190c98) 0 + std::__at_thread_exit_elt (0x0x7ff6db1b26c0) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7ff6db440d20) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7ff6db440ae0) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7ff6daabc000) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7ff6daab43c0) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7ff6daabc000) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7ff6daab4c60) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7ff6daabc340) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7ff6daab4c00) 0 + primary-for QThread (0x0x7ff6daabc340) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7ff6daaef060) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7ff6daabc3a8) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7ff6daaef000) 0 + primary-for QThreadPool (0x0x7ff6daabc3a8) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7ff6da8b1780) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7ff6da888068) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7ff6da8b1720) 0 + primary-for QFutureWatcherBase (0x0x7ff6da888068) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7ff6da8b1cc0) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QIdentityProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QIdentityProxyModel::insertRows +272 (int (*)(...))QIdentityProxyModel::insertColumns +280 (int (*)(...))QIdentityProxyModel::removeRows +288 (int (*)(...))QIdentityProxyModel::removeColumns +296 (int (*)(...))QIdentityProxyModel::moveRows +304 (int (*)(...))QIdentityProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QIdentityProxyModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QIdentityProxyModel::setSourceModel +416 (int (*)(...))QIdentityProxyModel::mapToSource +424 (int (*)(...))QIdentityProxyModel::mapFromSource +432 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +440 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7ff6da888270) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7ff6da8882d8) 0 + primary-for QIdentityProxyModel (0x0x7ff6da888270) + QAbstractItemModel (0x0x7ff6da888340) 0 + primary-for QAbstractProxyModel (0x0x7ff6da8882d8) + QObject (0x0x7ff6da8b1c60) 0 + primary-for QAbstractItemModel (0x0x7ff6da888340) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7ff6da8b1e40) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7ff6da93fa20) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7ff6da94c0d0) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7ff6da93f9c0) 0 + primary-for QItemSelectionModel (0x0x7ff6da94c0d0) + +Class QItemSelection + size=24 align=8 + base size=24 base align=8 +QItemSelection (0x0x7ff6da94c5b0) 0 + QList (0x0x7ff6da94c618) 0 + QListSpecialMethods (0x0x7ff6da94c680) 0 empty + QListSpecialMethodsBase (0x0x7ff6da997420) 0 empty + +Class QJsonValue + size=24 align=8 + base size=24 base align=8 +QJsonValue (0x0x7ff6daa2c120) 0 + +Class QJsonValueRef + size=16 align=8 + base size=16 base align=8 +QJsonValueRef (0x0x7ff6daa2c600) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::iterator (0x0x7ff6da68b840) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::const_iterator (0x0x7ff6da68b8a0) 0 + +Class QJsonArray + size=8 align=8 + base size=8 base align=8 +QJsonArray (0x0x7ff6da68b7e0) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7ff6da7382a0) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7ff6da738300) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::iterator (0x0x7ff6da4cc840) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::const_iterator (0x0x7ff6da4cc8a0) 0 + +Class QJsonObject + size=8 align=8 + base size=8 base align=8 +QJsonObject (0x0x7ff6da4cc7e0) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7ff6da5833c0) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=24 align=8 + base size=24 base align=8 +QLibrary (0x0x7ff6da580750) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7ff6da583360) 0 + primary-for QLibrary (0x0x7ff6da580750) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7ff6da5839c0) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7ff6da583960) 0 + +Class QTypeRevision + size=2 align=1 + base size=2 base align=1 +QTypeRevision (0x0x7ff6da29a180) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7ff6da2ef900) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7ff6da2ef9c0) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7ff6da36e060) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7ff6da3c0720) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7ff6da407d20) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7ff6da07d540) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7ff6da07d780) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7ff6da07d720) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7ff6da0c7660) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7ff6da16b0c0) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7ff6da1b4960) 0 + +Class QMetaMethod::Data + size=8 align=8 + base size=8 base align=8 +QMetaMethod::Data (0x0x7ff6da1b4a20) 0 + +Class QMetaMethod + size=16 align=8 + base size=16 base align=8 +QMetaMethod (0x0x7ff6da1b49c0) 0 + +Class QMetaEnum::Data + size=8 align=8 + base size=8 base align=8 +QMetaEnum::Data (0x0x7ff6da232c60) 0 + +Class QMetaEnum + size=16 align=8 + base size=16 base align=8 +QMetaEnum (0x0x7ff6da232c00) 0 + +Class QMetaProperty::Data + size=8 align=8 + base size=8 base align=8 +QMetaProperty::Data (0x0x7ff6d9e779c0) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7ff6d9e77960) 0 + +Class QMetaClassInfo::Data + size=8 align=8 + base size=8 base align=8 +QMetaClassInfo::Data (0x0x7ff6d9ea3060) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=16 base align=8 +QMetaClassInfo (0x0x7ff6d9ea3000) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7ff6d9ec1ea0) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7ff6d9ed91a0) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7ff6d9ec1e40) 0 + primary-for QMimeData (0x0x7ff6d9ed91a0) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7ff6d9ee8000) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7ff6d9f55a20) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7ff6d9f55ae0) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=40 align=8 + base size=40 base align=8 +QObjectCleanupHandler (0x0x7ff6d9f63068) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7ff6d9f55a80) 0 + primary-for QObjectCleanupHandler (0x0x7ff6d9f63068) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7ff6d9f55ba0) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7ff6d9fb27e0) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7ff6d9fb4a90) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7ff6d9fb4af8) 0 + primary-for QParallelAnimationGroup (0x0x7ff6d9fb4a90) + QAbstractAnimation (0x0x7ff6d9fb4b60) 0 + primary-for QAnimationGroup (0x0x7ff6d9fb4af8) + QObject (0x0x7ff6d9fb2780) 0 + primary-for QAbstractAnimation (0x0x7ff6d9fb4b60) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7ff6d9fb29c0) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7ff6d9fb4bc8) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7ff6d9fb4c30) 0 + primary-for QPauseAnimation (0x0x7ff6d9fb4bc8) + QObject (0x0x7ff6d9fb2960) 0 + primary-for QAbstractAnimation (0x0x7ff6d9fb4c30) + +Class QPluginMetaData + size=16 align=8 + base size=16 base align=8 +QPluginMetaData (0x0x7ff6d9fe74e0) 0 + +Class QStaticPlugin + size=24 align=8 + base size=24 base align=8 +QStaticPlugin (0x0x7ff6d9fe7540) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7ff6da009f60) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7ff6da01c820) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7ff6da009f00) 0 + primary-for QPluginLoader (0x0x7ff6da01c820) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7ff6da034060) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7ff6d9c95780) 0 empty + +Class QProcess::Use_setChildProcessModifier_Instead + size=1 align=1 + base size=0 base align=1 +QProcess::Use_setChildProcessModifier_Instead (0x0x7ff6d9c957e0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 32 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QProcess::writeData +248 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7ff6d9c98888) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7ff6da008690) 0 + primary-for QProcess (0x0x7ff6d9c98888) + QObject (0x0x7ff6d9c956c0) 0 + primary-for QIODevice (0x0x7ff6da008690) + QIODeviceBase (0x0x7ff6d9c95720) 0 empty + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7ff6d9ce35a0) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7ff6d9c988f0) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7ff6d9c98958) 0 + primary-for QVariantAnimation (0x0x7ff6d9c988f0) + QObject (0x0x7ff6d9ce3540) 0 + primary-for QAbstractAnimation (0x0x7ff6d9c98958) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7ff6d9ce37e0) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7ff6d9c98a28) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7ff6d9c98a90) 0 + primary-for QPropertyAnimation (0x0x7ff6d9c98a28) + QAbstractAnimation (0x0x7ff6d9c98af8) 0 + primary-for QVariantAnimation (0x0x7ff6d9c98a90) + QObject (0x0x7ff6d9ce3780) 0 + primary-for QAbstractAnimation (0x0x7ff6d9c98af8) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7ff6d9d6ff00) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7ff6d9a873c0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7ff6d9a87360) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7ff6d9c3db40) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7ff6d9660a80) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7ff6d9660a20) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7ff6d96c77b8) 0 + QRandomGenerator (0x0x7ff6d96dcd20) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7ff6d9701960) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7ff6d9701ba0) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7ff6d976d0c0) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7ff6d976d5a0) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7ff6d97eb000) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7ff6d983f7e0) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7ff6d9517600) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7ff6d95f3180) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7ff6d95f3480) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QSaveFile::writeData +248 (int (*)(...))QSaveFile::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7ff6d9582a28) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7ff6d9582a90) 0 + primary-for QSaveFile (0x0x7ff6d9582a28) + QIODevice (0x0x7ff6d97c2930) 0 + primary-for QFileDevice (0x0x7ff6d9582a90) + QObject (0x0x7ff6d95f33c0) 0 + primary-for QIODevice (0x0x7ff6d97c2930) + QIODeviceBase (0x0x7ff6d95f3420) 0 empty + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7ff6d95f3a80) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7ff6d927d2a0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7ff6d92c7f60) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7ff6d92de618) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7ff6d92de680) 0 + primary-for QSequentialAnimationGroup (0x0x7ff6d92de618) + QAbstractAnimation (0x0x7ff6d92de6e8) 0 + primary-for QAnimationGroup (0x0x7ff6d92de680) + QObject (0x0x7ff6d92c7f00) 0 + primary-for QAbstractAnimation (0x0x7ff6d92de6e8) + +Class QSequentialIterator + size=16 align=8 + base size=16 base align=8 +QSequentialIterator (0x0x7ff6d92de820) 0 + QIterator (0x0x7ff6d92de888) 0 + QBaseIterator (0x0x7ff6d92f3300) 0 + +Class QSequentialConstIterator + size=16 align=8 + base size=16 base align=8 +QSequentialConstIterator (0x0x7ff6d92de958) 0 + QConstIterator (0x0x7ff6d92de9c0) 0 + QBaseIterator (0x0x7ff6d92f38a0) 0 + +Class QSequentialIterable + size=24 align=8 + base size=24 base align=8 +QSequentialIterable (0x0x7ff6d92dea28) 0 + QIterable (0x0x7ff6d92f3de0) 0 + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7ff6d94173c0) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7ff6d9404e38) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7ff6d9417360) 0 + primary-for QSettings (0x0x7ff6d9404e38) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7ff6d94177e0) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7ff6d9404ea0) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7ff6d9417780) 0 + primary-for QSharedMemory (0x0x7ff6d9404ea0) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7ff6d94179c0) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7ff6d9404f08) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7ff6d9417960) 0 + primary-for QSignalMapper (0x0x7ff6d9404f08) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7ff6d808d420) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7ff6d83a9d68) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7ff6d808d3c0) 0 + primary-for QSocketNotifier (0x0x7ff6d83a9d68) + +Class QSocketDescriptor + size=4 align=4 + base size=4 base align=4 +QSocketDescriptor (0x0x7ff6d808d5a0) 0 + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7ff6d808dc60) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QSortFilterProxyModel::mimeTypes +224 (int (*)(...))QSortFilterProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QSortFilterProxyModel::dropMimeData +248 (int (*)(...))QSortFilterProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QSortFilterProxyModel::insertRows +272 (int (*)(...))QSortFilterProxyModel::insertColumns +280 (int (*)(...))QSortFilterProxyModel::removeRows +288 (int (*)(...))QSortFilterProxyModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSortFilterProxyModel::fetchMore +320 (int (*)(...))QSortFilterProxyModel::canFetchMore +328 (int (*)(...))QSortFilterProxyModel::flags +336 (int (*)(...))QSortFilterProxyModel::sort +344 (int (*)(...))QSortFilterProxyModel::buddy +352 (int (*)(...))QSortFilterProxyModel::match +360 (int (*)(...))QSortFilterProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSortFilterProxyModel::setSourceModel +416 (int (*)(...))QSortFilterProxyModel::mapToSource +424 (int (*)(...))QSortFilterProxyModel::mapFromSource +432 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +440 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +448 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +456 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +464 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7ff6d83a9dd0) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7ff6d83a9e38) 0 + primary-for QSortFilterProxyModel (0x0x7ff6d83a9dd0) + QAbstractItemModel (0x0x7ff6d83a9ea0) 0 + primary-for QAbstractProxyModel (0x0x7ff6d83a9e38) + QObject (0x0x7ff6d808dc00) 0 + primary-for QAbstractItemModel (0x0x7ff6d83a9ea0) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7ff6d80e0060) 0 empty + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7ff6d80e0960) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7ff6d8192300) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7ff6d81f7b40) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QStringListModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QStringListModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStringListModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QStringListModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QStringListModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStringListModel::flags +336 (int (*)(...))QStringListModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStringListModel + size=40 align=8 + base size=40 base align=8 +QStringListModel (0x0x7ff6d81ae9c0) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7ff6d81aea28) 0 + primary-for QStringListModel (0x0x7ff6d81ae9c0) + QAbstractItemModel (0x0x7ff6d81aea90) 0 + primary-for QAbstractListModel (0x0x7ff6d81aea28) + QObject (0x0x7ff6d81f7ae0) 0 + primary-for QAbstractItemModel (0x0x7ff6d81aea90) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7ff6d81f7c00) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7ff6d81f7cc0) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7ff6d81f7e40) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QTemporaryFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7ff6d81aeaf8) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7ff6d81aeb60) 0 + primary-for QTemporaryFile (0x0x7ff6d81aeaf8) + QFileDevice (0x0x7ff6d81aebc8) 0 + primary-for QFile (0x0x7ff6d81aeb60) + QIODevice (0x0x7ff6d8197c40) 0 + primary-for QFileDevice (0x0x7ff6d81aebc8) + QObject (0x0x7ff6d81f7d80) 0 + primary-for QIODevice (0x0x7ff6d8197c40) + QIODeviceBase (0x0x7ff6d81f7de0) 0 empty + +Class QTextBoundaryFinder + size=72 align=8 + base size=72 base align=8 +QTextBoundaryFinder (0x0x7ff6d7e590c0) 0 + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7ff6d7e59660) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7ff6d7e59d20) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7ff6d81aed68) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7ff6d7e59cc0) 0 + primary-for QTimeLine (0x0x7ff6d81aed68) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7ff6d7e59f00) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=16 align=8 + base size=16 base align=8 +QTimer (0x0x7ff6d81aedd0) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7ff6d7e59ea0) 0 + primary-for QTimer (0x0x7ff6d81aedd0) + +Class QTimeZone::OffsetData + size=48 align=8 + base size=44 base align=8 +QTimeZone::OffsetData (0x0x7ff6d7ed2d20) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7ff6d7ed2cc0) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7ff6d7f63d80) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7ff6d7f6caf8) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7ff6d7f63d20) 0 + primary-for QTranslator (0x0x7ff6d7f6caf8) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7ff6d7f63f60) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QTransposeProxyModel::insertRows +272 (int (*)(...))QTransposeProxyModel::insertColumns +280 (int (*)(...))QTransposeProxyModel::removeRows +288 (int (*)(...))QTransposeProxyModel::removeColumns +296 (int (*)(...))QTransposeProxyModel::moveRows +304 (int (*)(...))QTransposeProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QTransposeProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QTransposeProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QTransposeProxyModel::setSourceModel +416 (int (*)(...))QTransposeProxyModel::mapToSource +424 (int (*)(...))QTransposeProxyModel::mapFromSource +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7ff6d7f6cb60) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7ff6d7f6cbc8) 0 + primary-for QTransposeProxyModel (0x0x7ff6d7f6cb60) + QAbstractItemModel (0x0x7ff6d7f6cc30) 0 + primary-for QAbstractProxyModel (0x0x7ff6d7f6cbc8) + QObject (0x0x7ff6d7f63f00) 0 + primary-for QAbstractItemModel (0x0x7ff6d7f6cc30) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7ff6d7fa2120) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7ff6d7c5d900) 0 + +Class QtPrivate::QXmlString + size=24 align=8 + base size=24 base align=8 +QtPrivate::QXmlString (0x0x7ff6d7c5da20) 0 + +Class QXmlStreamAttribute + size=104 align=8 + base size=97 base align=8 +QXmlStreamAttribute (0x0x7ff6d7ca48a0) 0 + +Class QXmlStreamAttributes + size=24 align=8 + base size=24 base align=8 +QXmlStreamAttributes (0x0x7ff6d7cf0af8) 0 + QList (0x0x7ff6d7cf0b60) 0 + QListSpecialMethods (0x0x7ff6d7cf0bc8) 0 empty + QListSpecialMethodsBase (0x0x7ff6d7cf29c0) 0 empty + +Class QXmlStreamNamespaceDeclaration + size=48 align=8 + base size=48 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7ff6d7d63240) 0 + +Class QXmlStreamNotationDeclaration + size=72 align=8 + base size=72 base align=8 +QXmlStreamNotationDeclaration (0x0x7ff6d7d88900) 0 + +Class QXmlStreamEntityDeclaration + size=120 align=8 + base size=120 base align=8 +QXmlStreamEntityDeclaration (0x0x7ff6d7db3f60) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7ff6d7dfe720) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7ff6d7dfe780) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7ff6d7dfed20) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=16 align=8 + base size=10 base align=8 +QPaintDevice (0x0x7ff6d7dfef00) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16) + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7ff6d7a619c0) 0 + +Class QColor::CT + size=10 align=2 + base size=10 base align=2 +QColor::CT (0x0x7ff6d7b0c6c0) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7ff6d7b0c660) 0 + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7ff6d7b9d720) 0 + +Class QPolygon + size=24 align=8 + base size=24 base align=8 +QPolygon (0x0x7ff6d78e4410) 0 + QList (0x0x7ff6d78e4478) 0 + QListSpecialMethods (0x0x7ff6d78e44e0) 0 empty + QListSpecialMethodsBase (0x0x7ff6d78e5420) 0 empty + +Class QPolygonF + size=24 align=8 + base size=24 base align=8 +QPolygonF (0x0x7ff6dc0fcc98) 0 + QList (0x0x7ff6dc0fcd00) 0 + QListSpecialMethods (0x0x7ff6dc0fcd68) 0 empty + QListSpecialMethodsBase (0x0x7ff6da471de0) 0 empty + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7ff6e23d2e40) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7ff6e23d2d80) 0 + +Class QTransform::Affine + size=8 align=8 + base size=8 base align=8 +QTransform::Affine (0x0x7ff6e00513c0) 0 + +Class QTransform + size=80 align=8 + base size=74 base align=8 +QTransform (0x0x7ff6e00512a0) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=24 align=8 + base size=24 base align=8 +QImage (0x0x7ff6e223d5b0) 0 + vptr=((& QImage::_ZTV6QImage) + 16) + QPaintDevice (0x0x7ff6df60f5a0) 0 + primary-for QImage (0x0x7ff6e223d5b0) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=24 align=8 + base size=24 base align=8 +QPixmap (0x0x7ff6e1eb6f70) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16) + QPaintDevice (0x0x7ff6dcb5ba80) 0 + primary-for QPixmap (0x0x7ff6e1eb6f70) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7ff6dc421960) 0 + +Vtable for QAbstractFileIconProvider +QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractFileIconProvider) +16 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +24 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +32 (int (*)(...))QAbstractFileIconProvider::icon +40 (int (*)(...))QAbstractFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QAbstractFileIconProvider + size=16 align=8 + base size=16 base align=8 +QAbstractFileIconProvider (0x0x7ff6db5cbe40) 0 + vptr=((& QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider) + 16) + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7ff6db0779c0) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7ff6da997f00) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7ff6da3a1540) 0 + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7ff6d798ce40) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7ff6e1cc19c0) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16) + QObject (0x0x7ff6d798cde0) 0 + primary-for QScreen (0x0x7ff6e1cc19c0) + +Class QInputDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDevice::QPrivateSignal (0x0x7ff6d798c1e0) 0 empty + +Vtable for QInputDevice +QInputDevice::_ZTV12QInputDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDevice) +16 (int (*)(...))QInputDevice::metaObject +24 (int (*)(...))QInputDevice::qt_metacast +32 (int (*)(...))QInputDevice::qt_metacall +40 (int (*)(...))QInputDevice::~QInputDevice +48 (int (*)(...))QInputDevice::~QInputDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputDevice + size=16 align=8 + base size=16 base align=8 +QInputDevice (0x0x7ff6e1cc1a28) 0 + vptr=((& QInputDevice::_ZTV12QInputDevice) + 16) + QObject (0x0x7ff6d798c180) 0 + primary-for QInputDevice (0x0x7ff6e1cc1a28) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7ff6dd0627e0) 0 + +Class QPointingDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPointingDevice::QPrivateSignal (0x0x7ff6d7c1b180) 0 empty + +Vtable for QPointingDevice +QPointingDevice::_ZTV15QPointingDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPointingDevice) +16 (int (*)(...))QPointingDevice::metaObject +24 (int (*)(...))QPointingDevice::qt_metacast +32 (int (*)(...))QPointingDevice::qt_metacall +40 (int (*)(...))QPointingDevice::~QPointingDevice +48 (int (*)(...))QPointingDevice::~QPointingDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPointingDevice + size=16 align=8 + base size=16 base align=8 +QPointingDevice (0x0x7ff6e1cc8a28) 0 + vptr=((& QPointingDevice::_ZTV15QPointingDevice) + 16) + QInputDevice (0x0x7ff6e1cc8a90) 0 + primary-for QPointingDevice (0x0x7ff6e1cc8a28) + QObject (0x0x7ff6d7c1b120) 0 + primary-for QInputDevice (0x0x7ff6e1cc8a90) + +Class QEventPoint + size=8 align=8 + base size=8 base align=8 +QEventPoint (0x0x7ff6d7c1b7e0) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7ff6da30e600) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QInputEvent + size=40 align=8 + base size=40 base align=8 +QInputEvent (0x0x7ff6e1cea410) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16) + QEvent (0x0x7ff6dbdf85a0) 0 + primary-for QInputEvent (0x0x7ff6e1cea410) + +Vtable for QPointerEvent +QPointerEvent::_ZTV13QPointerEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPointerEvent) +16 (int (*)(...))QPointerEvent::~QPointerEvent +24 (int (*)(...))QPointerEvent::~QPointerEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QPointerEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QPointerEvent::isBeginEvent +64 (int (*)(...))QPointerEvent::isUpdateEvent +72 (int (*)(...))QPointerEvent::isEndEvent + +Class QPointerEvent + size=64 align=8 + base size=64 base align=8 +QPointerEvent (0x0x7ff6e1cea478) 0 + vptr=((& QPointerEvent::_ZTV13QPointerEvent) + 16) + QInputEvent (0x0x7ff6e1cea4e0) 0 + primary-for QPointerEvent (0x0x7ff6e1cea478) + QEvent (0x0x7ff6dbdf8a80) 0 + primary-for QInputEvent (0x0x7ff6e1cea4e0) + +Vtable for QSinglePointEvent +QSinglePointEvent::_ZTV17QSinglePointEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSinglePointEvent) +16 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +24 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QSinglePointEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QSinglePointEvent + size=80 align=8 + base size=80 base align=8 +QSinglePointEvent (0x0x7ff6e1ceac98) 0 + vptr=((& QSinglePointEvent::_ZTV17QSinglePointEvent) + 16) + QPointerEvent (0x0x7ff6e1cead00) 0 + primary-for QSinglePointEvent (0x0x7ff6e1ceac98) + QInputEvent (0x0x7ff6e1ceadd0) 0 + primary-for QPointerEvent (0x0x7ff6e1cead00) + QEvent (0x0x7ff6def24960) 0 + primary-for QInputEvent (0x0x7ff6e1ceadd0) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QEnterEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QEnterEvent + size=80 align=8 + base size=80 base align=8 +QEnterEvent (0x0x7ff6e1ceae38) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16) + QSinglePointEvent (0x0x7ff6e1ceaea0) 0 + primary-for QEnterEvent (0x0x7ff6e1ceae38) + QPointerEvent (0x0x7ff6e1ceaf08) 0 + primary-for QSinglePointEvent (0x0x7ff6e1ceaea0) + QInputEvent (0x0x7ff6e1ceaf70) 0 + primary-for QPointerEvent (0x0x7ff6e1ceaf08) + QEvent (0x0x7ff6def24e40) 0 + primary-for QInputEvent (0x0x7ff6e1ceaf70) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QMouseEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QMouseEvent + size=80 align=8 + base size=80 base align=8 +QMouseEvent (0x0x7ff6e1cec000) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16) + QSinglePointEvent (0x0x7ff6e1cec068) 0 + primary-for QMouseEvent (0x0x7ff6e1cec000) + QPointerEvent (0x0x7ff6e1cec0d0) 0 + primary-for QSinglePointEvent (0x0x7ff6e1cec068) + QInputEvent (0x0x7ff6e1cec138) 0 + primary-for QPointerEvent (0x0x7ff6e1cec0d0) + QEvent (0x0x7ff6e2f01600) 0 + primary-for QInputEvent (0x0x7ff6e1cec138) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QHoverEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QHoverEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QHoverEvent + size=96 align=8 + base size=96 base align=8 +QHoverEvent (0x0x7ff6e1cec208) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16) + QSinglePointEvent (0x0x7ff6e1cec270) 0 + primary-for QHoverEvent (0x0x7ff6e1cec208) + QPointerEvent (0x0x7ff6e1cec2d8) 0 + primary-for QSinglePointEvent (0x0x7ff6e1cec270) + QInputEvent (0x0x7ff6e1cec340) 0 + primary-for QPointerEvent (0x0x7ff6e1cec2d8) + QEvent (0x0x7ff6e2f01ba0) 0 + primary-for QInputEvent (0x0x7ff6e1cec340) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QWheelEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QWheelEvent::isBeginEvent +64 (int (*)(...))QWheelEvent::isUpdateEvent +72 (int (*)(...))QWheelEvent::isEndEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7ff6e1cec3a8) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16) + QSinglePointEvent (0x0x7ff6e1cec410) 0 + primary-for QWheelEvent (0x0x7ff6e1cec3a8) + QPointerEvent (0x0x7ff6e1cec478) 0 + primary-for QSinglePointEvent (0x0x7ff6e1cec410) + QInputEvent (0x0x7ff6e1cec4e0) 0 + primary-for QPointerEvent (0x0x7ff6e1cec478) + QEvent (0x0x7ff6e1bb3000) 0 + primary-for QInputEvent (0x0x7ff6e1cec4e0) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTabletEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QTabletEvent + size=96 align=8 + base size=96 base align=8 +QTabletEvent (0x0x7ff6e1cec548) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16) + QSinglePointEvent (0x0x7ff6e1cec618) 0 + primary-for QTabletEvent (0x0x7ff6e1cec548) + QPointerEvent (0x0x7ff6e1cec680) 0 + primary-for QSinglePointEvent (0x0x7ff6e1cec618) + QInputEvent (0x0x7ff6e1cec6e8) 0 + primary-for QPointerEvent (0x0x7ff6e1cec680) + QEvent (0x0x7ff6e1bb34e0) 0 + primary-for QInputEvent (0x0x7ff6e1cec6e8) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QNativeGestureEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7ff6e1cec750) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16) + QSinglePointEvent (0x0x7ff6e1cec7b8) 0 + primary-for QNativeGestureEvent (0x0x7ff6e1cec750) + QPointerEvent (0x0x7ff6e1cec820) 0 + primary-for QSinglePointEvent (0x0x7ff6e1cec7b8) + QInputEvent (0x0x7ff6e1cec8f0) 0 + primary-for QPointerEvent (0x0x7ff6e1cec820) + QEvent (0x0x7ff6e1bb3d80) 0 + primary-for QInputEvent (0x0x7ff6e1cec8f0) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QKeyEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QKeyEvent + size=88 align=8 + base size=82 base align=8 +QKeyEvent (0x0x7ff6e1cec958) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16) + QInputEvent (0x0x7ff6e1cec9c0) 0 + primary-for QKeyEvent (0x0x7ff6e1cec958) + QEvent (0x0x7ff6e0b032a0) 0 + primary-for QInputEvent (0x0x7ff6e1cec9c0) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFocusEvent::clone + +Class QFocusEvent + size=24 align=8 + base size=20 base align=8 +QFocusEvent (0x0x7ff6e1ceca28) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16) + QEvent (0x0x7ff6e0b038a0) 0 + primary-for QFocusEvent (0x0x7ff6e1ceca28) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPaintEvent::clone + +Class QPaintEvent + size=48 align=8 + base size=41 base align=8 +QPaintEvent (0x0x7ff6e1ceca90) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16) + QEvent (0x0x7ff6e0b03c00) 0 + primary-for QPaintEvent (0x0x7ff6e1ceca90) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QMoveEvent::clone + +Class QMoveEvent + size=32 align=8 + base size=32 base align=8 +QMoveEvent (0x0x7ff6e1cecaf8) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16) + QEvent (0x0x7ff6e0b03f00) 0 + primary-for QMoveEvent (0x0x7ff6e1cecaf8) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QExposeEvent::clone + +Class QExposeEvent + size=24 align=8 + base size=24 base align=8 +QExposeEvent (0x0x7ff6e1cecbc8) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16) + QEvent (0x0x7ff6e07362a0) 0 + primary-for QExposeEvent (0x0x7ff6e1cecbc8) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPlatformSurfaceEvent::clone + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=20 base align=8 +QPlatformSurfaceEvent (0x0x7ff6e1cecc30) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16) + QEvent (0x0x7ff6e0736540) 0 + primary-for QPlatformSurfaceEvent (0x0x7ff6e1cecc30) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QResizeEvent::clone + +Class QResizeEvent + size=32 align=8 + base size=32 base align=8 +QResizeEvent (0x0x7ff6e1cecc98) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16) + QEvent (0x0x7ff6e0736840) 0 + primary-for QResizeEvent (0x0x7ff6e1cecc98) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QCloseEvent + size=16 align=8 + base size=16 base align=8 +QCloseEvent (0x0x7ff6e1cecd00) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16) + QEvent (0x0x7ff6e0736ba0) 0 + primary-for QCloseEvent (0x0x7ff6e1cecd00) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QIconDragEvent + size=16 align=8 + base size=16 base align=8 +QIconDragEvent (0x0x7ff6e1cecd68) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16) + QEvent (0x0x7ff6e0736c00) 0 + primary-for QIconDragEvent (0x0x7ff6e1cecd68) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QShowEvent + size=16 align=8 + base size=16 base align=8 +QShowEvent (0x0x7ff6e1cecdd0) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16) + QEvent (0x0x7ff6e0736c60) 0 + primary-for QShowEvent (0x0x7ff6e1cecdd0) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QHideEvent + size=16 align=8 + base size=16 base align=8 +QHideEvent (0x0x7ff6e1cecea0) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16) + QEvent (0x0x7ff6e0736cc0) 0 + primary-for QHideEvent (0x0x7ff6e1cecea0) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QContextMenuEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QContextMenuEvent + size=64 align=8 + base size=57 base align=8 +QContextMenuEvent (0x0x7ff6e1cecf08) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16) + QInputEvent (0x0x7ff6e1cecf70) 0 + primary-for QContextMenuEvent (0x0x7ff6e1cecf08) + QEvent (0x0x7ff6e0736d20) 0 + primary-for QInputEvent (0x0x7ff6e1cecf70) + +Class QInputMethodEvent::Attribute + size=48 align=8 + base size=48 base align=8 +QInputMethodEvent::Attribute (0x0x7ff6e0041300) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodEvent::clone + +Class QInputMethodEvent + size=96 align=8 + base size=96 base align=8 +QInputMethodEvent (0x0x7ff6e1ced000) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16) + QEvent (0x0x7ff6e00412a0) 0 + primary-for QInputMethodEvent (0x0x7ff6e1ced000) + +Class QInputMethodQueryEvent::QueryPair + size=40 align=8 + base size=40 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7ff6df76dae0) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodQueryEvent::clone + +Class QInputMethodQueryEvent + size=48 align=8 + base size=48 base align=8 +QInputMethodQueryEvent (0x0x7ff6e1cf22d8) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16) + QEvent (0x0x7ff6df76da80) 0 + primary-for QInputMethodQueryEvent (0x0x7ff6e1cf22d8) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDropEvent::clone + +Class QDropEvent + size=64 align=8 + base size=64 base align=8 +QDropEvent (0x0x7ff6e1cf7478) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16) + QEvent (0x0x7ff6df01ac00) 0 + primary-for QDropEvent (0x0x7ff6e1cf7478) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragMoveEvent + size=80 align=8 + base size=80 base align=8 +QDragMoveEvent (0x0x7ff6e1cf74e0) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16) + QDropEvent (0x0x7ff6e1cf75b0) 0 + primary-for QDragMoveEvent (0x0x7ff6e1cf74e0) + QEvent (0x0x7ff6de3d7360) 0 + primary-for QDropEvent (0x0x7ff6e1cf75b0) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragEnterEvent + size=80 align=8 + base size=80 base align=8 +QDragEnterEvent (0x0x7ff6e1cf7618) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16) + QDragMoveEvent (0x0x7ff6e1cf7680) 0 + primary-for QDragEnterEvent (0x0x7ff6e1cf7618) + QDropEvent (0x0x7ff6e1cf76e8) 0 + primary-for QDragMoveEvent (0x0x7ff6e1cf7680) + QEvent (0x0x7ff6de3d77e0) 0 + primary-for QDropEvent (0x0x7ff6e1cf76e8) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QDragLeaveEvent + size=16 align=8 + base size=16 base align=8 +QDragLeaveEvent (0x0x7ff6e1cf7750) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16) + QEvent (0x0x7ff6de3d7840) 0 + primary-for QDragLeaveEvent (0x0x7ff6e1cf7750) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QHelpEvent::clone + +Class QHelpEvent + size=32 align=8 + base size=32 base align=8 +QHelpEvent (0x0x7ff6e1cf77b8) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16) + QEvent (0x0x7ff6de3d78a0) 0 + primary-for QHelpEvent (0x0x7ff6e1cf77b8) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QStatusTipEvent::clone + +Class QStatusTipEvent + size=40 align=8 + base size=40 base align=8 +QStatusTipEvent (0x0x7ff6e1cf7820) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16) + QEvent (0x0x7ff6de3d7d80) 0 + primary-for QStatusTipEvent (0x0x7ff6e1cf7820) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWhatsThisClickedEvent::clone + +Class QWhatsThisClickedEvent + size=40 align=8 + base size=40 base align=8 +QWhatsThisClickedEvent (0x0x7ff6e1cf7888) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16) + QEvent (0x0x7ff6dd78c060) 0 + primary-for QWhatsThisClickedEvent (0x0x7ff6e1cf7888) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QActionEvent::clone + +Class QActionEvent + size=32 align=8 + base size=32 base align=8 +QActionEvent (0x0x7ff6e1cf7958) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16) + QEvent (0x0x7ff6dd78c300) 0 + primary-for QActionEvent (0x0x7ff6e1cf7958) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFileOpenEvent::clone + +Class QFileOpenEvent + size=48 align=8 + base size=48 base align=8 +QFileOpenEvent (0x0x7ff6e1cf79c0) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16) + QEvent (0x0x7ff6dd78c660) 0 + primary-for QFileOpenEvent (0x0x7ff6e1cf79c0) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QToolBarChangeEvent::clone + +Class QToolBarChangeEvent + size=24 align=8 + base size=17 base align=8 +QToolBarChangeEvent (0x0x7ff6e1cf7a28) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16) + QEvent (0x0x7ff6dd78c960) 0 + primary-for QToolBarChangeEvent (0x0x7ff6e1cf7a28) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QShortcutEvent::clone + +Class QShortcutEvent + size=32 align=8 + base size=29 base align=8 +QShortcutEvent (0x0x7ff6e1cf7a90) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16) + QEvent (0x0x7ff6dd78cc60) 0 + primary-for QShortcutEvent (0x0x7ff6e1cf7a90) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWindowStateChangeEvent::clone + +Class QWindowStateChangeEvent + size=24 align=8 + base size=21 base align=8 +QWindowStateChangeEvent (0x0x7ff6e1cf7af8) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16) + QEvent (0x0x7ff6dd2a3000) 0 + primary-for QWindowStateChangeEvent (0x0x7ff6e1cf7af8) + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTouchEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QTouchEvent::isBeginEvent +64 (int (*)(...))QTouchEvent::isUpdateEvent +72 (int (*)(...))QTouchEvent::isEndEvent + +Class QTouchEvent + size=80 align=8 + base size=79 base align=8 +QTouchEvent (0x0x7ff6e1cf7b60) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16) + QPointerEvent (0x0x7ff6e1cf7bc8) 0 + primary-for QTouchEvent (0x0x7ff6e1cf7b60) + QInputEvent (0x0x7ff6e1cf7c30) 0 + primary-for QPointerEvent (0x0x7ff6e1cf7bc8) + QEvent (0x0x7ff6dd2a3300) 0 + primary-for QInputEvent (0x0x7ff6e1cf7c30) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollPrepareEvent::clone + +Class QScrollPrepareEvent + size=96 align=8 + base size=96 base align=8 +QScrollPrepareEvent (0x0x7ff6e1cf7c98) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16) + QEvent (0x0x7ff6dd2a3660) 0 + primary-for QScrollPrepareEvent (0x0x7ff6e1cf7c98) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollEvent::clone + +Class QScrollEvent + size=56 align=8 + base size=52 base align=8 +QScrollEvent (0x0x7ff6e1cf7d00) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16) + QEvent (0x0x7ff6dd2a3a80) 0 + primary-for QScrollEvent (0x0x7ff6e1cf7d00) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScreenOrientationChangeEvent::clone + +Class QScreenOrientationChangeEvent + size=32 align=8 + base size=28 base align=8 +QScreenOrientationChangeEvent (0x0x7ff6e1cf7dd0) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16) + QEvent (0x0x7ff6dd2a3e40) 0 + primary-for QScreenOrientationChangeEvent (0x0x7ff6e1cf7dd0) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QApplicationStateChangeEvent::clone + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=20 base align=8 +QApplicationStateChangeEvent (0x0x7ff6e1cf7e38) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16) + QEvent (0x0x7ff6dcf5b1e0) 0 + primary-for QApplicationStateChangeEvent (0x0x7ff6e1cf7e38) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7ff6dcf5b4e0) 0 + +Class QFontDatabase + size=1 align=1 + base size=0 base align=1 +QFontDatabase (0x0x7ff6dc62d540) 0 empty + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7ff6dc62d720) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7ff6dbeaa600) 0 + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7ff6db940cc0) 0 + +Class QBrushData + size=104 align=8 + base size=104 base align=8 +QBrushData (0x0x7ff6da5db840) 0 + +Class QGradient::QGradientData + size=48 align=8 + base size=48 base align=8 +QGradient::QGradientData (0x0x7ff6da5dba80) 0 + +Class QGradient + size=88 align=8 + base size=88 base align=8 +QGradient (0x0x7ff6da5dba20) 0 + +Class QLinearGradient + size=88 align=8 + base size=88 base align=8 +QLinearGradient (0x0x7ff6e1dfaf70) 0 + QGradient (0x0x7ff6da0f4960) 0 + +Class QRadialGradient + size=88 align=8 + base size=88 base align=8 +QRadialGradient (0x0x7ff6e1dfc000) 0 + QGradient (0x0x7ff6da0f4a80) 0 + +Class QConicalGradient + size=88 align=8 + base size=88 base align=8 +QConicalGradient (0x0x7ff6e1dfc068) 0 + QGradient (0x0x7ff6da0f4ba0) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7ff6da0f4c60) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7ff6d7b50cc0) 0 + +Class QTextOption + size=24 align=8 + base size=24 base align=8 +QTextOption (0x0x7ff6d7b50c60) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7ff6d7885a20) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7ff6dcc79720) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7ff6e1e16ea0) 0 + QTextFormat (0x0x7ff6dd8a0d80) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7ff6e1e20ea0) 0 + QTextFormat (0x0x7ff6dbfc00c0) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7ff6e1e25ea0) 0 + QTextFormat (0x0x7ff6db33b600) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7ff6e1e28dd0) 0 + QTextCharFormat (0x0x7ff6e1e28ea0) 0 + QTextFormat (0x0x7ff6da6944e0) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7ff6e1e2ddd0) 0 + QTextFormat (0x0x7ff6da110360) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7ff6e1e32c30) 0 + QTextFrameFormat (0x0x7ff6e1e32c98) 0 + QTextFormat (0x0x7ff6d937a780) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7ff6e1e39c30) 0 + QTextCharFormat (0x0x7ff6e1e39c98) 0 + QTextFormat (0x0x7ff6de107a20) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7ff6df6d6f60) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7ff6d801a600) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7ff6d801aa20) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7ff6d801a9c0) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7ff6d87b1ae0) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7ff6d87b1f60) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7ff6e6abd240) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7ff6e050a5b0) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16) + QObject (0x0x7ff6e6abd1e0) 0 + primary-for QTextDocument (0x0x7ff6e050a5b0) + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7ff6e6abda20) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7ff6d7c0dd80) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7ff6d7c0dde0) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=80 align=8 + base size=80 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7ff6d7c0de40) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7ff6dcbb52d8) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16) + QObject (0x0x7ff6d7c0dd20) 0 + primary-for QAbstractTextDocumentLayout (0x0x7ff6dcbb52d8) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7ff6d79e6420) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7ff6d79e6660) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7ff6d79e66c0) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7ff6d79e6600) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7ff6d79e6f00) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7ff6d7a112a0) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7ff6d7a11300) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7ff6d7a11360) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7ff6d7a113c0) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7ff6d7a11420) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7ff6d7a11480) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7ff6d7a11540) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7ff6d7a115a0) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7ff6dbabfea0) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16) + QAccessibleEvent (0x0x7ff6d7a11ae0) 0 + primary-for QAccessibleStateChangeEvent (0x0x7ff6dbabfea0) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7ff6dbabff08) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16) + QAccessibleEvent (0x0x7ff6d7a11ea0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7ff6dbabff08) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7ff6dbada888) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16) + QAccessibleTextCursorEvent (0x0x7ff6dbada8f0) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7ff6dbada888) + QAccessibleEvent (0x0x7ff6d7a2f300) 0 + primary-for QAccessibleTextCursorEvent (0x0x7ff6dbada8f0) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextInsertEvent (0x0x7ff6dbbcc8f0) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16) + QAccessibleTextCursorEvent (0x0x7ff6dbbcc958) 0 + primary-for QAccessibleTextInsertEvent (0x0x7ff6dbbcc8f0) + QAccessibleEvent (0x0x7ff6d7a2f780) 0 + primary-for QAccessibleTextCursorEvent (0x0x7ff6dbbcc958) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextRemoveEvent (0x0x7ff6dbbcca90) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16) + QAccessibleTextCursorEvent (0x0x7ff6dbbccc30) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7ff6dbbcca90) + QAccessibleEvent (0x0x7ff6d7a2fba0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7ff6dbbccc30) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=88 align=8 + base size=88 base align=8 +QAccessibleTextUpdateEvent (0x0x7ff6dbbccd00) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16) + QAccessibleTextCursorEvent (0x0x7ff6dbbccd68) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7ff6dbbccd00) + QAccessibleEvent (0x0x7ff6d7a40000) 0 + primary-for QAccessibleTextCursorEvent (0x0x7ff6dbbccd68) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleValueChangeEvent (0x0x7ff6dbbccea0) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16) + QAccessibleEvent (0x0x7ff6d7a40480) 0 + primary-for QAccessibleValueChangeEvent (0x0x7ff6dbbccea0) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7ff6dbbe0068) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16) + QAccessibleEvent (0x0x7ff6d7a408a0) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7ff6dbbe0068) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7ff6d7652180) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7ff6d7652420) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7ff6dbbe0270) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16) + QObject (0x0x7ff6d76523c0) 0 + primary-for QAccessibleBridgePlugin (0x0x7ff6dbbe0270) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0 +24 0 +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7ff6dbbe04e0) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16) + QAccessibleInterface (0x0x7ff6d76524e0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7ff6dbbe04e0) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7ff6dbbe09c0) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16) + QAccessibleObject (0x0x7ff6dbbe0a28) 0 + primary-for QAccessibleApplication (0x0x7ff6dbbe09c0) + QAccessibleInterface (0x0x7ff6d7652540) 0 nearly-empty + primary-for QAccessibleObject (0x0x7ff6dbbe0a28) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7ff6d7652600) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7ff6dbbe0d68) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16) + QObject (0x0x7ff6d76525a0) 0 + primary-for QAccessiblePlugin (0x0x7ff6dbbe0d68) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7ff6d7652720) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7ff6dbbe0dd0) 0 + vptr=((& QAction::_ZTV7QAction) + 16) + QObject (0x0x7ff6d76526c0) 0 + primary-for QAction (0x0x7ff6dbbe0dd0) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7ff6d7678060) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7ff6db95d0d0) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16) + QObject (0x0x7ff6d7678000) 0 + primary-for QActionGroup (0x0x7ff6db95d0d0) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7ff6d7678300) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7ff6d7678b40) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16) + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=24 align=8 + base size=24 base align=8 +QBitmap (0x0x7ff6db982138) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16) + QPixmap (0x0x7ff6db9821a0) 0 + primary-for QBitmap (0x0x7ff6db982138) + QPaintDevice (0x0x7ff6d7678e40) 0 + primary-for QPixmap (0x0x7ff6db9821a0) + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7ff6d76b1780) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7ff6d76d4960) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 47 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))-16 +320 (int (*)(...))(& _ZTI7QWindow) +328 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +336 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7ff6d76a17e0) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16) + QObject (0x0x7ff6d76d48a0) 0 + primary-for QWindow (0x0x7ff6d76a17e0) + QSurface (0x0x7ff6d76d4900) 16 + vptr=((& QWindow::_ZTV7QWindow) + 328) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7ff6d76f71e0) 0 + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7ff6d76f7300) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7ff6d9c98680) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16) + QObject (0x0x7ff6d76f72a0) 0 + primary-for QClipboard (0x0x7ff6d9c98680) + +Class QColorTransform + size=8 align=8 + base size=8 base align=8 +QColorTransform (0x0x7ff6d76f7420) 0 + +Class QColorSpace + size=8 align=8 + base size=8 base align=8 +QColorSpace (0x0x7ff6d77293c0) 0 + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7ff6d7758060) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7ff6d7758120) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7ff6d799b9c0) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16) + QObject (0x0x7ff6d77580c0) 0 + primary-for QDrag (0x0x7ff6d799b9c0) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7ff6d7758300) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QFileSystemModel::mimeTypes +224 (int (*)(...))QFileSystemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QFileSystemModel::dropMimeData +248 (int (*)(...))QFileSystemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QFileSystemModel::fetchMore +320 (int (*)(...))QFileSystemModel::canFetchMore +328 (int (*)(...))QFileSystemModel::flags +336 (int (*)(...))QFileSystemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QFileSystemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7ff6d799ba28) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16) + QAbstractItemModel (0x0x7ff6d799ba90) 0 + primary-for QFileSystemModel (0x0x7ff6d799ba28) + QObject (0x0x7ff6d77582a0) 0 + primary-for QAbstractItemModel (0x0x7ff6d799ba90) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7ff6d7758900) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7ff6d778c240) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7ff6d779dc60) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7ff6d77dba80) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7ff6d77d7270) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16) + QObject (0x0x7ff6d77dba20) 0 + primary-for QGenericPlugin (0x0x7ff6d77d7270) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7ff6d77dbb40) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7ff6d77dbc00) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7ff6d77d72d8) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16) + QObject (0x0x7ff6d77dbba0) 0 + primary-for QInputMethod (0x0x7ff6d77d72d8) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7ff6d77dbea0) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7ff6d77d7340) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16) + QCoreApplication (0x0x7ff6d77d73a8) 0 + primary-for QGuiApplication (0x0x7ff6d77d7340) + QObject (0x0x7ff6d77dbe40) 0 + primary-for QCoreApplication (0x0x7ff6d77d73a8) + +Class QIconEngine::ScaledPixmapArgument + size=48 align=8 + base size=48 base align=8 +QIconEngine::ScaledPixmapArgument (0x0x7ff6d77fd180) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::isNull +128 (int (*)(...))QIconEngine::scaledPixmap +136 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7ff6d77fd120) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7ff6d77fd240) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7ff6d77d7410) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16) + QObject (0x0x7ff6d77fd1e0) 0 + primary-for QIconEnginePlugin (0x0x7ff6d77d7410) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QImageIOHandler::write +56 (int (*)(...))QImageIOHandler::option +64 (int (*)(...))QImageIOHandler::setOption +72 (int (*)(...))QImageIOHandler::supportsOption +80 (int (*)(...))QImageIOHandler::jumpToNextImage +88 (int (*)(...))QImageIOHandler::jumpToImage +96 (int (*)(...))QImageIOHandler::loopCount +104 (int (*)(...))QImageIOHandler::imageCount +112 (int (*)(...))QImageIOHandler::nextImageDelay +120 (int (*)(...))QImageIOHandler::currentImageNumber +128 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7ff6d77fd300) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7ff6d77fd540) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7ff6d77d7478) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16) + QObject (0x0x7ff6d77fd4e0) 0 + primary-for QImageIOPlugin (0x0x7ff6d77d7478) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7ff6d77fd900) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7ff6d77fd9c0) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7ff6d77fda80) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7ff6d745c7e0) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7ff6d749ac60) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7ff6d748bc98) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16) + QObject (0x0x7ff6d749ac00) 0 + primary-for QMovie (0x0x7ff6d748bc98) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7ff6d74b4060) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7ff6d782dd20) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16) + QObject (0x0x7ff6d749af60) 0 + primary-for QOffscreenSurface (0x0x7ff6d782dd20) + QSurface (0x0x7ff6d74b4000) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160) + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7ff6d74b42a0) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7ff6d748bd00) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16) + QObject (0x0x7ff6d74b4240) 0 + primary-for QOpenGLContextGroup (0x0x7ff6d748bd00) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7ff6d74b4480) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7ff6d748bd68) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16) + QObject (0x0x7ff6d74b4420) 0 + primary-for QOpenGLContext (0x0x7ff6d748bd68) + +Vtable for QNativeInterface::QGLXContext +QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QGLXContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QGLXContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QGLXContext (0x0x7ff6d74b4600) 0 nearly-empty + vptr=((& QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE) + 16) + +Vtable for QNativeInterface::QEGLContext +QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QEGLContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QEGLContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QEGLContext (0x0x7ff6d74b4660) 0 nearly-empty + vptr=((& QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE) + 16) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7ff6d74b46c0) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7ff6d74b4c60) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7ff6d74b4c00) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7ff6d530b1a0) 0 + QOpenGLFunctions (0x0x7ff6d5323a20) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1728 align=8 + base size=1728 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7ff6d5323d80) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2880 align=8 + base size=2880 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7ff6d530b208) 0 + QOpenGLFunctionsPrivate (0x0x7ff6d5323d20) 0 + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7ff6d53fca80) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7ff6d504f540) 0 + +Class QPageRanges::Range + size=8 align=4 + base size=8 base align=4 +QPageRanges::Range (0x0x7ff6d50a71e0) 0 + +Class QPageRanges + size=8 align=8 + base size=8 base align=8 +QPageRanges (0x0x7ff6d50a7180) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageLayout +96 (int (*)(...))QPagedPaintDevice::setPageSize +104 (int (*)(...))QPagedPaintDevice::setPageOrientation +112 (int (*)(...))QPagedPaintDevice::setPageMargins +120 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPagedPaintDevice + size=24 align=8 + base size=24 base align=8 +QPagedPaintDevice (0x0x7ff6d5104dd0) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16) + QPaintDevice (0x0x7ff6d510c300) 0 + primary-for QPagedPaintDevice (0x0x7ff6d5104dd0) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7ff6d510c480) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QPaintDeviceWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +352 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +416 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QPaintDevice::redirected +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=56 align=8 + base size=50 base align=8 +QPaintDeviceWindow (0x0x7ff6d5111070) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16) + QWindow (0x0x7ff6d51110e0) 0 + primary-for QPaintDeviceWindow (0x0x7ff6d5111070) + QObject (0x0x7ff6d510c360) 0 + primary-for QWindow (0x0x7ff6d51110e0) + QSurface (0x0x7ff6d510c3c0) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 344) + QPaintDevice (0x0x7ff6d510c420) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 408) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7ff6d510c660) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7ff6d510c600) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7ff6d4eb21e0) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QPaintEngine::createPixmap +200 (int (*)(...))QPaintEngine::createPixmapFromImage + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7ff6d4ec69c0) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7ff6d4efd000) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7ff6d4efda80) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7ff6d4efda20) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7ff6d4f7dd80) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7ff6d4f9b540) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 33 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::paintEngine +128 (int (*)(...))QPdfWriter::metric +136 (int (*)(...))-16 +144 (int (*)(...))(& _ZTI10QPdfWriter) +152 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +160 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +168 (int (*)(...))QPaintDevice::devType +176 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +184 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +192 (int (*)(...))QPaintDevice::initPainter +200 (int (*)(...))QPaintDevice::redirected +208 (int (*)(...))QPaintDevice::sharedPainter +216 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +224 (int (*)(...))QPagedPaintDevice::setPageLayout +232 (int (*)(...))QPagedPaintDevice::setPageSize +240 (int (*)(...))QPagedPaintDevice::setPageOrientation +248 (int (*)(...))QPagedPaintDevice::setPageMargins +256 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPdfWriter + size=40 align=8 + base size=40 base align=8 +QPdfWriter (0x0x7ff6d4eddaf0) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16) + QObject (0x0x7ff6d4f9b480) 0 + primary-for QPdfWriter (0x0x7ff6d4eddaf0) + QPagedPaintDevice (0x0x7ff6d4f85c30) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 152) + QPaintDevice (0x0x7ff6d4f9b4e0) 16 + primary-for QPagedPaintDevice (0x0x7ff6d4f85c30) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=24 align=8 + base size=24 base align=8 +QPicture (0x0x7ff6d4f85c98) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16) + QPaintDevice (0x0x7ff6d4f9b720) 0 + primary-for QPicture (0x0x7ff6d4f85c98) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7ff6d4fe0240) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7ff6d4fe01e0) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7ff6d501f480) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 60 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QRasterWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QRasterWindow::redirected +336 (int (*)(...))-16 +344 (int (*)(...))(& _ZTI13QRasterWindow) +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +360 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +392 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +400 (int (*)(...))-40 +408 (int (*)(...))(& _ZTI13QRasterWindow) +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +424 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +432 (int (*)(...))QPaintDevice::devType +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +448 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +456 (int (*)(...))QPaintDevice::initPainter +464 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +472 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=56 align=8 + base size=50 base align=8 +QRasterWindow (0x0x7ff6d5020208) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16) + QPaintDeviceWindow (0x0x7ff6d4ff2700) 0 + primary-for QRasterWindow (0x0x7ff6d5020208) + QWindow (0x0x7ff6d4ff2770) 0 + primary-for QPaintDeviceWindow (0x0x7ff6d4ff2700) + QObject (0x0x7ff6d501f360) 0 + primary-for QWindow (0x0x7ff6d4ff2770) + QSurface (0x0x7ff6d501f3c0) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 352) + QPaintDevice (0x0x7ff6d501f420) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 416) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7ff6d501f660) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7ff6d50202d8) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16) + QObject (0x0x7ff6d501f600) 0 + primary-for QSessionManager (0x0x7ff6d50202d8) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7ff6d501f840) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7ff6d5020340) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16) + QObject (0x0x7ff6d501f7e0) 0 + primary-for QShortcut (0x0x7ff6d5020340) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::multiData +48 (int (*)(...))QStandardItem::setData +56 (int (*)(...))QStandardItem::clone +64 (int (*)(...))QStandardItem::type +72 (int (*)(...))QStandardItem::read +80 (int (*)(...))QStandardItem::write +88 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7ff6d501fd20) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7ff6d4c81d80) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::clearItemData +216 (int (*)(...))QStandardItemModel::mimeTypes +224 (int (*)(...))QStandardItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QStandardItemModel::dropMimeData +248 (int (*)(...))QStandardItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStandardItemModel::insertRows +272 (int (*)(...))QStandardItemModel::insertColumns +280 (int (*)(...))QStandardItemModel::removeRows +288 (int (*)(...))QStandardItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStandardItemModel::flags +336 (int (*)(...))QStandardItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QStandardItemModel::roleNames +376 (int (*)(...))QStandardItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7ff6d5020c98) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16) + QAbstractItemModel (0x0x7ff6d5020d00) 0 + primary-for QStandardItemModel (0x0x7ff6d5020c98) + QObject (0x0x7ff6d4c81d20) 0 + primary-for QAbstractItemModel (0x0x7ff6d5020d00) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7ff6d4cda0c0) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7ff6d4d159c0) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7ff6d4d18958) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16) + QObject (0x0x7ff6d4d15960) 0 + primary-for QStyleHints (0x0x7ff6d4d18958) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7ff6d4d15ba0) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7ff6d4d189c0) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16) + QObject (0x0x7ff6d4d15b40) 0 + primary-for QTextObject (0x0x7ff6d4d189c0) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7ff6d4d15d80) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7ff6d4d18a28) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16) + QTextObject (0x0x7ff6d4d18a90) 0 + primary-for QTextBlockGroup (0x0x7ff6d4d18a28) + QObject (0x0x7ff6d4d15d20) 0 + primary-for QTextObject (0x0x7ff6d4d18a90) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7ff6d4d15f00) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7ff6d4d40000) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7ff6d4d40060) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7ff6d4d18af8) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16) + QTextObject (0x0x7ff6d4d18b60) 0 + primary-for QTextFrame (0x0x7ff6d4d18af8) + QObject (0x0x7ff6d4d15f60) 0 + primary-for QTextObject (0x0x7ff6d4d18b60) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7ff6d4d5bea0) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7ff6d4d5bf60) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7ff6d4d5bf00) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7ff6d4db27e0) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7ff6d4dd9660) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7ff6d4dd6d00) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16) + QObject (0x0x7ff6d4dd9600) 0 + primary-for QSyntaxHighlighter (0x0x7ff6d4dd6d00) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7ff6d4dd97e0) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7ff6d4dd9840) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7ff6d4dd9900) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7ff6d4dd6d68) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16) + QTextBlockGroup (0x0x7ff6d4dd6dd0) 0 + primary-for QTextList (0x0x7ff6d4dd6d68) + QTextObject (0x0x7ff6d4dd6e38) 0 + primary-for QTextBlockGroup (0x0x7ff6d4dd6dd0) + QObject (0x0x7ff6d4dd98a0) 0 + primary-for QTextObject (0x0x7ff6d4dd6e38) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7ff6d4dd9cc0) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7ff6d4e06540) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7ff6d4dd6ea0) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16) + QTextFrame (0x0x7ff6d4dd6f08) 0 + primary-for QTextTable (0x0x7ff6d4dd6ea0) + QTextObject (0x0x7ff6d4dd6f70) 0 + primary-for QTextFrame (0x0x7ff6d4dd6f08) + QObject (0x0x7ff6d4e064e0) 0 + primary-for QTextObject (0x0x7ff6d4dd6f70) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7ff6d4e06900) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7ff6d4e15000) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16) + QObject (0x0x7ff6d4e068a0) 0 + primary-for QUndoGroup (0x0x7ff6d4e15000) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7ff6d4e06a80) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7ff6d4e06b40) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7ff6d4e15068) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16) + QObject (0x0x7ff6d4e06ae0) 0 + primary-for QUndoStack (0x0x7ff6d4e15068) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7ff6d4e06d20) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7ff6d4e150d0) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16) + QObject (0x0x7ff6d4e06cc0) 0 + primary-for QValidator (0x0x7ff6d4e150d0) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7ff6d4e3a000) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7ff6d4e15138) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16) + QValidator (0x0x7ff6d4e151a0) 0 + primary-for QIntValidator (0x0x7ff6d4e15138) + QObject (0x0x7ff6d4e06f60) 0 + primary-for QValidator (0x0x7ff6d4e151a0) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7ff6d4e3a1e0) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7ff6d4e15208) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16) + QValidator (0x0x7ff6d4e15270) 0 + primary-for QDoubleValidator (0x0x7ff6d4e15208) + QObject (0x0x7ff6d4e3a180) 0 + primary-for QValidator (0x0x7ff6d4e15270) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7ff6d4e3a5a0) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7ff6d4e152d8) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16) + QValidator (0x0x7ff6d4e15340) 0 + primary-for QRegularExpressionValidator (0x0x7ff6d4e152d8) + QObject (0x0x7ff6d4e3a540) 0 + primary-for QValidator (0x0x7ff6d4e15340) + +Vtable for QSqlDriverCreatorBase +QSqlDriverCreatorBase::_ZTV21QSqlDriverCreatorBase: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSqlDriverCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QSqlDriverCreatorBase + size=8 align=8 + base size=8 base align=8 +QSqlDriverCreatorBase (0x0x7ff6d4e3aa20) 0 nearly-empty + vptr=((& QSqlDriverCreatorBase::_ZTV21QSqlDriverCreatorBase) + 16) + +Class QSqlDatabase + size=8 align=8 + base size=8 base align=8 +QSqlDatabase (0x0x7ff6d4e3ad20) 0 + +Class QSqlDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlDriver::QPrivateSignal (0x0x7ff6d4e3ade0) 0 empty + +Vtable for QSqlDriver +QSqlDriver::_ZTV10QSqlDriver: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSqlDriver) +16 (int (*)(...))QSqlDriver::metaObject +24 (int (*)(...))QSqlDriver::qt_metacast +32 (int (*)(...))QSqlDriver::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSqlDriver::isOpen +120 (int (*)(...))QSqlDriver::beginTransaction +128 (int (*)(...))QSqlDriver::commitTransaction +136 (int (*)(...))QSqlDriver::rollbackTransaction +144 (int (*)(...))QSqlDriver::tables +152 (int (*)(...))QSqlDriver::primaryIndex +160 (int (*)(...))QSqlDriver::record +168 (int (*)(...))QSqlDriver::formatValue +176 (int (*)(...))QSqlDriver::escapeIdentifier +184 (int (*)(...))QSqlDriver::sqlStatement +192 (int (*)(...))QSqlDriver::handle +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))QSqlDriver::subscribeToNotification +240 (int (*)(...))QSqlDriver::unsubscribeFromNotification +248 (int (*)(...))QSqlDriver::subscribedToNotifications +256 (int (*)(...))QSqlDriver::isIdentifierEscaped +264 (int (*)(...))QSqlDriver::stripDelimiters +272 (int (*)(...))QSqlDriver::maximumIdentifierLength +280 (int (*)(...))QSqlDriver::cancelQuery +288 (int (*)(...))QSqlDriver::setOpen +296 (int (*)(...))QSqlDriver::setOpenError +304 (int (*)(...))QSqlDriver::setLastError + +Class QSqlDriver + size=16 align=8 + base size=16 base align=8 +QSqlDriver (0x0x7ff6d4e15548) 0 + vptr=((& QSqlDriver::_ZTV10QSqlDriver) + 16) + QObject (0x0x7ff6d4e3ad80) 0 + primary-for QSqlDriver (0x0x7ff6d4e15548) + +Class QSqlDriverPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlDriverPlugin::QPrivateSignal (0x0x7ff6d4a92000) 0 empty + +Vtable for QSqlDriverPlugin +QSqlDriverPlugin::_ZTV16QSqlDriverPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QSqlDriverPlugin) +16 (int (*)(...))QSqlDriverPlugin::metaObject +24 (int (*)(...))QSqlDriverPlugin::qt_metacast +32 (int (*)(...))QSqlDriverPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSqlDriverPlugin + size=16 align=8 + base size=16 base align=8 +QSqlDriverPlugin (0x0x7ff6d4e155b0) 0 + vptr=((& QSqlDriverPlugin::_ZTV16QSqlDriverPlugin) + 16) + QObject (0x0x7ff6d4e3af60) 0 + primary-for QSqlDriverPlugin (0x0x7ff6d4e155b0) + +Class QSqlError + size=8 align=8 + base size=8 base align=8 +QSqlError (0x0x7ff6d4a920c0) 0 + +Class QSqlField + size=40 align=8 + base size=40 base align=8 +QSqlField (0x0x7ff6d4ac3e40) 0 + +Class QSqlRecord + size=8 align=8 + base size=8 base align=8 +QSqlRecord (0x0x7ff6d4ade240) 0 + +Class QSqlIndex + size=80 align=8 + base size=80 base align=8 +QSqlIndex (0x0x7ff6d4acd340) 0 + QSqlRecord (0x0x7ff6d4ade300) 0 + +Class QSqlQuery + size=8 align=8 + base size=8 base align=8 +QSqlQuery (0x0x7ff6d4ade840) 0 + +Class QSqlQueryModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlQueryModel::QPrivateSignal (0x0x7ff6d4ade900) 0 empty + +Vtable for QSqlQueryModel +QSqlQueryModel::_ZTV14QSqlQueryModel: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QSqlQueryModel) +16 (int (*)(...))QSqlQueryModel::metaObject +24 (int (*)(...))QSqlQueryModel::qt_metacast +32 (int (*)(...))QSqlQueryModel::qt_metacall +40 (int (*)(...))QSqlQueryModel::~QSqlQueryModel +48 (int (*)(...))QSqlQueryModel::~QSqlQueryModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))QSqlQueryModel::rowCount +144 (int (*)(...))QSqlQueryModel::columnCount +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))QSqlQueryModel::data +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QSqlQueryModel::headerData +184 (int (*)(...))QSqlQueryModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QSqlQueryModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QSqlQueryModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSqlQueryModel::fetchMore +320 (int (*)(...))QSqlQueryModel::canFetchMore +328 (int (*)(...))QAbstractTableModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QSqlQueryModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSqlQueryModel::clear +416 (int (*)(...))QSqlQueryModel::queryChange +424 (int (*)(...))QSqlQueryModel::indexInQuery + +Class QSqlQueryModel + size=16 align=8 + base size=16 base align=8 +QSqlQueryModel (0x0x7ff6d4acd750) 0 + vptr=((& QSqlQueryModel::_ZTV14QSqlQueryModel) + 16) + QAbstractTableModel (0x0x7ff6d4acd7b8) 0 + primary-for QSqlQueryModel (0x0x7ff6d4acd750) + QAbstractItemModel (0x0x7ff6d4acd820) 0 + primary-for QAbstractTableModel (0x0x7ff6d4acd7b8) + QObject (0x0x7ff6d4ade8a0) 0 + primary-for QAbstractItemModel (0x0x7ff6d4acd820) + +Class QSqlTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlTableModel::QPrivateSignal (0x0x7ff6d4adeae0) 0 empty + +Vtable for QSqlTableModel +QSqlTableModel::_ZTV14QSqlTableModel: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QSqlTableModel) +16 (int (*)(...))QSqlTableModel::metaObject +24 (int (*)(...))QSqlTableModel::qt_metacast +32 (int (*)(...))QSqlTableModel::qt_metacall +40 (int (*)(...))QSqlTableModel::~QSqlTableModel +48 (int (*)(...))QSqlTableModel::~QSqlTableModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))QSqlTableModel::rowCount +144 (int (*)(...))QSqlQueryModel::columnCount +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))QSqlTableModel::data +168 (int (*)(...))QSqlTableModel::setData +176 (int (*)(...))QSqlTableModel::headerData +184 (int (*)(...))QSqlQueryModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QSqlTableModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QSqlTableModel::insertRows +272 (int (*)(...))QSqlQueryModel::insertColumns +280 (int (*)(...))QSqlTableModel::removeRows +288 (int (*)(...))QSqlTableModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSqlQueryModel::fetchMore +320 (int (*)(...))QSqlQueryModel::canFetchMore +328 (int (*)(...))QSqlTableModel::flags +336 (int (*)(...))QSqlTableModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QSqlQueryModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QSqlTableModel::submit +392 (int (*)(...))QSqlTableModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSqlTableModel::clear +416 (int (*)(...))QSqlQueryModel::queryChange +424 (int (*)(...))QSqlTableModel::indexInQuery +432 (int (*)(...))QSqlTableModel::setTable +440 (int (*)(...))QSqlTableModel::setEditStrategy +448 (int (*)(...))QSqlTableModel::setSort +456 (int (*)(...))QSqlTableModel::setFilter +464 (int (*)(...))QSqlTableModel::revertRow +472 (int (*)(...))QSqlTableModel::select +480 (int (*)(...))QSqlTableModel::selectRow +488 (int (*)(...))QSqlTableModel::updateRowInTable +496 (int (*)(...))QSqlTableModel::insertRowIntoTable +504 (int (*)(...))QSqlTableModel::deleteRowFromTable +512 (int (*)(...))QSqlTableModel::orderByClause +520 (int (*)(...))QSqlTableModel::selectStatement + +Class QSqlTableModel + size=16 align=8 + base size=16 base align=8 +QSqlTableModel (0x0x7ff6d4acd888) 0 + vptr=((& QSqlTableModel::_ZTV14QSqlTableModel) + 16) + QSqlQueryModel (0x0x7ff6d4acd8f0) 0 + primary-for QSqlTableModel (0x0x7ff6d4acd888) + QAbstractTableModel (0x0x7ff6d4acd958) 0 + primary-for QSqlQueryModel (0x0x7ff6d4acd8f0) + QAbstractItemModel (0x0x7ff6d4acd9c0) 0 + primary-for QAbstractTableModel (0x0x7ff6d4acd958) + QObject (0x0x7ff6d4adea80) 0 + primary-for QAbstractItemModel (0x0x7ff6d4acd9c0) + +Class QSqlRelation + size=72 align=8 + base size=72 base align=8 +QSqlRelation (0x0x7ff6d4adec60) 0 + +Class QSqlRelationalTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlRelationalTableModel::QPrivateSignal (0x0x7ff6d4b6dde0) 0 empty + +Vtable for QSqlRelationalTableModel +QSqlRelationalTableModel::_ZTV24QSqlRelationalTableModel: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QSqlRelationalTableModel) +16 (int (*)(...))QSqlRelationalTableModel::metaObject +24 (int (*)(...))QSqlRelationalTableModel::qt_metacast +32 (int (*)(...))QSqlRelationalTableModel::qt_metacall +40 (int (*)(...))QSqlRelationalTableModel::~QSqlRelationalTableModel +48 (int (*)(...))QSqlRelationalTableModel::~QSqlRelationalTableModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))QSqlTableModel::rowCount +144 (int (*)(...))QSqlQueryModel::columnCount +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))QSqlRelationalTableModel::data +168 (int (*)(...))QSqlRelationalTableModel::setData +176 (int (*)(...))QSqlTableModel::headerData +184 (int (*)(...))QSqlQueryModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QSqlTableModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QSqlTableModel::insertRows +272 (int (*)(...))QSqlQueryModel::insertColumns +280 (int (*)(...))QSqlTableModel::removeRows +288 (int (*)(...))QSqlRelationalTableModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSqlQueryModel::fetchMore +320 (int (*)(...))QSqlQueryModel::canFetchMore +328 (int (*)(...))QSqlTableModel::flags +336 (int (*)(...))QSqlTableModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QSqlQueryModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QSqlTableModel::submit +392 (int (*)(...))QSqlTableModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSqlRelationalTableModel::clear +416 (int (*)(...))QSqlQueryModel::queryChange +424 (int (*)(...))QSqlTableModel::indexInQuery +432 (int (*)(...))QSqlRelationalTableModel::setTable +440 (int (*)(...))QSqlTableModel::setEditStrategy +448 (int (*)(...))QSqlTableModel::setSort +456 (int (*)(...))QSqlTableModel::setFilter +464 (int (*)(...))QSqlRelationalTableModel::revertRow +472 (int (*)(...))QSqlRelationalTableModel::select +480 (int (*)(...))QSqlTableModel::selectRow +488 (int (*)(...))QSqlRelationalTableModel::updateRowInTable +496 (int (*)(...))QSqlRelationalTableModel::insertRowIntoTable +504 (int (*)(...))QSqlTableModel::deleteRowFromTable +512 (int (*)(...))QSqlRelationalTableModel::orderByClause +520 (int (*)(...))QSqlRelationalTableModel::selectStatement +528 (int (*)(...))QSqlRelationalTableModel::setRelation +536 (int (*)(...))QSqlRelationalTableModel::relationModel + +Class QSqlRelationalTableModel + size=16 align=8 + base size=16 base align=8 +QSqlRelationalTableModel (0x0x7ff6d4b73c98) 0 + vptr=((& QSqlRelationalTableModel::_ZTV24QSqlRelationalTableModel) + 16) + QSqlTableModel (0x0x7ff6d4b73d00) 0 + primary-for QSqlRelationalTableModel (0x0x7ff6d4b73c98) + QSqlQueryModel (0x0x7ff6d4b73d68) 0 + primary-for QSqlTableModel (0x0x7ff6d4b73d00) + QAbstractTableModel (0x0x7ff6d4b73dd0) 0 + primary-for QSqlQueryModel (0x0x7ff6d4b73d68) + QAbstractItemModel (0x0x7ff6d4b73e38) 0 + primary-for QAbstractTableModel (0x0x7ff6d4b73dd0) + QObject (0x0x7ff6d4b6dd80) 0 + primary-for QAbstractItemModel (0x0x7ff6d4b73e38) + +Vtable for QSqlResult +QSqlResult::_ZTV10QSqlResult: 33 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSqlResult) +16 0 +24 0 +32 (int (*)(...))QSqlResult::handle +40 (int (*)(...))QSqlResult::setAt +48 (int (*)(...))QSqlResult::setActive +56 (int (*)(...))QSqlResult::setLastError +64 (int (*)(...))QSqlResult::setQuery +72 (int (*)(...))QSqlResult::setSelect +80 (int (*)(...))QSqlResult::setForwardOnly +88 (int (*)(...))QSqlResult::exec +96 (int (*)(...))QSqlResult::prepare +104 (int (*)(...))QSqlResult::savePrepare +112 (int (*)(...))QSqlResult::bindValue +120 (int (*)(...))QSqlResult::bindValue +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QSqlResult::fetchNext +168 (int (*)(...))QSqlResult::fetchPrevious +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QSqlResult::record +216 (int (*)(...))QSqlResult::lastInsertId +224 (int (*)(...))QSqlResult::virtual_hook +232 (int (*)(...))QSqlResult::execBatch +240 (int (*)(...))QSqlResult::detachFromResultSet +248 (int (*)(...))QSqlResult::setNumericalPrecisionPolicy +256 (int (*)(...))QSqlResult::nextResult + +Class QSqlResult + size=16 align=8 + base size=16 base align=8 +QSqlResult (0x0x7ff6d4b6df60) 0 + vptr=((& QSqlResult::_ZTV10QSqlResult) + 16) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7ff6d4b98120) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7ff6d4b980c0) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7ff6d4bed0c0) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7ff6d4bed1e0) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=40 align=8 + base size=40 base align=8 +QWidget (0x0x7ff6d4b9c5b0) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16) + QObject (0x0x7ff6d4bed120) 0 + primary-for QWidget (0x0x7ff6d4b9c5b0) + QPaintDevice (0x0x7ff6d4bed180) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7ff6d4854a80) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0 +480 0 +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=40 align=8 + base size=40 base align=8 +QAbstractButton (0x0x7ff6d4bdfe38) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16) + QWidget (0x0x7ff6d4b9c7e0) 0 + primary-for QAbstractButton (0x0x7ff6d4bdfe38) + QObject (0x0x7ff6d48549c0) 0 + primary-for QWidget (0x0x7ff6d4b9c7e0) + QPaintDevice (0x0x7ff6d4854a20) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7ff6d4854cc0) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI16QAbstractSpinBox) +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +504 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=40 align=8 + base size=40 base align=8 +QAbstractSpinBox (0x0x7ff6d4bdfea0) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16) + QWidget (0x0x7ff6d4b9c850) 0 + primary-for QAbstractSpinBox (0x0x7ff6d4bdfea0) + QObject (0x0x7ff6d4854c00) 0 + primary-for QWidget (0x0x7ff6d4b9c850) + QPaintDevice (0x0x7ff6d4854c60) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 496) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7ff6d4888480) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=40 align=8 + base size=40 base align=8 +QAbstractSlider (0x0x7ff6d488a068) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16) + QWidget (0x0x7ff6d4b9cd90) 0 + primary-for QAbstractSlider (0x0x7ff6d488a068) + QObject (0x0x7ff6d48883c0) 0 + primary-for QWidget (0x0x7ff6d4b9cd90) + QPaintDevice (0x0x7ff6d4888420) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7ff6d48886c0) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))QSlider::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI7QSlider) +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +472 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=40 align=8 + base size=40 base align=8 +QSlider (0x0x7ff6d488a0d0) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16) + QAbstractSlider (0x0x7ff6d488a138) 0 + primary-for QSlider (0x0x7ff6d488a0d0) + QWidget (0x0x7ff6d48a42a0) 0 + primary-for QAbstractSlider (0x0x7ff6d488a138) + QObject (0x0x7ff6d4888600) 0 + primary-for QWidget (0x0x7ff6d48a42a0) + QPaintDevice (0x0x7ff6d4888660) 16 + vptr=((& QSlider::_ZTV7QSlider) + 464) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7ff6d4888960) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7ff6d488a1a0) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16) + QObject (0x0x7ff6d4888900) 0 + primary-for QStyle (0x0x7ff6d488a1a0) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7ff6d48f0a20) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QTabBar::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))QTabBar::initStyleOption +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI7QTabBar) +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +504 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=40 align=8 + base size=40 base align=8 +QTabBar (0x0x7ff6d488a478) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16) + QWidget (0x0x7ff6d48e0d20) 0 + primary-for QTabBar (0x0x7ff6d488a478) + QObject (0x0x7ff6d48f0960) 0 + primary-for QWidget (0x0x7ff6d48e0d20) + QPaintDevice (0x0x7ff6d48f09c0) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 496) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7ff6d48f0d20) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))QTabWidget::initStyleOption +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI10QTabWidget) +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +480 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=40 align=8 + base size=40 base align=8 +QTabWidget (0x0x7ff6d488a4e0) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16) + QWidget (0x0x7ff6d491e380) 0 + primary-for QTabWidget (0x0x7ff6d488a4e0) + QObject (0x0x7ff6d48f0c60) 0 + primary-for QWidget (0x0x7ff6d491e380) + QPaintDevice (0x0x7ff6d48f0cc0) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 472) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7ff6d494e120) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRubberBand::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QRubberBand) +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +464 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=40 align=8 + base size=40 base align=8 +QRubberBand (0x0x7ff6d488a548) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16) + QWidget (0x0x7ff6d491e690) 0 + primary-for QRubberBand (0x0x7ff6d488a548) + QObject (0x0x7ff6d494e060) 0 + primary-for QWidget (0x0x7ff6d491e690) + QPaintDevice (0x0x7ff6d494e0c0) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 456) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7ff6d494e540) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QFrame) +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +464 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=40 align=8 + base size=40 base align=8 +QFrame (0x0x7ff6d488a5b0) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16) + QWidget (0x0x7ff6d491e7e0) 0 + primary-for QFrame (0x0x7ff6d488a5b0) + QObject (0x0x7ff6d494e480) 0 + primary-for QWidget (0x0x7ff6d491e7e0) + QPaintDevice (0x0x7ff6d494e4e0) 16 + vptr=((& QFrame::_ZTV6QFrame) + 456) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7ff6d494e840) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7ff6d488a618) 0 + QStyleOption (0x0x7ff6d494e8a0) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7ff6d7b0b410) 0 + QStyleOption (0x0x7ff6d494eae0) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7ff6d7b0b5b0) 0 + QStyleOption (0x0x7ff6d4993060) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7ff6d488a680) 0 + QStyleOption (0x0x7ff6d49932a0) 0 + +Class QStyleOptionHeader + size=136 align=8 + base size=132 base align=8 +QStyleOptionHeader (0x0x7ff6d488a6e8) 0 + QStyleOption (0x0x7ff6d49934e0) 0 + +Class QStyleOptionButton + size=112 align=8 + base size=112 base align=8 +QStyleOptionButton (0x0x7ff6d488a750) 0 + QStyleOption (0x0x7ff6d4993720) 0 + +Class QStyleOptionTab + size=160 align=8 + base size=156 base align=8 +QStyleOptionTab (0x0x7ff6d488a8f0) 0 + QStyleOption (0x0x7ff6d4993c60) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7ff6d488abc8) 0 + QStyleOption (0x0x7ff6d49d73c0) 0 + +Class QStyleOptionProgressBar + size=112 align=8 + base size=111 base align=8 +QStyleOptionProgressBar (0x0x7ff6d488ad68) 0 + QStyleOption (0x0x7ff6d49d7900) 0 + +Class QStyleOptionMenuItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionMenuItem (0x0x7ff6d488add0) 0 + QStyleOption (0x0x7ff6d49d7b40) 0 + +Class QStyleOptionDockWidget + size=96 align=8 + base size=92 base align=8 +QStyleOptionDockWidget (0x0x7ff6d488ae38) 0 + QStyleOption (0x0x7ff6d49d7d80) 0 + +Class QStyleOptionViewItem + size=208 align=8 + base size=208 base align=8 +QStyleOptionViewItem (0x0x7ff6d488aea0) 0 + QStyleOption (0x0x7ff6d4a21000) 0 + +Class QStyleOptionToolBox + size=104 align=8 + base size=104 base align=8 +QStyleOptionToolBox (0x0x7ff6d4a27068) 0 + QStyleOption (0x0x7ff6d4a21540) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7ff6d4a270d0) 0 + QStyleOption (0x0x7ff6d4a21780) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7ff6d4a27138) 0 + QStyleOption (0x0x7ff6d4a21a20) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=128 base align=8 +QStyleOptionSlider (0x0x7ff6d4a271a0) 0 + QStyleOptionComplex (0x0x7ff6d4a27208) 0 + QStyleOption (0x0x7ff6d4a21cc0) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7ff6d4a272d8) 0 + QStyleOptionComplex (0x0x7ff6d4a27340) 0 + QStyleOption (0x0x7ff6d465a060) 0 + +Class QStyleOptionToolButton + size=152 align=8 + base size=152 base align=8 +QStyleOptionToolButton (0x0x7ff6d4a27410) 0 + QStyleOptionComplex (0x0x7ff6d4a27478) 0 + QStyleOption (0x0x7ff6d465a2a0) 0 + +Class QStyleOptionComboBox + size=144 align=8 + base size=140 base align=8 +QStyleOptionComboBox (0x0x7ff6d4a27618) 0 + QStyleOptionComplex (0x0x7ff6d4a27680) 0 + QStyleOption (0x0x7ff6d465a7e0) 0 + +Class QStyleOptionTitleBar + size=112 align=8 + base size=112 base align=8 +QStyleOptionTitleBar (0x0x7ff6d4a276e8) 0 + QStyleOptionComplex (0x0x7ff6d4a27750) 0 + QStyleOption (0x0x7ff6d465aa20) 0 + +Class QStyleOptionGroupBox + size=136 align=8 + base size=132 base align=8 +QStyleOptionGroupBox (0x0x7ff6d4a277b8) 0 + QStyleOptionComplex (0x0x7ff6d4a27820) 0 + QStyleOption (0x0x7ff6d465ac60) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7ff6d4a27888) 0 + QStyleOptionComplex (0x0x7ff6d4a278f0) 0 + QStyleOption (0x0x7ff6d465aea0) 0 + +Class QStyleOptionGraphicsItem + size=96 align=8 + base size=96 base align=8 +QStyleOptionGraphicsItem (0x0x7ff6d4a27958) 0 + QStyleOption (0x0x7ff6d4694120) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7ff6d4694480) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7ff6d4a279c0) 0 + QStyleHintReturn (0x0x7ff6d46944e0) 0 + +Class QStyleHintReturnVariant + size=40 align=8 + base size=40 base align=8 +QStyleHintReturnVariant (0x0x7ff6d4a27a90) 0 + QStyleHintReturn (0x0x7ff6d4694540) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7ff6d46946c0) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7ff6d4a27b60) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16) + QObject (0x0x7ff6d4694660) 0 + primary-for QAbstractItemDelegate (0x0x7ff6d4a27b60) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7ff6d4694900) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI19QAbstractScrollArea) +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +496 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=40 align=8 + base size=40 base align=8 +QAbstractScrollArea (0x0x7ff6d4a27bc8) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16) + QFrame (0x0x7ff6d4a27c30) 0 + primary-for QAbstractScrollArea (0x0x7ff6d4a27bc8) + QWidget (0x0x7ff6d4682a10) 0 + primary-for QFrame (0x0x7ff6d4a27c30) + QObject (0x0x7ff6d4694840) 0 + primary-for QWidget (0x0x7ff6d4682a10) + QPaintDevice (0x0x7ff6d46948a0) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 488) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7ff6d4694c00) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QAbstractItemView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))__cxa_pure_virtual +736 (int (*)(...))__cxa_pure_virtual +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI17QAbstractItemView) +800 0 +808 0 +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=40 align=8 + base size=40 base align=8 +QAbstractItemView (0x0x7ff6d4a27c98) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16) + QAbstractScrollArea (0x0x7ff6d4a27d00) 0 + primary-for QAbstractItemView (0x0x7ff6d4a27c98) + QFrame (0x0x7ff6d4a27d68) 0 + primary-for QAbstractScrollArea (0x0x7ff6d4a27d00) + QWidget (0x0x7ff6d4682bd0) 0 + primary-for QFrame (0x0x7ff6d4a27d68) + QObject (0x0x7ff6d4694b40) 0 + primary-for QWidget (0x0x7ff6d4682bd0) + QPaintDevice (0x0x7ff6d4694ba0) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 800) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7ff6d46ea150) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16) + QAccessibleObject (0x0x7ff6d4a27f08) 0 + primary-for QAccessibleWidget (0x0x7ff6d46ea150) + QAccessibleInterface (0x0x7ff6d46f55a0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7ff6d4a27f08) + QAccessibleActionInterface (0x0x7ff6d46f5600) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7ff6d46f5720) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7ff6d4a27f70) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16) + QGuiApplication (0x0x7ff6d4a27270) 0 + primary-for QApplication (0x0x7ff6d4a27f70) + QCoreApplication (0x0x7ff6d4716000) 0 + primary-for QGuiApplication (0x0x7ff6d4a27270) + QObject (0x0x7ff6d46f56c0) 0 + primary-for QCoreApplication (0x0x7ff6d4716000) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7ff6d46f5960) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7ff6d4716068) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16) + QLayoutItem (0x0x7ff6d46f5ba0) 0 + primary-for QSpacerItem (0x0x7ff6d4716068) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7ff6d47160d0) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16) + QLayoutItem (0x0x7ff6d46f5de0) 0 + primary-for QWidgetItem (0x0x7ff6d47160d0) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7ff6d4716138) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16) + QWidgetItem (0x0x7ff6d47161a0) 0 + primary-for QWidgetItemV2 (0x0x7ff6d4716138) + QLayoutItem (0x0x7ff6d4738000) 0 + primary-for QWidgetItem (0x0x7ff6d47161a0) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7ff6d4738180) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QLayout::setGeometry +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI7QLayout) +272 0 +280 0 +288 (int (*)(...))__cxa_pure_virtual +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +312 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +320 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QLayoutItem::hasHeightForWidth +352 (int (*)(...))QLayoutItem::heightForWidth +360 (int (*)(...))QLayoutItem::minimumHeightForWidth +368 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7ff6d46ea2a0) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16) + QObject (0x0x7ff6d47380c0) 0 + primary-for QLayout (0x0x7ff6d46ea2a0) + QLayoutItem (0x0x7ff6d4738120) 16 + vptr=((& QLayout::_ZTV7QLayout) + 272) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7ff6d4738480) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::spacing +120 (int (*)(...))QGridLayout::setSpacing +128 (int (*)(...))QGridLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QGridLayout::addItem +152 (int (*)(...))QGridLayout::expandingDirections +160 (int (*)(...))QGridLayout::minimumSize +168 (int (*)(...))QGridLayout::maximumSize +176 (int (*)(...))QGridLayout::setGeometry +184 (int (*)(...))QGridLayout::itemAt +192 (int (*)(...))QGridLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QGridLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QGridLayout::sizeHint +264 (int (*)(...))QGridLayout::hasHeightForWidth +272 (int (*)(...))QGridLayout::heightForWidth +280 (int (*)(...))QGridLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QGridLayout) +304 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +312 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +320 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +328 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +336 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +352 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +384 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +392 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +400 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7ff6d4716208) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16) + QLayout (0x0x7ff6d46ea5b0) 0 + primary-for QGridLayout (0x0x7ff6d4716208) + QObject (0x0x7ff6d47383c0) 0 + primary-for QLayout (0x0x7ff6d46ea5b0) + QLayoutItem (0x0x7ff6d4738420) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 304) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7ff6d4738720) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI10QBoxLayout) +304 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +312 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7ff6d4716270) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16) + QLayout (0x0x7ff6d46ea620) 0 + primary-for QBoxLayout (0x0x7ff6d4716270) + QObject (0x0x7ff6d4738660) 0 + primary-for QLayout (0x0x7ff6d46ea620) + QLayoutItem (0x0x7ff6d47386c0) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 304) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7ff6d4738960) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QHBoxLayout) +304 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +312 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7ff6d47162d8) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16) + QBoxLayout (0x0x7ff6d4716340) 0 + primary-for QHBoxLayout (0x0x7ff6d47162d8) + QLayout (0x0x7ff6d46ea930) 0 + primary-for QBoxLayout (0x0x7ff6d4716340) + QObject (0x0x7ff6d47388a0) 0 + primary-for QLayout (0x0x7ff6d46ea930) + QLayoutItem (0x0x7ff6d4738900) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 304) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7ff6d4738ae0) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QVBoxLayout) +304 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +312 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7ff6d47163a8) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16) + QBoxLayout (0x0x7ff6d4716410) 0 + primary-for QVBoxLayout (0x0x7ff6d47163a8) + QLayout (0x0x7ff6d46ea9a0) 0 + primary-for QBoxLayout (0x0x7ff6d4716410) + QObject (0x0x7ff6d4738a20) 0 + primary-for QLayout (0x0x7ff6d46ea9a0) + QLayoutItem (0x0x7ff6d4738a80) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 304) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7ff6d4738c00) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7ff6d4716478) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16) + QObject (0x0x7ff6d4738ba0) 0 + primary-for QButtonGroup (0x0x7ff6d4716478) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7ff6d4738e40) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=40 align=8 + base size=40 base align=8 +QCalendarWidget (0x0x7ff6d47164e0) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16) + QWidget (0x0x7ff6d46eaa10) 0 + primary-for QCalendarWidget (0x0x7ff6d47164e0) + QObject (0x0x7ff6d4738d80) 0 + primary-for QWidget (0x0x7ff6d46eaa10) + QPaintDevice (0x0x7ff6d4738de0) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7ff6d47a2300) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))QCheckBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QCheckBox) +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +488 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=40 align=8 + base size=40 base align=8 +QCheckBox (0x0x7ff6d4716548) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16) + QAbstractButton (0x0x7ff6d47165b0) 0 + primary-for QCheckBox (0x0x7ff6d4716548) + QWidget (0x0x7ff6d46eae00) 0 + primary-for QAbstractButton (0x0x7ff6d47165b0) + QObject (0x0x7ff6d47a2240) 0 + primary-for QWidget (0x0x7ff6d46eae00) + QPaintDevice (0x0x7ff6d47a22a0) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 480) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7ff6d47a2540) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=40 align=8 + base size=40 base align=8 +QDialog (0x0x7ff6d4716618) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16) + QWidget (0x0x7ff6d46eae70) 0 + primary-for QDialog (0x0x7ff6d4716618) + QObject (0x0x7ff6d47a2480) 0 + primary-for QWidget (0x0x7ff6d46eae70) + QPaintDevice (0x0x7ff6d47a24e0) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7ff6d47a2780) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=40 align=8 + base size=40 base align=8 +QColorDialog (0x0x7ff6d4716680) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16) + QDialog (0x0x7ff6d47166e8) 0 + primary-for QColorDialog (0x0x7ff6d4716680) + QWidget (0x0x7ff6d47bc000) 0 + primary-for QDialog (0x0x7ff6d47166e8) + QObject (0x0x7ff6d47a26c0) 0 + primary-for QWidget (0x0x7ff6d47bc000) + QPaintDevice (0x0x7ff6d47a2720) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7ff6d47a2cc0) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7ff6d47a2de0) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 109 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QColumnView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QColumnView::setModel +480 (int (*)(...))QColumnView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QColumnView::visualRect +504 (int (*)(...))QColumnView::scrollTo +512 (int (*)(...))QColumnView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QColumnView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QColumnView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QColumnView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QColumnView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QColumnView::moveCursor +704 (int (*)(...))QColumnView::horizontalOffset +712 (int (*)(...))QColumnView::verticalOffset +720 (int (*)(...))QColumnView::isIndexHidden +728 (int (*)(...))QColumnView::setSelection +736 (int (*)(...))QColumnView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QColumnView::createColumn +792 (int (*)(...))-16 +800 (int (*)(...))(& _ZTI11QColumnView) +808 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +816 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=40 align=8 + base size=40 base align=8 +QColumnView (0x0x7ff6d4716888) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16) + QAbstractItemView (0x0x7ff6d47168f0) 0 + primary-for QColumnView (0x0x7ff6d4716888) + QAbstractScrollArea (0x0x7ff6d4716958) 0 + primary-for QAbstractItemView (0x0x7ff6d47168f0) + QFrame (0x0x7ff6d47169c0) 0 + primary-for QAbstractScrollArea (0x0x7ff6d4716958) + QWidget (0x0x7ff6d47bc310) 0 + primary-for QFrame (0x0x7ff6d47169c0) + QObject (0x0x7ff6d47a2d20) 0 + primary-for QWidget (0x0x7ff6d47bc310) + QPaintDevice (0x0x7ff6d47a2d80) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 808) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7ff6d47f5060) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QComboBox) +480 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +488 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=40 align=8 + base size=40 base align=8 +QComboBox (0x0x7ff6d4716a28) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16) + QWidget (0x0x7ff6d47bc380) 0 + primary-for QComboBox (0x0x7ff6d4716a28) + QObject (0x0x7ff6d47a2f60) 0 + primary-for QWidget (0x0x7ff6d47bc380) + QPaintDevice (0x0x7ff6d47f5000) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 480) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7ff6d47f5600) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QPushButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QPushButton) +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +488 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=40 align=8 + base size=40 base align=8 +QPushButton (0x0x7ff6d4716a90) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16) + QAbstractButton (0x0x7ff6d4716af8) 0 + primary-for QPushButton (0x0x7ff6d4716a90) + QWidget (0x0x7ff6d47bc850) 0 + primary-for QAbstractButton (0x0x7ff6d4716af8) + QObject (0x0x7ff6d47f5540) 0 + primary-for QWidget (0x0x7ff6d47bc850) + QPaintDevice (0x0x7ff6d47f55a0) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 480) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7ff6d47f5840) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QPushButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI18QCommandLinkButton) +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +488 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=40 align=8 + base size=40 base align=8 +QCommandLinkButton (0x0x7ff6d4716b60) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16) + QPushButton (0x0x7ff6d4716bc8) 0 + primary-for QCommandLinkButton (0x0x7ff6d4716b60) + QAbstractButton (0x0x7ff6d4716c30) 0 + primary-for QPushButton (0x0x7ff6d4716bc8) + QWidget (0x0x7ff6d47bc8c0) 0 + primary-for QAbstractButton (0x0x7ff6d4716c30) + QObject (0x0x7ff6d47f5780) 0 + primary-for QWidget (0x0x7ff6d47bc8c0) + QPaintDevice (0x0x7ff6d47f57e0) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 480) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7ff6d47f5a20) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7ff6d4716c98) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16) + QStyle (0x0x7ff6d4716d00) 0 + primary-for QCommonStyle (0x0x7ff6d4716c98) + QObject (0x0x7ff6d47f59c0) 0 + primary-for QStyle (0x0x7ff6d4716d00) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7ff6d47f5c00) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7ff6d4716d68) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16) + QObject (0x0x7ff6d47f5ba0) 0 + primary-for QCompleter (0x0x7ff6d4716d68) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7ff6d47f5f60) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7ff6d4716dd0) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16) + QObject (0x0x7ff6d47f5f00) 0 + primary-for QDataWidgetMapper (0x0x7ff6d4716dd0) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7ff6d44682a0) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QDateTimeEdit) +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +520 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=40 align=8 + base size=40 base align=8 +QDateTimeEdit (0x0x7ff6d4716e38) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16) + QAbstractSpinBox (0x0x7ff6d4716ea0) 0 + primary-for QDateTimeEdit (0x0x7ff6d4716e38) + QWidget (0x0x7ff6d47bccb0) 0 + primary-for QAbstractSpinBox (0x0x7ff6d4716ea0) + QObject (0x0x7ff6d44681e0) 0 + primary-for QWidget (0x0x7ff6d47bccb0) + QPaintDevice (0x0x7ff6d4468240) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 512) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7ff6d4468840) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QTimeEdit) +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +520 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=40 align=8 + base size=40 base align=8 +QTimeEdit (0x0x7ff6d4487068) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16) + QDateTimeEdit (0x0x7ff6d44870d0) 0 + primary-for QTimeEdit (0x0x7ff6d4487068) + QAbstractSpinBox (0x0x7ff6d4487138) 0 + primary-for QDateTimeEdit (0x0x7ff6d44870d0) + QWidget (0x0x7ff6d446b1c0) 0 + primary-for QAbstractSpinBox (0x0x7ff6d4487138) + QObject (0x0x7ff6d4468780) 0 + primary-for QWidget (0x0x7ff6d446b1c0) + QPaintDevice (0x0x7ff6d44687e0) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 512) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7ff6d44689c0) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QDateEdit) +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +520 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=40 align=8 + base size=40 base align=8 +QDateEdit (0x0x7ff6d44871a0) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16) + QDateTimeEdit (0x0x7ff6d4487208) 0 + primary-for QDateEdit (0x0x7ff6d44871a0) + QAbstractSpinBox (0x0x7ff6d4487270) 0 + primary-for QDateTimeEdit (0x0x7ff6d4487208) + QWidget (0x0x7ff6d446b230) 0 + primary-for QAbstractSpinBox (0x0x7ff6d4487270) + QObject (0x0x7ff6d4468900) 0 + primary-for QWidget (0x0x7ff6d446b230) + QPaintDevice (0x0x7ff6d4468960) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 512) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7ff6d4468c60) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))QDial::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI5QDial) +464 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +472 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=40 align=8 + base size=40 base align=8 +QDial (0x0x7ff6d44872d8) 0 + vptr=((& QDial::_ZTV5QDial) + 16) + QAbstractSlider (0x0x7ff6d4487340) 0 + primary-for QDial (0x0x7ff6d44872d8) + QWidget (0x0x7ff6d446b2a0) 0 + primary-for QAbstractSlider (0x0x7ff6d4487340) + QObject (0x0x7ff6d4468ba0) 0 + primary-for QWidget (0x0x7ff6d446b2a0) + QPaintDevice (0x0x7ff6d4468c00) 16 + vptr=((& QDial::_ZTV5QDial) + 464) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7ff6d4468ea0) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=40 align=8 + base size=40 base align=8 +QDialogButtonBox (0x0x7ff6d44873a8) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16) + QWidget (0x0x7ff6d446b310) 0 + primary-for QDialogButtonBox (0x0x7ff6d44873a8) + QObject (0x0x7ff6d4468de0) 0 + primary-for QWidget (0x0x7ff6d446b310) + QPaintDevice (0x0x7ff6d4468e40) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7ff6d44d44e0) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDockWidget::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QDockWidget) +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +464 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=40 align=8 + base size=40 base align=8 +QDockWidget (0x0x7ff6d4487548) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16) + QWidget (0x0x7ff6d44c23f0) 0 + primary-for QDockWidget (0x0x7ff6d4487548) + QObject (0x0x7ff6d44d4420) 0 + primary-for QWidget (0x0x7ff6d44c23f0) + QPaintDevice (0x0x7ff6d44d4480) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 456) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7ff6d44d4ae0) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7ff6d4535180) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=40 align=8 + base size=40 base align=8 +QErrorMessage (0x0x7ff6d4487820) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16) + QDialog (0x0x7ff6d4487888) 0 + primary-for QErrorMessage (0x0x7ff6d4487820) + QWidget (0x0x7ff6d44c2e00) 0 + primary-for QDialog (0x0x7ff6d4487888) + QObject (0x0x7ff6d45350c0) 0 + primary-for QWidget (0x0x7ff6d44c2e00) + QPaintDevice (0x0x7ff6d4535120) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7ff6d45353c0) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=40 align=8 + base size=40 base align=8 +QFileDialog (0x0x7ff6d44878f0) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16) + QDialog (0x0x7ff6d4487958) 0 + primary-for QFileDialog (0x0x7ff6d44878f0) + QWidget (0x0x7ff6d44c2e70) 0 + primary-for QDialog (0x0x7ff6d4487958) + QObject (0x0x7ff6d4535300) 0 + primary-for QWidget (0x0x7ff6d44c2e70) + QPaintDevice (0x0x7ff6d4535360) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7ff6d4487af8) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16) + QAbstractFileIconProvider (0x0x7ff6d4535c60) 0 + primary-for QFileIconProvider (0x0x7ff6d4487af8) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7ff6d4535e40) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFocusFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QFocusFrame) +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +464 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=40 align=8 + base size=40 base align=8 +QFocusFrame (0x0x7ff6d4487b60) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16) + QWidget (0x0x7ff6d45497e0) 0 + primary-for QFocusFrame (0x0x7ff6d4487b60) + QObject (0x0x7ff6d4535d80) 0 + primary-for QWidget (0x0x7ff6d45497e0) + QPaintDevice (0x0x7ff6d4535de0) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 456) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7ff6d459f0c0) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI13QFontComboBox) +480 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +488 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=40 align=8 + base size=40 base align=8 +QFontComboBox (0x0x7ff6d4487bc8) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16) + QComboBox (0x0x7ff6d4487c30) 0 + primary-for QFontComboBox (0x0x7ff6d4487bc8) + QWidget (0x0x7ff6d4549850) 0 + primary-for QComboBox (0x0x7ff6d4487c30) + QObject (0x0x7ff6d459f000) 0 + primary-for QWidget (0x0x7ff6d4549850) + QPaintDevice (0x0x7ff6d459f060) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 480) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7ff6d459f6c0) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=40 align=8 + base size=40 base align=8 +QFontDialog (0x0x7ff6d4487dd0) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16) + QDialog (0x0x7ff6d4487e38) 0 + primary-for QFontDialog (0x0x7ff6d4487dd0) + QWidget (0x0x7ff6d4549af0) 0 + primary-for QDialog (0x0x7ff6d4487e38) + QObject (0x0x7ff6d459f600) 0 + primary-for QWidget (0x0x7ff6d4549af0) + QPaintDevice (0x0x7ff6d459f660) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7ff6d459fcc0) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7ff6d459fd20) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::spacing +120 (int (*)(...))QFormLayout::setSpacing +128 (int (*)(...))QFormLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QFormLayout::addItem +152 (int (*)(...))QFormLayout::expandingDirections +160 (int (*)(...))QFormLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QFormLayout::setGeometry +184 (int (*)(...))QFormLayout::itemAt +192 (int (*)(...))QFormLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QFormLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QFormLayout::sizeHint +264 (int (*)(...))QFormLayout::hasHeightForWidth +272 (int (*)(...))QFormLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI11QFormLayout) +296 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +304 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +312 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +320 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +344 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +376 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7ff6d45fa000) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16) + QLayout (0x0x7ff6d4549e00) 0 + primary-for QFormLayout (0x0x7ff6d45fa000) + QObject (0x0x7ff6d459fc00) 0 + primary-for QLayout (0x0x7ff6d4549e00) + QLayoutItem (0x0x7ff6d459fc60) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 296) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7ff6d462c840) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7ff6d462ea90) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16) + QObject (0x0x7ff6d462c7e0) 0 + primary-for QGesture (0x0x7ff6d462ea90) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7ff6d462ca20) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7ff6d462eaf8) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16) + QGesture (0x0x7ff6d462eb60) 0 + primary-for QPanGesture (0x0x7ff6d462eaf8) + QObject (0x0x7ff6d462c9c0) 0 + primary-for QGesture (0x0x7ff6d462eb60) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7ff6d462cc00) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7ff6d462ebc8) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16) + QGesture (0x0x7ff6d462ec30) 0 + primary-for QPinchGesture (0x0x7ff6d462ebc8) + QObject (0x0x7ff6d462cba0) 0 + primary-for QGesture (0x0x7ff6d462ec30) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7ff6d42603c0) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7ff6d462edd0) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16) + QGesture (0x0x7ff6d462ee38) 0 + primary-for QSwipeGesture (0x0x7ff6d462edd0) + QObject (0x0x7ff6d4260360) 0 + primary-for QGesture (0x0x7ff6d462ee38) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7ff6d4260660) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7ff6d462eea0) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16) + QGesture (0x0x7ff6d462ef08) 0 + primary-for QTapGesture (0x0x7ff6d462eea0) + QObject (0x0x7ff6d4260600) 0 + primary-for QGesture (0x0x7ff6d462ef08) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7ff6d4260840) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7ff6d462ef70) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16) + QGesture (0x0x7ff6d4287000) 0 + primary-for QTapAndHoldGesture (0x0x7ff6d462ef70) + QObject (0x0x7ff6d42607e0) 0 + primary-for QGesture (0x0x7ff6d4287000) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGestureEvent + size=64 align=8 + base size=64 base align=8 +QGestureEvent (0x0x7ff6d4287068) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16) + QEvent (0x0x7ff6d42609c0) 0 + primary-for QGestureEvent (0x0x7ff6d4287068) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0 +24 0 +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7ff6d429d660) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7ff6d429d9c0) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7ff6d4383b40) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0 +48 0 +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0 +136 0 +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7ff6d432ac40) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16) + QObject (0x0x7ff6d4383a80) 0 + primary-for QGraphicsObject (0x0x7ff6d432ac40) + QGraphicsItem (0x0x7ff6d4383ae0) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7ff6d4287af8) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16) + QGraphicsItem (0x0x7ff6d4383c00) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7ff6d4287af8) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7ff6d4287b60) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16) + QAbstractGraphicsShapeItem (0x0x7ff6d4287bc8) 0 + primary-for QGraphicsPathItem (0x0x7ff6d4287b60) + QGraphicsItem (0x0x7ff6d4383d20) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7ff6d4287bc8) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7ff6d4287c30) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16) + QAbstractGraphicsShapeItem (0x0x7ff6d4287c98) 0 + primary-for QGraphicsRectItem (0x0x7ff6d4287c30) + QGraphicsItem (0x0x7ff6d4383e40) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7ff6d4287c98) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7ff6d4287d00) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16) + QAbstractGraphicsShapeItem (0x0x7ff6d4287d68) 0 + primary-for QGraphicsEllipseItem (0x0x7ff6d4287d00) + QGraphicsItem (0x0x7ff6d43c2000) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7ff6d4287d68) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7ff6d4287dd0) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16) + QAbstractGraphicsShapeItem (0x0x7ff6d4287e38) 0 + primary-for QGraphicsPolygonItem (0x0x7ff6d4287dd0) + QGraphicsItem (0x0x7ff6d43c2180) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7ff6d4287e38) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7ff6d4287ea0) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16) + QGraphicsItem (0x0x7ff6d43c22a0) 0 + primary-for QGraphicsLineItem (0x0x7ff6d4287ea0) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7ff6d4287f08) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16) + QGraphicsItem (0x0x7ff6d43c2420) 0 + primary-for QGraphicsPixmapItem (0x0x7ff6d4287f08) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7ff6d43c2660) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7ff6d4287f70) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16) + QGraphicsObject (0x0x7ff6d43eb0e0) 0 + primary-for QGraphicsTextItem (0x0x7ff6d4287f70) + QObject (0x0x7ff6d43c25a0) 0 + primary-for QGraphicsObject (0x0x7ff6d43eb0e0) + QGraphicsItem (0x0x7ff6d43c2600) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7ff6d440e068) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16) + QAbstractGraphicsShapeItem (0x0x7ff6d440e0d0) 0 + primary-for QGraphicsSimpleTextItem (0x0x7ff6d440e068) + QGraphicsItem (0x0x7ff6d43c2900) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7ff6d440e0d0) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7ff6d440e138) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16) + QGraphicsItem (0x0x7ff6d43c2a20) 0 + primary-for QGraphicsItemGroup (0x0x7ff6d440e138) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7ff6d43c2d20) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))QGraphicsLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7ff6d440e1a0) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16) + QGraphicsLayoutItem (0x0x7ff6d443b420) 0 + primary-for QGraphicsLayout (0x0x7ff6d440e1a0) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7ff6d443b720) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7ff6d440e208) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16) + QObject (0x0x7ff6d443b6c0) 0 + primary-for QGraphicsAnchor (0x0x7ff6d440e208) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsAnchorLayout::sizeHint +72 (int (*)(...))QGraphicsAnchorLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsAnchorLayout::count +96 (int (*)(...))QGraphicsAnchorLayout::itemAt +104 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7ff6d440e270) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16) + QGraphicsLayout (0x0x7ff6d440e2d8) 0 + primary-for QGraphicsAnchorLayout (0x0x7ff6d440e270) + QGraphicsLayoutItem (0x0x7ff6d443b8a0) 0 + primary-for QGraphicsLayout (0x0x7ff6d440e2d8) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7ff6d443ba20) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7ff6d440e340) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16) + QObject (0x0x7ff6d443b9c0) 0 + primary-for QGraphicsEffect (0x0x7ff6d440e340) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7ff6d408a000) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7ff6d440e4e0) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16) + QGraphicsEffect (0x0x7ff6d440e548) 0 + primary-for QGraphicsColorizeEffect (0x0x7ff6d440e4e0) + QObject (0x0x7ff6d443bf60) 0 + primary-for QGraphicsEffect (0x0x7ff6d440e548) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7ff6d408a1e0) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7ff6d440e5b0) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16) + QGraphicsEffect (0x0x7ff6d440e618) 0 + primary-for QGraphicsBlurEffect (0x0x7ff6d440e5b0) + QObject (0x0x7ff6d408a180) 0 + primary-for QGraphicsEffect (0x0x7ff6d440e618) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7ff6d408a840) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7ff6d440e7b8) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16) + QGraphicsEffect (0x0x7ff6d440e820) 0 + primary-for QGraphicsDropShadowEffect (0x0x7ff6d440e7b8) + QObject (0x0x7ff6d408a7e0) 0 + primary-for QGraphicsEffect (0x0x7ff6d440e820) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7ff6d408ac60) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7ff6d440e888) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16) + QGraphicsEffect (0x0x7ff6d440e8f0) 0 + primary-for QGraphicsOpacityEffect (0x0x7ff6d440e888) + QObject (0x0x7ff6d408ac00) 0 + primary-for QGraphicsEffect (0x0x7ff6d440e8f0) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsGridLayout::sizeHint +72 (int (*)(...))QGraphicsGridLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsGridLayout::count +96 (int (*)(...))QGraphicsGridLayout::itemAt +104 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7ff6d440e958) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16) + QGraphicsLayout (0x0x7ff6d440e9c0) 0 + primary-for QGraphicsGridLayout (0x0x7ff6d440e958) + QGraphicsLayoutItem (0x0x7ff6d408ade0) 0 + primary-for QGraphicsLayout (0x0x7ff6d440e9c0) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7ff6d40e5000) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7ff6d440eaf8) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16) + QObject (0x0x7ff6d408af60) 0 + primary-for QGraphicsItemAnimation (0x0x7ff6d440eaf8) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsLinearLayout::sizeHint +72 (int (*)(...))QGraphicsLinearLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsLinearLayout::count +96 (int (*)(...))QGraphicsLinearLayout::itemAt +104 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7ff6d440eb60) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16) + QGraphicsLayout (0x0x7ff6d440ebc8) 0 + primary-for QGraphicsLinearLayout (0x0x7ff6d440eb60) + QGraphicsLayoutItem (0x0x7ff6d40e50c0) 0 + primary-for QGraphicsLayout (0x0x7ff6d440ebc8) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7ff6d40e53c0) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 93 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsLayoutItem::isEmpty +736 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7ff6d43ebcb0) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16) + QGraphicsObject (0x0x7ff6d43ebd20) 0 + primary-for QGraphicsWidget (0x0x7ff6d43ebcb0) + QObject (0x0x7ff6d40e52a0) 0 + primary-for QGraphicsObject (0x0x7ff6d43ebd20) + QGraphicsItem (0x0x7ff6d40e5300) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376) + QGraphicsLayoutItem (0x0x7ff6d40e5360) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7ff6d40e5840) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsLayoutItem::isEmpty +856 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7ff6d440ed00) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16) + QGraphicsWidget (0x0x7ff6d43ebe70) 0 + primary-for QGraphicsProxyWidget (0x0x7ff6d440ed00) + QGraphicsObject (0x0x7ff6d43ebee0) 0 + primary-for QGraphicsWidget (0x0x7ff6d43ebe70) + QObject (0x0x7ff6d40e5720) 0 + primary-for QGraphicsObject (0x0x7ff6d43ebee0) + QGraphicsItem (0x0x7ff6d40e5780) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496) + QGraphicsLayoutItem (0x0x7ff6d40e57e0) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7ff6d40e5ba0) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems +272 (int (*)(...))QGraphicsScene::focusNextPrevChild + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7ff6d440ef08) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16) + QObject (0x0x7ff6d40e5b40) 0 + primary-for QGraphicsScene (0x0x7ff6d440ef08) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneEvent (0x0x7ff6d4160958) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16) + QEvent (0x0x7ff6d4171f00) 0 + primary-for QGraphicsSceneEvent (0x0x7ff6d4160958) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMouseEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMouseEvent (0x0x7ff6d41609c0) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16) + QGraphicsSceneEvent (0x0x7ff6d4160a28) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7ff6d41609c0) + QEvent (0x0x7ff6d41cc0c0) 0 + primary-for QGraphicsSceneEvent (0x0x7ff6d4160a28) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneWheelEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneWheelEvent (0x0x7ff6d4160a90) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16) + QGraphicsSceneEvent (0x0x7ff6d4160af8) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7ff6d4160a90) + QEvent (0x0x7ff6d41cc1e0) 0 + primary-for QGraphicsSceneEvent (0x0x7ff6d4160af8) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneContextMenuEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7ff6d4160b60) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16) + QGraphicsSceneEvent (0x0x7ff6d4160bc8) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7ff6d4160b60) + QEvent (0x0x7ff6d41cc300) 0 + primary-for QGraphicsSceneEvent (0x0x7ff6d4160bc8) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHoverEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHoverEvent (0x0x7ff6d4160c30) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16) + QGraphicsSceneEvent (0x0x7ff6d4160c98) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7ff6d4160c30) + QEvent (0x0x7ff6d41cc420) 0 + primary-for QGraphicsSceneEvent (0x0x7ff6d4160c98) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHelpEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHelpEvent (0x0x7ff6d4160d00) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16) + QGraphicsSceneEvent (0x0x7ff6d4160d68) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7ff6d4160d00) + QEvent (0x0x7ff6d41cc540) 0 + primary-for QGraphicsSceneEvent (0x0x7ff6d4160d68) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneDragDropEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneDragDropEvent (0x0x7ff6d4160dd0) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16) + QGraphicsSceneEvent (0x0x7ff6d4160e38) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7ff6d4160dd0) + QEvent (0x0x7ff6d41cc660) 0 + primary-for QGraphicsSceneEvent (0x0x7ff6d4160e38) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneResizeEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneResizeEvent (0x0x7ff6d4160ea0) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16) + QGraphicsSceneEvent (0x0x7ff6d4160f08) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7ff6d4160ea0) + QEvent (0x0x7ff6d41cc780) 0 + primary-for QGraphicsSceneEvent (0x0x7ff6d4160f08) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMoveEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMoveEvent (0x0x7ff6d4160f70) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16) + QGraphicsSceneEvent (0x0x7ff6d41608f0) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7ff6d4160f70) + QEvent (0x0x7ff6d41cc8a0) 0 + primary-for QGraphicsSceneEvent (0x0x7ff6d41608f0) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7ff6d41cca20) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7ff6d4208000) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16) + QObject (0x0x7ff6d41cc9c0) 0 + primary-for QGraphicsTransform (0x0x7ff6d4208000) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7ff6d41ccc00) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7ff6d4208068) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16) + QGraphicsTransform (0x0x7ff6d42080d0) 0 + primary-for QGraphicsScale (0x0x7ff6d4208068) + QObject (0x0x7ff6d41ccba0) 0 + primary-for QGraphicsTransform (0x0x7ff6d42080d0) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7ff6d41ccde0) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7ff6d4208138) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16) + QGraphicsTransform (0x0x7ff6d42081a0) 0 + primary-for QGraphicsRotation (0x0x7ff6d4208138) + QObject (0x0x7ff6d41ccd80) 0 + primary-for QGraphicsTransform (0x0x7ff6d42081a0) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7ff6d4223060) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QScrollArea::scrollContentsBy +464 (int (*)(...))QScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QScrollArea) +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +496 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=40 align=8 + base size=40 base align=8 +QScrollArea (0x0x7ff6d4208208) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16) + QAbstractScrollArea (0x0x7ff6d4208270) 0 + primary-for QScrollArea (0x0x7ff6d4208208) + QFrame (0x0x7ff6d42082d8) 0 + primary-for QAbstractScrollArea (0x0x7ff6d4208270) + QWidget (0x0x7ff6d4134700) 0 + primary-for QFrame (0x0x7ff6d42082d8) + QObject (0x0x7ff6d41ccf60) 0 + primary-for QWidget (0x0x7ff6d4134700) + QPaintDevice (0x0x7ff6d4223000) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 488) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7ff6d42232a0) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QGraphicsView::setupViewport +448 (int (*)(...))QGraphicsView::viewportEvent +456 (int (*)(...))QGraphicsView::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QGraphicsView::drawBackground +480 (int (*)(...))QGraphicsView::drawForeground +488 (int (*)(...))QGraphicsView::drawItems +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QGraphicsView) +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +520 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=40 align=8 + base size=40 base align=8 +QGraphicsView (0x0x7ff6d4208340) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16) + QAbstractScrollArea (0x0x7ff6d42083a8) 0 + primary-for QGraphicsView (0x0x7ff6d4208340) + QFrame (0x0x7ff6d4208410) 0 + primary-for QAbstractScrollArea (0x0x7ff6d42083a8) + QWidget (0x0x7ff6d4134770) 0 + primary-for QFrame (0x0x7ff6d4208410) + QObject (0x0x7ff6d42231e0) 0 + primary-for QWidget (0x0x7ff6d4134770) + QPaintDevice (0x0x7ff6d4223240) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 512) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7ff6d3e9e180) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QGroupBox::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QGroupBox) +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +464 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=40 align=8 + base size=40 base align=8 +QGroupBox (0x0x7ff6d42086e8) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16) + QWidget (0x0x7ff6d4134ee0) 0 + primary-for QGroupBox (0x0x7ff6d42086e8) + QObject (0x0x7ff6d3e9e0c0) 0 + primary-for QWidget (0x0x7ff6d4134ee0) + QPaintDevice (0x0x7ff6d3e9e120) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 456) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7ff6d3e9e3c0) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QHeaderView::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QHeaderView::viewportEvent +456 (int (*)(...))QHeaderView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QHeaderView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QHeaderView::visualRect +504 (int (*)(...))QHeaderView::scrollTo +512 (int (*)(...))QHeaderView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QHeaderView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QHeaderView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QHeaderView::dataChanged +584 (int (*)(...))QHeaderView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QHeaderView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QHeaderView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QHeaderView::moveCursor +704 (int (*)(...))QHeaderView::horizontalOffset +712 (int (*)(...))QHeaderView::verticalOffset +720 (int (*)(...))QHeaderView::isIndexHidden +728 (int (*)(...))QHeaderView::setSelection +736 (int (*)(...))QHeaderView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QHeaderView::paintSection +792 (int (*)(...))QHeaderView::sectionSizeFromContents +800 (int (*)(...))QHeaderView::initStyleOptionForIndex +808 (int (*)(...))QHeaderView::initStyleOption +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QHeaderView) +832 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +840 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=40 align=8 + base size=40 base align=8 +QHeaderView (0x0x7ff6d4208750) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16) + QAbstractItemView (0x0x7ff6d42087b8) 0 + primary-for QHeaderView (0x0x7ff6d4208750) + QAbstractScrollArea (0x0x7ff6d4208820) 0 + primary-for QAbstractItemView (0x0x7ff6d42087b8) + QFrame (0x0x7ff6d4208888) 0 + primary-for QAbstractScrollArea (0x0x7ff6d4208820) + QWidget (0x0x7ff6d4134f50) 0 + primary-for QFrame (0x0x7ff6d4208888) + QObject (0x0x7ff6d3e9e300) 0 + primary-for QWidget (0x0x7ff6d4134f50) + QPaintDevice (0x0x7ff6d3e9e360) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 832) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7ff6d3e9e840) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QLineEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QLineEdit::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QLineEdit::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QLineEdit) +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +464 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=40 align=8 + base size=40 base align=8 +QLineEdit (0x0x7ff6d42088f0) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16) + QWidget (0x0x7ff6d3eaf230) 0 + primary-for QLineEdit (0x0x7ff6d42088f0) + QObject (0x0x7ff6d3e9e780) 0 + primary-for QWidget (0x0x7ff6d3eaf230) + QPaintDevice (0x0x7ff6d3e9e7e0) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 456) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7ff6d3e9ec00) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=40 align=8 + base size=40 base align=8 +QInputDialog (0x0x7ff6d4208958) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16) + QDialog (0x0x7ff6d42089c0) 0 + primary-for QInputDialog (0x0x7ff6d4208958) + QWidget (0x0x7ff6d3eaf540) 0 + primary-for QDialog (0x0x7ff6d42089c0) + QObject (0x0x7ff6d3e9eb40) 0 + primary-for QWidget (0x0x7ff6d3eaf540) + QPaintDevice (0x0x7ff6d3e9eba0) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7ff6d3f19120) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7ff6d4208b60) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16) + QAbstractItemDelegate (0x0x7ff6d4208bc8) 0 + primary-for QItemDelegate (0x0x7ff6d4208b60) + QObject (0x0x7ff6d3f190c0) 0 + primary-for QAbstractItemDelegate (0x0x7ff6d4208bc8) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7ff6d3f192a0) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7ff6d3f19600) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7ff6d3f19ae0) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=40 align=8 + base size=40 base align=8 +QKeySequenceEdit (0x0x7ff6d4208d00) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16) + QWidget (0x0x7ff6d3eaf850) 0 + primary-for QKeySequenceEdit (0x0x7ff6d4208d00) + QObject (0x0x7ff6d3f19a20) 0 + primary-for QWidget (0x0x7ff6d3eaf850) + QPaintDevice (0x0x7ff6d3f19a80) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7ff6d3f19d20) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QLabel) +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +464 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=40 align=8 + base size=40 base align=8 +QLabel (0x0x7ff6d4208d68) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16) + QFrame (0x0x7ff6d4208dd0) 0 + primary-for QLabel (0x0x7ff6d4208d68) + QWidget (0x0x7ff6d3eaf8c0) 0 + primary-for QFrame (0x0x7ff6d4208dd0) + QObject (0x0x7ff6d3f19c60) 0 + primary-for QWidget (0x0x7ff6d3eaf8c0) + QPaintDevice (0x0x7ff6d3f19cc0) 16 + vptr=((& QLabel::_ZTV6QLabel) + 456) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7ff6d3f73060) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QLCDNumber) +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +464 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=40 align=8 + base size=40 base align=8 +QLCDNumber (0x0x7ff6d4208e38) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16) + QFrame (0x0x7ff6d4208ea0) 0 + primary-for QLCDNumber (0x0x7ff6d4208e38) + QWidget (0x0x7ff6d3eaf930) 0 + primary-for QFrame (0x0x7ff6d4208ea0) + QObject (0x0x7ff6d3f19f60) 0 + primary-for QWidget (0x0x7ff6d3eaf930) + QPaintDevice (0x0x7ff6d3f73000) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 456) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7ff6d3f73420) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QListView) +800 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +808 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=40 align=8 + base size=40 base align=8 +QListView (0x0x7ff6d4208f08) 0 + vptr=((& QListView::_ZTV9QListView) + 16) + QAbstractItemView (0x0x7ff6d4208f70) 0 + primary-for QListView (0x0x7ff6d4208f08) + QAbstractScrollArea (0x0x7ff6d3f86000) 0 + primary-for QAbstractItemView (0x0x7ff6d4208f70) + QFrame (0x0x7ff6d3f86068) 0 + primary-for QAbstractScrollArea (0x0x7ff6d3f86000) + QWidget (0x0x7ff6d3eafcb0) 0 + primary-for QFrame (0x0x7ff6d3f86068) + QObject (0x0x7ff6d3f73360) 0 + primary-for QWidget (0x0x7ff6d3eafcb0) + QPaintDevice (0x0x7ff6d3f733c0) 16 + vptr=((& QListView::_ZTV9QListView) + 800) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::data +48 (int (*)(...))QListWidgetItem::setData +56 (int (*)(...))QListWidgetItem::operator< +64 (int (*)(...))QListWidgetItem::read +72 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=40 align=8 + base size=36 base align=8 +QListWidgetItem (0x0x7ff6d3f73960) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7ff6d3fc5420) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QListWidget::setModel +480 (int (*)(...))QListWidget::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))QListWidget::mimeTypes +792 (int (*)(...))QListWidget::mimeData +800 (int (*)(...))QListWidget::dropMimeData +808 (int (*)(...))QListWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QListWidget) +832 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +840 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=40 align=8 + base size=40 base align=8 +QListWidget (0x0x7ff6d3f860d0) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16) + QListView (0x0x7ff6d3f86138) 0 + primary-for QListWidget (0x0x7ff6d3f860d0) + QAbstractItemView (0x0x7ff6d3f861a0) 0 + primary-for QListView (0x0x7ff6d3f86138) + QAbstractScrollArea (0x0x7ff6d3f86208) 0 + primary-for QAbstractItemView (0x0x7ff6d3f861a0) + QFrame (0x0x7ff6d3f86270) 0 + primary-for QAbstractScrollArea (0x0x7ff6d3f86208) + QWidget (0x0x7ff6d3f8b310) 0 + primary-for QFrame (0x0x7ff6d3f86270) + QObject (0x0x7ff6d3fc5360) 0 + primary-for QWidget (0x0x7ff6d3f8b310) + QPaintDevice (0x0x7ff6d3fc53c0) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 832) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7ff6d3fc5900) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=40 align=8 + base size=40 base align=8 +QMainWindow (0x0x7ff6d3f862d8) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16) + QWidget (0x0x7ff6d3f8b380) 0 + primary-for QMainWindow (0x0x7ff6d3f862d8) + QObject (0x0x7ff6d3fc5840) 0 + primary-for QWidget (0x0x7ff6d3f8b380) + QPaintDevice (0x0x7ff6d3fc58a0) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7ff6d401d000) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QMdiArea::setupViewport +448 (int (*)(...))QMdiArea::viewportEvent +456 (int (*)(...))QMdiArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI8QMdiArea) +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +496 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=40 align=8 + base size=40 base align=8 +QMdiArea (0x0x7ff6d3f86478) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16) + QAbstractScrollArea (0x0x7ff6d3f864e0) 0 + primary-for QMdiArea (0x0x7ff6d3f86478) + QFrame (0x0x7ff6d3f86548) 0 + primary-for QAbstractScrollArea (0x0x7ff6d3f864e0) + QWidget (0x0x7ff6d3f8b690) 0 + primary-for QFrame (0x0x7ff6d3f86548) + QObject (0x0x7ff6d3fc5f00) 0 + primary-for QWidget (0x0x7ff6d3f8b690) + QPaintDevice (0x0x7ff6d3fc5f60) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 488) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7ff6d401d6c0) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=40 align=8 + base size=40 base align=8 +QMdiSubWindow (0x0x7ff6d3f866e8) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16) + QWidget (0x0x7ff6d3f8ba10) 0 + primary-for QMdiSubWindow (0x0x7ff6d3f866e8) + QObject (0x0x7ff6d401d600) 0 + primary-for QWidget (0x0x7ff6d3f8ba10) + QPaintDevice (0x0x7ff6d401d660) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7ff6d401dc00) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))QMenu::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QMenu) +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +464 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=40 align=8 + base size=40 base align=8 +QMenu (0x0x7ff6d3f86888) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16) + QWidget (0x0x7ff6d3f8bc40) 0 + primary-for QMenu (0x0x7ff6d3f86888) + QObject (0x0x7ff6d401db40) 0 + primary-for QWidget (0x0x7ff6d3f8bc40) + QPaintDevice (0x0x7ff6d401dba0) 16 + vptr=((& QMenu::_ZTV5QMenu) + 456) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7ff6d3c9e000) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMenuBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QMenuBar) +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +464 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=40 align=8 + base size=40 base align=8 +QMenuBar (0x0x7ff6d3f868f0) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16) + QWidget (0x0x7ff6d3f8bcb0) 0 + primary-for QMenuBar (0x0x7ff6d3f868f0) + QObject (0x0x7ff6d401df00) 0 + primary-for QWidget (0x0x7ff6d3f8bcb0) + QPaintDevice (0x0x7ff6d401df60) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 456) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7ff6d3c9e300) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=40 align=8 + base size=40 base align=8 +QMessageBox (0x0x7ff6d3f86958) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16) + QDialog (0x0x7ff6d3f869c0) 0 + primary-for QMessageBox (0x0x7ff6d3f86958) + QWidget (0x0x7ff6d3f8bd20) 0 + primary-for QDialog (0x0x7ff6d3f869c0) + QObject (0x0x7ff6d3c9e240) 0 + primary-for QWidget (0x0x7ff6d3f8bd20) + QPaintDevice (0x0x7ff6d3c9e2a0) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7ff6d3c9eb40) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7ff6d3c9eba0) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextEdit::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI9QTextEdit) +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +536 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=40 align=8 + base size=40 base align=8 +QTextEdit (0x0x7ff6d3f86b60) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16) + QAbstractScrollArea (0x0x7ff6d3f86bc8) 0 + primary-for QTextEdit (0x0x7ff6d3f86b60) + QFrame (0x0x7ff6d3f86c30) 0 + primary-for QAbstractScrollArea (0x0x7ff6d3f86bc8) + QWidget (0x0x7ff6d3cb60e0) 0 + primary-for QFrame (0x0x7ff6d3f86c30) + QObject (0x0x7ff6d3c9ea80) 0 + primary-for QWidget (0x0x7ff6d3cb60e0) + QPaintDevice (0x0x7ff6d3c9eae0) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 528) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7ff6d3d30420) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QPlainTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QPlainTextEdit::loadResource +480 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +488 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +496 (int (*)(...))QPlainTextEdit::insertFromMimeData +504 (int (*)(...))QPlainTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI14QPlainTextEdit) +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +536 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=40 align=8 + base size=40 base align=8 +QPlainTextEdit (0x0x7ff6d3f86dd0) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16) + QAbstractScrollArea (0x0x7ff6d3f86e38) 0 + primary-for QPlainTextEdit (0x0x7ff6d3f86dd0) + QFrame (0x0x7ff6d3f86ea0) 0 + primary-for QAbstractScrollArea (0x0x7ff6d3f86e38) + QWidget (0x0x7ff6d3cb6460) 0 + primary-for QFrame (0x0x7ff6d3f86ea0) + QObject (0x0x7ff6d3d30360) 0 + primary-for QWidget (0x0x7ff6d3cb6460) + QPaintDevice (0x0x7ff6d3d303c0) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 528) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7ff6d3d30960) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7ff6d3f86f08) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16) + QAbstractTextDocumentLayout (0x0x7ff6d3f86f70) 0 + primary-for QPlainTextDocumentLayout (0x0x7ff6d3f86f08) + QObject (0x0x7ff6d3d30900) 0 + primary-for QAbstractTextDocumentLayout (0x0x7ff6d3f86f70) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7ff6d3d30ba0) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))QProgressBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI12QProgressBar) +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +472 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=40 align=8 + base size=40 base align=8 +QProgressBar (0x0x7ff6d3d71000) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16) + QWidget (0x0x7ff6d3cb65b0) 0 + primary-for QProgressBar (0x0x7ff6d3d71000) + QObject (0x0x7ff6d3d30ae0) 0 + primary-for QWidget (0x0x7ff6d3cb65b0) + QPaintDevice (0x0x7ff6d3d30b40) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 464) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7ff6d3d30ea0) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=40 align=8 + base size=40 base align=8 +QProgressDialog (0x0x7ff6d3d71068) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16) + QDialog (0x0x7ff6d3d710d0) 0 + primary-for QProgressDialog (0x0x7ff6d3d71068) + QWidget (0x0x7ff6d3cb6700) 0 + primary-for QDialog (0x0x7ff6d3d710d0) + QObject (0x0x7ff6d3d30de0) 0 + primary-for QWidget (0x0x7ff6d3cb6700) + QPaintDevice (0x0x7ff6d3d30e40) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7ff6d3d910c0) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7ff6d3d71138) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16) + QCommonStyle (0x0x7ff6d3d711a0) 0 + primary-for QProxyStyle (0x0x7ff6d3d71138) + QStyle (0x0x7ff6d3d71208) 0 + primary-for QCommonStyle (0x0x7ff6d3d711a0) + QObject (0x0x7ff6d3d91060) 0 + primary-for QStyle (0x0x7ff6d3d71208) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7ff6d3d91300) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QRadioButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI12QRadioButton) +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +488 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=40 align=8 + base size=40 base align=8 +QRadioButton (0x0x7ff6d3d71270) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16) + QAbstractButton (0x0x7ff6d3d712d8) 0 + primary-for QRadioButton (0x0x7ff6d3d71270) + QWidget (0x0x7ff6d3cb6770) 0 + primary-for QAbstractButton (0x0x7ff6d3d712d8) + QObject (0x0x7ff6d3d91240) 0 + primary-for QWidget (0x0x7ff6d3cb6770) + QPaintDevice (0x0x7ff6d3d912a0) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 480) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7ff6d3d91540) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))QScrollBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QScrollBar) +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +472 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=40 align=8 + base size=40 base align=8 +QScrollBar (0x0x7ff6d3d71340) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16) + QAbstractSlider (0x0x7ff6d3d713a8) 0 + primary-for QScrollBar (0x0x7ff6d3d71340) + QWidget (0x0x7ff6d3cb67e0) 0 + primary-for QAbstractSlider (0x0x7ff6d3d713a8) + QObject (0x0x7ff6d3d91480) 0 + primary-for QWidget (0x0x7ff6d3cb67e0) + QPaintDevice (0x0x7ff6d3d914e0) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 464) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7ff6d3d916c0) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7ff6d3d91a20) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7ff6d3d71410) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16) + QObject (0x0x7ff6d3d919c0) 0 + primary-for QScroller (0x0x7ff6d3d71410) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7ff6d3d91d20) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=40 align=8 + base size=40 base align=8 +QSizeGrip (0x0x7ff6d3d71478) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16) + QWidget (0x0x7ff6d3dc0b60) 0 + primary-for QSizeGrip (0x0x7ff6d3d71478) + QObject (0x0x7ff6d3d91c60) 0 + primary-for QWidget (0x0x7ff6d3dc0b60) + QPaintDevice (0x0x7ff6d3d91cc0) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7ff6d3d91f60) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QSpinBox::valueFromText +488 (int (*)(...))QSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI8QSpinBox) +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +520 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=40 align=8 + base size=40 base align=8 +QSpinBox (0x0x7ff6d3d714e0) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16) + QAbstractSpinBox (0x0x7ff6d3d71548) 0 + primary-for QSpinBox (0x0x7ff6d3d714e0) + QWidget (0x0x7ff6d3dc0bd0) 0 + primary-for QAbstractSpinBox (0x0x7ff6d3d71548) + QObject (0x0x7ff6d3d91ea0) 0 + primary-for QWidget (0x0x7ff6d3dc0bd0) + QPaintDevice (0x0x7ff6d3d91f00) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 512) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7ff6d3dfb1e0) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QDoubleSpinBox::valueFromText +488 (int (*)(...))QDoubleSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI14QDoubleSpinBox) +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +520 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=40 align=8 + base size=40 base align=8 +QDoubleSpinBox (0x0x7ff6d3d715b0) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16) + QAbstractSpinBox (0x0x7ff6d3d71618) 0 + primary-for QDoubleSpinBox (0x0x7ff6d3d715b0) + QWidget (0x0x7ff6d3dc0c40) 0 + primary-for QAbstractSpinBox (0x0x7ff6d3d71618) + QObject (0x0x7ff6d3dfb120) 0 + primary-for QWidget (0x0x7ff6d3dc0c40) + QPaintDevice (0x0x7ff6d3dfb180) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 512) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7ff6d3dfb420) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=40 align=8 + base size=40 base align=8 +QSplashScreen (0x0x7ff6d3d71680) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16) + QWidget (0x0x7ff6d3dc0cb0) 0 + primary-for QSplashScreen (0x0x7ff6d3d71680) + QObject (0x0x7ff6d3dfb360) 0 + primary-for QWidget (0x0x7ff6d3dc0cb0) + QPaintDevice (0x0x7ff6d3dfb3c0) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7ff6d3dfb660) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QSplitter::createHandle +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QSplitter) +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +472 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=40 align=8 + base size=40 base align=8 +QSplitter (0x0x7ff6d3d716e8) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16) + QFrame (0x0x7ff6d3d71750) 0 + primary-for QSplitter (0x0x7ff6d3d716e8) + QWidget (0x0x7ff6d3dc0d20) 0 + primary-for QFrame (0x0x7ff6d3d71750) + QObject (0x0x7ff6d3dfb5a0) 0 + primary-for QWidget (0x0x7ff6d3dc0d20) + QPaintDevice (0x0x7ff6d3dfb600) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 464) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7ff6d3dfb8a0) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=40 align=8 + base size=40 base align=8 +QSplitterHandle (0x0x7ff6d3d717b8) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16) + QWidget (0x0x7ff6d3dc0d90) 0 + primary-for QSplitterHandle (0x0x7ff6d3d717b8) + QObject (0x0x7ff6d3dfb7e0) 0 + primary-for QWidget (0x0x7ff6d3dc0d90) + QPaintDevice (0x0x7ff6d3dfb840) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7ff6d3dfbae0) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QStackedLayout::addItem +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QStackedLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QStackedLayout::setGeometry +184 (int (*)(...))QStackedLayout::itemAt +192 (int (*)(...))QStackedLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QStackedLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QStackedLayout::sizeHint +264 (int (*)(...))QStackedLayout::hasHeightForWidth +272 (int (*)(...))QStackedLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI14QStackedLayout) +296 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +304 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +312 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +320 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +344 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +376 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7ff6d3d71820) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16) + QLayout (0x0x7ff6d3dc0e00) 0 + primary-for QStackedLayout (0x0x7ff6d3d71820) + QObject (0x0x7ff6d3dfba20) 0 + primary-for QLayout (0x0x7ff6d3dc0e00) + QLayoutItem (0x0x7ff6d3dfba80) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 296) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7ff6d3dfbde0) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI14QStackedWidget) +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +464 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=40 align=8 + base size=40 base align=8 +QStackedWidget (0x0x7ff6d3d71888) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16) + QFrame (0x0x7ff6d3d718f0) 0 + primary-for QStackedWidget (0x0x7ff6d3d71888) + QWidget (0x0x7ff6d3dc0f50) 0 + primary-for QFrame (0x0x7ff6d3d718f0) + QObject (0x0x7ff6d3dfbd20) 0 + primary-for QWidget (0x0x7ff6d3dc0f50) + QPaintDevice (0x0x7ff6d3dfbd80) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 456) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7ff6d3a4f060) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=40 align=8 + base size=40 base align=8 +QStatusBar (0x0x7ff6d3d71958) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16) + QWidget (0x0x7ff6d3dc0540) 0 + primary-for QStatusBar (0x0x7ff6d3d71958) + QObject (0x0x7ff6d3dfbf60) 0 + primary-for QWidget (0x0x7ff6d3dc0540) + QPaintDevice (0x0x7ff6d3a4f000) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7ff6d3a4f240) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7ff6d3d719c0) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16) + QAbstractItemDelegate (0x0x7ff6d3d71a28) 0 + primary-for QStyledItemDelegate (0x0x7ff6d3d719c0) + QObject (0x0x7ff6d3a4f1e0) 0 + primary-for QAbstractItemDelegate (0x0x7ff6d3d71a28) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7ff6d3a4f3c0) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7ff6d3d71a90) 0 + QPainter (0x0x7ff6d3a4f420) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7ff6d3a4fcc0) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7ff6d3d71af8) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16) + QObject (0x0x7ff6d3a4fc60) 0 + primary-for QStylePlugin (0x0x7ff6d3d71af8) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7ff6d3a4fde0) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7ff6d3d71b60) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16) + QObject (0x0x7ff6d3a4fd80) 0 + primary-for QSystemTrayIcon (0x0x7ff6d3d71b60) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7ff6d3a8a120) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableView::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI10QTableView) +800 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +808 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=40 align=8 + base size=40 base align=8 +QTableView (0x0x7ff6d3d71bc8) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16) + QAbstractItemView (0x0x7ff6d3d71c30) 0 + primary-for QTableView (0x0x7ff6d3d71bc8) + QAbstractScrollArea (0x0x7ff6d3d71c98) 0 + primary-for QAbstractItemView (0x0x7ff6d3d71c30) + QFrame (0x0x7ff6d3d71d00) 0 + primary-for QAbstractScrollArea (0x0x7ff6d3d71c98) + QWidget (0x0x7ff6d3a76460) 0 + primary-for QFrame (0x0x7ff6d3d71d00) + QObject (0x0x7ff6d3a8a060) 0 + primary-for QWidget (0x0x7ff6d3a76460) + QPaintDevice (0x0x7ff6d3a8a0c0) 16 + vptr=((& QTableView::_ZTV10QTableView) + 800) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7ff6d3a8a2a0) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=64 align=8 + base size=60 base align=8 +QTableWidgetItem (0x0x7ff6d3a8a6c0) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7ff6d3af99c0) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableWidget::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))QTableWidget::mimeTypes +792 (int (*)(...))QTableWidget::mimeData +800 (int (*)(...))QTableWidget::dropMimeData +808 (int (*)(...))QTableWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI12QTableWidget) +832 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +840 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=40 align=8 + base size=40 base align=8 +QTableWidget (0x0x7ff6d3abe618) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16) + QTableView (0x0x7ff6d3abe680) 0 + primary-for QTableWidget (0x0x7ff6d3abe618) + QAbstractItemView (0x0x7ff6d3abe6e8) 0 + primary-for QTableView (0x0x7ff6d3abe680) + QAbstractScrollArea (0x0x7ff6d3abe750) 0 + primary-for QAbstractItemView (0x0x7ff6d3abe6e8) + QFrame (0x0x7ff6d3abe7b8) 0 + primary-for QAbstractScrollArea (0x0x7ff6d3abe750) + QWidget (0x0x7ff6d3f8b770) 0 + primary-for QFrame (0x0x7ff6d3abe7b8) + QObject (0x0x7ff6d3af9900) 0 + primary-for QWidget (0x0x7ff6d3f8b770) + QPaintDevice (0x0x7ff6d3af9960) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 832) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7ff6d3af9d80) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 79 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextBrowser::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))QTextBrowser::doSetSource +552 (int (*)(...))-16 +560 (int (*)(...))(& _ZTI12QTextBrowser) +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +576 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +624 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=40 align=8 + base size=40 base align=8 +QTextBrowser (0x0x7ff6d3abe820) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16) + QTextEdit (0x0x7ff6d3abe888) 0 + primary-for QTextBrowser (0x0x7ff6d3abe820) + QAbstractScrollArea (0x0x7ff6d3abe8f0) 0 + primary-for QTextEdit (0x0x7ff6d3abe888) + QFrame (0x0x7ff6d3abe958) 0 + primary-for QAbstractScrollArea (0x0x7ff6d3abe8f0) + QWidget (0x0x7ff6d3a76690) 0 + primary-for QFrame (0x0x7ff6d3abe958) + QObject (0x0x7ff6d3af9cc0) 0 + primary-for QWidget (0x0x7ff6d3a76690) + QPaintDevice (0x0x7ff6d3af9d20) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 568) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7ff6d3b37000) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QToolBar) +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +464 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=40 align=8 + base size=40 base align=8 +QToolBar (0x0x7ff6d3abe9c0) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16) + QWidget (0x0x7ff6d3a76700) 0 + primary-for QToolBar (0x0x7ff6d3abe9c0) + QObject (0x0x7ff6d3af9f00) 0 + primary-for QWidget (0x0x7ff6d3a76700) + QPaintDevice (0x0x7ff6d3af9f60) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 456) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7ff6d3b37480) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QToolBox::itemInserted +448 (int (*)(...))QToolBox::itemRemoved +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI8QToolBox) +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +480 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=40 align=8 + base size=40 base align=8 +QToolBox (0x0x7ff6d3abea28) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16) + QFrame (0x0x7ff6d3abea90) 0 + primary-for QToolBox (0x0x7ff6d3abea28) + QWidget (0x0x7ff6d3a76770) 0 + primary-for QFrame (0x0x7ff6d3abea90) + QObject (0x0x7ff6d3b373c0) 0 + primary-for QWidget (0x0x7ff6d3a76770) + QPaintDevice (0x0x7ff6d3b37420) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 472) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7ff6d3b377e0) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))QToolButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QToolButton) +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +488 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=40 align=8 + base size=40 base align=8 +QToolButton (0x0x7ff6d3abeaf8) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16) + QAbstractButton (0x0x7ff6d3abeb60) 0 + primary-for QToolButton (0x0x7ff6d3abeaf8) + QWidget (0x0x7ff6d3a767e0) 0 + primary-for QAbstractButton (0x0x7ff6d3abeb60) + QObject (0x0x7ff6d3b37720) 0 + primary-for QWidget (0x0x7ff6d3a767e0) + QPaintDevice (0x0x7ff6d3b37780) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 480) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7ff6d3b37a20) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7ff6d3b37ba0) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeView::setModel +480 (int (*)(...))QTreeView::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI9QTreeView) +816 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +824 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=40 align=8 + base size=40 base align=8 +QTreeView (0x0x7ff6d3abebc8) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16) + QAbstractItemView (0x0x7ff6d3abec30) 0 + primary-for QTreeView (0x0x7ff6d3abebc8) + QAbstractScrollArea (0x0x7ff6d3abec98) 0 + primary-for QAbstractItemView (0x0x7ff6d3abec30) + QFrame (0x0x7ff6d3abed00) 0 + primary-for QAbstractScrollArea (0x0x7ff6d3abec98) + QWidget (0x0x7ff6d3a769a0) 0 + primary-for QFrame (0x0x7ff6d3abed00) + QObject (0x0x7ff6d3b37ae0) 0 + primary-for QWidget (0x0x7ff6d3a769a0) + QPaintDevice (0x0x7ff6d3b37b40) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 816) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7ff6d3b37d20) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=96 align=8 + base size=92 base align=8 +QTreeWidgetItem (0x0x7ff6d3bab420) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7ff6d3867240) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 114 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeWidget::setModel +480 (int (*)(...))QTreeWidget::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))QTreeWidget::mimeTypes +808 (int (*)(...))QTreeWidget::mimeData +816 (int (*)(...))QTreeWidget::dropMimeData +824 (int (*)(...))QTreeWidget::supportedDropActions +832 (int (*)(...))-16 +840 (int (*)(...))(& _ZTI11QTreeWidget) +848 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +856 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +896 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +904 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=40 align=8 + base size=40 base align=8 +QTreeWidget (0x0x7ff6d3bde750) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16) + QTreeView (0x0x7ff6d386b000) 0 + primary-for QTreeWidget (0x0x7ff6d3bde750) + QAbstractItemView (0x0x7ff6d386b068) 0 + primary-for QTreeView (0x0x7ff6d386b000) + QAbstractScrollArea (0x0x7ff6d386b0d0) 0 + primary-for QAbstractItemView (0x0x7ff6d386b068) + QFrame (0x0x7ff6d386b138) 0 + primary-for QAbstractScrollArea (0x0x7ff6d386b0d0) + QWidget (0x0x7ff6d3b8d770) 0 + primary-for QFrame (0x0x7ff6d386b138) + QObject (0x0x7ff6d3867180) 0 + primary-for QWidget (0x0x7ff6d3b8d770) + QPaintDevice (0x0x7ff6d38671e0) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 848) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7ff6d3867840) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QUndoView) +800 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +808 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=40 align=8 + base size=40 base align=8 +QUndoView (0x0x7ff6d386b340) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16) + QListView (0x0x7ff6d386b3a8) 0 + primary-for QUndoView (0x0x7ff6d386b340) + QAbstractItemView (0x0x7ff6d386b410) 0 + primary-for QListView (0x0x7ff6d386b3a8) + QAbstractScrollArea (0x0x7ff6d386b478) 0 + primary-for QAbstractItemView (0x0x7ff6d386b410) + QFrame (0x0x7ff6d386b4e0) 0 + primary-for QAbstractScrollArea (0x0x7ff6d386b478) + QWidget (0x0x7ff6d3b8d8c0) 0 + primary-for QFrame (0x0x7ff6d386b4e0) + QObject (0x0x7ff6d3867780) 0 + primary-for QWidget (0x0x7ff6d3b8d8c0) + QPaintDevice (0x0x7ff6d38677e0) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 800) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7ff6d38679c0) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7ff6d3867a80) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7ff6d386b548) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16) + QAction (0x0x7ff6d386b5b0) 0 + primary-for QWidgetAction (0x0x7ff6d386b548) + QObject (0x0x7ff6d3867a20) 0 + primary-for QAction (0x0x7ff6d386b5b0) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7ff6d3867cc0) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=40 align=8 + base size=40 base align=8 +QWizard (0x0x7ff6d386b618) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16) + QDialog (0x0x7ff6d386b680) 0 + primary-for QWizard (0x0x7ff6d386b618) + QWidget (0x0x7ff6d3b8d930) 0 + primary-for QDialog (0x0x7ff6d386b680) + QObject (0x0x7ff6d3867c00) 0 + primary-for QWidget (0x0x7ff6d3b8d930) + QPaintDevice (0x0x7ff6d3867c60) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7ff6d38c2480) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=40 align=8 + base size=40 base align=8 +QWizardPage (0x0x7ff6d386b820) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16) + QWidget (0x0x7ff6d38a6af0) 0 + primary-for QWizardPage (0x0x7ff6d386b820) + QObject (0x0x7ff6d38c23c0) 0 + primary-for QWidget (0x0x7ff6d38a6af0) + QPaintDevice (0x0x7ff6d38c2420) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488) + +Class QHelpGlobal + size=1 align=1 + base size=0 base align=1 +QHelpGlobal (0x0x7ff6d38c2600) 0 empty + +Class QCompressedHelpInfo + size=8 align=8 + base size=8 base align=8 +QCompressedHelpInfo (0x0x7ff6d38c2660) 0 + +Class QHelpContentItem + size=8 align=8 + base size=8 base align=8 +QHelpContentItem (0x0x7ff6d38c2780) 0 + +Class QHelpContentModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpContentModel::QPrivateSignal (0x0x7ff6d38c2840) 0 empty + +Vtable for QHelpContentModel +QHelpContentModel::_ZTV17QHelpContentModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QHelpContentModel) +16 (int (*)(...))QHelpContentModel::metaObject +24 (int (*)(...))QHelpContentModel::qt_metacast +32 (int (*)(...))QHelpContentModel::qt_metacall +40 (int (*)(...))QHelpContentModel::~QHelpContentModel +48 (int (*)(...))QHelpContentModel::~QHelpContentModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHelpContentModel::index +120 (int (*)(...))QHelpContentModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QHelpContentModel::rowCount +144 (int (*)(...))QHelpContentModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QHelpContentModel::data +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractItemModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractItemModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QHelpContentModel + size=24 align=8 + base size=24 base align=8 +QHelpContentModel (0x0x7ff6d386b888) 0 + vptr=((& QHelpContentModel::_ZTV17QHelpContentModel) + 16) + QAbstractItemModel (0x0x7ff6d386b8f0) 0 + primary-for QHelpContentModel (0x0x7ff6d386b888) + QObject (0x0x7ff6d38c27e0) 0 + primary-for QAbstractItemModel (0x0x7ff6d386b8f0) + +Class QHelpContentWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpContentWidget::QPrivateSignal (0x0x7ff6d38c29c0) 0 empty + +Vtable for QHelpContentWidget +QHelpContentWidget::_ZTV18QHelpContentWidget: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QHelpContentWidget) +16 (int (*)(...))QHelpContentWidget::metaObject +24 (int (*)(...))QHelpContentWidget::qt_metacast +32 (int (*)(...))QHelpContentWidget::qt_metacall +40 (int (*)(...))QHelpContentWidget::~QHelpContentWidget +48 (int (*)(...))QHelpContentWidget::~QHelpContentWidget +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeView::setModel +480 (int (*)(...))QTreeView::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI18QHelpContentWidget) +816 (int (*)(...))QHelpContentWidget::_ZThn16_N18QHelpContentWidgetD1Ev +824 (int (*)(...))QHelpContentWidget::_ZThn16_N18QHelpContentWidgetD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpContentWidget + size=64 align=8 + base size=64 base align=8 +QHelpContentWidget (0x0x7ff6d386b958) 0 + vptr=((& QHelpContentWidget::_ZTV18QHelpContentWidget) + 16) + QTreeView (0x0x7ff6d386b9c0) 0 + primary-for QHelpContentWidget (0x0x7ff6d386b958) + QAbstractItemView (0x0x7ff6d386ba28) 0 + primary-for QTreeView (0x0x7ff6d386b9c0) + QAbstractScrollArea (0x0x7ff6d386ba90) 0 + primary-for QAbstractItemView (0x0x7ff6d386ba28) + QFrame (0x0x7ff6d386baf8) 0 + primary-for QAbstractScrollArea (0x0x7ff6d386ba90) + QWidget (0x0x7ff6d38a6b60) 0 + primary-for QFrame (0x0x7ff6d386baf8) + QObject (0x0x7ff6d38c2900) 0 + primary-for QWidget (0x0x7ff6d38a6b60) + QPaintDevice (0x0x7ff6d38c2960) 16 + vptr=((& QHelpContentWidget::_ZTV18QHelpContentWidget) + 816) + +Class QHelpEngineCore::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpEngineCore::QPrivateSignal (0x0x7ff6d38c2ae0) 0 empty + +Vtable for QHelpEngineCore +QHelpEngineCore::_ZTV15QHelpEngineCore: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QHelpEngineCore) +16 (int (*)(...))QHelpEngineCore::metaObject +24 (int (*)(...))QHelpEngineCore::qt_metacast +32 (int (*)(...))QHelpEngineCore::qt_metacall +40 (int (*)(...))QHelpEngineCore::~QHelpEngineCore +48 (int (*)(...))QHelpEngineCore::~QHelpEngineCore +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHelpEngineCore + size=24 align=8 + base size=24 base align=8 +QHelpEngineCore (0x0x7ff6d386bb60) 0 + vptr=((& QHelpEngineCore::_ZTV15QHelpEngineCore) + 16) + QObject (0x0x7ff6d38c2a80) 0 + primary-for QHelpEngineCore (0x0x7ff6d386bb60) + +Class QHelpEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpEngine::QPrivateSignal (0x0x7ff6d38c2c00) 0 empty + +Vtable for QHelpEngine +QHelpEngine::_ZTV11QHelpEngine: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHelpEngine) +16 (int (*)(...))QHelpEngine::metaObject +24 (int (*)(...))QHelpEngine::qt_metacast +32 (int (*)(...))QHelpEngine::qt_metacall +40 (int (*)(...))QHelpEngine::~QHelpEngine +48 (int (*)(...))QHelpEngine::~QHelpEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHelpEngine + size=32 align=8 + base size=32 base align=8 +QHelpEngine (0x0x7ff6d386bbc8) 0 + vptr=((& QHelpEngine::_ZTV11QHelpEngine) + 16) + QHelpEngineCore (0x0x7ff6d386bc30) 0 + primary-for QHelpEngine (0x0x7ff6d386bbc8) + QObject (0x0x7ff6d38c2ba0) 0 + primary-for QHelpEngineCore (0x0x7ff6d386bc30) + +Class QHelpFilterData + size=8 align=8 + base size=8 base align=8 +QHelpFilterData (0x0x7ff6d38c2cc0) 0 + +Class QHelpFilterEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpFilterEngine::QPrivateSignal (0x0x7ff6d38c2e40) 0 empty + +Vtable for QHelpFilterEngine +QHelpFilterEngine::_ZTV17QHelpFilterEngine: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QHelpFilterEngine) +16 (int (*)(...))QHelpFilterEngine::metaObject +24 (int (*)(...))QHelpFilterEngine::qt_metacast +32 (int (*)(...))QHelpFilterEngine::qt_metacall +40 (int (*)(...))QHelpFilterEngine::~QHelpFilterEngine +48 (int (*)(...))QHelpFilterEngine::~QHelpFilterEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHelpFilterEngine + size=24 align=8 + base size=24 base align=8 +QHelpFilterEngine (0x0x7ff6d386bc98) 0 + vptr=((& QHelpFilterEngine::_ZTV17QHelpFilterEngine) + 16) + QObject (0x0x7ff6d38c2de0) 0 + primary-for QHelpFilterEngine (0x0x7ff6d386bc98) + +Class QHelpFilterSettingsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpFilterSettingsWidget::QPrivateSignal (0x0x7ff6d3943000) 0 empty + +Vtable for QHelpFilterSettingsWidget +QHelpFilterSettingsWidget::_ZTV25QHelpFilterSettingsWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QHelpFilterSettingsWidget) +16 (int (*)(...))QHelpFilterSettingsWidget::metaObject +24 (int (*)(...))QHelpFilterSettingsWidget::qt_metacast +32 (int (*)(...))QHelpFilterSettingsWidget::qt_metacall +40 (int (*)(...))QHelpFilterSettingsWidget::~QHelpFilterSettingsWidget +48 (int (*)(...))QHelpFilterSettingsWidget::~QHelpFilterSettingsWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI25QHelpFilterSettingsWidget) +448 (int (*)(...))QHelpFilterSettingsWidget::_ZThn16_N25QHelpFilterSettingsWidgetD1Ev +456 (int (*)(...))QHelpFilterSettingsWidget::_ZThn16_N25QHelpFilterSettingsWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpFilterSettingsWidget + size=48 align=8 + base size=48 base align=8 +QHelpFilterSettingsWidget (0x0x7ff6d386bd00) 0 + vptr=((& QHelpFilterSettingsWidget::_ZTV25QHelpFilterSettingsWidget) + 16) + QWidget (0x0x7ff6d38a6bd0) 0 + primary-for QHelpFilterSettingsWidget (0x0x7ff6d386bd00) + QObject (0x0x7ff6d38c2f00) 0 + primary-for QWidget (0x0x7ff6d38a6bd0) + QPaintDevice (0x0x7ff6d38c2f60) 16 + vptr=((& QHelpFilterSettingsWidget::_ZTV25QHelpFilterSettingsWidget) + 448) + +Class QHelpIndexModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpIndexModel::QPrivateSignal (0x0x7ff6d39432a0) 0 empty + +Vtable for QHelpIndexModel +QHelpIndexModel::_ZTV15QHelpIndexModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QHelpIndexModel) +16 (int (*)(...))QHelpIndexModel::metaObject +24 (int (*)(...))QHelpIndexModel::qt_metacast +32 (int (*)(...))QHelpIndexModel::qt_metacall +40 (int (*)(...))QHelpIndexModel::~QHelpIndexModel +48 (int (*)(...))QHelpIndexModel::~QHelpIndexModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QStringListModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QStringListModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStringListModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QStringListModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QStringListModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStringListModel::flags +336 (int (*)(...))QStringListModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QHelpIndexModel + size=48 align=8 + base size=48 base align=8 +QHelpIndexModel (0x0x7ff6d386bd68) 0 + vptr=((& QHelpIndexModel::_ZTV15QHelpIndexModel) + 16) + QStringListModel (0x0x7ff6d386bdd0) 0 + primary-for QHelpIndexModel (0x0x7ff6d386bd68) + QAbstractListModel (0x0x7ff6d386be38) 0 + primary-for QStringListModel (0x0x7ff6d386bdd0) + QAbstractItemModel (0x0x7ff6d386bea0) 0 + primary-for QAbstractListModel (0x0x7ff6d386be38) + QObject (0x0x7ff6d3943240) 0 + primary-for QAbstractItemModel (0x0x7ff6d386bea0) + +Class QHelpIndexWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpIndexWidget::QPrivateSignal (0x0x7ff6d3943420) 0 empty + +Vtable for QHelpIndexWidget +QHelpIndexWidget::_ZTV16QHelpIndexWidget: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QHelpIndexWidget) +16 (int (*)(...))QHelpIndexWidget::metaObject +24 (int (*)(...))QHelpIndexWidget::qt_metacast +32 (int (*)(...))QHelpIndexWidget::qt_metacall +40 (int (*)(...))QHelpIndexWidget::~QHelpIndexWidget +48 (int (*)(...))QHelpIndexWidget::~QHelpIndexWidget +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI16QHelpIndexWidget) +800 (int (*)(...))QHelpIndexWidget::_ZThn16_N16QHelpIndexWidgetD1Ev +808 (int (*)(...))QHelpIndexWidget::_ZThn16_N16QHelpIndexWidgetD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpIndexWidget + size=40 align=8 + base size=40 base align=8 +QHelpIndexWidget (0x0x7ff6d386bf08) 0 + vptr=((& QHelpIndexWidget::_ZTV16QHelpIndexWidget) + 16) + QListView (0x0x7ff6d386bf70) 0 + primary-for QHelpIndexWidget (0x0x7ff6d386bf08) + QAbstractItemView (0x0x7ff6d395b000) 0 + primary-for QListView (0x0x7ff6d386bf70) + QAbstractScrollArea (0x0x7ff6d395b068) 0 + primary-for QAbstractItemView (0x0x7ff6d395b000) + QFrame (0x0x7ff6d395b0d0) 0 + primary-for QAbstractScrollArea (0x0x7ff6d395b068) + QWidget (0x0x7ff6d38a6c40) 0 + primary-for QFrame (0x0x7ff6d395b0d0) + QObject (0x0x7ff6d3943360) 0 + primary-for QWidget (0x0x7ff6d38a6c40) + QPaintDevice (0x0x7ff6d39433c0) 16 + vptr=((& QHelpIndexWidget::_ZTV16QHelpIndexWidget) + 800) + +Class QHelpLink + size=32 align=8 + base size=32 base align=8 +QHelpLink (0x0x7ff6d39434e0) 0 + +Class QHelpSearchQuery + size=32 align=8 + base size=32 base align=8 +QHelpSearchQuery (0x0x7ff6d3943540) 0 + +Class QHelpSearchResult + size=8 align=8 + base size=8 base align=8 +QHelpSearchResult (0x0x7ff6d3943e40) 0 + +Class QHelpSearchEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpSearchEngine::QPrivateSignal (0x0x7ff6d3943f60) 0 empty + +Vtable for QHelpSearchEngine +QHelpSearchEngine::_ZTV17QHelpSearchEngine: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QHelpSearchEngine) +16 (int (*)(...))QHelpSearchEngine::metaObject +24 (int (*)(...))QHelpSearchEngine::qt_metacast +32 (int (*)(...))QHelpSearchEngine::qt_metacall +40 (int (*)(...))QHelpSearchEngine::~QHelpSearchEngine +48 (int (*)(...))QHelpSearchEngine::~QHelpSearchEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHelpSearchEngine + size=24 align=8 + base size=24 base align=8 +QHelpSearchEngine (0x0x7ff6d395b410) 0 + vptr=((& QHelpSearchEngine::_ZTV17QHelpSearchEngine) + 16) + QObject (0x0x7ff6d3943f00) 0 + primary-for QHelpSearchEngine (0x0x7ff6d395b410) + +Class QHelpSearchQueryWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpSearchQueryWidget::QPrivateSignal (0x0x7ff6d398d120) 0 empty + +Vtable for QHelpSearchQueryWidget +QHelpSearchQueryWidget::_ZTV22QHelpSearchQueryWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QHelpSearchQueryWidget) +16 (int (*)(...))QHelpSearchQueryWidget::metaObject +24 (int (*)(...))QHelpSearchQueryWidget::qt_metacast +32 (int (*)(...))QHelpSearchQueryWidget::qt_metacall +40 (int (*)(...))QHelpSearchQueryWidget::~QHelpSearchQueryWidget +48 (int (*)(...))QHelpSearchQueryWidget::~QHelpSearchQueryWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QHelpSearchQueryWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QHelpSearchQueryWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI22QHelpSearchQueryWidget) +448 (int (*)(...))QHelpSearchQueryWidget::_ZThn16_N22QHelpSearchQueryWidgetD1Ev +456 (int (*)(...))QHelpSearchQueryWidget::_ZThn16_N22QHelpSearchQueryWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpSearchQueryWidget + size=48 align=8 + base size=48 base align=8 +QHelpSearchQueryWidget (0x0x7ff6d395b478) 0 + vptr=((& QHelpSearchQueryWidget::_ZTV22QHelpSearchQueryWidget) + 16) + QWidget (0x0x7ff6d3967070) 0 + primary-for QHelpSearchQueryWidget (0x0x7ff6d395b478) + QObject (0x0x7ff6d398d060) 0 + primary-for QWidget (0x0x7ff6d3967070) + QPaintDevice (0x0x7ff6d398d0c0) 16 + vptr=((& QHelpSearchQueryWidget::_ZTV22QHelpSearchQueryWidget) + 448) + +Class QHelpSearchResultWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpSearchResultWidget::QPrivateSignal (0x0x7ff6d398d2a0) 0 empty + +Vtable for QHelpSearchResultWidget +QHelpSearchResultWidget::_ZTV23QHelpSearchResultWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QHelpSearchResultWidget) +16 (int (*)(...))QHelpSearchResultWidget::metaObject +24 (int (*)(...))QHelpSearchResultWidget::qt_metacast +32 (int (*)(...))QHelpSearchResultWidget::qt_metacall +40 (int (*)(...))QHelpSearchResultWidget::~QHelpSearchResultWidget +48 (int (*)(...))QHelpSearchResultWidget::~QHelpSearchResultWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QHelpSearchResultWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI23QHelpSearchResultWidget) +448 (int (*)(...))QHelpSearchResultWidget::_ZThn16_N23QHelpSearchResultWidgetD1Ev +456 (int (*)(...))QHelpSearchResultWidget::_ZThn16_N23QHelpSearchResultWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpSearchResultWidget + size=48 align=8 + base size=48 base align=8 +QHelpSearchResultWidget (0x0x7ff6d395b4e0) 0 + vptr=((& QHelpSearchResultWidget::_ZTV23QHelpSearchResultWidget) + 16) + QWidget (0x0x7ff6d39670e0) 0 + primary-for QHelpSearchResultWidget (0x0x7ff6d395b4e0) + QObject (0x0x7ff6d398d1e0) 0 + primary-for QWidget (0x0x7ff6d39670e0) + QPaintDevice (0x0x7ff6d398d240) 16 + vptr=((& QHelpSearchResultWidget::_ZTV23QHelpSearchResultWidget) + 448) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d39a4720) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d39a4a80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d39a4cc0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d39b9000) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d39b91e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d39b9540) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d39b96c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d39b9a20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d39b9c00) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d39b9f60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d39d8180) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d39d84e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d39d86c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d39d8a20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d39d8c00) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d39d8f60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d3a11840) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d3a11ba0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d3a11d20) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d3a290c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d3a29240) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d3a295a0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d3a29720) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d3a29a80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d3a29c00) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d3a29f60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d3a45120) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d3a45480) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d3a45600) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d3a45960) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7ff6d3a45ae0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7ff6d3a45e40) 0 empty + diff --git a/tests/auto/bic/data/QtHelp.6.1.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtHelp.6.1.0.linux-gcc-amd64.txt new file mode 100644 index 0000000..f215ac8 --- /dev/null +++ b/tests/auto/bic/data/QtHelp.6.1.0.linux-gcc-amd64.txt @@ -0,0 +1,20259 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f5f663e32a0) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f5f66433a80) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f5f66433cc0) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7f5f66463de0) 0 empty + +Class std::__make_unsigned_selector_base + size=1 align=1 + base size=0 base align=1 +std::__make_unsigned_selector_base (0x0x7f5f664be600) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f5f6673a420) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f5f6673a4e0) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7f5f6673a9c0) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7f5f6673aa20) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7f5f6673aa80) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7f5f6673aae0) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7f5f6673ab40) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f5f6673ac00) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f5f6673acc0) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f5f6673ad80) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f5f6673ae40) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f5f667701e0) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7f5f66770540) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7f5f667705a0) 0 empty + +Class std::__swappable_with_details::__do_is_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_swappable_with_impl (0x0x7f5f66770840) 0 empty + +Class std::__swappable_with_details::__do_is_nothrow_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_nothrow_swappable_with_impl (0x0x7f5f667708a0) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7f5f667bb120) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f5f668046c0) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7f5f667ac888) 0 empty + std::__nonesuch (0x0x7f5f66804ba0) 0 empty + +Class std::in_place_t + size=1 align=1 + base size=0 base align=1 +std::in_place_t (0x0x7f5f66886900) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f5f66886ba0) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f5f66886c00) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f5f668e6960) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f5f668e69c0) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f5f667acdd0) 0 empty + std::input_iterator_tag (0x0x7f5f668e6a20) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f5f667ace38) 0 empty + std::forward_iterator_tag (0x0x7f5f667acea0) 0 empty + std::input_iterator_tag (0x0x7f5f668e6a80) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f5f667acf08) 0 empty + std::bidirectional_iterator_tag (0x0x7f5f667acf70) 0 empty + std::forward_iterator_tag (0x0x7f5f66907000) 0 empty + std::input_iterator_tag (0x0x7f5f668e6ae0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f5f6659d7e0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f5f6659d900) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f5f6659dc00) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f5f6659df00) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f5f665d1060) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f5f6665b840) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f5f6665bba0) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f5f6665bc00) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f5f6665bcc0) 0 + +Class __pthread_internal_slist + size=8 align=8 + base size=8 base align=8 +__pthread_internal_slist (0x0x7f5f6665bd20) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7f5f6665bd80) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7f5f6665bde0) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7f5f6665be40) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f5f66699120) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f5f666993c0) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f5f66699420) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f5f6594f1e0) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f5f669073a8) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7f5f6594f3c0) 0 nearly-empty + primary-for std::bad_exception (0x0x7f5f669073a8) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f5f6594f5a0) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f5f66907410) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7f5f6594f960) 0 nearly-empty + primary-for std::bad_cast (0x0x7f5f66907410) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f5f66907478) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7f5f6594fb40) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f5f66907478) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f5f6594fd20) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f5f6598a2a0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f5f669074e0) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7f5f6598a960) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f5f669074e0) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f5f66907548) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7f5f669075b0) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f5f66907548) + std::exception (0x0x7f5f6598ab40) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f5f669075b0) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f5f6598ad20) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7f5f6598af60) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f5f65a40720) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f5f6561eae0) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f5f6561eba0) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f5f65691a80) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f5f65691b40) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f5f65691ba0) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f5f65691c00) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f5f65691c60) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f5f65691d80) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f5f65691de0) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f5f65354480) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f5f65354600) 0 empty + +Class _G_fpos_t + size=16 align=8 + base size=16 base align=8 +_G_fpos_t (0x0x7f5f65178480) 0 + +Class _G_fpos64_t + size=16 align=8 + base size=16 base align=8 +_G_fpos64_t (0x0x7f5f651784e0) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f5f65178540) 0 + +Class _IO_cookie_io_functions_t + size=32 align=8 + base size=32 base align=8 +_IO_cookie_io_functions_t (0x0x7f5f651785a0) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f5f64d8fd20) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f5f64dc0548) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7f5f64d8fde0) 0 nearly-empty + primary-for std::logic_error (0x0x7f5f64dc0548) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f5f64dc05b0) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7f5f64dc0618) 0 + primary-for std::domain_error (0x0x7f5f64dc05b0) + std::exception (0x0x7f5f64d8fe40) 0 nearly-empty + primary-for std::logic_error (0x0x7f5f64dc0618) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f5f64dc0680) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7f5f64dc06e8) 0 + primary-for std::invalid_argument (0x0x7f5f64dc0680) + std::exception (0x0x7f5f64d8fea0) 0 nearly-empty + primary-for std::logic_error (0x0x7f5f64dc06e8) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f5f64dc0750) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7f5f64dc07b8) 0 + primary-for std::length_error (0x0x7f5f64dc0750) + std::exception (0x0x7f5f64d8ff00) 0 nearly-empty + primary-for std::logic_error (0x0x7f5f64dc07b8) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f5f64dc0820) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7f5f64dc0888) 0 + primary-for std::out_of_range (0x0x7f5f64dc0820) + std::exception (0x0x7f5f64d8ff60) 0 nearly-empty + primary-for std::logic_error (0x0x7f5f64dc0888) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f5f64dc08f0) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7f5f64df3000) 0 nearly-empty + primary-for std::runtime_error (0x0x7f5f64dc08f0) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f5f64dc0958) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7f5f64dc09c0) 0 + primary-for std::range_error (0x0x7f5f64dc0958) + std::exception (0x0x7f5f64df3060) 0 nearly-empty + primary-for std::runtime_error (0x0x7f5f64dc09c0) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f5f64dc0a28) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7f5f64dc0a90) 0 + primary-for std::overflow_error (0x0x7f5f64dc0a28) + std::exception (0x0x7f5f64df30c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f5f64dc0a90) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f5f64dc0af8) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7f5f64dc0b60) 0 + primary-for std::underflow_error (0x0x7f5f64dc0af8) + std::exception (0x0x7f5f64df3120) 0 nearly-empty + primary-for std::runtime_error (0x0x7f5f64dc0b60) + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7f5f64e30420) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f5f64e30480) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f5f64e30600) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f5f64e306c0) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f5f64dc0dd0) 0 + std::__uses_alloc_base (0x0x7f5f64e30660) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f5f64ba7cc0) 0 empty + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f5f64c6f208) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7f5f64c7a3c0) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f5f64c6f208) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f5f64c7a480) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f5f64c7a4e0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f5f64c7a7e0) 0 + +Class std::__detail::_Identity + size=1 align=1 + base size=0 base align=1 +std::__detail::_Identity (0x0x7f5f6494d660) 0 empty + +Class std::__detail::_Select1st + size=1 align=1 + base size=0 base align=1 +std::__detail::_Select1st (0x0x7f5f6494d720) 0 empty + +Class std::__detail::_Hash_node_base + size=8 align=8 + base size=8 base align=8 +std::__detail::_Hash_node_base (0x0x7f5f6494dc00) 0 + +Class std::__detail::_Mod_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mod_range_hashing (0x0x7f5f64977a80) 0 empty + +Class std::__detail::_Default_ranged_hash + size=1 align=1 + base size=0 base align=1 +std::__detail::_Default_ranged_hash (0x0x7f5f64977b40) 0 empty + +Class std::__detail::_Prime_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Prime_rehash_policy (0x0x7f5f64977ba0) 0 + +Class std::__detail::_Mask_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mask_range_hashing (0x0x7f5f64977f60) 0 empty + +Class std::__detail::_Power2_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Power2_rehash_policy (0x0x7f5f6499a0c0) 0 + +Class std::__detail::_Equality_base + size=1 align=1 + base size=0 base align=1 +std::__detail::_Equality_base (0x0x7f5f6478b180) 0 empty + +Class std::_Enable_default_constructor_tag + size=1 align=1 + base size=0 base align=1 +std::_Enable_default_constructor_tag (0x0x7f5f6478ba20) 0 empty + +Class std::nullopt_t + size=1 align=1 + base size=0 base align=1 +std::nullopt_t (0x0x7f5f647cb420) 0 empty + +Vtable for std::bad_optional_access +std::bad_optional_access::_ZTVSt19bad_optional_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt19bad_optional_access) +16 (int (*)(...))std::bad_optional_access::~bad_optional_access +24 (int (*)(...))std::bad_optional_access::~bad_optional_access +32 (int (*)(...))std::bad_optional_access::what + +Class std::bad_optional_access + size=8 align=8 + base size=8 base align=8 +std::bad_optional_access (0x0x7f5f6479e138) 0 nearly-empty + vptr=((& std::bad_optional_access::_ZTVSt19bad_optional_access) + 16) + std::exception (0x0x7f5f647cb660) 0 nearly-empty + primary-for std::bad_optional_access (0x0x7f5f6479e138) + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f5f64298000) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f5f6415fc30) 0 + std::iterator (0x0x7f5f64298780) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f5f6415fd00) 0 + std::_Bit_iterator_base (0x0x7f5f6415fd68) 0 + std::iterator (0x0x7f5f64298d20) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f5f6415fe38) 0 + std::_Bit_iterator_base (0x0x7f5f6415fea0) 0 + std::iterator (0x0x7f5f642ce540) 0 empty + +Class __pstl::execution::v1::sequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::sequenced_policy (0x0x7f5f640aaa20) 0 empty + +Class __pstl::execution::v1::parallel_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_policy (0x0x7f5f640aaba0) 0 empty + +Class __pstl::execution::v1::parallel_unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_unsequenced_policy (0x0x7f5f640aad20) 0 empty + +Class __pstl::execution::v1::unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::unsequenced_policy (0x0x7f5f640aaea0) 0 empty + +Class std::__detail::__variant::__variant_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_cookie (0x0x7f5f63ddc9c0) 0 empty + +Class std::__detail::__variant::__variant_idx_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_idx_cookie (0x0x7f5f63ddca20) 0 empty + +Class std::monostate + size=1 align=1 + base size=0 base align=1 +std::monostate (0x0x7f5f63eb24e0) 0 empty + +Vtable for std::bad_variant_access +std::bad_variant_access::_ZTVSt18bad_variant_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt18bad_variant_access) +16 (int (*)(...))std::bad_variant_access::~bad_variant_access +24 (int (*)(...))std::bad_variant_access::~bad_variant_access +32 (int (*)(...))std::bad_variant_access::what + +Class std::bad_variant_access + size=16 align=8 + base size=16 base align=8 +std::bad_variant_access (0x0x7f5f63e7f270) 0 + vptr=((& std::bad_variant_access::_ZTVSt18bad_variant_access) + 16) + std::exception (0x0x7f5f63ee2a20) 0 nearly-empty + primary-for std::bad_variant_access (0x0x7f5f63e7f270) + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f5f63ba2420) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f5f63ba2480) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f5f63ba2720) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f5f63ba2f60) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f5f63c12060) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f5f63c8de40) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f5f63c3d4e0) 0 + std::__atomic_flag_base (0x0x7f5f63c8dea0) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f5f6381a7b8) 0 + QAtomicInteger (0x0x7f5f6381a820) 0 + QBasicAtomicInteger (0x0x7f5f6380bd80) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f5f62fd0060) 0 empty + +Class QKeyCombination + size=4 align=4 + base size=4 base align=4 +QKeyCombination (0x0x7f5f62fd00c0) 0 + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f5f630933c0) 0 + +Class QMethodRawArguments + size=8 align=8 + base size=8 base align=8 +QMethodRawArguments (0x0x7f5f63093ae0) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f5f63093b40) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f5f63012c30) 0 + QGenericArgument (0x0x7f5f63093de0) 0 + +Class QMetaObject::SuperData + size=8 align=8 + base size=8 base align=8 +QMetaObject::SuperData (0x0x7f5f630c9300) 0 + +Class QMetaObject::Data + size=56 align=8 + base size=56 base align=8 +QMetaObject::Data (0x0x7f5f630c9360) 0 + +Class QMetaObject + size=56 align=8 + base size=56 base align=8 +QMetaObject (0x0x7f5f630c92a0) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f5f630c9cc0) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f5f62d41720) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f5f62d6a120) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f5f62e23c00) 0 + +Class QArrayData + size=16 align=8 + base size=16 base align=8 +QArrayData (0x0x7f5f62e23f60) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f5f62ed1960) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f5f62ed1a80) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f5f62ed1e40) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f5f62f16120) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f5f62f16300) 0 + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f5f62b62420) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f5f62b62780) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f5f62b62f60) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f5f62bb6138) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7f5f62bb61a0) 0 + primary-for std::system_error (0x0x7f5f62bb6138) + std::exception (0x0x7f5f62ba5b40) 0 nearly-empty + primary-for std::runtime_error (0x0x7f5f62bb61a0) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f5f62bb64e0) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7f5f62bb6548) 0 + primary-for std::ios_base::failure (0x0x7f5f62bb64e0) + std::runtime_error (0x0x7f5f62bb65b0) 0 + primary-for std::system_error (0x0x7f5f62bb6548) + std::exception (0x0x7f5f62c01300) 0 nearly-empty + primary-for std::runtime_error (0x0x7f5f62bb65b0) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f5f62c01360) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f5f62c013c0) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f5f62c01420) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f5f62c012a0) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f5f62cd6060) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f5f6298e360) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f5f62905138 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f5f62905208 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7f5f62905750 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f5f62905820 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f5f62905dd0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7f5f6252cd20) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f5f62905dd0) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f5f62905e38) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7f5f6252ce40) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f5f62905e38) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f5f62905ea0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7f5f6252cf60) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f5f62905ea0) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f5f62905f70) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7f5f625680c0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f5f62905f70) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f5f62568960) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f5f62568cc0) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f5f625689c0) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f5f62594300) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f5f629053a8) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7f5f62615ae0) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f5f629053a8) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f5f626858a0) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7f5f62685de0) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f5f623c0c00) 0 + +Class QByteArrayView + size=16 align=8 + base size=16 base align=8 +QByteArrayView (0x0x7f5f62140300) 0 + +Class QByteArray + size=24 align=8 + base size=24 base align=8 +QByteArray (0x0x7f5f62229cc0) 0 + +Class QByteArray::FromBase64Result + size=32 align=8 + base size=28 base align=8 +QByteArray::FromBase64Result (0x0x7f5f62070f60) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f5f620fab40) 0 + +Class QChar::fromUcs4(char32_t)::R + size=4 align=2 + base size=4 base align=2 +QChar::fromUcs4(char32_t)::R (0x0x7f5f61e649c0) 0 + +Class QtPrivate::hide_char8_t + size=1 align=1 + base size=0 base align=1 +QtPrivate::hide_char8_t (0x0x7f5f61e64de0) 0 empty + +Class QtPrivate::wrap_char + size=1 align=1 + base size=0 base align=1 +QtPrivate::wrap_char (0x0x7f5f61e64e40) 0 empty + +Class QAnyStringView + size=16 align=8 + base size=16 base align=8 +QAnyStringView (0x0x7f5f61f07000) 0 + +Class QStringTokenizerBaseBase::tokenizer_state + size=24 align=8 + base size=24 base align=8 +QStringTokenizerBaseBase::tokenizer_state (0x0x7f5f61be5600) 0 + +Class QStringTokenizerBaseBase + size=8 align=4 + base size=8 base align=4 +QStringTokenizerBaseBase (0x0x7f5f61be55a0) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f5f61c2f600) 0 + +Class QString + size=24 align=8 + base size=24 base align=8 +QString (0x0x7f5f6199c780) 0 + +Class QtPrivate::ArgBase + size=1 align=1 + base size=1 base align=1 +QtPrivate::ArgBase (0x0x7f5f6159ab40) 0 + +Class QtPrivate::QStringViewArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QStringViewArg (0x0x7f5f61599d68) 0 + QtPrivate::ArgBase (0x0x7f5f6159aba0) 0 + +Class QtPrivate::QLatin1StringArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QLatin1StringArg (0x0x7f5f61599e38) 0 + QtPrivate::ArgBase (0x0x7f5f6159ade0) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f5f61649240) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f5f61649300) 0 empty + +Class QStringMatcher + size=312 align=8 + base size=312 base align=8 +QStringMatcher (0x0x7f5f6144d7e0) 0 + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f5f614e7960) 0 empty + +Class QtPrivate::CompareAgainstLiteralZero + size=1 align=1 + base size=0 base align=1 +QtPrivate::CompareAgainstLiteralZero (0x0x7f5f61514720) 0 empty + +Class QPartialOrdering + size=1 align=1 + base size=1 base align=1 +QPartialOrdering (0x0x7f5f61514960) 0 + +Class QIODeviceBase + size=1 align=1 + base size=0 base align=1 +QIODeviceBase (0x0x7f5f611a6a80) 0 empty + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f5f616cda28) 0 + QIODeviceBase (0x0x7f5f611a6ae0) 0 empty + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f5f611a6c60) 0 + +Class QtMetaContainerPrivate::QMetaContainerInterface + size=120 align=8 + base size=120 base align=8 +QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f5f612b30c0) 0 + +Class QtMetaContainerPrivate::QMetaSequenceInterface + size=216 align=8 + base size=216 base align=8 +QtMetaContainerPrivate::QMetaSequenceInterface (0x0x7f5f61274208) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f5f612b3180) 0 + +Class QtMetaContainerPrivate::QMetaAssociationInterface + size=240 align=8 + base size=240 base align=8 +QtMetaContainerPrivate::QMetaAssociationInterface (0x0x7f5f612742d8) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f5f612b3240) 0 + +Class QMetaContainer + size=8 align=8 + base size=8 base align=8 +QMetaContainer (0x0x7f5f60f56d20) 0 + +Class QMetaSequence + size=8 align=8 + base size=8 base align=8 +QMetaSequence (0x0x7f5f61274680) 0 + QMetaContainer (0x0x7f5f60f56f00) 0 + +Class QMetaAssociation + size=8 align=8 + base size=8 base align=8 +QMetaAssociation (0x0x7f5f612746e8) 0 + QMetaContainer (0x0x7f5f60f76300) 0 + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f5f61074660) 0 + +Class std::__detail::_List_node_header + size=24 align=8 + base size=24 base align=8 +std::__detail::_List_node_header (0x0x7f5f6100c750) 0 + std::__detail::_List_node_base (0x0x7f5f610746c0) 0 + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f5f60d4a780) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7f5f60d4aae0) 0 + +Class QMetaType + size=8 align=8 + base size=8 base align=8 +QMetaType (0x0x7f5f60bd8120) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f5f60c31780) 0 + +Class QtPrivate::QMetaTypeInterface + size=112 align=8 + base size=112 base align=8 +QtPrivate::QMetaTypeInterface (0x0x7f5f60746600) 0 + +Class QtPrivate::QTypeNormalizer + size=16 align=8 + base size=16 base align=8 +QtPrivate::QTypeNormalizer (0x0x7f5f60746660) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f5f60651d20) 0 + +Class QAdoptSharedDataTag + size=1 align=1 + base size=0 base align=1 +QAdoptSharedDataTag (0x0x7f5f606850c0) 0 empty + +Class QtPrivate::RefCounted + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCounted (0x0x7f5f606de120) 0 + +Class QPropertyBindingPrivatePtr + size=8 align=8 + base size=8 base align=8 +QPropertyBindingPrivatePtr (0x0x7f5f606de240) 0 + +Class QUntypedPropertyData::InheritsQUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData::InheritsQUntypedPropertyData (0x0x7f5f6032f8a0) 0 empty + +Class QUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData (0x0x7f5f6032f840) 0 empty + +Class QtPrivate::BindingFunctionVTable + size=32 align=8 + base size=32 base align=8 +QtPrivate::BindingFunctionVTable (0x0x7f5f6032f900) 0 + +Class QtPrivate::QPropertyBindingFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::QPropertyBindingFunction (0x0x7f5f6032fd80) 0 + +Class QtPrivate::QPropertyBindingData + size=8 align=8 + base size=8 base align=8 +QtPrivate::QPropertyBindingData (0x0x7f5f6032fde0) 0 + +Class std::experimental::fundamentals_v2::source_location + size=24 align=8 + base size=24 base align=8 +std::experimental::fundamentals_v2::source_location (0x0x7f5f60358420) 0 + +Class QPropertyBindingSourceLocation + size=24 align=8 + base size=24 base align=8 +QPropertyBindingSourceLocation (0x0x7f5f60358b40) 0 + +Class QPropertyBindingError + size=8 align=8 + base size=8 base align=8 +QPropertyBindingError (0x0x7f5f60358e40) 0 + +Class QUntypedPropertyBinding + size=8 align=8 + base size=8 base align=8 +QUntypedPropertyBinding (0x0x7f5f60358f60) 0 + +Class QPropertyObserverBase + size=24 align=8 + base size=24 base align=8 +QPropertyObserverBase (0x0x7f5f603a31e0) 0 + +Class QPropertyObserver + size=24 align=8 + base size=24 base align=8 +QPropertyObserver (0x0x7f5f60339820) 0 + QPropertyObserverBase (0x0x7f5f603a3360) 0 + +Class QtPrivate::QBindableInterface + size=56 align=8 + base size=56 base align=8 +QtPrivate::QBindableInterface (0x0x7f5f603f12a0) 0 + +Class QUntypedBindable + size=16 align=8 + base size=16 base align=8 +QUntypedBindable (0x0x7f5f60410420) 0 + +Class QBindingStatus + size=16 align=8 + base size=16 base align=8 +QBindingStatus (0x0x7f5f6043f840) 0 + +Class QBindingStorage + size=16 align=8 + base size=16 base align=8 +QBindingStorage (0x0x7f5f6043f8a0) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f5f6014a540) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f5f601fe2a0) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=80 align=8 + base size=80 base align=8 +QObjectData (0x0x7f5f6024bc00) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f5f602ec5a0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f5f602ec540) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f5f5ffa34e0) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f5f5ffa3d80) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f5f602a8a90) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7f5f5ffa3d20) 0 + primary-for QAbstractAnimation (0x0x7f5f602a8a90) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f5f5ffde120) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f5f602a8af8) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7f5f5ffde0c0) 0 + primary-for QAnimationDriver (0x0x7f5f602a8af8) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f5f5ffde300) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f5f602a8b60) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7f5f5ffde2a0) 0 + primary-for QEventLoop (0x0x7f5f602a8b60) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f5f5ffde780) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f5f5ffde840) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f5f5ffde8a0) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QAbstractEventDispatcher::startingUp +200 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f5f602a8d00) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7f5f5ffde7e0) 0 + primary-for QAbstractEventDispatcher (0x0x7f5f602a8d00) + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f5f60066060) 0 empty + +Class QStringConverterBase::State + size=48 align=8 + base size=48 base align=8 +QStringConverterBase::State (0x0x7f5f5ff0eea0) 0 + +Class QStringConverterBase + size=1 align=1 + base size=0 base align=1 +QStringConverterBase (0x0x7f5f5ff0ee40) 0 empty + +Class QStringConverter::Interface + size=40 align=8 + base size=40 base align=8 +QStringConverter::Interface (0x0x7f5f5fb35a20) 0 + +Class QStringConverter + size=56 align=8 + base size=56 base align=8 +QStringConverter (0x0x7f5f6005de38) 0 + QStringConverterBase (0x0x7f5f5fb359c0) 0 empty + +Class QStringEncoder + size=56 align=8 + base size=56 base align=8 +QStringEncoder (0x0x7f5f6005dea0) 0 + QStringConverter (0x0x7f5f6005df08) 0 + QStringConverterBase (0x0x7f5f5fb84420) 0 empty + +Class QStringDecoder + size=56 align=8 + base size=56 base align=8 +QStringDecoder (0x0x7f5f6005df70) 0 + QStringConverter (0x0x7f5f5fbb0000) 0 + QStringConverterBase (0x0x7f5f5fba82a0) 0 empty + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f5f5fbb0068) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + QIODeviceBase (0x0x7f5f5fba8f60) 0 empty + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f5f5fbf2660) 0 + +Class QContiguousCacheData + size=40 align=8 + base size=40 base align=8 +QContiguousCacheData (0x0x7f5f5fca3840) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f5f5fcf02a0) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f5f5fcf0420) 0 + +Class QtPrivate::EnableInternalData + size=1 align=1 + base size=0 base align=1 +QtPrivate::EnableInternalData (0x0x7f5f5f9a2600) 0 empty + +Class QDebug::Stream + size=88 align=8 + base size=88 base align=8 +QDebug::Stream (0x0x7f5f5f9c2600) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f5f5f978af8) 0 + QIODeviceBase (0x0x7f5f5f9c25a0) 0 empty + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f5f5faeb540) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f5f5faeb600) 0 empty + +Class QVariant::PrivateShared + size=8 align=8 + base size=8 base align=8 +QVariant::PrivateShared (0x0x7f5f5f8c8060) 0 + +Class QVariant::Private + size=32 align=8 + base size=32 base align=8 +QVariant::Private (0x0x7f5f5f8c80c0) 0 + +Class QVariant + size=32 align=8 + base size=32 base align=8 +QVariant (0x0x7f5f5f8c8000) 0 + +Class QtPrivate::QVariantTypeCoercer + size=32 align=8 + base size=32 base align=8 +QtPrivate::QVariantTypeCoercer (0x0x7f5f5f6867e0) 0 + +Class QVariantConstPointer + size=32 align=8 + base size=32 base align=8 +QVariantConstPointer (0x0x7f5f5f686a20) 0 + +Class QModelRoleData + size=40 align=8 + base size=40 base align=8 +QModelRoleData (0x0x7f5f5f686c00) 0 + +Class QModelRoleDataSpan + size=16 align=8 + base size=16 base align=8 +QModelRoleDataSpan (0x0x7f5f5f6c8b40) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f5f5f70fb40) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f5f5f35fd20) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f5f5f3ee600) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractItemModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractItemModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f5f5f3ebc98) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7f5f5f3ee5a0) 0 + primary-for QAbstractItemModel (0x0x7f5f5f3ebc98) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f5f5f12b300) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractTableModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f5f5f45e548) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7f5f5f45e5b0) 0 + primary-for QAbstractTableModel (0x0x7f5f5f45e548) + QObject (0x0x7f5f5f12b2a0) 0 + primary-for QAbstractItemModel (0x0x7f5f5f45e5b0) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f5f5f12b420) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractListModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f5f5f45e618) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7f5f5f45e680) 0 + primary-for QAbstractListModel (0x0x7f5f5f45e618) + QObject (0x0x7f5f5f12b3c0) 0 + primary-for QAbstractItemModel (0x0x7f5f5f45e680) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f5f5f170840) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f5f5f170900) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QAbstractProxyModel::setSourceModel +416 (int (*)(...))__cxa_pure_virtual +424 (int (*)(...))__cxa_pure_virtual +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f5f5f17ba28) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7f5f5f17ba90) 0 + primary-for QAbstractProxyModel (0x0x7f5f5f17ba28) + QObject (0x0x7f5f5f1708a0) 0 + primary-for QAbstractItemModel (0x0x7f5f5f17ba90) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f5f5f170ae0) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f5f5f17baf8) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7f5f5f17bb60) 0 + primary-for QAnimationGroup (0x0x7f5f5f17baf8) + QObject (0x0x7f5f5f170a80) 0 + primary-for QAbstractAnimation (0x0x7f5f5f17bb60) + +Class QAssociativeIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeIterator (0x0x7f5f5f17bc98) 0 + QIterator (0x0x7f5f5f17bd00) 0 + QBaseIterator (0x0x7f5f5f170f00) 0 + +Class QAssociativeConstIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeConstIterator (0x0x7f5f5f17be38) 0 + QConstIterator (0x0x7f5f5f17bea0) 0 + QBaseIterator (0x0x7f5f5f1e0480) 0 + +Class QAssociativeIterable + size=24 align=8 + base size=24 base align=8 +QAssociativeIterable (0x0x7f5f5f17bf70) 0 + QIterable (0x0x7f5f5f1e09c0) 0 + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f5f5f2e74e0) 0 + +Class QBitArray + size=24 align=8 + base size=24 base align=8 +QBitArray (0x0x7f5f5ef42240) 0 + +Class QBitRef + size=16 align=8 + base size=16 base align=8 +QBitRef (0x0x7f5f5ef75180) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f5f5ef9bcc0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f5f5efb1000) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7f5f5ef9bc00) 0 + primary-for QIODevice (0x0x7f5f5efb1000) + QIODeviceBase (0x0x7f5f5ef9bc60) 0 empty + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f5f5efdc060) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f5f5ef99ea0) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7f5f5efb1070) 0 + primary-for QBuffer (0x0x7f5f5ef99ea0) + QObject (0x0x7f5f5ef9bf60) 0 + primary-for QIODevice (0x0x7f5f5efb1070) + QIODeviceBase (0x0x7f5f5efdc000) 0 empty + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f5f5efdc2a0) 0 + +Class QByteArrayMatcher + size=1056 align=8 + base size=1056 base align=8 +QByteArrayMatcher (0x0x7f5f5efdc240) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f5f5efdc420) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f5f5efdc3c0) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f5f5f044c00) 0 + +Class QCalendar::YearMonthDay + size=12 align=4 + base size=12 base align=4 +QCalendar::YearMonthDay (0x0x7f5f5ed569c0) 0 + +Class QCalendar + size=8 align=8 + base size=8 base align=8 +QCalendar (0x0x7f5f5ed56960) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f5f5ed56d20) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f5f5edf9360) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f5f5ee465a0) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f5f5ee46600) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f5f5ee46540) 0 + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7f5f5eecb840) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f5f5eefa120) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f5f5ebaa1e0) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel + size=1 align=1 + base size=0 base align=1 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel (0x0x7f5f5ec04960) 0 empty + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f5f5ec04a20) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator + size=24 align=8 + base size=17 base align=8 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator (0x0x7f5f5ec04ba0) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f5f5ec9bba0) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f5f5e978720) 0 + +Class QCborParserError + size=16 align=8 + base size=16 base align=8 +QCborParserError (0x0x7f5f5e9f08a0) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7f5f5e9f0960) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7f5f5e726240) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7f5f5e760780) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7f5f5e7607e0) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7f5f5e760720) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7f5f5e853d80) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7f5f5e853de0) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7f5f5e853d20) 0 + +Class qfloat16::Wrap + size=2 align=2 + base size=2 base align=2 +qfloat16::Wrap (0x0x7f5f5e666e40) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7f5f5e666de0) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7f5f5e349ea0) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7f5f5e3b6840) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f5f5e3eb2a0) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f5f5e3eb480) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f5f5e48eea0) 0 + +Class QEvent::InputEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::InputEventTag (0x0x7f5f5e515780) 0 empty + +Class QEvent::PointerEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::PointerEventTag (0x0x7f5f5e5157e0) 0 empty + +Class QEvent::SinglePointEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::SinglePointEventTag (0x0x7f5f5e515840) 0 empty + +Vtable for QEvent +QEvent::_ZTV6QEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QEvent + size=16 align=8 + base size=16 base align=8 +QEvent (0x0x7f5f5e515720) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QTimerEvent::clone + +Class QTimerEvent + size=24 align=8 + base size=20 base align=8 +QTimerEvent (0x0x7f5f5e510dd0) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7f5f5e1741e0) 0 + primary-for QTimerEvent (0x0x7f5f5e510dd0) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QChildEvent::clone + +Class QChildEvent + size=24 align=8 + base size=24 base align=8 +QChildEvent (0x0x7f5f5e510e38) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7f5f5e1746c0) 0 + primary-for QChildEvent (0x0x7f5f5e510e38) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDynamicPropertyChangeEvent::clone + +Class QDynamicPropertyChangeEvent + size=40 align=8 + base size=40 base align=8 +QDynamicPropertyChangeEvent (0x0x7f5f5e510ea0) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7f5f5e174ae0) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f5f5e510ea0) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDeferredDeleteEvent::clone + +Class QDeferredDeleteEvent + size=24 align=8 + base size=20 base align=8 +QDeferredDeleteEvent (0x0x7f5f5e510f08) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7f5f5e174d80) 0 + primary-for QDeferredDeleteEvent (0x0x7f5f5e510f08) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f5f5e1aa120) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f5f5e510f70) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7f5f5e1aa0c0) 0 + primary-for QCoreApplication (0x0x7f5f5e510f70) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f5f5e1aa300) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7f5f5e1aa420) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +224 (int (*)(...))QConcatenateTablesProxyModel::mimeData +232 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +240 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QConcatenateTablesProxyModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QConcatenateTablesProxyModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7f5f5e1d4000) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7f5f5e1d4068) 0 + primary-for QConcatenateTablesProxyModel (0x0x7f5f5e1d4000) + QObject (0x0x7f5f5e1aa3c0) 0 + primary-for QAbstractItemModel (0x0x7f5f5e1d4068) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f5f5e1aa5a0) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f5f5e1aa6c0) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f5f5e1aa9c0) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f5f5e2f3f60) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFileDevice::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f5f5e302618) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7f5f5e27d7e0) 0 + primary-for QFileDevice (0x0x7f5f5e302618) + QObject (0x0x7f5f5e2f3ea0) 0 + primary-for QIODevice (0x0x7f5f5e27d7e0) + QIODeviceBase (0x0x7f5f5e2f3f00) 0 empty + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f5f5df28ae0) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f5f5e302a28) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7f5f5e302a90) 0 + primary-for QFile (0x0x7f5f5e302a28) + QIODevice (0x0x7f5f5e311770) 0 + primary-for QFileDevice (0x0x7f5f5e302a90) + QObject (0x0x7f5f5df28a20) 0 + primary-for QIODevice (0x0x7f5f5e311770) + QIODeviceBase (0x0x7f5f5df28a80) 0 empty + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f5f5df28d80) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f5f5e02d7e0) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f5f5e0eba80) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f5f5e0ebe40) 0 + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f5f5ddc3680) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7f5f5ddfc5a0) 0 nearly-empty + primary-for QException (0x0x7f5f5ddc3680) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=16 align=8 + base size=16 base align=8 +QUnhandledException (0x0x7f5f5ddc36e8) 0 + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7f5f5ddc3750) 0 nearly-empty + primary-for QUnhandledException (0x0x7f5f5ddc36e8) + std::exception (0x0x7f5f5ddfc600) 0 nearly-empty + primary-for QException (0x0x7f5f5ddc3750) + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f5f5de44480) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f5f5de444e0) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f5f5de44720) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f5f5de43958) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7f5f5de446c0) 0 + primary-for QFileSelector (0x0x7f5f5de43958) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f5f5de44900) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f5f5de439c0) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7f5f5de448a0) 0 + primary-for QFileSystemWatcher (0x0x7f5f5de439c0) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=9 base align=8 +QRunnable (0x0x7f5f5de44a80) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f5f5de44c60) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f5f5de43a90) 0 + QBasicMutex (0x0x7f5f5dec89c0) 0 + +Class QRecursiveMutex + size=24 align=8 + base size=24 base align=8 +QRecursiveMutex (0x0x7f5f5dec8de0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f5f5db26420) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f5f5db26a20) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f5f5db9d6c0) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f5f5dcb40c0) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f5f5dca8d00) 0 + std::__mutex_base (0x0x7f5f5dcb4120) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f5f5dcb4300) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f5f5dcb4360) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f5f5dcb43c0) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f5f5dcb4de0) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f5f5dca8d68) 0 + std::__recursive_mutex_base (0x0x7f5f5dcb4e40) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f5f5dd5df50) 0 + std::__mutex_base (0x0x7f5f5dcf3240) 0 + std::__timed_mutex_impl (0x0x7f5f5dcf32a0) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f5f5dd0f000) 0 + std::__recursive_mutex_base (0x0x7f5f5dcf3660) 0 + std::__timed_mutex_impl (0x0x7f5f5dcf36c0) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f5f5d9324e0) 0 + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f5f5d932720) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7f5f5d985660) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f5f5d9856c0) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f5f5d985600) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f5f5d760900) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f5f5d760cc0) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f5f5d760d20) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f5f5d8502a0) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f5f5d75ff70) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7f5f5d86b000) 0 + primary-for std::future_error (0x0x7f5f5d75ff70) + std::exception (0x0x7f5f5d8509c0) 0 nearly-empty + primary-for std::logic_error (0x0x7f5f5d86b000) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f5f5d87d120) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f5f5d87d0c0) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f5f5d5c0b40) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f5f5d5cd7b8) 0 + std::__at_thread_exit_elt (0x0x7f5f5d5c0c00) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f5f5d87d2a0) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f5f5d87d060) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f5f5d26dbc8) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7f5f5d2bf900) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f5f5d26dbc8) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f5f5d2f41e0) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f5f5d26df08) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7f5f5d2f4180) 0 + primary-for QThread (0x0x7f5f5d26df08) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f5f5d2f45a0) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f5f5d26df70) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7f5f5d2f4540) 0 + primary-for QThreadPool (0x0x7f5f5d26df70) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f5f5cd45480) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f5f5d08ddd0) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7f5f5cd45420) 0 + primary-for QFutureWatcherBase (0x0x7f5f5d08ddd0) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f5f5cd459c0) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QIdentityProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QIdentityProxyModel::insertRows +272 (int (*)(...))QIdentityProxyModel::insertColumns +280 (int (*)(...))QIdentityProxyModel::removeRows +288 (int (*)(...))QIdentityProxyModel::removeColumns +296 (int (*)(...))QIdentityProxyModel::moveRows +304 (int (*)(...))QIdentityProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QIdentityProxyModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QIdentityProxyModel::setSourceModel +416 (int (*)(...))QIdentityProxyModel::mapToSource +424 (int (*)(...))QIdentityProxyModel::mapFromSource +432 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +440 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f5f5cd5f000) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7f5f5cd5f068) 0 + primary-for QIdentityProxyModel (0x0x7f5f5cd5f000) + QAbstractItemModel (0x0x7f5f5cd5f0d0) 0 + primary-for QAbstractProxyModel (0x0x7f5f5cd5f068) + QObject (0x0x7f5f5cd45960) 0 + primary-for QAbstractItemModel (0x0x7f5f5cd5f0d0) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f5f5cd45b40) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f5f5cdca720) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f5f5cdc5e38) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7f5f5cdca6c0) 0 + primary-for QItemSelectionModel (0x0x7f5f5cdc5e38) + +Class QItemSelection + size=24 align=8 + base size=24 base align=8 +QItemSelection (0x0x7f5f5ce1e340) 0 + QList (0x0x7f5f5ce1e3a8) 0 + QListSpecialMethods (0x0x7f5f5ce1e410) 0 empty + QListSpecialMethodsBase (0x0x7f5f5ce45120) 0 empty + +Class QJsonValue + size=24 align=8 + base size=24 base align=8 +QJsonValue (0x0x7f5f5ce9ae40) 0 + +Class QJsonValueRef + size=16 align=8 + base size=16 base align=8 +QJsonValueRef (0x0x7f5f5ced1300) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::iterator (0x0x7f5f5cf16540) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::const_iterator (0x0x7f5f5cf165a0) 0 + +Class QJsonArray + size=8 align=8 + base size=8 base align=8 +QJsonArray (0x0x7f5f5cf164e0) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f5f5cbabf60) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f5f5cbcc000) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::iterator (0x0x7f5f5c959540) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::const_iterator (0x0x7f5f5c9595a0) 0 + +Class QJsonObject + size=8 align=8 + base size=8 base align=8 +QJsonObject (0x0x7f5f5c9594e0) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f5f5ca150c0) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=24 align=8 + base size=24 base align=8 +QLibrary (0x0x7f5f5ca094e0) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7f5f5ca15060) 0 + primary-for QLibrary (0x0x7f5f5ca094e0) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f5f5ca156c0) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f5f5ca15660) 0 + +Class QTypeRevision + size=2 align=1 + base size=2 base align=1 +QTypeRevision (0x0x7f5f5cb0ce40) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f5f5c77f600) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f5f5c77f6c0) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f5f5c7dbd80) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f5f5c850720) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f5f5c899d20) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f5f5c911540) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f5f5c911780) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f5f5c911720) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f5f5c557660) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f5f5c5c4f60) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f5f5c64ccc0) 0 + +Class QMetaMethod::Data + size=8 align=8 + base size=8 base align=8 +QMetaMethod::Data (0x0x7f5f5c64cd80) 0 + +Class QMetaMethod + size=16 align=8 + base size=16 base align=8 +QMetaMethod (0x0x7f5f5c64cd20) 0 + +Class QMetaEnum::Data + size=8 align=8 + base size=8 base align=8 +QMetaEnum::Data (0x0x7f5f5c6ec000) 0 + +Class QMetaEnum + size=16 align=8 + base size=16 base align=8 +QMetaEnum (0x0x7f5f5c6ccf60) 0 + +Class QMetaProperty::Data + size=8 align=8 + base size=8 base align=8 +QMetaProperty::Data (0x0x7f5f5c714d20) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f5f5c714cc0) 0 + +Class QMetaClassInfo::Data + size=8 align=8 + base size=8 base align=8 +QMetaClassInfo::Data (0x0x7f5f5c33b3c0) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=16 base align=8 +QMetaClassInfo (0x0x7f5f5c33b360) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f5f5c3771e0) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f5f5c365f70) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7f5f5c377180) 0 + primary-for QMimeData (0x0x7f5f5c365f70) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f5f5c377360) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f5f5c3efd80) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f5f5c3efe40) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=40 align=8 + base size=40 base align=8 +QObjectCleanupHandler (0x0x7f5f5c3f0dd0) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7f5f5c3efde0) 0 + primary-for QObjectCleanupHandler (0x0x7f5f5c3f0dd0) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f5f5c3eff00) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f5f5c449d20) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f5f5c459820) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7f5f5c459888) 0 + primary-for QParallelAnimationGroup (0x0x7f5f5c459820) + QAbstractAnimation (0x0x7f5f5c4598f0) 0 + primary-for QAnimationGroup (0x0x7f5f5c459888) + QObject (0x0x7f5f5c449cc0) 0 + primary-for QAbstractAnimation (0x0x7f5f5c4598f0) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f5f5c449f00) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f5f5c459958) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7f5f5c4599c0) 0 + primary-for QPauseAnimation (0x0x7f5f5c459958) + QObject (0x0x7f5f5c449ea0) 0 + primary-for QAbstractAnimation (0x0x7f5f5c4599c0) + +Class QPluginMetaData + size=16 align=8 + base size=16 base align=8 +QPluginMetaData (0x0x7f5f5c47e120) 0 + +Class QStaticPlugin + size=24 align=8 + base size=24 base align=8 +QStaticPlugin (0x0x7f5f5c47e180) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f5f5c49eba0) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f5f5c4aa5b0) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7f5f5c49eb40) 0 + primary-for QPluginLoader (0x0x7f5f5c4aa5b0) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f5f5c49ec60) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f5f5c12f3c0) 0 empty + +Class QProcess::Use_setChildProcessModifier_Instead + size=1 align=1 + base size=0 base align=1 +QProcess::Use_setChildProcessModifier_Instead (0x0x7f5f5c12f420) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 32 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QProcess::writeData +248 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f5f5c128618) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7f5f5c463850) 0 + primary-for QProcess (0x0x7f5f5c128618) + QObject (0x0x7f5f5c12f300) 0 + primary-for QIODevice (0x0x7f5f5c463850) + QIODeviceBase (0x0x7f5f5c12f360) 0 empty + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f5f5c1721e0) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f5f5c128680) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7f5f5c1286e8) 0 + primary-for QVariantAnimation (0x0x7f5f5c128680) + QObject (0x0x7f5f5c172180) 0 + primary-for QAbstractAnimation (0x0x7f5f5c1286e8) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f5f5c172420) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f5f5c1287b8) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7f5f5c128820) 0 + primary-for QPropertyAnimation (0x0x7f5f5c1287b8) + QAbstractAnimation (0x0x7f5f5c128888) 0 + primary-for QVariantAnimation (0x0x7f5f5c128820) + QObject (0x0x7f5f5c1723c0) 0 + primary-for QAbstractAnimation (0x0x7f5f5c128888) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f5f5c20cb40) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f5f5c31b000) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f5f5c2f7f60) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f5f5c0e2780) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f5f5bef86c0) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f5f5bef8660) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f5f5bb54548) 0 + QRandomGenerator (0x0x7f5f5bb70960) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f5f5bb935a0) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f5f5bb937e0) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f5f5bb93cc0) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f5f5bc051e0) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f5f5bc54c00) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f5f5bcd4420) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f5f5b9b3240) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f5f5ba48d80) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f5f5ba9d0c0) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QSaveFile::writeData +248 (int (*)(...))QSaveFile::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f5f5ba107b8) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7f5f5ba10820) 0 + primary-for QSaveFile (0x0x7f5f5ba107b8) + QIODevice (0x0x7f5f5bbe9af0) 0 + primary-for QFileDevice (0x0x7f5f5ba10820) + QObject (0x0x7f5f5ba9d000) 0 + primary-for QIODevice (0x0x7f5f5bbe9af0) + QIODeviceBase (0x0x7f5f5ba9d060) 0 empty + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f5f5ba9d6c0) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f5f5bad7ea0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f5f5b75aba0) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f5f5b76e3a8) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7f5f5b76e410) 0 + primary-for QSequentialAnimationGroup (0x0x7f5f5b76e3a8) + QAbstractAnimation (0x0x7f5f5b76e478) 0 + primary-for QAnimationGroup (0x0x7f5f5b76e410) + QObject (0x0x7f5f5b75ab40) 0 + primary-for QAbstractAnimation (0x0x7f5f5b76e478) + +Class QSequentialIterator + size=16 align=8 + base size=16 base align=8 +QSequentialIterator (0x0x7f5f5b76e5b0) 0 + QIterator (0x0x7f5f5b76e618) 0 + QBaseIterator (0x0x7f5f5b75af00) 0 + +Class QSequentialConstIterator + size=16 align=8 + base size=16 base align=8 +QSequentialConstIterator (0x0x7f5f5b76e6e8) 0 + QConstIterator (0x0x7f5f5b76e750) 0 + QBaseIterator (0x0x7f5f5b7ab480) 0 + +Class QSequentialIterable + size=24 align=8 + base size=24 base align=8 +QSequentialIterable (0x0x7f5f5b76e7b8) 0 + QIterable (0x0x7f5f5b7ab9c0) 0 + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f5f5b8af000) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f5f5b899bc8) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7f5f5b88af60) 0 + primary-for QSettings (0x0x7f5f5b899bc8) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f5f5b8af420) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f5f5b899c30) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7f5f5b8af3c0) 0 + primary-for QSharedMemory (0x0x7f5f5b899c30) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f5f5b8af600) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f5f5b899c98) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7f5f5b8af5a0) 0 + primary-for QSignalMapper (0x0x7f5f5b899c98) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f5f60d6b900) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f5f646d9680) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7f5f60d6b8a0) 0 + primary-for QSocketNotifier (0x0x7f5f646d9680) + +Class QSocketDescriptor + size=4 align=4 + base size=4 base align=4 +QSocketDescriptor (0x0x7f5f60d6ba80) 0 + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f5f5fb58180) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QSortFilterProxyModel::mimeTypes +224 (int (*)(...))QSortFilterProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QSortFilterProxyModel::dropMimeData +248 (int (*)(...))QSortFilterProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QSortFilterProxyModel::insertRows +272 (int (*)(...))QSortFilterProxyModel::insertColumns +280 (int (*)(...))QSortFilterProxyModel::removeRows +288 (int (*)(...))QSortFilterProxyModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSortFilterProxyModel::fetchMore +320 (int (*)(...))QSortFilterProxyModel::canFetchMore +328 (int (*)(...))QSortFilterProxyModel::flags +336 (int (*)(...))QSortFilterProxyModel::sort +344 (int (*)(...))QSortFilterProxyModel::buddy +352 (int (*)(...))QSortFilterProxyModel::match +360 (int (*)(...))QSortFilterProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSortFilterProxyModel::setSourceModel +416 (int (*)(...))QSortFilterProxyModel::mapToSource +424 (int (*)(...))QSortFilterProxyModel::mapFromSource +432 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +440 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +448 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +456 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +464 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f5f646d96e8) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7f5f646d9750) 0 + primary-for QSortFilterProxyModel (0x0x7f5f646d96e8) + QAbstractItemModel (0x0x7f5f646d9820) 0 + primary-for QAbstractProxyModel (0x0x7f5f646d9750) + QObject (0x0x7f5f5fb58120) 0 + primary-for QAbstractItemModel (0x0x7f5f646d9820) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f5f5fb58540) 0 empty + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f5f5fb58e40) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f5f5f3787e0) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f5f5ee0b060) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QStringListModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QStringListModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStringListModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QStringListModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QStringListModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStringListModel::flags +336 (int (*)(...))QStringListModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStringListModel + size=40 align=8 + base size=40 base align=8 +QStringListModel (0x0x7f5f6479e888) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7f5f6479e8f0) 0 + primary-for QStringListModel (0x0x7f5f6479e888) + QAbstractItemModel (0x0x7f5f6479e958) 0 + primary-for QAbstractListModel (0x0x7f5f6479e8f0) + QObject (0x0x7f5f5ee0b000) 0 + primary-for QAbstractItemModel (0x0x7f5f6479e958) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f5f5ee0b120) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f5f5ee0b240) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f5f5ee0b3c0) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QTemporaryFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f5f6479e9c0) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7f5f648f0548) 0 + primary-for QTemporaryFile (0x0x7f5f6479e9c0) + QFileDevice (0x0x7f5f648f0618) 0 + primary-for QFile (0x0x7f5f648f0548) + QIODevice (0x0x7f5f64af19a0) 0 + primary-for QFileDevice (0x0x7f5f648f0618) + QObject (0x0x7f5f5ee0b300) 0 + primary-for QIODevice (0x0x7f5f64af19a0) + QIODeviceBase (0x0x7f5f5ee0b360) 0 empty + +Class QTextBoundaryFinder + size=72 align=8 + base size=72 base align=8 +QTextBoundaryFinder (0x0x7f5f5ee0b600) 0 + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f5f5ee0bba0) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f5f5e7462a0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f5f648f0af8) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7f5f5e746240) 0 + primary-for QTimeLine (0x0x7f5f648f0af8) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f5f5e746480) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=16 align=8 + base size=16 base align=8 +QTimer (0x0x7f5f648f0b60) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7f5f5e746420) 0 + primary-for QTimer (0x0x7f5f648f0b60) + +Class QTimeZone::OffsetData + size=48 align=8 + base size=44 base align=8 +QTimeZone::OffsetData (0x0x7f5f5e8772a0) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f5f5e877240) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f5f5e693300) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f5f6458b478) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7f5f5e6932a0) 0 + primary-for QTranslator (0x0x7f5f6458b478) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7f5f5e6934e0) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QTransposeProxyModel::insertRows +272 (int (*)(...))QTransposeProxyModel::insertColumns +280 (int (*)(...))QTransposeProxyModel::removeRows +288 (int (*)(...))QTransposeProxyModel::removeColumns +296 (int (*)(...))QTransposeProxyModel::moveRows +304 (int (*)(...))QTransposeProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QTransposeProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QTransposeProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QTransposeProxyModel::setSourceModel +416 (int (*)(...))QTransposeProxyModel::mapToSource +424 (int (*)(...))QTransposeProxyModel::mapFromSource +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7f5f6458b4e0) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7f5f6458b5b0) 0 + primary-for QTransposeProxyModel (0x0x7f5f6458b4e0) + QAbstractItemModel (0x0x7f5f6458b618) 0 + primary-for QAbstractProxyModel (0x0x7f5f6458b5b0) + QObject (0x0x7f5f5e693480) 0 + primary-for QAbstractItemModel (0x0x7f5f6458b618) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f5f5e693660) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f5f5de10e40) 0 + +Class QtPrivate::QXmlString + size=24 align=8 + base size=24 base align=8 +QtPrivate::QXmlString (0x0x7f5f5de10f60) 0 + +Class QXmlStreamAttribute + size=104 align=8 + base size=97 base align=8 +QXmlStreamAttribute (0x0x7f5f5cebfde0) 0 + +Class QXmlStreamAttributes + size=24 align=8 + base size=24 base align=8 +QXmlStreamAttributes (0x0x7f5f6437faf8) 0 + QList (0x0x7f5f6437fb60) 0 + QListSpecialMethods (0x0x7f5f6437fa90) 0 empty + QListSpecialMethodsBase (0x0x7f5f5cb31ea0) 0 empty + +Class QXmlStreamNamespaceDeclaration + size=48 align=8 + base size=48 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f5f5caf1720) 0 + +Class QXmlStreamNotationDeclaration + size=72 align=8 + base size=72 base align=8 +QXmlStreamNotationDeclaration (0x0x7f5f5c7f0de0) 0 + +Class QXmlStreamEntityDeclaration + size=120 align=8 + base size=120 base align=8 +QXmlStreamEntityDeclaration (0x0x7f5f5c85a480) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f5f5c589c00) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f5f5c589c60) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f5f5bc0c240) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=16 align=8 + base size=10 base align=8 +QPaintDevice (0x0x7f5f5bc0c420) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16) + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7f5f5bc0cea0) 0 + +Class QColor::CT + size=10 align=2 + base size=10 base align=2 +QColor::CT (0x0x7f5f5ba63ba0) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7f5f5ba63b40) 0 + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7f5f644c3c00) 0 + +Class QPolygon + size=24 align=8 + base size=24 base align=8 +QPolygon (0x0x7f5f643cdc30) 0 + QList (0x0x7f5f643cdbc8) 0 + QListSpecialMethods (0x0x7f5f643cdd00) 0 empty + QListSpecialMethodsBase (0x0x7f5f64cf2900) 0 empty + +Class QPolygonF + size=24 align=8 + base size=24 base align=8 +QPolygonF (0x0x7f5f643d4068) 0 + QList (0x0x7f5f643d40d0) 0 + QListSpecialMethods (0x0x7f5f643d4000) 0 empty + QListSpecialMethodsBase (0x0x7f5f5fd2b540) 0 empty + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7f5f5e59fd20) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7f5f5e59fcc0) 0 + +Class QTransform::Affine + size=8 align=8 + base size=8 base align=8 +QTransform::Affine (0x0x7f5f5c9e7240) 0 + +Class QTransform + size=80 align=8 + base size=74 base align=8 +QTransform (0x0x7f5f5c9e71e0) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=24 align=8 + base size=24 base align=8 +QImage (0x0x7f5f643ec0d0) 0 + vptr=((& QImage::_ZTV6QImage) + 16) + QPaintDevice (0x0x7f5f5b9f3de0) 0 + primary-for QImage (0x0x7f5f643ec0d0) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=24 align=8 + base size=24 base align=8 +QPixmap (0x0x7f5f644cac98) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16) + QPaintDevice (0x0x7f5f5c4de5a0) 0 + primary-for QPixmap (0x0x7f5f644cac98) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7f5f5afaa0c0) 0 + +Vtable for QAbstractFileIconProvider +QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractFileIconProvider) +16 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +24 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +32 (int (*)(...))QAbstractFileIconProvider::icon +40 (int (*)(...))QAbstractFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QAbstractFileIconProvider + size=16 align=8 + base size=16 base align=8 +QAbstractFileIconProvider (0x0x7f5f5f7a73c0) 0 + vptr=((& QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider) + 16) + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7f5f5f7a78a0) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7f5f5ac43600) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7f5f5ac62540) 0 + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7f5f5acafd20) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7f5f644f8bc8) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16) + QObject (0x0x7f5f5acafcc0) 0 + primary-for QScreen (0x0x7f5f644f8bc8) + +Class QInputDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDevice::QPrivateSignal (0x0x7f5f5acaff00) 0 empty + +Vtable for QInputDevice +QInputDevice::_ZTV12QInputDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDevice) +16 (int (*)(...))QInputDevice::metaObject +24 (int (*)(...))QInputDevice::qt_metacast +32 (int (*)(...))QInputDevice::qt_metacall +40 (int (*)(...))QInputDevice::~QInputDevice +48 (int (*)(...))QInputDevice::~QInputDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputDevice + size=16 align=8 + base size=16 base align=8 +QInputDevice (0x0x7f5f644f8c30) 0 + vptr=((& QInputDevice::_ZTV12QInputDevice) + 16) + QObject (0x0x7f5f5acafea0) 0 + primary-for QInputDevice (0x0x7f5f644f8c30) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7f5f5accc840) 0 + +Class QPointingDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPointingDevice::QPrivateSignal (0x0x7f5f5acf71e0) 0 empty + +Vtable for QPointingDevice +QPointingDevice::_ZTV15QPointingDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPointingDevice) +16 (int (*)(...))QPointingDevice::metaObject +24 (int (*)(...))QPointingDevice::qt_metacast +32 (int (*)(...))QPointingDevice::qt_metacall +40 (int (*)(...))QPointingDevice::~QPointingDevice +48 (int (*)(...))QPointingDevice::~QPointingDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPointingDevice + size=16 align=8 + base size=16 base align=8 +QPointingDevice (0x0x7f5f64502bc8) 0 + vptr=((& QPointingDevice::_ZTV15QPointingDevice) + 16) + QInputDevice (0x0x7f5f64502c98) 0 + primary-for QPointingDevice (0x0x7f5f64502bc8) + QObject (0x0x7f5f5acf7180) 0 + primary-for QInputDevice (0x0x7f5f64502c98) + +Class QEventPoint + size=8 align=8 + base size=8 base align=8 +QEventPoint (0x0x7f5f5acf7840) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7f5f5893f660) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QInputEvent + size=40 align=8 + base size=40 base align=8 +QInputEvent (0x0x7f5f64515680) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16) + QEvent (0x0x7f5f58964600) 0 + primary-for QInputEvent (0x0x7f5f64515680) + +Vtable for QPointerEvent +QPointerEvent::_ZTV13QPointerEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPointerEvent) +16 (int (*)(...))QPointerEvent::~QPointerEvent +24 (int (*)(...))QPointerEvent::~QPointerEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QPointerEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QPointerEvent::isBeginEvent +64 (int (*)(...))QPointerEvent::isUpdateEvent +72 (int (*)(...))QPointerEvent::isEndEvent + +Class QPointerEvent + size=64 align=8 + base size=64 base align=8 +QPointerEvent (0x0x7f5f645156e8) 0 + vptr=((& QPointerEvent::_ZTV13QPointerEvent) + 16) + QInputEvent (0x0x7f5f64515750) 0 + primary-for QPointerEvent (0x0x7f5f645156e8) + QEvent (0x0x7f5f58964ae0) 0 + primary-for QInputEvent (0x0x7f5f64515750) + +Vtable for QSinglePointEvent +QSinglePointEvent::_ZTV17QSinglePointEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSinglePointEvent) +16 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +24 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QSinglePointEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QSinglePointEvent + size=80 align=8 + base size=80 base align=8 +QSinglePointEvent (0x0x7f5f64515ea0) 0 + vptr=((& QSinglePointEvent::_ZTV17QSinglePointEvent) + 16) + QPointerEvent (0x0x7f5f64515f08) 0 + primary-for QSinglePointEvent (0x0x7f5f64515ea0) + QInputEvent (0x0x7f5f64515f70) 0 + primary-for QPointerEvent (0x0x7f5f64515f08) + QEvent (0x0x7f5f589999c0) 0 + primary-for QInputEvent (0x0x7f5f64515f70) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QEnterEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QEnterEvent + size=80 align=8 + base size=80 base align=8 +QEnterEvent (0x0x7f5f64516000) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16) + QSinglePointEvent (0x0x7f5f645160d0) 0 + primary-for QEnterEvent (0x0x7f5f64516000) + QPointerEvent (0x0x7f5f64516138) 0 + primary-for QSinglePointEvent (0x0x7f5f645160d0) + QInputEvent (0x0x7f5f645161a0) 0 + primary-for QPointerEvent (0x0x7f5f64516138) + QEvent (0x0x7f5f58999ea0) 0 + primary-for QInputEvent (0x0x7f5f645161a0) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QMouseEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QMouseEvent + size=80 align=8 + base size=80 base align=8 +QMouseEvent (0x0x7f5f64516208) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16) + QSinglePointEvent (0x0x7f5f64516270) 0 + primary-for QMouseEvent (0x0x7f5f64516208) + QPointerEvent (0x0x7f5f645162d8) 0 + primary-for QSinglePointEvent (0x0x7f5f64516270) + QInputEvent (0x0x7f5f64516340) 0 + primary-for QPointerEvent (0x0x7f5f645162d8) + QEvent (0x0x7f5f589b1660) 0 + primary-for QInputEvent (0x0x7f5f64516340) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QHoverEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QHoverEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QHoverEvent + size=96 align=8 + base size=96 base align=8 +QHoverEvent (0x0x7f5f645163a8) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16) + QSinglePointEvent (0x0x7f5f64516410) 0 + primary-for QHoverEvent (0x0x7f5f645163a8) + QPointerEvent (0x0x7f5f64516478) 0 + primary-for QSinglePointEvent (0x0x7f5f64516410) + QInputEvent (0x0x7f5f645164e0) 0 + primary-for QPointerEvent (0x0x7f5f64516478) + QEvent (0x0x7f5f589b1c00) 0 + primary-for QInputEvent (0x0x7f5f645164e0) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QWheelEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QWheelEvent::isBeginEvent +64 (int (*)(...))QWheelEvent::isUpdateEvent +72 (int (*)(...))QWheelEvent::isEndEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7f5f64516548) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16) + QSinglePointEvent (0x0x7f5f645165b0) 0 + primary-for QWheelEvent (0x0x7f5f64516548) + QPointerEvent (0x0x7f5f64516618) 0 + primary-for QSinglePointEvent (0x0x7f5f645165b0) + QInputEvent (0x0x7f5f64516680) 0 + primary-for QPointerEvent (0x0x7f5f64516618) + QEvent (0x0x7f5f589c7060) 0 + primary-for QInputEvent (0x0x7f5f64516680) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTabletEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QTabletEvent + size=96 align=8 + base size=96 base align=8 +QTabletEvent (0x0x7f5f64516750) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16) + QSinglePointEvent (0x0x7f5f645167b8) 0 + primary-for QTabletEvent (0x0x7f5f64516750) + QPointerEvent (0x0x7f5f64516820) 0 + primary-for QSinglePointEvent (0x0x7f5f645167b8) + QInputEvent (0x0x7f5f64516888) 0 + primary-for QPointerEvent (0x0x7f5f64516820) + QEvent (0x0x7f5f589c7540) 0 + primary-for QInputEvent (0x0x7f5f64516888) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QNativeGestureEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7f5f645168f0) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16) + QSinglePointEvent (0x0x7f5f64516958) 0 + primary-for QNativeGestureEvent (0x0x7f5f645168f0) + QPointerEvent (0x0x7f5f645169c0) 0 + primary-for QSinglePointEvent (0x0x7f5f64516958) + QInputEvent (0x0x7f5f64516a28) 0 + primary-for QPointerEvent (0x0x7f5f645169c0) + QEvent (0x0x7f5f589c7de0) 0 + primary-for QInputEvent (0x0x7f5f64516a28) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QKeyEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QKeyEvent + size=88 align=8 + base size=82 base align=8 +QKeyEvent (0x0x7f5f64516a90) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16) + QInputEvent (0x0x7f5f64516af8) 0 + primary-for QKeyEvent (0x0x7f5f64516a90) + QEvent (0x0x7f5f589e5300) 0 + primary-for QInputEvent (0x0x7f5f64516af8) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFocusEvent::clone + +Class QFocusEvent + size=24 align=8 + base size=20 base align=8 +QFocusEvent (0x0x7f5f64516b60) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16) + QEvent (0x0x7f5f589e5900) 0 + primary-for QFocusEvent (0x0x7f5f64516b60) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPaintEvent::clone + +Class QPaintEvent + size=48 align=8 + base size=41 base align=8 +QPaintEvent (0x0x7f5f64516bc8) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16) + QEvent (0x0x7f5f589e5c60) 0 + primary-for QPaintEvent (0x0x7f5f64516bc8) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QMoveEvent::clone + +Class QMoveEvent + size=32 align=8 + base size=32 base align=8 +QMoveEvent (0x0x7f5f64516c30) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16) + QEvent (0x0x7f5f589e5f60) 0 + primary-for QMoveEvent (0x0x7f5f64516c30) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QExposeEvent::clone + +Class QExposeEvent + size=24 align=8 + base size=24 base align=8 +QExposeEvent (0x0x7f5f64516c98) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16) + QEvent (0x0x7f5f589ff300) 0 + primary-for QExposeEvent (0x0x7f5f64516c98) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPlatformSurfaceEvent::clone + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=20 base align=8 +QPlatformSurfaceEvent (0x0x7f5f64516d68) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16) + QEvent (0x0x7f5f589ff5a0) 0 + primary-for QPlatformSurfaceEvent (0x0x7f5f64516d68) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QResizeEvent::clone + +Class QResizeEvent + size=32 align=8 + base size=32 base align=8 +QResizeEvent (0x0x7f5f64516dd0) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16) + QEvent (0x0x7f5f589ff8a0) 0 + primary-for QResizeEvent (0x0x7f5f64516dd0) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QCloseEvent + size=16 align=8 + base size=16 base align=8 +QCloseEvent (0x0x7f5f64516e38) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16) + QEvent (0x0x7f5f589ffc00) 0 + primary-for QCloseEvent (0x0x7f5f64516e38) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QIconDragEvent + size=16 align=8 + base size=16 base align=8 +QIconDragEvent (0x0x7f5f64516ea0) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16) + QEvent (0x0x7f5f589ffc60) 0 + primary-for QIconDragEvent (0x0x7f5f64516ea0) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QShowEvent + size=16 align=8 + base size=16 base align=8 +QShowEvent (0x0x7f5f64516f08) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16) + QEvent (0x0x7f5f589ffcc0) 0 + primary-for QShowEvent (0x0x7f5f64516f08) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QHideEvent + size=16 align=8 + base size=16 base align=8 +QHideEvent (0x0x7f5f64516f70) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16) + QEvent (0x0x7f5f589ffd20) 0 + primary-for QHideEvent (0x0x7f5f64516f70) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QContextMenuEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QContextMenuEvent + size=64 align=8 + base size=57 base align=8 +QContextMenuEvent (0x0x7f5f64518000) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16) + QInputEvent (0x0x7f5f645180d0) 0 + primary-for QContextMenuEvent (0x0x7f5f64518000) + QEvent (0x0x7f5f589ffd80) 0 + primary-for QInputEvent (0x0x7f5f645180d0) + +Class QInputMethodEvent::Attribute + size=48 align=8 + base size=48 base align=8 +QInputMethodEvent::Attribute (0x0x7f5f58a1e360) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodEvent::clone + +Class QInputMethodEvent + size=96 align=8 + base size=96 base align=8 +QInputMethodEvent (0x0x7f5f64518138) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16) + QEvent (0x0x7f5f58a1e300) 0 + primary-for QInputMethodEvent (0x0x7f5f64518138) + +Class QInputMethodQueryEvent::QueryPair + size=40 align=8 + base size=40 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7f5f58a5bb40) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodQueryEvent::clone + +Class QInputMethodQueryEvent + size=48 align=8 + base size=48 base align=8 +QInputMethodQueryEvent (0x0x7f5f6451f410) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16) + QEvent (0x0x7f5f58a5bae0) 0 + primary-for QInputMethodQueryEvent (0x0x7f5f6451f410) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDropEvent::clone + +Class QDropEvent + size=64 align=8 + base size=64 base align=8 +QDropEvent (0x0x7f5f64126680) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16) + QEvent (0x0x7f5f58a97c60) 0 + primary-for QDropEvent (0x0x7f5f64126680) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragMoveEvent + size=80 align=8 + base size=80 base align=8 +QDragMoveEvent (0x0x7f5f641266e8) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16) + QDropEvent (0x0x7f5f64126750) 0 + primary-for QDragMoveEvent (0x0x7f5f641266e8) + QEvent (0x0x7f5f58aa83c0) 0 + primary-for QDropEvent (0x0x7f5f64126750) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragEnterEvent + size=80 align=8 + base size=80 base align=8 +QDragEnterEvent (0x0x7f5f64126820) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16) + QDragMoveEvent (0x0x7f5f64126888) 0 + primary-for QDragEnterEvent (0x0x7f5f64126820) + QDropEvent (0x0x7f5f641268f0) 0 + primary-for QDragMoveEvent (0x0x7f5f64126888) + QEvent (0x0x7f5f58aa8840) 0 + primary-for QDropEvent (0x0x7f5f641268f0) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QDragLeaveEvent + size=16 align=8 + base size=16 base align=8 +QDragLeaveEvent (0x0x7f5f64126958) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16) + QEvent (0x0x7f5f58aa88a0) 0 + primary-for QDragLeaveEvent (0x0x7f5f64126958) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QHelpEvent::clone + +Class QHelpEvent + size=32 align=8 + base size=32 base align=8 +QHelpEvent (0x0x7f5f641269c0) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16) + QEvent (0x0x7f5f58aa8900) 0 + primary-for QHelpEvent (0x0x7f5f641269c0) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QStatusTipEvent::clone + +Class QStatusTipEvent + size=40 align=8 + base size=40 base align=8 +QStatusTipEvent (0x0x7f5f64126a28) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16) + QEvent (0x0x7f5f58aa8de0) 0 + primary-for QStatusTipEvent (0x0x7f5f64126a28) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWhatsThisClickedEvent::clone + +Class QWhatsThisClickedEvent + size=40 align=8 + base size=40 base align=8 +QWhatsThisClickedEvent (0x0x7f5f64126a90) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16) + QEvent (0x0x7f5f58ac10c0) 0 + primary-for QWhatsThisClickedEvent (0x0x7f5f64126a90) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QActionEvent::clone + +Class QActionEvent + size=32 align=8 + base size=32 base align=8 +QActionEvent (0x0x7f5f64126af8) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16) + QEvent (0x0x7f5f58ac1360) 0 + primary-for QActionEvent (0x0x7f5f64126af8) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFileOpenEvent::clone + +Class QFileOpenEvent + size=48 align=8 + base size=48 base align=8 +QFileOpenEvent (0x0x7f5f64126bc8) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16) + QEvent (0x0x7f5f58ac16c0) 0 + primary-for QFileOpenEvent (0x0x7f5f64126bc8) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QToolBarChangeEvent::clone + +Class QToolBarChangeEvent + size=24 align=8 + base size=17 base align=8 +QToolBarChangeEvent (0x0x7f5f64126c30) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16) + QEvent (0x0x7f5f58ac19c0) 0 + primary-for QToolBarChangeEvent (0x0x7f5f64126c30) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QShortcutEvent::clone + +Class QShortcutEvent + size=32 align=8 + base size=29 base align=8 +QShortcutEvent (0x0x7f5f64126c98) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16) + QEvent (0x0x7f5f58ac1cc0) 0 + primary-for QShortcutEvent (0x0x7f5f64126c98) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWindowStateChangeEvent::clone + +Class QWindowStateChangeEvent + size=24 align=8 + base size=21 base align=8 +QWindowStateChangeEvent (0x0x7f5f64126d00) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16) + QEvent (0x0x7f5f58ad9060) 0 + primary-for QWindowStateChangeEvent (0x0x7f5f64126d00) + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTouchEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QTouchEvent::isBeginEvent +64 (int (*)(...))QTouchEvent::isUpdateEvent +72 (int (*)(...))QTouchEvent::isEndEvent + +Class QTouchEvent + size=80 align=8 + base size=79 base align=8 +QTouchEvent (0x0x7f5f64126d68) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16) + QPointerEvent (0x0x7f5f64126dd0) 0 + primary-for QTouchEvent (0x0x7f5f64126d68) + QInputEvent (0x0x7f5f64126e38) 0 + primary-for QPointerEvent (0x0x7f5f64126dd0) + QEvent (0x0x7f5f58ad9360) 0 + primary-for QInputEvent (0x0x7f5f64126e38) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollPrepareEvent::clone + +Class QScrollPrepareEvent + size=96 align=8 + base size=96 base align=8 +QScrollPrepareEvent (0x0x7f5f64126ea0) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16) + QEvent (0x0x7f5f58ad96c0) 0 + primary-for QScrollPrepareEvent (0x0x7f5f64126ea0) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollEvent::clone + +Class QScrollEvent + size=56 align=8 + base size=52 base align=8 +QScrollEvent (0x0x7f5f64126f08) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16) + QEvent (0x0x7f5f58ad9ae0) 0 + primary-for QScrollEvent (0x0x7f5f64126f08) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScreenOrientationChangeEvent::clone + +Class QScreenOrientationChangeEvent + size=32 align=8 + base size=28 base align=8 +QScreenOrientationChangeEvent (0x0x7f5f64127000) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16) + QEvent (0x0x7f5f58ad9ea0) 0 + primary-for QScreenOrientationChangeEvent (0x0x7f5f64127000) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QApplicationStateChangeEvent::clone + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=20 base align=8 +QApplicationStateChangeEvent (0x0x7f5f64127068) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16) + QEvent (0x0x7f5f58af5240) 0 + primary-for QApplicationStateChangeEvent (0x0x7f5f64127068) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7f5f58af5540) 0 + +Class QFontDatabase + size=1 align=1 + base size=0 base align=1 +QFontDatabase (0x0x7f5f587345a0) 0 empty + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7f5f58734780) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7f5f5876e660) 0 + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7f5f5879ad20) 0 + +Class QBrushData + size=104 align=8 + base size=104 base align=8 +QBrushData (0x0x7f5f587bf8a0) 0 + +Class QGradient::QGradientData + size=48 align=8 + base size=48 base align=8 +QGradient::QGradientData (0x0x7f5f587bfae0) 0 + +Class QGradient + size=88 align=8 + base size=88 base align=8 +QGradient (0x0x7f5f587bfa80) 0 + +Class QLinearGradient + size=88 align=8 + base size=88 base align=8 +QLinearGradient (0x0x7f5f5ead8ea0) 0 + QGradient (0x0x7f5f587d79c0) 0 + +Class QRadialGradient + size=88 align=8 + base size=88 base align=8 +QRadialGradient (0x0x7f5f5eb0b208) 0 + QGradient (0x0x7f5f587d7ae0) 0 + +Class QConicalGradient + size=88 align=8 + base size=88 base align=8 +QConicalGradient (0x0x7f5f5eb0b270) 0 + QGradient (0x0x7f5f587d7c00) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7f5f587d7cc0) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7f5f58826d20) 0 + +Class QTextOption + size=24 align=8 + base size=24 base align=8 +QTextOption (0x0x7f5f58826cc0) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7f5f5883aa80) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7f5f5885d780) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7f5f5bad0958) 0 + QTextFormat (0x0x7f5f588b9de0) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7f5f588fe820) 0 + QTextFormat (0x0x7f5f58903300) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7f5f5891e478) 0 + QTextFormat (0x0x7f5f5891d840) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7f5f58536068) 0 + QTextCharFormat (0x0x7f5f585360d0) 0 + QTextFormat (0x0x7f5f58534720) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7f5f58547d00) 0 + QTextFormat (0x0x7f5f5854b5a0) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7f5f58567958) 0 + QTextFrameFormat (0x0x7f5f585679c0) 0 + QTextFormat (0x0x7f5f585689c0) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7f5f58585618) 0 + QTextCharFormat (0x0x7f5f58585680) 0 + QTextFormat (0x0x7f5f58583c60) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7f5f585ae1e0) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7f5f585e3840) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7f5f585e3c60) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7f5f585e3c00) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7f5f5862dd20) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7f5f586411e0) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7f5f58641480) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7f5f58636270) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16) + QObject (0x0x7f5f58641420) 0 + primary-for QTextDocument (0x0x7f5f58636270) + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7f5f58641c60) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7f5f586c9000) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7f5f586c9060) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=80 align=8 + base size=80 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7f5f586c90c0) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7f5f586b95b0) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16) + QObject (0x0x7f5f586b5f60) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f5f586b95b0) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7f5f58719660) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7f5f587198a0) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7f5f58719900) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7f5f58719840) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7f5f5833d180) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7f5f5833d4e0) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7f5f5833d540) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7f5f5833d5a0) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7f5f5833d600) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7f5f5833d660) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7f5f5833d6c0) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7f5f5833d780) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7f5f5833d7e0) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7f5f5871ba90) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16) + QAccessibleEvent (0x0x7f5f5833dd20) 0 + primary-for QAccessibleStateChangeEvent (0x0x7f5f5871ba90) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7f5f5871baf8) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16) + QAccessibleEvent (0x0x7f5f58366120) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f5f5871baf8) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7f5f5871bb60) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f5f5871bbc8) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7f5f5871bb60) + QAccessibleEvent (0x0x7f5f58366540) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f5f5871bbc8) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextInsertEvent (0x0x7f5f5871bc30) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f5f5871bc98) 0 + primary-for QAccessibleTextInsertEvent (0x0x7f5f5871bc30) + QAccessibleEvent (0x0x7f5f583669c0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f5f5871bc98) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextRemoveEvent (0x0x7f5f5871bd00) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f5f5871bd68) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7f5f5871bd00) + QAccessibleEvent (0x0x7f5f58366de0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f5f5871bd68) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=88 align=8 + base size=88 base align=8 +QAccessibleTextUpdateEvent (0x0x7f5f5871bdd0) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f5f5871be38) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7f5f5871bdd0) + QAccessibleEvent (0x0x7f5f5837c240) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f5f5871be38) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleValueChangeEvent (0x0x7f5f5871bea0) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16) + QAccessibleEvent (0x0x7f5f5837c6c0) 0 + primary-for QAccessibleValueChangeEvent (0x0x7f5f5871bea0) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7f5f5871bf08) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16) + QAccessibleEvent (0x0x7f5f5837cae0) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7f5f5871bf08) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7f5f5838f3c0) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7f5f5838f660) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7f5f5871bf70) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16) + QObject (0x0x7f5f5838f600) 0 + primary-for QAccessibleBridgePlugin (0x0x7f5f5871bf70) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0 +24 0 +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7f5f58398000) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16) + QAccessibleInterface (0x0x7f5f5838f720) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f5f58398000) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7f5f58398068) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16) + QAccessibleObject (0x0x7f5f583980d0) 0 + primary-for QAccessibleApplication (0x0x7f5f58398068) + QAccessibleInterface (0x0x7f5f5838f780) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f5f583980d0) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7f5f5838f840) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7f5f58398138) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16) + QObject (0x0x7f5f5838f7e0) 0 + primary-for QAccessiblePlugin (0x0x7f5f58398138) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7f5f5838f960) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7f5f583981a0) 0 + vptr=((& QAction::_ZTV7QAction) + 16) + QObject (0x0x7f5f5838f900) 0 + primary-for QAction (0x0x7f5f583981a0) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7f5f583ba2a0) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7f5f58398208) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16) + QObject (0x0x7f5f583ba240) 0 + primary-for QActionGroup (0x0x7f5f58398208) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7f5f583ba540) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7f5f583bad80) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16) + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=24 align=8 + base size=24 base align=8 +QBitmap (0x0x7f5f583983a8) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16) + QPixmap (0x0x7f5f58398410) 0 + primary-for QBitmap (0x0x7f5f583983a8) + QPaintDevice (0x0x7f5f583ea0c0) 0 + primary-for QPixmap (0x0x7f5f58398410) + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7f5f583f89c0) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7f5f58422ba0) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 47 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))-16 +320 (int (*)(...))(& _ZTI7QWindow) +328 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +336 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7f5f583fd620) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16) + QObject (0x0x7f5f58422ae0) 0 + primary-for QWindow (0x0x7f5f583fd620) + QSurface (0x0x7f5f58422b40) 16 + vptr=((& QWindow::_ZTV7QWindow) + 328) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7f5f58449420) 0 + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7f5f58449540) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7f5f58425a90) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16) + QObject (0x0x7f5f584494e0) 0 + primary-for QClipboard (0x0x7f5f58425a90) + +Class QColorTransform + size=8 align=8 + base size=8 base align=8 +QColorTransform (0x0x7f5f58449660) 0 + +Class QColorSpace + size=8 align=8 + base size=8 base align=8 +QColorSpace (0x0x7f5f5849c600) 0 + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7f5f584f22a0) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7f5f584f2360) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7f5f584ef478) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16) + QObject (0x0x7f5f584f2300) 0 + primary-for QDrag (0x0x7f5f584ef478) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7f5f584f2540) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QFileSystemModel::mimeTypes +224 (int (*)(...))QFileSystemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QFileSystemModel::dropMimeData +248 (int (*)(...))QFileSystemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QFileSystemModel::fetchMore +320 (int (*)(...))QFileSystemModel::canFetchMore +328 (int (*)(...))QFileSystemModel::flags +336 (int (*)(...))QFileSystemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QFileSystemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7f5f584ef4e0) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16) + QAbstractItemModel (0x0x7f5f584ef548) 0 + primary-for QFileSystemModel (0x0x7f5f584ef4e0) + QObject (0x0x7f5f584f24e0) 0 + primary-for QAbstractItemModel (0x0x7f5f584ef548) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7f5f584f2b40) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7f5f58149480) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7f5f58163ea0) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7f5f581c8cc0) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7f5f58195d68) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16) + QObject (0x0x7f5f581c8c60) 0 + primary-for QGenericPlugin (0x0x7f5f58195d68) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7f5f581c8d80) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7f5f581c8e40) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7f5f58195dd0) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16) + QObject (0x0x7f5f581c8de0) 0 + primary-for QInputMethod (0x0x7f5f58195dd0) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7f5f581e7120) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7f5f58195e38) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16) + QCoreApplication (0x0x7f5f58195ea0) 0 + primary-for QGuiApplication (0x0x7f5f58195e38) + QObject (0x0x7f5f581e70c0) 0 + primary-for QCoreApplication (0x0x7f5f58195ea0) + +Class QIconEngine::ScaledPixmapArgument + size=48 align=8 + base size=48 base align=8 +QIconEngine::ScaledPixmapArgument (0x0x7f5f581e73c0) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::isNull +128 (int (*)(...))QIconEngine::scaledPixmap +136 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7f5f581e7360) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7f5f581e7480) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7f5f58195f08) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16) + QObject (0x0x7f5f581e7420) 0 + primary-for QIconEnginePlugin (0x0x7f5f58195f08) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QImageIOHandler::write +56 (int (*)(...))QImageIOHandler::option +64 (int (*)(...))QImageIOHandler::setOption +72 (int (*)(...))QImageIOHandler::supportsOption +80 (int (*)(...))QImageIOHandler::jumpToNextImage +88 (int (*)(...))QImageIOHandler::jumpToImage +96 (int (*)(...))QImageIOHandler::loopCount +104 (int (*)(...))QImageIOHandler::imageCount +112 (int (*)(...))QImageIOHandler::nextImageDelay +120 (int (*)(...))QImageIOHandler::currentImageNumber +128 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7f5f581e7540) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7f5f581e7780) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7f5f58195f70) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16) + QObject (0x0x7f5f581e7720) 0 + primary-for QImageIOPlugin (0x0x7f5f58195f70) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7f5f581e7b40) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7f5f581e7c00) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7f5f581e7cc0) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7f5f5827ca20) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7f5f582d9ea0) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7f5f582ca750) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16) + QObject (0x0x7f5f582d9e40) 0 + primary-for QMovie (0x0x7f5f582ca750) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7f5f582f92a0) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7f5f58271e70) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16) + QObject (0x0x7f5f582f91e0) 0 + primary-for QOffscreenSurface (0x0x7f5f58271e70) + QSurface (0x0x7f5f582f9240) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160) + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7f5f582f94e0) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7f5f582ca7b8) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16) + QObject (0x0x7f5f582f9480) 0 + primary-for QOpenGLContextGroup (0x0x7f5f582ca7b8) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7f5f582f96c0) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7f5f582ca820) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16) + QObject (0x0x7f5f582f9660) 0 + primary-for QOpenGLContext (0x0x7f5f582ca820) + +Vtable for QNativeInterface::QGLXContext +QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QGLXContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QGLXContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QGLXContext (0x0x7f5f582f9840) 0 nearly-empty + vptr=((& QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE) + 16) + +Vtable for QNativeInterface::QEGLContext +QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QEGLContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QEGLContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QEGLContext (0x0x7f5f582f98a0) 0 nearly-empty + vptr=((& QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE) + 16) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7f5f582f9900) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7f5f582f9ea0) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7f5f582f9e40) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7f5f582cac30) 0 + QOpenGLFunctions (0x0x7f5f57e8dc60) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1728 align=8 + base size=1728 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7f5f57ed9000) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2880 align=8 + base size=2880 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7f5f582cac98) 0 + QOpenGLFunctionsPrivate (0x0x7f5f57e8df60) 0 + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7f5f57b6ccc0) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7f5f57bbc780) 0 + +Class QPageRanges::Range + size=8 align=4 + base size=8 base align=4 +QPageRanges::Range (0x0x7f5f57c12420) 0 + +Class QPageRanges + size=8 align=8 + base size=8 base align=8 +QPageRanges (0x0x7f5f57c123c0) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageLayout +96 (int (*)(...))QPagedPaintDevice::setPageSize +104 (int (*)(...))QPagedPaintDevice::setPageOrientation +112 (int (*)(...))QPagedPaintDevice::setPageMargins +120 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPagedPaintDevice + size=24 align=8 + base size=24 base align=8 +QPagedPaintDevice (0x0x7f5f57c77888) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16) + QPaintDevice (0x0x7f5f57c7a540) 0 + primary-for QPagedPaintDevice (0x0x7f5f57c77888) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7f5f57c7a6c0) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QPaintDeviceWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +352 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +416 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QPaintDevice::redirected +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=56 align=8 + base size=50 base align=8 +QPaintDeviceWindow (0x0x7f5f57bc8690) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16) + QWindow (0x0x7f5f57bc8770) 0 + primary-for QPaintDeviceWindow (0x0x7f5f57bc8690) + QObject (0x0x7f5f57c7a5a0) 0 + primary-for QWindow (0x0x7f5f57bc8770) + QSurface (0x0x7f5f57c7a600) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 344) + QPaintDevice (0x0x7f5f57c7a660) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 408) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7f5f57c7a8a0) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7f5f57c7a840) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7f5f57a21420) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QPaintEngine::createPixmap +200 (int (*)(...))QPaintEngine::createPixmapFromImage + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7f5f57a36c00) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7f5f57a6d240) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7f5f57a6dcc0) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7f5f57a6dc60) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7f5f57af0c60) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7f5f57b06780) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 33 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::paintEngine +128 (int (*)(...))QPdfWriter::metric +136 (int (*)(...))-16 +144 (int (*)(...))(& _ZTI10QPdfWriter) +152 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +160 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +168 (int (*)(...))QPaintDevice::devType +176 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +184 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +192 (int (*)(...))QPaintDevice::initPainter +200 (int (*)(...))QPaintDevice::redirected +208 (int (*)(...))QPaintDevice::sharedPainter +216 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +224 (int (*)(...))QPagedPaintDevice::setPageLayout +232 (int (*)(...))QPagedPaintDevice::setPageSize +240 (int (*)(...))QPagedPaintDevice::setPageOrientation +248 (int (*)(...))QPagedPaintDevice::setPageMargins +256 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPdfWriter + size=40 align=8 + base size=40 base align=8 +QPdfWriter (0x0x7f5f57aa7a10) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16) + QObject (0x0x7f5f57b066c0) 0 + primary-for QPdfWriter (0x0x7f5f57aa7a10) + QPagedPaintDevice (0x0x7f5f57afb6e8) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 152) + QPaintDevice (0x0x7f5f57b06720) 16 + primary-for QPagedPaintDevice (0x0x7f5f57afb6e8) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=24 align=8 + base size=24 base align=8 +QPicture (0x0x7f5f57afb750) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16) + QPaintDevice (0x0x7f5f57b06960) 0 + primary-for QPicture (0x0x7f5f57afb750) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7f5f57752480) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7f5f57752420) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7f5f577926c0) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 60 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QRasterWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QRasterWindow::redirected +336 (int (*)(...))-16 +344 (int (*)(...))(& _ZTI13QRasterWindow) +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +360 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +392 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +400 (int (*)(...))-40 +408 (int (*)(...))(& _ZTI13QRasterWindow) +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +424 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +432 (int (*)(...))QPaintDevice::devType +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +448 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +456 (int (*)(...))QPaintDevice::initPainter +464 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +472 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=56 align=8 + base size=50 base align=8 +QRasterWindow (0x0x7f5f5778dc98) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16) + QPaintDeviceWindow (0x0x7f5f57769620) 0 + primary-for QRasterWindow (0x0x7f5f5778dc98) + QWindow (0x0x7f5f57769690) 0 + primary-for QPaintDeviceWindow (0x0x7f5f57769620) + QObject (0x0x7f5f577925a0) 0 + primary-for QWindow (0x0x7f5f57769690) + QSurface (0x0x7f5f57792600) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 352) + QPaintDevice (0x0x7f5f57792660) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 416) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7f5f577928a0) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7f5f5778dd68) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16) + QObject (0x0x7f5f57792840) 0 + primary-for QSessionManager (0x0x7f5f5778dd68) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7f5f57792a80) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7f5f5778ddd0) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16) + QObject (0x0x7f5f57792a20) 0 + primary-for QShortcut (0x0x7f5f5778ddd0) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::multiData +48 (int (*)(...))QStandardItem::setData +56 (int (*)(...))QStandardItem::clone +64 (int (*)(...))QStandardItem::type +72 (int (*)(...))QStandardItem::read +80 (int (*)(...))QStandardItem::write +88 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7f5f57792f60) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7f5f577f56c0) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::clearItemData +216 (int (*)(...))QStandardItemModel::mimeTypes +224 (int (*)(...))QStandardItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QStandardItemModel::dropMimeData +248 (int (*)(...))QStandardItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStandardItemModel::insertRows +272 (int (*)(...))QStandardItemModel::insertColumns +280 (int (*)(...))QStandardItemModel::removeRows +288 (int (*)(...))QStandardItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStandardItemModel::flags +336 (int (*)(...))QStandardItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QStandardItemModel::roleNames +376 (int (*)(...))QStandardItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7f5f577f8750) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16) + QAbstractItemModel (0x0x7f5f577f87b8) 0 + primary-for QStandardItemModel (0x0x7f5f577f8750) + QObject (0x0x7f5f577f5f60) 0 + primary-for QAbstractItemModel (0x0x7f5f577f87b8) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7f5f5784f300) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7f5f57887c00) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7f5f5788f410) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16) + QObject (0x0x7f5f57887ba0) 0 + primary-for QStyleHints (0x0x7f5f5788f410) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7f5f57887de0) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7f5f5788f478) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16) + QObject (0x0x7f5f57887d80) 0 + primary-for QTextObject (0x0x7f5f5788f478) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7f5f578ae000) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7f5f5788f4e0) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16) + QTextObject (0x0x7f5f5788f548) 0 + primary-for QTextBlockGroup (0x0x7f5f5788f4e0) + QObject (0x0x7f5f57887f60) 0 + primary-for QTextObject (0x0x7f5f5788f548) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7f5f578ae180) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7f5f578ae240) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7f5f578ae2a0) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7f5f5788f5b0) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16) + QTextObject (0x0x7f5f5788f618) 0 + primary-for QTextFrame (0x0x7f5f5788f5b0) + QObject (0x0x7f5f578ae1e0) 0 + primary-for QTextObject (0x0x7f5f5788f618) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7f5f578e6120) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7f5f578e61e0) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7f5f578e6180) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7f5f57528a20) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7f5f5754d8a0) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7f5f575517b8) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16) + QObject (0x0x7f5f5754d840) 0 + primary-for QSyntaxHighlighter (0x0x7f5f575517b8) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7f5f5754da20) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7f5f5754da80) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7f5f5754db40) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7f5f57551820) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16) + QTextBlockGroup (0x0x7f5f57551888) 0 + primary-for QTextList (0x0x7f5f57551820) + QTextObject (0x0x7f5f575518f0) 0 + primary-for QTextBlockGroup (0x0x7f5f57551888) + QObject (0x0x7f5f5754dae0) 0 + primary-for QTextObject (0x0x7f5f575518f0) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7f5f5754df00) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7f5f5757e780) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7f5f57551958) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16) + QTextFrame (0x0x7f5f575519c0) 0 + primary-for QTextTable (0x0x7f5f57551958) + QTextObject (0x0x7f5f57551a28) 0 + primary-for QTextFrame (0x0x7f5f575519c0) + QObject (0x0x7f5f5757e720) 0 + primary-for QTextObject (0x0x7f5f57551a28) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7f5f5757eb40) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7f5f57551a90) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16) + QObject (0x0x7f5f5757eae0) 0 + primary-for QUndoGroup (0x0x7f5f57551a90) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7f5f5757ecc0) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7f5f5757ed80) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7f5f57551af8) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16) + QObject (0x0x7f5f5757ed20) 0 + primary-for QUndoStack (0x0x7f5f57551af8) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7f5f5757ef60) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7f5f57551b60) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16) + QObject (0x0x7f5f5757ef00) 0 + primary-for QValidator (0x0x7f5f57551b60) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7f5f575bb240) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7f5f57551bc8) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16) + QValidator (0x0x7f5f57551c30) 0 + primary-for QIntValidator (0x0x7f5f57551bc8) + QObject (0x0x7f5f575bb1e0) 0 + primary-for QValidator (0x0x7f5f57551c30) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7f5f575bb420) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7f5f57551c98) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16) + QValidator (0x0x7f5f57551d00) 0 + primary-for QDoubleValidator (0x0x7f5f57551c98) + QObject (0x0x7f5f575bb3c0) 0 + primary-for QValidator (0x0x7f5f57551d00) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7f5f575bb7e0) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7f5f57551d68) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16) + QValidator (0x0x7f5f57551dd0) 0 + primary-for QRegularExpressionValidator (0x0x7f5f57551d68) + QObject (0x0x7f5f575bb780) 0 + primary-for QValidator (0x0x7f5f57551dd0) + +Vtable for QSqlDriverCreatorBase +QSqlDriverCreatorBase::_ZTV21QSqlDriverCreatorBase: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSqlDriverCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QSqlDriverCreatorBase + size=8 align=8 + base size=8 base align=8 +QSqlDriverCreatorBase (0x0x7f5f575bbc60) 0 nearly-empty + vptr=((& QSqlDriverCreatorBase::_ZTV21QSqlDriverCreatorBase) + 16) + +Class QSqlDatabase + size=8 align=8 + base size=8 base align=8 +QSqlDatabase (0x0x7f5f575bbf60) 0 + +Class QSqlDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlDriver::QPrivateSignal (0x0x7f5f5760f060) 0 empty + +Vtable for QSqlDriver +QSqlDriver::_ZTV10QSqlDriver: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSqlDriver) +16 (int (*)(...))QSqlDriver::metaObject +24 (int (*)(...))QSqlDriver::qt_metacast +32 (int (*)(...))QSqlDriver::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSqlDriver::isOpen +120 (int (*)(...))QSqlDriver::beginTransaction +128 (int (*)(...))QSqlDriver::commitTransaction +136 (int (*)(...))QSqlDriver::rollbackTransaction +144 (int (*)(...))QSqlDriver::tables +152 (int (*)(...))QSqlDriver::primaryIndex +160 (int (*)(...))QSqlDriver::record +168 (int (*)(...))QSqlDriver::formatValue +176 (int (*)(...))QSqlDriver::escapeIdentifier +184 (int (*)(...))QSqlDriver::sqlStatement +192 (int (*)(...))QSqlDriver::handle +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))QSqlDriver::subscribeToNotification +240 (int (*)(...))QSqlDriver::unsubscribeFromNotification +248 (int (*)(...))QSqlDriver::subscribedToNotifications +256 (int (*)(...))QSqlDriver::isIdentifierEscaped +264 (int (*)(...))QSqlDriver::stripDelimiters +272 (int (*)(...))QSqlDriver::maximumIdentifierLength +280 (int (*)(...))QSqlDriver::cancelQuery +288 (int (*)(...))QSqlDriver::setOpen +296 (int (*)(...))QSqlDriver::setOpenError +304 (int (*)(...))QSqlDriver::setLastError + +Class QSqlDriver + size=16 align=8 + base size=16 base align=8 +QSqlDriver (0x0x7f5f5760e000) 0 + vptr=((& QSqlDriver::_ZTV10QSqlDriver) + 16) + QObject (0x0x7f5f5760f000) 0 + primary-for QSqlDriver (0x0x7f5f5760e000) + +Class QSqlDriverPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlDriverPlugin::QPrivateSignal (0x0x7f5f5760f240) 0 empty + +Vtable for QSqlDriverPlugin +QSqlDriverPlugin::_ZTV16QSqlDriverPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QSqlDriverPlugin) +16 (int (*)(...))QSqlDriverPlugin::metaObject +24 (int (*)(...))QSqlDriverPlugin::qt_metacast +32 (int (*)(...))QSqlDriverPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSqlDriverPlugin + size=16 align=8 + base size=16 base align=8 +QSqlDriverPlugin (0x0x7f5f5760e068) 0 + vptr=((& QSqlDriverPlugin::_ZTV16QSqlDriverPlugin) + 16) + QObject (0x0x7f5f5760f1e0) 0 + primary-for QSqlDriverPlugin (0x0x7f5f5760e068) + +Class QSqlError + size=8 align=8 + base size=8 base align=8 +QSqlError (0x0x7f5f5760f300) 0 + +Class QSqlField + size=40 align=8 + base size=40 base align=8 +QSqlField (0x0x7f5f5766a0c0) 0 + +Class QSqlRecord + size=8 align=8 + base size=8 base align=8 +QSqlRecord (0x0x7f5f5766a480) 0 + +Class QSqlIndex + size=80 align=8 + base size=80 base align=8 +QSqlIndex (0x0x7f5f5765fdd0) 0 + QSqlRecord (0x0x7f5f5766a540) 0 + +Class QSqlQuery + size=8 align=8 + base size=8 base align=8 +QSqlQuery (0x0x7f5f5766aa80) 0 + +Class QSqlQueryModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlQueryModel::QPrivateSignal (0x0x7f5f5766ab40) 0 empty + +Vtable for QSqlQueryModel +QSqlQueryModel::_ZTV14QSqlQueryModel: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QSqlQueryModel) +16 (int (*)(...))QSqlQueryModel::metaObject +24 (int (*)(...))QSqlQueryModel::qt_metacast +32 (int (*)(...))QSqlQueryModel::qt_metacall +40 (int (*)(...))QSqlQueryModel::~QSqlQueryModel +48 (int (*)(...))QSqlQueryModel::~QSqlQueryModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))QSqlQueryModel::rowCount +144 (int (*)(...))QSqlQueryModel::columnCount +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))QSqlQueryModel::data +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QSqlQueryModel::headerData +184 (int (*)(...))QSqlQueryModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QSqlQueryModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QSqlQueryModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSqlQueryModel::fetchMore +320 (int (*)(...))QSqlQueryModel::canFetchMore +328 (int (*)(...))QAbstractTableModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QSqlQueryModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSqlQueryModel::clear +416 (int (*)(...))QSqlQueryModel::queryChange +424 (int (*)(...))QSqlQueryModel::indexInQuery + +Class QSqlQueryModel + size=16 align=8 + base size=16 base align=8 +QSqlQueryModel (0x0x7f5f57693208) 0 + vptr=((& QSqlQueryModel::_ZTV14QSqlQueryModel) + 16) + QAbstractTableModel (0x0x7f5f57693270) 0 + primary-for QSqlQueryModel (0x0x7f5f57693208) + QAbstractItemModel (0x0x7f5f576932d8) 0 + primary-for QAbstractTableModel (0x0x7f5f57693270) + QObject (0x0x7f5f5766aae0) 0 + primary-for QAbstractItemModel (0x0x7f5f576932d8) + +Class QSqlTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlTableModel::QPrivateSignal (0x0x7f5f5766ad20) 0 empty + +Vtable for QSqlTableModel +QSqlTableModel::_ZTV14QSqlTableModel: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QSqlTableModel) +16 (int (*)(...))QSqlTableModel::metaObject +24 (int (*)(...))QSqlTableModel::qt_metacast +32 (int (*)(...))QSqlTableModel::qt_metacall +40 (int (*)(...))QSqlTableModel::~QSqlTableModel +48 (int (*)(...))QSqlTableModel::~QSqlTableModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))QSqlTableModel::rowCount +144 (int (*)(...))QSqlQueryModel::columnCount +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))QSqlTableModel::data +168 (int (*)(...))QSqlTableModel::setData +176 (int (*)(...))QSqlTableModel::headerData +184 (int (*)(...))QSqlQueryModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QSqlTableModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QSqlTableModel::insertRows +272 (int (*)(...))QSqlQueryModel::insertColumns +280 (int (*)(...))QSqlTableModel::removeRows +288 (int (*)(...))QSqlTableModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSqlQueryModel::fetchMore +320 (int (*)(...))QSqlQueryModel::canFetchMore +328 (int (*)(...))QSqlTableModel::flags +336 (int (*)(...))QSqlTableModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QSqlQueryModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QSqlTableModel::submit +392 (int (*)(...))QSqlTableModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSqlTableModel::clear +416 (int (*)(...))QSqlQueryModel::queryChange +424 (int (*)(...))QSqlTableModel::indexInQuery +432 (int (*)(...))QSqlTableModel::setTable +440 (int (*)(...))QSqlTableModel::setEditStrategy +448 (int (*)(...))QSqlTableModel::setSort +456 (int (*)(...))QSqlTableModel::setFilter +464 (int (*)(...))QSqlTableModel::revertRow +472 (int (*)(...))QSqlTableModel::select +480 (int (*)(...))QSqlTableModel::selectRow +488 (int (*)(...))QSqlTableModel::updateRowInTable +496 (int (*)(...))QSqlTableModel::insertRowIntoTable +504 (int (*)(...))QSqlTableModel::deleteRowFromTable +512 (int (*)(...))QSqlTableModel::orderByClause +520 (int (*)(...))QSqlTableModel::selectStatement + +Class QSqlTableModel + size=16 align=8 + base size=16 base align=8 +QSqlTableModel (0x0x7f5f57693340) 0 + vptr=((& QSqlTableModel::_ZTV14QSqlTableModel) + 16) + QSqlQueryModel (0x0x7f5f576933a8) 0 + primary-for QSqlTableModel (0x0x7f5f57693340) + QAbstractTableModel (0x0x7f5f57693410) 0 + primary-for QSqlQueryModel (0x0x7f5f576933a8) + QAbstractItemModel (0x0x7f5f57693478) 0 + primary-for QAbstractTableModel (0x0x7f5f57693410) + QObject (0x0x7f5f5766acc0) 0 + primary-for QAbstractItemModel (0x0x7f5f57693478) + +Class QSqlRelation + size=72 align=8 + base size=72 base align=8 +QSqlRelation (0x0x7f5f5766aea0) 0 + +Class QSqlRelationalTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlRelationalTableModel::QPrivateSignal (0x0x7f5f57329060) 0 empty + +Vtable for QSqlRelationalTableModel +QSqlRelationalTableModel::_ZTV24QSqlRelationalTableModel: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QSqlRelationalTableModel) +16 (int (*)(...))QSqlRelationalTableModel::metaObject +24 (int (*)(...))QSqlRelationalTableModel::qt_metacast +32 (int (*)(...))QSqlRelationalTableModel::qt_metacall +40 (int (*)(...))QSqlRelationalTableModel::~QSqlRelationalTableModel +48 (int (*)(...))QSqlRelationalTableModel::~QSqlRelationalTableModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))QSqlTableModel::rowCount +144 (int (*)(...))QSqlQueryModel::columnCount +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))QSqlRelationalTableModel::data +168 (int (*)(...))QSqlRelationalTableModel::setData +176 (int (*)(...))QSqlTableModel::headerData +184 (int (*)(...))QSqlQueryModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QSqlTableModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QSqlTableModel::insertRows +272 (int (*)(...))QSqlQueryModel::insertColumns +280 (int (*)(...))QSqlTableModel::removeRows +288 (int (*)(...))QSqlRelationalTableModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSqlQueryModel::fetchMore +320 (int (*)(...))QSqlQueryModel::canFetchMore +328 (int (*)(...))QSqlTableModel::flags +336 (int (*)(...))QSqlTableModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QSqlQueryModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QSqlTableModel::submit +392 (int (*)(...))QSqlTableModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSqlRelationalTableModel::clear +416 (int (*)(...))QSqlQueryModel::queryChange +424 (int (*)(...))QSqlTableModel::indexInQuery +432 (int (*)(...))QSqlRelationalTableModel::setTable +440 (int (*)(...))QSqlTableModel::setEditStrategy +448 (int (*)(...))QSqlTableModel::setSort +456 (int (*)(...))QSqlTableModel::setFilter +464 (int (*)(...))QSqlRelationalTableModel::revertRow +472 (int (*)(...))QSqlRelationalTableModel::select +480 (int (*)(...))QSqlTableModel::selectRow +488 (int (*)(...))QSqlRelationalTableModel::updateRowInTable +496 (int (*)(...))QSqlRelationalTableModel::insertRowIntoTable +504 (int (*)(...))QSqlTableModel::deleteRowFromTable +512 (int (*)(...))QSqlRelationalTableModel::orderByClause +520 (int (*)(...))QSqlRelationalTableModel::selectStatement +528 (int (*)(...))QSqlRelationalTableModel::setRelation +536 (int (*)(...))QSqlRelationalTableModel::relationModel + +Class QSqlRelationalTableModel + size=16 align=8 + base size=16 base align=8 +QSqlRelationalTableModel (0x0x7f5f57721750) 0 + vptr=((& QSqlRelationalTableModel::_ZTV24QSqlRelationalTableModel) + 16) + QSqlTableModel (0x0x7f5f577217b8) 0 + primary-for QSqlRelationalTableModel (0x0x7f5f57721750) + QSqlQueryModel (0x0x7f5f57721820) 0 + primary-for QSqlTableModel (0x0x7f5f577217b8) + QAbstractTableModel (0x0x7f5f57721888) 0 + primary-for QSqlQueryModel (0x0x7f5f57721820) + QAbstractItemModel (0x0x7f5f577218f0) 0 + primary-for QAbstractTableModel (0x0x7f5f57721888) + QObject (0x0x7f5f57329000) 0 + primary-for QAbstractItemModel (0x0x7f5f577218f0) + +Vtable for QSqlResult +QSqlResult::_ZTV10QSqlResult: 33 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSqlResult) +16 0 +24 0 +32 (int (*)(...))QSqlResult::handle +40 (int (*)(...))QSqlResult::setAt +48 (int (*)(...))QSqlResult::setActive +56 (int (*)(...))QSqlResult::setLastError +64 (int (*)(...))QSqlResult::setQuery +72 (int (*)(...))QSqlResult::setSelect +80 (int (*)(...))QSqlResult::setForwardOnly +88 (int (*)(...))QSqlResult::exec +96 (int (*)(...))QSqlResult::prepare +104 (int (*)(...))QSqlResult::savePrepare +112 (int (*)(...))QSqlResult::bindValue +120 (int (*)(...))QSqlResult::bindValue +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QSqlResult::fetchNext +168 (int (*)(...))QSqlResult::fetchPrevious +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QSqlResult::record +216 (int (*)(...))QSqlResult::lastInsertId +224 (int (*)(...))QSqlResult::virtual_hook +232 (int (*)(...))QSqlResult::execBatch +240 (int (*)(...))QSqlResult::detachFromResultSet +248 (int (*)(...))QSqlResult::setNumericalPrecisionPolicy +256 (int (*)(...))QSqlResult::nextResult + +Class QSqlResult + size=16 align=8 + base size=16 base align=8 +QSqlResult (0x0x7f5f573291e0) 0 + vptr=((& QSqlResult::_ZTV10QSqlResult) + 16) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7f5f57329360) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7f5f57329300) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7f5f573a1300) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7f5f573a1420) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=40 align=8 + base size=40 base align=8 +QWidget (0x0x7f5f5734d4d0) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16) + QObject (0x0x7f5f573a1360) 0 + primary-for QWidget (0x0x7f5f5734d4d0) + QPaintDevice (0x0x7f5f573a13c0) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7f5f57424cc0) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0 +480 0 +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=40 align=8 + base size=40 base align=8 +QAbstractButton (0x0x7f5f5739b8f0) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16) + QWidget (0x0x7f5f5734d700) 0 + primary-for QAbstractButton (0x0x7f5f5739b8f0) + QObject (0x0x7f5f57424c00) 0 + primary-for QWidget (0x0x7f5f5734d700) + QPaintDevice (0x0x7f5f57424c60) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7f5f57424f00) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI16QAbstractSpinBox) +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +504 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=40 align=8 + base size=40 base align=8 +QAbstractSpinBox (0x0x7f5f5739b958) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16) + QWidget (0x0x7f5f5734d770) 0 + primary-for QAbstractSpinBox (0x0x7f5f5739b958) + QObject (0x0x7f5f57424e40) 0 + primary-for QWidget (0x0x7f5f5734d770) + QPaintDevice (0x0x7f5f57424ea0) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 496) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7f5f574636c0) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=40 align=8 + base size=40 base align=8 +QAbstractSlider (0x0x7f5f5739baf8) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16) + QWidget (0x0x7f5f5734dcb0) 0 + primary-for QAbstractSlider (0x0x7f5f5739baf8) + QObject (0x0x7f5f57463600) 0 + primary-for QWidget (0x0x7f5f5734dcb0) + QPaintDevice (0x0x7f5f57463660) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7f5f57463900) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))QSlider::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI7QSlider) +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +472 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=40 align=8 + base size=40 base align=8 +QSlider (0x0x7f5f5739bb60) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16) + QAbstractSlider (0x0x7f5f5739bbc8) 0 + primary-for QSlider (0x0x7f5f5739bb60) + QWidget (0x0x7f5f574891c0) 0 + primary-for QAbstractSlider (0x0x7f5f5739bbc8) + QObject (0x0x7f5f57463840) 0 + primary-for QWidget (0x0x7f5f574891c0) + QPaintDevice (0x0x7f5f574638a0) 16 + vptr=((& QSlider::_ZTV7QSlider) + 464) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7f5f57463ba0) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7f5f5739bc30) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16) + QObject (0x0x7f5f57463b40) 0 + primary-for QStyle (0x0x7f5f5739bc30) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7f5f574dcc60) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QTabBar::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))QTabBar::initStyleOption +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI7QTabBar) +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +504 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=40 align=8 + base size=40 base align=8 +QTabBar (0x0x7f5f5739bf08) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16) + QWidget (0x0x7f5f574cdcb0) 0 + primary-for QTabBar (0x0x7f5f5739bf08) + QObject (0x0x7f5f574dcba0) 0 + primary-for QWidget (0x0x7f5f574cdcb0) + QPaintDevice (0x0x7f5f574dcc00) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 496) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7f5f574dcf60) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))QTabWidget::initStyleOption +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI10QTabWidget) +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +480 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=40 align=8 + base size=40 base align=8 +QTabWidget (0x0x7f5f5739bf70) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16) + QWidget (0x0x7f5f5751d310) 0 + primary-for QTabWidget (0x0x7f5f5739bf70) + QObject (0x0x7f5f574dcea0) 0 + primary-for QWidget (0x0x7f5f5751d310) + QPaintDevice (0x0x7f5f574dcf00) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 472) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7f5f57151360) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRubberBand::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QRubberBand) +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +464 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=40 align=8 + base size=40 base align=8 +QRubberBand (0x0x7f5f57154000) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16) + QWidget (0x0x7f5f5751d620) 0 + primary-for QRubberBand (0x0x7f5f57154000) + QObject (0x0x7f5f571512a0) 0 + primary-for QWidget (0x0x7f5f5751d620) + QPaintDevice (0x0x7f5f57151300) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 456) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7f5f57151780) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QFrame) +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +464 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=40 align=8 + base size=40 base align=8 +QFrame (0x0x7f5f57154068) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16) + QWidget (0x0x7f5f5751d770) 0 + primary-for QFrame (0x0x7f5f57154068) + QObject (0x0x7f5f571516c0) 0 + primary-for QWidget (0x0x7f5f5751d770) + QPaintDevice (0x0x7f5f57151720) 16 + vptr=((& QFrame::_ZTV6QFrame) + 456) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7f5f57151a80) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7f5f571540d0) 0 + QStyleOption (0x0x7f5f57151ae0) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7f5f643a9d68) 0 + QStyleOption (0x0x7f5f57151d20) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7f5f643a9f08) 0 + QStyleOption (0x0x7f5f5719e2a0) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7f5f57154138) 0 + QStyleOption (0x0x7f5f5719e4e0) 0 + +Class QStyleOptionHeader + size=136 align=8 + base size=132 base align=8 +QStyleOptionHeader (0x0x7f5f571541a0) 0 + QStyleOption (0x0x7f5f5719e720) 0 + +Class QStyleOptionHeaderV2 + size=136 align=8 + base size=136 base align=8 +QStyleOptionHeaderV2 (0x0x7f5f57154208) 0 + QStyleOptionHeader (0x0x7f5f57154270) 0 + QStyleOption (0x0x7f5f5719e960) 0 + +Class QStyleOptionButton + size=112 align=8 + base size=112 base align=8 +QStyleOptionButton (0x0x7f5f57154340) 0 + QStyleOption (0x0x7f5f5719ed20) 0 + +Class QStyleOptionTab + size=160 align=8 + base size=156 base align=8 +QStyleOptionTab (0x0x7f5f571544e0) 0 + QStyleOption (0x0x7f5f571e72a0) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7f5f571547b8) 0 + QStyleOption (0x0x7f5f571e79c0) 0 + +Class QStyleOptionProgressBar + size=112 align=8 + base size=111 base align=8 +QStyleOptionProgressBar (0x0x7f5f57154958) 0 + QStyleOption (0x0x7f5f571e7f00) 0 + +Class QStyleOptionMenuItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionMenuItem (0x0x7f5f571549c0) 0 + QStyleOption (0x0x7f5f57258180) 0 + +Class QStyleOptionDockWidget + size=96 align=8 + base size=92 base align=8 +QStyleOptionDockWidget (0x0x7f5f57154a28) 0 + QStyleOption (0x0x7f5f572583c0) 0 + +Class QStyleOptionViewItem + size=208 align=8 + base size=208 base align=8 +QStyleOptionViewItem (0x0x7f5f57154a90) 0 + QStyleOption (0x0x7f5f57258600) 0 + +Class QStyleOptionToolBox + size=104 align=8 + base size=104 base align=8 +QStyleOptionToolBox (0x0x7f5f57154c30) 0 + QStyleOption (0x0x7f5f57258b40) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7f5f57154c98) 0 + QStyleOption (0x0x7f5f57258d80) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7f5f57154d00) 0 + QStyleOption (0x0x7f5f572a0060) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=128 base align=8 +QStyleOptionSlider (0x0x7f5f57154d68) 0 + QStyleOptionComplex (0x0x7f5f57154dd0) 0 + QStyleOption (0x0x7f5f572a0300) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7f5f57154ea0) 0 + QStyleOptionComplex (0x0x7f5f57154f08) 0 + QStyleOption (0x0x7f5f572a06c0) 0 + +Class QStyleOptionToolButton + size=152 align=8 + base size=152 base align=8 +QStyleOptionToolButton (0x0x7f5f57154e38) 0 + QStyleOptionComplex (0x0x7f5f572b8000) 0 + QStyleOption (0x0x7f5f572a0900) 0 + +Class QStyleOptionComboBox + size=144 align=8 + base size=140 base align=8 +QStyleOptionComboBox (0x0x7f5f572b81a0) 0 + QStyleOptionComplex (0x0x7f5f572b8208) 0 + QStyleOption (0x0x7f5f572a0e40) 0 + +Class QStyleOptionTitleBar + size=112 align=8 + base size=112 base align=8 +QStyleOptionTitleBar (0x0x7f5f572b8270) 0 + QStyleOptionComplex (0x0x7f5f572b82d8) 0 + QStyleOption (0x0x7f5f572e6060) 0 + +Class QStyleOptionGroupBox + size=136 align=8 + base size=132 base align=8 +QStyleOptionGroupBox (0x0x7f5f572b8340) 0 + QStyleOptionComplex (0x0x7f5f572b83a8) 0 + QStyleOption (0x0x7f5f572e62a0) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7f5f572b8410) 0 + QStyleOptionComplex (0x0x7f5f572b8478) 0 + QStyleOption (0x0x7f5f572e64e0) 0 + +Class QStyleOptionGraphicsItem + size=96 align=8 + base size=96 base align=8 +QStyleOptionGraphicsItem (0x0x7f5f572b84e0) 0 + QStyleOption (0x0x7f5f572e6720) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7f5f572e6a80) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7f5f572b8548) 0 + QStyleHintReturn (0x0x7f5f572e6ae0) 0 + +Class QStyleHintReturnVariant + size=40 align=8 + base size=40 base align=8 +QStyleHintReturnVariant (0x0x7f5f572b8618) 0 + QStyleHintReturn (0x0x7f5f572e6b40) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7f5f572e6cc0) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7f5f572b86e8) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16) + QObject (0x0x7f5f572e6c60) 0 + primary-for QAbstractItemDelegate (0x0x7f5f572b86e8) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7f5f572e6f00) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI19QAbstractScrollArea) +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +496 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=40 align=8 + base size=40 base align=8 +QAbstractScrollArea (0x0x7f5f572b8750) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16) + QFrame (0x0x7f5f572b87b8) 0 + primary-for QAbstractScrollArea (0x0x7f5f572b8750) + QWidget (0x0x7f5f572dfa80) 0 + primary-for QFrame (0x0x7f5f572b87b8) + QObject (0x0x7f5f572e6e40) 0 + primary-for QWidget (0x0x7f5f572dfa80) + QPaintDevice (0x0x7f5f572e6ea0) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 488) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7f5f56f2f240) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QAbstractItemView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))__cxa_pure_virtual +736 (int (*)(...))__cxa_pure_virtual +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI17QAbstractItemView) +800 0 +808 0 +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=40 align=8 + base size=40 base align=8 +QAbstractItemView (0x0x7f5f572b8820) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16) + QAbstractScrollArea (0x0x7f5f572b8888) 0 + primary-for QAbstractItemView (0x0x7f5f572b8820) + QFrame (0x0x7f5f572b88f0) 0 + primary-for QAbstractScrollArea (0x0x7f5f572b8888) + QWidget (0x0x7f5f572dfc40) 0 + primary-for QFrame (0x0x7f5f572b88f0) + QObject (0x0x7f5f56f2f180) 0 + primary-for QWidget (0x0x7f5f572dfc40) + QPaintDevice (0x0x7f5f56f2f1e0) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 800) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7f5f56f5a1c0) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16) + QAccessibleObject (0x0x7f5f572b8a90) 0 + primary-for QAccessibleWidget (0x0x7f5f56f5a1c0) + QAccessibleInterface (0x0x7f5f56f2fba0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f5f572b8a90) + QAccessibleActionInterface (0x0x7f5f56f2fc00) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7f5f56f2fd20) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7f5f572b8af8) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16) + QGuiApplication (0x0x7f5f572b8b60) 0 + primary-for QApplication (0x0x7f5f572b8af8) + QCoreApplication (0x0x7f5f572b8bc8) 0 + primary-for QGuiApplication (0x0x7f5f572b8b60) + QObject (0x0x7f5f56f2fcc0) 0 + primary-for QCoreApplication (0x0x7f5f572b8bc8) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7f5f56f2ff60) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7f5f572b8c30) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16) + QLayoutItem (0x0x7f5f56faa1e0) 0 + primary-for QSpacerItem (0x0x7f5f572b8c30) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7f5f572b8c98) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16) + QLayoutItem (0x0x7f5f56faa420) 0 + primary-for QWidgetItem (0x0x7f5f572b8c98) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7f5f572b8d00) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16) + QWidgetItem (0x0x7f5f572b8d68) 0 + primary-for QWidgetItemV2 (0x0x7f5f572b8d00) + QLayoutItem (0x0x7f5f56faa600) 0 + primary-for QWidgetItem (0x0x7f5f572b8d68) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7f5f56faa780) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QLayout::setGeometry +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI7QLayout) +272 0 +280 0 +288 (int (*)(...))__cxa_pure_virtual +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +312 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +320 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QLayoutItem::hasHeightForWidth +352 (int (*)(...))QLayoutItem::heightForWidth +360 (int (*)(...))QLayoutItem::minimumHeightForWidth +368 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7f5f56f5a310) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16) + QObject (0x0x7f5f56faa6c0) 0 + primary-for QLayout (0x0x7f5f56f5a310) + QLayoutItem (0x0x7f5f56faa720) 16 + vptr=((& QLayout::_ZTV7QLayout) + 272) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7f5f56faaa80) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::spacing +120 (int (*)(...))QGridLayout::setSpacing +128 (int (*)(...))QGridLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QGridLayout::addItem +152 (int (*)(...))QGridLayout::expandingDirections +160 (int (*)(...))QGridLayout::minimumSize +168 (int (*)(...))QGridLayout::maximumSize +176 (int (*)(...))QGridLayout::setGeometry +184 (int (*)(...))QGridLayout::itemAt +192 (int (*)(...))QGridLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QGridLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QGridLayout::sizeHint +264 (int (*)(...))QGridLayout::hasHeightForWidth +272 (int (*)(...))QGridLayout::heightForWidth +280 (int (*)(...))QGridLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QGridLayout) +304 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +312 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +320 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +328 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +336 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +352 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +384 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +392 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +400 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7f5f572b8dd0) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16) + QLayout (0x0x7f5f56f5a620) 0 + primary-for QGridLayout (0x0x7f5f572b8dd0) + QObject (0x0x7f5f56faa9c0) 0 + primary-for QLayout (0x0x7f5f56f5a620) + QLayoutItem (0x0x7f5f56faaa20) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 304) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7f5f56faad20) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI10QBoxLayout) +304 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +312 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7f5f572b8e38) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16) + QLayout (0x0x7f5f56f5a690) 0 + primary-for QBoxLayout (0x0x7f5f572b8e38) + QObject (0x0x7f5f56faac60) 0 + primary-for QLayout (0x0x7f5f56f5a690) + QLayoutItem (0x0x7f5f56faacc0) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 304) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7f5f56faaf60) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QHBoxLayout) +304 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +312 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7f5f572b8ea0) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16) + QBoxLayout (0x0x7f5f572b8f08) 0 + primary-for QHBoxLayout (0x0x7f5f572b8ea0) + QLayout (0x0x7f5f56f5a9a0) 0 + primary-for QBoxLayout (0x0x7f5f572b8f08) + QObject (0x0x7f5f56faaea0) 0 + primary-for QLayout (0x0x7f5f56f5a9a0) + QLayoutItem (0x0x7f5f56faaf00) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 304) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7f5f57009120) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QVBoxLayout) +304 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +312 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7f5f572b8f70) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16) + QBoxLayout (0x0x7f5f5700a000) 0 + primary-for QVBoxLayout (0x0x7f5f572b8f70) + QLayout (0x0x7f5f56f5aa10) 0 + primary-for QBoxLayout (0x0x7f5f5700a000) + QObject (0x0x7f5f57009060) 0 + primary-for QLayout (0x0x7f5f56f5aa10) + QLayoutItem (0x0x7f5f570090c0) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 304) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7f5f57009240) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7f5f5700a068) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16) + QObject (0x0x7f5f570091e0) 0 + primary-for QButtonGroup (0x0x7f5f5700a068) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7f5f57009480) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=40 align=8 + base size=40 base align=8 +QCalendarWidget (0x0x7f5f5700a0d0) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16) + QWidget (0x0x7f5f56f5aa80) 0 + primary-for QCalendarWidget (0x0x7f5f5700a0d0) + QObject (0x0x7f5f570093c0) 0 + primary-for QWidget (0x0x7f5f56f5aa80) + QPaintDevice (0x0x7f5f57009420) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7f5f57009900) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))QCheckBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QCheckBox) +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +488 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=40 align=8 + base size=40 base align=8 +QCheckBox (0x0x7f5f5700a138) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16) + QAbstractButton (0x0x7f5f5700a1a0) 0 + primary-for QCheckBox (0x0x7f5f5700a138) + QWidget (0x0x7f5f56f5ae70) 0 + primary-for QAbstractButton (0x0x7f5f5700a1a0) + QObject (0x0x7f5f57009840) 0 + primary-for QWidget (0x0x7f5f56f5ae70) + QPaintDevice (0x0x7f5f570098a0) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 480) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7f5f57009b40) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=40 align=8 + base size=40 base align=8 +QDialog (0x0x7f5f5700a208) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16) + QWidget (0x0x7f5f56f5aee0) 0 + primary-for QDialog (0x0x7f5f5700a208) + QObject (0x0x7f5f57009a80) 0 + primary-for QWidget (0x0x7f5f56f5aee0) + QPaintDevice (0x0x7f5f57009ae0) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7f5f57009d80) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=40 align=8 + base size=40 base align=8 +QColorDialog (0x0x7f5f5700a270) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16) + QDialog (0x0x7f5f5700a2d8) 0 + primary-for QColorDialog (0x0x7f5f5700a270) + QWidget (0x0x7f5f57048070) 0 + primary-for QDialog (0x0x7f5f5700a2d8) + QObject (0x0x7f5f57009cc0) 0 + primary-for QWidget (0x0x7f5f57048070) + QPaintDevice (0x0x7f5f57009d20) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7f5f57074300) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7f5f57074420) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 109 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QColumnView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QColumnView::setModel +480 (int (*)(...))QColumnView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QColumnView::visualRect +504 (int (*)(...))QColumnView::scrollTo +512 (int (*)(...))QColumnView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QColumnView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QColumnView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QColumnView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QColumnView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QColumnView::moveCursor +704 (int (*)(...))QColumnView::horizontalOffset +712 (int (*)(...))QColumnView::verticalOffset +720 (int (*)(...))QColumnView::isIndexHidden +728 (int (*)(...))QColumnView::setSelection +736 (int (*)(...))QColumnView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QColumnView::createColumn +792 (int (*)(...))-16 +800 (int (*)(...))(& _ZTI11QColumnView) +808 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +816 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=40 align=8 + base size=40 base align=8 +QColumnView (0x0x7f5f5700a478) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16) + QAbstractItemView (0x0x7f5f5700a4e0) 0 + primary-for QColumnView (0x0x7f5f5700a478) + QAbstractScrollArea (0x0x7f5f5700a548) 0 + primary-for QAbstractItemView (0x0x7f5f5700a4e0) + QFrame (0x0x7f5f5700a5b0) 0 + primary-for QAbstractScrollArea (0x0x7f5f5700a548) + QWidget (0x0x7f5f57048380) 0 + primary-for QFrame (0x0x7f5f5700a5b0) + QObject (0x0x7f5f57074360) 0 + primary-for QWidget (0x0x7f5f57048380) + QPaintDevice (0x0x7f5f570743c0) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 808) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7f5f57074660) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QComboBox) +480 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +488 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=40 align=8 + base size=40 base align=8 +QComboBox (0x0x7f5f5700a618) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16) + QWidget (0x0x7f5f570483f0) 0 + primary-for QComboBox (0x0x7f5f5700a618) + QObject (0x0x7f5f570745a0) 0 + primary-for QWidget (0x0x7f5f570483f0) + QPaintDevice (0x0x7f5f57074600) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 480) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7f5f57074c00) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QPushButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QPushButton) +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +488 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=40 align=8 + base size=40 base align=8 +QPushButton (0x0x7f5f5700a680) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16) + QAbstractButton (0x0x7f5f5700a6e8) 0 + primary-for QPushButton (0x0x7f5f5700a680) + QWidget (0x0x7f5f570488c0) 0 + primary-for QAbstractButton (0x0x7f5f5700a6e8) + QObject (0x0x7f5f57074b40) 0 + primary-for QWidget (0x0x7f5f570488c0) + QPaintDevice (0x0x7f5f57074ba0) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 480) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7f5f57074e40) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QCommandLinkButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI18QCommandLinkButton) +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +488 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=40 align=8 + base size=40 base align=8 +QCommandLinkButton (0x0x7f5f5700a750) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16) + QPushButton (0x0x7f5f5700a7b8) 0 + primary-for QCommandLinkButton (0x0x7f5f5700a750) + QAbstractButton (0x0x7f5f5700a820) 0 + primary-for QPushButton (0x0x7f5f5700a7b8) + QWidget (0x0x7f5f57048930) 0 + primary-for QAbstractButton (0x0x7f5f5700a820) + QObject (0x0x7f5f57074d80) 0 + primary-for QWidget (0x0x7f5f57048930) + QPaintDevice (0x0x7f5f57074de0) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 480) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7f5f570d7060) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7f5f5700a888) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16) + QStyle (0x0x7f5f5700a8f0) 0 + primary-for QCommonStyle (0x0x7f5f5700a888) + QObject (0x0x7f5f570d7000) 0 + primary-for QStyle (0x0x7f5f5700a8f0) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7f5f570d7240) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7f5f5700a958) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16) + QObject (0x0x7f5f570d71e0) 0 + primary-for QCompleter (0x0x7f5f5700a958) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7f5f570d75a0) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7f5f5700a9c0) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16) + QObject (0x0x7f5f570d7540) 0 + primary-for QDataWidgetMapper (0x0x7f5f5700a9c0) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7f5f570d78a0) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QDateTimeEdit) +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +520 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=40 align=8 + base size=40 base align=8 +QDateTimeEdit (0x0x7f5f5700aa28) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16) + QAbstractSpinBox (0x0x7f5f5700aa90) 0 + primary-for QDateTimeEdit (0x0x7f5f5700aa28) + QWidget (0x0x7f5f57048d20) 0 + primary-for QAbstractSpinBox (0x0x7f5f5700aa90) + QObject (0x0x7f5f570d77e0) 0 + primary-for QWidget (0x0x7f5f57048d20) + QPaintDevice (0x0x7f5f570d7840) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 512) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7f5f570d7e40) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QTimeEdit) +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +520 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=40 align=8 + base size=40 base align=8 +QTimeEdit (0x0x7f5f5700ac30) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16) + QDateTimeEdit (0x0x7f5f5700ac98) 0 + primary-for QTimeEdit (0x0x7f5f5700ac30) + QAbstractSpinBox (0x0x7f5f5700ad00) 0 + primary-for QDateTimeEdit (0x0x7f5f5700ac98) + QWidget (0x0x7f5f57111230) 0 + primary-for QAbstractSpinBox (0x0x7f5f5700ad00) + QObject (0x0x7f5f570d7d80) 0 + primary-for QWidget (0x0x7f5f57111230) + QPaintDevice (0x0x7f5f570d7de0) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 512) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7f5f56d44000) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QDateEdit) +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +520 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=40 align=8 + base size=40 base align=8 +QDateEdit (0x0x7f5f5700ad68) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16) + QDateTimeEdit (0x0x7f5f5700add0) 0 + primary-for QDateEdit (0x0x7f5f5700ad68) + QAbstractSpinBox (0x0x7f5f5700ae38) 0 + primary-for QDateTimeEdit (0x0x7f5f5700add0) + QWidget (0x0x7f5f571112a0) 0 + primary-for QAbstractSpinBox (0x0x7f5f5700ae38) + QObject (0x0x7f5f570d7f00) 0 + primary-for QWidget (0x0x7f5f571112a0) + QPaintDevice (0x0x7f5f570d7f60) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 512) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7f5f56d442a0) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))QDial::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI5QDial) +464 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +472 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=40 align=8 + base size=40 base align=8 +QDial (0x0x7f5f5700aea0) 0 + vptr=((& QDial::_ZTV5QDial) + 16) + QAbstractSlider (0x0x7f5f5700af08) 0 + primary-for QDial (0x0x7f5f5700aea0) + QWidget (0x0x7f5f57111310) 0 + primary-for QAbstractSlider (0x0x7f5f5700af08) + QObject (0x0x7f5f56d441e0) 0 + primary-for QWidget (0x0x7f5f57111310) + QPaintDevice (0x0x7f5f56d44240) 16 + vptr=((& QDial::_ZTV5QDial) + 464) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7f5f56d444e0) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=40 align=8 + base size=40 base align=8 +QDialogButtonBox (0x0x7f5f5700af70) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16) + QWidget (0x0x7f5f57111380) 0 + primary-for QDialogButtonBox (0x0x7f5f5700af70) + QObject (0x0x7f5f56d44420) 0 + primary-for QWidget (0x0x7f5f57111380) + QPaintDevice (0x0x7f5f56d44480) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7f5f56d44ae0) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDockWidget::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QDockWidget) +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +464 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=40 align=8 + base size=40 base align=8 +QDockWidget (0x0x7f5f56d7a138) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16) + QWidget (0x0x7f5f56d67460) 0 + primary-for QDockWidget (0x0x7f5f56d7a138) + QObject (0x0x7f5f56d44a20) 0 + primary-for QWidget (0x0x7f5f56d67460) + QPaintDevice (0x0x7f5f56d44a80) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 456) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7f5f56dbd120) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7f5f56dbd780) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=40 align=8 + base size=40 base align=8 +QErrorMessage (0x0x7f5f56d7a410) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16) + QDialog (0x0x7f5f56d7a478) 0 + primary-for QErrorMessage (0x0x7f5f56d7a410) + QWidget (0x0x7f5f56d67e70) 0 + primary-for QDialog (0x0x7f5f56d7a478) + QObject (0x0x7f5f56dbd6c0) 0 + primary-for QWidget (0x0x7f5f56d67e70) + QPaintDevice (0x0x7f5f56dbd720) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7f5f56dbd9c0) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=40 align=8 + base size=40 base align=8 +QFileDialog (0x0x7f5f56d7a4e0) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16) + QDialog (0x0x7f5f56d7a548) 0 + primary-for QFileDialog (0x0x7f5f56d7a4e0) + QWidget (0x0x7f5f56d67ee0) 0 + primary-for QDialog (0x0x7f5f56d7a548) + QObject (0x0x7f5f56dbd900) 0 + primary-for QWidget (0x0x7f5f56d67ee0) + QPaintDevice (0x0x7f5f56dbd960) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7f5f56d7a6e8) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16) + QAbstractFileIconProvider (0x0x7f5f56e262a0) 0 + primary-for QFileIconProvider (0x0x7f5f56d7a6e8) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7f5f56e26480) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFocusFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QFocusFrame) +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +464 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=40 align=8 + base size=40 base align=8 +QFocusFrame (0x0x7f5f56d7a750) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16) + QWidget (0x0x7f5f56def850) 0 + primary-for QFocusFrame (0x0x7f5f56d7a750) + QObject (0x0x7f5f56e263c0) 0 + primary-for QWidget (0x0x7f5f56def850) + QPaintDevice (0x0x7f5f56e26420) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 456) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7f5f56e266c0) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI13QFontComboBox) +480 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +488 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=40 align=8 + base size=40 base align=8 +QFontComboBox (0x0x7f5f56d7a7b8) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16) + QComboBox (0x0x7f5f56d7a820) 0 + primary-for QFontComboBox (0x0x7f5f56d7a7b8) + QWidget (0x0x7f5f56def8c0) 0 + primary-for QComboBox (0x0x7f5f56d7a820) + QObject (0x0x7f5f56e26600) 0 + primary-for QWidget (0x0x7f5f56def8c0) + QPaintDevice (0x0x7f5f56e26660) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 480) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7f5f56e26cc0) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=40 align=8 + base size=40 base align=8 +QFontDialog (0x0x7f5f56d7a9c0) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16) + QDialog (0x0x7f5f56d7aa28) 0 + primary-for QFontDialog (0x0x7f5f56d7a9c0) + QWidget (0x0x7f5f56defb60) 0 + primary-for QDialog (0x0x7f5f56d7aa28) + QObject (0x0x7f5f56e26c00) 0 + primary-for QWidget (0x0x7f5f56defb60) + QPaintDevice (0x0x7f5f56e26c60) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7f5f56e8b300) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7f5f56e8b360) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::spacing +120 (int (*)(...))QFormLayout::setSpacing +128 (int (*)(...))QFormLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QFormLayout::addItem +152 (int (*)(...))QFormLayout::expandingDirections +160 (int (*)(...))QFormLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QFormLayout::setGeometry +184 (int (*)(...))QFormLayout::itemAt +192 (int (*)(...))QFormLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QFormLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QFormLayout::sizeHint +264 (int (*)(...))QFormLayout::hasHeightForWidth +272 (int (*)(...))QFormLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI11QFormLayout) +296 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +304 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +312 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +320 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +344 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +376 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7f5f56d7abc8) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16) + QLayout (0x0x7f5f56defe70) 0 + primary-for QFormLayout (0x0x7f5f56d7abc8) + QObject (0x0x7f5f56e8b240) 0 + primary-for QLayout (0x0x7f5f56defe70) + QLayoutItem (0x0x7f5f56e8b2a0) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 296) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7f5f56ecbe40) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7f5f56ed5680) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16) + QObject (0x0x7f5f56ecbde0) 0 + primary-for QGesture (0x0x7f5f56ed5680) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7f5f56ee9060) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7f5f56ed56e8) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16) + QGesture (0x0x7f5f56ed5750) 0 + primary-for QPanGesture (0x0x7f5f56ed56e8) + QObject (0x0x7f5f56ee9000) 0 + primary-for QGesture (0x0x7f5f56ed5750) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7f5f56ee9240) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7f5f56ed57b8) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16) + QGesture (0x0x7f5f56ed5820) 0 + primary-for QPinchGesture (0x0x7f5f56ed57b8) + QObject (0x0x7f5f56ee91e0) 0 + primary-for QGesture (0x0x7f5f56ed5820) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7f5f56ee99c0) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7f5f56ed59c0) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16) + QGesture (0x0x7f5f56ed5a28) 0 + primary-for QSwipeGesture (0x0x7f5f56ed59c0) + QObject (0x0x7f5f56ee9960) 0 + primary-for QGesture (0x0x7f5f56ed5a28) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7f5f56ee9c60) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7f5f56ed5a90) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16) + QGesture (0x0x7f5f56ed5af8) 0 + primary-for QTapGesture (0x0x7f5f56ed5a90) + QObject (0x0x7f5f56ee9c00) 0 + primary-for QGesture (0x0x7f5f56ed5af8) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7f5f56ee9e40) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7f5f56ed5b60) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16) + QGesture (0x0x7f5f56ed5bc8) 0 + primary-for QTapAndHoldGesture (0x0x7f5f56ed5b60) + QObject (0x0x7f5f56ee9de0) 0 + primary-for QGesture (0x0x7f5f56ed5bc8) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGestureEvent + size=64 align=8 + base size=64 base align=8 +QGestureEvent (0x0x7f5f56ed5c30) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16) + QEvent (0x0x7f5f56b34000) 0 + primary-for QGestureEvent (0x0x7f5f56ed5c30) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0 +24 0 +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7f5f56b34c60) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7f5f56b34900) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7f5f56c49180) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0 +48 0 +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0 +136 0 +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7f5f56bd3cb0) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16) + QObject (0x0x7f5f56c490c0) 0 + primary-for QGraphicsObject (0x0x7f5f56bd3cb0) + QGraphicsItem (0x0x7f5f56c49120) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7f5f56b466e8) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16) + QGraphicsItem (0x0x7f5f56c49240) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f5f56b466e8) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7f5f56b46750) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f5f56b467b8) 0 + primary-for QGraphicsPathItem (0x0x7f5f56b46750) + QGraphicsItem (0x0x7f5f56c49360) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f5f56b467b8) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7f5f56b46820) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f5f56b46888) 0 + primary-for QGraphicsRectItem (0x0x7f5f56b46820) + QGraphicsItem (0x0x7f5f56c49480) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f5f56b46888) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7f5f56b468f0) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f5f56b46958) 0 + primary-for QGraphicsEllipseItem (0x0x7f5f56b468f0) + QGraphicsItem (0x0x7f5f56c49600) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f5f56b46958) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7f5f56b469c0) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f5f56b46a28) 0 + primary-for QGraphicsPolygonItem (0x0x7f5f56b469c0) + QGraphicsItem (0x0x7f5f56c49780) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f5f56b46a28) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7f5f56b46a90) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16) + QGraphicsItem (0x0x7f5f56c498a0) 0 + primary-for QGraphicsLineItem (0x0x7f5f56b46a90) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7f5f56b46af8) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16) + QGraphicsItem (0x0x7f5f56c49a20) 0 + primary-for QGraphicsPixmapItem (0x0x7f5f56b46af8) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7f5f56c49c60) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7f5f56b46b60) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16) + QGraphicsObject (0x0x7f5f56c95150) 0 + primary-for QGraphicsTextItem (0x0x7f5f56b46b60) + QObject (0x0x7f5f56c49ba0) 0 + primary-for QGraphicsObject (0x0x7f5f56c95150) + QGraphicsItem (0x0x7f5f56c49c00) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7f5f56b46c98) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f5f56b46d00) 0 + primary-for QGraphicsSimpleTextItem (0x0x7f5f56b46c98) + QGraphicsItem (0x0x7f5f56c49f00) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f5f56b46d00) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7f5f56b46d68) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16) + QGraphicsItem (0x0x7f5f56cc4060) 0 + primary-for QGraphicsItemGroup (0x0x7f5f56b46d68) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7f5f56cc4360) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))QGraphicsLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7f5f56b46dd0) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16) + QGraphicsLayoutItem (0x0x7f5f56cc4a20) 0 + primary-for QGraphicsLayout (0x0x7f5f56b46dd0) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7f5f56cc4d20) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7f5f56b46e38) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16) + QObject (0x0x7f5f56cc4cc0) 0 + primary-for QGraphicsAnchor (0x0x7f5f56b46e38) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsAnchorLayout::sizeHint +72 (int (*)(...))QGraphicsAnchorLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsAnchorLayout::count +96 (int (*)(...))QGraphicsAnchorLayout::itemAt +104 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7f5f56b46ea0) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16) + QGraphicsLayout (0x0x7f5f56b46f08) 0 + primary-for QGraphicsAnchorLayout (0x0x7f5f56b46ea0) + QGraphicsLayoutItem (0x0x7f5f56cc4ea0) 0 + primary-for QGraphicsLayout (0x0x7f5f56b46f08) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7f5f56d0c060) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7f5f56b46f70) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16) + QObject (0x0x7f5f56d0c000) 0 + primary-for QGraphicsEffect (0x0x7f5f56b46f70) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7f5f56d0c600) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7f5f56d1b0d0) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16) + QGraphicsEffect (0x0x7f5f56d1b138) 0 + primary-for QGraphicsColorizeEffect (0x0x7f5f56d1b0d0) + QObject (0x0x7f5f56d0c5a0) 0 + primary-for QGraphicsEffect (0x0x7f5f56d1b138) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7f5f56d0c7e0) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7f5f56d1b1a0) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16) + QGraphicsEffect (0x0x7f5f56d1b208) 0 + primary-for QGraphicsBlurEffect (0x0x7f5f56d1b1a0) + QObject (0x0x7f5f56d0c780) 0 + primary-for QGraphicsEffect (0x0x7f5f56d1b208) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7f5f56d0ce40) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7f5f56d1b3a8) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16) + QGraphicsEffect (0x0x7f5f56d1b410) 0 + primary-for QGraphicsDropShadowEffect (0x0x7f5f56d1b3a8) + QObject (0x0x7f5f56d0cde0) 0 + primary-for QGraphicsEffect (0x0x7f5f56d1b410) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7f5f569742a0) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7f5f56d1b478) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16) + QGraphicsEffect (0x0x7f5f56d1b4e0) 0 + primary-for QGraphicsOpacityEffect (0x0x7f5f56d1b478) + QObject (0x0x7f5f56974240) 0 + primary-for QGraphicsEffect (0x0x7f5f56d1b4e0) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsGridLayout::sizeHint +72 (int (*)(...))QGraphicsGridLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsGridLayout::count +96 (int (*)(...))QGraphicsGridLayout::itemAt +104 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7f5f56d1b548) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16) + QGraphicsLayout (0x0x7f5f56d1b5b0) 0 + primary-for QGraphicsGridLayout (0x0x7f5f56d1b548) + QGraphicsLayoutItem (0x0x7f5f56974420) 0 + primary-for QGraphicsLayout (0x0x7f5f56d1b5b0) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7f5f56974600) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7f5f56d1b6e8) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16) + QObject (0x0x7f5f569745a0) 0 + primary-for QGraphicsItemAnimation (0x0x7f5f56d1b6e8) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsLinearLayout::sizeHint +72 (int (*)(...))QGraphicsLinearLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsLinearLayout::count +96 (int (*)(...))QGraphicsLinearLayout::itemAt +104 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7f5f56d1b750) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16) + QGraphicsLayout (0x0x7f5f56d1b7b8) 0 + primary-for QGraphicsLinearLayout (0x0x7f5f56d1b750) + QGraphicsLayoutItem (0x0x7f5f569746c0) 0 + primary-for QGraphicsLayout (0x0x7f5f56d1b7b8) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7f5f569749c0) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 93 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsLayoutItem::isEmpty +736 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7f5f56c95d20) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16) + QGraphicsObject (0x0x7f5f56c95d90) 0 + primary-for QGraphicsWidget (0x0x7f5f56c95d20) + QObject (0x0x7f5f569748a0) 0 + primary-for QGraphicsObject (0x0x7f5f56c95d90) + QGraphicsItem (0x0x7f5f56974900) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376) + QGraphicsLayoutItem (0x0x7f5f56974960) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7f5f56974e40) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsLayoutItem::isEmpty +856 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7f5f56d1b8f0) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16) + QGraphicsWidget (0x0x7f5f56c95ee0) 0 + primary-for QGraphicsProxyWidget (0x0x7f5f56d1b8f0) + QGraphicsObject (0x0x7f5f56c95f50) 0 + primary-for QGraphicsWidget (0x0x7f5f56c95ee0) + QObject (0x0x7f5f56974d20) 0 + primary-for QGraphicsObject (0x0x7f5f56c95f50) + QGraphicsItem (0x0x7f5f56974d80) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496) + QGraphicsLayoutItem (0x0x7f5f56974de0) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7f5f569e21e0) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems +272 (int (*)(...))QGraphicsScene::focusNextPrevChild + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7f5f56d1baf8) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16) + QObject (0x0x7f5f569e2180) 0 + primary-for QGraphicsScene (0x0x7f5f56d1baf8) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneEvent (0x0x7f5f56a27548) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16) + QEvent (0x0x7f5f56a614e0) 0 + primary-for QGraphicsSceneEvent (0x0x7f5f56a27548) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMouseEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMouseEvent (0x0x7f5f56a275b0) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16) + QGraphicsSceneEvent (0x0x7f5f56a27618) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7f5f56a275b0) + QEvent (0x0x7f5f56a616c0) 0 + primary-for QGraphicsSceneEvent (0x0x7f5f56a27618) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneWheelEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneWheelEvent (0x0x7f5f56a27680) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16) + QGraphicsSceneEvent (0x0x7f5f56a276e8) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7f5f56a27680) + QEvent (0x0x7f5f56a617e0) 0 + primary-for QGraphicsSceneEvent (0x0x7f5f56a276e8) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneContextMenuEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7f5f56a27750) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16) + QGraphicsSceneEvent (0x0x7f5f56a277b8) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7f5f56a27750) + QEvent (0x0x7f5f56a61900) 0 + primary-for QGraphicsSceneEvent (0x0x7f5f56a277b8) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHoverEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHoverEvent (0x0x7f5f56a27820) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16) + QGraphicsSceneEvent (0x0x7f5f56a27888) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7f5f56a27820) + QEvent (0x0x7f5f56a61a20) 0 + primary-for QGraphicsSceneEvent (0x0x7f5f56a27888) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHelpEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHelpEvent (0x0x7f5f56a278f0) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16) + QGraphicsSceneEvent (0x0x7f5f56a27958) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7f5f56a278f0) + QEvent (0x0x7f5f56a61b40) 0 + primary-for QGraphicsSceneEvent (0x0x7f5f56a27958) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneDragDropEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneDragDropEvent (0x0x7f5f56a279c0) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16) + QGraphicsSceneEvent (0x0x7f5f56a27a28) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7f5f56a279c0) + QEvent (0x0x7f5f56a61c60) 0 + primary-for QGraphicsSceneEvent (0x0x7f5f56a27a28) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneResizeEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneResizeEvent (0x0x7f5f56a27a90) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16) + QGraphicsSceneEvent (0x0x7f5f56a27af8) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7f5f56a27a90) + QEvent (0x0x7f5f56a61d80) 0 + primary-for QGraphicsSceneEvent (0x0x7f5f56a27af8) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMoveEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMoveEvent (0x0x7f5f56a27b60) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16) + QGraphicsSceneEvent (0x0x7f5f56a27bc8) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7f5f56a27b60) + QEvent (0x0x7f5f56a61ea0) 0 + primary-for QGraphicsSceneEvent (0x0x7f5f56a27bc8) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7f5f56abc060) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7f5f56a27c30) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16) + QObject (0x0x7f5f56abc000) 0 + primary-for QGraphicsTransform (0x0x7f5f56a27c30) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7f5f56abc240) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7f5f56a27c98) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16) + QGraphicsTransform (0x0x7f5f56a27d00) 0 + primary-for QGraphicsScale (0x0x7f5f56a27c98) + QObject (0x0x7f5f56abc1e0) 0 + primary-for QGraphicsTransform (0x0x7f5f56a27d00) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7f5f56abc420) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7f5f56a27d68) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16) + QGraphicsTransform (0x0x7f5f56a27dd0) 0 + primary-for QGraphicsRotation (0x0x7f5f56a27d68) + QObject (0x0x7f5f56abc3c0) 0 + primary-for QGraphicsTransform (0x0x7f5f56a27dd0) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7f5f56abc660) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QScrollArea::scrollContentsBy +464 (int (*)(...))QScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QScrollArea) +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +496 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=40 align=8 + base size=40 base align=8 +QScrollArea (0x0x7f5f56a27e38) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16) + QAbstractScrollArea (0x0x7f5f56a27ea0) 0 + primary-for QScrollArea (0x0x7f5f56a27e38) + QFrame (0x0x7f5f56a27f08) 0 + primary-for QAbstractScrollArea (0x0x7f5f56a27ea0) + QWidget (0x0x7f5f569e1770) 0 + primary-for QFrame (0x0x7f5f56a27f08) + QObject (0x0x7f5f56abc5a0) 0 + primary-for QWidget (0x0x7f5f569e1770) + QPaintDevice (0x0x7f5f56abc600) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 488) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7f5f56abc8a0) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QGraphicsView::setupViewport +448 (int (*)(...))QGraphicsView::viewportEvent +456 (int (*)(...))QGraphicsView::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QGraphicsView::drawBackground +480 (int (*)(...))QGraphicsView::drawForeground +488 (int (*)(...))QGraphicsView::drawItems +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QGraphicsView) +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +520 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=40 align=8 + base size=40 base align=8 +QGraphicsView (0x0x7f5f56a27f70) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16) + QAbstractScrollArea (0x0x7f5f56a274e0) 0 + primary-for QGraphicsView (0x0x7f5f56a27f70) + QFrame (0x0x7f5f56ae1000) 0 + primary-for QAbstractScrollArea (0x0x7f5f56a274e0) + QWidget (0x0x7f5f569e17e0) 0 + primary-for QFrame (0x0x7f5f56ae1000) + QObject (0x0x7f5f56abc7e0) 0 + primary-for QWidget (0x0x7f5f569e17e0) + QPaintDevice (0x0x7f5f56abc840) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 512) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7f5f56730780) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QGroupBox::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QGroupBox) +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +464 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=40 align=8 + base size=40 base align=8 +QGroupBox (0x0x7f5f56ae12d8) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16) + QWidget (0x0x7f5f569e1f50) 0 + primary-for QGroupBox (0x0x7f5f56ae12d8) + QObject (0x0x7f5f567306c0) 0 + primary-for QWidget (0x0x7f5f569e1f50) + QPaintDevice (0x0x7f5f56730720) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 456) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7f5f567309c0) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QHeaderView::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QHeaderView::viewportEvent +456 (int (*)(...))QHeaderView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QHeaderView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QHeaderView::visualRect +504 (int (*)(...))QHeaderView::scrollTo +512 (int (*)(...))QHeaderView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QHeaderView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QHeaderView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QHeaderView::dataChanged +584 (int (*)(...))QHeaderView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QHeaderView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QHeaderView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QHeaderView::moveCursor +704 (int (*)(...))QHeaderView::horizontalOffset +712 (int (*)(...))QHeaderView::verticalOffset +720 (int (*)(...))QHeaderView::isIndexHidden +728 (int (*)(...))QHeaderView::setSelection +736 (int (*)(...))QHeaderView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QHeaderView::paintSection +792 (int (*)(...))QHeaderView::sectionSizeFromContents +800 (int (*)(...))QHeaderView::initStyleOptionForIndex +808 (int (*)(...))QHeaderView::initStyleOption +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QHeaderView) +832 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +840 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=40 align=8 + base size=40 base align=8 +QHeaderView (0x0x7f5f56ae1340) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16) + QAbstractItemView (0x0x7f5f56ae13a8) 0 + primary-for QHeaderView (0x0x7f5f56ae1340) + QAbstractScrollArea (0x0x7f5f56ae1410) 0 + primary-for QAbstractItemView (0x0x7f5f56ae13a8) + QFrame (0x0x7f5f56ae1478) 0 + primary-for QAbstractScrollArea (0x0x7f5f56ae1410) + QWidget (0x0x7f5f56760000) 0 + primary-for QFrame (0x0x7f5f56ae1478) + QObject (0x0x7f5f56730900) 0 + primary-for QWidget (0x0x7f5f56760000) + QPaintDevice (0x0x7f5f56730960) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 832) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7f5f56730e40) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QLineEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QLineEdit::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QLineEdit::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QLineEdit) +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +464 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=40 align=8 + base size=40 base align=8 +QLineEdit (0x0x7f5f56ae14e0) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16) + QWidget (0x0x7f5f567602a0) 0 + primary-for QLineEdit (0x0x7f5f56ae14e0) + QObject (0x0x7f5f56730d80) 0 + primary-for QWidget (0x0x7f5f567602a0) + QPaintDevice (0x0x7f5f56730de0) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 456) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7f5f567a2240) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=40 align=8 + base size=40 base align=8 +QInputDialog (0x0x7f5f56ae1548) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16) + QDialog (0x0x7f5f56ae15b0) 0 + primary-for QInputDialog (0x0x7f5f56ae1548) + QWidget (0x0x7f5f567605b0) 0 + primary-for QDialog (0x0x7f5f56ae15b0) + QObject (0x0x7f5f567a2180) 0 + primary-for QWidget (0x0x7f5f567605b0) + QPaintDevice (0x0x7f5f567a21e0) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7f5f567a2720) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7f5f56ae1750) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f5f56ae17b8) 0 + primary-for QItemDelegate (0x0x7f5f56ae1750) + QObject (0x0x7f5f567a26c0) 0 + primary-for QAbstractItemDelegate (0x0x7f5f56ae17b8) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7f5f567a28a0) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7f5f567a2c00) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7f5f56806120) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=40 align=8 + base size=40 base align=8 +QKeySequenceEdit (0x0x7f5f56ae18f0) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16) + QWidget (0x0x7f5f567608c0) 0 + primary-for QKeySequenceEdit (0x0x7f5f56ae18f0) + QObject (0x0x7f5f56806060) 0 + primary-for QWidget (0x0x7f5f567608c0) + QPaintDevice (0x0x7f5f568060c0) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7f5f56806360) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QLabel) +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +464 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=40 align=8 + base size=40 base align=8 +QLabel (0x0x7f5f56ae1958) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16) + QFrame (0x0x7f5f56ae19c0) 0 + primary-for QLabel (0x0x7f5f56ae1958) + QWidget (0x0x7f5f56760930) 0 + primary-for QFrame (0x0x7f5f56ae19c0) + QObject (0x0x7f5f568062a0) 0 + primary-for QWidget (0x0x7f5f56760930) + QPaintDevice (0x0x7f5f56806300) 16 + vptr=((& QLabel::_ZTV6QLabel) + 456) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7f5f56806660) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QLCDNumber) +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +464 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=40 align=8 + base size=40 base align=8 +QLCDNumber (0x0x7f5f56ae1a28) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16) + QFrame (0x0x7f5f56ae1a90) 0 + primary-for QLCDNumber (0x0x7f5f56ae1a28) + QWidget (0x0x7f5f567609a0) 0 + primary-for QFrame (0x0x7f5f56ae1a90) + QObject (0x0x7f5f568065a0) 0 + primary-for QWidget (0x0x7f5f567609a0) + QPaintDevice (0x0x7f5f56806600) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 456) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7f5f56806a20) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QListView) +800 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +808 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=40 align=8 + base size=40 base align=8 +QListView (0x0x7f5f56ae1af8) 0 + vptr=((& QListView::_ZTV9QListView) + 16) + QAbstractItemView (0x0x7f5f56ae1b60) 0 + primary-for QListView (0x0x7f5f56ae1af8) + QAbstractScrollArea (0x0x7f5f56ae1bc8) 0 + primary-for QAbstractItemView (0x0x7f5f56ae1b60) + QFrame (0x0x7f5f56ae1c30) 0 + primary-for QAbstractScrollArea (0x0x7f5f56ae1bc8) + QWidget (0x0x7f5f56760d20) 0 + primary-for QFrame (0x0x7f5f56ae1c30) + QObject (0x0x7f5f56806960) 0 + primary-for QWidget (0x0x7f5f56760d20) + QPaintDevice (0x0x7f5f568069c0) 16 + vptr=((& QListView::_ZTV9QListView) + 800) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::data +48 (int (*)(...))QListWidgetItem::setData +56 (int (*)(...))QListWidgetItem::operator< +64 (int (*)(...))QListWidgetItem::read +72 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=40 align=8 + base size=36 base align=8 +QListWidgetItem (0x0x7f5f56806f60) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7f5f56870a20) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QListWidget::setModel +480 (int (*)(...))QListWidget::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))QListWidget::mimeTypes +792 (int (*)(...))QListWidget::mimeData +800 (int (*)(...))QListWidget::dropMimeData +808 (int (*)(...))QListWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QListWidget) +832 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +840 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=40 align=8 + base size=40 base align=8 +QListWidget (0x0x7f5f56ae1c98) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16) + QListView (0x0x7f5f56ae1d00) 0 + primary-for QListWidget (0x0x7f5f56ae1c98) + QAbstractItemView (0x0x7f5f56ae1d68) 0 + primary-for QListView (0x0x7f5f56ae1d00) + QAbstractScrollArea (0x0x7f5f56ae1dd0) 0 + primary-for QAbstractItemView (0x0x7f5f56ae1d68) + QFrame (0x0x7f5f56ae1e38) 0 + primary-for QAbstractScrollArea (0x0x7f5f56ae1dd0) + QWidget (0x0x7f5f56840380) 0 + primary-for QFrame (0x0x7f5f56ae1e38) + QObject (0x0x7f5f56870960) 0 + primary-for QWidget (0x0x7f5f56840380) + QPaintDevice (0x0x7f5f568709c0) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 832) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7f5f56870f00) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=40 align=8 + base size=40 base align=8 +QMainWindow (0x0x7f5f56ae1ea0) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16) + QWidget (0x0x7f5f568403f0) 0 + primary-for QMainWindow (0x0x7f5f56ae1ea0) + QObject (0x0x7f5f56870e40) 0 + primary-for QWidget (0x0x7f5f568403f0) + QPaintDevice (0x0x7f5f56870ea0) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7f5f568b3600) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QMdiArea::setupViewport +448 (int (*)(...))QMdiArea::viewportEvent +456 (int (*)(...))QMdiArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI8QMdiArea) +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +496 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=40 align=8 + base size=40 base align=8 +QMdiArea (0x0x7f5f568b5068) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16) + QAbstractScrollArea (0x0x7f5f568b50d0) 0 + primary-for QMdiArea (0x0x7f5f568b5068) + QFrame (0x0x7f5f568b5138) 0 + primary-for QAbstractScrollArea (0x0x7f5f568b50d0) + QWidget (0x0x7f5f56840700) 0 + primary-for QFrame (0x0x7f5f568b5138) + QObject (0x0x7f5f568b3540) 0 + primary-for QWidget (0x0x7f5f56840700) + QPaintDevice (0x0x7f5f568b35a0) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 488) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7f5f568b3cc0) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=40 align=8 + base size=40 base align=8 +QMdiSubWindow (0x0x7f5f568b52d8) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16) + QWidget (0x0x7f5f56840a80) 0 + primary-for QMdiSubWindow (0x0x7f5f568b52d8) + QObject (0x0x7f5f568b3c00) 0 + primary-for QWidget (0x0x7f5f56840a80) + QPaintDevice (0x0x7f5f568b3c60) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7f5f56920240) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))QMenu::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QMenu) +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +464 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=40 align=8 + base size=40 base align=8 +QMenu (0x0x7f5f568b5478) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16) + QWidget (0x0x7f5f56840cb0) 0 + primary-for QMenu (0x0x7f5f568b5478) + QObject (0x0x7f5f56920180) 0 + primary-for QWidget (0x0x7f5f56840cb0) + QPaintDevice (0x0x7f5f569201e0) 16 + vptr=((& QMenu::_ZTV5QMenu) + 456) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7f5f56920600) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMenuBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QMenuBar) +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +464 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=40 align=8 + base size=40 base align=8 +QMenuBar (0x0x7f5f568b54e0) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16) + QWidget (0x0x7f5f56840d20) 0 + primary-for QMenuBar (0x0x7f5f568b54e0) + QObject (0x0x7f5f56920540) 0 + primary-for QWidget (0x0x7f5f56840d20) + QPaintDevice (0x0x7f5f569205a0) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 456) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7f5f56920900) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=40 align=8 + base size=40 base align=8 +QMessageBox (0x0x7f5f568b5548) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16) + QDialog (0x0x7f5f568b55b0) 0 + primary-for QMessageBox (0x0x7f5f568b5548) + QWidget (0x0x7f5f56840d90) 0 + primary-for QDialog (0x0x7f5f568b55b0) + QObject (0x0x7f5f56920840) 0 + primary-for QWidget (0x0x7f5f56840d90) + QPaintDevice (0x0x7f5f569208a0) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7f5f565c1180) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7f5f565c11e0) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextEdit::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI9QTextEdit) +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +536 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=40 align=8 + base size=40 base align=8 +QTextEdit (0x0x7f5f568b5750) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16) + QAbstractScrollArea (0x0x7f5f568b57b8) 0 + primary-for QTextEdit (0x0x7f5f568b5750) + QFrame (0x0x7f5f568b5820) 0 + primary-for QAbstractScrollArea (0x0x7f5f568b57b8) + QWidget (0x0x7f5f56576150) 0 + primary-for QFrame (0x0x7f5f568b5820) + QObject (0x0x7f5f565c10c0) 0 + primary-for QWidget (0x0x7f5f56576150) + QPaintDevice (0x0x7f5f565c1120) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 528) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7f5f565c1a20) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QPlainTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QPlainTextEdit::loadResource +480 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +488 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +496 (int (*)(...))QPlainTextEdit::insertFromMimeData +504 (int (*)(...))QPlainTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI14QPlainTextEdit) +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +536 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=40 align=8 + base size=40 base align=8 +QPlainTextEdit (0x0x7f5f568b59c0) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16) + QAbstractScrollArea (0x0x7f5f568b5a28) 0 + primary-for QPlainTextEdit (0x0x7f5f568b59c0) + QFrame (0x0x7f5f568b5a90) 0 + primary-for QAbstractScrollArea (0x0x7f5f568b5a28) + QWidget (0x0x7f5f565764d0) 0 + primary-for QFrame (0x0x7f5f568b5a90) + QObject (0x0x7f5f565c1960) 0 + primary-for QWidget (0x0x7f5f565764d0) + QPaintDevice (0x0x7f5f565c19c0) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 528) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7f5f565c1f60) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7f5f568b5af8) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16) + QAbstractTextDocumentLayout (0x0x7f5f568b5b60) 0 + primary-for QPlainTextDocumentLayout (0x0x7f5f568b5af8) + QObject (0x0x7f5f565c1f00) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f5f568b5b60) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7f5f566521e0) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))QProgressBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI12QProgressBar) +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +472 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=40 align=8 + base size=40 base align=8 +QProgressBar (0x0x7f5f568b5bc8) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16) + QWidget (0x0x7f5f56576620) 0 + primary-for QProgressBar (0x0x7f5f568b5bc8) + QObject (0x0x7f5f56652120) 0 + primary-for QWidget (0x0x7f5f56576620) + QPaintDevice (0x0x7f5f56652180) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 464) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7f5f566524e0) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=40 align=8 + base size=40 base align=8 +QProgressDialog (0x0x7f5f568b5c30) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16) + QDialog (0x0x7f5f568b5c98) 0 + primary-for QProgressDialog (0x0x7f5f568b5c30) + QWidget (0x0x7f5f56576770) 0 + primary-for QDialog (0x0x7f5f568b5c98) + QObject (0x0x7f5f56652420) 0 + primary-for QWidget (0x0x7f5f56576770) + QPaintDevice (0x0x7f5f56652480) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7f5f566526c0) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7f5f568b5d00) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16) + QCommonStyle (0x0x7f5f568b5d68) 0 + primary-for QProxyStyle (0x0x7f5f568b5d00) + QStyle (0x0x7f5f568b5dd0) 0 + primary-for QCommonStyle (0x0x7f5f568b5d68) + QObject (0x0x7f5f56652660) 0 + primary-for QStyle (0x0x7f5f568b5dd0) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7f5f56652900) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QRadioButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI12QRadioButton) +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +488 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=40 align=8 + base size=40 base align=8 +QRadioButton (0x0x7f5f568b5e38) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16) + QAbstractButton (0x0x7f5f568b5ea0) 0 + primary-for QRadioButton (0x0x7f5f568b5e38) + QWidget (0x0x7f5f565767e0) 0 + primary-for QAbstractButton (0x0x7f5f568b5ea0) + QObject (0x0x7f5f56652840) 0 + primary-for QWidget (0x0x7f5f565767e0) + QPaintDevice (0x0x7f5f566528a0) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 480) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7f5f56652b40) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))QScrollBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QScrollBar) +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +472 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=40 align=8 + base size=40 base align=8 +QScrollBar (0x0x7f5f568b5f08) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16) + QAbstractSlider (0x0x7f5f568b5f70) 0 + primary-for QScrollBar (0x0x7f5f568b5f08) + QWidget (0x0x7f5f56576850) 0 + primary-for QAbstractSlider (0x0x7f5f568b5f70) + QObject (0x0x7f5f56652a80) 0 + primary-for QWidget (0x0x7f5f56576850) + QPaintDevice (0x0x7f5f56652ae0) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 464) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7f5f56652cc0) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7f5f566bd060) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7f5f566bc000) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16) + QObject (0x0x7f5f566bd000) 0 + primary-for QScroller (0x0x7f5f566bc000) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7f5f566bd360) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=40 align=8 + base size=40 base align=8 +QSizeGrip (0x0x7f5f566bc068) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16) + QWidget (0x0x7f5f566acbd0) 0 + primary-for QSizeGrip (0x0x7f5f566bc068) + QObject (0x0x7f5f566bd2a0) 0 + primary-for QWidget (0x0x7f5f566acbd0) + QPaintDevice (0x0x7f5f566bd300) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7f5f566bd5a0) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QSpinBox::valueFromText +488 (int (*)(...))QSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI8QSpinBox) +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +520 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=40 align=8 + base size=40 base align=8 +QSpinBox (0x0x7f5f566bc0d0) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16) + QAbstractSpinBox (0x0x7f5f566bc138) 0 + primary-for QSpinBox (0x0x7f5f566bc0d0) + QWidget (0x0x7f5f566acc40) 0 + primary-for QAbstractSpinBox (0x0x7f5f566bc138) + QObject (0x0x7f5f566bd4e0) 0 + primary-for QWidget (0x0x7f5f566acc40) + QPaintDevice (0x0x7f5f566bd540) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 512) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7f5f566bd7e0) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QDoubleSpinBox::valueFromText +488 (int (*)(...))QDoubleSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI14QDoubleSpinBox) +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +520 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=40 align=8 + base size=40 base align=8 +QDoubleSpinBox (0x0x7f5f566bc1a0) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16) + QAbstractSpinBox (0x0x7f5f566bc208) 0 + primary-for QDoubleSpinBox (0x0x7f5f566bc1a0) + QWidget (0x0x7f5f566accb0) 0 + primary-for QAbstractSpinBox (0x0x7f5f566bc208) + QObject (0x0x7f5f566bd720) 0 + primary-for QWidget (0x0x7f5f566accb0) + QPaintDevice (0x0x7f5f566bd780) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 512) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7f5f566bda20) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=40 align=8 + base size=40 base align=8 +QSplashScreen (0x0x7f5f566bc270) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16) + QWidget (0x0x7f5f566acd20) 0 + primary-for QSplashScreen (0x0x7f5f566bc270) + QObject (0x0x7f5f566bd960) 0 + primary-for QWidget (0x0x7f5f566acd20) + QPaintDevice (0x0x7f5f566bd9c0) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7f5f566bdc60) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QSplitter::createHandle +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QSplitter) +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +472 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=40 align=8 + base size=40 base align=8 +QSplitter (0x0x7f5f566bc2d8) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16) + QFrame (0x0x7f5f566bc340) 0 + primary-for QSplitter (0x0x7f5f566bc2d8) + QWidget (0x0x7f5f566acd90) 0 + primary-for QFrame (0x0x7f5f566bc340) + QObject (0x0x7f5f566bdba0) 0 + primary-for QWidget (0x0x7f5f566acd90) + QPaintDevice (0x0x7f5f566bdc00) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 464) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7f5f566bdea0) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=40 align=8 + base size=40 base align=8 +QSplitterHandle (0x0x7f5f566bc3a8) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16) + QWidget (0x0x7f5f566ace00) 0 + primary-for QSplitterHandle (0x0x7f5f566bc3a8) + QObject (0x0x7f5f566bdde0) 0 + primary-for QWidget (0x0x7f5f566ace00) + QPaintDevice (0x0x7f5f566bde40) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7f5f56328120) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QStackedLayout::addItem +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QStackedLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QStackedLayout::setGeometry +184 (int (*)(...))QStackedLayout::itemAt +192 (int (*)(...))QStackedLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QStackedLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QStackedLayout::sizeHint +264 (int (*)(...))QStackedLayout::hasHeightForWidth +272 (int (*)(...))QStackedLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI14QStackedLayout) +296 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +304 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +312 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +320 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +344 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +376 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7f5f566bc410) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16) + QLayout (0x0x7f5f566ace70) 0 + primary-for QStackedLayout (0x0x7f5f566bc410) + QObject (0x0x7f5f56328060) 0 + primary-for QLayout (0x0x7f5f566ace70) + QLayoutItem (0x0x7f5f563280c0) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 296) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7f5f56328420) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI14QStackedWidget) +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +464 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=40 align=8 + base size=40 base align=8 +QStackedWidget (0x0x7f5f566bc478) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16) + QFrame (0x0x7f5f566bc4e0) 0 + primary-for QStackedWidget (0x0x7f5f566bc478) + QWidget (0x0x7f5f566ac5b0) 0 + primary-for QFrame (0x0x7f5f566bc4e0) + QObject (0x0x7f5f56328360) 0 + primary-for QWidget (0x0x7f5f566ac5b0) + QPaintDevice (0x0x7f5f563283c0) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 456) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7f5f56328660) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=40 align=8 + base size=40 base align=8 +QStatusBar (0x0x7f5f566bc548) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16) + QWidget (0x0x7f5f566ac690) 0 + primary-for QStatusBar (0x0x7f5f566bc548) + QObject (0x0x7f5f563285a0) 0 + primary-for QWidget (0x0x7f5f566ac690) + QPaintDevice (0x0x7f5f56328600) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7f5f56328840) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7f5f566bc5b0) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f5f566bc618) 0 + primary-for QStyledItemDelegate (0x0x7f5f566bc5b0) + QObject (0x0x7f5f563287e0) 0 + primary-for QAbstractItemDelegate (0x0x7f5f566bc618) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7f5f563289c0) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7f5f566bc680) 0 + QPainter (0x0x7f5f56328a20) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7f5f56373300) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7f5f566bc6e8) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16) + QObject (0x0x7f5f563732a0) 0 + primary-for QStylePlugin (0x0x7f5f566bc6e8) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7f5f56373420) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7f5f566bc750) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16) + QObject (0x0x7f5f563733c0) 0 + primary-for QSystemTrayIcon (0x0x7f5f566bc750) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7f5f56373720) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableView::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI10QTableView) +800 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +808 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=40 align=8 + base size=40 base align=8 +QTableView (0x0x7f5f566bc7b8) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16) + QAbstractItemView (0x0x7f5f566bc820) 0 + primary-for QTableView (0x0x7f5f566bc7b8) + QAbstractScrollArea (0x0x7f5f566bc888) 0 + primary-for QAbstractItemView (0x0x7f5f566bc820) + QFrame (0x0x7f5f566bc8f0) 0 + primary-for QAbstractScrollArea (0x0x7f5f566bc888) + QWidget (0x0x7f5f5637a4d0) 0 + primary-for QFrame (0x0x7f5f566bc8f0) + QObject (0x0x7f5f56373660) 0 + primary-for QWidget (0x0x7f5f5637a4d0) + QPaintDevice (0x0x7f5f563736c0) 16 + vptr=((& QTableView::_ZTV10QTableView) + 800) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7f5f563738a0) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=64 align=8 + base size=60 base align=8 +QTableWidgetItem (0x0x7f5f56373cc0) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7f5f5642e000) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableWidget::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))QTableWidget::mimeTypes +792 (int (*)(...))QTableWidget::mimeData +800 (int (*)(...))QTableWidget::dropMimeData +808 (int (*)(...))QTableWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI12QTableWidget) +832 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +840 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=40 align=8 + base size=40 base align=8 +QTableWidget (0x0x7f5f563ca208) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16) + QTableView (0x0x7f5f563ca270) 0 + primary-for QTableWidget (0x0x7f5f563ca208) + QAbstractItemView (0x0x7f5f563ca2d8) 0 + primary-for QTableView (0x0x7f5f563ca270) + QAbstractScrollArea (0x0x7f5f563ca340) 0 + primary-for QAbstractItemView (0x0x7f5f563ca2d8) + QFrame (0x0x7f5f563ca3a8) 0 + primary-for QAbstractScrollArea (0x0x7f5f563ca340) + QWidget (0x0x7f5f568407e0) 0 + primary-for QFrame (0x0x7f5f563ca3a8) + QObject (0x0x7f5f563c4f60) 0 + primary-for QWidget (0x0x7f5f568407e0) + QPaintDevice (0x0x7f5f563c4540) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 832) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7f5f5642e3c0) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 79 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextBrowser::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))QTextBrowser::doSetSource +552 (int (*)(...))-16 +560 (int (*)(...))(& _ZTI12QTextBrowser) +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +576 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +624 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=40 align=8 + base size=40 base align=8 +QTextBrowser (0x0x7f5f563ca410) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16) + QTextEdit (0x0x7f5f563ca478) 0 + primary-for QTextBrowser (0x0x7f5f563ca410) + QAbstractScrollArea (0x0x7f5f563ca4e0) 0 + primary-for QTextEdit (0x0x7f5f563ca478) + QFrame (0x0x7f5f563ca548) 0 + primary-for QAbstractScrollArea (0x0x7f5f563ca4e0) + QWidget (0x0x7f5f5637a700) 0 + primary-for QFrame (0x0x7f5f563ca548) + QObject (0x0x7f5f5642e300) 0 + primary-for QWidget (0x0x7f5f5637a700) + QPaintDevice (0x0x7f5f5642e360) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 568) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7f5f5642e600) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QToolBar) +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +464 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=40 align=8 + base size=40 base align=8 +QToolBar (0x0x7f5f563ca5b0) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16) + QWidget (0x0x7f5f5637a770) 0 + primary-for QToolBar (0x0x7f5f563ca5b0) + QObject (0x0x7f5f5642e540) 0 + primary-for QWidget (0x0x7f5f5637a770) + QPaintDevice (0x0x7f5f5642e5a0) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 456) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7f5f5642ea80) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QToolBox::itemInserted +448 (int (*)(...))QToolBox::itemRemoved +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI8QToolBox) +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +480 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=40 align=8 + base size=40 base align=8 +QToolBox (0x0x7f5f563ca618) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16) + QFrame (0x0x7f5f563ca680) 0 + primary-for QToolBox (0x0x7f5f563ca618) + QWidget (0x0x7f5f5637a7e0) 0 + primary-for QFrame (0x0x7f5f563ca680) + QObject (0x0x7f5f5642e9c0) 0 + primary-for QWidget (0x0x7f5f5637a7e0) + QPaintDevice (0x0x7f5f5642ea20) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 472) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7f5f5642ede0) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))QToolButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QToolButton) +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +488 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=40 align=8 + base size=40 base align=8 +QToolButton (0x0x7f5f563ca6e8) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16) + QAbstractButton (0x0x7f5f563ca750) 0 + primary-for QToolButton (0x0x7f5f563ca6e8) + QWidget (0x0x7f5f5637a850) 0 + primary-for QAbstractButton (0x0x7f5f563ca750) + QObject (0x0x7f5f5642ed20) 0 + primary-for QWidget (0x0x7f5f5637a850) + QPaintDevice (0x0x7f5f5642ed80) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 480) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7f5f564a2060) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7f5f564a21e0) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeView::setModel +480 (int (*)(...))QTreeView::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI9QTreeView) +816 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +824 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=40 align=8 + base size=40 base align=8 +QTreeView (0x0x7f5f563ca7b8) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16) + QAbstractItemView (0x0x7f5f563ca820) 0 + primary-for QTreeView (0x0x7f5f563ca7b8) + QAbstractScrollArea (0x0x7f5f563ca888) 0 + primary-for QAbstractItemView (0x0x7f5f563ca820) + QFrame (0x0x7f5f563ca8f0) 0 + primary-for QAbstractScrollArea (0x0x7f5f563ca888) + QWidget (0x0x7f5f5637aa10) 0 + primary-for QFrame (0x0x7f5f563ca8f0) + QObject (0x0x7f5f564a2120) 0 + primary-for QWidget (0x0x7f5f5637aa10) + QPaintDevice (0x0x7f5f564a2180) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 816) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7f5f564a2360) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=96 align=8 + base size=92 base align=8 +QTreeWidgetItem (0x0x7f5f564a2a20) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7f5f561d6840) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 114 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeWidget::setModel +480 (int (*)(...))QTreeWidget::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))QTreeWidget::mimeTypes +808 (int (*)(...))QTreeWidget::mimeData +816 (int (*)(...))QTreeWidget::dropMimeData +824 (int (*)(...))QTreeWidget::supportedDropActions +832 (int (*)(...))-16 +840 (int (*)(...))(& _ZTI11QTreeWidget) +848 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +856 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +896 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +904 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=40 align=8 + base size=40 base align=8 +QTreeWidget (0x0x7f5f5612bc30) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16) + QTreeView (0x0x7f5f5612bc98) 0 + primary-for QTreeWidget (0x0x7f5f5612bc30) + QAbstractItemView (0x0x7f5f5612bd00) 0 + primary-for QTreeView (0x0x7f5f5612bc98) + QAbstractScrollArea (0x0x7f5f5612bd68) 0 + primary-for QAbstractItemView (0x0x7f5f5612bd00) + QFrame (0x0x7f5f5612bdd0) 0 + primary-for QAbstractScrollArea (0x0x7f5f5612bd68) + QWidget (0x0x7f5f564c67e0) 0 + primary-for QFrame (0x0x7f5f5612bdd0) + QObject (0x0x7f5f561d6780) 0 + primary-for QWidget (0x0x7f5f564c67e0) + QPaintDevice (0x0x7f5f561d67e0) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 848) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7f5f561d6c60) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QUndoView) +800 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +808 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=40 align=8 + base size=40 base align=8 +QUndoView (0x0x7f5f5612be38) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16) + QListView (0x0x7f5f5612bea0) 0 + primary-for QUndoView (0x0x7f5f5612be38) + QAbstractItemView (0x0x7f5f5612bf08) 0 + primary-for QListView (0x0x7f5f5612bea0) + QAbstractScrollArea (0x0x7f5f5612bf70) 0 + primary-for QAbstractItemView (0x0x7f5f5612bf08) + QFrame (0x0x7f5f5612b340) 0 + primary-for QAbstractScrollArea (0x0x7f5f5612bf70) + QWidget (0x0x7f5f564c6850) 0 + primary-for QFrame (0x0x7f5f5612b340) + QObject (0x0x7f5f561d6ba0) 0 + primary-for QWidget (0x0x7f5f564c6850) + QPaintDevice (0x0x7f5f561d6c00) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 800) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7f5f561d6de0) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7f5f561d6ea0) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7f5f5612bbc8) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16) + QAction (0x0x7f5f5621c000) 0 + primary-for QWidgetAction (0x0x7f5f5612bbc8) + QObject (0x0x7f5f561d6e40) 0 + primary-for QAction (0x0x7f5f5621c000) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7f5f56224120) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=40 align=8 + base size=40 base align=8 +QWizard (0x0x7f5f5621c068) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16) + QDialog (0x0x7f5f5621c0d0) 0 + primary-for QWizard (0x0x7f5f5621c068) + QWidget (0x0x7f5f564c68c0) 0 + primary-for QDialog (0x0x7f5f5621c0d0) + QObject (0x0x7f5f56224060) 0 + primary-for QWidget (0x0x7f5f564c68c0) + QPaintDevice (0x0x7f5f562240c0) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7f5f562248a0) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=40 align=8 + base size=40 base align=8 +QWizardPage (0x0x7f5f5621c270) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16) + QWidget (0x0x7f5f5622ba80) 0 + primary-for QWizardPage (0x0x7f5f5621c270) + QObject (0x0x7f5f562247e0) 0 + primary-for QWidget (0x0x7f5f5622ba80) + QPaintDevice (0x0x7f5f56224840) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488) + +Class QHelpGlobal + size=1 align=1 + base size=0 base align=1 +QHelpGlobal (0x0x7f5f56224a20) 0 empty + +Class QCompressedHelpInfo + size=8 align=8 + base size=8 base align=8 +QCompressedHelpInfo (0x0x7f5f56224a80) 0 + +Class QHelpContentItem + size=8 align=8 + base size=8 base align=8 +QHelpContentItem (0x0x7f5f56224ba0) 0 + +Class QHelpContentModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpContentModel::QPrivateSignal (0x0x7f5f56224c60) 0 empty + +Vtable for QHelpContentModel +QHelpContentModel::_ZTV17QHelpContentModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QHelpContentModel) +16 (int (*)(...))QHelpContentModel::metaObject +24 (int (*)(...))QHelpContentModel::qt_metacast +32 (int (*)(...))QHelpContentModel::qt_metacall +40 (int (*)(...))QHelpContentModel::~QHelpContentModel +48 (int (*)(...))QHelpContentModel::~QHelpContentModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHelpContentModel::index +120 (int (*)(...))QHelpContentModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QHelpContentModel::rowCount +144 (int (*)(...))QHelpContentModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QHelpContentModel::data +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractItemModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractItemModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QHelpContentModel + size=24 align=8 + base size=24 base align=8 +QHelpContentModel (0x0x7f5f5621c2d8) 0 + vptr=((& QHelpContentModel::_ZTV17QHelpContentModel) + 16) + QAbstractItemModel (0x0x7f5f5621c340) 0 + primary-for QHelpContentModel (0x0x7f5f5621c2d8) + QObject (0x0x7f5f56224c00) 0 + primary-for QAbstractItemModel (0x0x7f5f5621c340) + +Class QHelpContentWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpContentWidget::QPrivateSignal (0x0x7f5f56224de0) 0 empty + +Vtable for QHelpContentWidget +QHelpContentWidget::_ZTV18QHelpContentWidget: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QHelpContentWidget) +16 (int (*)(...))QHelpContentWidget::metaObject +24 (int (*)(...))QHelpContentWidget::qt_metacast +32 (int (*)(...))QHelpContentWidget::qt_metacall +40 (int (*)(...))QHelpContentWidget::~QHelpContentWidget +48 (int (*)(...))QHelpContentWidget::~QHelpContentWidget +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeView::setModel +480 (int (*)(...))QTreeView::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI18QHelpContentWidget) +816 (int (*)(...))QHelpContentWidget::_ZThn16_N18QHelpContentWidgetD1Ev +824 (int (*)(...))QHelpContentWidget::_ZThn16_N18QHelpContentWidgetD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpContentWidget + size=64 align=8 + base size=64 base align=8 +QHelpContentWidget (0x0x7f5f5621c3a8) 0 + vptr=((& QHelpContentWidget::_ZTV18QHelpContentWidget) + 16) + QTreeView (0x0x7f5f5621c410) 0 + primary-for QHelpContentWidget (0x0x7f5f5621c3a8) + QAbstractItemView (0x0x7f5f5621c478) 0 + primary-for QTreeView (0x0x7f5f5621c410) + QAbstractScrollArea (0x0x7f5f5621c4e0) 0 + primary-for QAbstractItemView (0x0x7f5f5621c478) + QFrame (0x0x7f5f5621c548) 0 + primary-for QAbstractScrollArea (0x0x7f5f5621c4e0) + QWidget (0x0x7f5f5622baf0) 0 + primary-for QFrame (0x0x7f5f5621c548) + QObject (0x0x7f5f56224d20) 0 + primary-for QWidget (0x0x7f5f5622baf0) + QPaintDevice (0x0x7f5f56224d80) 16 + vptr=((& QHelpContentWidget::_ZTV18QHelpContentWidget) + 816) + +Class QHelpEngineCore::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpEngineCore::QPrivateSignal (0x0x7f5f56224f00) 0 empty + +Vtable for QHelpEngineCore +QHelpEngineCore::_ZTV15QHelpEngineCore: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QHelpEngineCore) +16 (int (*)(...))QHelpEngineCore::metaObject +24 (int (*)(...))QHelpEngineCore::qt_metacast +32 (int (*)(...))QHelpEngineCore::qt_metacall +40 (int (*)(...))QHelpEngineCore::~QHelpEngineCore +48 (int (*)(...))QHelpEngineCore::~QHelpEngineCore +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHelpEngineCore + size=24 align=8 + base size=24 base align=8 +QHelpEngineCore (0x0x7f5f5621c5b0) 0 + vptr=((& QHelpEngineCore::_ZTV15QHelpEngineCore) + 16) + QObject (0x0x7f5f56224ea0) 0 + primary-for QHelpEngineCore (0x0x7f5f5621c5b0) + +Class QHelpEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpEngine::QPrivateSignal (0x0x7f5f562bd060) 0 empty + +Vtable for QHelpEngine +QHelpEngine::_ZTV11QHelpEngine: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHelpEngine) +16 (int (*)(...))QHelpEngine::metaObject +24 (int (*)(...))QHelpEngine::qt_metacast +32 (int (*)(...))QHelpEngine::qt_metacall +40 (int (*)(...))QHelpEngine::~QHelpEngine +48 (int (*)(...))QHelpEngine::~QHelpEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHelpEngine + size=32 align=8 + base size=32 base align=8 +QHelpEngine (0x0x7f5f5621c618) 0 + vptr=((& QHelpEngine::_ZTV11QHelpEngine) + 16) + QHelpEngineCore (0x0x7f5f5621c680) 0 + primary-for QHelpEngine (0x0x7f5f5621c618) + QObject (0x0x7f5f562bd000) 0 + primary-for QHelpEngineCore (0x0x7f5f5621c680) + +Class QHelpFilterData + size=8 align=8 + base size=8 base align=8 +QHelpFilterData (0x0x7f5f562bd120) 0 + +Class QHelpFilterEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpFilterEngine::QPrivateSignal (0x0x7f5f562bd2a0) 0 empty + +Vtable for QHelpFilterEngine +QHelpFilterEngine::_ZTV17QHelpFilterEngine: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QHelpFilterEngine) +16 (int (*)(...))QHelpFilterEngine::metaObject +24 (int (*)(...))QHelpFilterEngine::qt_metacast +32 (int (*)(...))QHelpFilterEngine::qt_metacall +40 (int (*)(...))QHelpFilterEngine::~QHelpFilterEngine +48 (int (*)(...))QHelpFilterEngine::~QHelpFilterEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHelpFilterEngine + size=24 align=8 + base size=24 base align=8 +QHelpFilterEngine (0x0x7f5f5621c6e8) 0 + vptr=((& QHelpFilterEngine::_ZTV17QHelpFilterEngine) + 16) + QObject (0x0x7f5f562bd240) 0 + primary-for QHelpFilterEngine (0x0x7f5f5621c6e8) + +Class QHelpFilterSettingsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpFilterSettingsWidget::QPrivateSignal (0x0x7f5f562bd420) 0 empty + +Vtable for QHelpFilterSettingsWidget +QHelpFilterSettingsWidget::_ZTV25QHelpFilterSettingsWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QHelpFilterSettingsWidget) +16 (int (*)(...))QHelpFilterSettingsWidget::metaObject +24 (int (*)(...))QHelpFilterSettingsWidget::qt_metacast +32 (int (*)(...))QHelpFilterSettingsWidget::qt_metacall +40 (int (*)(...))QHelpFilterSettingsWidget::~QHelpFilterSettingsWidget +48 (int (*)(...))QHelpFilterSettingsWidget::~QHelpFilterSettingsWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI25QHelpFilterSettingsWidget) +448 (int (*)(...))QHelpFilterSettingsWidget::_ZThn16_N25QHelpFilterSettingsWidgetD1Ev +456 (int (*)(...))QHelpFilterSettingsWidget::_ZThn16_N25QHelpFilterSettingsWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpFilterSettingsWidget + size=48 align=8 + base size=48 base align=8 +QHelpFilterSettingsWidget (0x0x7f5f5621c750) 0 + vptr=((& QHelpFilterSettingsWidget::_ZTV25QHelpFilterSettingsWidget) + 16) + QWidget (0x0x7f5f5622bb60) 0 + primary-for QHelpFilterSettingsWidget (0x0x7f5f5621c750) + QObject (0x0x7f5f562bd360) 0 + primary-for QWidget (0x0x7f5f5622bb60) + QPaintDevice (0x0x7f5f562bd3c0) 16 + vptr=((& QHelpFilterSettingsWidget::_ZTV25QHelpFilterSettingsWidget) + 448) + +Class QHelpIndexModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpIndexModel::QPrivateSignal (0x0x7f5f562bd6c0) 0 empty + +Vtable for QHelpIndexModel +QHelpIndexModel::_ZTV15QHelpIndexModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QHelpIndexModel) +16 (int (*)(...))QHelpIndexModel::metaObject +24 (int (*)(...))QHelpIndexModel::qt_metacast +32 (int (*)(...))QHelpIndexModel::qt_metacall +40 (int (*)(...))QHelpIndexModel::~QHelpIndexModel +48 (int (*)(...))QHelpIndexModel::~QHelpIndexModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QStringListModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QStringListModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStringListModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QStringListModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QStringListModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStringListModel::flags +336 (int (*)(...))QStringListModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QHelpIndexModel + size=48 align=8 + base size=48 base align=8 +QHelpIndexModel (0x0x7f5f5621c7b8) 0 + vptr=((& QHelpIndexModel::_ZTV15QHelpIndexModel) + 16) + QStringListModel (0x0x7f5f5621c820) 0 + primary-for QHelpIndexModel (0x0x7f5f5621c7b8) + QAbstractListModel (0x0x7f5f5621c888) 0 + primary-for QStringListModel (0x0x7f5f5621c820) + QAbstractItemModel (0x0x7f5f5621c8f0) 0 + primary-for QAbstractListModel (0x0x7f5f5621c888) + QObject (0x0x7f5f562bd660) 0 + primary-for QAbstractItemModel (0x0x7f5f5621c8f0) + +Class QHelpIndexWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpIndexWidget::QPrivateSignal (0x0x7f5f562bd840) 0 empty + +Vtable for QHelpIndexWidget +QHelpIndexWidget::_ZTV16QHelpIndexWidget: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QHelpIndexWidget) +16 (int (*)(...))QHelpIndexWidget::metaObject +24 (int (*)(...))QHelpIndexWidget::qt_metacast +32 (int (*)(...))QHelpIndexWidget::qt_metacall +40 (int (*)(...))QHelpIndexWidget::~QHelpIndexWidget +48 (int (*)(...))QHelpIndexWidget::~QHelpIndexWidget +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI16QHelpIndexWidget) +800 (int (*)(...))QHelpIndexWidget::_ZThn16_N16QHelpIndexWidgetD1Ev +808 (int (*)(...))QHelpIndexWidget::_ZThn16_N16QHelpIndexWidgetD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpIndexWidget + size=40 align=8 + base size=40 base align=8 +QHelpIndexWidget (0x0x7f5f5621c958) 0 + vptr=((& QHelpIndexWidget::_ZTV16QHelpIndexWidget) + 16) + QListView (0x0x7f5f5621c9c0) 0 + primary-for QHelpIndexWidget (0x0x7f5f5621c958) + QAbstractItemView (0x0x7f5f5621ca28) 0 + primary-for QListView (0x0x7f5f5621c9c0) + QAbstractScrollArea (0x0x7f5f5621ca90) 0 + primary-for QAbstractItemView (0x0x7f5f5621ca28) + QFrame (0x0x7f5f5621caf8) 0 + primary-for QAbstractScrollArea (0x0x7f5f5621ca90) + QWidget (0x0x7f5f5622bbd0) 0 + primary-for QFrame (0x0x7f5f5621caf8) + QObject (0x0x7f5f562bd780) 0 + primary-for QWidget (0x0x7f5f5622bbd0) + QPaintDevice (0x0x7f5f562bd7e0) 16 + vptr=((& QHelpIndexWidget::_ZTV16QHelpIndexWidget) + 800) + +Class QHelpLink + size=32 align=8 + base size=32 base align=8 +QHelpLink (0x0x7f5f562bd900) 0 + +Class QHelpSearchQuery + size=32 align=8 + base size=32 base align=8 +QHelpSearchQuery (0x0x7f5f562bd960) 0 + +Class QHelpSearchResult + size=8 align=8 + base size=8 base align=8 +QHelpSearchResult (0x0x7f5f5631a2a0) 0 + +Class QHelpSearchEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpSearchEngine::QPrivateSignal (0x0x7f5f5631a3c0) 0 empty + +Vtable for QHelpSearchEngine +QHelpSearchEngine::_ZTV17QHelpSearchEngine: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QHelpSearchEngine) +16 (int (*)(...))QHelpSearchEngine::metaObject +24 (int (*)(...))QHelpSearchEngine::qt_metacast +32 (int (*)(...))QHelpSearchEngine::qt_metacall +40 (int (*)(...))QHelpSearchEngine::~QHelpSearchEngine +48 (int (*)(...))QHelpSearchEngine::~QHelpSearchEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHelpSearchEngine + size=24 align=8 + base size=24 base align=8 +QHelpSearchEngine (0x0x7f5f5621ce38) 0 + vptr=((& QHelpSearchEngine::_ZTV17QHelpSearchEngine) + 16) + QObject (0x0x7f5f5631a360) 0 + primary-for QHelpSearchEngine (0x0x7f5f5621ce38) + +Class QHelpSearchQueryWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpSearchQueryWidget::QPrivateSignal (0x0x7f5f5631a540) 0 empty + +Vtable for QHelpSearchQueryWidget +QHelpSearchQueryWidget::_ZTV22QHelpSearchQueryWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QHelpSearchQueryWidget) +16 (int (*)(...))QHelpSearchQueryWidget::metaObject +24 (int (*)(...))QHelpSearchQueryWidget::qt_metacast +32 (int (*)(...))QHelpSearchQueryWidget::qt_metacall +40 (int (*)(...))QHelpSearchQueryWidget::~QHelpSearchQueryWidget +48 (int (*)(...))QHelpSearchQueryWidget::~QHelpSearchQueryWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QHelpSearchQueryWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QHelpSearchQueryWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI22QHelpSearchQueryWidget) +448 (int (*)(...))QHelpSearchQueryWidget::_ZThn16_N22QHelpSearchQueryWidgetD1Ev +456 (int (*)(...))QHelpSearchQueryWidget::_ZThn16_N22QHelpSearchQueryWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpSearchQueryWidget + size=48 align=8 + base size=48 base align=8 +QHelpSearchQueryWidget (0x0x7f5f5621cea0) 0 + vptr=((& QHelpSearchQueryWidget::_ZTV22QHelpSearchQueryWidget) + 16) + QWidget (0x0x7f5f55f3e000) 0 + primary-for QHelpSearchQueryWidget (0x0x7f5f5621cea0) + QObject (0x0x7f5f5631a480) 0 + primary-for QWidget (0x0x7f5f55f3e000) + QPaintDevice (0x0x7f5f5631a4e0) 16 + vptr=((& QHelpSearchQueryWidget::_ZTV22QHelpSearchQueryWidget) + 448) + +Class QHelpSearchResultWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpSearchResultWidget::QPrivateSignal (0x0x7f5f5631a6c0) 0 empty + +Vtable for QHelpSearchResultWidget +QHelpSearchResultWidget::_ZTV23QHelpSearchResultWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QHelpSearchResultWidget) +16 (int (*)(...))QHelpSearchResultWidget::metaObject +24 (int (*)(...))QHelpSearchResultWidget::qt_metacast +32 (int (*)(...))QHelpSearchResultWidget::qt_metacall +40 (int (*)(...))QHelpSearchResultWidget::~QHelpSearchResultWidget +48 (int (*)(...))QHelpSearchResultWidget::~QHelpSearchResultWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QHelpSearchResultWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI23QHelpSearchResultWidget) +448 (int (*)(...))QHelpSearchResultWidget::_ZThn16_N23QHelpSearchResultWidgetD1Ev +456 (int (*)(...))QHelpSearchResultWidget::_ZThn16_N23QHelpSearchResultWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpSearchResultWidget + size=48 align=8 + base size=48 base align=8 +QHelpSearchResultWidget (0x0x7f5f5621cf08) 0 + vptr=((& QHelpSearchResultWidget::_ZTV23QHelpSearchResultWidget) + 16) + QWidget (0x0x7f5f55f3e070) 0 + primary-for QHelpSearchResultWidget (0x0x7f5f5621cf08) + QObject (0x0x7f5f5631a600) 0 + primary-for QWidget (0x0x7f5f55f3e070) + QPaintDevice (0x0x7f5f5631a660) 16 + vptr=((& QHelpSearchResultWidget::_ZTV23QHelpSearchResultWidget) + 448) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f55f5ab40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f55f5aea0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f55f70120) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f55f70480) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f55f70660) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f55f709c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f55f70b40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f55f70ea0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f55f9d060) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f55f9d3c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f55f9d5a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f55f9d900) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f55f9dae0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f55f9de40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f55fc4060) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f55fc43c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f55fe7c60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f56005000) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f56005180) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f560054e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f56005660) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f560059c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f56005b40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f56005ea0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f5602e060) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f5602e3c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f5602e540) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f5602e8a0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f5602ea20) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f5602ed80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f5f5602ef00) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f5f560562a0) 0 empty + diff --git a/tests/auto/bic/data/QtHelp.6.2.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtHelp.6.2.0.linux-gcc-amd64.txt new file mode 100644 index 0000000..8cb965c --- /dev/null +++ b/tests/auto/bic/data/QtHelp.6.2.0.linux-gcc-amd64.txt @@ -0,0 +1,20669 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f25d66fa6c0) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f25d674fea0) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f25d677d120) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7f25d67a9240) 0 empty + +Class std::__make_unsigned_selector_base + size=1 align=1 + base size=0 base align=1 +std::__make_unsigned_selector_base (0x0x7f25d67d7a20) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f25d6451840) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f25d6451900) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7f25d6451de0) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7f25d6451e40) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7f25d6451ea0) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7f25d6451f00) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7f25d6451f60) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f25d6484060) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f25d6484120) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f25d64841e0) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f25d64842a0) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f25d6484600) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7f25d6484960) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7f25d64849c0) 0 empty + +Class std::__swappable_with_details::__do_is_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_swappable_with_impl (0x0x7f25d6484c60) 0 empty + +Class std::__swappable_with_details::__do_is_nothrow_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_nothrow_swappable_with_impl (0x0x7f25d6484cc0) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7f25d64d5540) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f25d651dae0) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7f25d64a1f70) 0 empty + std::__nonesuch (0x0x7f25d6556000) 0 empty + +Class std::in_place_t + size=1 align=1 + base size=0 base align=1 +std::in_place_t (0x0x7f25d65a3d20) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f25d65d8060) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f25d65d80c0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f25d6610de0) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f25d6610e40) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f25d655b4e0) 0 empty + std::input_iterator_tag (0x0x7f25d6610ea0) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f25d655b548) 0 empty + std::forward_iterator_tag (0x0x7f25d655b5b0) 0 empty + std::input_iterator_tag (0x0x7f25d6610f00) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f25d655b618) 0 empty + std::bidirectional_iterator_tag (0x0x7f25d655b680) 0 empty + std::forward_iterator_tag (0x0x7f25d655b6e8) 0 empty + std::input_iterator_tag (0x0x7f25d6610f60) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f25d5ac9c60) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f25d5ac9d80) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f25d5af20c0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f25d5af23c0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f25d5af24e0) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f25d5b7ecc0) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f25d5bbb000) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f25d5bbb060) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f25d5bbb120) 0 + +Class __pthread_internal_slist + size=8 align=8 + base size=8 base align=8 +__pthread_internal_slist (0x0x7f25d5bbb180) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7f25d5bbb1e0) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7f25d5bbb240) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7f25d5bbb2a0) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f25d5bbb540) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f25d5bbb7e0) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f25d5bbb840) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f25d586e600) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f25d655ba90) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7f25d586e7e0) 0 nearly-empty + primary-for std::bad_exception (0x0x7f25d655ba90) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f25d586e9c0) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f25d655baf8) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7f25d586ed80) 0 nearly-empty + primary-for std::bad_cast (0x0x7f25d655baf8) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f25d655bb60) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7f25d586ef60) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f25d655bb60) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f25d58a5180) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f25d58a56c0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f25d655bbc8) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7f25d58a5d80) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f25d655bbc8) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f25d655bc30) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7f25d655bc98) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f25d655bc30) + std::exception (0x0x7f25d58a5f60) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f25d655bc98) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f25d58dc180) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7f25d58dc3c0) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f25d5960b40) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f25d553bf00) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f25d55ae000) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f25d55aeea0) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f25d55aef60) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f25d55e1000) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f25d55e1060) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f25d55e10c0) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f25d55e11e0) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f25d55e1240) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f25d52728a0) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f25d5272a20) 0 empty + +Class _G_fpos_t + size=16 align=8 + base size=16 base align=8 +_G_fpos_t (0x0x7f25d50948a0) 0 + +Class _G_fpos64_t + size=16 align=8 + base size=16 base align=8 +_G_fpos64_t (0x0x7f25d5094900) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f25d5094960) 0 + +Class _IO_cookie_io_functions_t + size=32 align=8 + base size=32 base align=8 +_IO_cookie_io_functions_t (0x0x7f25d50949c0) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f25d4cec180) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f25d4c68c30) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7f25d4cec240) 0 nearly-empty + primary-for std::logic_error (0x0x7f25d4c68c30) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f25d4c68c98) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7f25d4c68d00) 0 + primary-for std::domain_error (0x0x7f25d4c68c98) + std::exception (0x0x7f25d4cec2a0) 0 nearly-empty + primary-for std::logic_error (0x0x7f25d4c68d00) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f25d4c68d68) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7f25d4c68dd0) 0 + primary-for std::invalid_argument (0x0x7f25d4c68d68) + std::exception (0x0x7f25d4cec300) 0 nearly-empty + primary-for std::logic_error (0x0x7f25d4c68dd0) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f25d4c68e38) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7f25d4c68ea0) 0 + primary-for std::length_error (0x0x7f25d4c68e38) + std::exception (0x0x7f25d4cec360) 0 nearly-empty + primary-for std::logic_error (0x0x7f25d4c68ea0) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f25d4c68f08) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7f25d4c68f70) 0 + primary-for std::out_of_range (0x0x7f25d4c68f08) + std::exception (0x0x7f25d4cec3c0) 0 nearly-empty + primary-for std::logic_error (0x0x7f25d4c68f70) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f25d4d1b000) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7f25d4cec420) 0 nearly-empty + primary-for std::runtime_error (0x0x7f25d4d1b000) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f25d4d1b068) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7f25d4d1b0d0) 0 + primary-for std::range_error (0x0x7f25d4d1b068) + std::exception (0x0x7f25d4cec480) 0 nearly-empty + primary-for std::runtime_error (0x0x7f25d4d1b0d0) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f25d4d1b138) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7f25d4d1b1a0) 0 + primary-for std::overflow_error (0x0x7f25d4d1b138) + std::exception (0x0x7f25d4cec4e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f25d4d1b1a0) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f25d4d1b208) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7f25d4d1b270) 0 + primary-for std::underflow_error (0x0x7f25d4d1b208) + std::exception (0x0x7f25d4cec540) 0 nearly-empty + primary-for std::runtime_error (0x0x7f25d4d1b270) + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7f25d4d50840) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f25d4d508a0) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f25d4d50a20) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f25d4d50ae0) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f25d4d1b4e0) 0 + std::__uses_alloc_base (0x0x7f25d4d50a80) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f25d4afb120) 0 empty + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f25d4b6d8f0) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7f25d4b8f7e0) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f25d4b6d8f0) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f25d4b8f8a0) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f25d4b8f900) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f25d4b8fc00) 0 + +Class std::__detail::_Identity + size=1 align=1 + base size=0 base align=1 +std::__detail::_Identity (0x0x7f25d486ba80) 0 empty + +Class std::__detail::_Select1st + size=1 align=1 + base size=0 base align=1 +std::__detail::_Select1st (0x0x7f25d486bb40) 0 empty + +Class std::__detail::_Hash_node_base + size=8 align=8 + base size=8 base align=8 +std::__detail::_Hash_node_base (0x0x7f25d4894060) 0 + +Class std::__detail::_Mod_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mod_range_hashing (0x0x7f25d4894ea0) 0 empty + +Class std::__detail::_Default_ranged_hash + size=1 align=1 + base size=0 base align=1 +std::__detail::_Default_ranged_hash (0x0x7f25d4894f60) 0 empty + +Class std::__detail::_Prime_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Prime_rehash_policy (0x0x7f25d48ba000) 0 + +Class std::__detail::_Mask_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mask_range_hashing (0x0x7f25d48ba3c0) 0 empty + +Class std::__detail::_Power2_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Power2_rehash_policy (0x0x7f25d48ba4e0) 0 + +Class std::__detail::_Equality_base + size=1 align=1 + base size=0 base align=1 +std::__detail::_Equality_base (0x0x7f25d469b5a0) 0 empty + +Class std::_Enable_default_constructor_tag + size=1 align=1 + base size=0 base align=1 +std::_Enable_default_constructor_tag (0x0x7f25d469be40) 0 empty + +Class std::nullopt_t + size=1 align=1 + base size=0 base align=1 +std::nullopt_t (0x0x7f25d46e0840) 0 empty + +Vtable for std::bad_optional_access +std::bad_optional_access::_ZTVSt19bad_optional_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt19bad_optional_access) +16 (int (*)(...))std::bad_optional_access::~bad_optional_access +24 (int (*)(...))std::bad_optional_access::~bad_optional_access +32 (int (*)(...))std::bad_optional_access::what + +Class std::bad_optional_access + size=8 align=8 + base size=8 base align=8 +std::bad_optional_access (0x0x7f25d46bd820) 0 nearly-empty + vptr=((& std::bad_optional_access::_ZTVSt19bad_optional_access) + 16) + std::exception (0x0x7f25d46e0a80) 0 nearly-empty + primary-for std::bad_optional_access (0x0x7f25d46bd820) + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f25d41b6420) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f25d40a2340) 0 + std::iterator (0x0x7f25d41b6ba0) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f25d40a2410) 0 + std::_Bit_iterator_base (0x0x7f25d40a2478) 0 + std::iterator (0x0x7f25d41e4180) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f25d40a2548) 0 + std::_Bit_iterator_base (0x0x7f25d40a25b0) 0 + std::iterator (0x0x7f25d41e4960) 0 empty + +Class __pstl::execution::v1::sequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::sequenced_policy (0x0x7f25d3fc4e40) 0 empty + +Class __pstl::execution::v1::parallel_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_policy (0x0x7f25d3ff7000) 0 empty + +Class __pstl::execution::v1::parallel_unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_unsequenced_policy (0x0x7f25d3ff7180) 0 empty + +Class __pstl::execution::v1::unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::unsequenced_policy (0x0x7f25d3ff7300) 0 empty + +Class std::__detail::__variant::__variant_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_cookie (0x0x7f25d3cfce40) 0 empty + +Class std::__detail::__variant::__variant_idx_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_idx_cookie (0x0x7f25d3cfcea0) 0 empty + +Class std::monostate + size=1 align=1 + base size=0 base align=1 +std::monostate (0x0x7f25d3dc6960) 0 empty + +Vtable for std::bad_variant_access +std::bad_variant_access::_ZTVSt18bad_variant_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt18bad_variant_access) +16 (int (*)(...))std::bad_variant_access::~bad_variant_access +24 (int (*)(...))std::bad_variant_access::~bad_variant_access +32 (int (*)(...))std::bad_variant_access::what + +Class std::bad_variant_access + size=16 align=8 + base size=16 base align=8 +std::bad_variant_access (0x0x7f25d3d21958) 0 + vptr=((& std::bad_variant_access::_ZTVSt18bad_variant_access) + 16) + std::exception (0x0x7f25d3e05ea0) 0 nearly-empty + primary-for std::bad_variant_access (0x0x7f25d3d21958) + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f25d3ab5900) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f25d3ab5960) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f25d3ab5c00) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f25d3b03420) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f25d3b3d540) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f25d3bcf7e0) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f25d3b67c30) 0 + std::__atomic_flag_base (0x0x7f25d3bcf840) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f25d39e4f08) 0 + QAtomicInteger (0x0x7f25d39e4f70) 0 + QBasicAtomicInteger (0x0x7f25d3755780) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f25d2fdda20) 0 empty + +Class QKeyCombination + size=4 align=4 + base size=4 base align=4 +QKeyCombination (0x0x7f25d2fdda80) 0 + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f25d2c80d80) 0 + +Class QMethodRawArguments + size=8 align=8 + base size=8 base align=8 +QMethodRawArguments (0x0x7f25d2cd24e0) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f25d2cd2540) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f25d2ca93a8) 0 + QGenericArgument (0x0x7f25d2cd27e0) 0 + +Class QMetaObject::SuperData + size=8 align=8 + base size=8 base align=8 +QMetaObject::SuperData (0x0x7f25d2cd2cc0) 0 + +Class QMetaObject::Data + size=56 align=8 + base size=56 base align=8 +QMetaObject::Data (0x0x7f25d2cd2d20) 0 + +Class QMetaObject + size=56 align=8 + base size=56 base align=8 +QMetaObject (0x0x7f25d2cd2c60) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f25d2d226c0) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f25d2d6d120) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f25d2d6dae0) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f25d2a4d600) 0 + +Class QArrayData + size=16 align=8 + base size=16 base align=8 +QArrayData (0x0x7f25d2a4d960) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f25d2b04420) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f25d2b04540) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f25d2b04900) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f25d2b04ba0) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f25d2b04d80) 0 + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f25d2b56ea0) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f25d2ba9240) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f25d2ba9a20) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f25d2b16888) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7f25d2b168f0) 0 + primary-for std::system_error (0x0x7f25d2b16888) + std::exception (0x0x7f25d2bd5600) 0 nearly-empty + primary-for std::runtime_error (0x0x7f25d2b168f0) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f25d2b16c30) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7f25d2b16c98) 0 + primary-for std::ios_base::failure (0x0x7f25d2b16c30) + std::runtime_error (0x0x7f25d2b16d00) 0 + primary-for std::system_error (0x0x7f25d2b16c98) + std::exception (0x0x7f25d2c0dd80) 0 nearly-empty + primary-for std::runtime_error (0x0x7f25d2b16d00) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f25d2c0dde0) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f25d2c0de40) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f25d2c0dea0) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f25d2c0dd20) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f25d28ccae0) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f25d296cde0) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f25d24fe888 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f25d24fe958 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7f25d24feea0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f25d24fef70 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f25d25693a8) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7f25d25777e0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f25d25693a8) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f25d2569410) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7f25d2577900) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f25d2569410) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f25d2569478) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7f25d2577a20) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f25d2569478) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f25d2569548) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7f25d2577b40) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f25d2569548) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f25d259f420) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f25d259f780) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f25d259fa80) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f25d259fde0) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f25d2569680) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7f25d224c5a0) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f25d2569680) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f25d22bd360) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7f25d22bd8a0) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f25d23fe6c0) 0 + +Class QByteArrayView + size=16 align=8 + base size=16 base align=8 +QByteArrayView (0x0x7f25d2160a20) 0 + +Class QByteArray + size=24 align=8 + base size=24 base align=8 +QByteArray (0x0x7f25d1e5cb40) 0 + +Class QByteArray::FromBase64Result + size=32 align=8 + base size=28 base align=8 +QByteArray::FromBase64Result (0x0x7f25d1ca8f00) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f25d1d35ea0) 0 + +Class QChar::fromUcs4(char32_t)::R + size=4 align=2 + base size=4 base align=2 +QChar::fromUcs4(char32_t)::R (0x0x7f25d1ab6de0) 0 + +Class QtPrivate::hide_char8_t + size=1 align=1 + base size=0 base align=1 +QtPrivate::hide_char8_t (0x0x7f25d1adb240) 0 empty + +Class QtPrivate::wrap_char + size=1 align=1 + base size=0 base align=1 +QtPrivate::wrap_char (0x0x7f25d1adb2a0) 0 empty + +Class QAnyStringView + size=16 align=8 + base size=16 base align=8 +QAnyStringView (0x0x7f25d1b60000) 0 + +Class QStringTokenizerBaseBase::tokenizer_state + size=24 align=8 + base size=24 base align=8 +QStringTokenizerBaseBase::tokenizer_state (0x0x7f25d18441e0) 0 + +Class QStringTokenizerBaseBase + size=8 align=4 + base size=8 base align=4 +QStringTokenizerBaseBase (0x0x7f25d1844180) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f25d18a90c0) 0 + +Class QString + size=24 align=8 + base size=24 base align=8 +QString (0x0x7f25d1a0b360) 0 + +Class QtPrivate::ArgBase + size=1 align=1 + base size=1 base align=1 +QtPrivate::ArgBase (0x0x7f25d15f1660) 0 + +Class QtPrivate::QStringViewArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QStringViewArg (0x0x7f25d15eb478) 0 + QtPrivate::ArgBase (0x0x7f25d15f16c0) 0 + +Class QtPrivate::QLatin1StringArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QLatin1StringArg (0x0x7f25d15eb548) 0 + QtPrivate::ArgBase (0x0x7f25d15f1900) 0 + +Class QHashSeed + size=8 align=8 + base size=8 base align=8 +QHashSeed (0x0x7f25d1264180) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f25d12a90c0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f25d12a9180) 0 empty + +Class QStringMatcher + size=312 align=8 + base size=312 base align=8 +QStringMatcher (0x0x7f25d10ab6c0) 0 + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f25d1146840) 0 empty + +Class QtPrivate::CompareAgainstLiteralZero + size=1 align=1 + base size=0 base align=1 +QtPrivate::CompareAgainstLiteralZero (0x0x7f25d11735a0) 0 empty + +Class QPartialOrdering + size=1 align=1 + base size=1 base align=1 +QPartialOrdering (0x0x7f25d11737e0) 0 + +Class QIODeviceBase + size=1 align=1 + base size=0 base align=1 +QIODeviceBase (0x0x7f25d1220300) 0 empty + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f25d1312d68) 0 + QIODeviceBase (0x0x7f25d1220360) 0 empty + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f25d12204e0) 0 + +Class QtMetaContainerPrivate::QMetaContainerInterface + size=120 align=8 + base size=120 base align=8 +QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f25d0ef1a80) 0 + +Class QtMetaContainerPrivate::QMetaSequenceInterface + size=216 align=8 + base size=216 base align=8 +QtMetaContainerPrivate::QMetaSequenceInterface (0x0x7f25d0eae8f0) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f25d0ef1b40) 0 + +Class QtMetaContainerPrivate::QMetaAssociationInterface + size=240 align=8 + base size=240 base align=8 +QtMetaContainerPrivate::QMetaAssociationInterface (0x0x7f25d0eae9c0) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f25d0ef1c00) 0 + +Class QMetaContainer + size=8 align=8 + base size=8 base align=8 +QMetaContainer (0x0x7f25d0ff0720) 0 + +Class QMetaSequence + size=8 align=8 + base size=8 base align=8 +QMetaSequence (0x0x7f25d0eaed68) 0 + QMetaContainer (0x0x7f25d0ff0900) 0 + +Class QMetaAssociation + size=8 align=8 + base size=8 base align=8 +QMetaAssociation (0x0x7f25d0eaedd0) 0 + QMetaContainer (0x0x7f25d0ff0cc0) 0 + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f25d0cdfea0) 0 + +Class std::__detail::_List_node_header + size=24 align=8 + base size=24 base align=8 +std::__detail::_List_node_header (0x0x7f25d0c9ce38) 0 + std::__detail::_List_node_base (0x0x7f25d0cdff00) 0 + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f25d0ded000) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7f25d0ded360) 0 + +Class QtPrivate::QMetaTypeInterface + size=112 align=8 + base size=112 base align=8 +QtPrivate::QMetaTypeInterface (0x0x7f25d08527e0) 0 + +Class QMetaType + size=8 align=8 + base size=8 base align=8 +QMetaType (0x0x7f25d08529c0) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f25d08f8a20) 0 + +Class QtPrivate::QTypeNormalizer + size=16 align=8 + base size=16 base align=8 +QtPrivate::QTypeNormalizer (0x0x7f25d0431300) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f25d0417600) 0 + +Class QAdoptSharedDataTag + size=1 align=1 + base size=0 base align=1 +QAdoptSharedDataTag (0x0x7f25d0417960) 0 empty + +Class QtPrivate::RefCounted + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCounted (0x0x7f25d007f9c0) 0 + +Class QPropertyBindingPrivatePtr + size=8 align=8 + base size=8 base align=8 +QPropertyBindingPrivatePtr (0x0x7f25d007fae0) 0 + +Class QUntypedPropertyData::InheritsQUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData::InheritsQUntypedPropertyData (0x0x7f25d00ea180) 0 empty + +Class QUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData (0x0x7f25d00ea120) 0 empty + +Class QPropertyProxyBindingData + size=24 align=8 + base size=24 base align=8 +QPropertyProxyBindingData (0x0x7f25d00ea1e0) 0 + +Class QtPrivate::BindingFunctionVTable + size=32 align=8 + base size=32 base align=8 +QtPrivate::BindingFunctionVTable (0x0x7f25d00ea240) 0 + +Class QtPrivate::QPropertyBindingFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::QPropertyBindingFunction (0x0x7f25d00ea780) 0 + +Class QtPrivate::QPropertyBindingData + size=8 align=8 + base size=8 base align=8 +QtPrivate::QPropertyBindingData (0x0x7f25d00ea7e0) 0 + +Class std::experimental::fundamentals_v2::source_location + size=24 align=8 + base size=24 base align=8 +std::experimental::fundamentals_v2::source_location (0x0x7f25d00eaf00) 0 + +Class QPropertyBindingSourceLocation + size=24 align=8 + base size=24 base align=8 +QPropertyBindingSourceLocation (0x0x7f25d0119660) 0 + +Class QPropertyBindingError + size=8 align=8 + base size=8 base align=8 +QPropertyBindingError (0x0x7f25d0119960) 0 + +Class QUntypedPropertyBinding + size=8 align=8 + base size=8 base align=8 +QUntypedPropertyBinding (0x0x7f25d0119a80) 0 + +Class QPropertyObserverBase + size=24 align=8 + base size=24 base align=8 +QPropertyObserverBase (0x0x7f25d0119cc0) 0 + +Class QPropertyObserver + size=24 align=8 + base size=24 base align=8 +QPropertyObserver (0x0x7f25d00e2888) 0 + QPropertyObserverBase (0x0x7f25d0119e40) 0 + +Class QPropertyNotifier + size=56 align=8 + base size=56 base align=8 +QPropertyNotifier (0x0x7f25d00e2bc8) 0 + QPropertyObserver (0x0x7f25d00e2c30) 0 + QPropertyObserverBase (0x0x7f25d0182300) 0 + +Class QtPrivate::QBindableInterface + size=56 align=8 + base size=56 base align=8 +QtPrivate::QBindableInterface (0x0x7f25d01bf240) 0 + +Class QUntypedBindable + size=16 align=8 + base size=16 base align=8 +QUntypedBindable (0x0x7f25d01e13c0) 0 + +Class QBindingStatus + size=32 align=8 + base size=32 base align=8 +QBindingStatus (0x0x7f25cff02300) 0 + +Class QBindingStorage + size=16 align=8 + base size=16 base align=8 +QBindingStorage (0x0x7f25cff02360) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f25d000e120) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f25cfc72e40) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=80 align=8 + base size=80 base align=8 +QObjectData (0x0x7f25cfd317e0) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f25cfdbf180) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f25cfdbf120) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f25cfa640c0) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f25cfa64960) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f25cfa510d0) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7f25cfa64900) 0 + primary-for QAbstractAnimation (0x0x7f25cfa510d0) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f25cfa64cc0) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f25cfa51138) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7f25cfa64c60) 0 + primary-for QAnimationDriver (0x0x7f25cfa51138) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f25cfa64ea0) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f25cfa511a0) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7f25cfa64e40) 0 + primary-for QEventLoop (0x0x7f25cfa511a0) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f25cfab1420) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f25cfab14e0) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f25cfab1540) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QAbstractEventDispatcher::startingUp +200 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f25cfa51340) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7f25cfab1480) 0 + primary-for QAbstractEventDispatcher (0x0x7f25cfa51340) + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f25cfb0fcc0) 0 empty + +Class QStringConverterBase::State + size=48 align=8 + base size=48 base align=8 +QStringConverterBase::State (0x0x7f25cf9f6900) 0 + +Class QStringConverterBase + size=1 align=1 + base size=0 base align=1 +QStringConverterBase (0x0x7f25cf9f68a0) 0 empty + +Class QStringConverter::Interface + size=40 align=8 + base size=40 base align=8 +QStringConverter::Interface (0x0x7f25cf638540) 0 + +Class QStringConverter + size=56 align=8 + base size=56 base align=8 +QStringConverter (0x0x7f25cfb834e0) 0 + QStringConverterBase (0x0x7f25cf6384e0) 0 empty + +Class QStringEncoder + size=56 align=8 + base size=56 base align=8 +QStringEncoder (0x0x7f25cfb83548) 0 + QStringConverter (0x0x7f25cfb835b0) 0 + QStringConverterBase (0x0x7f25cf638f00) 0 empty + +Class QStringDecoder + size=56 align=8 + base size=56 base align=8 +QStringDecoder (0x0x7f25cfb83618) 0 + QStringConverter (0x0x7f25cfb83680) 0 + QStringConverterBase (0x0x7f25cf682d80) 0 empty + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f25cfb836e8) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + QIODeviceBase (0x0x7f25cf6a4a80) 0 empty + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f25cf711240) 0 + +Class QContiguousCacheData + size=40 align=8 + base size=40 base align=8 +QContiguousCacheData (0x0x7f25cf79f420) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f25cf7cba80) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f25cf7cbc00) 0 + +Class QtPrivate::EnableInternalData + size=1 align=1 + base size=0 base align=1 +QtPrivate::EnableInternalData (0x0x7f25cf47be40) 0 empty + +Class QDebug::Stream + size=88 align=8 + base size=88 base align=8 +QDebug::Stream (0x0x7f25cf4a7d80) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f25cf4791a0) 0 + QIODeviceBase (0x0x7f25cf4a7d20) 0 empty + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f25cf5cf720) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f25cf5cf7e0) 0 empty + +Class QVariant::PrivateShared + size=8 align=8 + base size=8 base align=8 +QVariant::PrivateShared (0x0x7f25cd37b420) 0 + +Class QVariant::Private + size=32 align=8 + base size=32 base align=8 +QVariant::Private (0x0x7f25cd37b480) 0 + +Class QVariant + size=32 align=8 + base size=32 base align=8 +QVariant (0x0x7f25cd37b3c0) 0 + +Class QtPrivate::QVariantTypeCoercer + size=32 align=8 + base size=32 base align=8 +QtPrivate::QVariantTypeCoercer (0x0x7f25cd142ba0) 0 + +Class QVariantConstPointer + size=32 align=8 + base size=32 base align=8 +QVariantConstPointer (0x0x7f25cd142de0) 0 + +Class QModelRoleData + size=40 align=8 + base size=40 base align=8 +QModelRoleData (0x0x7f25cd168000) 0 + +Class QModelRoleDataSpan + size=16 align=8 + base size=16 base align=8 +QModelRoleDataSpan (0x0x7f25cd185f00) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f25cd1cef00) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f25cce3b120) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f25ccead9c0) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractItemModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractItemModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f25ccea5f70) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7f25ccead960) 0 + primary-for QAbstractItemModel (0x0x7f25ccea5f70) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f25ccfe0780) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractTableModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f25ccef9820) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7f25ccef9888) 0 + primary-for QAbstractTableModel (0x0x7f25ccef9820) + QObject (0x0x7f25ccfe0720) 0 + primary-for QAbstractItemModel (0x0x7f25ccef9888) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f25ccfe08a0) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractListModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f25ccef98f0) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7f25ccef9958) 0 + primary-for QAbstractListModel (0x0x7f25ccef98f0) + QObject (0x0x7f25ccfe0840) 0 + primary-for QAbstractItemModel (0x0x7f25ccef9958) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f25ccc7b120) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f25ccc7b1e0) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QAbstractProxyModel::setSourceModel +416 (int (*)(...))__cxa_pure_virtual +424 (int (*)(...))__cxa_pure_virtual +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f25ccc4ad68) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7f25ccc4add0) 0 + primary-for QAbstractProxyModel (0x0x7f25ccc4ad68) + QObject (0x0x7f25ccc7b180) 0 + primary-for QAbstractItemModel (0x0x7f25ccc4add0) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f25ccc7b3c0) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f25ccc4ae38) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7f25ccc4aea0) 0 + primary-for QAnimationGroup (0x0x7f25ccc4ae38) + QObject (0x0x7f25ccc7b360) 0 + primary-for QAbstractAnimation (0x0x7f25ccc4aea0) + +Class QAssociativeIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeIterator (0x0x7f25ccc4af08) 0 + QIterator (0x0x7f25cccce000) 0 + QBaseIterator (0x0x7f25ccc7b7e0) 0 + +Class QAssociativeConstIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeConstIterator (0x0x7f25cccce138) 0 + QConstIterator (0x0x7f25cccce1a0) 0 + QBaseIterator (0x0x7f25ccc7bd80) 0 + +Class QAssociativeIterable + size=24 align=8 + base size=24 base align=8 +QAssociativeIterable (0x0x7f25cccce270) 0 + QIterable (0x0x7f25cccec2a0) 0 + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f25ccdc7d80) 0 + +Class QBitArray + size=24 align=8 + base size=24 base align=8 +QBitArray (0x0x7f25cca27ae0) 0 + +Class QBitRef + size=16 align=8 + base size=16 base align=8 +QBitRef (0x0x7f25cca55a20) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f25cca9e5a0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f25ccdb47e0) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7f25cca9e4e0) 0 + primary-for QIODevice (0x0x7f25ccdb47e0) + QIODeviceBase (0x0x7f25cca9e540) 0 empty + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f25cca9e9c0) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f25ccaa4208) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7f25ccdb4850) 0 + primary-for QBuffer (0x0x7f25ccaa4208) + QObject (0x0x7f25cca9e900) 0 + primary-for QIODevice (0x0x7f25ccdb4850) + QIODeviceBase (0x0x7f25cca9e960) 0 empty + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f25cca9ec00) 0 + +Class QByteArrayMatcher + size=1056 align=8 + base size=1056 base align=8 +QByteArrayMatcher (0x0x7f25cca9eba0) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f25cca9ed80) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f25cca9ed20) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f25ccb4b5a0) 0 + +Class QCalendar::YearMonthDay + size=12 align=4 + base size=12 base align=4 +QCalendar::YearMonthDay (0x0x7f25cc868420) 0 + +Class QCalendar::SystemId + size=8 align=8 + base size=8 base align=8 +QCalendar::SystemId (0x0x7f25cc868480) 0 + +Class QCalendar + size=8 align=8 + base size=8 base align=8 +QCalendar (0x0x7f25cc8683c0) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f25cc868ea0) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f25cc9164e0) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f25cc962720) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f25cc962780) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f25cc9626c0) 0 + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7f25cc9e79c0) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f25cca12d80) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f25cc737000) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel + size=1 align=1 + base size=0 base align=1 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel (0x0x7f25cc76b780) 0 empty + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f25cc76b840) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator + size=24 align=8 + base size=17 base align=8 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator (0x0x7f25cc76b9c0) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f25cc800c00) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f25cc4ea840) 0 + +Class QCborParserError + size=16 align=8 + base size=16 base align=8 +QCborParserError (0x0x7f25cc56a9c0) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7f25cc56aa80) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7f25cc2a7360) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7f25cc2e28a0) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7f25cc2e2900) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7f25cc2e2840) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7f25cc3d1ea0) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7f25cc3d1f00) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7f25cc3d1e40) 0 + +Class qfloat16::Wrap + size=2 align=2 + base size=2 base align=2 +qfloat16::Wrap (0x0x7f25cc1e7f60) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7f25cc1e7f00) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7f25cbf07360) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7f25cbf487e0) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f25cbf7c240) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f25cbf7c420) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f25cbc27e40) 0 + +Class QEvent::InputEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::InputEventTag (0x0x7f25cbcaa7e0) 0 empty + +Class QEvent::PointerEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::PointerEventTag (0x0x7f25cbcaa840) 0 empty + +Class QEvent::SinglePointEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::SinglePointEventTag (0x0x7f25cbcaa8a0) 0 empty + +Vtable for QEvent +QEvent::_ZTV6QEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QEvent + size=16 align=8 + base size=16 base align=8 +QEvent (0x0x7f25cbcaa780) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QTimerEvent::clone + +Class QTimerEvent + size=24 align=8 + base size=20 base align=8 +QTimerEvent (0x0x7f25cbca8680) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7f25cbd11240) 0 + primary-for QTimerEvent (0x0x7f25cbca8680) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QChildEvent::clone + +Class QChildEvent + size=24 align=8 + base size=24 base align=8 +QChildEvent (0x0x7f25cbca86e8) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7f25cbd11720) 0 + primary-for QChildEvent (0x0x7f25cbca86e8) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDynamicPropertyChangeEvent::clone + +Class QDynamicPropertyChangeEvent + size=40 align=8 + base size=40 base align=8 +QDynamicPropertyChangeEvent (0x0x7f25cbca8750) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7f25cbd11b40) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f25cbca8750) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDeferredDeleteEvent::clone + +Class QDeferredDeleteEvent + size=24 align=8 + base size=20 base align=8 +QDeferredDeleteEvent (0x0x7f25cbca87b8) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7f25cbd11de0) 0 + primary-for QDeferredDeleteEvent (0x0x7f25cbca87b8) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f25cbd4a1e0) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f25cbca8888) 0 + QBasicMutex (0x0x7f25cbd4af00) 0 + +Class QRecursiveMutex + size=24 align=8 + base size=24 base align=8 +QRecursiveMutex (0x0x7f25cbdb2360) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f25cbdb2960) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f25cbdb2f60) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f25cbe1cc00) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f25cbb8a660) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f25cbbd27e0) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f25cbbd2ae0) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f25cb907ea0) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f25cb934b60) 0 + std::__mutex_base (0x0x7f25cb907f00) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f25cb948120) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f25cb948180) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f25cb9481e0) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f25cb948c00) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f25cb934bc8) 0 + std::__recursive_mutex_base (0x0x7f25cb948c60) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f25cb902540) 0 + std::__mutex_base (0x0x7f25cb981060) 0 + std::__timed_mutex_impl (0x0x7f25cb9810c0) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f25cb9025b0) 0 + std::__recursive_mutex_base (0x0x7f25cb981480) 0 + std::__timed_mutex_impl (0x0x7f25cb9814e0) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f25cb9bc300) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7f25cb9bc5a0) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f25cb9bc600) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f25cb9bc540) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f25cb796840) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f25cb796c00) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f25cb796c60) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f25cb48a1e0) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f25cb4259c0) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7f25cb425a28) 0 + primary-for std::future_error (0x0x7f25cb4259c0) + std::exception (0x0x7f25cb48a900) 0 nearly-empty + primary-for std::logic_error (0x0x7f25cb425a28) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f25cb4bb060) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f25cb4bb000) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f25cb600a80) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f25cb60c208) 0 + std::__at_thread_exit_elt (0x0x7f25cb600b40) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f25cb4bb1e0) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f25cb48af60) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f25caec7618) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7f25caef8840) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f25caec7618) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f25caf2d120) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f25caec7958) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7f25caf2d0c0) 0 + primary-for QThread (0x0x7f25caec7958) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=9 base align=8 +QRunnable (0x0x7f25caf2d480) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f25caf2d600) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f25caec79c0) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7f25caf2d5a0) 0 + primary-for QThreadPool (0x0x7f25caec79c0) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f25caec7a28) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7f25caf2d780) 0 nearly-empty + primary-for QException (0x0x7f25caec7a28) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=16 align=8 + base size=16 base align=8 +QUnhandledException (0x0x7f25caec7a90) 0 + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7f25caec7af8) 0 nearly-empty + primary-for QUnhandledException (0x0x7f25caec7a90) + std::exception (0x0x7f25caf2d7e0) 0 nearly-empty + primary-for QException (0x0x7f25caec7af8) + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f25caf93660) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f25cad86d20) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f25cad86cc0) 0 + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f25cadc4f60) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f25cadd16e8) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7f25cadc4f00) 0 + primary-for QCoreApplication (0x0x7f25cadd16e8) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f25caa251e0) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7f25caa25300) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +224 (int (*)(...))QConcatenateTablesProxyModel::mimeData +232 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +240 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QConcatenateTablesProxyModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QConcatenateTablesProxyModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7f25cadd1750) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7f25cadd17b8) 0 + primary-for QConcatenateTablesProxyModel (0x0x7f25cadd1750) + QObject (0x0x7f25caa252a0) 0 + primary-for QAbstractItemModel (0x0x7f25cadd17b8) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f25caa25480) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f25caa25660) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFileDevice::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f25cadd1820) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7f25caa4c4d0) 0 + primary-for QFileDevice (0x0x7f25cadd1820) + QObject (0x0x7f25caa255a0) 0 + primary-for QIODevice (0x0x7f25caa4c4d0) + QIODeviceBase (0x0x7f25caa25600) 0 empty + +Class std::filesystem::space_info + size=24 align=8 + base size=24 base align=8 +std::filesystem::space_info (0x0x7f25caae1360) 0 + +Class std::filesystem::__file_clock + size=1 align=1 + base size=0 base align=1 +std::filesystem::__file_clock (0x0x7f25cab29900) 0 empty + +Class std::time_base + size=1 align=1 + base size=0 base align=1 +std::time_base (0x0x7f25cab29d80) 0 empty + +Class std::money_base::pattern + size=4 align=1 + base size=4 base align=1 +std::money_base::pattern (0x0x7f25cabaf0c0) 0 + +Class std::money_base + size=1 align=1 + base size=0 base align=1 +std::money_base (0x0x7f25cabaf060) 0 empty + +Class std::messages_base + size=1 align=1 + base size=0 base align=1 +std::messages_base (0x0x7f25cabff660) 0 empty + +Class std::codecvt_base + size=1 align=1 + base size=0 base align=1 +std::codecvt_base (0x0x7f25ca83e1e0) 0 empty + +Construction vtable for std::basic_istream (0x0x7f25ca67ba90 instance) in std::__cxx11::basic_istringstream +std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE0_Si: 10 entries +0 120 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551496 +48 (int (*)(...))-120 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +VTT for std::__cxx11::basic_istringstream +std::__cxx11::basic_istringstream::_ZTTNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE: 4 entries +0 ((& std::__cxx11::basic_istringstream::_ZTVNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE) + 24) +8 ((& std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE0_Si) + 24) +16 ((& std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE0_Si) + 64) +24 ((& std::__cxx11::basic_istringstream::_ZTVNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE) + 64) + +Construction vtable for std::basic_ostream (0x0x7f25ca67bd00 instance) in std::__cxx11::basic_ostringstream +std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE0_So: 10 entries +0 112 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551504 +48 (int (*)(...))-112 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::__cxx11::basic_ostringstream +std::__cxx11::basic_ostringstream::_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE: 4 entries +0 ((& std::__cxx11::basic_ostringstream::_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE) + 24) +8 ((& std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE0_So) + 24) +16 ((& std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE0_So) + 64) +24 ((& std::__cxx11::basic_ostringstream::_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE) + 64) + +Construction vtable for std::basic_iostream (0x0x7f25ca9eb5b0 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Sd: 15 entries +0 128 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISd) +24 0 +32 0 +40 112 +48 (int (*)(...))-16 +56 (int (*)(...))(& _ZTISd) +64 0 +72 0 +80 18446744073709551488 +88 (int (*)(...))-128 +96 (int (*)(...))(& _ZTISd) +104 0 +112 0 + +Construction vtable for std::basic_istream (0x0x7f25ca67bf70 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Si: 10 entries +0 128 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551488 +48 (int (*)(...))-128 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f25ca67bc30 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE16_So: 10 entries +0 112 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551504 +48 (int (*)(...))-112 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE: 10 entries +0 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE) + 24) +8 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Sd) + 24) +16 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Si) + 24) +24 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Si) + 64) +32 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE16_So) + 24) +40 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE16_So) + 64) +48 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Sd) + 104) +56 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Sd) + 64) +64 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE) + 104) +72 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f25ca70c340 instance) in std::__cxx11::basic_istringstream +std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E: 10 entries +0 120 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551496 +48 (int (*)(...))-120 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::__cxx11::basic_istringstream +std::__cxx11::basic_istringstream::_ZTTNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE: 4 entries +0 ((& std::__cxx11::basic_istringstream::_ZTVNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE) + 24) +8 ((& std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E) + 24) +16 ((& std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E) + 64) +24 ((& std::__cxx11::basic_istringstream::_ZTVNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE) + 64) + +Construction vtable for std::basic_ostream (0x0x7f25ca70c5b0 instance) in std::__cxx11::basic_ostringstream +std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_ostreamIwS2_E: 10 entries +0 112 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551504 +48 (int (*)(...))-112 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::__cxx11::basic_ostringstream +std::__cxx11::basic_ostringstream::_ZTTNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE: 4 entries +0 ((& std::__cxx11::basic_ostringstream::_ZTVNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE) + 24) +8 ((& std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_ostreamIwS2_E) + 24) +16 ((& std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_ostreamIwS2_E) + 64) +24 ((& std::__cxx11::basic_ostringstream::_ZTVNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE) + 64) + +Construction vtable for std::basic_iostream (0x0x7f25ca9eb9a0 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St14basic_iostreamIwS2_E: 15 entries +0 128 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt14basic_iostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 112 +48 (int (*)(...))-16 +56 (int (*)(...))(& _ZTISt14basic_iostreamIwSt11char_traitsIwEE) +64 0 +72 0 +80 18446744073709551488 +88 (int (*)(...))-128 +96 (int (*)(...))(& _ZTISt14basic_iostreamIwSt11char_traitsIwEE) +104 0 +112 0 + +Construction vtable for std::basic_istream (0x0x7f25ca70c820 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E: 10 entries +0 128 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551488 +48 (int (*)(...))-128 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f25ca70c8f0 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE16_St13basic_ostreamIwS2_E: 10 entries +0 112 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551504 +48 (int (*)(...))-112 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTTNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE: 10 entries +0 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE) + 24) +8 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St14basic_iostreamIwS2_E) + 24) +16 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E) + 24) +24 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E) + 64) +32 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE16_St13basic_ostreamIwS2_E) + 24) +40 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE16_St13basic_ostreamIwS2_E) + 64) +48 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St14basic_iostreamIwS2_E) + 104) +56 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St14basic_iostreamIwS2_E) + 64) +64 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE) + 104) +72 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE) + 64) + +Class std::_Resetiosflags + size=4 align=4 + base size=4 base align=4 +std::_Resetiosflags (0x0x7f25ca6cca20) 0 + +Class std::_Setiosflags + size=4 align=4 + base size=4 base align=4 +std::_Setiosflags (0x0x7f25ca6ccba0) 0 + +Class std::_Setbase + size=4 align=4 + base size=4 base align=4 +std::_Setbase (0x0x7f25ca6ccd20) 0 + +Class std::_Setprecision + size=4 align=4 + base size=4 base align=4 +std::_Setprecision (0x0x7f25ca76c060) 0 + +Class std::_Setw + size=4 align=4 + base size=4 base align=4 +std::_Setw (0x0x7f25ca76c1e0) 0 + +Class std::filesystem::__cxx11::path::__null_terminated + size=1 align=1 + base size=0 base align=1 +std::filesystem::__cxx11::path::__null_terminated (0x0x7f25ca4382a0) 0 empty + +Class std::filesystem::__cxx11::path::_List::_Impl_deleter + size=1 align=1 + base size=0 base align=1 +std::filesystem::__cxx11::path::_List::_Impl_deleter (0x0x7f25ca438360) 0 empty + +Class std::filesystem::__cxx11::path::_List + size=8 align=8 + base size=8 base align=8 +std::filesystem::__cxx11::path::_List (0x0x7f25ca438300) 0 + +Class std::filesystem::__cxx11::path + size=40 align=8 + base size=40 base align=8 +std::filesystem::__cxx11::path (0x0x7f25ca438180) 0 + +Vtable for std::filesystem::__cxx11::filesystem_error +std::filesystem::__cxx11::filesystem_error::_ZTVNSt10filesystem7__cxx1116filesystem_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt10filesystem7__cxx1116filesystem_errorE) +16 (int (*)(...))std::filesystem::__cxx11::filesystem_error::~filesystem_error +24 (int (*)(...))std::filesystem::__cxx11::filesystem_error::~filesystem_error +32 (int (*)(...))std::filesystem::__cxx11::filesystem_error::what + +Class std::filesystem::__cxx11::filesystem_error + size=48 align=8 + base size=48 base align=8 +std::filesystem::__cxx11::filesystem_error (0x0x7f25ca28e5b0) 0 + vptr=((& std::filesystem::__cxx11::filesystem_error::_ZTVNSt10filesystem7__cxx1116filesystem_errorE) + 16) + std::system_error (0x0x7f25ca28e618) 0 + primary-for std::filesystem::__cxx11::filesystem_error (0x0x7f25ca28e5b0) + std::runtime_error (0x0x7f25ca28e680) 0 + primary-for std::system_error (0x0x7f25ca28e618) + std::exception (0x0x7f25ca2a6240) 0 nearly-empty + primary-for std::runtime_error (0x0x7f25ca28e680) + +Class std::filesystem::__cxx11::path::_Cmpt + size=48 align=8 + base size=48 base align=8 +std::filesystem::__cxx11::path::_Cmpt (0x0x7f25ca2fe000) 0 + std::filesystem::__cxx11::path (0x0x7f25ca2a6d20) 0 + +Class std::filesystem::__cxx11::path::iterator + size=24 align=8 + base size=17 base align=8 +std::filesystem::__cxx11::path::iterator (0x0x7f25ca305f60) 0 + +Class std::filesystem::file_status + size=8 align=4 + base size=8 base align=4 +std::filesystem::file_status (0x0x7f25ca3d3780) 0 + +Class std::filesystem::__cxx11::directory_entry + size=48 align=8 + base size=41 base align=8 +std::filesystem::__cxx11::directory_entry (0x0x7f25ca3d3c60) 0 + +Class std::filesystem::__cxx11::__directory_iterator_proxy + size=48 align=8 + base size=48 base align=8 +std::filesystem::__cxx11::__directory_iterator_proxy (0x0x7f25ca06c360) 0 + +Class std::filesystem::__cxx11::directory_iterator + size=16 align=8 + base size=16 base align=8 +std::filesystem::__cxx11::directory_iterator (0x0x7f25ca06cae0) 0 + +Class std::filesystem::__cxx11::recursive_directory_iterator + size=16 align=8 + base size=16 base align=8 +std::filesystem::__cxx11::recursive_directory_iterator (0x0x7f25ca0ebc00) 0 + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f25ca1b1d80) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f25ca1cea90) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7f25ca1ceaf8) 0 + primary-for QFile (0x0x7f25ca1cea90) + QIODevice (0x0x7f25ca290c40) 0 + primary-for QFileDevice (0x0x7f25ca1ceaf8) + QObject (0x0x7f25ca1b1cc0) 0 + primary-for QIODevice (0x0x7f25ca290c40) + QIODeviceBase (0x0x7f25ca1b1d20) 0 empty + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f25ca1fb3c0) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f25c9e88d20) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f25c9f86480) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f25c9f86900) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f25c9cb30c0) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f25c9cb3300) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f25c9c72c98) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7f25c9cb32a0) 0 + primary-for QFileSelector (0x0x7f25c9c72c98) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f25c9cb34e0) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f25c9c72d00) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7f25c9cb3480) 0 + primary-for QFileSystemWatcher (0x0x7f25c9c72d00) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f25c9cb3c60) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f25c9c72d68) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7f25c9cb3c00) 0 + primary-for QFutureWatcherBase (0x0x7f25c9c72d68) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f25c9cf61e0) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QIdentityProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QIdentityProxyModel::insertRows +272 (int (*)(...))QIdentityProxyModel::insertColumns +280 (int (*)(...))QIdentityProxyModel::removeRows +288 (int (*)(...))QIdentityProxyModel::removeColumns +296 (int (*)(...))QIdentityProxyModel::moveRows +304 (int (*)(...))QIdentityProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QIdentityProxyModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QIdentityProxyModel::setSourceModel +416 (int (*)(...))QIdentityProxyModel::mapToSource +424 (int (*)(...))QIdentityProxyModel::mapFromSource +432 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +440 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f25c9c72f70) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7f25c9cfa000) 0 + primary-for QIdentityProxyModel (0x0x7f25c9c72f70) + QAbstractItemModel (0x0x7f25c9cfa068) 0 + primary-for QAbstractProxyModel (0x0x7f25c9cfa000) + QObject (0x0x7f25c9cf6180) 0 + primary-for QAbstractItemModel (0x0x7f25c9cfa068) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f25c9cf6360) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f25c9d5af60) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f25c9d66e38) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7f25c9d5af00) 0 + primary-for QItemSelectionModel (0x0x7f25c9d66e38) + +Class QItemSelection + size=24 align=8 + base size=24 base align=8 +QItemSelection (0x0x7f25c9dca340) 0 + QList (0x0x7f25c9dca3a8) 0 + QListSpecialMethods (0x0x7f25c9dca410) 0 empty + QListSpecialMethodsBase (0x0x7f25c9d8ca20) 0 empty + +Class QJsonValue + size=24 align=8 + base size=24 base align=8 +QJsonValue (0x0x7f25c9a9bb40) 0 + +Class QJsonValueRef + size=16 align=8 + base size=16 base align=8 +QJsonValueRef (0x0x7f25c9ae1060) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::iterator (0x0x7f25c9b293c0) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::const_iterator (0x0x7f25c9b29420) 0 + +Class QJsonArray + size=8 align=8 + base size=8 base align=8 +QJsonArray (0x0x7f25c9b29360) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f25c9bbdde0) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f25c9bbde40) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::iterator (0x0x7f25c996c3c0) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::const_iterator (0x0x7f25c996c420) 0 + +Class QJsonObject + size=8 align=8 + base size=8 base align=8 +QJsonObject (0x0x7f25c996c360) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f25c9a07f00) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=24 align=8 + base size=24 base align=8 +QLibrary (0x0x7f25c9a12c98) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7f25c9a07ea0) 0 + primary-for QLibrary (0x0x7f25c9a12c98) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f25c9645600) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f25c96455a0) 0 + +Class QTypeRevision + size=2 align=1 + base size=2 base align=1 +QTypeRevision (0x0x7f25c972cd80) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f25c97e6600) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f25c97e66c0) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f25c9442d80) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f25c94b8720) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f25c9500d20) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f25c9579540) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f25c9579cc0) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f25c9612600) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f25c92aa360) 0 + +Class QMetaMethod::Data + size=8 align=8 + base size=8 base align=8 +QMetaMethod::Data (0x0x7f25c92aa420) 0 + +Class QMetaMethod + size=16 align=8 + base size=16 base align=8 +QMetaMethod (0x0x7f25c92aa3c0) 0 + +Class QMetaEnum::Data + size=8 align=8 + base size=8 base align=8 +QMetaEnum::Data (0x0x7f25c930f660) 0 + +Class QMetaEnum + size=16 align=8 + base size=16 base align=8 +QMetaEnum (0x0x7f25c930f600) 0 + +Class QMetaProperty::Data + size=8 align=8 + base size=8 base align=8 +QMetaProperty::Data (0x0x7f25c93523c0) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f25c9352360) 0 + +Class QMetaClassInfo::Data + size=8 align=8 + base size=8 base align=8 +QMetaClassInfo::Data (0x0x7f25c9352a80) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=16 base align=8 +QMetaClassInfo (0x0x7f25c9352a20) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f25c939e8a0) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f25c93a27b8) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7f25c939e840) 0 + primary-for QMimeData (0x0x7f25c93a27b8) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f25c939ea20) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f25c9030540) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f25c9030600) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=40 align=8 + base size=40 base align=8 +QObjectCleanupHandler (0x0x7f25c902f680) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7f25c90305a0) 0 + primary-for QObjectCleanupHandler (0x0x7f25c902f680) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f25c90306c0) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f25c908e4e0) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f25c90950d0) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7f25c9095138) 0 + primary-for QParallelAnimationGroup (0x0x7f25c90950d0) + QAbstractAnimation (0x0x7f25c90951a0) 0 + primary-for QAnimationGroup (0x0x7f25c9095138) + QObject (0x0x7f25c908e480) 0 + primary-for QAbstractAnimation (0x0x7f25c90951a0) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f25c908e6c0) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f25c9095208) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7f25c9095270) 0 + primary-for QPauseAnimation (0x0x7f25c9095208) + QObject (0x0x7f25c908e660) 0 + primary-for QAbstractAnimation (0x0x7f25c9095270) + +Class QPluginMetaData + size=16 align=8 + base size=16 base align=8 +QPluginMetaData (0x0x7f25c908e8a0) 0 + +Class QStaticPlugin + size=24 align=8 + base size=24 base align=8 +QStaticPlugin (0x0x7f25c908e900) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f25c90de360) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f25c90d1e38) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7f25c90de300) 0 + primary-for QPluginLoader (0x0x7f25c90d1e38) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f25c90de420) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f25c914ec60) 0 empty + +Class QProcess::Use_setChildProcessModifier_Instead + size=1 align=1 + base size=0 base align=1 +QProcess::Use_setChildProcessModifier_Instead (0x0x7f25c914ecc0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 32 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QProcess::writeData +248 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f25c9151f08) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7f25c9147310) 0 + primary-for QProcess (0x0x7f25c9151f08) + QObject (0x0x7f25c914eba0) 0 + primary-for QIODevice (0x0x7f25c9147310) + QIODeviceBase (0x0x7f25c914ec00) 0 empty + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f25c9190a80) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f25c9151f70) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7f25c91a8000) 0 + primary-for QVariantAnimation (0x0x7f25c9151f70) + QObject (0x0x7f25c9190a20) 0 + primary-for QAbstractAnimation (0x0x7f25c91a8000) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f25c9190cc0) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f25c91a80d0) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7f25c91a8138) 0 + primary-for QPropertyAnimation (0x0x7f25c91a80d0) + QAbstractAnimation (0x0x7f25c91a81a0) 0 + primary-for QVariantAnimation (0x0x7f25c91a8138) + QObject (0x0x7f25c9190c60) 0 + primary-for QAbstractAnimation (0x0x7f25c91a81a0) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f25c8e57420) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f25c8f478a0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f25c8f47840) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f25d1e3b720) 0 + +Class QRandomGenerator::InitialRandomData + size=16 align=8 + base size=16 base align=8 +QRandomGenerator::InitialRandomData (0x0x7f25cc8fc4e0) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f25cc8fce40) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f25cc8fc480) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f25d42b1d00) 0 + QRandomGenerator (0x0x7f25cc0299c0) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f25cc004060) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f25cc004ae0) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f25cbe1c4e0) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f25cbc1bb40) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f25ca998900) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f25c9a39e40) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f25c90c32a0) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f25ca08a420) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f25ca08a720) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QSaveFile::writeData +248 (int (*)(...))QSaveFile::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f25d4476d68) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7f25d4476dd0) 0 + primary-for QSaveFile (0x0x7f25d4476d68) + QIODevice (0x0x7f25d09ba5b0) 0 + primary-for QFileDevice (0x0x7f25d4476dd0) + QObject (0x0x7f25ca08a660) 0 + primary-for QIODevice (0x0x7f25d09ba5b0) + QIODeviceBase (0x0x7f25ca08a6c0) 0 empty + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f25ca08aa80) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f25cc3152a0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f25d0e32000) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f25d44e7d68) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7f25d44e7dd0) 0 + primary-for QSequentialAnimationGroup (0x0x7f25d44e7d68) + QAbstractAnimation (0x0x7f25d44e7e38) 0 + primary-for QAnimationGroup (0x0x7f25d44e7dd0) + QObject (0x0x7f25d0deff60) 0 + primary-for QAbstractAnimation (0x0x7f25d44e7e38) + +Class QSequentialIterator + size=16 align=8 + base size=16 base align=8 +QSequentialIterator (0x0x7f25d44e7f08) 0 + QIterator (0x0x7f25d44f9000) 0 + QBaseIterator (0x0x7f25d0e32360) 0 + +Class QSequentialConstIterator + size=16 align=8 + base size=16 base align=8 +QSequentialConstIterator (0x0x7f25d44f90d0) 0 + QConstIterator (0x0x7f25d44f9138) 0 + QBaseIterator (0x0x7f25d0e32900) 0 + +Class QSequentialIterable + size=24 align=8 + base size=24 base align=8 +QSequentialIterable (0x0x7f25d44f91a0) 0 + QIterable (0x0x7f25d0e32e40) 0 + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f25d2870420) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f25d42b3618) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7f25d28703c0) 0 + primary-for QSettings (0x0x7f25d42b3618) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f25d2870840) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f25d42b3680) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7f25d28707e0) 0 + primary-for QSharedMemory (0x0x7f25d42b3680) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f25d2870a20) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f25d42b36e8) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7f25d28709c0) 0 + primary-for QSignalMapper (0x0x7f25d42b36e8) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f25c8b98480) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f25d42bfea0) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7f25c8b98420) 0 + primary-for QSocketNotifier (0x0x7f25d42bfea0) + +Class QSocketDescriptor + size=4 align=4 + base size=4 base align=4 +QSocketDescriptor (0x0x7f25c8b98600) 0 + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f25c8baaf60) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QSortFilterProxyModel::mimeTypes +224 (int (*)(...))QSortFilterProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QSortFilterProxyModel::dropMimeData +248 (int (*)(...))QSortFilterProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QSortFilterProxyModel::insertRows +272 (int (*)(...))QSortFilterProxyModel::insertColumns +280 (int (*)(...))QSortFilterProxyModel::removeRows +288 (int (*)(...))QSortFilterProxyModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSortFilterProxyModel::fetchMore +320 (int (*)(...))QSortFilterProxyModel::canFetchMore +328 (int (*)(...))QSortFilterProxyModel::flags +336 (int (*)(...))QSortFilterProxyModel::sort +344 (int (*)(...))QSortFilterProxyModel::buddy +352 (int (*)(...))QSortFilterProxyModel::match +360 (int (*)(...))QSortFilterProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSortFilterProxyModel::setSourceModel +416 (int (*)(...))QSortFilterProxyModel::mapToSource +424 (int (*)(...))QSortFilterProxyModel::mapFromSource +432 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +440 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +448 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +456 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +464 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f25d42cbdd0) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7f25d42cbe38) 0 + primary-for QSortFilterProxyModel (0x0x7f25d42cbdd0) + QAbstractItemModel (0x0x7f25d42cbea0) 0 + primary-for QAbstractProxyModel (0x0x7f25d42cbe38) + QObject (0x0x7f25c8baaf00) 0 + primary-for QAbstractItemModel (0x0x7f25d42cbea0) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f25c8bc2360) 0 empty + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f25c8bc2d20) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f25c8c015a0) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f25c882cde0) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QStringListModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QStringListModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStringListModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QStringListModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QStringListModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStringListModel::flags +336 (int (*)(...))QStringListModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStringListModel + size=40 align=8 + base size=40 base align=8 +QStringListModel (0x0x7f25d42dbaf8) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7f25d42dbb60) 0 + primary-for QStringListModel (0x0x7f25d42dbaf8) + QAbstractItemModel (0x0x7f25d42dbbc8) 0 + primary-for QAbstractListModel (0x0x7f25d42dbb60) + QObject (0x0x7f25c882cd80) 0 + primary-for QAbstractItemModel (0x0x7f25d42dbbc8) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f25c882cea0) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f25c884f000) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f25c884f180) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QTemporaryFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f25d42dbc30) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7f25d42dbc98) 0 + primary-for QTemporaryFile (0x0x7f25d42dbc30) + QFileDevice (0x0x7f25d42dbd00) 0 + primary-for QFile (0x0x7f25d42dbc98) + QIODevice (0x0x7f25c88471c0) 0 + primary-for QFileDevice (0x0x7f25d42dbd00) + QObject (0x0x7f25c884f0c0) 0 + primary-for QIODevice (0x0x7f25c88471c0) + QIODeviceBase (0x0x7f25c884f120) 0 empty + +Class QTextBoundaryFinder + size=72 align=8 + base size=72 base align=8 +QTextBoundaryFinder (0x0x7f25c884f3c0) 0 + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f25c884fa20) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f25c887d120) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f25d42dbea0) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7f25c887d0c0) 0 + primary-for QTimeLine (0x0x7f25d42dbea0) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f25c887d300) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=16 align=8 + base size=16 base align=8 +QTimer (0x0x7f25d42dbf08) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7f25c887d2a0) 0 + primary-for QTimer (0x0x7f25d42dbf08) + +Class QTimeZone::OffsetData + size=48 align=8 + base size=44 base align=8 +QTimeZone::OffsetData (0x0x7f25c887dc60) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f25c887dc00) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f25c88c3cc0) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f25d42f3f70) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7f25c88c3c60) 0 + primary-for QTranslator (0x0x7f25d42f3f70) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7f25c88c3ea0) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QTransposeProxyModel::insertRows +272 (int (*)(...))QTransposeProxyModel::insertColumns +280 (int (*)(...))QTransposeProxyModel::removeRows +288 (int (*)(...))QTransposeProxyModel::removeColumns +296 (int (*)(...))QTransposeProxyModel::moveRows +304 (int (*)(...))QTransposeProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QTransposeProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QTransposeProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QTransposeProxyModel::setSourceModel +416 (int (*)(...))QTransposeProxyModel::mapToSource +424 (int (*)(...))QTransposeProxyModel::mapFromSource +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7f25d42f4000) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7f25d42f4068) 0 + primary-for QTransposeProxyModel (0x0x7f25d42f4000) + QAbstractItemModel (0x0x7f25d42f40d0) 0 + primary-for QAbstractProxyModel (0x0x7f25d42f4068) + QObject (0x0x7f25c88c3e40) 0 + primary-for QAbstractItemModel (0x0x7f25d42f40d0) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f25c88d8060) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f25c891b8a0) 0 + +Class QtPrivate::QXmlString + size=24 align=8 + base size=24 base align=8 +QtPrivate::QXmlString (0x0x7f25c891b9c0) 0 + +Class QXmlStreamAttribute + size=104 align=8 + base size=97 base align=8 +QXmlStreamAttribute (0x0x7f25c8935840) 0 + +Class QXmlStreamAttributes + size=24 align=8 + base size=24 base align=8 +QXmlStreamAttributes (0x0x7f25d430cd68) 0 + QList (0x0x7f25d430cdd0) 0 + QListSpecialMethods (0x0x7f25d430ce38) 0 empty + QListSpecialMethodsBase (0x0x7f25c894d900) 0 empty + +Class QXmlStreamNamespaceDeclaration + size=48 align=8 + base size=48 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f25c8980180) 0 + +Class QXmlStreamNotationDeclaration + size=72 align=8 + base size=72 base align=8 +QXmlStreamNotationDeclaration (0x0x7f25c898d840) 0 + +Class QXmlStreamEntityDeclaration + size=120 align=8 + base size=120 base align=8 +QXmlStreamEntityDeclaration (0x0x7f25c899bea0) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f25c89b2660) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f25c89b26c0) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f25c89b2c60) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=16 align=8 + base size=10 base align=8 +QPaintDevice (0x0x7f25c89b2e40) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16) + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7f25c89e3900) 0 + +Class QColor::CT + size=10 align=2 + base size=10 base align=2 +QColor::CT (0x0x7f25c8a19600) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7f25c8a195a0) 0 + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7f25c8659660) 0 + +Class QPolygon + size=24 align=8 + base size=24 base align=8 +QPolygon (0x0x7f25d4417958) 0 + QList (0x0x7f25d44179c0) 0 + QListSpecialMethods (0x0x7f25d4417a28) 0 empty + QListSpecialMethodsBase (0x0x7f25c8692360) 0 empty + +Class QPolygonF + size=24 align=8 + base size=24 base align=8 +QPolygonF (0x0x7f25d441ec98) 0 + QList (0x0x7f25d441ed00) 0 + QListSpecialMethods (0x0x7f25d441ec30) 0 empty + QListSpecialMethodsBase (0x0x7f25c86d9f60) 0 empty + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7f25c8727780) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7f25c8727720) 0 + +Class QTransform::Affine + size=8 align=8 + base size=8 base align=8 +QTransform::Affine (0x0x7f25c875acc0) 0 + +Class QTransform + size=80 align=8 + base size=74 base align=8 +QTransform (0x0x7f25c875ac60) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=24 align=8 + base size=24 base align=8 +QImage (0x0x7f25d4035f70) 0 + vptr=((& QImage::_ZTV6QImage) + 16) + QPaintDevice (0x0x7f25c878a8a0) 0 + primary-for QImage (0x0x7f25d4035f70) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=24 align=8 + base size=24 base align=8 +QPixmap (0x0x7f25d40403a8) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16) + QPaintDevice (0x0x7f25c87d70c0) 0 + primary-for QPixmap (0x0x7f25d40403a8) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7f25c8805cc0) 0 + +Vtable for QAbstractFileIconProvider +QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractFileIconProvider) +16 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +24 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +32 (int (*)(...))QAbstractFileIconProvider::icon +40 (int (*)(...))QAbstractFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QAbstractFileIconProvider + size=16 align=8 + base size=16 base align=8 +QAbstractFileIconProvider (0x0x7f25c8438060) 0 + vptr=((& QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider) + 16) + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7f25c8438600) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7f25c846d3c0) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7f25c8491360) 0 + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7f25c84eae40) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7f25d14f9a90) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16) + QObject (0x0x7f25c84eade0) 0 + primary-for QScreen (0x0x7f25d14f9a90) + +Class QInputDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDevice::QPrivateSignal (0x0x7f25c85070c0) 0 empty + +Vtable for QInputDevice +QInputDevice::_ZTV12QInputDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDevice) +16 (int (*)(...))QInputDevice::metaObject +24 (int (*)(...))QInputDevice::qt_metacast +32 (int (*)(...))QInputDevice::qt_metacall +40 (int (*)(...))QInputDevice::~QInputDevice +48 (int (*)(...))QInputDevice::~QInputDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputDevice + size=16 align=8 + base size=16 base align=8 +QInputDevice (0x0x7f25d15d60d0) 0 + vptr=((& QInputDevice::_ZTV12QInputDevice) + 16) + QObject (0x0x7f25c8507060) 0 + primary-for QInputDevice (0x0x7f25d15d60d0) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7f25c8507b40) 0 + +Class QPointingDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPointingDevice::QPrivateSignal (0x0x7f25c85434e0) 0 empty + +Vtable for QPointingDevice +QPointingDevice::_ZTV15QPointingDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPointingDevice) +16 (int (*)(...))QPointingDevice::metaObject +24 (int (*)(...))QPointingDevice::qt_metacast +32 (int (*)(...))QPointingDevice::qt_metacall +40 (int (*)(...))QPointingDevice::~QPointingDevice +48 (int (*)(...))QPointingDevice::~QPointingDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPointingDevice + size=16 align=8 + base size=16 base align=8 +QPointingDevice (0x0x7f25cd195c98) 0 + vptr=((& QPointingDevice::_ZTV15QPointingDevice) + 16) + QInputDevice (0x0x7f25cd195d00) 0 + primary-for QPointingDevice (0x0x7f25cd195c98) + QObject (0x0x7f25c8543480) 0 + primary-for QInputDevice (0x0x7f25cd195d00) + +Class QEventPoint + size=8 align=8 + base size=8 base align=8 +QEventPoint (0x0x7f25c8543c00) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7f25c8596b40) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QInputEvent + size=40 align=8 + base size=40 base align=8 +QInputEvent (0x0x7f25ca961618) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16) + QEvent (0x0x7f25c85c0b40) 0 + primary-for QInputEvent (0x0x7f25ca961618) + +Vtable for QPointerEvent +QPointerEvent::_ZTV13QPointerEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPointerEvent) +16 (int (*)(...))QPointerEvent::~QPointerEvent +24 (int (*)(...))QPointerEvent::~QPointerEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QPointerEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QPointerEvent::isBeginEvent +64 (int (*)(...))QPointerEvent::isUpdateEvent +72 (int (*)(...))QPointerEvent::isEndEvent + +Class QPointerEvent + size=64 align=8 + base size=64 base align=8 +QPointerEvent (0x0x7f25ca961680) 0 + vptr=((& QPointerEvent::_ZTV13QPointerEvent) + 16) + QInputEvent (0x0x7f25ca961750) 0 + primary-for QPointerEvent (0x0x7f25ca961680) + QEvent (0x0x7f25c85d2060) 0 + primary-for QInputEvent (0x0x7f25ca961750) + +Vtable for QSinglePointEvent +QSinglePointEvent::_ZTV17QSinglePointEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSinglePointEvent) +16 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +24 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QSinglePointEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QSinglePointEvent + size=80 align=8 + base size=80 base align=8 +QSinglePointEvent (0x0x7f25ca57f6e8) 0 + vptr=((& QSinglePointEvent::_ZTV17QSinglePointEvent) + 16) + QPointerEvent (0x0x7f25ca57f7b8) 0 + primary-for QSinglePointEvent (0x0x7f25ca57f6e8) + QInputEvent (0x0x7f25ca57f820) 0 + primary-for QPointerEvent (0x0x7f25ca57f7b8) + QEvent (0x0x7f25c85d2f60) 0 + primary-for QInputEvent (0x0x7f25ca57f820) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QEnterEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QEnterEvent + size=80 align=8 + base size=80 base align=8 +QEnterEvent (0x0x7f25ca57f958) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16) + QSinglePointEvent (0x0x7f25ca57faf8) 0 + primary-for QEnterEvent (0x0x7f25ca57f958) + QPointerEvent (0x0x7f25ca57fb60) 0 + primary-for QSinglePointEvent (0x0x7f25ca57faf8) + QInputEvent (0x0x7f25ca57fbc8) 0 + primary-for QPointerEvent (0x0x7f25ca57fb60) + QEvent (0x0x7f25c8615420) 0 + primary-for QInputEvent (0x0x7f25ca57fbc8) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QMouseEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QMouseEvent + size=80 align=8 + base size=80 base align=8 +QMouseEvent (0x0x7f25ca57fdd0) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16) + QSinglePointEvent (0x0x7f25ca57fe38) 0 + primary-for QMouseEvent (0x0x7f25ca57fdd0) + QPointerEvent (0x0x7f25ca23ac30) 0 + primary-for QSinglePointEvent (0x0x7f25ca57fe38) + QInputEvent (0x0x7f25ca23ac98) 0 + primary-for QPointerEvent (0x0x7f25ca23ac30) + QEvent (0x0x7f25c8615ba0) 0 + primary-for QInputEvent (0x0x7f25ca23ac98) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QHoverEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QHoverEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QHoverEvent + size=96 align=8 + base size=96 base align=8 +QHoverEvent (0x0x7f25ca28e068) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16) + QSinglePointEvent (0x0x7f25ca28e0d0) 0 + primary-for QHoverEvent (0x0x7f25ca28e068) + QPointerEvent (0x0x7f25ca28eea0) 0 + primary-for QSinglePointEvent (0x0x7f25ca28e0d0) + QInputEvent (0x0x7f25ca28ef08) 0 + primary-for QPointerEvent (0x0x7f25ca28eea0) + QEvent (0x0x7f25c822d180) 0 + primary-for QInputEvent (0x0x7f25ca28ef08) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QWheelEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QWheelEvent::isBeginEvent +64 (int (*)(...))QWheelEvent::isUpdateEvent +72 (int (*)(...))QWheelEvent::isEndEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7f25ca28ef70) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16) + QSinglePointEvent (0x0x7f25ca2feb60) 0 + primary-for QWheelEvent (0x0x7f25ca28ef70) + QPointerEvent (0x0x7f25ca2febc8) 0 + primary-for QSinglePointEvent (0x0x7f25ca2feb60) + QInputEvent (0x0x7f25ca2fee38) 0 + primary-for QPointerEvent (0x0x7f25ca2febc8) + QEvent (0x0x7f25c822d5a0) 0 + primary-for QInputEvent (0x0x7f25ca2fee38) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTabletEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QTabletEvent + size=96 align=8 + base size=96 base align=8 +QTabletEvent (0x0x7f25ca2feea0) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16) + QSinglePointEvent (0x0x7f25ca342000) 0 + primary-for QTabletEvent (0x0x7f25ca2feea0) + QPointerEvent (0x0x7f25ca3421a0) 0 + primary-for QSinglePointEvent (0x0x7f25ca342000) + QInputEvent (0x0x7f25ca342478) 0 + primary-for QPointerEvent (0x0x7f25ca3421a0) + QEvent (0x0x7f25c822da80) 0 + primary-for QInputEvent (0x0x7f25ca342478) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QNativeGestureEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7f25ca3424e0) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16) + QSinglePointEvent (0x0x7f25ca3425b0) 0 + primary-for QNativeGestureEvent (0x0x7f25ca3424e0) + QPointerEvent (0x0x7f25ca3c9958) 0 + primary-for QSinglePointEvent (0x0x7f25ca3425b0) + QInputEvent (0x0x7f25ca3c99c0) 0 + primary-for QPointerEvent (0x0x7f25ca3c9958) + QEvent (0x0x7f25c824e360) 0 + primary-for QInputEvent (0x0x7f25ca3c99c0) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QKeyEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QKeyEvent + size=88 align=8 + base size=82 base align=8 +QKeyEvent (0x0x7f25ca3c9af8) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16) + QInputEvent (0x0x7f25ca3c9c98) 0 + primary-for QKeyEvent (0x0x7f25ca3c9af8) + QEvent (0x0x7f25c824e900) 0 + primary-for QInputEvent (0x0x7f25ca3c9c98) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFocusEvent::clone + +Class QFocusEvent + size=24 align=8 + base size=20 base align=8 +QFocusEvent (0x0x7f25ca091680) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16) + QEvent (0x0x7f25c824ef00) 0 + primary-for QFocusEvent (0x0x7f25ca091680) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPaintEvent::clone + +Class QPaintEvent + size=48 align=8 + base size=41 base align=8 +QPaintEvent (0x0x7f25ca0916e8) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16) + QEvent (0x0x7f25c826b2a0) 0 + primary-for QPaintEvent (0x0x7f25ca0916e8) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QMoveEvent::clone + +Class QMoveEvent + size=32 align=8 + base size=32 base align=8 +QMoveEvent (0x0x7f25c9e424e0) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16) + QEvent (0x0x7f25c826b5a0) 0 + primary-for QMoveEvent (0x0x7f25c9e424e0) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QExposeEvent::clone + +Class QExposeEvent + size=24 align=8 + base size=24 base align=8 +QExposeEvent (0x0x7f25c9e42548) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16) + QEvent (0x0x7f25c826b900) 0 + primary-for QExposeEvent (0x0x7f25c9e42548) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPlatformSurfaceEvent::clone + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=20 base align=8 +QPlatformSurfaceEvent (0x0x7f25c9e42680) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16) + QEvent (0x0x7f25c826bba0) 0 + primary-for QPlatformSurfaceEvent (0x0x7f25c9e42680) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QResizeEvent::clone + +Class QResizeEvent + size=32 align=8 + base size=32 base align=8 +QResizeEvent (0x0x7f25c9e42820) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16) + QEvent (0x0x7f25c826bea0) 0 + primary-for QResizeEvent (0x0x7f25c9e42820) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QCloseEvent + size=16 align=8 + base size=16 base align=8 +QCloseEvent (0x0x7f25c9e428f0) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16) + QEvent (0x0x7f25c8288240) 0 + primary-for QCloseEvent (0x0x7f25c9e428f0) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QIconDragEvent + size=16 align=8 + base size=16 base align=8 +QIconDragEvent (0x0x7f25c9e42958) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16) + QEvent (0x0x7f25c82882a0) 0 + primary-for QIconDragEvent (0x0x7f25c9e42958) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QShowEvent + size=16 align=8 + base size=16 base align=8 +QShowEvent (0x0x7f25c9e42a90) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16) + QEvent (0x0x7f25c8288300) 0 + primary-for QShowEvent (0x0x7f25c9e42a90) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QHideEvent + size=16 align=8 + base size=16 base align=8 +QHideEvent (0x0x7f25c9e42c30) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16) + QEvent (0x0x7f25c8288360) 0 + primary-for QHideEvent (0x0x7f25c9e42c30) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QContextMenuEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QContextMenuEvent + size=64 align=8 + base size=57 base align=8 +QContextMenuEvent (0x0x7f25c9e42e38) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16) + QInputEvent (0x0x7f25c9e4f0d0) 0 + primary-for QContextMenuEvent (0x0x7f25c9e42e38) + QEvent (0x0x7f25c82883c0) 0 + primary-for QInputEvent (0x0x7f25c9e4f0d0) + +Class QInputMethodEvent::Attribute + size=48 align=8 + base size=48 base align=8 +QInputMethodEvent::Attribute (0x0x7f25c8288960) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodEvent::clone + +Class QInputMethodEvent + size=96 align=8 + base size=96 base align=8 +QInputMethodEvent (0x0x7f25c9e4f5b0) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16) + QEvent (0x0x7f25c8288900) 0 + primary-for QInputMethodEvent (0x0x7f25c9e4f5b0) + +Class QInputMethodQueryEvent::QueryPair + size=40 align=8 + base size=40 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7f25c82e8180) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodQueryEvent::clone + +Class QInputMethodQueryEvent + size=48 align=8 + base size=48 base align=8 +QInputMethodQueryEvent (0x0x7f25c9766410) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16) + QEvent (0x0x7f25c82e8120) 0 + primary-for QInputMethodQueryEvent (0x0x7f25c9766410) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDropEvent::clone + +Class QDropEvent + size=64 align=8 + base size=64 base align=8 +QDropEvent (0x0x7f25c91513a8) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16) + QEvent (0x0x7f25c832d2a0) 0 + primary-for QDropEvent (0x0x7f25c91513a8) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragMoveEvent + size=80 align=8 + base size=80 base align=8 +QDragMoveEvent (0x0x7f25c9151410) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16) + QDropEvent (0x0x7f25c91515b0) 0 + primary-for QDragMoveEvent (0x0x7f25c9151410) + QEvent (0x0x7f25c832d9c0) 0 + primary-for QDropEvent (0x0x7f25c91515b0) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragEnterEvent + size=80 align=8 + base size=80 base align=8 +QDragEnterEvent (0x0x7f25c91517b8) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16) + QDragMoveEvent (0x0x7f25c9151a28) 0 + primary-for QDragEnterEvent (0x0x7f25c91517b8) + QDropEvent (0x0x7f25c9151d00) 0 + primary-for QDragMoveEvent (0x0x7f25c9151a28) + QEvent (0x0x7f25c832de40) 0 + primary-for QDropEvent (0x0x7f25c9151d00) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QDragLeaveEvent + size=16 align=8 + base size=16 base align=8 +QDragLeaveEvent (0x0x7f25c9151d68) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16) + QEvent (0x0x7f25c832dea0) 0 + primary-for QDragLeaveEvent (0x0x7f25c9151d68) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QHelpEvent::clone + +Class QHelpEvent + size=32 align=8 + base size=32 base align=8 +QHelpEvent (0x0x7f25c91a8750) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16) + QEvent (0x0x7f25c832df00) 0 + primary-for QHelpEvent (0x0x7f25c91a8750) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QStatusTipEvent::clone + +Class QStatusTipEvent + size=40 align=8 + base size=40 base align=8 +QStatusTipEvent (0x0x7f25c91a87b8) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16) + QEvent (0x0x7f25c834c420) 0 + primary-for QStatusTipEvent (0x0x7f25c91a87b8) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWhatsThisClickedEvent::clone + +Class QWhatsThisClickedEvent + size=40 align=8 + base size=40 base align=8 +QWhatsThisClickedEvent (0x0x7f25c91a8820) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16) + QEvent (0x0x7f25c834c6c0) 0 + primary-for QWhatsThisClickedEvent (0x0x7f25c91a8820) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QActionEvent::clone + +Class QActionEvent + size=32 align=8 + base size=32 base align=8 +QActionEvent (0x0x7f25c91a8888) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16) + QEvent (0x0x7f25c834c960) 0 + primary-for QActionEvent (0x0x7f25c91a8888) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFileOpenEvent::clone + +Class QFileOpenEvent + size=48 align=8 + base size=48 base align=8 +QFileOpenEvent (0x0x7f25c91a88f0) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16) + QEvent (0x0x7f25c834ccc0) 0 + primary-for QFileOpenEvent (0x0x7f25c91a88f0) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QToolBarChangeEvent::clone + +Class QToolBarChangeEvent + size=24 align=8 + base size=17 base align=8 +QToolBarChangeEvent (0x0x7f25c91a8958) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16) + QEvent (0x0x7f25c8364000) 0 + primary-for QToolBarChangeEvent (0x0x7f25c91a8958) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QShortcutEvent::clone + +Class QShortcutEvent + size=32 align=8 + base size=29 base align=8 +QShortcutEvent (0x0x7f25c91a89c0) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16) + QEvent (0x0x7f25c8364300) 0 + primary-for QShortcutEvent (0x0x7f25c91a89c0) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWindowStateChangeEvent::clone + +Class QWindowStateChangeEvent + size=24 align=8 + base size=21 base align=8 +QWindowStateChangeEvent (0x0x7f25c91a8a28) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16) + QEvent (0x0x7f25c8364660) 0 + primary-for QWindowStateChangeEvent (0x0x7f25c91a8a28) + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTouchEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QTouchEvent::isBeginEvent +64 (int (*)(...))QTouchEvent::isUpdateEvent +72 (int (*)(...))QTouchEvent::isEndEvent + +Class QTouchEvent + size=80 align=8 + base size=79 base align=8 +QTouchEvent (0x0x7f25c91a8a90) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16) + QPointerEvent (0x0x7f25c91a8af8) 0 + primary-for QTouchEvent (0x0x7f25c91a8a90) + QInputEvent (0x0x7f25c91a8b60) 0 + primary-for QPointerEvent (0x0x7f25c91a8af8) + QEvent (0x0x7f25c8364960) 0 + primary-for QInputEvent (0x0x7f25c91a8b60) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollPrepareEvent::clone + +Class QScrollPrepareEvent + size=96 align=8 + base size=96 base align=8 +QScrollPrepareEvent (0x0x7f25c91a8bc8) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16) + QEvent (0x0x7f25c8364cc0) 0 + primary-for QScrollPrepareEvent (0x0x7f25c91a8bc8) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollEvent::clone + +Class QScrollEvent + size=56 align=8 + base size=52 base align=8 +QScrollEvent (0x0x7f25c91a8c30) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16) + QEvent (0x0x7f25c8385120) 0 + primary-for QScrollEvent (0x0x7f25c91a8c30) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScreenOrientationChangeEvent::clone + +Class QScreenOrientationChangeEvent + size=32 align=8 + base size=28 base align=8 +QScreenOrientationChangeEvent (0x0x7f25c91a8c98) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16) + QEvent (0x0x7f25c83854e0) 0 + primary-for QScreenOrientationChangeEvent (0x0x7f25c91a8c98) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QApplicationStateChangeEvent::clone + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=20 base align=8 +QApplicationStateChangeEvent (0x0x7f25c91a8d00) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16) + QEvent (0x0x7f25c8385840) 0 + primary-for QApplicationStateChangeEvent (0x0x7f25c91a8d00) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7f25c8385b40) 0 + +Class QFontDatabase + size=1 align=1 + base size=0 base align=1 +QFontDatabase (0x0x7f25c83d8cc0) 0 empty + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7f25c83d8ea0) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7f25c8411f60) 0 + +Class QBrushDataPointerDeleter + size=1 align=1 + base size=0 base align=1 +QBrushDataPointerDeleter (0x0x7f25c8053780) 0 empty + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7f25c80537e0) 0 + +Class QBrushData + size=104 align=8 + base size=104 base align=8 +QBrushData (0x0x7f25c811e240) 0 + +Class QGradient::QGradientData + size=48 align=8 + base size=48 base align=8 +QGradient::QGradientData (0x0x7f25c811e480) 0 + +Class QGradient + size=88 align=8 + base size=88 base align=8 +QGradient (0x0x7f25c811e420) 0 + +Class QLinearGradient + size=88 align=8 + base size=88 base align=8 +QLinearGradient (0x0x7f25c811abc8) 0 + QGradient (0x0x7f25c8178300) 0 + +Class QRadialGradient + size=88 align=8 + base size=88 base align=8 +QRadialGradient (0x0x7f25c811ac30) 0 + QGradient (0x0x7f25c8178420) 0 + +Class QConicalGradient + size=88 align=8 + base size=88 base align=8 +QConicalGradient (0x0x7f25c811ac98) 0 + QGradient (0x0x7f25c8178540) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7f25c8178600) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7f25c81ce720) 0 + +Class QTextOption + size=24 align=8 + base size=24 base align=8 +QTextOption (0x0x7f25c81ce6c0) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7f25c81f8ae0) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7f25c7e2b7e0) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7f25c7ec4750) 0 + QTextFormat (0x0x7f25c7ebdf60) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7f25c7f254e0) 0 + QTextFormat (0x0x7f25c7f28480) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7f25c7f58138) 0 + QTextFormat (0x0x7f25c7f519c0) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7f25c7f72d00) 0 + QTextCharFormat (0x0x7f25c7f72d68) 0 + QTextFormat (0x0x7f25c7f768a0) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7f25c7f9a9c0) 0 + QTextFormat (0x0x7f25c7f9c720) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7f25c7fcb618) 0 + QTextFrameFormat (0x0x7f25c7fcb680) 0 + QTextFormat (0x0x7f25c7fc8b40) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7f25c7ffa2d8) 0 + QTextCharFormat (0x0x7f25c7ffa340) 0 + QTextFormat (0x0x7f25c7feede0) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7f25c7c2d360) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7f25c7c7fa20) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7f25c7c7fe40) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7f25c7c7fde0) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7f25c7ce8f00) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7f25c7d083c0) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7f25c7d08660) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7f25c7ceff70) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16) + QObject (0x0x7f25c7d08600) 0 + primary-for QTextDocument (0x0x7f25c7ceff70) + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7f25c7d08f00) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7f25c7dd4360) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7f25c7dd43c0) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=80 align=8 + base size=80 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7f25c7dd4420) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7f25c7dcc3a8) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16) + QObject (0x0x7f25c7dd4300) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f25c7dcc3a8) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7f25c7a5f9c0) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7f25c7a5fc00) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7f25c7a5fc60) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7f25c7a5fba0) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7f25c7a8a5a0) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7f25c7a8a960) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7f25c7a8a9c0) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7f25c7a8aa20) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7f25c7a8aa80) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7f25c7a8aae0) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7f25c7a8ab40) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7f25c7a8ac00) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16) + +Vtable for QAccessibleHyperlinkInterface +QAccessibleHyperlinkInterface::_ZTV29QAccessibleHyperlinkInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleHyperlinkInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleHyperlinkInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleHyperlinkInterface (0x0x7f25c7a8ac60) 0 nearly-empty + vptr=((& QAccessibleHyperlinkInterface::_ZTV29QAccessibleHyperlinkInterface) + 16) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7f25c7a8acc0) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7f25c7a66888) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16) + QAccessibleEvent (0x0x7f25c7acf240) 0 + primary-for QAccessibleStateChangeEvent (0x0x7f25c7a66888) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7f25c7a668f0) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16) + QAccessibleEvent (0x0x7f25c7acf600) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f25c7a668f0) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7f25c7a66958) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f25c7a669c0) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7f25c7a66958) + QAccessibleEvent (0x0x7f25c7acfa20) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f25c7a669c0) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextInsertEvent (0x0x7f25c7a66a28) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f25c7a66a90) 0 + primary-for QAccessibleTextInsertEvent (0x0x7f25c7a66a28) + QAccessibleEvent (0x0x7f25c7acfea0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f25c7a66a90) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextRemoveEvent (0x0x7f25c7a66af8) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f25c7a66b60) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7f25c7a66af8) + QAccessibleEvent (0x0x7f25c7ae9300) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f25c7a66b60) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=88 align=8 + base size=88 base align=8 +QAccessibleTextUpdateEvent (0x0x7f25c7a66bc8) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f25c7a66c30) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7f25c7a66bc8) + QAccessibleEvent (0x0x7f25c7ae9720) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f25c7a66c30) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleValueChangeEvent (0x0x7f25c7a66c98) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16) + QAccessibleEvent (0x0x7f25c7ae9ba0) 0 + primary-for QAccessibleValueChangeEvent (0x0x7f25c7a66c98) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7f25c7a66d00) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16) + QAccessibleEvent (0x0x7f25c7afe000) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7f25c7a66d00) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7f25c7afe8a0) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7f25c7afeb40) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7f25c7a66d68) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16) + QObject (0x0x7f25c7afeae0) 0 + primary-for QAccessibleBridgePlugin (0x0x7f25c7a66d68) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0 +24 0 +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7f25c7a66dd0) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16) + QAccessibleInterface (0x0x7f25c7afec00) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f25c7a66dd0) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7f25c7a66e38) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16) + QAccessibleObject (0x0x7f25c7a66ea0) 0 + primary-for QAccessibleApplication (0x0x7f25c7a66e38) + QAccessibleInterface (0x0x7f25c7afec60) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f25c7a66ea0) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7f25c7afed20) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7f25c7a66f08) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16) + QObject (0x0x7f25c7afecc0) 0 + primary-for QAccessiblePlugin (0x0x7f25c7a66f08) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7f25c7afee40) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7f25c7a66f70) 0 + vptr=((& QAction::_ZTV7QAction) + 16) + QObject (0x0x7f25c7afede0) 0 + primary-for QAction (0x0x7f25c7a66f70) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7f25c7b3a780) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7f25c7b43000) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16) + QObject (0x0x7f25c7b3a720) 0 + primary-for QActionGroup (0x0x7f25c7b43000) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7f25c7b3aa20) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7f25c7b68360) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16) + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=24 align=8 + base size=24 base align=8 +QBitmap (0x0x7f25c7b43208) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16) + QPixmap (0x0x7f25c7b43270) 0 + primary-for QBitmap (0x0x7f25c7b43208) + QPaintDevice (0x0x7f25c7b689c0) 0 + primary-for QPixmap (0x0x7f25c7b43270) + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7f25c7ba9300) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7f25c7bec540) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 47 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))-16 +320 (int (*)(...))(& _ZTI7QWindow) +328 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +336 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7f25c7bc9310) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16) + QObject (0x0x7f25c7bec480) 0 + primary-for QWindow (0x0x7f25c7bc9310) + QSurface (0x0x7f25c7bec4e0) 16 + vptr=((& QWindow::_ZTV7QWindow) + 328) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7f25c7becde0) 0 + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7f25c7becf00) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7f25c7beb958) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16) + QObject (0x0x7f25c7becea0) 0 + primary-for QClipboard (0x0x7f25c7beb958) + +Class QColorTransform + size=8 align=8 + base size=8 base align=8 +QColorTransform (0x0x7f25c7838060) 0 + +Class QColorSpace + size=8 align=8 + base size=8 base align=8 +QColorSpace (0x0x7f25c7882060) 0 + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7f25c78c9de0) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7f25c78c9ea0) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7f25c78d34e0) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16) + QObject (0x0x7f25c78c9e40) 0 + primary-for QDrag (0x0x7f25c78d34e0) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7f25c78e40c0) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QFileSystemModel::mimeTypes +224 (int (*)(...))QFileSystemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QFileSystemModel::dropMimeData +248 (int (*)(...))QFileSystemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QFileSystemModel::fetchMore +320 (int (*)(...))QFileSystemModel::canFetchMore +328 (int (*)(...))QFileSystemModel::flags +336 (int (*)(...))QFileSystemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QFileSystemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7f25c78d3548) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16) + QAbstractItemModel (0x0x7f25c78d35b0) 0 + primary-for QFileSystemModel (0x0x7f25c78d3548) + QObject (0x0x7f25c78e4060) 0 + primary-for QAbstractItemModel (0x0x7f25c78d35b0) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7f25c78e4780) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7f25c79380c0) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7f25c7952ae0) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7f25c79e47e0) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7f25c79bd6e8) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16) + QObject (0x0x7f25c79e4780) 0 + primary-for QGenericPlugin (0x0x7f25c79bd6e8) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7f25c79e48a0) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7f25c79e4960) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7f25c79bd750) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16) + QObject (0x0x7f25c79e4900) 0 + primary-for QInputMethod (0x0x7f25c79bd750) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7f25c79e4c00) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7f25c79bd7b8) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16) + QCoreApplication (0x0x7f25c79bd820) 0 + primary-for QGuiApplication (0x0x7f25c79bd7b8) + QObject (0x0x7f25c79e4ba0) 0 + primary-for QCoreApplication (0x0x7f25c79bd820) + +Class QNativeInterface::QX11Application::TypeInfo + size=1 align=1 + base size=0 base align=1 +QNativeInterface::QX11Application::TypeInfo (0x0x7f25c79e4f00) 0 empty + +Vtable for QNativeInterface::QX11Application +QNativeInterface::QX11Application::_ZTVN16QNativeInterface15QX11ApplicationE: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface15QX11ApplicationE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QX11Application + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QX11Application (0x0x7f25c79e4ea0) 0 nearly-empty + vptr=((& QNativeInterface::QX11Application::_ZTVN16QNativeInterface15QX11ApplicationE) + 16) + +Class QIconEngine::ScaledPixmapArgument + size=48 align=8 + base size=48 base align=8 +QIconEngine::ScaledPixmapArgument (0x0x7f25c7a13000) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::isNull +128 (int (*)(...))QIconEngine::scaledPixmap +136 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7f25c79e4f60) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7f25c7a130c0) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7f25c79bd888) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16) + QObject (0x0x7f25c7a13060) 0 + primary-for QIconEnginePlugin (0x0x7f25c79bd888) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QImageIOHandler::write +56 (int (*)(...))QImageIOHandler::option +64 (int (*)(...))QImageIOHandler::setOption +72 (int (*)(...))QImageIOHandler::supportsOption +80 (int (*)(...))QImageIOHandler::jumpToNextImage +88 (int (*)(...))QImageIOHandler::jumpToImage +96 (int (*)(...))QImageIOHandler::loopCount +104 (int (*)(...))QImageIOHandler::imageCount +112 (int (*)(...))QImageIOHandler::nextImageDelay +120 (int (*)(...))QImageIOHandler::currentImageNumber +128 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7f25c7a13180) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7f25c7a133c0) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7f25c79bd8f0) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16) + QObject (0x0x7f25c7a13360) 0 + primary-for QImageIOPlugin (0x0x7f25c79bd8f0) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7f25c7a13840) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7f25c7a13900) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7f25c7a139c0) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7f25c769b720) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7f25c76fec60) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7f25c76f3138) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16) + QObject (0x0x7f25c76fec00) 0 + primary-for QMovie (0x0x7f25c76f3138) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7f25c7721060) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7f25c76b5c40) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16) + QObject (0x0x7f25c76fef60) 0 + primary-for QOffscreenSurface (0x0x7f25c76b5c40) + QSurface (0x0x7f25c7721000) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160) + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7f25c7721300) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7f25c76f31a0) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16) + QObject (0x0x7f25c77212a0) 0 + primary-for QOpenGLContextGroup (0x0x7f25c76f31a0) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7f25c77214e0) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7f25c76f3208) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16) + QObject (0x0x7f25c7721480) 0 + primary-for QOpenGLContext (0x0x7f25c76f3208) + +Class QNativeInterface::QGLXContext::TypeInfo + size=1 align=1 + base size=0 base align=1 +QNativeInterface::QGLXContext::TypeInfo (0x0x7f25c7721720) 0 empty + +Vtable for QNativeInterface::QGLXContext +QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QGLXContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QGLXContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QGLXContext (0x0x7f25c77216c0) 0 nearly-empty + vptr=((& QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE) + 16) + +Class QNativeInterface::QEGLContext::TypeInfo + size=1 align=1 + base size=0 base align=1 +QNativeInterface::QEGLContext::TypeInfo (0x0x7f25c77217e0) 0 empty + +Vtable for QNativeInterface::QEGLContext +QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QEGLContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QEGLContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QEGLContext (0x0x7f25c7721780) 0 nearly-empty + vptr=((& QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE) + 16) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7f25c7721840) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7f25c7721ea0) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7f25c7721e40) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7f25c76f3618) 0 + QOpenGLFunctions (0x0x7f25c72c7660) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1728 align=8 + base size=1728 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7f25c72c79c0) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2880 align=8 + base size=2880 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7f25c76f3680) 0 + QOpenGLFunctionsPrivate (0x0x7f25c72c7960) 0 + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7f25c73c26c0) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7f25c702ecc0) 0 + +Class QPageRanges::Range + size=8 align=4 + base size=8 base align=4 +QPageRanges::Range (0x0x7f25c70eacc0) 0 + +Class QPageRanges + size=8 align=8 + base size=8 base align=8 +QPageRanges (0x0x7f25c70eac60) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageLayout +96 (int (*)(...))QPagedPaintDevice::setPageSize +104 (int (*)(...))QPagedPaintDevice::setPageOrientation +112 (int (*)(...))QPagedPaintDevice::setPageMargins +120 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPagedPaintDevice + size=24 align=8 + base size=24 base align=8 +QPagedPaintDevice (0x0x7f25c71714e0) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16) + QPaintDevice (0x0x7f25c717d2a0) 0 + primary-for QPagedPaintDevice (0x0x7f25c71714e0) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7f25c717d420) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QPaintDeviceWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +352 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +416 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QPaintDevice::redirected +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=56 align=8 + base size=50 base align=8 +QPaintDeviceWindow (0x0x7f25c7167540) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16) + QWindow (0x0x7f25c71675b0) 0 + primary-for QPaintDeviceWindow (0x0x7f25c7167540) + QObject (0x0x7f25c717d300) 0 + primary-for QWindow (0x0x7f25c71675b0) + QSurface (0x0x7f25c717d360) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 344) + QPaintDevice (0x0x7f25c717d3c0) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 408) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7f25c717d600) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7f25c717d5a0) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7f25c6f811e0) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QPaintEngine::createPixmap +200 (int (*)(...))QPaintEngine::createPixmapFromImage + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7f25c6f9e9c0) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7f25c6fec000) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7f25c6feccc0) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7f25c6fecc60) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7f25c6cddc60) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7f25c6cfc780) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 33 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::paintEngine +128 (int (*)(...))QPdfWriter::metric +136 (int (*)(...))-16 +144 (int (*)(...))(& _ZTI10QPdfWriter) +152 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +160 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +168 (int (*)(...))QPaintDevice::devType +176 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +184 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +192 (int (*)(...))QPaintDevice::initPainter +200 (int (*)(...))QPaintDevice::redirected +208 (int (*)(...))QPaintDevice::sharedPainter +216 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +224 (int (*)(...))QPagedPaintDevice::setPageLayout +232 (int (*)(...))QPagedPaintDevice::setPageSize +240 (int (*)(...))QPagedPaintDevice::setPageOrientation +248 (int (*)(...))QPagedPaintDevice::setPageMargins +256 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPdfWriter + size=40 align=8 + base size=40 base align=8 +QPdfWriter (0x0x7f25c6d14000) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16) + QObject (0x0x7f25c6cfc6c0) 0 + primary-for QPdfWriter (0x0x7f25c6d14000) + QPagedPaintDevice (0x0x7f25c6cf0340) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 152) + QPaintDevice (0x0x7f25c6cfc720) 16 + primary-for QPagedPaintDevice (0x0x7f25c6cf0340) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=24 align=8 + base size=24 base align=8 +QPicture (0x0x7f25c6cf03a8) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16) + QPaintDevice (0x0x7f25c6cfc960) 0 + primary-for QPicture (0x0x7f25c6cf03a8) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7f25c6d61480) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7f25c6d61420) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7f25c6db7720) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 60 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QRasterWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QRasterWindow::redirected +336 (int (*)(...))-16 +344 (int (*)(...))(& _ZTI13QRasterWindow) +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +360 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +392 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +400 (int (*)(...))-40 +408 (int (*)(...))(& _ZTI13QRasterWindow) +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +424 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +432 (int (*)(...))QPaintDevice::devType +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +448 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +456 (int (*)(...))QPaintDevice::initPainter +464 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +472 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=56 align=8 + base size=50 base align=8 +QRasterWindow (0x0x7f25c6db4958) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16) + QPaintDeviceWindow (0x0x7f25c6d14bd0) 0 + primary-for QRasterWindow (0x0x7f25c6db4958) + QWindow (0x0x7f25c6d14c40) 0 + primary-for QPaintDeviceWindow (0x0x7f25c6d14bd0) + QObject (0x0x7f25c6db7600) 0 + primary-for QWindow (0x0x7f25c6d14c40) + QSurface (0x0x7f25c6db7660) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 352) + QPaintDevice (0x0x7f25c6db76c0) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 416) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7f25c6ddb420) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7f25c6db4a28) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16) + QObject (0x0x7f25c6ddb3c0) 0 + primary-for QSessionManager (0x0x7f25c6db4a28) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7f25c6ddb600) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7f25c6db4a90) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16) + QObject (0x0x7f25c6ddb5a0) 0 + primary-for QShortcut (0x0x7f25c6db4a90) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::multiData +48 (int (*)(...))QStandardItem::setData +56 (int (*)(...))QStandardItem::clone +64 (int (*)(...))QStandardItem::type +72 (int (*)(...))QStandardItem::read +80 (int (*)(...))QStandardItem::write +88 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7f25c6ddbae0) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7f25c6a74b40) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::clearItemData +216 (int (*)(...))QStandardItemModel::mimeTypes +224 (int (*)(...))QStandardItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QStandardItemModel::dropMimeData +248 (int (*)(...))QStandardItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStandardItemModel::insertRows +272 (int (*)(...))QStandardItemModel::insertColumns +280 (int (*)(...))QStandardItemModel::removeRows +288 (int (*)(...))QStandardItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStandardItemModel::flags +336 (int (*)(...))QStandardItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QStandardItemModel::roleNames +376 (int (*)(...))QStandardItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7f25c6a71410) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16) + QAbstractItemModel (0x0x7f25c6a71478) 0 + primary-for QStandardItemModel (0x0x7f25c6a71410) + QObject (0x0x7f25c6a74ae0) 0 + primary-for QAbstractItemModel (0x0x7f25c6a71478) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7f25c6a74ea0) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7f25c6b47c00) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7f25c6b501a0) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16) + QObject (0x0x7f25c6b47ba0) 0 + primary-for QStyleHints (0x0x7f25c6b501a0) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7f25c6b47de0) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7f25c6b50208) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16) + QObject (0x0x7f25c6b47d80) 0 + primary-for QTextObject (0x0x7f25c6b50208) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7f25c6b7d000) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7f25c6b50270) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16) + QTextObject (0x0x7f25c6b502d8) 0 + primary-for QTextBlockGroup (0x0x7f25c6b50270) + QObject (0x0x7f25c6b47f60) 0 + primary-for QTextObject (0x0x7f25c6b502d8) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7f25c6b7d180) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7f25c6b7d240) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7f25c6b7d2a0) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7f25c6b50340) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16) + QTextObject (0x0x7f25c6b503a8) 0 + primary-for QTextFrame (0x0x7f25c6b50340) + QObject (0x0x7f25c6b7d1e0) 0 + primary-for QTextObject (0x0x7f25c6b503a8) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7f25c6bc9120) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7f25c6bc91e0) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7f25c6bc9180) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7f25c6830a20) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7f25c686a8a0) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7f25c6873548) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16) + QObject (0x0x7f25c686a840) 0 + primary-for QSyntaxHighlighter (0x0x7f25c6873548) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7f25c686aa20) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7f25c686aa80) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7f25c686ab40) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7f25c68735b0) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16) + QTextBlockGroup (0x0x7f25c6873618) 0 + primary-for QTextList (0x0x7f25c68735b0) + QTextObject (0x0x7f25c6873680) 0 + primary-for QTextBlockGroup (0x0x7f25c6873618) + QObject (0x0x7f25c686aae0) 0 + primary-for QTextObject (0x0x7f25c6873680) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7f25c686af00) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7f25c68ad780) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7f25c68736e8) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16) + QTextFrame (0x0x7f25c6873750) 0 + primary-for QTextTable (0x0x7f25c68736e8) + QTextObject (0x0x7f25c68737b8) 0 + primary-for QTextFrame (0x0x7f25c6873750) + QObject (0x0x7f25c68ad720) 0 + primary-for QTextObject (0x0x7f25c68737b8) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7f25c68adb40) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7f25c6873820) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16) + QObject (0x0x7f25c68adae0) 0 + primary-for QUndoGroup (0x0x7f25c6873820) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7f25c68adcc0) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7f25c68add80) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7f25c6873888) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16) + QObject (0x0x7f25c68add20) 0 + primary-for QUndoStack (0x0x7f25c6873888) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7f25c68adf60) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7f25c68738f0) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16) + QObject (0x0x7f25c68adf00) 0 + primary-for QValidator (0x0x7f25c68738f0) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7f25c68fb240) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7f25c6873958) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16) + QValidator (0x0x7f25c68739c0) 0 + primary-for QIntValidator (0x0x7f25c6873958) + QObject (0x0x7f25c68fb1e0) 0 + primary-for QValidator (0x0x7f25c68739c0) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7f25c68fb420) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7f25c6873a28) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16) + QValidator (0x0x7f25c6873a90) 0 + primary-for QDoubleValidator (0x0x7f25c6873a28) + QObject (0x0x7f25c68fb3c0) 0 + primary-for QValidator (0x0x7f25c6873a90) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7f25c68fb7e0) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7f25c6873af8) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16) + QValidator (0x0x7f25c6873b60) 0 + primary-for QRegularExpressionValidator (0x0x7f25c6873af8) + QObject (0x0x7f25c68fb780) 0 + primary-for QValidator (0x0x7f25c6873b60) + +Vtable for QSqlDriverCreatorBase +QSqlDriverCreatorBase::_ZTV21QSqlDriverCreatorBase: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSqlDriverCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QSqlDriverCreatorBase + size=8 align=8 + base size=8 base align=8 +QSqlDriverCreatorBase (0x0x7f25c68fbd20) 0 nearly-empty + vptr=((& QSqlDriverCreatorBase::_ZTV21QSqlDriverCreatorBase) + 16) + +Class QSqlDatabase + size=8 align=8 + base size=8 base align=8 +QSqlDatabase (0x0x7f25c696f060) 0 + +Class QSqlDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlDriver::QPrivateSignal (0x0x7f25c696f120) 0 empty + +Vtable for QSqlDriver +QSqlDriver::_ZTV10QSqlDriver: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSqlDriver) +16 (int (*)(...))QSqlDriver::metaObject +24 (int (*)(...))QSqlDriver::qt_metacast +32 (int (*)(...))QSqlDriver::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSqlDriver::isOpen +120 (int (*)(...))QSqlDriver::beginTransaction +128 (int (*)(...))QSqlDriver::commitTransaction +136 (int (*)(...))QSqlDriver::rollbackTransaction +144 (int (*)(...))QSqlDriver::tables +152 (int (*)(...))QSqlDriver::primaryIndex +160 (int (*)(...))QSqlDriver::record +168 (int (*)(...))QSqlDriver::formatValue +176 (int (*)(...))QSqlDriver::escapeIdentifier +184 (int (*)(...))QSqlDriver::sqlStatement +192 (int (*)(...))QSqlDriver::handle +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))QSqlDriver::subscribeToNotification +240 (int (*)(...))QSqlDriver::unsubscribeFromNotification +248 (int (*)(...))QSqlDriver::subscribedToNotifications +256 (int (*)(...))QSqlDriver::isIdentifierEscaped +264 (int (*)(...))QSqlDriver::stripDelimiters +272 (int (*)(...))QSqlDriver::maximumIdentifierLength +280 (int (*)(...))QSqlDriver::cancelQuery +288 (int (*)(...))QSqlDriver::setOpen +296 (int (*)(...))QSqlDriver::setOpenError +304 (int (*)(...))QSqlDriver::setLastError + +Class QSqlDriver + size=16 align=8 + base size=16 base align=8 +QSqlDriver (0x0x7f25c6873d68) 0 + vptr=((& QSqlDriver::_ZTV10QSqlDriver) + 16) + QObject (0x0x7f25c696f0c0) 0 + primary-for QSqlDriver (0x0x7f25c6873d68) + +Class QSqlDriverPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlDriverPlugin::QPrivateSignal (0x0x7f25c696f300) 0 empty + +Vtable for QSqlDriverPlugin +QSqlDriverPlugin::_ZTV16QSqlDriverPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QSqlDriverPlugin) +16 (int (*)(...))QSqlDriverPlugin::metaObject +24 (int (*)(...))QSqlDriverPlugin::qt_metacast +32 (int (*)(...))QSqlDriverPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSqlDriverPlugin + size=16 align=8 + base size=16 base align=8 +QSqlDriverPlugin (0x0x7f25c6873dd0) 0 + vptr=((& QSqlDriverPlugin::_ZTV16QSqlDriverPlugin) + 16) + QObject (0x0x7f25c696f2a0) 0 + primary-for QSqlDriverPlugin (0x0x7f25c6873dd0) + +Class QSqlError + size=8 align=8 + base size=8 base align=8 +QSqlError (0x0x7f25c696f3c0) 0 + +Class QSqlField + size=40 align=8 + base size=40 base align=8 +QSqlField (0x0x7f25c6a031e0) 0 + +Class QSqlRecord + size=8 align=8 + base size=8 base align=8 +QSqlRecord (0x0x7f25c6a035a0) 0 + +Class QSqlIndex + size=80 align=8 + base size=80 base align=8 +QSqlIndex (0x0x7f25c69f6bc8) 0 + QSqlRecord (0x0x7f25c6a03660) 0 + +Class QSqlQuery + size=8 align=8 + base size=8 base align=8 +QSqlQuery (0x0x7f25c6a03ba0) 0 + +Class QSqlQueryModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlQueryModel::QPrivateSignal (0x0x7f25c66c82a0) 0 empty + +Vtable for QSqlQueryModel +QSqlQueryModel::_ZTV14QSqlQueryModel: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QSqlQueryModel) +16 (int (*)(...))QSqlQueryModel::metaObject +24 (int (*)(...))QSqlQueryModel::qt_metacast +32 (int (*)(...))QSqlQueryModel::qt_metacall +40 (int (*)(...))QSqlQueryModel::~QSqlQueryModel +48 (int (*)(...))QSqlQueryModel::~QSqlQueryModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))QSqlQueryModel::rowCount +144 (int (*)(...))QSqlQueryModel::columnCount +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))QSqlQueryModel::data +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QSqlQueryModel::headerData +184 (int (*)(...))QSqlQueryModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QSqlQueryModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QSqlQueryModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSqlQueryModel::fetchMore +320 (int (*)(...))QSqlQueryModel::canFetchMore +328 (int (*)(...))QAbstractTableModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QSqlQueryModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSqlQueryModel::clear +416 (int (*)(...))QSqlQueryModel::queryChange +424 (int (*)(...))QSqlQueryModel::indexInQuery + +Class QSqlQueryModel + size=16 align=8 + base size=16 base align=8 +QSqlQueryModel (0x0x7f25c66cb340) 0 + vptr=((& QSqlQueryModel::_ZTV14QSqlQueryModel) + 16) + QAbstractTableModel (0x0x7f25c66cb3a8) 0 + primary-for QSqlQueryModel (0x0x7f25c66cb340) + QAbstractItemModel (0x0x7f25c66cb410) 0 + primary-for QAbstractTableModel (0x0x7f25c66cb3a8) + QObject (0x0x7f25c66c8240) 0 + primary-for QAbstractItemModel (0x0x7f25c66cb410) + +Class QSqlTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlTableModel::QPrivateSignal (0x0x7f25c66c8480) 0 empty + +Vtable for QSqlTableModel +QSqlTableModel::_ZTV14QSqlTableModel: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QSqlTableModel) +16 (int (*)(...))QSqlTableModel::metaObject +24 (int (*)(...))QSqlTableModel::qt_metacast +32 (int (*)(...))QSqlTableModel::qt_metacall +40 (int (*)(...))QSqlTableModel::~QSqlTableModel +48 (int (*)(...))QSqlTableModel::~QSqlTableModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))QSqlTableModel::rowCount +144 (int (*)(...))QSqlQueryModel::columnCount +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))QSqlTableModel::data +168 (int (*)(...))QSqlTableModel::setData +176 (int (*)(...))QSqlTableModel::headerData +184 (int (*)(...))QSqlQueryModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QSqlTableModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QSqlTableModel::insertRows +272 (int (*)(...))QSqlQueryModel::insertColumns +280 (int (*)(...))QSqlTableModel::removeRows +288 (int (*)(...))QSqlTableModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSqlQueryModel::fetchMore +320 (int (*)(...))QSqlQueryModel::canFetchMore +328 (int (*)(...))QSqlTableModel::flags +336 (int (*)(...))QSqlTableModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QSqlQueryModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QSqlTableModel::submit +392 (int (*)(...))QSqlTableModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSqlTableModel::clear +416 (int (*)(...))QSqlQueryModel::queryChange +424 (int (*)(...))QSqlTableModel::indexInQuery +432 (int (*)(...))QSqlTableModel::setTable +440 (int (*)(...))QSqlTableModel::setEditStrategy +448 (int (*)(...))QSqlTableModel::setSort +456 (int (*)(...))QSqlTableModel::setFilter +464 (int (*)(...))QSqlTableModel::revertRow +472 (int (*)(...))QSqlTableModel::select +480 (int (*)(...))QSqlTableModel::selectRow +488 (int (*)(...))QSqlTableModel::updateRowInTable +496 (int (*)(...))QSqlTableModel::insertRowIntoTable +504 (int (*)(...))QSqlTableModel::deleteRowFromTable +512 (int (*)(...))QSqlTableModel::orderByClause +520 (int (*)(...))QSqlTableModel::selectStatement + +Class QSqlTableModel + size=16 align=8 + base size=16 base align=8 +QSqlTableModel (0x0x7f25c66cb478) 0 + vptr=((& QSqlTableModel::_ZTV14QSqlTableModel) + 16) + QSqlQueryModel (0x0x7f25c66cb4e0) 0 + primary-for QSqlTableModel (0x0x7f25c66cb478) + QAbstractTableModel (0x0x7f25c66cb548) 0 + primary-for QSqlQueryModel (0x0x7f25c66cb4e0) + QAbstractItemModel (0x0x7f25c66cb5b0) 0 + primary-for QAbstractTableModel (0x0x7f25c66cb548) + QObject (0x0x7f25c66c8420) 0 + primary-for QAbstractItemModel (0x0x7f25c66cb5b0) + +Class QSqlRelation + size=72 align=8 + base size=72 base align=8 +QSqlRelation (0x0x7f25c66c8600) 0 + +Class QSqlRelationalTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlRelationalTableModel::QPrivateSignal (0x0x7f25c67367e0) 0 empty + +Vtable for QSqlRelationalTableModel +QSqlRelationalTableModel::_ZTV24QSqlRelationalTableModel: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QSqlRelationalTableModel) +16 (int (*)(...))QSqlRelationalTableModel::metaObject +24 (int (*)(...))QSqlRelationalTableModel::qt_metacast +32 (int (*)(...))QSqlRelationalTableModel::qt_metacall +40 (int (*)(...))QSqlRelationalTableModel::~QSqlRelationalTableModel +48 (int (*)(...))QSqlRelationalTableModel::~QSqlRelationalTableModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))QSqlTableModel::rowCount +144 (int (*)(...))QSqlQueryModel::columnCount +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))QSqlRelationalTableModel::data +168 (int (*)(...))QSqlRelationalTableModel::setData +176 (int (*)(...))QSqlTableModel::headerData +184 (int (*)(...))QSqlQueryModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QSqlTableModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QSqlTableModel::insertRows +272 (int (*)(...))QSqlQueryModel::insertColumns +280 (int (*)(...))QSqlTableModel::removeRows +288 (int (*)(...))QSqlRelationalTableModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSqlQueryModel::fetchMore +320 (int (*)(...))QSqlQueryModel::canFetchMore +328 (int (*)(...))QSqlTableModel::flags +336 (int (*)(...))QSqlTableModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QSqlQueryModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QSqlTableModel::submit +392 (int (*)(...))QSqlTableModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSqlRelationalTableModel::clear +416 (int (*)(...))QSqlQueryModel::queryChange +424 (int (*)(...))QSqlTableModel::indexInQuery +432 (int (*)(...))QSqlRelationalTableModel::setTable +440 (int (*)(...))QSqlTableModel::setEditStrategy +448 (int (*)(...))QSqlTableModel::setSort +456 (int (*)(...))QSqlTableModel::setFilter +464 (int (*)(...))QSqlRelationalTableModel::revertRow +472 (int (*)(...))QSqlRelationalTableModel::select +480 (int (*)(...))QSqlTableModel::selectRow +488 (int (*)(...))QSqlRelationalTableModel::updateRowInTable +496 (int (*)(...))QSqlRelationalTableModel::insertRowIntoTable +504 (int (*)(...))QSqlTableModel::deleteRowFromTable +512 (int (*)(...))QSqlRelationalTableModel::orderByClause +520 (int (*)(...))QSqlRelationalTableModel::selectStatement +528 (int (*)(...))QSqlRelationalTableModel::setRelation +536 (int (*)(...))QSqlRelationalTableModel::relationModel + +Class QSqlRelationalTableModel + size=16 align=8 + base size=16 base align=8 +QSqlRelationalTableModel (0x0x7f25c673b8f0) 0 + vptr=((& QSqlRelationalTableModel::_ZTV24QSqlRelationalTableModel) + 16) + QSqlTableModel (0x0x7f25c673b958) 0 + primary-for QSqlRelationalTableModel (0x0x7f25c673b8f0) + QSqlQueryModel (0x0x7f25c673b9c0) 0 + primary-for QSqlTableModel (0x0x7f25c673b958) + QAbstractTableModel (0x0x7f25c673ba28) 0 + primary-for QSqlQueryModel (0x0x7f25c673b9c0) + QAbstractItemModel (0x0x7f25c673ba90) 0 + primary-for QAbstractTableModel (0x0x7f25c673ba28) + QObject (0x0x7f25c6736780) 0 + primary-for QAbstractItemModel (0x0x7f25c673ba90) + +Vtable for QSqlResult +QSqlResult::_ZTV10QSqlResult: 33 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSqlResult) +16 0 +24 0 +32 (int (*)(...))QSqlResult::handle +40 (int (*)(...))QSqlResult::setAt +48 (int (*)(...))QSqlResult::setActive +56 (int (*)(...))QSqlResult::setLastError +64 (int (*)(...))QSqlResult::setQuery +72 (int (*)(...))QSqlResult::setSelect +80 (int (*)(...))QSqlResult::setForwardOnly +88 (int (*)(...))QSqlResult::exec +96 (int (*)(...))QSqlResult::prepare +104 (int (*)(...))QSqlResult::savePrepare +112 (int (*)(...))QSqlResult::bindValue +120 (int (*)(...))QSqlResult::bindValue +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QSqlResult::fetchNext +168 (int (*)(...))QSqlResult::fetchPrevious +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QSqlResult::record +216 (int (*)(...))QSqlResult::lastInsertId +224 (int (*)(...))QSqlResult::virtual_hook +232 (int (*)(...))QSqlResult::execBatch +240 (int (*)(...))QSqlResult::detachFromResultSet +248 (int (*)(...))QSqlResult::setNumericalPrecisionPolicy +256 (int (*)(...))QSqlResult::nextResult + +Class QSqlResult + size=16 align=8 + base size=16 base align=8 +QSqlResult (0x0x7f25c6736960) 0 + vptr=((& QSqlResult::_ZTV10QSqlResult) + 16) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7f25c6736ae0) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7f25c6736a80) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7f25c67f3b40) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7f25c67f3c60) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=40 align=8 + base size=40 base align=8 +QWidget (0x0x7f25c676ea80) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16) + QObject (0x0x7f25c67f3ba0) 0 + primary-for QWidget (0x0x7f25c676ea80) + QPaintDevice (0x0x7f25c67f3c00) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7f25c64ea600) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0 +480 0 +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=40 align=8 + base size=40 base align=8 +QAbstractButton (0x0x7f25c67f8a90) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16) + QWidget (0x0x7f25c676ecb0) 0 + primary-for QAbstractButton (0x0x7f25c67f8a90) + QObject (0x0x7f25c64ea540) 0 + primary-for QWidget (0x0x7f25c676ecb0) + QPaintDevice (0x0x7f25c64ea5a0) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7f25c64ea840) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI16QAbstractSpinBox) +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +504 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=40 align=8 + base size=40 base align=8 +QAbstractSpinBox (0x0x7f25c67f8af8) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16) + QWidget (0x0x7f25c676ed20) 0 + primary-for QAbstractSpinBox (0x0x7f25c67f8af8) + QObject (0x0x7f25c64ea780) 0 + primary-for QWidget (0x0x7f25c676ed20) + QPaintDevice (0x0x7f25c64ea7e0) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 496) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7f25c65780c0) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=40 align=8 + base size=40 base align=8 +QAbstractSlider (0x0x7f25c67f8c98) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16) + QWidget (0x0x7f25c651a150) 0 + primary-for QAbstractSlider (0x0x7f25c67f8c98) + QObject (0x0x7f25c6578000) 0 + primary-for QWidget (0x0x7f25c651a150) + QPaintDevice (0x0x7f25c6578060) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7f25c6578300) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))QSlider::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI7QSlider) +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +472 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=40 align=8 + base size=40 base align=8 +QSlider (0x0x7f25c67f8d00) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16) + QAbstractSlider (0x0x7f25c67f8d68) 0 + primary-for QSlider (0x0x7f25c67f8d00) + QWidget (0x0x7f25c651a700) 0 + primary-for QAbstractSlider (0x0x7f25c67f8d68) + QObject (0x0x7f25c6578240) 0 + primary-for QWidget (0x0x7f25c651a700) + QPaintDevice (0x0x7f25c65782a0) 16 + vptr=((& QSlider::_ZTV7QSlider) + 464) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7f25c65785a0) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7f25c67f8dd0) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16) + QObject (0x0x7f25c6578540) 0 + primary-for QStyle (0x0x7f25c67f8dd0) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7f25c65fc7e0) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QTabBar::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))QTabBar::initStyleOption +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI7QTabBar) +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +504 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=40 align=8 + base size=40 base align=8 +QTabBar (0x0x7f25c623d0d0) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16) + QWidget (0x0x7f25c65de2a0) 0 + primary-for QTabBar (0x0x7f25c623d0d0) + QObject (0x0x7f25c65fc720) 0 + primary-for QWidget (0x0x7f25c65de2a0) + QPaintDevice (0x0x7f25c65fc780) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 496) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7f25c65fcae0) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))QTabWidget::initStyleOption +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI10QTabWidget) +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +480 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=40 align=8 + base size=40 base align=8 +QTabWidget (0x0x7f25c623d138) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16) + QWidget (0x0x7f25c65de8c0) 0 + primary-for QTabWidget (0x0x7f25c623d138) + QObject (0x0x7f25c65fca20) 0 + primary-for QWidget (0x0x7f25c65de8c0) + QPaintDevice (0x0x7f25c65fca80) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 472) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7f25c65fcea0) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRubberBand::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QRubberBand) +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +464 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=40 align=8 + base size=40 base align=8 +QRubberBand (0x0x7f25c623d1a0) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16) + QWidget (0x0x7f25c65debd0) 0 + primary-for QRubberBand (0x0x7f25c623d1a0) + QObject (0x0x7f25c65fcde0) 0 + primary-for QWidget (0x0x7f25c65debd0) + QPaintDevice (0x0x7f25c65fce40) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 456) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7f25c62d6300) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QFrame) +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +464 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=40 align=8 + base size=40 base align=8 +QFrame (0x0x7f25c623d208) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16) + QWidget (0x0x7f25c65ded20) 0 + primary-for QFrame (0x0x7f25c623d208) + QObject (0x0x7f25c62d6240) 0 + primary-for QWidget (0x0x7f25c65ded20) + QPaintDevice (0x0x7f25c62d62a0) 16 + vptr=((& QFrame::_ZTV6QFrame) + 456) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7f25c62d6600) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7f25c623d270) 0 + QStyleOption (0x0x7f25c62d6660) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7f25d43f34e0) 0 + QStyleOption (0x0x7f25c62d68a0) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7f25d43f36e8) 0 + QStyleOption (0x0x7f25c62d6ea0) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7f25c623d2d8) 0 + QStyleOption (0x0x7f25c635d120) 0 + +Class QStyleOptionHeader + size=136 align=8 + base size=132 base align=8 +QStyleOptionHeader (0x0x7f25c623d340) 0 + QStyleOption (0x0x7f25c635d360) 0 + +Class QStyleOptionHeaderV2 + size=136 align=8 + base size=136 base align=8 +QStyleOptionHeaderV2 (0x0x7f25c623d3a8) 0 + QStyleOptionHeader (0x0x7f25c623d410) 0 + QStyleOption (0x0x7f25c635d5a0) 0 + +Class QStyleOptionButton + size=112 align=8 + base size=112 base align=8 +QStyleOptionButton (0x0x7f25c623d4e0) 0 + QStyleOption (0x0x7f25c635d960) 0 + +Class QStyleOptionTab + size=160 align=8 + base size=156 base align=8 +QStyleOptionTab (0x0x7f25c623d680) 0 + QStyleOption (0x0x7f25c635df60) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7f25c623d958) 0 + QStyleOption (0x0x7f25c63d4780) 0 + +Class QStyleOptionProgressBar + size=112 align=8 + base size=111 base align=8 +QStyleOptionProgressBar (0x0x7f25c623daf8) 0 + QStyleOption (0x0x7f25c63d4d80) 0 + +Class QStyleOptionMenuItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionMenuItem (0x0x7f25c623db60) 0 + QStyleOption (0x0x7f25c6091000) 0 + +Class QStyleOptionDockWidget + size=96 align=8 + base size=92 base align=8 +QStyleOptionDockWidget (0x0x7f25c623dbc8) 0 + QStyleOption (0x0x7f25c6091240) 0 + +Class QStyleOptionViewItem + size=208 align=8 + base size=208 base align=8 +QStyleOptionViewItem (0x0x7f25c623dc30) 0 + QStyleOption (0x0x7f25c6091480) 0 + +Class QStyleOptionToolBox + size=104 align=8 + base size=104 base align=8 +QStyleOptionToolBox (0x0x7f25c623ddd0) 0 + QStyleOption (0x0x7f25c6091a80) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7f25c623de38) 0 + QStyleOption (0x0x7f25c6091cc0) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7f25c623dea0) 0 + QStyleOption (0x0x7f25c6091f60) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=128 base align=8 +QStyleOptionSlider (0x0x7f25c623df08) 0 + QStyleOptionComplex (0x0x7f25c623df70) 0 + QStyleOption (0x0x7f25c6117240) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7f25c6125068) 0 + QStyleOptionComplex (0x0x7f25c61250d0) 0 + QStyleOption (0x0x7f25c6117600) 0 + +Class QStyleOptionToolButton + size=152 align=8 + base size=152 base align=8 +QStyleOptionToolButton (0x0x7f25c61251a0) 0 + QStyleOptionComplex (0x0x7f25c6125208) 0 + QStyleOption (0x0x7f25c6117840) 0 + +Class QStyleOptionComboBox + size=144 align=8 + base size=140 base align=8 +QStyleOptionComboBox (0x0x7f25c61253a8) 0 + QStyleOptionComplex (0x0x7f25c6125410) 0 + QStyleOption (0x0x7f25c6117e40) 0 + +Class QStyleOptionTitleBar + size=112 align=8 + base size=112 base align=8 +QStyleOptionTitleBar (0x0x7f25c6125478) 0 + QStyleOptionComplex (0x0x7f25c61254e0) 0 + QStyleOption (0x0x7f25c618d060) 0 + +Class QStyleOptionGroupBox + size=136 align=8 + base size=132 base align=8 +QStyleOptionGroupBox (0x0x7f25c6125548) 0 + QStyleOptionComplex (0x0x7f25c61255b0) 0 + QStyleOption (0x0x7f25c618d2a0) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7f25c6125618) 0 + QStyleOptionComplex (0x0x7f25c6125680) 0 + QStyleOption (0x0x7f25c618d4e0) 0 + +Class QStyleOptionGraphicsItem + size=96 align=8 + base size=96 base align=8 +QStyleOptionGraphicsItem (0x0x7f25c61256e8) 0 + QStyleOption (0x0x7f25c618d720) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7f25c618da80) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7f25c6125750) 0 + QStyleHintReturn (0x0x7f25c618dae0) 0 + +Class QStyleHintReturnVariant + size=40 align=8 + base size=40 base align=8 +QStyleHintReturnVariant (0x0x7f25c6125820) 0 + QStyleHintReturn (0x0x7f25c618db40) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7f25c618dcc0) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7f25c61258f0) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16) + QObject (0x0x7f25c618dc60) 0 + primary-for QAbstractItemDelegate (0x0x7f25c61258f0) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7f25c618df00) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI19QAbstractScrollArea) +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +496 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=40 align=8 + base size=40 base align=8 +QAbstractScrollArea (0x0x7f25c6125958) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16) + QFrame (0x0x7f25c61259c0) 0 + primary-for QAbstractScrollArea (0x0x7f25c6125958) + QWidget (0x0x7f25c61c9070) 0 + primary-for QFrame (0x0x7f25c61259c0) + QObject (0x0x7f25c618de40) 0 + primary-for QWidget (0x0x7f25c61c9070) + QPaintDevice (0x0x7f25c618dea0) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 488) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7f25c61f2240) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QAbstractItemView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))__cxa_pure_virtual +736 (int (*)(...))__cxa_pure_virtual +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI17QAbstractItemView) +800 0 +808 0 +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=40 align=8 + base size=40 base align=8 +QAbstractItemView (0x0x7f25c6125a28) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16) + QAbstractScrollArea (0x0x7f25c6125a90) 0 + primary-for QAbstractItemView (0x0x7f25c6125a28) + QFrame (0x0x7f25c6125af8) 0 + primary-for QAbstractScrollArea (0x0x7f25c6125a90) + QWidget (0x0x7f25c61c9230) 0 + primary-for QFrame (0x0x7f25c6125af8) + QObject (0x0x7f25c61f2180) 0 + primary-for QWidget (0x0x7f25c61c9230) + QPaintDevice (0x0x7f25c61f21e0) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 800) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7f25c6219770) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16) + QAccessibleObject (0x0x7f25c6125c98) 0 + primary-for QAccessibleWidget (0x0x7f25c6219770) + QAccessibleInterface (0x0x7f25c61f2c60) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f25c6125c98) + QAccessibleActionInterface (0x0x7f25c61f2cc0) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7f25c61f2de0) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7f25c6125d00) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16) + QGuiApplication (0x0x7f25c6125d68) 0 + primary-for QApplication (0x0x7f25c6125d00) + QCoreApplication (0x0x7f25c6125dd0) 0 + primary-for QGuiApplication (0x0x7f25c6125d68) + QObject (0x0x7f25c61f2d80) 0 + primary-for QCoreApplication (0x0x7f25c6125dd0) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7f25c5ea40c0) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7f25c6125e38) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16) + QLayoutItem (0x0x7f25c5ea4300) 0 + primary-for QSpacerItem (0x0x7f25c6125e38) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QWidgetItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7f25c6125ea0) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16) + QLayoutItem (0x0x7f25c5ea4540) 0 + primary-for QWidgetItem (0x0x7f25c6125ea0) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QWidgetItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7f25c6125f08) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16) + QWidgetItem (0x0x7f25c6125f70) 0 + primary-for QWidgetItemV2 (0x0x7f25c6125f08) + QLayoutItem (0x0x7f25c5ea4720) 0 + primary-for QWidgetItem (0x0x7f25c6125f70) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7f25c5ea48a0) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QLayout::setGeometry +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI7QLayout) +272 0 +280 0 +288 (int (*)(...))__cxa_pure_virtual +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +312 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +320 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QLayoutItem::hasHeightForWidth +352 (int (*)(...))QLayoutItem::heightForWidth +360 (int (*)(...))QLayoutItem::minimumHeightForWidth +368 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7f25c6219930) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16) + QObject (0x0x7f25c5ea47e0) 0 + primary-for QLayout (0x0x7f25c6219930) + QLayoutItem (0x0x7f25c5ea4840) 16 + vptr=((& QLayout::_ZTV7QLayout) + 272) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7f25c5ea4ba0) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::spacing +120 (int (*)(...))QGridLayout::setSpacing +128 (int (*)(...))QGridLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QGridLayout::addItem +152 (int (*)(...))QGridLayout::expandingDirections +160 (int (*)(...))QGridLayout::minimumSize +168 (int (*)(...))QGridLayout::maximumSize +176 (int (*)(...))QGridLayout::setGeometry +184 (int (*)(...))QGridLayout::itemAt +192 (int (*)(...))QGridLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QGridLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QGridLayout::sizeHint +264 (int (*)(...))QGridLayout::hasHeightForWidth +272 (int (*)(...))QGridLayout::heightForWidth +280 (int (*)(...))QGridLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QGridLayout) +304 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +312 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +320 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +328 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +336 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +352 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +384 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +392 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +400 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7f25c6125000) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16) + QLayout (0x0x7f25c6219c40) 0 + primary-for QGridLayout (0x0x7f25c6125000) + QObject (0x0x7f25c5ea4ae0) 0 + primary-for QLayout (0x0x7f25c6219c40) + QLayoutItem (0x0x7f25c5ea4b40) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 304) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7f25c5ea4e40) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI10QBoxLayout) +304 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +312 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7f25c5f0c000) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16) + QLayout (0x0x7f25c6219cb0) 0 + primary-for QBoxLayout (0x0x7f25c5f0c000) + QObject (0x0x7f25c5ea4d80) 0 + primary-for QLayout (0x0x7f25c6219cb0) + QLayoutItem (0x0x7f25c5ea4de0) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 304) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7f25c5f250c0) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QHBoxLayout) +304 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +312 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7f25c5f0c068) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16) + QBoxLayout (0x0x7f25c5f0c0d0) 0 + primary-for QHBoxLayout (0x0x7f25c5f0c068) + QLayout (0x0x7f25c5f24000) 0 + primary-for QBoxLayout (0x0x7f25c5f0c0d0) + QObject (0x0x7f25c5f25000) 0 + primary-for QLayout (0x0x7f25c5f24000) + QLayoutItem (0x0x7f25c5f25060) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 304) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7f25c5f25240) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QVBoxLayout) +304 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +312 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7f25c5f0c138) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16) + QBoxLayout (0x0x7f25c5f0c1a0) 0 + primary-for QVBoxLayout (0x0x7f25c5f0c138) + QLayout (0x0x7f25c5f24070) 0 + primary-for QBoxLayout (0x0x7f25c5f0c1a0) + QObject (0x0x7f25c5f25180) 0 + primary-for QLayout (0x0x7f25c5f24070) + QLayoutItem (0x0x7f25c5f251e0) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 304) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7f25c5f25360) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7f25c5f0c208) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16) + QObject (0x0x7f25c5f25300) 0 + primary-for QButtonGroup (0x0x7f25c5f0c208) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7f25c5f255a0) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=40 align=8 + base size=40 base align=8 +QCalendarWidget (0x0x7f25c5f0c270) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16) + QWidget (0x0x7f25c5f240e0) 0 + primary-for QCalendarWidget (0x0x7f25c5f0c270) + QObject (0x0x7f25c5f254e0) 0 + primary-for QWidget (0x0x7f25c5f240e0) + QPaintDevice (0x0x7f25c5f25540) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7f25c5f25a20) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))QCheckBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QCheckBox) +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +488 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=40 align=8 + base size=40 base align=8 +QCheckBox (0x0x7f25c5f0c2d8) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16) + QAbstractButton (0x0x7f25c5f0c340) 0 + primary-for QCheckBox (0x0x7f25c5f0c2d8) + QWidget (0x0x7f25c5f244d0) 0 + primary-for QAbstractButton (0x0x7f25c5f0c340) + QObject (0x0x7f25c5f25960) 0 + primary-for QWidget (0x0x7f25c5f244d0) + QPaintDevice (0x0x7f25c5f259c0) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 480) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7f25c5f25c60) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=40 align=8 + base size=40 base align=8 +QDialog (0x0x7f25c5f0c3a8) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16) + QWidget (0x0x7f25c5f24540) 0 + primary-for QDialog (0x0x7f25c5f0c3a8) + QObject (0x0x7f25c5f25ba0) 0 + primary-for QWidget (0x0x7f25c5f24540) + QPaintDevice (0x0x7f25c5f25c00) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7f25c5f25ea0) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=40 align=8 + base size=40 base align=8 +QColorDialog (0x0x7f25c5f0c410) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16) + QDialog (0x0x7f25c5f0c478) 0 + primary-for QColorDialog (0x0x7f25c5f0c410) + QWidget (0x0x7f25c5f24690) 0 + primary-for QDialog (0x0x7f25c5f0c478) + QObject (0x0x7f25c5f25de0) 0 + primary-for QWidget (0x0x7f25c5f24690) + QPaintDevice (0x0x7f25c5f25e40) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7f25c5fa74e0) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7f25c5fa7600) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 109 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QColumnView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QColumnView::setModel +480 (int (*)(...))QColumnView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QColumnView::visualRect +504 (int (*)(...))QColumnView::scrollTo +512 (int (*)(...))QColumnView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QColumnView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QColumnView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QColumnView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QColumnView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QColumnView::moveCursor +704 (int (*)(...))QColumnView::horizontalOffset +712 (int (*)(...))QColumnView::verticalOffset +720 (int (*)(...))QColumnView::isIndexHidden +728 (int (*)(...))QColumnView::setSelection +736 (int (*)(...))QColumnView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QColumnView::createColumn +792 (int (*)(...))-16 +800 (int (*)(...))(& _ZTI11QColumnView) +808 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +816 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=40 align=8 + base size=40 base align=8 +QColumnView (0x0x7f25c5f0c618) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16) + QAbstractItemView (0x0x7f25c5f0c680) 0 + primary-for QColumnView (0x0x7f25c5f0c618) + QAbstractScrollArea (0x0x7f25c5f0c6e8) 0 + primary-for QAbstractItemView (0x0x7f25c5f0c680) + QFrame (0x0x7f25c5f0c750) 0 + primary-for QAbstractScrollArea (0x0x7f25c5f0c6e8) + QWidget (0x0x7f25c5f249a0) 0 + primary-for QFrame (0x0x7f25c5f0c750) + QObject (0x0x7f25c5fa7540) 0 + primary-for QWidget (0x0x7f25c5f249a0) + QPaintDevice (0x0x7f25c5fa75a0) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 808) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7f25c5fa7840) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QComboBox) +480 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +488 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=40 align=8 + base size=40 base align=8 +QComboBox (0x0x7f25c5f0c7b8) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16) + QWidget (0x0x7f25c5f24a10) 0 + primary-for QComboBox (0x0x7f25c5f0c7b8) + QObject (0x0x7f25c5fa7780) 0 + primary-for QWidget (0x0x7f25c5f24a10) + QPaintDevice (0x0x7f25c5fa77e0) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 480) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7f25c5fa7de0) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QPushButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QPushButton) +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +488 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=40 align=8 + base size=40 base align=8 +QPushButton (0x0x7f25c5f0c820) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16) + QAbstractButton (0x0x7f25c5f0c888) 0 + primary-for QPushButton (0x0x7f25c5f0c820) + QWidget (0x0x7f25c5f24ee0) 0 + primary-for QAbstractButton (0x0x7f25c5f0c888) + QObject (0x0x7f25c5fa7d20) 0 + primary-for QWidget (0x0x7f25c5f24ee0) + QPaintDevice (0x0x7f25c5fa7d80) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 480) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7f25c5c52060) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QCommandLinkButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI18QCommandLinkButton) +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +488 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=40 align=8 + base size=40 base align=8 +QCommandLinkButton (0x0x7f25c5f0c8f0) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16) + QPushButton (0x0x7f25c5f0c958) 0 + primary-for QCommandLinkButton (0x0x7f25c5f0c8f0) + QAbstractButton (0x0x7f25c5f0c9c0) 0 + primary-for QPushButton (0x0x7f25c5f0c958) + QWidget (0x0x7f25c5f24f50) 0 + primary-for QAbstractButton (0x0x7f25c5f0c9c0) + QObject (0x0x7f25c5fa7f60) 0 + primary-for QWidget (0x0x7f25c5f24f50) + QPaintDevice (0x0x7f25c5c52000) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 480) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7f25c5c52240) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7f25c5f0ca28) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16) + QStyle (0x0x7f25c5f0ca90) 0 + primary-for QCommonStyle (0x0x7f25c5f0ca28) + QObject (0x0x7f25c5c521e0) 0 + primary-for QStyle (0x0x7f25c5f0ca90) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7f25c5c52420) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7f25c5f0caf8) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16) + QObject (0x0x7f25c5c523c0) 0 + primary-for QCompleter (0x0x7f25c5f0caf8) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7f25c5c52780) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7f25c5f0cb60) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16) + QObject (0x0x7f25c5c52720) 0 + primary-for QDataWidgetMapper (0x0x7f25c5f0cb60) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7f25c5c52a80) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QDateTimeEdit) +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +520 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=40 align=8 + base size=40 base align=8 +QDateTimeEdit (0x0x7f25c5f0cbc8) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16) + QAbstractSpinBox (0x0x7f25c5f0cc30) 0 + primary-for QDateTimeEdit (0x0x7f25c5f0cbc8) + QWidget (0x0x7f25c5c7c380) 0 + primary-for QAbstractSpinBox (0x0x7f25c5f0cc30) + QObject (0x0x7f25c5c529c0) 0 + primary-for QWidget (0x0x7f25c5c7c380) + QPaintDevice (0x0x7f25c5c52a20) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 512) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7f25c5ce5060) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QTimeEdit) +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +520 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=40 align=8 + base size=40 base align=8 +QTimeEdit (0x0x7f25c5f0cdd0) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16) + QDateTimeEdit (0x0x7f25c5f0ce38) 0 + primary-for QTimeEdit (0x0x7f25c5f0cdd0) + QAbstractSpinBox (0x0x7f25c5f0cea0) 0 + primary-for QDateTimeEdit (0x0x7f25c5f0ce38) + QWidget (0x0x7f25c5c7c8c0) 0 + primary-for QAbstractSpinBox (0x0x7f25c5f0cea0) + QObject (0x0x7f25c5c52f60) 0 + primary-for QWidget (0x0x7f25c5c7c8c0) + QPaintDevice (0x0x7f25c5ce5000) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 512) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7f25c5ce51e0) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QDateEdit) +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +520 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=40 align=8 + base size=40 base align=8 +QDateEdit (0x0x7f25c5f0cf08) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16) + QDateTimeEdit (0x0x7f25c5f0cf70) 0 + primary-for QDateEdit (0x0x7f25c5f0cf08) + QAbstractSpinBox (0x0x7f25c5cf3000) 0 + primary-for QDateTimeEdit (0x0x7f25c5f0cf70) + QWidget (0x0x7f25c5c7c930) 0 + primary-for QAbstractSpinBox (0x0x7f25c5cf3000) + QObject (0x0x7f25c5ce5120) 0 + primary-for QWidget (0x0x7f25c5c7c930) + QPaintDevice (0x0x7f25c5ce5180) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 512) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7f25c5ce5540) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))QDial::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI5QDial) +464 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +472 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=40 align=8 + base size=40 base align=8 +QDial (0x0x7f25c5cf3068) 0 + vptr=((& QDial::_ZTV5QDial) + 16) + QAbstractSlider (0x0x7f25c5cf30d0) 0 + primary-for QDial (0x0x7f25c5cf3068) + QWidget (0x0x7f25c5c7c9a0) 0 + primary-for QAbstractSlider (0x0x7f25c5cf30d0) + QObject (0x0x7f25c5ce5480) 0 + primary-for QWidget (0x0x7f25c5c7c9a0) + QPaintDevice (0x0x7f25c5ce54e0) 16 + vptr=((& QDial::_ZTV5QDial) + 464) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7f25c5ce5780) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=40 align=8 + base size=40 base align=8 +QDialogButtonBox (0x0x7f25c5cf3138) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16) + QWidget (0x0x7f25c5c7ca10) 0 + primary-for QDialogButtonBox (0x0x7f25c5cf3138) + QObject (0x0x7f25c5ce56c0) 0 + primary-for QWidget (0x0x7f25c5c7ca10) + QPaintDevice (0x0x7f25c5ce5720) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7f25c5ce5e40) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDockWidget::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QDockWidget) +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +464 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=40 align=8 + base size=40 base align=8 +QDockWidget (0x0x7f25c5cf32d8) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16) + QWidget (0x0x7f25c5d3eaf0) 0 + primary-for QDockWidget (0x0x7f25c5cf32d8) + QObject (0x0x7f25c5ce5d80) 0 + primary-for QWidget (0x0x7f25c5d3eaf0) + QPaintDevice (0x0x7f25c5ce5de0) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 456) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7f25c5db2540) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7f25c5db2ba0) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=40 align=8 + base size=40 base align=8 +QErrorMessage (0x0x7f25c5cf35b0) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16) + QDialog (0x0x7f25c5cf3618) 0 + primary-for QErrorMessage (0x0x7f25c5cf35b0) + QWidget (0x0x7f25c5e0c540) 0 + primary-for QDialog (0x0x7f25c5cf3618) + QObject (0x0x7f25c5db2ae0) 0 + primary-for QWidget (0x0x7f25c5e0c540) + QPaintDevice (0x0x7f25c5db2b40) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7f25c5db2de0) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=40 align=8 + base size=40 base align=8 +QFileDialog (0x0x7f25c5cf3680) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16) + QDialog (0x0x7f25c5cf36e8) 0 + primary-for QFileDialog (0x0x7f25c5cf3680) + QWidget (0x0x7f25c5e0c5b0) 0 + primary-for QDialog (0x0x7f25c5cf36e8) + QObject (0x0x7f25c5db2d20) 0 + primary-for QWidget (0x0x7f25c5e0c5b0) + QPaintDevice (0x0x7f25c5db2d80) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7f25c5cf3888) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16) + QAbstractFileIconProvider (0x0x7f25c5a78780) 0 + primary-for QFileIconProvider (0x0x7f25c5cf3888) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7f25c5a78960) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFocusFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QFocusFrame) +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +464 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=40 align=8 + base size=40 base align=8 +QFocusFrame (0x0x7f25c5cf38f0) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16) + QWidget (0x0x7f25c5e0cee0) 0 + primary-for QFocusFrame (0x0x7f25c5cf38f0) + QObject (0x0x7f25c5a788a0) 0 + primary-for QWidget (0x0x7f25c5e0cee0) + QPaintDevice (0x0x7f25c5a78900) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 456) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7f25c5a78ba0) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI13QFontComboBox) +480 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +488 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=40 align=8 + base size=40 base align=8 +QFontComboBox (0x0x7f25c5cf3958) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16) + QComboBox (0x0x7f25c5cf39c0) 0 + primary-for QFontComboBox (0x0x7f25c5cf3958) + QWidget (0x0x7f25c5e0cf50) 0 + primary-for QComboBox (0x0x7f25c5cf39c0) + QObject (0x0x7f25c5a78ae0) 0 + primary-for QWidget (0x0x7f25c5e0cf50) + QPaintDevice (0x0x7f25c5a78b40) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 480) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7f25c5b0a2a0) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=40 align=8 + base size=40 base align=8 +QFontDialog (0x0x7f25c5cf3b60) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16) + QDialog (0x0x7f25c5cf3bc8) 0 + primary-for QFontDialog (0x0x7f25c5cf3b60) + QWidget (0x0x7f25c5ad4230) 0 + primary-for QDialog (0x0x7f25c5cf3bc8) + QObject (0x0x7f25c5b0a1e0) 0 + primary-for QWidget (0x0x7f25c5ad4230) + QPaintDevice (0x0x7f25c5b0a240) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7f25c5b0a960) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7f25c5b0a9c0) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::spacing +120 (int (*)(...))QFormLayout::setSpacing +128 (int (*)(...))QFormLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QFormLayout::addItem +152 (int (*)(...))QFormLayout::expandingDirections +160 (int (*)(...))QFormLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QFormLayout::setGeometry +184 (int (*)(...))QFormLayout::itemAt +192 (int (*)(...))QFormLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QFormLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QFormLayout::sizeHint +264 (int (*)(...))QFormLayout::hasHeightForWidth +272 (int (*)(...))QFormLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI11QFormLayout) +296 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +304 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +312 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +320 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +344 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +376 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7f25c5cf3d68) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16) + QLayout (0x0x7f25c5ad4540) 0 + primary-for QFormLayout (0x0x7f25c5cf3d68) + QObject (0x0x7f25c5b0a8a0) 0 + primary-for QLayout (0x0x7f25c5ad4540) + QLayoutItem (0x0x7f25c5b0a900) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 296) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7f25c5bd2c60) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7f25c5bcd8f0) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16) + QObject (0x0x7f25c5bd2c00) 0 + primary-for QGesture (0x0x7f25c5bcd8f0) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7f25c5bd2e40) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7f25c5bcd958) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16) + QGesture (0x0x7f25c5bcd9c0) 0 + primary-for QPanGesture (0x0x7f25c5bcd958) + QObject (0x0x7f25c5bd2de0) 0 + primary-for QGesture (0x0x7f25c5bcd9c0) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7f25c582a060) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7f25c5bcda28) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16) + QGesture (0x0x7f25c5bcda90) 0 + primary-for QPinchGesture (0x0x7f25c5bcda28) + QObject (0x0x7f25c582a000) 0 + primary-for QGesture (0x0x7f25c5bcda90) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7f25c58c78a0) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7f25c58db3a8) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16) + QGesture (0x0x7f25c58db410) 0 + primary-for QSwipeGesture (0x0x7f25c58db3a8) + QObject (0x0x7f25c58c7840) 0 + primary-for QGesture (0x0x7f25c58db410) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7f25c58c7b40) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7f25c58db478) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16) + QGesture (0x0x7f25c58db4e0) 0 + primary-for QTapGesture (0x0x7f25c58db478) + QObject (0x0x7f25c58c7ae0) 0 + primary-for QGesture (0x0x7f25c58db4e0) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7f25c58c7d20) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7f25c58db548) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16) + QGesture (0x0x7f25c58db5b0) 0 + primary-for QTapAndHoldGesture (0x0x7f25c58db548) + QObject (0x0x7f25c58c7cc0) 0 + primary-for QGesture (0x0x7f25c58db5b0) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGestureEvent + size=64 align=8 + base size=64 base align=8 +QGestureEvent (0x0x7f25c58db618) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16) + QEvent (0x0x7f25c58c7ea0) 0 + primary-for QGestureEvent (0x0x7f25c58db618) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0 +24 0 +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7f25c59e8a20) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7f25c59e8e40) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7f25c5712120) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0 +48 0 +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0 +136 0 +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7f25c5654b60) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16) + QObject (0x0x7f25c5712060) 0 + primary-for QGraphicsObject (0x0x7f25c5654b60) + QGraphicsItem (0x0x7f25c57120c0) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7f25c59fe750) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16) + QGraphicsItem (0x0x7f25c57121e0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f25c59fe750) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7f25c59fe7b8) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f25c59fe820) 0 + primary-for QGraphicsPathItem (0x0x7f25c59fe7b8) + QGraphicsItem (0x0x7f25c5712300) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f25c59fe820) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7f25c59fe888) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f25c59fe8f0) 0 + primary-for QGraphicsRectItem (0x0x7f25c59fe888) + QGraphicsItem (0x0x7f25c5712420) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f25c59fe8f0) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7f25c59fe958) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f25c59fe9c0) 0 + primary-for QGraphicsEllipseItem (0x0x7f25c59fe958) + QGraphicsItem (0x0x7f25c57125a0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f25c59fe9c0) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7f25c59fea28) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f25c59fea90) 0 + primary-for QGraphicsPolygonItem (0x0x7f25c59fea28) + QGraphicsItem (0x0x7f25c5712720) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f25c59fea90) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7f25c59feaf8) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16) + QGraphicsItem (0x0x7f25c5712840) 0 + primary-for QGraphicsLineItem (0x0x7f25c59feaf8) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7f25c59feb60) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16) + QGraphicsItem (0x0x7f25c57129c0) 0 + primary-for QGraphicsPixmapItem (0x0x7f25c59feb60) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7f25c5712c00) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7f25c59febc8) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16) + QGraphicsObject (0x0x7f25c5789000) 0 + primary-for QGraphicsTextItem (0x0x7f25c59febc8) + QObject (0x0x7f25c5712b40) 0 + primary-for QGraphicsObject (0x0x7f25c5789000) + QGraphicsItem (0x0x7f25c5712ba0) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7f25c59fed00) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f25c59fed68) 0 + primary-for QGraphicsSimpleTextItem (0x0x7f25c59fed00) + QGraphicsItem (0x0x7f25c5712ea0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f25c59fed68) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7f25c59fedd0) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16) + QGraphicsItem (0x0x7f25c57b3000) 0 + primary-for QGraphicsItemGroup (0x0x7f25c59fedd0) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7f25c57b36c0) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))QGraphicsLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7f25c59feea0) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16) + QGraphicsLayoutItem (0x0x7f25c57b3d80) 0 + primary-for QGraphicsLayout (0x0x7f25c59feea0) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7f25c58100c0) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7f25c59fef08) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16) + QObject (0x0x7f25c5810060) 0 + primary-for QGraphicsAnchor (0x0x7f25c59fef08) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsAnchorLayout::sizeHint +72 (int (*)(...))QGraphicsAnchorLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsAnchorLayout::count +96 (int (*)(...))QGraphicsAnchorLayout::itemAt +104 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7f25c59fef70) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16) + QGraphicsLayout (0x0x7f25c581c000) 0 + primary-for QGraphicsAnchorLayout (0x0x7f25c59fef70) + QGraphicsLayoutItem (0x0x7f25c5810240) 0 + primary-for QGraphicsLayout (0x0x7f25c581c000) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7f25c58103c0) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7f25c581c068) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16) + QObject (0x0x7f25c5810360) 0 + primary-for QGraphicsEffect (0x0x7f25c581c068) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7f25c5810a20) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7f25c581c208) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16) + QGraphicsEffect (0x0x7f25c581c270) 0 + primary-for QGraphicsColorizeEffect (0x0x7f25c581c208) + QObject (0x0x7f25c58109c0) 0 + primary-for QGraphicsEffect (0x0x7f25c581c270) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7f25c5810c00) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7f25c581c2d8) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16) + QGraphicsEffect (0x0x7f25c581c340) 0 + primary-for QGraphicsBlurEffect (0x0x7f25c581c2d8) + QObject (0x0x7f25c5810ba0) 0 + primary-for QGraphicsEffect (0x0x7f25c581c340) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7f25c54b3360) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7f25c581c4e0) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16) + QGraphicsEffect (0x0x7f25c581c548) 0 + primary-for QGraphicsDropShadowEffect (0x0x7f25c581c4e0) + QObject (0x0x7f25c54b3300) 0 + primary-for QGraphicsEffect (0x0x7f25c581c548) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7f25c54b3780) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7f25c581c5b0) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16) + QGraphicsEffect (0x0x7f25c581c618) 0 + primary-for QGraphicsOpacityEffect (0x0x7f25c581c5b0) + QObject (0x0x7f25c54b3720) 0 + primary-for QGraphicsEffect (0x0x7f25c581c618) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsGridLayout::sizeHint +72 (int (*)(...))QGraphicsGridLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsGridLayout::count +96 (int (*)(...))QGraphicsGridLayout::itemAt +104 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7f25c581c680) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16) + QGraphicsLayout (0x0x7f25c581c6e8) 0 + primary-for QGraphicsGridLayout (0x0x7f25c581c680) + QGraphicsLayoutItem (0x0x7f25c54b3900) 0 + primary-for QGraphicsLayout (0x0x7f25c581c6e8) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7f25c54b3ae0) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7f25c581c820) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16) + QObject (0x0x7f25c54b3a80) 0 + primary-for QGraphicsItemAnimation (0x0x7f25c581c820) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsLinearLayout::sizeHint +72 (int (*)(...))QGraphicsLinearLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsLinearLayout::count +96 (int (*)(...))QGraphicsLinearLayout::itemAt +104 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7f25c581c888) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16) + QGraphicsLayout (0x0x7f25c581c8f0) 0 + primary-for QGraphicsLinearLayout (0x0x7f25c581c888) + QGraphicsLayoutItem (0x0x7f25c54b3ba0) 0 + primary-for QGraphicsLayout (0x0x7f25c581c8f0) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7f25c54b3ea0) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 93 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsLayoutItem::isEmpty +736 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7f25c5789c40) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16) + QGraphicsObject (0x0x7f25c5789cb0) 0 + primary-for QGraphicsWidget (0x0x7f25c5789c40) + QObject (0x0x7f25c54b3d80) 0 + primary-for QGraphicsObject (0x0x7f25c5789cb0) + QGraphicsItem (0x0x7f25c54b3de0) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376) + QGraphicsLayoutItem (0x0x7f25c54b3e40) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7f25c5560360) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsLayoutItem::isEmpty +856 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7f25c581ca28) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16) + QGraphicsWidget (0x0x7f25c5789e00) 0 + primary-for QGraphicsProxyWidget (0x0x7f25c581ca28) + QGraphicsObject (0x0x7f25c5789e70) 0 + primary-for QGraphicsWidget (0x0x7f25c5789e00) + QObject (0x0x7f25c5560240) 0 + primary-for QGraphicsObject (0x0x7f25c5789e70) + QGraphicsItem (0x0x7f25c55602a0) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496) + QGraphicsLayoutItem (0x0x7f25c5560300) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7f25c55606c0) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems +272 (int (*)(...))QGraphicsScene::focusNextPrevChild + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7f25c581cc30) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16) + QObject (0x0x7f25c5560660) 0 + primary-for QGraphicsScene (0x0x7f25c581cc30) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneEvent (0x0x7f25c55e0680) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16) + QEvent (0x0x7f25c55e2ae0) 0 + primary-for QGraphicsSceneEvent (0x0x7f25c55e0680) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMouseEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMouseEvent (0x0x7f25c55e06e8) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16) + QGraphicsSceneEvent (0x0x7f25c55e0750) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7f25c55e06e8) + QEvent (0x0x7f25c55e2cc0) 0 + primary-for QGraphicsSceneEvent (0x0x7f25c55e0750) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneWheelEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneWheelEvent (0x0x7f25c55e07b8) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16) + QGraphicsSceneEvent (0x0x7f25c55e0820) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7f25c55e07b8) + QEvent (0x0x7f25c55e2de0) 0 + primary-for QGraphicsSceneEvent (0x0x7f25c55e0820) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneContextMenuEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7f25c55e0888) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16) + QGraphicsSceneEvent (0x0x7f25c55e08f0) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7f25c55e0888) + QEvent (0x0x7f25c55e2f00) 0 + primary-for QGraphicsSceneEvent (0x0x7f25c55e08f0) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHoverEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHoverEvent (0x0x7f25c55e0958) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16) + QGraphicsSceneEvent (0x0x7f25c55e09c0) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7f25c55e0958) + QEvent (0x0x7f25c52a9000) 0 + primary-for QGraphicsSceneEvent (0x0x7f25c55e09c0) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHelpEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHelpEvent (0x0x7f25c55e0a28) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16) + QGraphicsSceneEvent (0x0x7f25c55e0a90) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7f25c55e0a28) + QEvent (0x0x7f25c52a9120) 0 + primary-for QGraphicsSceneEvent (0x0x7f25c55e0a90) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneDragDropEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneDragDropEvent (0x0x7f25c55e0af8) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16) + QGraphicsSceneEvent (0x0x7f25c55e0b60) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7f25c55e0af8) + QEvent (0x0x7f25c52a9240) 0 + primary-for QGraphicsSceneEvent (0x0x7f25c55e0b60) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneResizeEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneResizeEvent (0x0x7f25c55e0bc8) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16) + QGraphicsSceneEvent (0x0x7f25c55e0c30) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7f25c55e0bc8) + QEvent (0x0x7f25c52a9360) 0 + primary-for QGraphicsSceneEvent (0x0x7f25c55e0c30) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMoveEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMoveEvent (0x0x7f25c55e0c98) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16) + QGraphicsSceneEvent (0x0x7f25c55e0d00) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7f25c55e0c98) + QEvent (0x0x7f25c52a9480) 0 + primary-for QGraphicsSceneEvent (0x0x7f25c55e0d00) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7f25c52a9600) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7f25c55e0d68) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16) + QObject (0x0x7f25c52a95a0) 0 + primary-for QGraphicsTransform (0x0x7f25c55e0d68) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7f25c52a97e0) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7f25c55e0dd0) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16) + QGraphicsTransform (0x0x7f25c55e0e38) 0 + primary-for QGraphicsScale (0x0x7f25c55e0dd0) + QObject (0x0x7f25c52a9780) 0 + primary-for QGraphicsTransform (0x0x7f25c55e0e38) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7f25c52a99c0) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7f25c55e0ea0) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16) + QGraphicsTransform (0x0x7f25c55e0f08) 0 + primary-for QGraphicsRotation (0x0x7f25c55e0ea0) + QObject (0x0x7f25c52a9960) 0 + primary-for QGraphicsTransform (0x0x7f25c55e0f08) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7f25c52a9c00) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QScrollArea::scrollContentsBy +464 (int (*)(...))QScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QScrollArea) +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +496 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=40 align=8 + base size=40 base align=8 +QScrollArea (0x0x7f25c55e0f70) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16) + QAbstractScrollArea (0x0x7f25c55e0618) 0 + primary-for QScrollArea (0x0x7f25c55e0f70) + QFrame (0x0x7f25c52f1000) 0 + primary-for QAbstractScrollArea (0x0x7f25c55e0618) + QWidget (0x0x7f25c5581620) 0 + primary-for QFrame (0x0x7f25c52f1000) + QObject (0x0x7f25c52a9b40) 0 + primary-for QWidget (0x0x7f25c5581620) + QPaintDevice (0x0x7f25c52a9ba0) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 488) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7f25c52a9e40) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QGraphicsView::setupViewport +448 (int (*)(...))QGraphicsView::viewportEvent +456 (int (*)(...))QGraphicsView::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QGraphicsView::drawBackground +480 (int (*)(...))QGraphicsView::drawForeground +488 (int (*)(...))QGraphicsView::drawItems +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QGraphicsView) +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +520 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=40 align=8 + base size=40 base align=8 +QGraphicsView (0x0x7f25c52f1068) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16) + QAbstractScrollArea (0x0x7f25c52f10d0) 0 + primary-for QGraphicsView (0x0x7f25c52f1068) + QFrame (0x0x7f25c52f1138) 0 + primary-for QAbstractScrollArea (0x0x7f25c52f10d0) + QWidget (0x0x7f25c5581690) 0 + primary-for QFrame (0x0x7f25c52f1138) + QObject (0x0x7f25c52a9d80) 0 + primary-for QWidget (0x0x7f25c5581690) + QPaintDevice (0x0x7f25c52a9de0) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 512) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7f25c533eea0) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QGroupBox::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QGroupBox) +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +464 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=40 align=8 + base size=40 base align=8 +QGroupBox (0x0x7f25c52f1410) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16) + QWidget (0x0x7f25c5581e00) 0 + primary-for QGroupBox (0x0x7f25c52f1410) + QObject (0x0x7f25c533ede0) 0 + primary-for QWidget (0x0x7f25c5581e00) + QPaintDevice (0x0x7f25c533ee40) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 456) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7f25c53ed120) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QHeaderView::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QHeaderView::viewportEvent +456 (int (*)(...))QHeaderView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QHeaderView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QHeaderView::visualRect +504 (int (*)(...))QHeaderView::scrollTo +512 (int (*)(...))QHeaderView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QHeaderView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QHeaderView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QHeaderView::dataChanged +584 (int (*)(...))QHeaderView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QHeaderView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QHeaderView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QHeaderView::moveCursor +704 (int (*)(...))QHeaderView::horizontalOffset +712 (int (*)(...))QHeaderView::verticalOffset +720 (int (*)(...))QHeaderView::isIndexHidden +728 (int (*)(...))QHeaderView::setSelection +736 (int (*)(...))QHeaderView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QHeaderView::paintSection +792 (int (*)(...))QHeaderView::sectionSizeFromContents +800 (int (*)(...))QHeaderView::initStyleOptionForIndex +808 (int (*)(...))QHeaderView::initStyleOption +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QHeaderView) +832 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +840 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=40 align=8 + base size=40 base align=8 +QHeaderView (0x0x7f25c52f1478) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16) + QAbstractItemView (0x0x7f25c52f14e0) 0 + primary-for QHeaderView (0x0x7f25c52f1478) + QAbstractScrollArea (0x0x7f25c52f1548) 0 + primary-for QAbstractItemView (0x0x7f25c52f14e0) + QFrame (0x0x7f25c52f15b0) 0 + primary-for QAbstractScrollArea (0x0x7f25c52f1548) + QWidget (0x0x7f25c5581e70) 0 + primary-for QFrame (0x0x7f25c52f15b0) + QObject (0x0x7f25c53ed060) 0 + primary-for QWidget (0x0x7f25c5581e70) + QPaintDevice (0x0x7f25c53ed0c0) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 832) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7f25c53ed5a0) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QLineEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QLineEdit::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QLineEdit::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QLineEdit) +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +464 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=40 align=8 + base size=40 base align=8 +QLineEdit (0x0x7f25c52f1618) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16) + QWidget (0x0x7f25c53f2150) 0 + primary-for QLineEdit (0x0x7f25c52f1618) + QObject (0x0x7f25c53ed4e0) 0 + primary-for QWidget (0x0x7f25c53f2150) + QPaintDevice (0x0x7f25c53ed540) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 456) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7f25c53ed960) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=40 align=8 + base size=40 base align=8 +QInputDialog (0x0x7f25c52f1680) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16) + QDialog (0x0x7f25c52f16e8) 0 + primary-for QInputDialog (0x0x7f25c52f1680) + QWidget (0x0x7f25c53f2460) 0 + primary-for QDialog (0x0x7f25c52f16e8) + QObject (0x0x7f25c53ed8a0) 0 + primary-for QWidget (0x0x7f25c53f2460) + QPaintDevice (0x0x7f25c53ed900) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7f25c53edf00) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7f25c52f1888) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f25c52f18f0) 0 + primary-for QItemDelegate (0x0x7f25c52f1888) + QObject (0x0x7f25c53edea0) 0 + primary-for QAbstractItemDelegate (0x0x7f25c52f18f0) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7f25c50c60c0) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7f25c50c6420) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7f25c50c6900) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=40 align=8 + base size=40 base align=8 +QKeySequenceEdit (0x0x7f25c52f1a28) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16) + QWidget (0x0x7f25c53f2770) 0 + primary-for QKeySequenceEdit (0x0x7f25c52f1a28) + QObject (0x0x7f25c50c6840) 0 + primary-for QWidget (0x0x7f25c53f2770) + QPaintDevice (0x0x7f25c50c68a0) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7f25c50c6b40) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QLabel) +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +464 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=40 align=8 + base size=40 base align=8 +QLabel (0x0x7f25c52f1a90) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16) + QFrame (0x0x7f25c52f1af8) 0 + primary-for QLabel (0x0x7f25c52f1a90) + QWidget (0x0x7f25c53f27e0) 0 + primary-for QFrame (0x0x7f25c52f1af8) + QObject (0x0x7f25c50c6a80) 0 + primary-for QWidget (0x0x7f25c53f27e0) + QPaintDevice (0x0x7f25c50c6ae0) 16 + vptr=((& QLabel::_ZTV6QLabel) + 456) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7f25c50c6e40) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QLCDNumber) +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +464 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=40 align=8 + base size=40 base align=8 +QLCDNumber (0x0x7f25c52f1b60) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16) + QFrame (0x0x7f25c52f1bc8) 0 + primary-for QLCDNumber (0x0x7f25c52f1b60) + QWidget (0x0x7f25c53f2850) 0 + primary-for QFrame (0x0x7f25c52f1bc8) + QObject (0x0x7f25c50c6d80) 0 + primary-for QWidget (0x0x7f25c53f2850) + QPaintDevice (0x0x7f25c50c6de0) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 456) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7f25c5139240) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QListView) +800 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +808 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=40 align=8 + base size=40 base align=8 +QListView (0x0x7f25c52f1c30) 0 + vptr=((& QListView::_ZTV9QListView) + 16) + QAbstractItemView (0x0x7f25c52f1c98) 0 + primary-for QListView (0x0x7f25c52f1c30) + QAbstractScrollArea (0x0x7f25c52f1d00) 0 + primary-for QAbstractItemView (0x0x7f25c52f1c98) + QFrame (0x0x7f25c52f1d68) 0 + primary-for QAbstractScrollArea (0x0x7f25c52f1d00) + QWidget (0x0x7f25c53f2bd0) 0 + primary-for QFrame (0x0x7f25c52f1d68) + QObject (0x0x7f25c5139180) 0 + primary-for QWidget (0x0x7f25c53f2bd0) + QPaintDevice (0x0x7f25c51391e0) 16 + vptr=((& QListView::_ZTV9QListView) + 800) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::data +48 (int (*)(...))QListWidgetItem::setData +56 (int (*)(...))QListWidgetItem::operator< +64 (int (*)(...))QListWidgetItem::read +72 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=40 align=8 + base size=36 base align=8 +QListWidgetItem (0x0x7f25c5139780) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7f25c519b240) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QListWidget::setModel +480 (int (*)(...))QListWidget::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))QListWidget::mimeTypes +792 (int (*)(...))QListWidget::mimeData +800 (int (*)(...))QListWidget::dropMimeData +808 (int (*)(...))QListWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QListWidget) +832 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +840 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=40 align=8 + base size=40 base align=8 +QListWidget (0x0x7f25c52f1dd0) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16) + QListView (0x0x7f25c52f1e38) 0 + primary-for QListWidget (0x0x7f25c52f1dd0) + QAbstractItemView (0x0x7f25c52f1ea0) 0 + primary-for QListView (0x0x7f25c52f1e38) + QAbstractScrollArea (0x0x7f25c52f1f08) 0 + primary-for QAbstractItemView (0x0x7f25c52f1ea0) + QFrame (0x0x7f25c52f1f70) 0 + primary-for QAbstractScrollArea (0x0x7f25c52f1f08) + QWidget (0x0x7f25c5145230) 0 + primary-for QFrame (0x0x7f25c52f1f70) + QObject (0x0x7f25c519b180) 0 + primary-for QWidget (0x0x7f25c5145230) + QPaintDevice (0x0x7f25c519b1e0) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 832) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7f25c519b720) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=40 align=8 + base size=40 base align=8 +QMainWindow (0x0x7f25c51c5000) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16) + QWidget (0x0x7f25c51452a0) 0 + primary-for QMainWindow (0x0x7f25c51c5000) + QObject (0x0x7f25c519b660) 0 + primary-for QWidget (0x0x7f25c51452a0) + QPaintDevice (0x0x7f25c519b6c0) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7f25c519bea0) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QMdiArea::setupViewport +448 (int (*)(...))QMdiArea::viewportEvent +456 (int (*)(...))QMdiArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI8QMdiArea) +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +496 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=40 align=8 + base size=40 base align=8 +QMdiArea (0x0x7f25c51c51a0) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16) + QAbstractScrollArea (0x0x7f25c51c5208) 0 + primary-for QMdiArea (0x0x7f25c51c51a0) + QFrame (0x0x7f25c51c5270) 0 + primary-for QAbstractScrollArea (0x0x7f25c51c5208) + QWidget (0x0x7f25c51455b0) 0 + primary-for QFrame (0x0x7f25c51c5270) + QObject (0x0x7f25c519bde0) 0 + primary-for QWidget (0x0x7f25c51455b0) + QPaintDevice (0x0x7f25c519be40) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 488) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7f25c4e4d660) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=40 align=8 + base size=40 base align=8 +QMdiSubWindow (0x0x7f25c51c5410) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16) + QWidget (0x0x7f25c5145930) 0 + primary-for QMdiSubWindow (0x0x7f25c51c5410) + QObject (0x0x7f25c4e4d5a0) 0 + primary-for QWidget (0x0x7f25c5145930) + QPaintDevice (0x0x7f25c4e4d600) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7f25c4e4dc60) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))QMenu::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QMenu) +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +464 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=40 align=8 + base size=40 base align=8 +QMenu (0x0x7f25c51c55b0) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16) + QWidget (0x0x7f25c5145b60) 0 + primary-for QMenu (0x0x7f25c51c55b0) + QObject (0x0x7f25c4e4dba0) 0 + primary-for QWidget (0x0x7f25c5145b60) + QPaintDevice (0x0x7f25c4e4dc00) 16 + vptr=((& QMenu::_ZTV5QMenu) + 456) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7f25c4f23060) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMenuBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QMenuBar) +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +464 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=40 align=8 + base size=40 base align=8 +QMenuBar (0x0x7f25c51c5618) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16) + QWidget (0x0x7f25c5145bd0) 0 + primary-for QMenuBar (0x0x7f25c51c5618) + QObject (0x0x7f25c4e4df60) 0 + primary-for QWidget (0x0x7f25c5145bd0) + QPaintDevice (0x0x7f25c4f23000) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 456) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7f25c4f23360) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=40 align=8 + base size=40 base align=8 +QMessageBox (0x0x7f25c51c5680) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16) + QDialog (0x0x7f25c51c56e8) 0 + primary-for QMessageBox (0x0x7f25c51c5680) + QWidget (0x0x7f25c5145c40) 0 + primary-for QDialog (0x0x7f25c51c56e8) + QObject (0x0x7f25c4f232a0) 0 + primary-for QWidget (0x0x7f25c5145c40) + QPaintDevice (0x0x7f25c4f23300) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7f25c4f23c60) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7f25c4f23cc0) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextEdit::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI9QTextEdit) +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +536 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=40 align=8 + base size=40 base align=8 +QTextEdit (0x0x7f25c51c5888) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16) + QAbstractScrollArea (0x0x7f25c51c58f0) 0 + primary-for QTextEdit (0x0x7f25c51c5888) + QFrame (0x0x7f25c51c5958) 0 + primary-for QAbstractScrollArea (0x0x7f25c51c58f0) + QWidget (0x0x7f25c4fc3000) 0 + primary-for QFrame (0x0x7f25c51c5958) + QObject (0x0x7f25c4f23ba0) 0 + primary-for QWidget (0x0x7f25c4fc3000) + QPaintDevice (0x0x7f25c4f23c00) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 528) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7f25c4ffb600) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QPlainTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QPlainTextEdit::loadResource +480 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +488 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +496 (int (*)(...))QPlainTextEdit::insertFromMimeData +504 (int (*)(...))QPlainTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI14QPlainTextEdit) +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +536 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=40 align=8 + base size=40 base align=8 +QPlainTextEdit (0x0x7f25c51c5af8) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16) + QAbstractScrollArea (0x0x7f25c51c5b60) 0 + primary-for QPlainTextEdit (0x0x7f25c51c5af8) + QFrame (0x0x7f25c51c5bc8) 0 + primary-for QAbstractScrollArea (0x0x7f25c51c5b60) + QWidget (0x0x7f25c4fc3380) 0 + primary-for QFrame (0x0x7f25c51c5bc8) + QObject (0x0x7f25c4ffb540) 0 + primary-for QWidget (0x0x7f25c4fc3380) + QPaintDevice (0x0x7f25c4ffb5a0) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 528) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7f25c4ffbb40) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7f25c51c5c30) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16) + QAbstractTextDocumentLayout (0x0x7f25c51c5c98) 0 + primary-for QPlainTextDocumentLayout (0x0x7f25c51c5c30) + QObject (0x0x7f25c4ffbae0) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f25c51c5c98) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7f25c4ffbd80) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))QProgressBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI12QProgressBar) +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +472 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=40 align=8 + base size=40 base align=8 +QProgressBar (0x0x7f25c51c5d00) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16) + QWidget (0x0x7f25c4fc34d0) 0 + primary-for QProgressBar (0x0x7f25c51c5d00) + QObject (0x0x7f25c4ffbcc0) 0 + primary-for QWidget (0x0x7f25c4fc34d0) + QPaintDevice (0x0x7f25c4ffbd20) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 464) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7f25c4c9a0c0) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=40 align=8 + base size=40 base align=8 +QProgressDialog (0x0x7f25c51c5d68) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16) + QDialog (0x0x7f25c51c5dd0) 0 + primary-for QProgressDialog (0x0x7f25c51c5d68) + QWidget (0x0x7f25c4fc3620) 0 + primary-for QDialog (0x0x7f25c51c5dd0) + QObject (0x0x7f25c4c9a000) 0 + primary-for QWidget (0x0x7f25c4fc3620) + QPaintDevice (0x0x7f25c4c9a060) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7f25c4c9a2a0) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7f25c51c5e38) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16) + QCommonStyle (0x0x7f25c51c5ea0) 0 + primary-for QProxyStyle (0x0x7f25c51c5e38) + QStyle (0x0x7f25c51c5f08) 0 + primary-for QCommonStyle (0x0x7f25c51c5ea0) + QObject (0x0x7f25c4c9a240) 0 + primary-for QStyle (0x0x7f25c51c5f08) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7f25c4c9a4e0) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QRadioButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI12QRadioButton) +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +488 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=40 align=8 + base size=40 base align=8 +QRadioButton (0x0x7f25c51c5f70) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16) + QAbstractButton (0x0x7f25c4cc7000) 0 + primary-for QRadioButton (0x0x7f25c51c5f70) + QWidget (0x0x7f25c4fc3690) 0 + primary-for QAbstractButton (0x0x7f25c4cc7000) + QObject (0x0x7f25c4c9a420) 0 + primary-for QWidget (0x0x7f25c4fc3690) + QPaintDevice (0x0x7f25c4c9a480) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 480) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7f25c4c9a720) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))QScrollBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QScrollBar) +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +472 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=40 align=8 + base size=40 base align=8 +QScrollBar (0x0x7f25c4cc7068) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16) + QAbstractSlider (0x0x7f25c4cc70d0) 0 + primary-for QScrollBar (0x0x7f25c4cc7068) + QWidget (0x0x7f25c4fc3700) 0 + primary-for QAbstractSlider (0x0x7f25c4cc70d0) + QObject (0x0x7f25c4c9a660) 0 + primary-for QWidget (0x0x7f25c4fc3700) + QPaintDevice (0x0x7f25c4c9a6c0) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 464) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7f25c4c9a8a0) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7f25c4d8ac60) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7f25c4daf000) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16) + QObject (0x0x7f25c4d8ac00) 0 + primary-for QScroller (0x0x7f25c4daf000) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7f25c4d8af60) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=40 align=8 + base size=40 base align=8 +QSizeGrip (0x0x7f25c4daf068) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16) + QWidget (0x0x7f25c4db5150) 0 + primary-for QSizeGrip (0x0x7f25c4daf068) + QObject (0x0x7f25c4d8aea0) 0 + primary-for QWidget (0x0x7f25c4db5150) + QPaintDevice (0x0x7f25c4d8af00) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7f25c4dd71e0) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QSpinBox::valueFromText +488 (int (*)(...))QSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI8QSpinBox) +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +520 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=40 align=8 + base size=40 base align=8 +QSpinBox (0x0x7f25c4daf0d0) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16) + QAbstractSpinBox (0x0x7f25c4daf138) 0 + primary-for QSpinBox (0x0x7f25c4daf0d0) + QWidget (0x0x7f25c4db51c0) 0 + primary-for QAbstractSpinBox (0x0x7f25c4daf138) + QObject (0x0x7f25c4dd7120) 0 + primary-for QWidget (0x0x7f25c4db51c0) + QPaintDevice (0x0x7f25c4dd7180) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 512) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7f25c4dd7420) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QDoubleSpinBox::valueFromText +488 (int (*)(...))QDoubleSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI14QDoubleSpinBox) +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +520 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=40 align=8 + base size=40 base align=8 +QDoubleSpinBox (0x0x7f25c4daf1a0) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16) + QAbstractSpinBox (0x0x7f25c4daf208) 0 + primary-for QDoubleSpinBox (0x0x7f25c4daf1a0) + QWidget (0x0x7f25c4db5230) 0 + primary-for QAbstractSpinBox (0x0x7f25c4daf208) + QObject (0x0x7f25c4dd7360) 0 + primary-for QWidget (0x0x7f25c4db5230) + QPaintDevice (0x0x7f25c4dd73c0) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 512) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7f25c4dd7660) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=40 align=8 + base size=40 base align=8 +QSplashScreen (0x0x7f25c4daf270) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16) + QWidget (0x0x7f25c4db52a0) 0 + primary-for QSplashScreen (0x0x7f25c4daf270) + QObject (0x0x7f25c4dd75a0) 0 + primary-for QWidget (0x0x7f25c4db52a0) + QPaintDevice (0x0x7f25c4dd7600) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7f25c4dd78a0) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QSplitter::createHandle +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QSplitter) +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +472 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=40 align=8 + base size=40 base align=8 +QSplitter (0x0x7f25c4daf2d8) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16) + QFrame (0x0x7f25c4daf340) 0 + primary-for QSplitter (0x0x7f25c4daf2d8) + QWidget (0x0x7f25c4db5310) 0 + primary-for QFrame (0x0x7f25c4daf340) + QObject (0x0x7f25c4dd77e0) 0 + primary-for QWidget (0x0x7f25c4db5310) + QPaintDevice (0x0x7f25c4dd7840) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 464) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7f25c4dd7ae0) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=40 align=8 + base size=40 base align=8 +QSplitterHandle (0x0x7f25c4daf3a8) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16) + QWidget (0x0x7f25c4db5380) 0 + primary-for QSplitterHandle (0x0x7f25c4daf3a8) + QObject (0x0x7f25c4dd7a20) 0 + primary-for QWidget (0x0x7f25c4db5380) + QPaintDevice (0x0x7f25c4dd7a80) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7f25c4dd7d20) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QStackedLayout::addItem +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QStackedLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QStackedLayout::setGeometry +184 (int (*)(...))QStackedLayout::itemAt +192 (int (*)(...))QStackedLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QStackedLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QStackedLayout::sizeHint +264 (int (*)(...))QStackedLayout::hasHeightForWidth +272 (int (*)(...))QStackedLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI14QStackedLayout) +296 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +304 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +312 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +320 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +344 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +376 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7f25c4daf410) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16) + QLayout (0x0x7f25c4db53f0) 0 + primary-for QStackedLayout (0x0x7f25c4daf410) + QObject (0x0x7f25c4dd7c60) 0 + primary-for QLayout (0x0x7f25c4db53f0) + QLayoutItem (0x0x7f25c4dd7cc0) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 296) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7f25c4a4f060) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI14QStackedWidget) +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +464 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=40 align=8 + base size=40 base align=8 +QStackedWidget (0x0x7f25c4daf478) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16) + QFrame (0x0x7f25c4daf4e0) 0 + primary-for QStackedWidget (0x0x7f25c4daf478) + QWidget (0x0x7f25c4db5540) 0 + primary-for QFrame (0x0x7f25c4daf4e0) + QObject (0x0x7f25c4dd7f60) 0 + primary-for QWidget (0x0x7f25c4db5540) + QPaintDevice (0x0x7f25c4a4f000) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 456) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7f25c4a4f2a0) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=40 align=8 + base size=40 base align=8 +QStatusBar (0x0x7f25c4daf548) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16) + QWidget (0x0x7f25c4db55b0) 0 + primary-for QStatusBar (0x0x7f25c4daf548) + QObject (0x0x7f25c4a4f1e0) 0 + primary-for QWidget (0x0x7f25c4db55b0) + QPaintDevice (0x0x7f25c4a4f240) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7f25c4a4f480) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7f25c4daf5b0) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f25c4daf618) 0 + primary-for QStyledItemDelegate (0x0x7f25c4daf5b0) + QObject (0x0x7f25c4a4f420) 0 + primary-for QAbstractItemDelegate (0x0x7f25c4daf618) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7f25c4a4f600) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7f25c4daf680) 0 + QPainter (0x0x7f25c4a4f660) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7f25c4a4fea0) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7f25c4daf6e8) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16) + QObject (0x0x7f25c4a4fe40) 0 + primary-for QStylePlugin (0x0x7f25c4daf6e8) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7f25c4aa0000) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7f25c4daf750) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16) + QObject (0x0x7f25c4a4ff60) 0 + primary-for QSystemTrayIcon (0x0x7f25c4daf750) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7f25c4aa0300) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableView::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI10QTableView) +800 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +808 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=40 align=8 + base size=40 base align=8 +QTableView (0x0x7f25c4daf7b8) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16) + QAbstractItemView (0x0x7f25c4daf820) 0 + primary-for QTableView (0x0x7f25c4daf7b8) + QAbstractScrollArea (0x0x7f25c4daf888) 0 + primary-for QAbstractItemView (0x0x7f25c4daf820) + QFrame (0x0x7f25c4daf8f0) 0 + primary-for QAbstractScrollArea (0x0x7f25c4daf888) + QWidget (0x0x7f25c4db5af0) 0 + primary-for QFrame (0x0x7f25c4daf8f0) + QObject (0x0x7f25c4aa0240) 0 + primary-for QWidget (0x0x7f25c4db5af0) + QPaintDevice (0x0x7f25c4aa02a0) 16 + vptr=((& QTableView::_ZTV10QTableView) + 800) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7f25c4aa0480) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=64 align=8 + base size=60 base align=8 +QTableWidgetItem (0x0x7f25c4aa08a0) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7f25c4b07c00) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableWidget::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))QTableWidget::mimeTypes +792 (int (*)(...))QTableWidget::mimeData +800 (int (*)(...))QTableWidget::dropMimeData +808 (int (*)(...))QTableWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI12QTableWidget) +832 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +840 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=40 align=8 + base size=40 base align=8 +QTableWidget (0x0x7f25c4af6208) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16) + QTableView (0x0x7f25c4af6270) 0 + primary-for QTableWidget (0x0x7f25c4af6208) + QAbstractItemView (0x0x7f25c4af62d8) 0 + primary-for QTableView (0x0x7f25c4af6270) + QAbstractScrollArea (0x0x7f25c4af6340) 0 + primary-for QAbstractItemView (0x0x7f25c4af62d8) + QFrame (0x0x7f25c4af63a8) 0 + primary-for QAbstractScrollArea (0x0x7f25c4af6340) + QWidget (0x0x7f25c4db5d20) 0 + primary-for QFrame (0x0x7f25c4af63a8) + QObject (0x0x7f25c4b07b40) 0 + primary-for QWidget (0x0x7f25c4db5d20) + QPaintDevice (0x0x7f25c4b07ba0) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 832) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7f25c4b07120) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 79 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextBrowser::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))QTextBrowser::doSetSource +552 (int (*)(...))-16 +560 (int (*)(...))(& _ZTI12QTextBrowser) +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +576 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +624 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=40 align=8 + base size=40 base align=8 +QTextBrowser (0x0x7f25c4af6410) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16) + QTextEdit (0x0x7f25c4af6478) 0 + primary-for QTextBrowser (0x0x7f25c4af6410) + QAbstractScrollArea (0x0x7f25c4af64e0) 0 + primary-for QTextEdit (0x0x7f25c4af6478) + QFrame (0x0x7f25c4af6548) 0 + primary-for QAbstractScrollArea (0x0x7f25c4af64e0) + QWidget (0x0x7f25c4db5d90) 0 + primary-for QFrame (0x0x7f25c4af6548) + QObject (0x0x7f25c4b07f00) 0 + primary-for QWidget (0x0x7f25c4db5d90) + QPaintDevice (0x0x7f25c4b07f60) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 568) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7f25c4bab1e0) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QToolBar) +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +464 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=40 align=8 + base size=40 base align=8 +QToolBar (0x0x7f25c4af65b0) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16) + QWidget (0x0x7f25c4db5e00) 0 + primary-for QToolBar (0x0x7f25c4af65b0) + QObject (0x0x7f25c4bab120) 0 + primary-for QWidget (0x0x7f25c4db5e00) + QPaintDevice (0x0x7f25c4bab180) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 456) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7f25c4bab660) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QToolBox::itemInserted +448 (int (*)(...))QToolBox::itemRemoved +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI8QToolBox) +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +480 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=40 align=8 + base size=40 base align=8 +QToolBox (0x0x7f25c4af6618) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16) + QFrame (0x0x7f25c4af6680) 0 + primary-for QToolBox (0x0x7f25c4af6618) + QWidget (0x0x7f25c4db5e70) 0 + primary-for QFrame (0x0x7f25c4af6680) + QObject (0x0x7f25c4bab5a0) 0 + primary-for QWidget (0x0x7f25c4db5e70) + QPaintDevice (0x0x7f25c4bab600) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 472) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7f25c4bab9c0) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QToolButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))QToolButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QToolButton) +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +488 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=40 align=8 + base size=40 base align=8 +QToolButton (0x0x7f25c4af66e8) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16) + QAbstractButton (0x0x7f25c4af6750) 0 + primary-for QToolButton (0x0x7f25c4af66e8) + QWidget (0x0x7f25c4db5ee0) 0 + primary-for QAbstractButton (0x0x7f25c4af6750) + QObject (0x0x7f25c4bab900) 0 + primary-for QWidget (0x0x7f25c4db5ee0) + QPaintDevice (0x0x7f25c4bab960) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 480) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7f25c4babc00) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7f25c4babd80) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeView::setModel +480 (int (*)(...))QTreeView::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI9QTreeView) +816 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +824 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=40 align=8 + base size=40 base align=8 +QTreeView (0x0x7f25c4af67b8) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16) + QAbstractItemView (0x0x7f25c4af6820) 0 + primary-for QTreeView (0x0x7f25c4af67b8) + QAbstractScrollArea (0x0x7f25c4af6888) 0 + primary-for QAbstractItemView (0x0x7f25c4af6820) + QFrame (0x0x7f25c4af68f0) 0 + primary-for QAbstractScrollArea (0x0x7f25c4af6888) + QWidget (0x0x7f25c4bef0e0) 0 + primary-for QFrame (0x0x7f25c4af68f0) + QObject (0x0x7f25c4babcc0) 0 + primary-for QWidget (0x0x7f25c4bef0e0) + QPaintDevice (0x0x7f25c4babd20) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 816) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7f25c4babf00) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=96 align=8 + base size=92 base align=8 +QTreeWidgetItem (0x0x7f25c48416c0) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7f25c499a4e0) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 114 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeWidget::setModel +480 (int (*)(...))QTreeWidget::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))QTreeWidget::mimeTypes +808 (int (*)(...))QTreeWidget::mimeData +816 (int (*)(...))QTreeWidget::dropMimeData +824 (int (*)(...))QTreeWidget::supportedDropActions +832 (int (*)(...))-16 +840 (int (*)(...))(& _ZTI11QTreeWidget) +848 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +856 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +896 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +904 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=40 align=8 + base size=40 base align=8 +QTreeWidget (0x0x7f25c48c2c30) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16) + QTreeView (0x0x7f25c48c2c98) 0 + primary-for QTreeWidget (0x0x7f25c48c2c30) + QAbstractItemView (0x0x7f25c48c2d00) 0 + primary-for QTreeView (0x0x7f25c48c2c98) + QAbstractScrollArea (0x0x7f25c48c2d68) 0 + primary-for QAbstractItemView (0x0x7f25c48c2d00) + QFrame (0x0x7f25c48c2dd0) 0 + primary-for QAbstractScrollArea (0x0x7f25c48c2d68) + QWidget (0x0x7f25c4befe70) 0 + primary-for QFrame (0x0x7f25c48c2dd0) + QObject (0x0x7f25c499a420) 0 + primary-for QWidget (0x0x7f25c4befe70) + QPaintDevice (0x0x7f25c499a480) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 848) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7f25c499a900) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QUndoView) +800 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +808 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=40 align=8 + base size=40 base align=8 +QUndoView (0x0x7f25c48c2e38) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16) + QListView (0x0x7f25c48c2ea0) 0 + primary-for QUndoView (0x0x7f25c48c2e38) + QAbstractItemView (0x0x7f25c48c2f08) 0 + primary-for QListView (0x0x7f25c48c2ea0) + QAbstractScrollArea (0x0x7f25c48c2f70) 0 + primary-for QAbstractItemView (0x0x7f25c48c2f08) + QFrame (0x0x7f25c48c2340) 0 + primary-for QAbstractScrollArea (0x0x7f25c48c2f70) + QWidget (0x0x7f25c4befee0) 0 + primary-for QFrame (0x0x7f25c48c2340) + QObject (0x0x7f25c499a840) 0 + primary-for QWidget (0x0x7f25c4befee0) + QPaintDevice (0x0x7f25c499a8a0) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 800) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7f25c499aa80) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7f25c499ab40) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7f25c48c2bc8) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16) + QAction (0x0x7f25c49fe000) 0 + primary-for QWidgetAction (0x0x7f25c48c2bc8) + QObject (0x0x7f25c499aae0) 0 + primary-for QAction (0x0x7f25c49fe000) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7f25c499ad80) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=40 align=8 + base size=40 base align=8 +QWizard (0x0x7f25c49fe068) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16) + QDialog (0x0x7f25c49fe0d0) 0 + primary-for QWizard (0x0x7f25c49fe068) + QWidget (0x0x7f25c4beff50) 0 + primary-for QDialog (0x0x7f25c49fe0d0) + QObject (0x0x7f25c499acc0) 0 + primary-for QWidget (0x0x7f25c4beff50) + QPaintDevice (0x0x7f25c499ad20) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7f25c462e600) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=40 align=8 + base size=40 base align=8 +QWizardPage (0x0x7f25c49fe270) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16) + QWidget (0x0x7f25c4a11150) 0 + primary-for QWizardPage (0x0x7f25c49fe270) + QObject (0x0x7f25c462e540) 0 + primary-for QWidget (0x0x7f25c4a11150) + QPaintDevice (0x0x7f25c462e5a0) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488) + +Class QHelpGlobal + size=1 align=1 + base size=0 base align=1 +QHelpGlobal (0x0x7f25c462e780) 0 empty + +Class QCompressedHelpInfo + size=8 align=8 + base size=8 base align=8 +QCompressedHelpInfo (0x0x7f25c462e7e0) 0 + +Class QHelpContentItem + size=8 align=8 + base size=8 base align=8 +QHelpContentItem (0x0x7f25c462e900) 0 + +Class QHelpContentModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpContentModel::QPrivateSignal (0x0x7f25c462e9c0) 0 empty + +Vtable for QHelpContentModel +QHelpContentModel::_ZTV17QHelpContentModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QHelpContentModel) +16 (int (*)(...))QHelpContentModel::metaObject +24 (int (*)(...))QHelpContentModel::qt_metacast +32 (int (*)(...))QHelpContentModel::qt_metacall +40 (int (*)(...))QHelpContentModel::~QHelpContentModel +48 (int (*)(...))QHelpContentModel::~QHelpContentModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHelpContentModel::index +120 (int (*)(...))QHelpContentModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QHelpContentModel::rowCount +144 (int (*)(...))QHelpContentModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QHelpContentModel::data +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractItemModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractItemModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QHelpContentModel + size=24 align=8 + base size=24 base align=8 +QHelpContentModel (0x0x7f25c49fe2d8) 0 + vptr=((& QHelpContentModel::_ZTV17QHelpContentModel) + 16) + QAbstractItemModel (0x0x7f25c49fe340) 0 + primary-for QHelpContentModel (0x0x7f25c49fe2d8) + QObject (0x0x7f25c462e960) 0 + primary-for QAbstractItemModel (0x0x7f25c49fe340) + +Class QHelpContentWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpContentWidget::QPrivateSignal (0x0x7f25c462eb40) 0 empty + +Vtable for QHelpContentWidget +QHelpContentWidget::_ZTV18QHelpContentWidget: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QHelpContentWidget) +16 (int (*)(...))QHelpContentWidget::metaObject +24 (int (*)(...))QHelpContentWidget::qt_metacast +32 (int (*)(...))QHelpContentWidget::qt_metacall +40 (int (*)(...))QHelpContentWidget::~QHelpContentWidget +48 (int (*)(...))QHelpContentWidget::~QHelpContentWidget +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeView::setModel +480 (int (*)(...))QTreeView::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI18QHelpContentWidget) +816 (int (*)(...))QHelpContentWidget::_ZThn16_N18QHelpContentWidgetD1Ev +824 (int (*)(...))QHelpContentWidget::_ZThn16_N18QHelpContentWidgetD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpContentWidget + size=64 align=8 + base size=64 base align=8 +QHelpContentWidget (0x0x7f25c49fe3a8) 0 + vptr=((& QHelpContentWidget::_ZTV18QHelpContentWidget) + 16) + QTreeView (0x0x7f25c49fe410) 0 + primary-for QHelpContentWidget (0x0x7f25c49fe3a8) + QAbstractItemView (0x0x7f25c49fe478) 0 + primary-for QTreeView (0x0x7f25c49fe410) + QAbstractScrollArea (0x0x7f25c49fe4e0) 0 + primary-for QAbstractItemView (0x0x7f25c49fe478) + QFrame (0x0x7f25c49fe548) 0 + primary-for QAbstractScrollArea (0x0x7f25c49fe4e0) + QWidget (0x0x7f25c4a111c0) 0 + primary-for QFrame (0x0x7f25c49fe548) + QObject (0x0x7f25c462ea80) 0 + primary-for QWidget (0x0x7f25c4a111c0) + QPaintDevice (0x0x7f25c462eae0) 16 + vptr=((& QHelpContentWidget::_ZTV18QHelpContentWidget) + 816) + +Class QHelpEngineCore::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpEngineCore::QPrivateSignal (0x0x7f25c462ec60) 0 empty + +Vtable for QHelpEngineCore +QHelpEngineCore::_ZTV15QHelpEngineCore: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QHelpEngineCore) +16 (int (*)(...))QHelpEngineCore::metaObject +24 (int (*)(...))QHelpEngineCore::qt_metacast +32 (int (*)(...))QHelpEngineCore::qt_metacall +40 (int (*)(...))QHelpEngineCore::~QHelpEngineCore +48 (int (*)(...))QHelpEngineCore::~QHelpEngineCore +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHelpEngineCore + size=24 align=8 + base size=24 base align=8 +QHelpEngineCore (0x0x7f25c49fe5b0) 0 + vptr=((& QHelpEngineCore::_ZTV15QHelpEngineCore) + 16) + QObject (0x0x7f25c462ec00) 0 + primary-for QHelpEngineCore (0x0x7f25c49fe5b0) + +Class QHelpEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpEngine::QPrivateSignal (0x0x7f25c462ed80) 0 empty + +Vtable for QHelpEngine +QHelpEngine::_ZTV11QHelpEngine: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHelpEngine) +16 (int (*)(...))QHelpEngine::metaObject +24 (int (*)(...))QHelpEngine::qt_metacast +32 (int (*)(...))QHelpEngine::qt_metacall +40 (int (*)(...))QHelpEngine::~QHelpEngine +48 (int (*)(...))QHelpEngine::~QHelpEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHelpEngine + size=32 align=8 + base size=32 base align=8 +QHelpEngine (0x0x7f25c49fe618) 0 + vptr=((& QHelpEngine::_ZTV11QHelpEngine) + 16) + QHelpEngineCore (0x0x7f25c49fe680) 0 + primary-for QHelpEngine (0x0x7f25c49fe618) + QObject (0x0x7f25c462ed20) 0 + primary-for QHelpEngineCore (0x0x7f25c49fe680) + +Class QHelpFilterData + size=8 align=8 + base size=8 base align=8 +QHelpFilterData (0x0x7f25c462ee40) 0 + +Class QHelpFilterEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpFilterEngine::QPrivateSignal (0x0x7f25c46fe000) 0 empty + +Vtable for QHelpFilterEngine +QHelpFilterEngine::_ZTV17QHelpFilterEngine: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QHelpFilterEngine) +16 (int (*)(...))QHelpFilterEngine::metaObject +24 (int (*)(...))QHelpFilterEngine::qt_metacast +32 (int (*)(...))QHelpFilterEngine::qt_metacall +40 (int (*)(...))QHelpFilterEngine::~QHelpFilterEngine +48 (int (*)(...))QHelpFilterEngine::~QHelpFilterEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHelpFilterEngine + size=24 align=8 + base size=24 base align=8 +QHelpFilterEngine (0x0x7f25c49fe6e8) 0 + vptr=((& QHelpFilterEngine::_ZTV17QHelpFilterEngine) + 16) + QObject (0x0x7f25c462ef60) 0 + primary-for QHelpFilterEngine (0x0x7f25c49fe6e8) + +Class QHelpFilterSettingsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpFilterSettingsWidget::QPrivateSignal (0x0x7f25c46fe180) 0 empty + +Vtable for QHelpFilterSettingsWidget +QHelpFilterSettingsWidget::_ZTV25QHelpFilterSettingsWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QHelpFilterSettingsWidget) +16 (int (*)(...))QHelpFilterSettingsWidget::metaObject +24 (int (*)(...))QHelpFilterSettingsWidget::qt_metacast +32 (int (*)(...))QHelpFilterSettingsWidget::qt_metacall +40 (int (*)(...))QHelpFilterSettingsWidget::~QHelpFilterSettingsWidget +48 (int (*)(...))QHelpFilterSettingsWidget::~QHelpFilterSettingsWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI25QHelpFilterSettingsWidget) +448 (int (*)(...))QHelpFilterSettingsWidget::_ZThn16_N25QHelpFilterSettingsWidgetD1Ev +456 (int (*)(...))QHelpFilterSettingsWidget::_ZThn16_N25QHelpFilterSettingsWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpFilterSettingsWidget + size=48 align=8 + base size=48 base align=8 +QHelpFilterSettingsWidget (0x0x7f25c49fe750) 0 + vptr=((& QHelpFilterSettingsWidget::_ZTV25QHelpFilterSettingsWidget) + 16) + QWidget (0x0x7f25c4a11230) 0 + primary-for QHelpFilterSettingsWidget (0x0x7f25c49fe750) + QObject (0x0x7f25c46fe0c0) 0 + primary-for QWidget (0x0x7f25c4a11230) + QPaintDevice (0x0x7f25c46fe120) 16 + vptr=((& QHelpFilterSettingsWidget::_ZTV25QHelpFilterSettingsWidget) + 448) + +Class QHelpIndexModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpIndexModel::QPrivateSignal (0x0x7f25c46fe420) 0 empty + +Vtable for QHelpIndexModel +QHelpIndexModel::_ZTV15QHelpIndexModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QHelpIndexModel) +16 (int (*)(...))QHelpIndexModel::metaObject +24 (int (*)(...))QHelpIndexModel::qt_metacast +32 (int (*)(...))QHelpIndexModel::qt_metacall +40 (int (*)(...))QHelpIndexModel::~QHelpIndexModel +48 (int (*)(...))QHelpIndexModel::~QHelpIndexModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QStringListModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QStringListModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStringListModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QStringListModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QStringListModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStringListModel::flags +336 (int (*)(...))QStringListModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QHelpIndexModel + size=48 align=8 + base size=48 base align=8 +QHelpIndexModel (0x0x7f25c49fe7b8) 0 + vptr=((& QHelpIndexModel::_ZTV15QHelpIndexModel) + 16) + QStringListModel (0x0x7f25c49fe820) 0 + primary-for QHelpIndexModel (0x0x7f25c49fe7b8) + QAbstractListModel (0x0x7f25c49fe888) 0 + primary-for QStringListModel (0x0x7f25c49fe820) + QAbstractItemModel (0x0x7f25c49fe8f0) 0 + primary-for QAbstractListModel (0x0x7f25c49fe888) + QObject (0x0x7f25c46fe3c0) 0 + primary-for QAbstractItemModel (0x0x7f25c49fe8f0) + +Class QHelpIndexWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpIndexWidget::QPrivateSignal (0x0x7f25c46fe5a0) 0 empty + +Vtable for QHelpIndexWidget +QHelpIndexWidget::_ZTV16QHelpIndexWidget: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QHelpIndexWidget) +16 (int (*)(...))QHelpIndexWidget::metaObject +24 (int (*)(...))QHelpIndexWidget::qt_metacast +32 (int (*)(...))QHelpIndexWidget::qt_metacall +40 (int (*)(...))QHelpIndexWidget::~QHelpIndexWidget +48 (int (*)(...))QHelpIndexWidget::~QHelpIndexWidget +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI16QHelpIndexWidget) +800 (int (*)(...))QHelpIndexWidget::_ZThn16_N16QHelpIndexWidgetD1Ev +808 (int (*)(...))QHelpIndexWidget::_ZThn16_N16QHelpIndexWidgetD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpIndexWidget + size=40 align=8 + base size=40 base align=8 +QHelpIndexWidget (0x0x7f25c49fe958) 0 + vptr=((& QHelpIndexWidget::_ZTV16QHelpIndexWidget) + 16) + QListView (0x0x7f25c49fe9c0) 0 + primary-for QHelpIndexWidget (0x0x7f25c49fe958) + QAbstractItemView (0x0x7f25c49fea28) 0 + primary-for QListView (0x0x7f25c49fe9c0) + QAbstractScrollArea (0x0x7f25c49fea90) 0 + primary-for QAbstractItemView (0x0x7f25c49fea28) + QFrame (0x0x7f25c49feaf8) 0 + primary-for QAbstractScrollArea (0x0x7f25c49fea90) + QWidget (0x0x7f25c4a112a0) 0 + primary-for QFrame (0x0x7f25c49feaf8) + QObject (0x0x7f25c46fe4e0) 0 + primary-for QWidget (0x0x7f25c4a112a0) + QPaintDevice (0x0x7f25c46fe540) 16 + vptr=((& QHelpIndexWidget::_ZTV16QHelpIndexWidget) + 800) + +Class QHelpLink + size=32 align=8 + base size=32 base align=8 +QHelpLink (0x0x7f25c46fe660) 0 + +Class QHelpSearchQuery + size=32 align=8 + base size=32 base align=8 +QHelpSearchQuery (0x0x7f25c46fe6c0) 0 + +Class QHelpSearchResult + size=8 align=8 + base size=8 base align=8 +QHelpSearchResult (0x0x7f25c474d000) 0 + +Class QHelpSearchEngine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpSearchEngine::QPrivateSignal (0x0x7f25c474d120) 0 empty + +Vtable for QHelpSearchEngine +QHelpSearchEngine::_ZTV17QHelpSearchEngine: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QHelpSearchEngine) +16 (int (*)(...))QHelpSearchEngine::metaObject +24 (int (*)(...))QHelpSearchEngine::qt_metacast +32 (int (*)(...))QHelpSearchEngine::qt_metacall +40 (int (*)(...))QHelpSearchEngine::~QHelpSearchEngine +48 (int (*)(...))QHelpSearchEngine::~QHelpSearchEngine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHelpSearchEngine + size=24 align=8 + base size=24 base align=8 +QHelpSearchEngine (0x0x7f25c49fee38) 0 + vptr=((& QHelpSearchEngine::_ZTV17QHelpSearchEngine) + 16) + QObject (0x0x7f25c474d0c0) 0 + primary-for QHelpSearchEngine (0x0x7f25c49fee38) + +Class QHelpSearchQueryWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpSearchQueryWidget::QPrivateSignal (0x0x7f25c474d2a0) 0 empty + +Vtable for QHelpSearchQueryWidget +QHelpSearchQueryWidget::_ZTV22QHelpSearchQueryWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QHelpSearchQueryWidget) +16 (int (*)(...))QHelpSearchQueryWidget::metaObject +24 (int (*)(...))QHelpSearchQueryWidget::qt_metacast +32 (int (*)(...))QHelpSearchQueryWidget::qt_metacall +40 (int (*)(...))QHelpSearchQueryWidget::~QHelpSearchQueryWidget +48 (int (*)(...))QHelpSearchQueryWidget::~QHelpSearchQueryWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QHelpSearchQueryWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QHelpSearchQueryWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI22QHelpSearchQueryWidget) +448 (int (*)(...))QHelpSearchQueryWidget::_ZThn16_N22QHelpSearchQueryWidgetD1Ev +456 (int (*)(...))QHelpSearchQueryWidget::_ZThn16_N22QHelpSearchQueryWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpSearchQueryWidget + size=48 align=8 + base size=48 base align=8 +QHelpSearchQueryWidget (0x0x7f25c49feea0) 0 + vptr=((& QHelpSearchQueryWidget::_ZTV22QHelpSearchQueryWidget) + 16) + QWidget (0x0x7f25c4a11690) 0 + primary-for QHelpSearchQueryWidget (0x0x7f25c49feea0) + QObject (0x0x7f25c474d1e0) 0 + primary-for QWidget (0x0x7f25c4a11690) + QPaintDevice (0x0x7f25c474d240) 16 + vptr=((& QHelpSearchQueryWidget::_ZTV22QHelpSearchQueryWidget) + 448) + +Class QHelpSearchResultWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHelpSearchResultWidget::QPrivateSignal (0x0x7f25c474d420) 0 empty + +Vtable for QHelpSearchResultWidget +QHelpSearchResultWidget::_ZTV23QHelpSearchResultWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QHelpSearchResultWidget) +16 (int (*)(...))QHelpSearchResultWidget::metaObject +24 (int (*)(...))QHelpSearchResultWidget::qt_metacast +32 (int (*)(...))QHelpSearchResultWidget::qt_metacall +40 (int (*)(...))QHelpSearchResultWidget::~QHelpSearchResultWidget +48 (int (*)(...))QHelpSearchResultWidget::~QHelpSearchResultWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QHelpSearchResultWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI23QHelpSearchResultWidget) +448 (int (*)(...))QHelpSearchResultWidget::_ZThn16_N23QHelpSearchResultWidgetD1Ev +456 (int (*)(...))QHelpSearchResultWidget::_ZThn16_N23QHelpSearchResultWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHelpSearchResultWidget + size=48 align=8 + base size=48 base align=8 +QHelpSearchResultWidget (0x0x7f25c49fef08) 0 + vptr=((& QHelpSearchResultWidget::_ZTV23QHelpSearchResultWidget) + 16) + QWidget (0x0x7f25c4a11700) 0 + primary-for QHelpSearchResultWidget (0x0x7f25c49fef08) + QObject (0x0x7f25c474d360) 0 + primary-for QWidget (0x0x7f25c4a11700) + QPaintDevice (0x0x7f25c474d3c0) 16 + vptr=((& QHelpSearchResultWidget::_ZTV23QHelpSearchResultWidget) + 448) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c47993c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c4799720) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c4799960) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c4799cc0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c4799ea0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c47c51e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c47c5360) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c47c56c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c47c58a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c47c5c00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c47c5de0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c47f4180) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c47f4360) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c47f46c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c47f48a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c47f4c00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c44474e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c4447840) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c44479c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c4447d20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c4447ea0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c446f240) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c446f3c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c446f720) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c446f8a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c446fc00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c446fd80) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c449c120) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c449c2a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c449c600) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f25c449c780) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f25c449cae0) 0 empty + diff --git a/tests/auto/bic/data/QtUiTools.6.0.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtUiTools.6.0.0.linux-gcc-amd64.txt new file mode 100644 index 0000000..823ac61 --- /dev/null +++ b/tests/auto/bic/data/QtUiTools.6.0.0.linux-gcc-amd64.txt @@ -0,0 +1,19797 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f0b2e7d2ea0) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f0b2e8e76c0) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f0b2e8e7900) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7f0b2e919a20) 0 empty + +Class std::__make_unsigned_selector_base + size=1 align=1 + base size=0 base align=1 +std::__make_unsigned_selector_base (0x0x7f0b2eb75240) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f0b2ebf2060) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f0b2ebf2120) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7f0b2ebf2600) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7f0b2ebf2660) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7f0b2ebf26c0) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7f0b2ebf2720) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7f0b2ebf2780) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f0b2ebf2840) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f0b2ebf2900) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f0b2ebf29c0) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f0b2ebf2a80) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f0b2ebf2de0) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7f0b2ec35180) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7f0b2ec351e0) 0 empty + +Class std::__swappable_with_details::__do_is_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_swappable_with_impl (0x0x7f0b2ec35480) 0 empty + +Class std::__swappable_with_details::__do_is_nothrow_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_nothrow_swappable_with_impl (0x0x7f0b2ec354e0) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7f0b2ec35d20) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f0b2ecbc300) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7f0b2ec60750) 0 empty + std::__nonesuch (0x0x7f0b2ecbc7e0) 0 empty + +Class std::in_place_t + size=1 align=1 + base size=0 base align=1 +std::in_place_t (0x0x7f0b2ed41540) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f0b2ed417e0) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f0b2ed41840) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f0b2e99a5a0) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f0b2e99a600) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f0b2ec60c98) 0 empty + std::input_iterator_tag (0x0x7f0b2e99a660) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f0b2ec60d00) 0 empty + std::forward_iterator_tag (0x0x7f0b2ec60d68) 0 empty + std::input_iterator_tag (0x0x7f0b2e99a6c0) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f0b2ec60dd0) 0 empty + std::bidirectional_iterator_tag (0x0x7f0b2ec60e38) 0 empty + std::forward_iterator_tag (0x0x7f0b2ec60ea0) 0 empty + std::input_iterator_tag (0x0x7f0b2e99a720) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f0b2ea52420) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f0b2ea52540) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f0b2ea52840) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f0b2ea52b40) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f0b2ea52c60) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f0b2eb15480) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f0b2eb157e0) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f0b2eb15840) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f0b2eb15900) 0 + +Class __pthread_internal_slist + size=8 align=8 + base size=8 base align=8 +__pthread_internal_slist (0x0x7f0b2eb15960) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7f0b2eb159c0) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7f0b2eb15a20) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7f0b2eb15a80) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f0b2eb15d20) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f0b2eb4e000) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f0b2eb4e060) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f0b2eb4ede0) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f0b2e9e4270) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7f0b2de09000) 0 nearly-empty + primary-for std::bad_exception (0x0x7f0b2e9e4270) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f0b2de091e0) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f0b2e9e42d8) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7f0b2de095a0) 0 nearly-empty + primary-for std::bad_cast (0x0x7f0b2e9e42d8) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f0b2e9e4340) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7f0b2de09780) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f0b2e9e4340) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f0b2de09960) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f0b2de09ea0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f0b2e9e43a8) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7f0b2de465a0) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f0b2e9e43a8) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f0b2e9e4410) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7f0b2e9e4478) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f0b2e9e4410) + std::exception (0x0x7f0b2de46780) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f0b2e9e4478) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f0b2de46960) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7f0b2de46ba0) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f0b2def6360) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f0b2dad2720) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f0b2dad27e0) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f0b2db4c6c0) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f0b2db4c780) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f0b2db4c7e0) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f0b2db4c840) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f0b2db4c8a0) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f0b2db4c9c0) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f0b2db4ca20) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f0b2d8090c0) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f0b2d809240) 0 empty + +Class _G_fpos_t + size=16 align=8 + base size=16 base align=8 +_G_fpos_t (0x0x7f0b2d6310c0) 0 + +Class _G_fpos64_t + size=16 align=8 + base size=16 base align=8 +_G_fpos64_t (0x0x7f0b2d631120) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f0b2d631180) 0 + +Class _IO_cookie_io_functions_t + size=32 align=8 + base size=32 base align=8 +_IO_cookie_io_functions_t (0x0x7f0b2d6311e0) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f0b2d24e960) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f0b2d26d410) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7f0b2d24ea20) 0 nearly-empty + primary-for std::logic_error (0x0x7f0b2d26d410) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f0b2d26d478) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7f0b2d26d4e0) 0 + primary-for std::domain_error (0x0x7f0b2d26d478) + std::exception (0x0x7f0b2d24ea80) 0 nearly-empty + primary-for std::logic_error (0x0x7f0b2d26d4e0) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f0b2d26d548) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7f0b2d26d5b0) 0 + primary-for std::invalid_argument (0x0x7f0b2d26d548) + std::exception (0x0x7f0b2d24eae0) 0 nearly-empty + primary-for std::logic_error (0x0x7f0b2d26d5b0) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f0b2d26d618) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7f0b2d26d680) 0 + primary-for std::length_error (0x0x7f0b2d26d618) + std::exception (0x0x7f0b2d24eb40) 0 nearly-empty + primary-for std::logic_error (0x0x7f0b2d26d680) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f0b2d26d6e8) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7f0b2d26d750) 0 + primary-for std::out_of_range (0x0x7f0b2d26d6e8) + std::exception (0x0x7f0b2d24eba0) 0 nearly-empty + primary-for std::logic_error (0x0x7f0b2d26d750) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f0b2d26d7b8) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7f0b2d24ec00) 0 nearly-empty + primary-for std::runtime_error (0x0x7f0b2d26d7b8) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f0b2d26d820) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7f0b2d26d888) 0 + primary-for std::range_error (0x0x7f0b2d26d820) + std::exception (0x0x7f0b2d24ec60) 0 nearly-empty + primary-for std::runtime_error (0x0x7f0b2d26d888) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f0b2d26d8f0) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7f0b2d26d958) 0 + primary-for std::overflow_error (0x0x7f0b2d26d8f0) + std::exception (0x0x7f0b2d24ecc0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f0b2d26d958) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f0b2d26d9c0) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7f0b2d26da28) 0 + primary-for std::underflow_error (0x0x7f0b2d26d9c0) + std::exception (0x0x7f0b2d24ed20) 0 nearly-empty + primary-for std::runtime_error (0x0x7f0b2d26da28) + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7f0b2d2ee060) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f0b2d2ee0c0) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f0b2d2ee240) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f0b2d2ee300) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f0b2d26dc98) 0 + std::__uses_alloc_base (0x0x7f0b2d2ee2a0) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f0b2d05d900) 0 empty + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f0b2d11e0d0) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7f0b2d12e000) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f0b2d11e0d0) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f0b2d12e0c0) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f0b2d12e120) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f0b2d12e420) 0 + +Class std::__detail::_Identity + size=1 align=1 + base size=0 base align=1 +std::__detail::_Identity (0x0x7f0b2ce022a0) 0 empty + +Class std::__detail::_Select1st + size=1 align=1 + base size=0 base align=1 +std::__detail::_Select1st (0x0x7f0b2ce02360) 0 empty + +Class std::__detail::_Hash_node_base + size=8 align=8 + base size=8 base align=8 +std::__detail::_Hash_node_base (0x0x7f0b2ce02840) 0 + +Class std::__detail::_Mod_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mod_range_hashing (0x0x7f0b2ce296c0) 0 empty + +Class std::__detail::_Default_ranged_hash + size=1 align=1 + base size=0 base align=1 +std::__detail::_Default_ranged_hash (0x0x7f0b2ce29780) 0 empty + +Class std::__detail::_Prime_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Prime_rehash_policy (0x0x7f0b2ce297e0) 0 + +Class std::__detail::_Mask_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mask_range_hashing (0x0x7f0b2ce29ba0) 0 empty + +Class std::__detail::_Power2_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Power2_rehash_policy (0x0x7f0b2ce29cc0) 0 + +Class std::__detail::_Equality_base + size=1 align=1 + base size=0 base align=1 +std::__detail::_Equality_base (0x0x7f0b2cc09d80) 0 empty + +Class std::_Enable_default_constructor_tag + size=1 align=1 + base size=0 base align=1 +std::_Enable_default_constructor_tag (0x0x7f0b2cc45660) 0 empty + +Class std::nullopt_t + size=1 align=1 + base size=0 base align=1 +std::nullopt_t (0x0x7f0b2cc93060) 0 empty + +Vtable for std::bad_optional_access +std::bad_optional_access::_ZTVSt19bad_optional_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt19bad_optional_access) +16 (int (*)(...))std::bad_optional_access::~bad_optional_access +24 (int (*)(...))std::bad_optional_access::~bad_optional_access +32 (int (*)(...))std::bad_optional_access::what + +Class std::bad_optional_access + size=8 align=8 + base size=8 base align=8 +std::bad_optional_access (0x0x7f0b2cc9c000) 0 nearly-empty + vptr=((& std::bad_optional_access::_ZTVSt19bad_optional_access) + 16) + std::exception (0x0x7f0b2cc932a0) 0 nearly-empty + primary-for std::bad_optional_access (0x0x7f0b2cc9c000) + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f0b2c72dc00) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f0b2c60caf8) 0 + std::iterator (0x0x7f0b2c74e3c0) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f0b2c60cbc8) 0 + std::_Bit_iterator_base (0x0x7f0b2c60cc30) 0 + std::iterator (0x0x7f0b2c74e960) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f0b2c60cd00) 0 + std::_Bit_iterator_base (0x0x7f0b2c60cd68) 0 + std::iterator (0x0x7f0b2c387120) 0 empty + +Class __pstl::execution::v1::sequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::sequenced_policy (0x0x7f0b2c165660) 0 empty + +Class __pstl::execution::v1::parallel_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_policy (0x0x7f0b2c1657e0) 0 empty + +Class __pstl::execution::v1::parallel_unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_unsequenced_policy (0x0x7f0b2c165960) 0 empty + +Class __pstl::execution::v1::unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::unsequenced_policy (0x0x7f0b2c165ae0) 0 empty + +Class std::__detail::__variant::__variant_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_cookie (0x0x7f0b2c296600) 0 empty + +Class std::__detail::__variant::__variant_idx_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_idx_cookie (0x0x7f0b2c296660) 0 empty + +Class std::monostate + size=1 align=1 + base size=0 base align=1 +std::monostate (0x0x7f0b2bf73120) 0 empty + +Vtable for std::bad_variant_access +std::bad_variant_access::_ZTVSt18bad_variant_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt18bad_variant_access) +16 (int (*)(...))std::bad_variant_access::~bad_variant_access +24 (int (*)(...))std::bad_variant_access::~bad_variant_access +32 (int (*)(...))std::bad_variant_access::what + +Class std::bad_variant_access + size=16 align=8 + base size=16 base align=8 +std::bad_variant_access (0x0x7f0b2c336138) 0 + vptr=((& std::bad_variant_access::_ZTVSt18bad_variant_access) + 16) + std::exception (0x0x7f0b2bf96660) 0 nearly-empty + primary-for std::bad_variant_access (0x0x7f0b2c336138) + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f0b2c05b060) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f0b2c05b0c0) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f0b2c05b360) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f0b2c05bba0) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f0b2c0abc60) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f0b2c140a80) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f0b2c0e93a8) 0 + std::__atomic_flag_base (0x0x7f0b2c140ae0) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f0b2bccc680) 0 + QAtomicInteger (0x0x7f0b2bccc6e8) 0 + QBasicAtomicInteger (0x0x7f0b2bcc49c0) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f0b2b92acc0) 0 empty + +Class QKeyCombination + size=4 align=4 + base size=4 base align=4 +QKeyCombination (0x0x7f0b2b92ad20) 0 + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f0b2b619060) 0 + +Class QMethodRawArguments + size=8 align=8 + base size=8 base align=8 +QMethodRawArguments (0x0x7f0b2b619780) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f0b2b6197e0) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f0b2b588af8) 0 + QGenericArgument (0x0x7f0b2b619a80) 0 + +Class QMetaObject::SuperData + size=8 align=8 + base size=8 base align=8 +QMetaObject::SuperData (0x0x7f0b2b619f60) 0 + +Class QMetaObject::Data + size=56 align=8 + base size=56 base align=8 +QMetaObject::Data (0x0x7f0b2b662000) 0 + +Class QMetaObject + size=56 align=8 + base size=56 base align=8 +QMetaObject (0x0x7f0b2b619f00) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f0b2b662960) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f0b2b6c03c0) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f0b2b6c0d80) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f0b2b3a28a0) 0 + +Class QArrayData + size=16 align=8 + base size=16 base align=8 +QArrayData (0x0x7f0b2b3a2c00) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f0b2b44a600) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f0b2b44a720) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f0b2b44aae0) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f0b2b44ad80) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f0b2b44af60) 0 + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f0b2b4eb0c0) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f0b2b4eb420) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f0b2b4ebc00) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f0b2b538000) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7f0b2b538068) 0 + primary-for std::system_error (0x0x7f0b2b538000) + std::exception (0x0x7f0b2b51d7e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f0b2b538068) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f0b2b5383a8) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7f0b2b538410) 0 + primary-for std::ios_base::failure (0x0x7f0b2b5383a8) + std::runtime_error (0x0x7f0b2b538478) 0 + primary-for std::system_error (0x0x7f0b2b538410) + std::exception (0x0x7f0b2b554f60) 0 nearly-empty + primary-for std::runtime_error (0x0x7f0b2b538478) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f0b2b18b000) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f0b2b18b060) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f0b2b18b0c0) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f0b2b554f00) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f0b2b20dcc0) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f0b2b311000) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f0b2ae87000 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f0b2ae870d0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7f0b2ae87618 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f0b2ae876e8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f0b2ae87c98) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7f0b2aebe9c0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f0b2ae87c98) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f0b2ae87d00) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7f0b2aebeae0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f0b2ae87d00) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f0b2ae87d68) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7f0b2aebec00) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f0b2ae87d68) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f0b2ae87e38) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7f0b2aebed20) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f0b2ae87e38) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f0b2aee4600) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f0b2aee4960) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f0b2aee4c60) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f0b2aee4660) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f0b2ae87f70) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7f0b2ab91780) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f0b2ae87f70) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f0b2abfe540) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7f0b2abfea80) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f0b2ad458a0) 0 + +Class QByteArrayView + size=16 align=8 + base size=16 base align=8 +QByteArrayView (0x0x7f0b2aa76720) 0 + +Class QByteArray + size=24 align=8 + base size=24 base align=8 +QByteArray (0x0x7f0b2a77d120) 0 + +Class QByteArray::FromBase64Result + size=32 align=8 + base size=28 base align=8 +QByteArray::FromBase64Result (0x0x7f0b2a5bd7e0) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f0b2a64e300) 0 + +Class QChar::fromUcs4(char32_t)::R + size=4 align=2 + base size=4 base align=2 +QChar::fromUcs4(char32_t)::R (0x0x7f0b2a384660) 0 + +Class QtPrivate::hide_char8_t + size=1 align=1 + base size=0 base align=1 +QtPrivate::hide_char8_t (0x0x7f0b2a384a80) 0 empty + +Class QtPrivate::wrap_char + size=1 align=1 + base size=0 base align=1 +QtPrivate::wrap_char (0x0x7f0b2a384ae0) 0 empty + +Class QAnyStringView + size=16 align=8 + base size=16 base align=8 +QAnyStringView (0x0x7f0b2a403c60) 0 + +Class QStringTokenizerBaseBase::tokenizer_state + size=24 align=8 + base size=24 base align=8 +QStringTokenizerBaseBase::tokenizer_state (0x0x7f0b2a5092a0) 0 + +Class QStringTokenizerBaseBase + size=8 align=4 + base size=8 base align=4 +QStringTokenizerBaseBase (0x0x7f0b2a509240) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f0b2a160300) 0 + +Class QString + size=24 align=8 + base size=24 base align=8 +QString (0x0x7f0b2a2c2600) 0 + +Class QtPrivate::ArgBase + size=1 align=1 + base size=1 base align=1 +QtPrivate::ArgBase (0x0x7f0b29eb5960) 0 + +Class QtPrivate::QStringViewArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QStringViewArg (0x0x7f0b29eb4bc8) 0 + QtPrivate::ArgBase (0x0x7f0b29eb59c0) 0 + +Class QtPrivate::QLatin1StringArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QLatin1StringArg (0x0x7f0b29eb4c98) 0 + QtPrivate::ArgBase (0x0x7f0b29eb5c00) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f0b29b653c0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f0b29b65480) 0 empty + +Class QStringMatcher + size=312 align=8 + base size=312 base align=8 +QStringMatcher (0x0x7f0b29d4d6c0) 0 + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f0b299e3780) 0 empty + +Class QtPrivate::CompareAgainstLiteralZero + size=1 align=1 + base size=0 base align=1 +QtPrivate::CompareAgainstLiteralZero (0x0x7f0b29a0c480) 0 empty + +Class QPartialOrdering + size=1 align=1 + base size=1 base align=1 +QPartialOrdering (0x0x7f0b29a0c6c0) 0 + +Class QIODeviceBase + size=1 align=1 + base size=0 base align=1 +QIODeviceBase (0x0x7f0b29aa7780) 0 empty + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f0b299d6138) 0 + QIODeviceBase (0x0x7f0b29aa77e0) 0 empty + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f0b29aa7960) 0 + +Class QtMetaContainerPrivate::QMetaContainerInterface + size=120 align=8 + base size=120 base align=8 +QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f0b29b24d80) 0 + +Class QtMetaContainerPrivate::QMetaSequenceInterface + size=216 align=8 + base size=216 base align=8 +QtMetaContainerPrivate::QMetaSequenceInterface (0x0x7f0b299d6a90) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f0b29b24e40) 0 + +Class QtMetaContainerPrivate::QMetaAssociationInterface + size=240 align=8 + base size=240 base align=8 +QtMetaContainerPrivate::QMetaAssociationInterface (0x0x7f0b299d6b60) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f0b29b24f00) 0 + +Class QMetaContainer + size=8 align=8 + base size=8 base align=8 +QMetaContainer (0x0x7f0b2984aa20) 0 + +Class QMetaSequence + size=8 align=8 + base size=8 base align=8 +QMetaSequence (0x0x7f0b299d6f08) 0 + QMetaContainer (0x0x7f0b2984ac00) 0 + +Class QMetaAssociation + size=8 align=8 + base size=8 base align=8 +QMetaAssociation (0x0x7f0b299d6f70) 0 + QMetaContainer (0x0x7f0b2986c000) 0 + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f0b29485660) 0 + +Class std::__detail::_List_node_header + size=24 align=8 + base size=24 base align=8 +std::__detail::_List_node_header (0x0x7f0b29415ea0) 0 + std::__detail::_List_node_base (0x0x7f0b294856c0) 0 + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f0b29159780) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7f0b29159ae0) 0 + +Class QMetaType + size=8 align=8 + base size=8 base align=8 +QMetaType (0x0x7f0b28fe7120) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f0b2903f780) 0 + +Class QtPrivate::QMetaTypeInterface + size=112 align=8 + base size=112 base align=8 +QtPrivate::QMetaTypeInterface (0x0x7f0b28f52600) 0 + +Class QtPrivate::QTypeNormalizer + size=16 align=8 + base size=16 base align=8 +QtPrivate::QTypeNormalizer (0x0x7f0b28f52660) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f0b28a64d20) 0 + +Class QAdoptSharedDataTag + size=1 align=1 + base size=0 base align=1 +QAdoptSharedDataTag (0x0x7f0b28a950c0) 0 empty + +Class QtPrivate::RefCounted + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCounted (0x0x7f0b28af3120) 0 + +Class QPropertyBindingPrivatePtr + size=8 align=8 + base size=8 base align=8 +QPropertyBindingPrivatePtr (0x0x7f0b28af3240) 0 + +Class QUntypedPropertyData::InheritsQUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData::InheritsQUntypedPropertyData (0x0x7f0b28b438a0) 0 empty + +Class QUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData (0x0x7f0b28b43840) 0 empty + +Class QtPrivate::BindingFunctionVTable + size=32 align=8 + base size=32 base align=8 +QtPrivate::BindingFunctionVTable (0x0x7f0b28b43900) 0 + +Class QtPrivate::QPropertyBindingFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::QPropertyBindingFunction (0x0x7f0b28b43d80) 0 + +Class QtPrivate::QPropertyBindingData + size=8 align=8 + base size=8 base align=8 +QtPrivate::QPropertyBindingData (0x0x7f0b28b43de0) 0 + +Class std::experimental::fundamentals_v2::source_location + size=24 align=8 + base size=24 base align=8 +std::experimental::fundamentals_v2::source_location (0x0x7f0b28768420) 0 + +Class QPropertyBindingSourceLocation + size=24 align=8 + base size=24 base align=8 +QPropertyBindingSourceLocation (0x0x7f0b28768b40) 0 + +Class QPropertyBindingError + size=8 align=8 + base size=8 base align=8 +QPropertyBindingError (0x0x7f0b28768e40) 0 + +Class QUntypedPropertyBinding + size=8 align=8 + base size=8 base align=8 +QUntypedPropertyBinding (0x0x7f0b28768f60) 0 + +Class QPropertyObserverBase + size=24 align=8 + base size=24 base align=8 +QPropertyObserverBase (0x0x7f0b287b3240) 0 + +Class QPropertyObserver + size=24 align=8 + base size=24 base align=8 +QPropertyObserver (0x0x7f0b287ce000) 0 + QPropertyObserverBase (0x0x7f0b287b33c0) 0 + +Class QtPrivate::QBindableInterface + size=56 align=8 + base size=56 base align=8 +QtPrivate::QBindableInterface (0x0x7f0b287ff2a0) 0 + +Class QUntypedBindable + size=16 align=8 + base size=16 base align=8 +QUntypedBindable (0x0x7f0b287ffea0) 0 + +Class QBindingStatus + size=16 align=8 + base size=16 base align=8 +QBindingStatus (0x0x7f0b28853180) 0 + +Class QBindingStorage + size=16 align=8 + base size=16 base align=8 +QBindingStorage (0x0x7f0b288531e0) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f0b28924d80) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f0b285caae0) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=80 align=8 + base size=80 base align=8 +QObjectData (0x0x7f0b286a2480) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f0b286a2de0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f0b286a2d80) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f0b28376d20) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f0b283b8600) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f0b2837c1a0) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7f0b283b85a0) 0 + primary-for QAbstractAnimation (0x0x7f0b2837c1a0) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f0b283b8960) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f0b2837c208) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7f0b283b8900) 0 + primary-for QAnimationDriver (0x0x7f0b2837c208) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f0b283b8b40) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f0b2837c270) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7f0b283b8ae0) 0 + primary-for QEventLoop (0x0x7f0b2837c270) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f0b2841b000) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f0b2841b0c0) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f0b2841b120) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QAbstractEventDispatcher::startingUp +200 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f0b2837c410) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7f0b2841b060) 0 + primary-for QAbstractEventDispatcher (0x0x7f0b2837c410) + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f0b2844e8a0) 0 empty + +Class QStringConverterBase::State + size=48 align=8 + base size=48 base align=8 +QStringConverterBase::State (0x0x7f0b28317360) 0 + +Class QStringConverterBase + size=1 align=1 + base size=0 base align=1 +QStringConverterBase (0x0x7f0b28317300) 0 empty + +Class QStringConverter::Interface + size=40 align=8 + base size=40 base align=8 +QStringConverter::Interface (0x0x7f0b28317f60) 0 + +Class QStringConverter + size=56 align=8 + base size=56 base align=8 +QStringConverter (0x0x7f0b284b4680) 0 + QStringConverterBase (0x0x7f0b28317f00) 0 empty + +Class QStringEncoder + size=56 align=8 + base size=56 base align=8 +QStringEncoder (0x0x7f0b284b46e8) 0 + QStringConverter (0x0x7f0b284b4750) 0 + QStringConverterBase (0x0x7f0b27f6d960) 0 empty + +Class QStringDecoder + size=56 align=8 + base size=56 base align=8 +QStringDecoder (0x0x7f0b284b47b8) 0 + QStringConverter (0x0x7f0b284b4820) 0 + QStringConverterBase (0x0x7f0b27f8d7e0) 0 empty + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f0b284b4888) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + QIODeviceBase (0x0x7f0b27fb24e0) 0 empty + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f0b27fb2ba0) 0 + +Class QContiguousCacheData + size=40 align=8 + base size=40 base align=8 +QContiguousCacheData (0x0x7f0b28084c00) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f0b280cf660) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f0b280cf7e0) 0 + +Class QtPrivate::EnableInternalData + size=1 align=1 + base size=0 base align=1 +QtPrivate::EnableInternalData (0x0x7f0b27d8b9c0) 0 empty + +Class QDebug::Stream + size=88 align=8 + base size=88 base align=8 +QDebug::Stream (0x0x7f0b27da59c0) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f0b27d6d340) 0 + QIODeviceBase (0x0x7f0b27da5960) 0 empty + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f0b27ed0900) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f0b27ed09c0) 0 empty + +Class QVariant::PrivateShared + size=8 align=8 + base size=8 base align=8 +QVariant::PrivateShared (0x0x7f0b27ca5420) 0 + +Class QVariant::Private + size=32 align=8 + base size=32 base align=8 +QVariant::Private (0x0x7f0b27ca5480) 0 + +Class QVariant + size=32 align=8 + base size=32 base align=8 +QVariant (0x0x7f0b27ca53c0) 0 + +Class QtPrivate::QVariantTypeCoercer + size=32 align=8 + base size=32 base align=8 +QtPrivate::QVariantTypeCoercer (0x0x7f0b27a47840) 0 + +Class QVariantConstPointer + size=32 align=8 + base size=32 base align=8 +QVariantConstPointer (0x0x7f0b27a47a80) 0 + +Class QModelRoleData + size=40 align=8 + base size=40 base align=8 +QModelRoleData (0x0x7f0b27a47c60) 0 + +Class QModelRoleDataSpan + size=16 align=8 + base size=16 base align=8 +QModelRoleDataSpan (0x0x7f0b27a89ba0) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f0b27ad1ba0) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f0b27b20d80) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f0b277b0660) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractItemModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractItemModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f0b277b8410) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7f0b277b0600) 0 + primary-for QAbstractItemModel (0x0x7f0b277b8410) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f0b278e5360) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractTableModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f0b277b8c98) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7f0b277b8d00) 0 + primary-for QAbstractTableModel (0x0x7f0b277b8c98) + QObject (0x0x7f0b278e5300) 0 + primary-for QAbstractItemModel (0x0x7f0b277b8d00) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f0b278e5480) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractListModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f0b277b8d68) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7f0b277b8dd0) 0 + primary-for QAbstractListModel (0x0x7f0b277b8d68) + QObject (0x0x7f0b278e5420) 0 + primary-for QAbstractItemModel (0x0x7f0b277b8dd0) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f0b2792d8a0) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f0b2792d960) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QAbstractProxyModel::setSourceModel +416 (int (*)(...))__cxa_pure_virtual +424 (int (*)(...))__cxa_pure_virtual +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f0b2793b1a0) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7f0b2793b208) 0 + primary-for QAbstractProxyModel (0x0x7f0b2793b1a0) + QObject (0x0x7f0b2792d900) 0 + primary-for QAbstractItemModel (0x0x7f0b2793b208) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f0b2792db40) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f0b2793b270) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7f0b2793b2d8) 0 + primary-for QAnimationGroup (0x0x7f0b2793b270) + QObject (0x0x7f0b2792dae0) 0 + primary-for QAbstractAnimation (0x0x7f0b2793b2d8) + +Class QAssociativeIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeIterator (0x0x7f0b2793b410) 0 + QIterator (0x0x7f0b2793b478) 0 + QBaseIterator (0x0x7f0b2792df60) 0 + +Class QAssociativeConstIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeConstIterator (0x0x7f0b2793b5b0) 0 + QConstIterator (0x0x7f0b2793b618) 0 + QBaseIterator (0x0x7f0b2759a4e0) 0 + +Class QAssociativeIterable + size=24 align=8 + base size=24 base align=8 +QAssociativeIterable (0x0x7f0b2793b6e8) 0 + QIterable (0x0x7f0b2759aa20) 0 + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f0b2769e540) 0 + +Class QBitArray + size=24 align=8 + base size=24 base align=8 +QBitArray (0x0x7f0b276ff2a0) 0 + +Class QBitRef + size=16 align=8 + base size=16 base align=8 +QBitRef (0x0x7f0b277301e0) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f0b27756d20) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f0b2736c070) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7f0b27756c60) 0 + primary-for QIODevice (0x0x7f0b2736c070) + QIODeviceBase (0x0x7f0b27756cc0) 0 empty + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f0b2739a0c0) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f0b27361618) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7f0b2736c0e0) 0 + primary-for QBuffer (0x0x7f0b27361618) + QObject (0x0x7f0b2739a000) 0 + primary-for QIODevice (0x0x7f0b2736c0e0) + QIODeviceBase (0x0x7f0b2739a060) 0 empty + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f0b2739a300) 0 + +Class QByteArrayMatcher + size=1056 align=8 + base size=1056 base align=8 +QByteArrayMatcher (0x0x7f0b2739a2a0) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f0b2739a480) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f0b2739a420) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f0b273fdba0) 0 + +Class QCalendar::YearMonthDay + size=12 align=4 + base size=12 base align=4 +QCalendar::YearMonthDay (0x0x7f0b27511960) 0 + +Class QCalendar + size=8 align=8 + base size=8 base align=8 +QCalendar (0x0x7f0b27511900) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f0b27511cc0) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f0b271b5300) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f0b27201540) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f0b272015a0) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f0b272014e0) 0 + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7f0b272867e0) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f0b272b1060) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f0b26f59240) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel + size=1 align=1 + base size=0 base align=1 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel (0x0x7f0b26fbaa20) 0 empty + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f0b26fbaa80) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator + size=24 align=8 + base size=17 base align=8 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator (0x0x7f0b26fbac60) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f0b2704f960) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f0b271374e0) 0 + +Class QCborParserError + size=16 align=8 + base size=16 base align=8 +QCborParserError (0x0x7f0b26da6660) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7f0b26da6720) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7f0b26edc000) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7f0b26f1b540) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7f0b26f1b5a0) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7f0b26f1b4e0) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7f0b26c09b40) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7f0b26c09ba0) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7f0b26c09ae0) 0 + +Class qfloat16::Wrap + size=2 align=2 + base size=2 base align=2 +qfloat16::Wrap (0x0x7f0b26a1dc00) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7f0b26a1dba0) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7f0b26b04420) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7f0b26b41d80) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f0b2676e7e0) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f0b2676e9c0) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f0b26832420) 0 + +Class QEvent::InputEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::InputEventTag (0x0x7f0b2689dcc0) 0 empty + +Class QEvent::PointerEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::PointerEventTag (0x0x7f0b2689dd20) 0 empty + +Class QEvent::SinglePointEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::SinglePointEventTag (0x0x7f0b2689dd80) 0 empty + +Vtable for QEvent +QEvent::_ZTV6QEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QEvent + size=16 align=8 + base size=16 base align=8 +QEvent (0x0x7f0b2689dc60) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QTimerEvent::clone + +Class QTimerEvent + size=24 align=8 + base size=20 base align=8 +QTimerEvent (0x0x7f0b268ab410) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7f0b268f6720) 0 + primary-for QTimerEvent (0x0x7f0b268ab410) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QChildEvent::clone + +Class QChildEvent + size=24 align=8 + base size=24 base align=8 +QChildEvent (0x0x7f0b268ab478) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7f0b268f6c00) 0 + primary-for QChildEvent (0x0x7f0b268ab478) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDynamicPropertyChangeEvent::clone + +Class QDynamicPropertyChangeEvent + size=40 align=8 + base size=40 base align=8 +QDynamicPropertyChangeEvent (0x0x7f0b268ab4e0) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7f0b26927060) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f0b268ab4e0) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDeferredDeleteEvent::clone + +Class QDeferredDeleteEvent + size=24 align=8 + base size=20 base align=8 +QDeferredDeleteEvent (0x0x7f0b268ab548) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7f0b26927300) 0 + primary-for QDeferredDeleteEvent (0x0x7f0b268ab548) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f0b26927660) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f0b268ab5b0) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7f0b26927600) 0 + primary-for QCoreApplication (0x0x7f0b268ab5b0) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f0b26927840) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7f0b26927960) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +224 (int (*)(...))QConcatenateTablesProxyModel::mimeData +232 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +240 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QConcatenateTablesProxyModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QConcatenateTablesProxyModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7f0b268ab618) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7f0b268ab680) 0 + primary-for QConcatenateTablesProxyModel (0x0x7f0b268ab618) + QObject (0x0x7f0b26927900) 0 + primary-for QAbstractItemModel (0x0x7f0b268ab680) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f0b26927ae0) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f0b26927c00) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f0b26927f00) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f0b2667f060) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFileDevice::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f0b2666f888) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7f0b26617620) 0 + primary-for QFileDevice (0x0x7f0b2666f888) + QObject (0x0x7f0b26660f60) 0 + primary-for QIODevice (0x0x7f0b26617620) + QIODeviceBase (0x0x7f0b2667f000) 0 empty + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f0b2667fba0) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f0b2666fc98) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7f0b2666fd00) 0 + primary-for QFile (0x0x7f0b2666fc98) + QIODevice (0x0x7f0b266855b0) 0 + primary-for QFileDevice (0x0x7f0b2666fd00) + QObject (0x0x7f0b2667fae0) 0 + primary-for QIODevice (0x0x7f0b266855b0) + QIODeviceBase (0x0x7f0b2667fb40) 0 empty + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f0b2667fe40) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f0b2639c8a0) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f0b26458b40) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f0b26458f00) 0 + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f0b265368f0) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7f0b2616b660) 0 nearly-empty + primary-for QException (0x0x7f0b265368f0) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=16 align=8 + base size=16 base align=8 +QUnhandledException (0x0x7f0b26536958) 0 + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7f0b265369c0) 0 nearly-empty + primary-for QUnhandledException (0x0x7f0b26536958) + std::exception (0x0x7f0b2616b6c0) 0 nearly-empty + primary-for QException (0x0x7f0b265369c0) + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f0b261b9540) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f0b261b95a0) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f0b261b97e0) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f0b261b3bc8) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7f0b261b9780) 0 + primary-for QFileSelector (0x0x7f0b261b3bc8) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f0b261b99c0) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f0b261b3c30) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7f0b261b9960) 0 + primary-for QFileSystemWatcher (0x0x7f0b261b3c30) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=9 base align=8 +QRunnable (0x0x7f0b261b9b40) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f0b261b9d20) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f0b261b3d00) 0 + QBasicMutex (0x0x7f0b26238a80) 0 + +Class QRecursiveMutex + size=24 align=8 + base size=24 base align=8 +QRecursiveMutex (0x0x7f0b26238ea0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f0b262634e0) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f0b26263ae0) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f0b26305780) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f0b26027180) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f0b26013f70) 0 + std::__mutex_base (0x0x7f0b260271e0) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f0b260273c0) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f0b26027420) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f0b26027480) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f0b26027ea0) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f0b2605b000) 0 + std::__recursive_mutex_base (0x0x7f0b26027f00) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f0b264d2e00) 0 + std::__mutex_base (0x0x7f0b26065300) 0 + std::__timed_mutex_impl (0x0x7f0b26065360) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f0b264d2e70) 0 + std::__recursive_mutex_base (0x0x7f0b26065720) 0 + std::__timed_mutex_impl (0x0x7f0b26065780) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f0b260a15a0) 0 + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f0b260a17e0) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7f0b260f2720) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f0b260f2780) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f0b260f26c0) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f0b25ed19c0) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f0b25ed1d80) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f0b25ed1de0) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f0b25bbf360) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f0b25bca208) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7f0b25bca270) 0 + primary-for std::future_error (0x0x7f0b25bca208) + std::exception (0x0x7f0b25bbfa80) 0 nearly-empty + primary-for std::logic_error (0x0x7f0b25bca270) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f0b25bf11e0) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f0b25bf1180) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f0b25d32c00) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f0b25d31a28) 0 + std::__at_thread_exit_elt (0x0x7f0b25d32cc0) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f0b25bf1360) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f0b25bf1120) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f0b255dbe38) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7f0b2562f9c0) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f0b255dbe38) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f0b256672a0) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f0b25662138) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7f0b25667240) 0 + primary-for QThread (0x0x7f0b25662138) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f0b25667660) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f0b256621a0) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7f0b25667600) 0 + primary-for QThreadPool (0x0x7f0b256621a0) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f0b25436d80) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f0b253a8e38) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7f0b25436d20) 0 + primary-for QFutureWatcherBase (0x0x7f0b253a8e38) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f0b25465300) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QIdentityProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QIdentityProxyModel::insertRows +272 (int (*)(...))QIdentityProxyModel::insertColumns +280 (int (*)(...))QIdentityProxyModel::removeRows +288 (int (*)(...))QIdentityProxyModel::removeColumns +296 (int (*)(...))QIdentityProxyModel::moveRows +304 (int (*)(...))QIdentityProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QIdentityProxyModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QIdentityProxyModel::setSourceModel +416 (int (*)(...))QIdentityProxyModel::mapToSource +424 (int (*)(...))QIdentityProxyModel::mapFromSource +432 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +440 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f0b25464068) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7f0b254640d0) 0 + primary-for QIdentityProxyModel (0x0x7f0b25464068) + QAbstractItemModel (0x0x7f0b25464138) 0 + primary-for QAbstractProxyModel (0x0x7f0b254640d0) + QObject (0x0x7f0b254652a0) 0 + primary-for QAbstractItemModel (0x0x7f0b25464138) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f0b25465480) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f0b254e4060) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f0b254d4ea0) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7f0b254e4000) 0 + primary-for QItemSelectionModel (0x0x7f0b254d4ea0) + +Class QItemSelection + size=24 align=8 + base size=24 base align=8 +QItemSelection (0x0x7f0b254fd3a8) 0 + QList (0x0x7f0b254fd410) 0 + QListSpecialMethods (0x0x7f0b254fd478) 0 empty + QListSpecialMethodsBase (0x0x7f0b254e4a20) 0 empty + +Class QJsonValue + size=24 align=8 + base size=24 base align=8 +QJsonValue (0x0x7f0b251b1780) 0 + +Class QJsonValueRef + size=16 align=8 + base size=16 base align=8 +QJsonValueRef (0x0x7f0b251b1c60) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::iterator (0x0x7f0b25215e40) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::const_iterator (0x0x7f0b25215ea0) 0 + +Class QJsonArray + size=8 align=8 + base size=8 base align=8 +QJsonArray (0x0x7f0b25215de0) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f0b252c28a0) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f0b252c2900) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::iterator (0x0x7f0b25054e40) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::const_iterator (0x0x7f0b25054ea0) 0 + +Class QJsonObject + size=8 align=8 + base size=8 base align=8 +QJsonObject (0x0x7f0b25054de0) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f0b2510b9c0) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=24 align=8 + base size=24 base align=8 +QLibrary (0x0x7f0b25114548) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7f0b2510b960) 0 + primary-for QLibrary (0x0x7f0b25114548) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f0b24d6c000) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f0b2510bf60) 0 + +Class QTypeRevision + size=2 align=1 + base size=2 base align=1 +QTypeRevision (0x0x7f0b24e23780) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f0b24e78f00) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f0b24e9b000) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f0b24eef660) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f0b24f47d20) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f0b24bb0360) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f0b24c02b40) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f0b24c02d80) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f0b24c02d20) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f0b24c4ac60) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f0b24ce26c0) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f0b24d3af60) 0 + +Class QMetaMethod::Data + size=8 align=8 + base size=8 base align=8 +QMetaMethod::Data (0x0x7f0b24977060) 0 + +Class QMetaMethod + size=16 align=8 + base size=16 base align=8 +QMetaMethod (0x0x7f0b24977000) 0 + +Class QMetaEnum::Data + size=8 align=8 + base size=8 base align=8 +QMetaEnum::Data (0x0x7f0b249da2a0) 0 + +Class QMetaEnum + size=16 align=8 + base size=16 base align=8 +QMetaEnum (0x0x7f0b249da240) 0 + +Class QMetaProperty::Data + size=8 align=8 + base size=8 base align=8 +QMetaProperty::Data (0x0x7f0b24a23000) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f0b249fff60) 0 + +Class QMetaClassInfo::Data + size=8 align=8 + base size=8 base align=8 +QMetaClassInfo::Data (0x0x7f0b24a236c0) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=16 base align=8 +QMetaClassInfo (0x0x7f0b24a23660) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f0b24a624e0) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f0b24a57c98) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7f0b24a62480) 0 + primary-for QMimeData (0x0x7f0b24a57c98) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f0b24a62660) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f0b24af9060) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f0b24af9120) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=40 align=8 + base size=40 base align=8 +QObjectCleanupHandler (0x0x7f0b24ae3e38) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7f0b24af90c0) 0 + primary-for QObjectCleanupHandler (0x0x7f0b24ae3e38) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f0b24af91e0) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f0b24b36de0) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f0b24b46888) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7f0b24b468f0) 0 + primary-for QParallelAnimationGroup (0x0x7f0b24b46888) + QAbstractAnimation (0x0x7f0b24b46958) 0 + primary-for QAnimationGroup (0x0x7f0b24b468f0) + QObject (0x0x7f0b24b36d80) 0 + primary-for QAbstractAnimation (0x0x7f0b24b46958) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f0b24764000) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f0b24b469c0) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7f0b24b46a28) 0 + primary-for QPauseAnimation (0x0x7f0b24b469c0) + QObject (0x0x7f0b24b36f60) 0 + primary-for QAbstractAnimation (0x0x7f0b24b46a28) + +Class QPluginMetaData + size=16 align=8 + base size=16 base align=8 +QPluginMetaData (0x0x7f0b24764ae0) 0 + +Class QStaticPlugin + size=24 align=8 + base size=24 base align=8 +QStaticPlugin (0x0x7f0b24764b40) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f0b247ab5a0) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f0b247ae618) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7f0b247ab540) 0 + primary-for QPluginLoader (0x0x7f0b247ae618) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f0b247ab660) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f0b24820d80) 0 empty + +Class QProcess::Use_setChildProcessModifier_Instead + size=1 align=1 + base size=0 base align=1 +QProcess::Use_setChildProcessModifier_Instead (0x0x7f0b24820de0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 32 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QProcess::writeData +248 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f0b2482b680) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7f0b24b38ee0) 0 + primary-for QProcess (0x0x7f0b2482b680) + QObject (0x0x7f0b24820cc0) 0 + primary-for QIODevice (0x0x7f0b24b38ee0) + QIODeviceBase (0x0x7f0b24820d20) 0 empty + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f0b24864ba0) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f0b2482b6e8) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7f0b2482b750) 0 + primary-for QVariantAnimation (0x0x7f0b2482b6e8) + QObject (0x0x7f0b24864b40) 0 + primary-for QAbstractAnimation (0x0x7f0b2482b750) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f0b24864de0) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f0b2482b820) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7f0b2482b888) 0 + primary-for QPropertyAnimation (0x0x7f0b2482b820) + QAbstractAnimation (0x0x7f0b2482b8f0) 0 + primary-for QVariantAnimation (0x0x7f0b2482b888) + QObject (0x0x7f0b24864d80) 0 + primary-for QAbstractAnimation (0x0x7f0b2482b8f0) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f0b24924540) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f0b246049c0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f0b24604960) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f0b243ec180) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f0b2420f0c0) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f0b2420f060) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f0b242605b0) 0 + QRandomGenerator (0x0x7f0b24282360) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f0b24282f60) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f0b242a91e0) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f0b242a96c0) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f0b242a9ba0) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f0b23f68600) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f0b23fc8de0) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f0b2408ac00) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f0b23d69780) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f0b23d69a80) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QSaveFile::writeData +248 (int (*)(...))QSaveFile::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f0b24113820) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7f0b24113888) 0 + primary-for QSaveFile (0x0x7f0b24113820) + QIODevice (0x0x7f0b23da6000) 0 + primary-for QFileDevice (0x0x7f0b24113888) + QObject (0x0x7f0b23d699c0) 0 + primary-for QIODevice (0x0x7f0b23da6000) + QIODeviceBase (0x0x7f0b23d69a20) 0 empty + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f0b23dc10c0) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f0b23e088a0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f0b23e6d5a0) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f0b23e74410) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7f0b23e74478) 0 + primary-for QSequentialAnimationGroup (0x0x7f0b23e74410) + QAbstractAnimation (0x0x7f0b23e744e0) 0 + primary-for QAnimationGroup (0x0x7f0b23e74478) + QObject (0x0x7f0b23e6d540) 0 + primary-for QAbstractAnimation (0x0x7f0b23e744e0) + +Class QSequentialIterator + size=16 align=8 + base size=16 base align=8 +QSequentialIterator (0x0x7f0b23e74618) 0 + QIterator (0x0x7f0b23e74680) 0 + QBaseIterator (0x0x7f0b23e6d900) 0 + +Class QSequentialConstIterator + size=16 align=8 + base size=16 base align=8 +QSequentialConstIterator (0x0x7f0b23e74750) 0 + QConstIterator (0x0x7f0b23e747b8) 0 + QBaseIterator (0x0x7f0b23e6dea0) 0 + +Class QSequentialIterable + size=24 align=8 + base size=24 base align=8 +QSequentialIterable (0x0x7f0b23e74820) 0 + QIterable (0x0x7f0b23ec33c0) 0 + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f0b23ba19c0) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f0b23ba0c30) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7f0b23ba1960) 0 + primary-for QSettings (0x0x7f0b23ba0c30) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f0b23ba1de0) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f0b23ba0c98) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7f0b23ba1d80) 0 + primary-for QSharedMemory (0x0x7f0b23ba0c98) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f0b23bea000) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f0b23ba0d00) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7f0b23ba1f60) 0 + primary-for QSignalMapper (0x0x7f0b23ba0d00) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f0b22b80a20) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f0b22af5b60) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7f0b22b809c0) 0 + primary-for QSocketNotifier (0x0x7f0b22af5b60) + +Class QSocketDescriptor + size=4 align=4 + base size=4 base align=4 +QSocketDescriptor (0x0x7f0b22b80ba0) 0 + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f0b22bc12a0) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QSortFilterProxyModel::mimeTypes +224 (int (*)(...))QSortFilterProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QSortFilterProxyModel::dropMimeData +248 (int (*)(...))QSortFilterProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QSortFilterProxyModel::insertRows +272 (int (*)(...))QSortFilterProxyModel::insertColumns +280 (int (*)(...))QSortFilterProxyModel::removeRows +288 (int (*)(...))QSortFilterProxyModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSortFilterProxyModel::fetchMore +320 (int (*)(...))QSortFilterProxyModel::canFetchMore +328 (int (*)(...))QSortFilterProxyModel::flags +336 (int (*)(...))QSortFilterProxyModel::sort +344 (int (*)(...))QSortFilterProxyModel::buddy +352 (int (*)(...))QSortFilterProxyModel::match +360 (int (*)(...))QSortFilterProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSortFilterProxyModel::setSourceModel +416 (int (*)(...))QSortFilterProxyModel::mapToSource +424 (int (*)(...))QSortFilterProxyModel::mapFromSource +432 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +440 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +448 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +456 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +464 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f0b22af5bc8) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7f0b22af5c30) 0 + primary-for QSortFilterProxyModel (0x0x7f0b22af5bc8) + QAbstractItemModel (0x0x7f0b22af5c98) 0 + primary-for QAbstractProxyModel (0x0x7f0b22af5c30) + QObject (0x0x7f0b22bc1240) 0 + primary-for QAbstractItemModel (0x0x7f0b22af5c98) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f0b22bc1660) 0 empty + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f0b22bc1f60) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f0b22c95900) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f0b22928180) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QStringListModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QStringListModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStringListModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QStringListModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QStringListModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStringListModel::flags +336 (int (*)(...))QStringListModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStringListModel + size=40 align=8 + base size=40 base align=8 +QStringListModel (0x0x7f0b228e57b8) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7f0b228e5820) 0 + primary-for QStringListModel (0x0x7f0b228e57b8) + QAbstractItemModel (0x0x7f0b228e5888) 0 + primary-for QAbstractListModel (0x0x7f0b228e5820) + QObject (0x0x7f0b22928120) 0 + primary-for QAbstractItemModel (0x0x7f0b228e5888) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f0b22928240) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f0b22928300) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f0b22928480) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QTemporaryFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f0b228e58f0) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7f0b228e5958) 0 + primary-for QTemporaryFile (0x0x7f0b228e58f0) + QFileDevice (0x0x7f0b228e59c0) 0 + primary-for QFile (0x0x7f0b228e5958) + QIODevice (0x0x7f0b229194d0) 0 + primary-for QFileDevice (0x0x7f0b228e59c0) + QObject (0x0x7f0b229283c0) 0 + primary-for QIODevice (0x0x7f0b229194d0) + QIODeviceBase (0x0x7f0b22928420) 0 empty + +Class QTextBoundaryFinder + size=72 align=8 + base size=72 base align=8 +QTextBoundaryFinder (0x0x7f0b229286c0) 0 + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f0b22928c60) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f0b229b9360) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f0b228e5b60) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7f0b229b9300) 0 + primary-for QTimeLine (0x0x7f0b228e5b60) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f0b229b9540) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=16 align=8 + base size=16 base align=8 +QTimer (0x0x7f0b228e5bc8) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7f0b229b94e0) 0 + primary-for QTimer (0x0x7f0b228e5bc8) + +Class QTimeZone::OffsetData + size=48 align=8 + base size=44 base align=8 +QTimeZone::OffsetData (0x0x7f0b22a02360) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f0b22a02300) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f0b22a873c0) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f0b22a828f0) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7f0b22a87360) 0 + primary-for QTranslator (0x0x7f0b22a828f0) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7f0b22a875a0) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QTransposeProxyModel::insertRows +272 (int (*)(...))QTransposeProxyModel::insertColumns +280 (int (*)(...))QTransposeProxyModel::removeRows +288 (int (*)(...))QTransposeProxyModel::removeColumns +296 (int (*)(...))QTransposeProxyModel::moveRows +304 (int (*)(...))QTransposeProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QTransposeProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QTransposeProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QTransposeProxyModel::setSourceModel +416 (int (*)(...))QTransposeProxyModel::mapToSource +424 (int (*)(...))QTransposeProxyModel::mapFromSource +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7f0b22a82958) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7f0b22a829c0) 0 + primary-for QTransposeProxyModel (0x0x7f0b22a82958) + QAbstractItemModel (0x0x7f0b22a82a28) 0 + primary-for QAbstractProxyModel (0x0x7f0b22a829c0) + QObject (0x0x7f0b22a87540) 0 + primary-for QAbstractItemModel (0x0x7f0b22a82a28) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f0b22a87720) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f0b22763f00) 0 + +Class QtPrivate::QXmlString + size=24 align=8 + base size=24 base align=8 +QtPrivate::QXmlString (0x0x7f0b22787060) 0 + +Class QXmlStreamAttribute + size=104 align=8 + base size=97 base align=8 +QXmlStreamAttribute (0x0x7f0b227aaea0) 0 + +Class QXmlStreamAttributes + size=24 align=8 + base size=24 base align=8 +QXmlStreamAttributes (0x0x7f0b228018f0) 0 + QList (0x0x7f0b22801958) 0 + QListSpecialMethods (0x0x7f0b228019c0) 0 empty + QListSpecialMethodsBase (0x0x7f0b227f7f00) 0 empty + +Class QXmlStreamNamespaceDeclaration + size=48 align=8 + base size=48 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f0b2286b840) 0 + +Class QXmlStreamNotationDeclaration + size=72 align=8 + base size=72 base align=8 +QXmlStreamNotationDeclaration (0x0x7f0b2288df00) 0 + +Class QXmlStreamEntityDeclaration + size=120 align=8 + base size=120 base align=8 +QXmlStreamEntityDeclaration (0x0x7f0b224da5a0) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f0b22505d20) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f0b22505d80) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f0b22547360) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=16 align=8 + base size=10 base align=8 +QPaintDevice (0x0x7f0b22547540) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16) + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7f0b2258c000) 0 + +Class QColor::CT + size=10 align=2 + base size=10 base align=2 +QColor::CT (0x0x7f0b22613cc0) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7f0b22613c60) 0 + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7f0b226a3d20) 0 + +Class QPolygon + size=24 align=8 + base size=24 base align=8 +QPolygon (0x0x7f0b2c57ed68) 0 + QList (0x0x7f0b2c57ed00) 0 + QListSpecialMethods (0x0x7f0b2c57ee38) 0 empty + QListSpecialMethodsBase (0x0x7f0b2cb77360) 0 empty + +Class QPolygonF + size=24 align=8 + base size=24 base align=8 +QPolygonF (0x0x7f0b2cea0dd0) 0 + QList (0x0x7f0b2cea0d68) 0 + QListSpecialMethods (0x0x7f0b2ceb4138) 0 empty + QListSpecialMethodsBase (0x0x7f0b2aff5cc0) 0 empty + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7f0b2a4c8c00) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7f0b2a3844e0) 0 + +Class QTransform::Affine + size=8 align=8 + base size=8 base align=8 +QTransform::Affine (0x0x7f0b2776f0c0) 0 + +Class QTransform + size=80 align=8 + base size=74 base align=8 +QTransform (0x0x7f0b2776f000) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=24 align=8 + base size=24 base align=8 +QImage (0x0x7f0b2ca4e5b0) 0 + vptr=((& QImage::_ZTV6QImage) + 16) + QPaintDevice (0x0x7f0b2710e9c0) 0 + primary-for QImage (0x0x7f0b2ca4e5b0) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=24 align=8 + base size=24 base align=8 +QPixmap (0x0x7f0b2c768d68) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16) + QPaintDevice (0x0x7f0b26458780) 0 + primary-for QPixmap (0x0x7f0b2c768d68) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7f0b254c6ea0) 0 + +Vtable for QAbstractFileIconProvider +QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractFileIconProvider) +16 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +24 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +32 (int (*)(...))QAbstractFileIconProvider::icon +40 (int (*)(...))QAbstractFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QAbstractFileIconProvider + size=16 align=8 + base size=16 base align=8 +QAbstractFileIconProvider (0x0x7f0b249bd360) 0 + vptr=((& QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider) + 16) + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7f0b249ffe40) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7f0b240e5840) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7f0b227d0f00) 0 + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7f0b25aa89c0) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7f0b2c85f888) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16) + QObject (0x0x7f0b25aa8960) 0 + primary-for QScreen (0x0x7f0b2c85f888) + +Class QInputDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDevice::QPrivateSignal (0x0x7f0b25aa8ba0) 0 empty + +Vtable for QInputDevice +QInputDevice::_ZTV12QInputDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDevice) +16 (int (*)(...))QInputDevice::metaObject +24 (int (*)(...))QInputDevice::qt_metacast +32 (int (*)(...))QInputDevice::qt_metacall +40 (int (*)(...))QInputDevice::~QInputDevice +48 (int (*)(...))QInputDevice::~QInputDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputDevice + size=16 align=8 + base size=16 base align=8 +QInputDevice (0x0x7f0b2c85f958) 0 + vptr=((& QInputDevice::_ZTV12QInputDevice) + 16) + QObject (0x0x7f0b25aa8b40) 0 + primary-for QInputDevice (0x0x7f0b2c85f958) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7f0b250744e0) 0 + +Class QPointingDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPointingDevice::QPrivateSignal (0x0x7f0b26c2fe40) 0 empty + +Vtable for QPointingDevice +QPointingDevice::_ZTV15QPointingDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPointingDevice) +16 (int (*)(...))QPointingDevice::metaObject +24 (int (*)(...))QPointingDevice::qt_metacast +32 (int (*)(...))QPointingDevice::qt_metacall +40 (int (*)(...))QPointingDevice::~QPointingDevice +48 (int (*)(...))QPointingDevice::~QPointingDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPointingDevice + size=16 align=8 + base size=16 base align=8 +QPointingDevice (0x0x7f0b2c8658f0) 0 + vptr=((& QPointingDevice::_ZTV15QPointingDevice) + 16) + QInputDevice (0x0x7f0b2c865958) 0 + primary-for QPointingDevice (0x0x7f0b2c8658f0) + QObject (0x0x7f0b26c2fde0) 0 + primary-for QInputDevice (0x0x7f0b2c865958) + +Class QEventPoint + size=8 align=8 + base size=8 base align=8 +QEventPoint (0x0x7f0b274af4e0) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7f0b2da5c300) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QInputEvent + size=40 align=8 + base size=40 base align=8 +QInputEvent (0x0x7f0b2c8823a8) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16) + QEvent (0x0x7f0b2b6372a0) 0 + primary-for QInputEvent (0x0x7f0b2c8823a8) + +Vtable for QPointerEvent +QPointerEvent::_ZTV13QPointerEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPointerEvent) +16 (int (*)(...))QPointerEvent::~QPointerEvent +24 (int (*)(...))QPointerEvent::~QPointerEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QPointerEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QPointerEvent::isBeginEvent +64 (int (*)(...))QPointerEvent::isUpdateEvent +72 (int (*)(...))QPointerEvent::isEndEvent + +Class QPointerEvent + size=64 align=8 + base size=64 base align=8 +QPointerEvent (0x0x7f0b2c882478) 0 + vptr=((& QPointerEvent::_ZTV13QPointerEvent) + 16) + QInputEvent (0x0x7f0b2c8824e0) 0 + primary-for QPointerEvent (0x0x7f0b2c882478) + QEvent (0x0x7f0b2b637780) 0 + primary-for QInputEvent (0x0x7f0b2c8824e0) + +Vtable for QSinglePointEvent +QSinglePointEvent::_ZTV17QSinglePointEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSinglePointEvent) +16 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +24 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QSinglePointEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QSinglePointEvent + size=80 align=8 + base size=80 base align=8 +QSinglePointEvent (0x0x7f0b2c882c30) 0 + vptr=((& QSinglePointEvent::_ZTV17QSinglePointEvent) + 16) + QPointerEvent (0x0x7f0b2c882c98) 0 + primary-for QSinglePointEvent (0x0x7f0b2c882c30) + QInputEvent (0x0x7f0b2c882d00) 0 + primary-for QPointerEvent (0x0x7f0b2c882c98) + QEvent (0x0x7f0b2a7ba660) 0 + primary-for QInputEvent (0x0x7f0b2c882d00) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QEnterEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QEnterEvent + size=80 align=8 + base size=80 base align=8 +QEnterEvent (0x0x7f0b2c882d68) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16) + QSinglePointEvent (0x0x7f0b2c882dd0) 0 + primary-for QEnterEvent (0x0x7f0b2c882d68) + QPointerEvent (0x0x7f0b2c882e38) 0 + primary-for QSinglePointEvent (0x0x7f0b2c882dd0) + QInputEvent (0x0x7f0b2c882f08) 0 + primary-for QPointerEvent (0x0x7f0b2c882e38) + QEvent (0x0x7f0b2a7bab40) 0 + primary-for QInputEvent (0x0x7f0b2c882f08) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QMouseEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QMouseEvent + size=80 align=8 + base size=80 base align=8 +QMouseEvent (0x0x7f0b2c882f70) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16) + QSinglePointEvent (0x0x7f0b2c885000) 0 + primary-for QMouseEvent (0x0x7f0b2c882f70) + QPointerEvent (0x0x7f0b2c885068) 0 + primary-for QSinglePointEvent (0x0x7f0b2c885000) + QInputEvent (0x0x7f0b2c8850d0) 0 + primary-for QPointerEvent (0x0x7f0b2c885068) + QEvent (0x0x7f0b2a7fa300) 0 + primary-for QInputEvent (0x0x7f0b2c8850d0) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QHoverEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QHoverEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QHoverEvent + size=96 align=8 + base size=96 base align=8 +QHoverEvent (0x0x7f0b2c885138) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16) + QSinglePointEvent (0x0x7f0b2c8851a0) 0 + primary-for QHoverEvent (0x0x7f0b2c885138) + QPointerEvent (0x0x7f0b2c885208) 0 + primary-for QSinglePointEvent (0x0x7f0b2c8851a0) + QInputEvent (0x0x7f0b2c885270) 0 + primary-for QPointerEvent (0x0x7f0b2c885208) + QEvent (0x0x7f0b2a7fa8a0) 0 + primary-for QInputEvent (0x0x7f0b2c885270) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QWheelEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QWheelEvent::isBeginEvent +64 (int (*)(...))QWheelEvent::isUpdateEvent +72 (int (*)(...))QWheelEvent::isEndEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7f0b2c8852d8) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16) + QSinglePointEvent (0x0x7f0b2c885340) 0 + primary-for QWheelEvent (0x0x7f0b2c8852d8) + QPointerEvent (0x0x7f0b2c8853a8) 0 + primary-for QSinglePointEvent (0x0x7f0b2c885340) + QInputEvent (0x0x7f0b2c885410) 0 + primary-for QPointerEvent (0x0x7f0b2c8853a8) + QEvent (0x0x7f0b2a7facc0) 0 + primary-for QInputEvent (0x0x7f0b2c885410) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTabletEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QTabletEvent + size=96 align=8 + base size=96 base align=8 +QTabletEvent (0x0x7f0b2c8854e0) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16) + QSinglePointEvent (0x0x7f0b2c885548) 0 + primary-for QTabletEvent (0x0x7f0b2c8854e0) + QPointerEvent (0x0x7f0b2c8855b0) 0 + primary-for QSinglePointEvent (0x0x7f0b2c885548) + QInputEvent (0x0x7f0b2c885618) 0 + primary-for QPointerEvent (0x0x7f0b2c8855b0) + QEvent (0x0x7f0b2a18f1e0) 0 + primary-for QInputEvent (0x0x7f0b2c885618) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QNativeGestureEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7f0b2c885680) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16) + QSinglePointEvent (0x0x7f0b2c8856e8) 0 + primary-for QNativeGestureEvent (0x0x7f0b2c885680) + QPointerEvent (0x0x7f0b2c885750) 0 + primary-for QSinglePointEvent (0x0x7f0b2c8856e8) + QInputEvent (0x0x7f0b2c8857b8) 0 + primary-for QPointerEvent (0x0x7f0b2c885750) + QEvent (0x0x7f0b2a18fa80) 0 + primary-for QInputEvent (0x0x7f0b2c8857b8) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QKeyEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QKeyEvent + size=88 align=8 + base size=82 base align=8 +QKeyEvent (0x0x7f0b2c885820) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16) + QInputEvent (0x0x7f0b2c885888) 0 + primary-for QKeyEvent (0x0x7f0b2c885820) + QEvent (0x0x7f0b2a18ff60) 0 + primary-for QInputEvent (0x0x7f0b2c885888) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFocusEvent::clone + +Class QFocusEvent + size=24 align=8 + base size=20 base align=8 +QFocusEvent (0x0x7f0b2c885958) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16) + QEvent (0x0x7f0b2a3425a0) 0 + primary-for QFocusEvent (0x0x7f0b2c885958) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPaintEvent::clone + +Class QPaintEvent + size=48 align=8 + base size=41 base align=8 +QPaintEvent (0x0x7f0b2c8859c0) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16) + QEvent (0x0x7f0b2a342900) 0 + primary-for QPaintEvent (0x0x7f0b2c8859c0) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QMoveEvent::clone + +Class QMoveEvent + size=32 align=8 + base size=32 base align=8 +QMoveEvent (0x0x7f0b2c885a28) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16) + QEvent (0x0x7f0b2a342c00) 0 + primary-for QMoveEvent (0x0x7f0b2c885a28) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QExposeEvent::clone + +Class QExposeEvent + size=24 align=8 + base size=24 base align=8 +QExposeEvent (0x0x7f0b2c885a90) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16) + QEvent (0x0x7f0b2a342f60) 0 + primary-for QExposeEvent (0x0x7f0b2c885a90) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPlatformSurfaceEvent::clone + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=20 base align=8 +QPlatformSurfaceEvent (0x0x7f0b2c885af8) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16) + QEvent (0x0x7f0b29e22240) 0 + primary-for QPlatformSurfaceEvent (0x0x7f0b2c885af8) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QResizeEvent::clone + +Class QResizeEvent + size=32 align=8 + base size=32 base align=8 +QResizeEvent (0x0x7f0b2c885b60) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16) + QEvent (0x0x7f0b29e22540) 0 + primary-for QResizeEvent (0x0x7f0b2c885b60) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QCloseEvent + size=16 align=8 + base size=16 base align=8 +QCloseEvent (0x0x7f0b2c885bc8) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16) + QEvent (0x0x7f0b29e228a0) 0 + primary-for QCloseEvent (0x0x7f0b2c885bc8) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QIconDragEvent + size=16 align=8 + base size=16 base align=8 +QIconDragEvent (0x0x7f0b2c885c30) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16) + QEvent (0x0x7f0b29e22900) 0 + primary-for QIconDragEvent (0x0x7f0b2c885c30) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QShowEvent + size=16 align=8 + base size=16 base align=8 +QShowEvent (0x0x7f0b2c885c98) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16) + QEvent (0x0x7f0b29e22960) 0 + primary-for QShowEvent (0x0x7f0b2c885c98) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QHideEvent + size=16 align=8 + base size=16 base align=8 +QHideEvent (0x0x7f0b2c885d00) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16) + QEvent (0x0x7f0b29e229c0) 0 + primary-for QHideEvent (0x0x7f0b2c885d00) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QContextMenuEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QContextMenuEvent + size=64 align=8 + base size=57 base align=8 +QContextMenuEvent (0x0x7f0b2c885d68) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16) + QInputEvent (0x0x7f0b2c885dd0) 0 + primary-for QContextMenuEvent (0x0x7f0b2c885d68) + QEvent (0x0x7f0b29e22a20) 0 + primary-for QInputEvent (0x0x7f0b2c885dd0) + +Class QInputMethodEvent::Attribute + size=48 align=8 + base size=48 base align=8 +QInputMethodEvent::Attribute (0x0x7f0b2917e000) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodEvent::clone + +Class QInputMethodEvent + size=96 align=8 + base size=96 base align=8 +QInputMethodEvent (0x0x7f0b2c885ea0) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16) + QEvent (0x0x7f0b29e22f60) 0 + primary-for QInputMethodEvent (0x0x7f0b2c885ea0) + +Class QInputMethodQueryEvent::QueryPair + size=40 align=8 + base size=40 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7f0b27dfa7e0) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodQueryEvent::clone + +Class QInputMethodQueryEvent + size=48 align=8 + base size=48 base align=8 +QInputMethodQueryEvent (0x0x7f0b2c88e138) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16) + QEvent (0x0x7f0b27dfa780) 0 + primary-for QInputMethodQueryEvent (0x0x7f0b2c88e138) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDropEvent::clone + +Class QDropEvent + size=64 align=8 + base size=64 base align=8 +QDropEvent (0x0x7f0b2c8973a8) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16) + QEvent (0x0x7f0b27440900) 0 + primary-for QDropEvent (0x0x7f0b2c8973a8) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragMoveEvent + size=80 align=8 + base size=80 base align=8 +QDragMoveEvent (0x0x7f0b2c897410) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16) + QDropEvent (0x0x7f0b2c897478) 0 + primary-for QDragMoveEvent (0x0x7f0b2c897410) + QEvent (0x0x7f0b271c8060) 0 + primary-for QDropEvent (0x0x7f0b2c897478) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragEnterEvent + size=80 align=8 + base size=80 base align=8 +QDragEnterEvent (0x0x7f0b2c8974e0) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16) + QDragMoveEvent (0x0x7f0b2c897548) 0 + primary-for QDragEnterEvent (0x0x7f0b2c8974e0) + QDropEvent (0x0x7f0b2c8975b0) 0 + primary-for QDragMoveEvent (0x0x7f0b2c897548) + QEvent (0x0x7f0b271c84e0) 0 + primary-for QDropEvent (0x0x7f0b2c8975b0) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QDragLeaveEvent + size=16 align=8 + base size=16 base align=8 +QDragLeaveEvent (0x0x7f0b2c897618) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16) + QEvent (0x0x7f0b271c8540) 0 + primary-for QDragLeaveEvent (0x0x7f0b2c897618) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QHelpEvent::clone + +Class QHelpEvent + size=32 align=8 + base size=32 base align=8 +QHelpEvent (0x0x7f0b2c8976e8) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16) + QEvent (0x0x7f0b271c85a0) 0 + primary-for QHelpEvent (0x0x7f0b2c8976e8) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QStatusTipEvent::clone + +Class QStatusTipEvent + size=40 align=8 + base size=40 base align=8 +QStatusTipEvent (0x0x7f0b2c897750) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16) + QEvent (0x0x7f0b271c8a80) 0 + primary-for QStatusTipEvent (0x0x7f0b2c897750) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWhatsThisClickedEvent::clone + +Class QWhatsThisClickedEvent + size=40 align=8 + base size=40 base align=8 +QWhatsThisClickedEvent (0x0x7f0b2c8977b8) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16) + QEvent (0x0x7f0b271c8d20) 0 + primary-for QWhatsThisClickedEvent (0x0x7f0b2c8977b8) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QActionEvent::clone + +Class QActionEvent + size=32 align=8 + base size=32 base align=8 +QActionEvent (0x0x7f0b2c897820) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16) + QEvent (0x0x7f0b26dc1000) 0 + primary-for QActionEvent (0x0x7f0b2c897820) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFileOpenEvent::clone + +Class QFileOpenEvent + size=48 align=8 + base size=48 base align=8 +QFileOpenEvent (0x0x7f0b2c897888) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16) + QEvent (0x0x7f0b26dc1360) 0 + primary-for QFileOpenEvent (0x0x7f0b2c897888) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QToolBarChangeEvent::clone + +Class QToolBarChangeEvent + size=24 align=8 + base size=17 base align=8 +QToolBarChangeEvent (0x0x7f0b2c8978f0) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16) + QEvent (0x0x7f0b26dc1660) 0 + primary-for QToolBarChangeEvent (0x0x7f0b2c8978f0) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QShortcutEvent::clone + +Class QShortcutEvent + size=32 align=8 + base size=29 base align=8 +QShortcutEvent (0x0x7f0b2c897958) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16) + QEvent (0x0x7f0b26dc1960) 0 + primary-for QShortcutEvent (0x0x7f0b2c897958) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWindowStateChangeEvent::clone + +Class QWindowStateChangeEvent + size=24 align=8 + base size=21 base align=8 +QWindowStateChangeEvent (0x0x7f0b2c8979c0) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16) + QEvent (0x0x7f0b26dc1cc0) 0 + primary-for QWindowStateChangeEvent (0x0x7f0b2c8979c0) + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTouchEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QTouchEvent::isBeginEvent +64 (int (*)(...))QTouchEvent::isUpdateEvent +72 (int (*)(...))QTouchEvent::isEndEvent + +Class QTouchEvent + size=80 align=8 + base size=79 base align=8 +QTouchEvent (0x0x7f0b2c897a28) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16) + QPointerEvent (0x0x7f0b2c897af8) 0 + primary-for QTouchEvent (0x0x7f0b2c897a28) + QInputEvent (0x0x7f0b2c897b60) 0 + primary-for QPointerEvent (0x0x7f0b2c897af8) + QEvent (0x0x7f0b26f03000) 0 + primary-for QInputEvent (0x0x7f0b2c897b60) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollPrepareEvent::clone + +Class QScrollPrepareEvent + size=96 align=8 + base size=96 base align=8 +QScrollPrepareEvent (0x0x7f0b2c897bc8) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16) + QEvent (0x0x7f0b26f03360) 0 + primary-for QScrollPrepareEvent (0x0x7f0b2c897bc8) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollEvent::clone + +Class QScrollEvent + size=56 align=8 + base size=52 base align=8 +QScrollEvent (0x0x7f0b2c897c30) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16) + QEvent (0x0x7f0b26f03780) 0 + primary-for QScrollEvent (0x0x7f0b2c897c30) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScreenOrientationChangeEvent::clone + +Class QScreenOrientationChangeEvent + size=32 align=8 + base size=28 base align=8 +QScreenOrientationChangeEvent (0x0x7f0b2c897c98) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16) + QEvent (0x0x7f0b26f03b40) 0 + primary-for QScreenOrientationChangeEvent (0x0x7f0b2c897c98) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QApplicationStateChangeEvent::clone + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=20 base align=8 +QApplicationStateChangeEvent (0x0x7f0b2c897d00) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16) + QEvent (0x0x7f0b26f03ea0) 0 + primary-for QApplicationStateChangeEvent (0x0x7f0b2c897d00) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7f0b26c4b1e0) 0 + +Class QFontDatabase + size=1 align=1 + base size=0 base align=1 +QFontDatabase (0x0x7f0b252dc240) 0 empty + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7f0b252dc420) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7f0b24072300) 0 + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7f0b225489c0) 0 + +Class QBrushData + size=104 align=8 + base size=104 base align=8 +QBrushData (0x0x7f0b27502540) 0 + +Class QGradient::QGradientData + size=48 align=8 + base size=48 base align=8 +QGradient::QGradientData (0x0x7f0b27502780) 0 + +Class QGradient + size=88 align=8 + base size=88 base align=8 +QGradient (0x0x7f0b27502720) 0 + +Class QLinearGradient + size=88 align=8 + base size=88 base align=8 +QLinearGradient (0x0x7f0b2c59a2d8) 0 + QGradient (0x0x7f0b2d190660) 0 + +Class QRadialGradient + size=88 align=8 + base size=88 base align=8 +QRadialGradient (0x0x7f0b2c59a3a8) 0 + QGradient (0x0x7f0b2d190780) 0 + +Class QConicalGradient + size=88 align=8 + base size=88 base align=8 +QConicalGradient (0x0x7f0b2c59a410) 0 + QGradient (0x0x7f0b2d1908a0) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7f0b2d190960) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7f0b27e279c0) 0 + +Class QTextOption + size=24 align=8 + base size=24 base align=8 +QTextOption (0x0x7f0b27e27960) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7f0b2768c720) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7f0b26a28420) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7f0b2c5b5d00) 0 + QTextFormat (0x0x7f0b2446fa80) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7f0b2c5b9c98) 0 + QTextFormat (0x0x7f0b22347d80) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7f0b2c5bebc8) 0 + QTextFormat (0x0x7f0b26d64300) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7f0b2c5c49c0) 0 + QTextCharFormat (0x0x7f0b2c5c4a28) 0 + QTextFormat (0x0x7f0b24aac1e0) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7f0b2c5cb9c0) 0 + QTextFormat (0x0x7f0b226c3060) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7f0b2c5d18f0) 0 + QTextFrameFormat (0x0x7f0b2c5d1958) 0 + QTextFormat (0x0x7f0b22354480) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7f0b2c5d68f0) 0 + QTextCharFormat (0x0x7f0b2c5d6958) 0 + QTextFormat (0x0x7f0b2340b720) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7f0b315c1c60) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7f0b26d63300) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7f0b26d63720) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7f0b26d636c0) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7f0b200e17e0) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7f0b200e1c60) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7f0b200e1f00) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7f0b281487b8) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16) + QObject (0x0x7f0b200e1ea0) 0 + primary-for QTextDocument (0x0x7f0b281487b8) + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7f0b20105720) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7f0b20156a80) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7f0b20156ae0) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=80 align=8 + base size=80 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7f0b20156b40) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7f0b26367b60) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16) + QObject (0x0x7f0b20156a20) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f0b26367b60) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7f0b201b2120) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7f0b201b2360) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7f0b201b23c0) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7f0b201b2300) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7f0b201b2c00) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7f0b201b2f60) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7f0b201df000) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7f0b201df060) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7f0b201df0c0) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7f0b201df120) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7f0b201df180) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7f0b201df240) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7f0b201df2a0) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7f0b25114f08) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16) + QAccessibleEvent (0x0x7f0b201df7e0) 0 + primary-for QAccessibleStateChangeEvent (0x0x7f0b25114f08) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7f0b25114f70) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16) + QAccessibleEvent (0x0x7f0b201dfba0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f0b25114f70) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7f0b24e11750) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f0b24e117b8) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7f0b24e11750) + QAccessibleEvent (0x0x7f0b201f9000) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f0b24e117b8) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextInsertEvent (0x0x7f0b24e11c30) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f0b24e11c98) 0 + primary-for QAccessibleTextInsertEvent (0x0x7f0b24e11c30) + QAccessibleEvent (0x0x7f0b201f9480) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f0b24e11c98) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextRemoveEvent (0x0x7f0b24e28618) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f0b24e28680) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7f0b24e28618) + QAccessibleEvent (0x0x7f0b201f98a0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f0b24e28680) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=88 align=8 + base size=88 base align=8 +QAccessibleTextUpdateEvent (0x0x7f0b24e28c98) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f0b24e28d00) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7f0b24e28c98) + QAccessibleEvent (0x0x7f0b201f9cc0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f0b24e28d00) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleValueChangeEvent (0x0x7f0b24e724e0) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16) + QAccessibleEvent (0x0x7f0b2020d180) 0 + primary-for QAccessibleValueChangeEvent (0x0x7f0b24e724e0) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7f0b24e72548) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16) + QAccessibleEvent (0x0x7f0b2020d5a0) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7f0b24e72548) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7f0b2020de40) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7f0b2021f120) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7f0b24e729c0) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16) + QObject (0x0x7f0b2021f0c0) 0 + primary-for QAccessibleBridgePlugin (0x0x7f0b24e729c0) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0 +24 0 +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7f0b24e72a28) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16) + QAccessibleInterface (0x0x7f0b2021f1e0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f0b24e72a28) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7f0b24e883a8) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16) + QAccessibleObject (0x0x7f0b24e88410) 0 + primary-for QAccessibleApplication (0x0x7f0b24e883a8) + QAccessibleInterface (0x0x7f0b2021f240) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f0b24e88410) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7f0b2021f300) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7f0b24e88c98) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16) + QObject (0x0x7f0b2021f2a0) 0 + primary-for QAccessiblePlugin (0x0x7f0b24e88c98) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7f0b2021f420) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7f0b24e88d00) 0 + vptr=((& QAction::_ZTV7QAction) + 16) + QObject (0x0x7f0b2021f3c0) 0 + primary-for QAction (0x0x7f0b24e88d00) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7f0b2021fd20) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7f0b24ed2750) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16) + QObject (0x0x7f0b2021fcc0) 0 + primary-for QActionGroup (0x0x7f0b24ed2750) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7f0b2024a000) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7f0b2024a840) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16) + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=24 align=8 + base size=24 base align=8 +QBitmap (0x0x7f0b24ee9750) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16) + QPixmap (0x0x7f0b24ee97b8) 0 + primary-for QBitmap (0x0x7f0b24ee9750) + QPaintDevice (0x0x7f0b2024ab40) 0 + primary-for QPixmap (0x0x7f0b24ee97b8) + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7f0b2027a480) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7f0b2029d660) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 47 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))-16 +320 (int (*)(...))(& _ZTI7QWindow) +328 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +336 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7f0b2028d380) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16) + QObject (0x0x7f0b2029d5a0) 0 + primary-for QWindow (0x0x7f0b2028d380) + QSurface (0x0x7f0b2029d600) 16 + vptr=((& QWindow::_ZTV7QWindow) + 328) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7f0b2029dea0) 0 + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7f0b202c9000) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7f0b2029f1a0) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16) + QObject (0x0x7f0b2029df60) 0 + primary-for QClipboard (0x0x7f0b2029f1a0) + +Class QColorTransform + size=8 align=8 + base size=8 base align=8 +QColorTransform (0x0x7f0b202c9120) 0 + +Class QColorSpace + size=8 align=8 + base size=8 base align=8 +QColorSpace (0x0x7f0b1fef50c0) 0 + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7f0b1ff20d20) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7f0b1ff20de0) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7f0b1ff23b60) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16) + QObject (0x0x7f0b1ff20d80) 0 + primary-for QDrag (0x0x7f0b1ff23b60) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7f0b1ff2f000) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QFileSystemModel::mimeTypes +224 (int (*)(...))QFileSystemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QFileSystemModel::dropMimeData +248 (int (*)(...))QFileSystemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QFileSystemModel::fetchMore +320 (int (*)(...))QFileSystemModel::canFetchMore +328 (int (*)(...))QFileSystemModel::flags +336 (int (*)(...))QFileSystemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QFileSystemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7f0b1ff23bc8) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16) + QAbstractItemModel (0x0x7f0b1ff23c30) 0 + primary-for QFileSystemModel (0x0x7f0b1ff23bc8) + QObject (0x0x7f0b1ff20f60) 0 + primary-for QAbstractItemModel (0x0x7f0b1ff23c30) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7f0b1ff2f600) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7f0b1ff55f00) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7f0b1ff6f960) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7f0b1ffb4780) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7f0b1ffaa410) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16) + QObject (0x0x7f0b1ffb4720) 0 + primary-for QGenericPlugin (0x0x7f0b1ffaa410) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7f0b1ffb4840) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7f0b1ffb4900) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7f0b1ffaa478) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16) + QObject (0x0x7f0b1ffb48a0) 0 + primary-for QInputMethod (0x0x7f0b1ffaa478) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7f0b1ffb4ba0) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7f0b1ffaa4e0) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16) + QCoreApplication (0x0x7f0b1ffaa548) 0 + primary-for QGuiApplication (0x0x7f0b1ffaa4e0) + QObject (0x0x7f0b1ffb4b40) 0 + primary-for QCoreApplication (0x0x7f0b1ffaa548) + +Class QIconEngine::ScaledPixmapArgument + size=48 align=8 + base size=48 base align=8 +QIconEngine::ScaledPixmapArgument (0x0x7f0b1ffb4e40) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::isNull +128 (int (*)(...))QIconEngine::scaledPixmap +136 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7f0b1ffb4de0) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7f0b1ffb4f00) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7f0b1ffaa5b0) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16) + QObject (0x0x7f0b1ffb4ea0) 0 + primary-for QIconEnginePlugin (0x0x7f0b1ffaa5b0) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QImageIOHandler::write +56 (int (*)(...))QImageIOHandler::option +64 (int (*)(...))QImageIOHandler::setOption +72 (int (*)(...))QImageIOHandler::supportsOption +80 (int (*)(...))QImageIOHandler::jumpToNextImage +88 (int (*)(...))QImageIOHandler::jumpToImage +96 (int (*)(...))QImageIOHandler::loopCount +104 (int (*)(...))QImageIOHandler::imageCount +112 (int (*)(...))QImageIOHandler::nextImageDelay +120 (int (*)(...))QImageIOHandler::currentImageNumber +128 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7f0b1ffde000) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7f0b1ffde240) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7f0b1ffaa618) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16) + QObject (0x0x7f0b1ffde1e0) 0 + primary-for QImageIOPlugin (0x0x7f0b1ffaa618) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7f0b1ffde600) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7f0b1ffde6c0) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7f0b1ffde780) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7f0b200344e0) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7f0b20075960) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7f0b20062e38) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16) + QObject (0x0x7f0b20075900) 0 + primary-for QMovie (0x0x7f0b20062e38) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7f0b20075d20) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7f0b20047bd0) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16) + QObject (0x0x7f0b20075c60) 0 + primary-for QOffscreenSurface (0x0x7f0b20047bd0) + QSurface (0x0x7f0b20075cc0) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160) + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7f0b20075f60) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7f0b20062ea0) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16) + QObject (0x0x7f0b20075f00) 0 + primary-for QOpenGLContextGroup (0x0x7f0b20062ea0) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7f0b1fe8c180) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7f0b20062f08) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16) + QObject (0x0x7f0b1fe8c120) 0 + primary-for QOpenGLContext (0x0x7f0b20062f08) + +Vtable for QNativeInterface::QGLXContext +QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QGLXContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QGLXContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QGLXContext (0x0x7f0b1fe8c300) 0 nearly-empty + vptr=((& QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE) + 16) + +Vtable for QNativeInterface::QEGLContext +QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QEGLContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QEGLContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QEGLContext (0x0x7f0b1fe8c360) 0 nearly-empty + vptr=((& QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE) + 16) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7f0b1fe8c3c0) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7f0b1fe8c960) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7f0b1fe8c900) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7f0b1fecd340) 0 + QOpenGLFunctions (0x0x7f0b1fb38720) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1728 align=8 + base size=1728 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7f0b1fb38a80) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2880 align=8 + base size=2880 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7f0b1fecd3a8) 0 + QOpenGLFunctionsPrivate (0x0x7f0b1fb38a20) 0 + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7f0b1fc16780) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7f0b1fc6b240) 0 + +Class QPageRanges::Range + size=8 align=4 + base size=8 base align=4 +QPageRanges::Range (0x0x7f0b1fcacea0) 0 + +Class QPageRanges + size=8 align=8 + base size=8 base align=8 +QPageRanges (0x0x7f0b1fcace40) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageLayout +96 (int (*)(...))QPagedPaintDevice::setPageSize +104 (int (*)(...))QPagedPaintDevice::setPageOrientation +112 (int (*)(...))QPagedPaintDevice::setPageMargins +120 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPagedPaintDevice + size=24 align=8 + base size=24 base align=8 +QPagedPaintDevice (0x0x7f0b1f917f70) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16) + QPaintDevice (0x0x7f0b1f924000) 0 + primary-for QPagedPaintDevice (0x0x7f0b1f917f70) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7f0b1f924180) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QPaintDeviceWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +352 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +416 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QPaintDevice::redirected +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=56 align=8 + base size=50 base align=8 +QPaintDeviceWindow (0x0x7f0b1fc71d20) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16) + QWindow (0x0x7f0b1fc71d90) 0 + primary-for QPaintDeviceWindow (0x0x7f0b1fc71d20) + QObject (0x0x7f0b1f924060) 0 + primary-for QWindow (0x0x7f0b1fc71d90) + QSurface (0x0x7f0b1f9240c0) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 344) + QPaintDevice (0x0x7f0b1f924120) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 408) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7f0b1f924360) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7f0b1f924300) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7f0b1fab4ea0) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QPaintEngine::createPixmap +200 (int (*)(...))QPaintEngine::createPixmapFromImage + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7f0b1f6de6c0) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7f0b1f6decc0) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7f0b1f728780) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7f0b1f728720) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7f0b1f797a80) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7f0b1f7b7240) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 33 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::paintEngine +128 (int (*)(...))QPdfWriter::metric +136 (int (*)(...))-16 +144 (int (*)(...))(& _ZTI10QPdfWriter) +152 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +160 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +168 (int (*)(...))QPaintDevice::devType +176 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +184 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +192 (int (*)(...))QPaintDevice::initPainter +200 (int (*)(...))QPaintDevice::redirected +208 (int (*)(...))QPaintDevice::sharedPainter +216 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +224 (int (*)(...))QPagedPaintDevice::setPageLayout +232 (int (*)(...))QPagedPaintDevice::setPageSize +240 (int (*)(...))QPagedPaintDevice::setPageOrientation +248 (int (*)(...))QPagedPaintDevice::setPageMargins +256 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPdfWriter + size=40 align=8 + base size=40 base align=8 +QPdfWriter (0x0x7f0b1f786700) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16) + QObject (0x0x7f0b1f7b7180) 0 + primary-for QPdfWriter (0x0x7f0b1f786700) + QPagedPaintDevice (0x0x7f0b1f798dd0) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 152) + QPaintDevice (0x0x7f0b1f7b71e0) 16 + primary-for QPagedPaintDevice (0x0x7f0b1f798dd0) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=24 align=8 + base size=24 base align=8 +QPicture (0x0x7f0b1f798e38) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16) + QPaintDevice (0x0x7f0b1f7b7420) 0 + primary-for QPicture (0x0x7f0b1f798e38) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7f0b1f7e7f00) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7f0b1f7e7ea0) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7f0b1f83b180) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 60 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QRasterWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QRasterWindow::redirected +336 (int (*)(...))-16 +344 (int (*)(...))(& _ZTI13QRasterWindow) +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +360 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +392 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +400 (int (*)(...))-40 +408 (int (*)(...))(& _ZTI13QRasterWindow) +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +424 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +432 (int (*)(...))QPaintDevice::devType +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +448 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +456 (int (*)(...))QPaintDevice::initPainter +464 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +472 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=56 align=8 + base size=50 base align=8 +QRasterWindow (0x0x7f0b1f8353a8) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16) + QPaintDeviceWindow (0x0x7f0b1f82c310) 0 + primary-for QRasterWindow (0x0x7f0b1f8353a8) + QWindow (0x0x7f0b1f82c380) 0 + primary-for QPaintDeviceWindow (0x0x7f0b1f82c310) + QObject (0x0x7f0b1f83b060) 0 + primary-for QWindow (0x0x7f0b1f82c380) + QSurface (0x0x7f0b1f83b0c0) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 352) + QPaintDevice (0x0x7f0b1f83b120) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 416) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7f0b1f83b360) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7f0b1f835478) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16) + QObject (0x0x7f0b1f83b300) 0 + primary-for QSessionManager (0x0x7f0b1f835478) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7f0b1f83b540) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7f0b1f8354e0) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16) + QObject (0x0x7f0b1f83b4e0) 0 + primary-for QShortcut (0x0x7f0b1f8354e0) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::multiData +48 (int (*)(...))QStandardItem::setData +56 (int (*)(...))QStandardItem::clone +64 (int (*)(...))QStandardItem::type +72 (int (*)(...))QStandardItem::read +80 (int (*)(...))QStandardItem::write +88 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7f0b1f83ba20) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7f0b1f89ba80) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::clearItemData +216 (int (*)(...))QStandardItemModel::mimeTypes +224 (int (*)(...))QStandardItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QStandardItemModel::dropMimeData +248 (int (*)(...))QStandardItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStandardItemModel::insertRows +272 (int (*)(...))QStandardItemModel::insertColumns +280 (int (*)(...))QStandardItemModel::removeRows +288 (int (*)(...))QStandardItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStandardItemModel::flags +336 (int (*)(...))QStandardItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QStandardItemModel::roleNames +376 (int (*)(...))QStandardItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7f0b1f835e38) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16) + QAbstractItemModel (0x0x7f0b1f835ea0) 0 + primary-for QStandardItemModel (0x0x7f0b1f835e38) + QObject (0x0x7f0b1f89ba20) 0 + primary-for QAbstractItemModel (0x0x7f0b1f835ea0) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7f0b1f89bde0) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7f0b1f5306c0) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7f0b1f52daf8) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16) + QObject (0x0x7f0b1f530660) 0 + primary-for QStyleHints (0x0x7f0b1f52daf8) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7f0b1f5308a0) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7f0b1f52db60) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16) + QObject (0x0x7f0b1f530840) 0 + primary-for QTextObject (0x0x7f0b1f52db60) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7f0b1f530a80) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7f0b1f52dbc8) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16) + QTextObject (0x0x7f0b1f52dc30) 0 + primary-for QTextBlockGroup (0x0x7f0b1f52dbc8) + QObject (0x0x7f0b1f530a20) 0 + primary-for QTextObject (0x0x7f0b1f52dc30) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7f0b1f530c00) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7f0b1f530cc0) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7f0b1f530d20) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7f0b1f52dc98) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16) + QTextObject (0x0x7f0b1f52dd00) 0 + primary-for QTextFrame (0x0x7f0b1f52dc98) + QObject (0x0x7f0b1f530c60) 0 + primary-for QTextObject (0x0x7f0b1f52dd00) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7f0b1f576ba0) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7f0b1f576c60) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7f0b1f576c00) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7f0b1f5ce4e0) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7f0b1f5f2360) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7f0b1f5eaea0) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16) + QObject (0x0x7f0b1f5f2300) 0 + primary-for QSyntaxHighlighter (0x0x7f0b1f5eaea0) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7f0b1f5f24e0) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7f0b1f5f2540) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7f0b1f5f2600) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7f0b1f5eaf08) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16) + QTextBlockGroup (0x0x7f0b1f5eaf70) 0 + primary-for QTextList (0x0x7f0b1f5eaf08) + QTextObject (0x0x7f0b1f60b000) 0 + primary-for QTextBlockGroup (0x0x7f0b1f5eaf70) + QObject (0x0x7f0b1f5f25a0) 0 + primary-for QTextObject (0x0x7f0b1f60b000) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7f0b1f5f29c0) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7f0b1f61f240) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7f0b1f60b068) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16) + QTextFrame (0x0x7f0b1f60b0d0) 0 + primary-for QTextTable (0x0x7f0b1f60b068) + QTextObject (0x0x7f0b1f60b138) 0 + primary-for QTextFrame (0x0x7f0b1f60b0d0) + QObject (0x0x7f0b1f61f1e0) 0 + primary-for QTextObject (0x0x7f0b1f60b138) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7f0b1f61f600) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7f0b1f60b1a0) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16) + QObject (0x0x7f0b1f61f5a0) 0 + primary-for QUndoGroup (0x0x7f0b1f60b1a0) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7f0b1f61f780) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7f0b1f61f840) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7f0b1f60b208) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16) + QObject (0x0x7f0b1f61f7e0) 0 + primary-for QUndoStack (0x0x7f0b1f60b208) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7f0b1f61fa20) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7f0b1f60b270) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16) + QObject (0x0x7f0b1f61f9c0) 0 + primary-for QValidator (0x0x7f0b1f60b270) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7f0b1f61fcc0) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7f0b1f60b2d8) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16) + QValidator (0x0x7f0b1f60b340) 0 + primary-for QIntValidator (0x0x7f0b1f60b2d8) + QObject (0x0x7f0b1f61fc60) 0 + primary-for QValidator (0x0x7f0b1f60b340) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7f0b1f61fea0) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7f0b1f60b3a8) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16) + QValidator (0x0x7f0b1f60b410) 0 + primary-for QDoubleValidator (0x0x7f0b1f60b3a8) + QObject (0x0x7f0b1f61fe40) 0 + primary-for QValidator (0x0x7f0b1f60b410) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7f0b1f6632a0) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7f0b1f60b478) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16) + QValidator (0x0x7f0b1f60b4e0) 0 + primary-for QRegularExpressionValidator (0x0x7f0b1f60b478) + QObject (0x0x7f0b1f663240) 0 + primary-for QValidator (0x0x7f0b1f60b4e0) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7f0b1f663480) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7f0b1f663420) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7f0b1f6ba420) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7f0b1f6ba540) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=40 align=8 + base size=40 base align=8 +QWidget (0x0x7f0b1f670cb0) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16) + QObject (0x0x7f0b1f6ba480) 0 + primary-for QWidget (0x0x7f0b1f670cb0) + QPaintDevice (0x0x7f0b1f6ba4e0) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7f0b1f323de0) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0 +480 0 +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=40 align=8 + base size=40 base align=8 +QAbstractButton (0x0x7f0b1f6b94e0) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16) + QWidget (0x0x7f0b1f670ee0) 0 + primary-for QAbstractButton (0x0x7f0b1f6b94e0) + QObject (0x0x7f0b1f323d20) 0 + primary-for QWidget (0x0x7f0b1f670ee0) + QPaintDevice (0x0x7f0b1f323d80) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7f0b1f343060) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI16QAbstractSpinBox) +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +504 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=40 align=8 + base size=40 base align=8 +QAbstractSpinBox (0x0x7f0b1f6b9548) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16) + QWidget (0x0x7f0b1f670f50) 0 + primary-for QAbstractSpinBox (0x0x7f0b1f6b9548) + QObject (0x0x7f0b1f323f60) 0 + primary-for QWidget (0x0x7f0b1f670f50) + QPaintDevice (0x0x7f0b1f343000) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 496) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7f0b1f3437e0) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=40 align=8 + base size=40 base align=8 +QAbstractSlider (0x0x7f0b1f6b96e8) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16) + QWidget (0x0x7f0b1f3473f0) 0 + primary-for QAbstractSlider (0x0x7f0b1f6b96e8) + QObject (0x0x7f0b1f343720) 0 + primary-for QWidget (0x0x7f0b1f3473f0) + QPaintDevice (0x0x7f0b1f343780) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7f0b1f343a20) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))QSlider::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI7QSlider) +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +472 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=40 align=8 + base size=40 base align=8 +QSlider (0x0x7f0b1f6b9750) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16) + QAbstractSlider (0x0x7f0b1f6b97b8) 0 + primary-for QSlider (0x0x7f0b1f6b9750) + QWidget (0x0x7f0b1f3479a0) 0 + primary-for QAbstractSlider (0x0x7f0b1f6b97b8) + QObject (0x0x7f0b1f343960) 0 + primary-for QWidget (0x0x7f0b1f3479a0) + QPaintDevice (0x0x7f0b1f3439c0) 16 + vptr=((& QSlider::_ZTV7QSlider) + 464) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7f0b1f343cc0) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7f0b1f6b9820) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16) + QObject (0x0x7f0b1f343c60) 0 + primary-for QStyle (0x0x7f0b1f6b9820) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7f0b1f3c1d80) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QTabBar::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))QTabBar::initStyleOption +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI7QTabBar) +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +504 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=40 align=8 + base size=40 base align=8 +QTabBar (0x0x7f0b1f6b9af8) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16) + QWidget (0x0x7f0b1f3b4460) 0 + primary-for QTabBar (0x0x7f0b1f6b9af8) + QObject (0x0x7f0b1f3c1cc0) 0 + primary-for QWidget (0x0x7f0b1f3b4460) + QPaintDevice (0x0x7f0b1f3c1d20) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 496) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7f0b1f4090c0) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))QTabWidget::initStyleOption +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI10QTabWidget) +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +480 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=40 align=8 + base size=40 base align=8 +QTabWidget (0x0x7f0b1f6b9b60) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16) + QWidget (0x0x7f0b1f3b4a80) 0 + primary-for QTabWidget (0x0x7f0b1f6b9b60) + QObject (0x0x7f0b1f409000) 0 + primary-for QWidget (0x0x7f0b1f3b4a80) + QPaintDevice (0x0x7f0b1f409060) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 472) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7f0b1f409480) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRubberBand::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QRubberBand) +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +464 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=40 align=8 + base size=40 base align=8 +QRubberBand (0x0x7f0b1f6b9bc8) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16) + QWidget (0x0x7f0b1f3b4d90) 0 + primary-for QRubberBand (0x0x7f0b1f6b9bc8) + QObject (0x0x7f0b1f4093c0) 0 + primary-for QWidget (0x0x7f0b1f3b4d90) + QPaintDevice (0x0x7f0b1f409420) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 456) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7f0b1f4098a0) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QFrame) +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +464 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=40 align=8 + base size=40 base align=8 +QFrame (0x0x7f0b1f6b9c30) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16) + QWidget (0x0x7f0b1f3b4ee0) 0 + primary-for QFrame (0x0x7f0b1f6b9c30) + QObject (0x0x7f0b1f4097e0) 0 + primary-for QWidget (0x0x7f0b1f3b4ee0) + QPaintDevice (0x0x7f0b1f409840) 16 + vptr=((& QFrame::_ZTV6QFrame) + 456) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7f0b1f409ba0) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7f0b1f6b9c98) 0 + QStyleOption (0x0x7f0b1f409c00) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7f0b22620208) 0 + QStyleOption (0x0x7f0b1f409e40) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7f0b226203a8) 0 + QStyleOption (0x0x7f0b1f4513c0) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7f0b1f6b9d00) 0 + QStyleOption (0x0x7f0b1f451600) 0 + +Class QStyleOptionHeader + size=136 align=8 + base size=132 base align=8 +QStyleOptionHeader (0x0x7f0b1f6b9d68) 0 + QStyleOption (0x0x7f0b1f451840) 0 + +Class QStyleOptionButton + size=112 align=8 + base size=112 base align=8 +QStyleOptionButton (0x0x7f0b1f6b9dd0) 0 + QStyleOption (0x0x7f0b1f451a80) 0 + +Class QStyleOptionTab + size=160 align=8 + base size=156 base align=8 +QStyleOptionTab (0x0x7f0b1f6b9f70) 0 + QStyleOption (0x0x7f0b1f499000) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7f0b1f49d270) 0 + QStyleOption (0x0x7f0b1f499720) 0 + +Class QStyleOptionProgressBar + size=112 align=8 + base size=111 base align=8 +QStyleOptionProgressBar (0x0x7f0b1f49d410) 0 + QStyleOption (0x0x7f0b1f499c60) 0 + +Class QStyleOptionMenuItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionMenuItem (0x0x7f0b1f49d478) 0 + QStyleOption (0x0x7f0b1f499ea0) 0 + +Class QStyleOptionDockWidget + size=96 align=8 + base size=92 base align=8 +QStyleOptionDockWidget (0x0x7f0b1f49d4e0) 0 + QStyleOption (0x0x7f0b1f0f1120) 0 + +Class QStyleOptionViewItem + size=208 align=8 + base size=208 base align=8 +QStyleOptionViewItem (0x0x7f0b1f49d548) 0 + QStyleOption (0x0x7f0b1f0f1360) 0 + +Class QStyleOptionToolBox + size=104 align=8 + base size=104 base align=8 +QStyleOptionToolBox (0x0x7f0b1f49d6e8) 0 + QStyleOption (0x0x7f0b1f0f18a0) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7f0b1f49d750) 0 + QStyleOption (0x0x7f0b1f0f1ae0) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7f0b1f49d7b8) 0 + QStyleOption (0x0x7f0b1f0f1d80) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=128 base align=8 +QStyleOptionSlider (0x0x7f0b1f49d820) 0 + QStyleOptionComplex (0x0x7f0b1f49d888) 0 + QStyleOption (0x0x7f0b1f125060) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7f0b1f49d958) 0 + QStyleOptionComplex (0x0x7f0b1f49d9c0) 0 + QStyleOption (0x0x7f0b1f125420) 0 + +Class QStyleOptionToolButton + size=152 align=8 + base size=152 base align=8 +QStyleOptionToolButton (0x0x7f0b1f49da90) 0 + QStyleOptionComplex (0x0x7f0b1f49daf8) 0 + QStyleOption (0x0x7f0b1f125660) 0 + +Class QStyleOptionComboBox + size=144 align=8 + base size=140 base align=8 +QStyleOptionComboBox (0x0x7f0b1f49dc98) 0 + QStyleOptionComplex (0x0x7f0b1f49dd00) 0 + QStyleOption (0x0x7f0b1f125ba0) 0 + +Class QStyleOptionTitleBar + size=112 align=8 + base size=112 base align=8 +QStyleOptionTitleBar (0x0x7f0b1f49dd68) 0 + QStyleOptionComplex (0x0x7f0b1f49ddd0) 0 + QStyleOption (0x0x7f0b1f125de0) 0 + +Class QStyleOptionGroupBox + size=136 align=8 + base size=132 base align=8 +QStyleOptionGroupBox (0x0x7f0b1f49de38) 0 + QStyleOptionComplex (0x0x7f0b1f49dea0) 0 + QStyleOption (0x0x7f0b1f15c000) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7f0b1f49df08) 0 + QStyleOptionComplex (0x0x7f0b1f49df70) 0 + QStyleOption (0x0x7f0b1f15c240) 0 + +Class QStyleOptionGraphicsItem + size=96 align=8 + base size=96 base align=8 +QStyleOptionGraphicsItem (0x0x7f0b1f49d8f0) 0 + QStyleOption (0x0x7f0b1f15c480) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7f0b1f15c7e0) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7f0b1f174000) 0 + QStyleHintReturn (0x0x7f0b1f15c840) 0 + +Class QStyleHintReturnVariant + size=40 align=8 + base size=40 base align=8 +QStyleHintReturnVariant (0x0x7f0b1f1740d0) 0 + QStyleHintReturn (0x0x7f0b1f15c8a0) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7f0b1f15ca20) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7f0b1f1741a0) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16) + QObject (0x0x7f0b1f15c9c0) 0 + primary-for QAbstractItemDelegate (0x0x7f0b1f1741a0) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7f0b1f15cc60) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI19QAbstractScrollArea) +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +496 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=40 align=8 + base size=40 base align=8 +QAbstractScrollArea (0x0x7f0b1f174208) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16) + QFrame (0x0x7f0b1f174270) 0 + primary-for QAbstractScrollArea (0x0x7f0b1f174208) + QWidget (0x0x7f0b1f17d150) 0 + primary-for QFrame (0x0x7f0b1f174270) + QObject (0x0x7f0b1f15cba0) 0 + primary-for QWidget (0x0x7f0b1f17d150) + QPaintDevice (0x0x7f0b1f15cc00) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 488) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7f0b1f15cf60) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QAbstractItemView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))__cxa_pure_virtual +736 (int (*)(...))__cxa_pure_virtual +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI17QAbstractItemView) +800 0 +808 0 +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=40 align=8 + base size=40 base align=8 +QAbstractItemView (0x0x7f0b1f1742d8) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16) + QAbstractScrollArea (0x0x7f0b1f174340) 0 + primary-for QAbstractItemView (0x0x7f0b1f1742d8) + QFrame (0x0x7f0b1f1743a8) 0 + primary-for QAbstractScrollArea (0x0x7f0b1f174340) + QWidget (0x0x7f0b1f17d310) 0 + primary-for QFrame (0x0x7f0b1f1743a8) + QObject (0x0x7f0b1f15cea0) 0 + primary-for QWidget (0x0x7f0b1f17d310) + QPaintDevice (0x0x7f0b1f15cf00) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 800) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7f0b1f1b4850) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16) + QAccessibleObject (0x0x7f0b1f174548) 0 + primary-for QAccessibleWidget (0x0x7f0b1f1b4850) + QAccessibleInterface (0x0x7f0b1f1c6900) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f0b1f174548) + QAccessibleActionInterface (0x0x7f0b1f1c6960) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7f0b1f1c6a80) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7f0b1f1745b0) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16) + QGuiApplication (0x0x7f0b1f174618) 0 + primary-for QApplication (0x0x7f0b1f1745b0) + QCoreApplication (0x0x7f0b1f174680) 0 + primary-for QGuiApplication (0x0x7f0b1f174618) + QObject (0x0x7f0b1f1c6a20) 0 + primary-for QCoreApplication (0x0x7f0b1f174680) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7f0b1f1c6cc0) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7f0b1f1746e8) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16) + QLayoutItem (0x0x7f0b1f1c6f00) 0 + primary-for QSpacerItem (0x0x7f0b1f1746e8) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7f0b1f174750) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16) + QLayoutItem (0x0x7f0b1f205180) 0 + primary-for QWidgetItem (0x0x7f0b1f174750) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7f0b1f1747b8) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16) + QWidgetItem (0x0x7f0b1f174820) 0 + primary-for QWidgetItemV2 (0x0x7f0b1f1747b8) + QLayoutItem (0x0x7f0b1f205360) 0 + primary-for QWidgetItem (0x0x7f0b1f174820) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7f0b1f2054e0) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QLayout::setGeometry +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI7QLayout) +272 0 +280 0 +288 (int (*)(...))__cxa_pure_virtual +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +312 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +320 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QLayoutItem::hasHeightForWidth +352 (int (*)(...))QLayoutItem::heightForWidth +360 (int (*)(...))QLayoutItem::minimumHeightForWidth +368 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7f0b1f1b49a0) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16) + QObject (0x0x7f0b1f205420) 0 + primary-for QLayout (0x0x7f0b1f1b49a0) + QLayoutItem (0x0x7f0b1f205480) 16 + vptr=((& QLayout::_ZTV7QLayout) + 272) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7f0b1f2057e0) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::spacing +120 (int (*)(...))QGridLayout::setSpacing +128 (int (*)(...))QGridLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QGridLayout::addItem +152 (int (*)(...))QGridLayout::expandingDirections +160 (int (*)(...))QGridLayout::minimumSize +168 (int (*)(...))QGridLayout::maximumSize +176 (int (*)(...))QGridLayout::setGeometry +184 (int (*)(...))QGridLayout::itemAt +192 (int (*)(...))QGridLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QGridLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QGridLayout::sizeHint +264 (int (*)(...))QGridLayout::hasHeightForWidth +272 (int (*)(...))QGridLayout::heightForWidth +280 (int (*)(...))QGridLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QGridLayout) +304 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +312 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +320 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +328 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +336 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +352 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +384 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +392 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +400 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7f0b1f174888) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16) + QLayout (0x0x7f0b1f1b4cb0) 0 + primary-for QGridLayout (0x0x7f0b1f174888) + QObject (0x0x7f0b1f205720) 0 + primary-for QLayout (0x0x7f0b1f1b4cb0) + QLayoutItem (0x0x7f0b1f205780) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 304) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7f0b1f205a80) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI10QBoxLayout) +304 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +312 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7f0b1f1748f0) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16) + QLayout (0x0x7f0b1f1b4d20) 0 + primary-for QBoxLayout (0x0x7f0b1f1748f0) + QObject (0x0x7f0b1f2059c0) 0 + primary-for QLayout (0x0x7f0b1f1b4d20) + QLayoutItem (0x0x7f0b1f205a20) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 304) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7f0b1f205cc0) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QHBoxLayout) +304 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +312 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7f0b1f174958) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16) + QBoxLayout (0x0x7f0b1f1749c0) 0 + primary-for QHBoxLayout (0x0x7f0b1f174958) + QLayout (0x0x7f0b1f23c070) 0 + primary-for QBoxLayout (0x0x7f0b1f1749c0) + QObject (0x0x7f0b1f205c00) 0 + primary-for QLayout (0x0x7f0b1f23c070) + QLayoutItem (0x0x7f0b1f205c60) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 304) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7f0b1f205e40) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QVBoxLayout) +304 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +312 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7f0b1f174a28) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16) + QBoxLayout (0x0x7f0b1f174a90) 0 + primary-for QVBoxLayout (0x0x7f0b1f174a28) + QLayout (0x0x7f0b1f23c0e0) 0 + primary-for QBoxLayout (0x0x7f0b1f174a90) + QObject (0x0x7f0b1f205d80) 0 + primary-for QLayout (0x0x7f0b1f23c0e0) + QLayoutItem (0x0x7f0b1f205de0) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 304) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7f0b1f205f60) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7f0b1f174af8) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16) + QObject (0x0x7f0b1f205f00) 0 + primary-for QButtonGroup (0x0x7f0b1f174af8) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7f0b1f25f1e0) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=40 align=8 + base size=40 base align=8 +QCalendarWidget (0x0x7f0b1f174b60) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16) + QWidget (0x0x7f0b1f23c150) 0 + primary-for QCalendarWidget (0x0x7f0b1f174b60) + QObject (0x0x7f0b1f25f120) 0 + primary-for QWidget (0x0x7f0b1f23c150) + QPaintDevice (0x0x7f0b1f25f180) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7f0b1f25f660) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))QCheckBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QCheckBox) +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +488 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=40 align=8 + base size=40 base align=8 +QCheckBox (0x0x7f0b1f174bc8) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16) + QAbstractButton (0x0x7f0b1f174c30) 0 + primary-for QCheckBox (0x0x7f0b1f174bc8) + QWidget (0x0x7f0b1f23c540) 0 + primary-for QAbstractButton (0x0x7f0b1f174c30) + QObject (0x0x7f0b1f25f5a0) 0 + primary-for QWidget (0x0x7f0b1f23c540) + QPaintDevice (0x0x7f0b1f25f600) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 480) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7f0b1f25f8a0) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=40 align=8 + base size=40 base align=8 +QDialog (0x0x7f0b1f174c98) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16) + QWidget (0x0x7f0b1f23c5b0) 0 + primary-for QDialog (0x0x7f0b1f174c98) + QObject (0x0x7f0b1f25f7e0) 0 + primary-for QWidget (0x0x7f0b1f23c5b0) + QPaintDevice (0x0x7f0b1f25f840) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7f0b1f25fae0) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=40 align=8 + base size=40 base align=8 +QColorDialog (0x0x7f0b1f174d00) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16) + QDialog (0x0x7f0b1f174d68) 0 + primary-for QColorDialog (0x0x7f0b1f174d00) + QWidget (0x0x7f0b1f23c700) 0 + primary-for QDialog (0x0x7f0b1f174d68) + QObject (0x0x7f0b1f25fa20) 0 + primary-for QWidget (0x0x7f0b1f23c700) + QPaintDevice (0x0x7f0b1f25fa80) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7f0b1f2b0060) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7f0b1f2b0180) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 109 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QColumnView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QColumnView::setModel +480 (int (*)(...))QColumnView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QColumnView::visualRect +504 (int (*)(...))QColumnView::scrollTo +512 (int (*)(...))QColumnView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QColumnView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QColumnView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QColumnView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QColumnView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QColumnView::moveCursor +704 (int (*)(...))QColumnView::horizontalOffset +712 (int (*)(...))QColumnView::verticalOffset +720 (int (*)(...))QColumnView::isIndexHidden +728 (int (*)(...))QColumnView::setSelection +736 (int (*)(...))QColumnView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QColumnView::createColumn +792 (int (*)(...))-16 +800 (int (*)(...))(& _ZTI11QColumnView) +808 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +816 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=40 align=8 + base size=40 base align=8 +QColumnView (0x0x7f0b1f174f08) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16) + QAbstractItemView (0x0x7f0b1f174f70) 0 + primary-for QColumnView (0x0x7f0b1f174f08) + QAbstractScrollArea (0x0x7f0b1f2b8000) 0 + primary-for QAbstractItemView (0x0x7f0b1f174f70) + QFrame (0x0x7f0b1f2b8068) 0 + primary-for QAbstractScrollArea (0x0x7f0b1f2b8000) + QWidget (0x0x7f0b1f23ca10) 0 + primary-for QFrame (0x0x7f0b1f2b8068) + QObject (0x0x7f0b1f2b00c0) 0 + primary-for QWidget (0x0x7f0b1f23ca10) + QPaintDevice (0x0x7f0b1f2b0120) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 808) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7f0b1f2b03c0) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QComboBox) +480 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +488 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=40 align=8 + base size=40 base align=8 +QComboBox (0x0x7f0b1f2b80d0) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16) + QWidget (0x0x7f0b1f23ca80) 0 + primary-for QComboBox (0x0x7f0b1f2b80d0) + QObject (0x0x7f0b1f2b0300) 0 + primary-for QWidget (0x0x7f0b1f23ca80) + QPaintDevice (0x0x7f0b1f2b0360) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 480) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7f0b1f2b0960) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QPushButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QPushButton) +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +488 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=40 align=8 + base size=40 base align=8 +QPushButton (0x0x7f0b1f2b8138) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16) + QAbstractButton (0x0x7f0b1f2b81a0) 0 + primary-for QPushButton (0x0x7f0b1f2b8138) + QWidget (0x0x7f0b1f23cf50) 0 + primary-for QAbstractButton (0x0x7f0b1f2b81a0) + QObject (0x0x7f0b1f2b08a0) 0 + primary-for QWidget (0x0x7f0b1f23cf50) + QPaintDevice (0x0x7f0b1f2b0900) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 480) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7f0b1f2b0ba0) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QPushButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI18QCommandLinkButton) +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +488 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=40 align=8 + base size=40 base align=8 +QCommandLinkButton (0x0x7f0b1f2b8208) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16) + QPushButton (0x0x7f0b1f2b8270) 0 + primary-for QCommandLinkButton (0x0x7f0b1f2b8208) + QAbstractButton (0x0x7f0b1f2b82d8) 0 + primary-for QPushButton (0x0x7f0b1f2b8270) + QWidget (0x0x7f0b1eef4000) 0 + primary-for QAbstractButton (0x0x7f0b1f2b82d8) + QObject (0x0x7f0b1f2b0ae0) 0 + primary-for QWidget (0x0x7f0b1eef4000) + QPaintDevice (0x0x7f0b1f2b0b40) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 480) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7f0b1f2b0d80) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7f0b1f2b8340) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16) + QStyle (0x0x7f0b1f2b83a8) 0 + primary-for QCommonStyle (0x0x7f0b1f2b8340) + QObject (0x0x7f0b1f2b0d20) 0 + primary-for QStyle (0x0x7f0b1f2b83a8) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7f0b1f2b0f60) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7f0b1f2b8410) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16) + QObject (0x0x7f0b1f2b0f00) 0 + primary-for QCompleter (0x0x7f0b1f2b8410) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7f0b1ef20300) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7f0b1f2b8478) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16) + QObject (0x0x7f0b1ef202a0) 0 + primary-for QDataWidgetMapper (0x0x7f0b1f2b8478) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7f0b1ef20600) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QDateTimeEdit) +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +520 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=40 align=8 + base size=40 base align=8 +QDateTimeEdit (0x0x7f0b1f2b84e0) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16) + QAbstractSpinBox (0x0x7f0b1f2b8548) 0 + primary-for QDateTimeEdit (0x0x7f0b1f2b84e0) + QWidget (0x0x7f0b1eef43f0) 0 + primary-for QAbstractSpinBox (0x0x7f0b1f2b8548) + QObject (0x0x7f0b1ef20540) 0 + primary-for QWidget (0x0x7f0b1eef43f0) + QPaintDevice (0x0x7f0b1ef205a0) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 512) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7f0b1ef20ba0) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QTimeEdit) +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +520 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=40 align=8 + base size=40 base align=8 +QTimeEdit (0x0x7f0b1f2b86e8) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16) + QDateTimeEdit (0x0x7f0b1f2b8750) 0 + primary-for QTimeEdit (0x0x7f0b1f2b86e8) + QAbstractSpinBox (0x0x7f0b1f2b87b8) 0 + primary-for QDateTimeEdit (0x0x7f0b1f2b8750) + QWidget (0x0x7f0b1eef48c0) 0 + primary-for QAbstractSpinBox (0x0x7f0b1f2b87b8) + QObject (0x0x7f0b1ef20ae0) 0 + primary-for QWidget (0x0x7f0b1eef48c0) + QPaintDevice (0x0x7f0b1ef20b40) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 512) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7f0b1ef20d20) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QDateEdit) +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +520 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=40 align=8 + base size=40 base align=8 +QDateEdit (0x0x7f0b1f2b8820) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16) + QDateTimeEdit (0x0x7f0b1f2b8888) 0 + primary-for QDateEdit (0x0x7f0b1f2b8820) + QAbstractSpinBox (0x0x7f0b1f2b88f0) 0 + primary-for QDateTimeEdit (0x0x7f0b1f2b8888) + QWidget (0x0x7f0b1eef4930) 0 + primary-for QAbstractSpinBox (0x0x7f0b1f2b88f0) + QObject (0x0x7f0b1ef20c60) 0 + primary-for QWidget (0x0x7f0b1eef4930) + QPaintDevice (0x0x7f0b1ef20cc0) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 512) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7f0b1ef7b000) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))QDial::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI5QDial) +464 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +472 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=40 align=8 + base size=40 base align=8 +QDial (0x0x7f0b1f2b8958) 0 + vptr=((& QDial::_ZTV5QDial) + 16) + QAbstractSlider (0x0x7f0b1f2b89c0) 0 + primary-for QDial (0x0x7f0b1f2b8958) + QWidget (0x0x7f0b1eef49a0) 0 + primary-for QAbstractSlider (0x0x7f0b1f2b89c0) + QObject (0x0x7f0b1ef20f00) 0 + primary-for QWidget (0x0x7f0b1eef49a0) + QPaintDevice (0x0x7f0b1ef20f60) 16 + vptr=((& QDial::_ZTV5QDial) + 464) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7f0b1ef7b240) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=40 align=8 + base size=40 base align=8 +QDialogButtonBox (0x0x7f0b1f2b8a28) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16) + QWidget (0x0x7f0b1eef4a10) 0 + primary-for QDialogButtonBox (0x0x7f0b1f2b8a28) + QObject (0x0x7f0b1ef7b180) 0 + primary-for QWidget (0x0x7f0b1eef4a10) + QPaintDevice (0x0x7f0b1ef7b1e0) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7f0b1ef7b840) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDockWidget::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QDockWidget) +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +464 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=40 align=8 + base size=40 base align=8 +QDockWidget (0x0x7f0b1f2b8bc8) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16) + QWidget (0x0x7f0b1ef84af0) 0 + primary-for QDockWidget (0x0x7f0b1f2b8bc8) + QObject (0x0x7f0b1ef7b780) 0 + primary-for QWidget (0x0x7f0b1ef84af0) + QPaintDevice (0x0x7f0b1ef7b7e0) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 456) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7f0b1ef7be40) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7f0b1efee4e0) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=40 align=8 + base size=40 base align=8 +QErrorMessage (0x0x7f0b1f2b8ea0) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16) + QDialog (0x0x7f0b1f2b8f08) 0 + primary-for QErrorMessage (0x0x7f0b1f2b8ea0) + QWidget (0x0x7f0b1eff0540) 0 + primary-for QDialog (0x0x7f0b1f2b8f08) + QObject (0x0x7f0b1efee420) 0 + primary-for QWidget (0x0x7f0b1eff0540) + QPaintDevice (0x0x7f0b1efee480) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7f0b1efee720) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=40 align=8 + base size=40 base align=8 +QFileDialog (0x0x7f0b1f2b8f70) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16) + QDialog (0x0x7f0b1f00b000) 0 + primary-for QFileDialog (0x0x7f0b1f2b8f70) + QWidget (0x0x7f0b1eff05b0) 0 + primary-for QDialog (0x0x7f0b1f00b000) + QObject (0x0x7f0b1efee660) 0 + primary-for QWidget (0x0x7f0b1eff05b0) + QPaintDevice (0x0x7f0b1efee6c0) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7f0b1f00b1a0) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16) + QAbstractFileIconProvider (0x0x7f0b1f054000) 0 + primary-for QFileIconProvider (0x0x7f0b1f00b1a0) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7f0b1f0541e0) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFocusFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QFocusFrame) +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +464 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=40 align=8 + base size=40 base align=8 +QFocusFrame (0x0x7f0b1f00b208) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16) + QWidget (0x0x7f0b1eff0ee0) 0 + primary-for QFocusFrame (0x0x7f0b1f00b208) + QObject (0x0x7f0b1f054120) 0 + primary-for QWidget (0x0x7f0b1eff0ee0) + QPaintDevice (0x0x7f0b1f054180) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 456) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7f0b1f054420) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI13QFontComboBox) +480 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +488 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=40 align=8 + base size=40 base align=8 +QFontComboBox (0x0x7f0b1f00b270) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16) + QComboBox (0x0x7f0b1f00b2d8) 0 + primary-for QFontComboBox (0x0x7f0b1f00b270) + QWidget (0x0x7f0b1eff0f50) 0 + primary-for QComboBox (0x0x7f0b1f00b2d8) + QObject (0x0x7f0b1f054360) 0 + primary-for QWidget (0x0x7f0b1eff0f50) + QPaintDevice (0x0x7f0b1f0543c0) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 480) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7f0b1f054a20) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=40 align=8 + base size=40 base align=8 +QFontDialog (0x0x7f0b1f00b478) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16) + QDialog (0x0x7f0b1f00b4e0) 0 + primary-for QFontDialog (0x0x7f0b1f00b478) + QWidget (0x0x7f0b1f067230) 0 + primary-for QDialog (0x0x7f0b1f00b4e0) + QObject (0x0x7f0b1f054960) 0 + primary-for QWidget (0x0x7f0b1f067230) + QPaintDevice (0x0x7f0b1f0549c0) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7f0b1f0bd060) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7f0b1f0bd0c0) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::spacing +120 (int (*)(...))QFormLayout::setSpacing +128 (int (*)(...))QFormLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QFormLayout::addItem +152 (int (*)(...))QFormLayout::expandingDirections +160 (int (*)(...))QFormLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QFormLayout::setGeometry +184 (int (*)(...))QFormLayout::itemAt +192 (int (*)(...))QFormLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QFormLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QFormLayout::sizeHint +264 (int (*)(...))QFormLayout::hasHeightForWidth +272 (int (*)(...))QFormLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI11QFormLayout) +296 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +304 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +312 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +320 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +344 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +376 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7f0b1f00b680) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16) + QLayout (0x0x7f0b1f067540) 0 + primary-for QFormLayout (0x0x7f0b1f00b680) + QObject (0x0x7f0b1f054f60) 0 + primary-for QLayout (0x0x7f0b1f067540) + QLayoutItem (0x0x7f0b1f0bd000) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 296) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7f0b1ecebba0) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7f0b1ecf7138) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16) + QObject (0x0x7f0b1ecebb40) 0 + primary-for QGesture (0x0x7f0b1ecf7138) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7f0b1ecebd80) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7f0b1ecf71a0) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16) + QGesture (0x0x7f0b1ecf7208) 0 + primary-for QPanGesture (0x0x7f0b1ecf71a0) + QObject (0x0x7f0b1ecebd20) 0 + primary-for QGesture (0x0x7f0b1ecf7208) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7f0b1ecebf60) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7f0b1ecf7270) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16) + QGesture (0x0x7f0b1ecf72d8) 0 + primary-for QPinchGesture (0x0x7f0b1ecf7270) + QObject (0x0x7f0b1ecebf00) 0 + primary-for QGesture (0x0x7f0b1ecf72d8) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7f0b1ed1a720) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7f0b1ecf7478) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16) + QGesture (0x0x7f0b1ecf74e0) 0 + primary-for QSwipeGesture (0x0x7f0b1ecf7478) + QObject (0x0x7f0b1ed1a6c0) 0 + primary-for QGesture (0x0x7f0b1ecf74e0) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7f0b1ed1a9c0) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7f0b1ecf7548) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16) + QGesture (0x0x7f0b1ecf75b0) 0 + primary-for QTapGesture (0x0x7f0b1ecf7548) + QObject (0x0x7f0b1ed1a960) 0 + primary-for QGesture (0x0x7f0b1ecf75b0) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7f0b1ed1aba0) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7f0b1ecf7618) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16) + QGesture (0x0x7f0b1ecf7680) 0 + primary-for QTapAndHoldGesture (0x0x7f0b1ecf7618) + QObject (0x0x7f0b1ed1ab40) 0 + primary-for QGesture (0x0x7f0b1ecf7680) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGestureEvent + size=64 align=8 + base size=64 base align=8 +QGestureEvent (0x0x7f0b1ecf76e8) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16) + QEvent (0x0x7f0b1ed1ad20) 0 + primary-for QGestureEvent (0x0x7f0b1ecf76e8) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0 +24 0 +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7f0b1ed5f9c0) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7f0b1ed5fd20) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7f0b1ee31ea0) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0 +48 0 +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0 +136 0 +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7f0b1edef380) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16) + QObject (0x0x7f0b1ee31de0) 0 + primary-for QGraphicsObject (0x0x7f0b1edef380) + QGraphicsItem (0x0x7f0b1ee31e40) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7f0b1ee33138) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16) + QGraphicsItem (0x0x7f0b1ee31f60) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f0b1ee33138) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7f0b1ee331a0) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f0b1ee33208) 0 + primary-for QGraphicsPathItem (0x0x7f0b1ee331a0) + QGraphicsItem (0x0x7f0b1ee6f0c0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f0b1ee33208) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7f0b1ee33270) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f0b1ee332d8) 0 + primary-for QGraphicsRectItem (0x0x7f0b1ee33270) + QGraphicsItem (0x0x7f0b1ee6f1e0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f0b1ee332d8) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7f0b1ee33340) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f0b1ee333a8) 0 + primary-for QGraphicsEllipseItem (0x0x7f0b1ee33340) + QGraphicsItem (0x0x7f0b1ee6f360) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f0b1ee333a8) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7f0b1ee33410) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f0b1ee33478) 0 + primary-for QGraphicsPolygonItem (0x0x7f0b1ee33410) + QGraphicsItem (0x0x7f0b1ee6f4e0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f0b1ee33478) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7f0b1ee334e0) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16) + QGraphicsItem (0x0x7f0b1ee6f600) 0 + primary-for QGraphicsLineItem (0x0x7f0b1ee334e0) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7f0b1ee33548) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16) + QGraphicsItem (0x0x7f0b1ee6f780) 0 + primary-for QGraphicsPixmapItem (0x0x7f0b1ee33548) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7f0b1ee6f9c0) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7f0b1ee335b0) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16) + QGraphicsObject (0x0x7f0b1edef7e0) 0 + primary-for QGraphicsTextItem (0x0x7f0b1ee335b0) + QObject (0x0x7f0b1ee6f900) 0 + primary-for QGraphicsObject (0x0x7f0b1edef7e0) + QGraphicsItem (0x0x7f0b1ee6f960) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7f0b1ee336e8) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f0b1ee33750) 0 + primary-for QGraphicsSimpleTextItem (0x0x7f0b1ee336e8) + QGraphicsItem (0x0x7f0b1ee6fc60) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f0b1ee33750) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7f0b1ee337b8) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16) + QGraphicsItem (0x0x7f0b1ee6fd80) 0 + primary-for QGraphicsItemGroup (0x0x7f0b1ee337b8) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7f0b1eae90c0) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))QGraphicsLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7f0b1ee33820) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16) + QGraphicsLayoutItem (0x0x7f0b1eae9780) 0 + primary-for QGraphicsLayout (0x0x7f0b1ee33820) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7f0b1eae9a80) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7f0b1ee33888) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16) + QObject (0x0x7f0b1eae9a20) 0 + primary-for QGraphicsAnchor (0x0x7f0b1ee33888) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsAnchorLayout::sizeHint +72 (int (*)(...))QGraphicsAnchorLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsAnchorLayout::count +96 (int (*)(...))QGraphicsAnchorLayout::itemAt +104 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7f0b1ee338f0) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16) + QGraphicsLayout (0x0x7f0b1ee33958) 0 + primary-for QGraphicsAnchorLayout (0x0x7f0b1ee338f0) + QGraphicsLayoutItem (0x0x7f0b1eae9c00) 0 + primary-for QGraphicsLayout (0x0x7f0b1ee33958) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7f0b1eae9d80) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7f0b1ee339c0) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16) + QObject (0x0x7f0b1eae9d20) 0 + primary-for QGraphicsEffect (0x0x7f0b1ee339c0) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7f0b1eb39360) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7f0b1ee33b60) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16) + QGraphicsEffect (0x0x7f0b1ee33bc8) 0 + primary-for QGraphicsColorizeEffect (0x0x7f0b1ee33b60) + QObject (0x0x7f0b1eb39300) 0 + primary-for QGraphicsEffect (0x0x7f0b1ee33bc8) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7f0b1eb39540) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7f0b1ee33c30) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16) + QGraphicsEffect (0x0x7f0b1ee33c98) 0 + primary-for QGraphicsBlurEffect (0x0x7f0b1ee33c30) + QObject (0x0x7f0b1eb394e0) 0 + primary-for QGraphicsEffect (0x0x7f0b1ee33c98) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7f0b1eb39ba0) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7f0b1ee33e38) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16) + QGraphicsEffect (0x0x7f0b1ee33ea0) 0 + primary-for QGraphicsDropShadowEffect (0x0x7f0b1ee33e38) + QObject (0x0x7f0b1eb39b40) 0 + primary-for QGraphicsEffect (0x0x7f0b1ee33ea0) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7f0b1eb8f000) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7f0b1ee33f08) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16) + QGraphicsEffect (0x0x7f0b1ee33f70) 0 + primary-for QGraphicsOpacityEffect (0x0x7f0b1ee33f08) + QObject (0x0x7f0b1eb39f60) 0 + primary-for QGraphicsEffect (0x0x7f0b1ee33f70) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsGridLayout::sizeHint +72 (int (*)(...))QGraphicsGridLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsGridLayout::count +96 (int (*)(...))QGraphicsGridLayout::itemAt +104 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7f0b1eb99000) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16) + QGraphicsLayout (0x0x7f0b1eb99068) 0 + primary-for QGraphicsGridLayout (0x0x7f0b1eb99000) + QGraphicsLayoutItem (0x0x7f0b1eb8f180) 0 + primary-for QGraphicsLayout (0x0x7f0b1eb99068) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7f0b1eb8f360) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7f0b1eb991a0) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16) + QObject (0x0x7f0b1eb8f300) 0 + primary-for QGraphicsItemAnimation (0x0x7f0b1eb991a0) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsLinearLayout::sizeHint +72 (int (*)(...))QGraphicsLinearLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsLinearLayout::count +96 (int (*)(...))QGraphicsLinearLayout::itemAt +104 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7f0b1eb99208) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16) + QGraphicsLayout (0x0x7f0b1eb99270) 0 + primary-for QGraphicsLinearLayout (0x0x7f0b1eb99208) + QGraphicsLayoutItem (0x0x7f0b1eb8f420) 0 + primary-for QGraphicsLayout (0x0x7f0b1eb99270) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7f0b1eb8f720) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 93 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsLayoutItem::isEmpty +736 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7f0b1eb25380) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16) + QGraphicsObject (0x0x7f0b1eb253f0) 0 + primary-for QGraphicsWidget (0x0x7f0b1eb25380) + QObject (0x0x7f0b1eb8f600) 0 + primary-for QGraphicsObject (0x0x7f0b1eb253f0) + QGraphicsItem (0x0x7f0b1eb8f660) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376) + QGraphicsLayoutItem (0x0x7f0b1eb8f6c0) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7f0b1eb8fba0) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsLayoutItem::isEmpty +856 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7f0b1eb993a8) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16) + QGraphicsWidget (0x0x7f0b1eb25540) 0 + primary-for QGraphicsProxyWidget (0x0x7f0b1eb993a8) + QGraphicsObject (0x0x7f0b1eb255b0) 0 + primary-for QGraphicsWidget (0x0x7f0b1eb25540) + QObject (0x0x7f0b1eb8fa80) 0 + primary-for QGraphicsObject (0x0x7f0b1eb255b0) + QGraphicsItem (0x0x7f0b1eb8fae0) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496) + QGraphicsLayoutItem (0x0x7f0b1eb8fb40) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7f0b1eb8ff00) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems +272 (int (*)(...))QGraphicsScene::focusNextPrevChild + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7f0b1eb995b0) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16) + QObject (0x0x7f0b1eb8fea0) 0 + primary-for QGraphicsScene (0x0x7f0b1eb995b0) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneEvent (0x0x7f0b1eb99f70) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16) + QEvent (0x0x7f0b1ec77240) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b1eb99f70) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMouseEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMouseEvent (0x0x7f0b1ec93000) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b1ec93068) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7f0b1ec93000) + QEvent (0x0x7f0b1ec77420) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b1ec93068) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneWheelEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneWheelEvent (0x0x7f0b1ec930d0) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b1ec93138) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7f0b1ec930d0) + QEvent (0x0x7f0b1ec77540) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b1ec93138) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneContextMenuEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7f0b1ec931a0) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b1ec93208) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7f0b1ec931a0) + QEvent (0x0x7f0b1ec77660) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b1ec93208) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHoverEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHoverEvent (0x0x7f0b1ec93270) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b1ec932d8) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7f0b1ec93270) + QEvent (0x0x7f0b1ec77780) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b1ec932d8) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHelpEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHelpEvent (0x0x7f0b1ec93340) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b1ec933a8) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7f0b1ec93340) + QEvent (0x0x7f0b1ec778a0) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b1ec933a8) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneDragDropEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneDragDropEvent (0x0x7f0b1ec93410) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b1ec93478) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7f0b1ec93410) + QEvent (0x0x7f0b1ec779c0) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b1ec93478) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneResizeEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneResizeEvent (0x0x7f0b1ec934e0) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b1ec93548) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7f0b1ec934e0) + QEvent (0x0x7f0b1ec77ae0) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b1ec93548) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMoveEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMoveEvent (0x0x7f0b1ec935b0) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b1ec93618) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7f0b1ec935b0) + QEvent (0x0x7f0b1ec77c00) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b1ec93618) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7f0b1ec77d80) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7f0b1ec93680) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16) + QObject (0x0x7f0b1ec77d20) 0 + primary-for QGraphicsTransform (0x0x7f0b1ec93680) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7f0b1ec77f60) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7f0b1ec936e8) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16) + QGraphicsTransform (0x0x7f0b1ec93750) 0 + primary-for QGraphicsScale (0x0x7f0b1ec936e8) + QObject (0x0x7f0b1ec77f00) 0 + primary-for QGraphicsTransform (0x0x7f0b1ec93750) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7f0b1e8de180) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7f0b1ec937b8) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16) + QGraphicsTransform (0x0x7f0b1ec93820) 0 + primary-for QGraphicsRotation (0x0x7f0b1ec937b8) + QObject (0x0x7f0b1e8de120) 0 + primary-for QGraphicsTransform (0x0x7f0b1ec93820) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7f0b1e8de3c0) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QScrollArea::scrollContentsBy +464 (int (*)(...))QScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QScrollArea) +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +496 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=40 align=8 + base size=40 base align=8 +QScrollArea (0x0x7f0b1ec93888) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16) + QAbstractScrollArea (0x0x7f0b1ec938f0) 0 + primary-for QScrollArea (0x0x7f0b1ec93888) + QFrame (0x0x7f0b1ec93958) 0 + primary-for QAbstractScrollArea (0x0x7f0b1ec938f0) + QWidget (0x0x7f0b1eb25e00) 0 + primary-for QFrame (0x0x7f0b1ec93958) + QObject (0x0x7f0b1e8de300) 0 + primary-for QWidget (0x0x7f0b1eb25e00) + QPaintDevice (0x0x7f0b1e8de360) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 488) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7f0b1e8de600) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QGraphicsView::setupViewport +448 (int (*)(...))QGraphicsView::viewportEvent +456 (int (*)(...))QGraphicsView::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QGraphicsView::drawBackground +480 (int (*)(...))QGraphicsView::drawForeground +488 (int (*)(...))QGraphicsView::drawItems +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QGraphicsView) +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +520 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=40 align=8 + base size=40 base align=8 +QGraphicsView (0x0x7f0b1ec939c0) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16) + QAbstractScrollArea (0x0x7f0b1ec93a28) 0 + primary-for QGraphicsView (0x0x7f0b1ec939c0) + QFrame (0x0x7f0b1ec93a90) 0 + primary-for QAbstractScrollArea (0x0x7f0b1ec93a28) + QWidget (0x0x7f0b1eb25e70) 0 + primary-for QFrame (0x0x7f0b1ec93a90) + QObject (0x0x7f0b1e8de540) 0 + primary-for QWidget (0x0x7f0b1eb25e70) + QPaintDevice (0x0x7f0b1e8de5a0) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 512) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7f0b1e95b4e0) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QGroupBox::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QGroupBox) +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +464 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=40 align=8 + base size=40 base align=8 +QGroupBox (0x0x7f0b1ec93d68) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16) + QWidget (0x0x7f0b1e8f8620) 0 + primary-for QGroupBox (0x0x7f0b1ec93d68) + QObject (0x0x7f0b1e95b420) 0 + primary-for QWidget (0x0x7f0b1e8f8620) + QPaintDevice (0x0x7f0b1e95b480) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 456) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7f0b1e95b720) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QHeaderView::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QHeaderView::viewportEvent +456 (int (*)(...))QHeaderView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QHeaderView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QHeaderView::visualRect +504 (int (*)(...))QHeaderView::scrollTo +512 (int (*)(...))QHeaderView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QHeaderView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QHeaderView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QHeaderView::dataChanged +584 (int (*)(...))QHeaderView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QHeaderView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QHeaderView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QHeaderView::moveCursor +704 (int (*)(...))QHeaderView::horizontalOffset +712 (int (*)(...))QHeaderView::verticalOffset +720 (int (*)(...))QHeaderView::isIndexHidden +728 (int (*)(...))QHeaderView::setSelection +736 (int (*)(...))QHeaderView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QHeaderView::paintSection +792 (int (*)(...))QHeaderView::sectionSizeFromContents +800 (int (*)(...))QHeaderView::initStyleOptionForIndex +808 (int (*)(...))QHeaderView::initStyleOption +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QHeaderView) +832 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +840 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=40 align=8 + base size=40 base align=8 +QHeaderView (0x0x7f0b1ec93dd0) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16) + QAbstractItemView (0x0x7f0b1ec93e38) 0 + primary-for QHeaderView (0x0x7f0b1ec93dd0) + QAbstractScrollArea (0x0x7f0b1ec93ea0) 0 + primary-for QAbstractItemView (0x0x7f0b1ec93e38) + QFrame (0x0x7f0b1ec93f08) 0 + primary-for QAbstractScrollArea (0x0x7f0b1ec93ea0) + QWidget (0x0x7f0b1e8f8690) 0 + primary-for QFrame (0x0x7f0b1ec93f08) + QObject (0x0x7f0b1e95b660) 0 + primary-for QWidget (0x0x7f0b1e8f8690) + QPaintDevice (0x0x7f0b1e95b6c0) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 832) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7f0b1e95bba0) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QLineEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QLineEdit::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QLineEdit::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QLineEdit) +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +464 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=40 align=8 + base size=40 base align=8 +QLineEdit (0x0x7f0b1ec93f70) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16) + QWidget (0x0x7f0b1e8f8930) 0 + primary-for QLineEdit (0x0x7f0b1ec93f70) + QObject (0x0x7f0b1e95bae0) 0 + primary-for QWidget (0x0x7f0b1e8f8930) + QPaintDevice (0x0x7f0b1e95bb40) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 456) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7f0b1e95bf60) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=40 align=8 + base size=40 base align=8 +QInputDialog (0x0x7f0b1e9b4000) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16) + QDialog (0x0x7f0b1e9b4068) 0 + primary-for QInputDialog (0x0x7f0b1e9b4000) + QWidget (0x0x7f0b1e8f8c40) 0 + primary-for QDialog (0x0x7f0b1e9b4068) + QObject (0x0x7f0b1e95bea0) 0 + primary-for QWidget (0x0x7f0b1e8f8c40) + QPaintDevice (0x0x7f0b1e95bf00) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7f0b1e9cb480) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7f0b1e9b4208) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f0b1e9b4270) 0 + primary-for QItemDelegate (0x0x7f0b1e9b4208) + QObject (0x0x7f0b1e9cb420) 0 + primary-for QAbstractItemDelegate (0x0x7f0b1e9b4270) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7f0b1e9cb600) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7f0b1e9cb960) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7f0b1e9cbe40) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=40 align=8 + base size=40 base align=8 +QKeySequenceEdit (0x0x7f0b1e9b43a8) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16) + QWidget (0x0x7f0b1e8f8f50) 0 + primary-for QKeySequenceEdit (0x0x7f0b1e9b43a8) + QObject (0x0x7f0b1e9cbd80) 0 + primary-for QWidget (0x0x7f0b1e8f8f50) + QPaintDevice (0x0x7f0b1e9cbde0) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7f0b1ea230c0) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QLabel) +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +464 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=40 align=8 + base size=40 base align=8 +QLabel (0x0x7f0b1e9b4410) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16) + QFrame (0x0x7f0b1e9b4478) 0 + primary-for QLabel (0x0x7f0b1e9b4410) + QWidget (0x0x7f0b1ea22000) 0 + primary-for QFrame (0x0x7f0b1e9b4478) + QObject (0x0x7f0b1ea23000) 0 + primary-for QWidget (0x0x7f0b1ea22000) + QPaintDevice (0x0x7f0b1ea23060) 16 + vptr=((& QLabel::_ZTV6QLabel) + 456) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7f0b1ea233c0) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QLCDNumber) +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +464 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=40 align=8 + base size=40 base align=8 +QLCDNumber (0x0x7f0b1e9b44e0) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16) + QFrame (0x0x7f0b1e9b4548) 0 + primary-for QLCDNumber (0x0x7f0b1e9b44e0) + QWidget (0x0x7f0b1ea22070) 0 + primary-for QFrame (0x0x7f0b1e9b4548) + QObject (0x0x7f0b1ea23300) 0 + primary-for QWidget (0x0x7f0b1ea22070) + QPaintDevice (0x0x7f0b1ea23360) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 456) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7f0b1ea23780) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QListView) +800 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +808 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=40 align=8 + base size=40 base align=8 +QListView (0x0x7f0b1e9b45b0) 0 + vptr=((& QListView::_ZTV9QListView) + 16) + QAbstractItemView (0x0x7f0b1e9b4618) 0 + primary-for QListView (0x0x7f0b1e9b45b0) + QAbstractScrollArea (0x0x7f0b1e9b4680) 0 + primary-for QAbstractItemView (0x0x7f0b1e9b4618) + QFrame (0x0x7f0b1e9b46e8) 0 + primary-for QAbstractScrollArea (0x0x7f0b1e9b4680) + QWidget (0x0x7f0b1ea223f0) 0 + primary-for QFrame (0x0x7f0b1e9b46e8) + QObject (0x0x7f0b1ea236c0) 0 + primary-for QWidget (0x0x7f0b1ea223f0) + QPaintDevice (0x0x7f0b1ea23720) 16 + vptr=((& QListView::_ZTV9QListView) + 800) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::data +48 (int (*)(...))QListWidgetItem::setData +56 (int (*)(...))QListWidgetItem::operator< +64 (int (*)(...))QListWidgetItem::read +72 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=40 align=8 + base size=36 base align=8 +QListWidgetItem (0x0x7f0b1ea23cc0) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7f0b1ea81780) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QListWidget::setModel +480 (int (*)(...))QListWidget::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))QListWidget::mimeTypes +792 (int (*)(...))QListWidget::mimeData +800 (int (*)(...))QListWidget::dropMimeData +808 (int (*)(...))QListWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QListWidget) +832 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +840 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=40 align=8 + base size=40 base align=8 +QListWidget (0x0x7f0b1e9b4750) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16) + QListView (0x0x7f0b1e9b47b8) 0 + primary-for QListWidget (0x0x7f0b1e9b4750) + QAbstractItemView (0x0x7f0b1e9b4820) 0 + primary-for QListView (0x0x7f0b1e9b47b8) + QAbstractScrollArea (0x0x7f0b1e9b4888) 0 + primary-for QAbstractItemView (0x0x7f0b1e9b4820) + QFrame (0x0x7f0b1e9b48f0) 0 + primary-for QAbstractScrollArea (0x0x7f0b1e9b4888) + QWidget (0x0x7f0b1ea22a10) 0 + primary-for QFrame (0x0x7f0b1e9b48f0) + QObject (0x0x7f0b1ea816c0) 0 + primary-for QWidget (0x0x7f0b1ea22a10) + QPaintDevice (0x0x7f0b1ea81720) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 832) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7f0b1ea81c60) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=40 align=8 + base size=40 base align=8 +QMainWindow (0x0x7f0b1e9b4958) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16) + QWidget (0x0x7f0b1ea22a80) 0 + primary-for QMainWindow (0x0x7f0b1e9b4958) + QObject (0x0x7f0b1ea81ba0) 0 + primary-for QWidget (0x0x7f0b1ea22a80) + QPaintDevice (0x0x7f0b1ea81c00) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7f0b1eacd360) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QMdiArea::setupViewport +448 (int (*)(...))QMdiArea::viewportEvent +456 (int (*)(...))QMdiArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI8QMdiArea) +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +496 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=40 align=8 + base size=40 base align=8 +QMdiArea (0x0x7f0b1e9b4af8) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16) + QAbstractScrollArea (0x0x7f0b1e9b4b60) 0 + primary-for QMdiArea (0x0x7f0b1e9b4af8) + QFrame (0x0x7f0b1e9b4bc8) 0 + primary-for QAbstractScrollArea (0x0x7f0b1e9b4b60) + QWidget (0x0x7f0b1ea22d90) 0 + primary-for QFrame (0x0x7f0b1e9b4bc8) + QObject (0x0x7f0b1eacd2a0) 0 + primary-for QWidget (0x0x7f0b1ea22d90) + QPaintDevice (0x0x7f0b1eacd300) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 488) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7f0b1eacda20) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=40 align=8 + base size=40 base align=8 +QMdiSubWindow (0x0x7f0b1e9b4d68) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16) + QWidget (0x0x7f0b1e6e2150) 0 + primary-for QMdiSubWindow (0x0x7f0b1e9b4d68) + QObject (0x0x7f0b1eacd960) 0 + primary-for QWidget (0x0x7f0b1e6e2150) + QPaintDevice (0x0x7f0b1eacd9c0) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7f0b1eacdf60) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))QMenu::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QMenu) +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +464 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=40 align=8 + base size=40 base align=8 +QMenu (0x0x7f0b1e9b4f08) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16) + QWidget (0x0x7f0b1e6e2380) 0 + primary-for QMenu (0x0x7f0b1e9b4f08) + QObject (0x0x7f0b1eacdea0) 0 + primary-for QWidget (0x0x7f0b1e6e2380) + QPaintDevice (0x0x7f0b1eacdf00) 16 + vptr=((& QMenu::_ZTV5QMenu) + 456) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7f0b1e75c360) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMenuBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QMenuBar) +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +464 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=40 align=8 + base size=40 base align=8 +QMenuBar (0x0x7f0b1e9b4f70) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16) + QWidget (0x0x7f0b1e6e23f0) 0 + primary-for QMenuBar (0x0x7f0b1e9b4f70) + QObject (0x0x7f0b1e75c2a0) 0 + primary-for QWidget (0x0x7f0b1e6e23f0) + QPaintDevice (0x0x7f0b1e75c300) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 456) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7f0b1e75c660) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=40 align=8 + base size=40 base align=8 +QMessageBox (0x0x7f0b1e775000) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16) + QDialog (0x0x7f0b1e775068) 0 + primary-for QMessageBox (0x0x7f0b1e775000) + QWidget (0x0x7f0b1e6e2460) 0 + primary-for QDialog (0x0x7f0b1e775068) + QObject (0x0x7f0b1e75c5a0) 0 + primary-for QWidget (0x0x7f0b1e6e2460) + QPaintDevice (0x0x7f0b1e75c600) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7f0b1e75cea0) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7f0b1e75cf00) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextEdit::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI9QTextEdit) +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +536 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=40 align=8 + base size=40 base align=8 +QTextEdit (0x0x7f0b1e775208) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16) + QAbstractScrollArea (0x0x7f0b1e775270) 0 + primary-for QTextEdit (0x0x7f0b1e775208) + QFrame (0x0x7f0b1e7752d8) 0 + primary-for QAbstractScrollArea (0x0x7f0b1e775270) + QWidget (0x0x7f0b1e7797e0) 0 + primary-for QFrame (0x0x7f0b1e7752d8) + QObject (0x0x7f0b1e75cde0) 0 + primary-for QWidget (0x0x7f0b1e7797e0) + QPaintDevice (0x0x7f0b1e75ce40) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 528) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7f0b1e7e5780) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QPlainTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QPlainTextEdit::loadResource +480 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +488 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +496 (int (*)(...))QPlainTextEdit::insertFromMimeData +504 (int (*)(...))QPlainTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI14QPlainTextEdit) +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +536 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=40 align=8 + base size=40 base align=8 +QPlainTextEdit (0x0x7f0b1e775478) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16) + QAbstractScrollArea (0x0x7f0b1e7754e0) 0 + primary-for QPlainTextEdit (0x0x7f0b1e775478) + QFrame (0x0x7f0b1e775548) 0 + primary-for QAbstractScrollArea (0x0x7f0b1e7754e0) + QWidget (0x0x7f0b1e779b60) 0 + primary-for QFrame (0x0x7f0b1e775548) + QObject (0x0x7f0b1e7e56c0) 0 + primary-for QWidget (0x0x7f0b1e779b60) + QPaintDevice (0x0x7f0b1e7e5720) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 528) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7f0b1e7e5cc0) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7f0b1e7755b0) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16) + QAbstractTextDocumentLayout (0x0x7f0b1e775618) 0 + primary-for QPlainTextDocumentLayout (0x0x7f0b1e7755b0) + QObject (0x0x7f0b1e7e5c60) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f0b1e775618) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7f0b1e7e5f00) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))QProgressBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI12QProgressBar) +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +472 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=40 align=8 + base size=40 base align=8 +QProgressBar (0x0x7f0b1e775680) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16) + QWidget (0x0x7f0b1e779cb0) 0 + primary-for QProgressBar (0x0x7f0b1e775680) + QObject (0x0x7f0b1e7e5e40) 0 + primary-for QWidget (0x0x7f0b1e779cb0) + QPaintDevice (0x0x7f0b1e7e5ea0) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 464) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7f0b1e844240) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=40 align=8 + base size=40 base align=8 +QProgressDialog (0x0x7f0b1e7756e8) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16) + QDialog (0x0x7f0b1e775750) 0 + primary-for QProgressDialog (0x0x7f0b1e7756e8) + QWidget (0x0x7f0b1e779e00) 0 + primary-for QDialog (0x0x7f0b1e775750) + QObject (0x0x7f0b1e844180) 0 + primary-for QWidget (0x0x7f0b1e779e00) + QPaintDevice (0x0x7f0b1e8441e0) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7f0b1e844420) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7f0b1e7757b8) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16) + QCommonStyle (0x0x7f0b1e775820) 0 + primary-for QProxyStyle (0x0x7f0b1e7757b8) + QStyle (0x0x7f0b1e775888) 0 + primary-for QCommonStyle (0x0x7f0b1e775820) + QObject (0x0x7f0b1e8443c0) 0 + primary-for QStyle (0x0x7f0b1e775888) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7f0b1e844660) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QRadioButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI12QRadioButton) +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +488 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=40 align=8 + base size=40 base align=8 +QRadioButton (0x0x7f0b1e7758f0) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16) + QAbstractButton (0x0x7f0b1e775958) 0 + primary-for QRadioButton (0x0x7f0b1e7758f0) + QWidget (0x0x7f0b1e779e70) 0 + primary-for QAbstractButton (0x0x7f0b1e775958) + QObject (0x0x7f0b1e8445a0) 0 + primary-for QWidget (0x0x7f0b1e779e70) + QPaintDevice (0x0x7f0b1e844600) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 480) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7f0b1e8448a0) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))QScrollBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QScrollBar) +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +472 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=40 align=8 + base size=40 base align=8 +QScrollBar (0x0x7f0b1e7759c0) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16) + QAbstractSlider (0x0x7f0b1e775a28) 0 + primary-for QScrollBar (0x0x7f0b1e7759c0) + QWidget (0x0x7f0b1e779ee0) 0 + primary-for QAbstractSlider (0x0x7f0b1e775a28) + QObject (0x0x7f0b1e8447e0) 0 + primary-for QWidget (0x0x7f0b1e779ee0) + QPaintDevice (0x0x7f0b1e844840) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 464) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7f0b1e844a20) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7f0b1e844d80) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7f0b1e775a90) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16) + QObject (0x0x7f0b1e844d20) 0 + primary-for QScroller (0x0x7f0b1e775a90) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7f0b1e8a60c0) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=40 align=8 + base size=40 base align=8 +QSizeGrip (0x0x7f0b1e775af8) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16) + QWidget (0x0x7f0b1e8981c0) 0 + primary-for QSizeGrip (0x0x7f0b1e775af8) + QObject (0x0x7f0b1e8a6000) 0 + primary-for QWidget (0x0x7f0b1e8981c0) + QPaintDevice (0x0x7f0b1e8a6060) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7f0b1e8a6300) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QSpinBox::valueFromText +488 (int (*)(...))QSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI8QSpinBox) +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +520 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=40 align=8 + base size=40 base align=8 +QSpinBox (0x0x7f0b1e775b60) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16) + QAbstractSpinBox (0x0x7f0b1e775bc8) 0 + primary-for QSpinBox (0x0x7f0b1e775b60) + QWidget (0x0x7f0b1e898230) 0 + primary-for QAbstractSpinBox (0x0x7f0b1e775bc8) + QObject (0x0x7f0b1e8a6240) 0 + primary-for QWidget (0x0x7f0b1e898230) + QPaintDevice (0x0x7f0b1e8a62a0) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 512) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7f0b1e8a6540) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QDoubleSpinBox::valueFromText +488 (int (*)(...))QDoubleSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI14QDoubleSpinBox) +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +520 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=40 align=8 + base size=40 base align=8 +QDoubleSpinBox (0x0x7f0b1e775c30) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16) + QAbstractSpinBox (0x0x7f0b1e775c98) 0 + primary-for QDoubleSpinBox (0x0x7f0b1e775c30) + QWidget (0x0x7f0b1e8982a0) 0 + primary-for QAbstractSpinBox (0x0x7f0b1e775c98) + QObject (0x0x7f0b1e8a6480) 0 + primary-for QWidget (0x0x7f0b1e8982a0) + QPaintDevice (0x0x7f0b1e8a64e0) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 512) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7f0b1e8a6780) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=40 align=8 + base size=40 base align=8 +QSplashScreen (0x0x7f0b1e775d00) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16) + QWidget (0x0x7f0b1e898310) 0 + primary-for QSplashScreen (0x0x7f0b1e775d00) + QObject (0x0x7f0b1e8a66c0) 0 + primary-for QWidget (0x0x7f0b1e898310) + QPaintDevice (0x0x7f0b1e8a6720) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7f0b1e8a69c0) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QSplitter::createHandle +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QSplitter) +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +472 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=40 align=8 + base size=40 base align=8 +QSplitter (0x0x7f0b1e775d68) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16) + QFrame (0x0x7f0b1e775dd0) 0 + primary-for QSplitter (0x0x7f0b1e775d68) + QWidget (0x0x7f0b1e898380) 0 + primary-for QFrame (0x0x7f0b1e775dd0) + QObject (0x0x7f0b1e8a6900) 0 + primary-for QWidget (0x0x7f0b1e898380) + QPaintDevice (0x0x7f0b1e8a6960) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 464) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7f0b1e8a6c00) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=40 align=8 + base size=40 base align=8 +QSplitterHandle (0x0x7f0b1e775e38) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16) + QWidget (0x0x7f0b1e8983f0) 0 + primary-for QSplitterHandle (0x0x7f0b1e775e38) + QObject (0x0x7f0b1e8a6b40) 0 + primary-for QWidget (0x0x7f0b1e8983f0) + QPaintDevice (0x0x7f0b1e8a6ba0) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7f0b1e8a6e40) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QStackedLayout::addItem +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QStackedLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QStackedLayout::setGeometry +184 (int (*)(...))QStackedLayout::itemAt +192 (int (*)(...))QStackedLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QStackedLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QStackedLayout::sizeHint +264 (int (*)(...))QStackedLayout::hasHeightForWidth +272 (int (*)(...))QStackedLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI14QStackedLayout) +296 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +304 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +312 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +320 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +344 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +376 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7f0b1e775ea0) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16) + QLayout (0x0x7f0b1e898460) 0 + primary-for QStackedLayout (0x0x7f0b1e775ea0) + QObject (0x0x7f0b1e8a6d80) 0 + primary-for QLayout (0x0x7f0b1e898460) + QLayoutItem (0x0x7f0b1e8a6de0) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 296) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7f0b1e507180) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI14QStackedWidget) +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +464 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=40 align=8 + base size=40 base align=8 +QStackedWidget (0x0x7f0b1e775f08) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16) + QFrame (0x0x7f0b1e775f70) 0 + primary-for QStackedWidget (0x0x7f0b1e775f08) + QWidget (0x0x7f0b1e8985b0) 0 + primary-for QFrame (0x0x7f0b1e775f70) + QObject (0x0x7f0b1e5070c0) 0 + primary-for QWidget (0x0x7f0b1e8985b0) + QPaintDevice (0x0x7f0b1e507120) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 456) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7f0b1e5073c0) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=40 align=8 + base size=40 base align=8 +QStatusBar (0x0x7f0b1e514000) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16) + QWidget (0x0x7f0b1e898620) 0 + primary-for QStatusBar (0x0x7f0b1e514000) + QObject (0x0x7f0b1e507300) 0 + primary-for QWidget (0x0x7f0b1e898620) + QPaintDevice (0x0x7f0b1e507360) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7f0b1e5075a0) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7f0b1e514068) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f0b1e5140d0) 0 + primary-for QStyledItemDelegate (0x0x7f0b1e514068) + QObject (0x0x7f0b1e507540) 0 + primary-for QAbstractItemDelegate (0x0x7f0b1e5140d0) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7f0b1e507720) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7f0b1e514138) 0 + QPainter (0x0x7f0b1e507780) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7f0b1e53c060) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7f0b1e5141a0) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16) + QObject (0x0x7f0b1e53c000) 0 + primary-for QStylePlugin (0x0x7f0b1e5141a0) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7f0b1e53c180) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7f0b1e514208) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16) + QObject (0x0x7f0b1e53c120) 0 + primary-for QSystemTrayIcon (0x0x7f0b1e514208) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7f0b1e53c480) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableView::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI10QTableView) +800 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +808 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=40 align=8 + base size=40 base align=8 +QTableView (0x0x7f0b1e514270) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16) + QAbstractItemView (0x0x7f0b1e5142d8) 0 + primary-for QTableView (0x0x7f0b1e514270) + QAbstractScrollArea (0x0x7f0b1e514340) 0 + primary-for QAbstractItemView (0x0x7f0b1e5142d8) + QFrame (0x0x7f0b1e5143a8) 0 + primary-for QAbstractScrollArea (0x0x7f0b1e514340) + QWidget (0x0x7f0b1e898b60) 0 + primary-for QFrame (0x0x7f0b1e5143a8) + QObject (0x0x7f0b1e53c3c0) 0 + primary-for QWidget (0x0x7f0b1e898b60) + QPaintDevice (0x0x7f0b1e53c420) 16 + vptr=((& QTableView::_ZTV10QTableView) + 800) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7f0b1e53c600) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=64 align=8 + base size=60 base align=8 +QTableWidgetItem (0x0x7f0b1e53ca20) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7f0b1e584d80) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableWidget::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))QTableWidget::mimeTypes +792 (int (*)(...))QTableWidget::mimeData +800 (int (*)(...))QTableWidget::dropMimeData +808 (int (*)(...))QTableWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI12QTableWidget) +832 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +840 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=40 align=8 + base size=40 base align=8 +QTableWidget (0x0x7f0b1e514c98) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16) + QTableView (0x0x7f0b1e514d00) 0 + primary-for QTableWidget (0x0x7f0b1e514c98) + QAbstractItemView (0x0x7f0b1e514d68) 0 + primary-for QTableView (0x0x7f0b1e514d00) + QAbstractScrollArea (0x0x7f0b1e514dd0) 0 + primary-for QAbstractItemView (0x0x7f0b1e514d68) + QFrame (0x0x7f0b1e514e38) 0 + primary-for QAbstractScrollArea (0x0x7f0b1e514dd0) + QWidget (0x0x7f0b1ea22e70) 0 + primary-for QFrame (0x0x7f0b1e514e38) + QObject (0x0x7f0b1e584cc0) 0 + primary-for QWidget (0x0x7f0b1ea22e70) + QPaintDevice (0x0x7f0b1e584d20) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 832) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7f0b1e5e8120) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 79 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextBrowser::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))QTextBrowser::doSetSource +552 (int (*)(...))-16 +560 (int (*)(...))(& _ZTI12QTextBrowser) +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +576 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +624 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=40 align=8 + base size=40 base align=8 +QTextBrowser (0x0x7f0b1e514ea0) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16) + QTextEdit (0x0x7f0b1e514f08) 0 + primary-for QTextBrowser (0x0x7f0b1e514ea0) + QAbstractScrollArea (0x0x7f0b1e514f70) 0 + primary-for QTextEdit (0x0x7f0b1e514f08) + QFrame (0x0x7f0b1e514c30) 0 + primary-for QAbstractScrollArea (0x0x7f0b1e514f70) + QWidget (0x0x7f0b1e898d90) 0 + primary-for QFrame (0x0x7f0b1e514c30) + QObject (0x0x7f0b1e5e8060) 0 + primary-for QWidget (0x0x7f0b1e898d90) + QPaintDevice (0x0x7f0b1e5e80c0) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 568) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7f0b1e5e8360) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QToolBar) +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +464 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=40 align=8 + base size=40 base align=8 +QToolBar (0x0x7f0b1e5f9000) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16) + QWidget (0x0x7f0b1e898e00) 0 + primary-for QToolBar (0x0x7f0b1e5f9000) + QObject (0x0x7f0b1e5e82a0) 0 + primary-for QWidget (0x0x7f0b1e898e00) + QPaintDevice (0x0x7f0b1e5e8300) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 456) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7f0b1e5e87e0) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QToolBox::itemInserted +448 (int (*)(...))QToolBox::itemRemoved +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI8QToolBox) +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +480 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=40 align=8 + base size=40 base align=8 +QToolBox (0x0x7f0b1e5f9068) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16) + QFrame (0x0x7f0b1e5f90d0) 0 + primary-for QToolBox (0x0x7f0b1e5f9068) + QWidget (0x0x7f0b1e898e70) 0 + primary-for QFrame (0x0x7f0b1e5f90d0) + QObject (0x0x7f0b1e5e8720) 0 + primary-for QWidget (0x0x7f0b1e898e70) + QPaintDevice (0x0x7f0b1e5e8780) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 472) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7f0b1e5e8b40) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))QToolButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QToolButton) +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +488 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=40 align=8 + base size=40 base align=8 +QToolButton (0x0x7f0b1e5f9138) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16) + QAbstractButton (0x0x7f0b1e5f91a0) 0 + primary-for QToolButton (0x0x7f0b1e5f9138) + QWidget (0x0x7f0b1e898ee0) 0 + primary-for QAbstractButton (0x0x7f0b1e5f91a0) + QObject (0x0x7f0b1e5e8a80) 0 + primary-for QWidget (0x0x7f0b1e898ee0) + QPaintDevice (0x0x7f0b1e5e8ae0) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 480) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7f0b1e5e8d80) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7f0b1e5e8f00) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeView::setModel +480 (int (*)(...))QTreeView::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI9QTreeView) +816 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +824 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=40 align=8 + base size=40 base align=8 +QTreeView (0x0x7f0b1e5f9208) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16) + QAbstractItemView (0x0x7f0b1e5f9270) 0 + primary-for QTreeView (0x0x7f0b1e5f9208) + QAbstractScrollArea (0x0x7f0b1e5f92d8) 0 + primary-for QAbstractItemView (0x0x7f0b1e5f9270) + QFrame (0x0x7f0b1e5f9340) 0 + primary-for QAbstractScrollArea (0x0x7f0b1e5f92d8) + QWidget (0x0x7f0b1e6210e0) 0 + primary-for QFrame (0x0x7f0b1e5f9340) + QObject (0x0x7f0b1e5e8e40) 0 + primary-for QWidget (0x0x7f0b1e6210e0) + QPaintDevice (0x0x7f0b1e5e8ea0) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 816) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7f0b1e6540c0) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=96 align=8 + base size=92 base align=8 +QTreeWidgetItem (0x0x7f0b1e654780) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7f0b1e3275a0) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 114 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeWidget::setModel +480 (int (*)(...))QTreeWidget::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))QTreeWidget::mimeTypes +808 (int (*)(...))QTreeWidget::mimeData +816 (int (*)(...))QTreeWidget::dropMimeData +824 (int (*)(...))QTreeWidget::supportedDropActions +832 (int (*)(...))-16 +840 (int (*)(...))(& _ZTI11QTreeWidget) +848 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +856 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +896 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +904 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=40 align=8 + base size=40 base align=8 +QTreeWidget (0x0x7f0b1e2e3680) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16) + QTreeView (0x0x7f0b1e2e36e8) 0 + primary-for QTreeWidget (0x0x7f0b1e2e3680) + QAbstractItemView (0x0x7f0b1e2e3750) 0 + primary-for QTreeView (0x0x7f0b1e2e36e8) + QAbstractScrollArea (0x0x7f0b1e2e37b8) 0 + primary-for QAbstractItemView (0x0x7f0b1e2e3750) + QFrame (0x0x7f0b1e2e3820) 0 + primary-for QAbstractScrollArea (0x0x7f0b1e2e37b8) + QWidget (0x0x7f0b1e621e70) 0 + primary-for QFrame (0x0x7f0b1e2e3820) + QObject (0x0x7f0b1e3274e0) 0 + primary-for QWidget (0x0x7f0b1e621e70) + QPaintDevice (0x0x7f0b1e327540) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 848) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7f0b1e327ba0) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QUndoView) +800 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +808 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=40 align=8 + base size=40 base align=8 +QUndoView (0x0x7f0b1e2e3a28) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16) + QListView (0x0x7f0b1e2e3a90) 0 + primary-for QUndoView (0x0x7f0b1e2e3a28) + QAbstractItemView (0x0x7f0b1e2e3af8) 0 + primary-for QListView (0x0x7f0b1e2e3a90) + QAbstractScrollArea (0x0x7f0b1e2e3b60) 0 + primary-for QAbstractItemView (0x0x7f0b1e2e3af8) + QFrame (0x0x7f0b1e2e3bc8) 0 + primary-for QAbstractScrollArea (0x0x7f0b1e2e3b60) + QWidget (0x0x7f0b1e621a10) 0 + primary-for QFrame (0x0x7f0b1e2e3bc8) + QObject (0x0x7f0b1e327ae0) 0 + primary-for QWidget (0x0x7f0b1e621a10) + QPaintDevice (0x0x7f0b1e327b40) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 800) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7f0b1e327d20) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7f0b1e327de0) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7f0b1e2e3c30) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16) + QAction (0x0x7f0b1e2e3c98) 0 + primary-for QWidgetAction (0x0x7f0b1e2e3c30) + QObject (0x0x7f0b1e327d80) 0 + primary-for QAction (0x0x7f0b1e2e3c98) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7f0b1e368060) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=40 align=8 + base size=40 base align=8 +QWizard (0x0x7f0b1e2e3d00) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16) + QDialog (0x0x7f0b1e2e3d68) 0 + primary-for QWizard (0x0x7f0b1e2e3d00) + QWidget (0x0x7f0b1e367000) 0 + primary-for QDialog (0x0x7f0b1e2e3d68) + QObject (0x0x7f0b1e327f60) 0 + primary-for QWidget (0x0x7f0b1e367000) + QPaintDevice (0x0x7f0b1e368000) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7f0b1e3687e0) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=40 align=8 + base size=40 base align=8 +QWizardPage (0x0x7f0b1e2e3f08) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16) + QWidget (0x0x7f0b1e36f230) 0 + primary-for QWizardPage (0x0x7f0b1e2e3f08) + QObject (0x0x7f0b1e368720) 0 + primary-for QWidget (0x0x7f0b1e36f230) + QPaintDevice (0x0x7f0b1e368780) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488) + +Class QOpenGLBuffer + size=8 align=8 + base size=8 base align=8 +QOpenGLBuffer (0x0x7f0b1e368960) 0 + +Class QOpenGLDebugMessage + size=8 align=8 + base size=8 base align=8 +QOpenGLDebugMessage (0x0x7f0b1e368de0) 0 + +Class QOpenGLDebugLogger::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLDebugLogger::QPrivateSignal (0x0x7f0b1e41fde0) 0 empty + +Vtable for QOpenGLDebugLogger +QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLDebugLogger) +16 (int (*)(...))QOpenGLDebugLogger::metaObject +24 (int (*)(...))QOpenGLDebugLogger::qt_metacast +32 (int (*)(...))QOpenGLDebugLogger::qt_metacall +40 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +48 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLDebugLogger + size=16 align=8 + base size=16 base align=8 +QOpenGLDebugLogger (0x0x7f0b1e424410) 0 + vptr=((& QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger) + 16) + QObject (0x0x7f0b1e41fd80) 0 + primary-for QOpenGLDebugLogger (0x0x7f0b1e424410) + +Vtable for QOpenGLFramebufferObject +QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLFramebufferObject) +16 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject +24 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject + +Class QOpenGLFramebufferObject + size=16 align=8 + base size=16 base align=8 +QOpenGLFramebufferObject (0x0x7f0b1e48b180) 0 + vptr=((& QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject) + 16) + +Class QOpenGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QOpenGLFramebufferObjectFormat (0x0x7f0b1e48b420) 0 + +Vtable for QOpenGLPaintDevice +QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLPaintDevice) +16 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +24 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +32 (int (*)(...))QOpenGLPaintDevice::devType +40 (int (*)(...))QOpenGLPaintDevice::paintEngine +48 (int (*)(...))QOpenGLPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QOpenGLPaintDevice::ensureActiveTarget + +Class QOpenGLPaintDevice + size=24 align=8 + base size=24 base align=8 +QOpenGLPaintDevice (0x0x7f0b1e424478) 0 + vptr=((& QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice) + 16) + QPaintDevice (0x0x7f0b1e48b480) 0 + primary-for QOpenGLPaintDevice (0x0x7f0b1e424478) + +Class QOpenGLPixelTransferOptions + size=8 align=8 + base size=8 base align=8 +QOpenGLPixelTransferOptions (0x0x7f0b1e48b6c0) 0 + +Class QOpenGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShader::QPrivateSignal (0x0x7f0b1e0dbd80) 0 empty + +Vtable for QOpenGLShader +QOpenGLShader::_ZTV13QOpenGLShader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLShader) +16 (int (*)(...))QOpenGLShader::metaObject +24 (int (*)(...))QOpenGLShader::qt_metacast +32 (int (*)(...))QOpenGLShader::qt_metacall +40 (int (*)(...))QOpenGLShader::~QOpenGLShader +48 (int (*)(...))QOpenGLShader::~QOpenGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLShader + size=16 align=8 + base size=16 base align=8 +QOpenGLShader (0x0x7f0b1e0e2e38) 0 + vptr=((& QOpenGLShader::_ZTV13QOpenGLShader) + 16) + QObject (0x0x7f0b1e0dbd20) 0 + primary-for QOpenGLShader (0x0x7f0b1e0e2e38) + +Class QOpenGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShaderProgram::QPrivateSignal (0x0x7f0b1e0fa2a0) 0 empty + +Vtable for QOpenGLShaderProgram +QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QOpenGLShaderProgram) +16 (int (*)(...))QOpenGLShaderProgram::metaObject +24 (int (*)(...))QOpenGLShaderProgram::qt_metacast +32 (int (*)(...))QOpenGLShaderProgram::qt_metacall +40 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +48 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOpenGLShaderProgram::link + +Class QOpenGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QOpenGLShaderProgram (0x0x7f0b1e118000) 0 + vptr=((& QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram) + 16) + QObject (0x0x7f0b1e0fa240) 0 + primary-for QOpenGLShaderProgram (0x0x7f0b1e118000) + +Class QOpenGLTexture + size=8 align=8 + base size=8 base align=8 +QOpenGLTexture (0x0x7f0b1e0fa420) 0 + +Class QOpenGLTextureBlitter + size=8 align=8 + base size=8 base align=8 +QOpenGLTextureBlitter (0x0x7f0b1e1a2540) 0 + +Class QOpenGLTimerQuery::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimerQuery::QPrivateSignal (0x0x7f0b1e1a2780) 0 empty + +Vtable for QOpenGLTimerQuery +QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOpenGLTimerQuery) +16 (int (*)(...))QOpenGLTimerQuery::metaObject +24 (int (*)(...))QOpenGLTimerQuery::qt_metacast +32 (int (*)(...))QOpenGLTimerQuery::qt_metacall +40 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +48 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimerQuery + size=16 align=8 + base size=16 base align=8 +QOpenGLTimerQuery (0x0x7f0b1e1181a0) 0 + vptr=((& QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery) + 16) + QObject (0x0x7f0b1e1a2720) 0 + primary-for QOpenGLTimerQuery (0x0x7f0b1e1181a0) + +Class QOpenGLTimeMonitor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimeMonitor::QPrivateSignal (0x0x7f0b1e1a2960) 0 empty + +Vtable for QOpenGLTimeMonitor +QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLTimeMonitor) +16 (int (*)(...))QOpenGLTimeMonitor::metaObject +24 (int (*)(...))QOpenGLTimeMonitor::qt_metacast +32 (int (*)(...))QOpenGLTimeMonitor::qt_metacall +40 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +48 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimeMonitor + size=16 align=8 + base size=16 base align=8 +QOpenGLTimeMonitor (0x0x7f0b1e118208) 0 + vptr=((& QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor) + 16) + QObject (0x0x7f0b1e1a2900) 0 + primary-for QOpenGLTimeMonitor (0x0x7f0b1e118208) + +Class QOpenGLVersionStatus + size=12 align=4 + base size=12 base align=4 +QOpenGLVersionStatus (0x0x7f0b1e1a2ae0) 0 + +Class QOpenGLVersionFunctionsBackend + size=16 align=8 + base size=12 base align=8 +QOpenGLVersionFunctionsBackend (0x0x7f0b1e251b40) 0 + +Class QOpenGLVersionFunctionsStorage + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionFunctionsStorage (0x0x7f0b1e251d20) 0 + +Class QAbstractOpenGLFunctionsPrivate + size=16 align=8 + base size=9 base align=8 +QAbstractOpenGLFunctionsPrivate (0x0x7f0b1e251d80) 0 + +Vtable for QAbstractOpenGLFunctions +QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractOpenGLFunctions) +16 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +24 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +32 (int (*)(...))QAbstractOpenGLFunctions::initializeOpenGLFunctions + +Class QAbstractOpenGLFunctions + size=16 align=8 + base size=16 base align=8 +QAbstractOpenGLFunctions (0x0x7f0b1e251f60) 0 + vptr=((& QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions) + 16) + +Class QOpenGLFunctions_1_0_CoreBackend::Functions + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_1_0_CoreBackend::Functions (0x0x7f0b1e26d180) 0 + +Class QOpenGLFunctions_1_0_CoreBackend + size=400 align=8 + base size=400 base align=8 +QOpenGLFunctions_1_0_CoreBackend (0x0x7f0b1e247a90) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e26d120) 0 + +Class QOpenGLFunctions_1_1_CoreBackend::Functions + size=128 align=8 + base size=128 base align=8 +QOpenGLFunctions_1_1_CoreBackend::Functions (0x0x7f0b1e26d4e0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend + size=144 align=8 + base size=144 base align=8 +QOpenGLFunctions_1_1_CoreBackend (0x0x7f0b1e247af8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e26d480) 0 + +Class QOpenGLFunctions_1_2_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_1_2_CoreBackend::Functions (0x0x7f0b1e26d840) 0 + +Class QOpenGLFunctions_1_2_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_1_2_CoreBackend (0x0x7f0b1e247b60) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e26d7e0) 0 + +Class QOpenGLFunctions_1_3_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_3_CoreBackend::Functions (0x0x7f0b1e26dba0) 0 + +Class QOpenGLFunctions_1_3_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_1_3_CoreBackend (0x0x7f0b1e247bc8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e26db40) 0 + +Class QOpenGLFunctions_1_4_CoreBackend::Functions + size=56 align=8 + base size=56 base align=8 +QOpenGLFunctions_1_4_CoreBackend::Functions (0x0x7f0b1e26df00) 0 + +Class QOpenGLFunctions_1_4_CoreBackend + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_4_CoreBackend (0x0x7f0b1e247c30) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e26dea0) 0 + +Class QOpenGLFunctions_1_5_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_5_CoreBackend::Functions (0x0x7f0b1e2902a0) 0 + +Class QOpenGLFunctions_1_5_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_1_5_CoreBackend (0x0x7f0b1e247c98) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e290240) 0 + +Class QOpenGLFunctions_2_0_CoreBackend::Functions + size=744 align=8 + base size=744 base align=8 +QOpenGLFunctions_2_0_CoreBackend::Functions (0x0x7f0b1e290600) 0 + +Class QOpenGLFunctions_2_0_CoreBackend + size=760 align=8 + base size=760 base align=8 +QOpenGLFunctions_2_0_CoreBackend (0x0x7f0b1e247d00) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e2905a0) 0 + +Class QOpenGLFunctions_2_1_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_2_1_CoreBackend::Functions (0x0x7f0b1e290960) 0 + +Class QOpenGLFunctions_2_1_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_2_1_CoreBackend (0x0x7f0b1e247d68) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e290900) 0 + +Class QOpenGLFunctions_3_0_CoreBackend::Functions + size=672 align=8 + base size=672 base align=8 +QOpenGLFunctions_3_0_CoreBackend::Functions (0x0x7f0b1e290cc0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend + size=688 align=8 + base size=688 base align=8 +QOpenGLFunctions_3_0_CoreBackend (0x0x7f0b1e247dd0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e290c60) 0 + +Class QOpenGLFunctions_3_1_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_3_1_CoreBackend::Functions (0x0x7f0b1e2bf060) 0 + +Class QOpenGLFunctions_3_1_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_3_1_CoreBackend (0x0x7f0b1e247e38) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e2bf000) 0 + +Class QOpenGLFunctions_3_2_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_3_2_CoreBackend::Functions (0x0x7f0b1e2bf3c0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_3_2_CoreBackend (0x0x7f0b1e247ea0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e2bf360) 0 + +Class QOpenGLFunctions_3_3_CoreBackend::Functions + size=464 align=8 + base size=464 base align=8 +QOpenGLFunctions_3_3_CoreBackend::Functions (0x0x7f0b1e2bf720) 0 + +Class QOpenGLFunctions_3_3_CoreBackend + size=480 align=8 + base size=480 base align=8 +QOpenGLFunctions_3_3_CoreBackend (0x0x7f0b1e247f08) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e2bf6c0) 0 + +Class QOpenGLFunctions_4_0_CoreBackend::Functions + size=368 align=8 + base size=368 base align=8 +QOpenGLFunctions_4_0_CoreBackend::Functions (0x0x7f0b1e2bfa80) 0 + +Class QOpenGLFunctions_4_0_CoreBackend + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_4_0_CoreBackend (0x0x7f0b1e247f70) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e2bfa20) 0 + +Class QOpenGLFunctions_4_1_CoreBackend::Functions + size=704 align=8 + base size=704 base align=8 +QOpenGLFunctions_4_1_CoreBackend::Functions (0x0x7f0b1e2bfde0) 0 + +Class QOpenGLFunctions_4_1_CoreBackend + size=720 align=8 + base size=720 base align=8 +QOpenGLFunctions_4_1_CoreBackend (0x0x7f0b1dee5000) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1e2bfd80) 0 + +Class QOpenGLFunctions_4_2_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_2_CoreBackend::Functions (0x0x7f0b1def9180) 0 + +Class QOpenGLFunctions_4_2_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_2_CoreBackend (0x0x7f0b1dee5068) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1def9120) 0 + +Class QOpenGLFunctions_4_3_CoreBackend::Functions + size=344 align=8 + base size=344 base align=8 +QOpenGLFunctions_4_3_CoreBackend::Functions (0x0x7f0b1def94e0) 0 + +Class QOpenGLFunctions_4_3_CoreBackend + size=360 align=8 + base size=360 base align=8 +QOpenGLFunctions_4_3_CoreBackend (0x0x7f0b1dee50d0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1def9480) 0 + +Class QOpenGLFunctions_4_4_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_4_4_CoreBackend::Functions (0x0x7f0b1def9840) 0 + +Class QOpenGLFunctions_4_4_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_4_4_CoreBackend (0x0x7f0b1dee5138) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1def97e0) 0 + +Class QOpenGLFunctions_4_5_CoreBackend::Functions + size=848 align=8 + base size=848 base align=8 +QOpenGLFunctions_4_5_CoreBackend::Functions (0x0x7f0b1def9ba0) 0 + +Class QOpenGLFunctions_4_5_CoreBackend + size=864 align=8 + base size=864 base align=8 +QOpenGLFunctions_4_5_CoreBackend (0x0x7f0b1dee51a0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1def9b40) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend::Functions + size=2064 align=8 + base size=2064 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend::Functions (0x0x7f0b1def9f00) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend + size=2080 align=8 + base size=2080 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend (0x0x7f0b1dee5208) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1def9ea0) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend::Functions + size=136 align=8 + base size=136 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend::Functions (0x0x7f0b1df4f2a0) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend (0x0x7f0b1dee5270) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1df4f240) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend::Functions + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend::Functions (0x0x7f0b1df4f600) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend + size=272 align=8 + base size=272 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend (0x0x7f0b1dee52d8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1df4f5a0) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend::Functions + size=296 align=8 + base size=296 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend::Functions (0x0x7f0b1df4f960) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend + size=312 align=8 + base size=312 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend (0x0x7f0b1dee5340) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1df4f900) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend::Functions + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend::Functions (0x0x7f0b1df4fcc0) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend + size=320 align=8 + base size=320 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend (0x0x7f0b1dee53a8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1df4fc60) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend::Functions + size=288 align=8 + base size=288 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend::Functions (0x0x7f0b1df72060) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend (0x0x7f0b1dee5410) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1df72000) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend::Functions + size=160 align=8 + base size=160 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend::Functions (0x0x7f0b1df723c0) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend + size=176 align=8 + base size=176 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend (0x0x7f0b1dee5478) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1df72360) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend::Functions + size=240 align=8 + base size=240 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend::Functions (0x0x7f0b1df72720) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend (0x0x7f0b1dee54e0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1df726c0) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend::Functions (0x0x7f0b1df72a80) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend (0x0x7f0b1dee5548) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b1df72a20) 0 + +Class QOpenGLVersionProfile + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionProfile (0x0x7f0b1df72d80) 0 + +Class QOpenGLVersionFunctionsFactory + size=1 align=1 + base size=0 base align=1 +QOpenGLVersionFunctionsFactory (0x0x7f0b1df72f00) 0 empty + +Class QOpenGLVertexArrayObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLVertexArrayObject::QPrivateSignal (0x0x7f0b1df9b060) 0 empty + +Class QOpenGLVertexArrayObject::Binder + size=8 align=8 + base size=8 base align=8 +QOpenGLVertexArrayObject::Binder (0x0x7f0b1df9b0c0) 0 + +Vtable for QOpenGLVertexArrayObject +QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLVertexArrayObject) +16 (int (*)(...))QOpenGLVertexArrayObject::metaObject +24 (int (*)(...))QOpenGLVertexArrayObject::qt_metacast +32 (int (*)(...))QOpenGLVertexArrayObject::qt_metacall +40 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +48 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLVertexArrayObject + size=16 align=8 + base size=16 base align=8 +QOpenGLVertexArrayObject (0x0x7f0b1dee55b0) 0 + vptr=((& QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject) + 16) + QObject (0x0x7f0b1df9b000) 0 + primary-for QOpenGLVertexArrayObject (0x0x7f0b1dee55b0) + +Class QOpenGLWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWindow::QPrivateSignal (0x0x7f0b1df9b720) 0 empty + +Vtable for QOpenGLWindow +QOpenGLWindow::_ZTV13QOpenGLWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWindow) +16 (int (*)(...))QOpenGLWindow::metaObject +24 (int (*)(...))QOpenGLWindow::qt_metacast +32 (int (*)(...))QOpenGLWindow::qt_metacall +40 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +48 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QOpenGLWindow::resizeEvent +168 (int (*)(...))QOpenGLWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QOpenGLWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QOpenGLWindow::initializeGL +336 (int (*)(...))QOpenGLWindow::resizeGL +344 (int (*)(...))QOpenGLWindow::paintGL +352 (int (*)(...))QOpenGLWindow::paintUnderGL +360 (int (*)(...))QOpenGLWindow::paintOverGL +368 (int (*)(...))QOpenGLWindow::redirected +376 (int (*)(...))-16 +384 (int (*)(...))(& _ZTI13QOpenGLWindow) +392 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD1Ev +400 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD0Ev +408 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +416 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +424 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +432 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +440 (int (*)(...))-40 +448 (int (*)(...))(& _ZTI13QOpenGLWindow) +456 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD1Ev +464 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD0Ev +472 (int (*)(...))QPaintDevice::devType +480 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +488 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QPaintDevice::initPainter +504 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow10redirectedEP6QPoint +512 (int (*)(...))QPaintDevice::sharedPainter + +Class QOpenGLWindow + size=56 align=8 + base size=50 base align=8 +QOpenGLWindow (0x0x7f0b1dee5680) 0 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 16) + QPaintDeviceWindow (0x0x7f0b1e25e7e0) 0 + primary-for QOpenGLWindow (0x0x7f0b1dee5680) + QWindow (0x0x7f0b1e25e850) 0 + primary-for QPaintDeviceWindow (0x0x7f0b1e25e7e0) + QObject (0x0x7f0b1df9b600) 0 + primary-for QWindow (0x0x7f0b1e25e850) + QSurface (0x0x7f0b1df9b660) 16 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 392) + QPaintDevice (0x0x7f0b1df9b6c0) 40 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 456) + +Class QOpenGLWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWidget::QPrivateSignal (0x0x7f0b1df9b960) 0 empty + +Vtable for QOpenGLWidget +QOpenGLWidget::_ZTV13QOpenGLWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWidget) +16 (int (*)(...))QOpenGLWidget::metaObject +24 (int (*)(...))QOpenGLWidget::qt_metacast +32 (int (*)(...))QOpenGLWidget::qt_metacall +40 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +48 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +56 (int (*)(...))QOpenGLWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QOpenGLWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QOpenGLWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QOpenGLWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QOpenGLWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QOpenGLWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QOpenGLWidget::initializeGL +440 (int (*)(...))QOpenGLWidget::resizeGL +448 (int (*)(...))QOpenGLWidget::paintGL +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI13QOpenGLWidget) +472 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD1Ev +480 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget11paintEngineEv +504 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QOpenGLWidget + size=40 align=8 + base size=40 base align=8 +QOpenGLWidget (0x0x7f0b1dee5750) 0 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 16) + QWidget (0x0x7f0b1e25ea10) 0 + primary-for QOpenGLWidget (0x0x7f0b1dee5750) + QObject (0x0x7f0b1df9b8a0) 0 + primary-for QWidget (0x0x7f0b1e25ea10) + QPaintDevice (0x0x7f0b1df9b900) 16 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 472) + +Class QUiLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUiLoader::QPrivateSignal (0x0x7f0b1df9bb40) 0 empty + +Vtable for QUiLoader +QUiLoader::_ZTV9QUiLoader: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUiLoader) +16 (int (*)(...))QUiLoader::metaObject +24 (int (*)(...))QUiLoader::qt_metacast +32 (int (*)(...))QUiLoader::qt_metacall +40 (int (*)(...))QUiLoader::~QUiLoader +48 (int (*)(...))QUiLoader::~QUiLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QUiLoader::createWidget +120 (int (*)(...))QUiLoader::createLayout +128 (int (*)(...))QUiLoader::createActionGroup +136 (int (*)(...))QUiLoader::createAction + +Class QUiLoader + size=24 align=8 + base size=24 base align=8 +QUiLoader (0x0x7f0b1dee5820) 0 + vptr=((& QUiLoader::_ZTV9QUiLoader) + 16) + QObject (0x0x7f0b1df9bae0) 0 + primary-for QUiLoader (0x0x7f0b1dee5820) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1dfed180) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1dfed4e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1dfed6c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1dfeda20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1dfedc00) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1dfedf60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1e00b0c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1e00b420) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1e00b600) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1e00b960) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1e00bb40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1e00bea0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1e02a0c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1e02a420) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1e02a600) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1e02a960) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1e05d240) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1e05d5a0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1e05d720) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1e05da80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1e05dc00) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1e05df60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1e078120) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1e078480) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1e078600) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1e078960) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1e078ae0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1e078e40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1e093000) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1e093360) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b1e0934e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b1e093840) 0 empty + diff --git a/tests/auto/bic/data/QtUiTools.6.1.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtUiTools.6.1.0.linux-gcc-amd64.txt new file mode 100644 index 0000000..f32345b --- /dev/null +++ b/tests/auto/bic/data/QtUiTools.6.1.0.linux-gcc-amd64.txt @@ -0,0 +1,19804 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7fe2315d18a0) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7fe2316da0c0) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7fe2316da300) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7fe23170a420) 0 empty + +Class std::__make_unsigned_selector_base + size=1 align=1 + base size=0 base align=1 +std::__make_unsigned_selector_base (0x0x7fe231938c00) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7fe2319b2a20) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7fe2319b2ae0) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7fe2319e6000) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7fe2319e6060) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7fe2319e60c0) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7fe2319e6120) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7fe2319e6180) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7fe2319e6240) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7fe2319e6300) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7fe2319e63c0) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7fe2319e6480) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7fe2319e67e0) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7fe2319e6b40) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7fe2319e6ba0) 0 empty + +Class std::__swappable_with_details::__do_is_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_swappable_with_impl (0x0x7fe2319e6e40) 0 empty + +Class std::__swappable_with_details::__do_is_nothrow_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_nothrow_swappable_with_impl (0x0x7fe2319e6ea0) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7fe231a33720) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7fe231a81cc0) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7fe231a43680) 0 empty + std::__nonesuch (0x0x7fe231ab71e0) 0 empty + +Class std::in_place_t + size=1 align=1 + base size=0 base align=1 +std::in_place_t (0x0x7fe231b00f00) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7fe2317331e0) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7fe231733240) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7fe231766f60) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7fe231791000) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7fe231a43bc8) 0 empty + std::input_iterator_tag (0x0x7fe231791060) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7fe231a43c30) 0 empty + std::forward_iterator_tag (0x0x7fe231a43c98) 0 empty + std::input_iterator_tag (0x0x7fe2317910c0) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7fe231a43d00) 0 empty + std::bidirectional_iterator_tag (0x0x7fe231a43d68) 0 empty + std::forward_iterator_tag (0x0x7fe231a43dd0) 0 empty + std::input_iterator_tag (0x0x7fe231791120) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7fe23181cde0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7fe23181cf00) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7fe23184d240) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7fe23184d540) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7fe23184d660) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7fe2318d2e40) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7fe23191d1e0) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7fe23191d240) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7fe23191d300) 0 + +Class __pthread_internal_slist + size=8 align=8 + base size=8 base align=8 +__pthread_internal_slist (0x0x7fe23191d360) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7fe23191d3c0) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7fe23191d420) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7fe23191d480) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7fe23191d720) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7fe23191d9c0) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7fe23191da20) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7fe230bcc7e0) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7fe2317e51a0) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7fe230bcc9c0) 0 nearly-empty + primary-for std::bad_exception (0x0x7fe2317e51a0) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7fe230bccba0) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7fe2317e5208) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7fe230bccf60) 0 nearly-empty + primary-for std::bad_cast (0x0x7fe2317e5208) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7fe2317e5270) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7fe230c03180) 0 nearly-empty + primary-for std::bad_typeid (0x0x7fe2317e5270) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7fe230c03360) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7fe230c038a0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7fe2317e52d8) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7fe230c03f60) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fe2317e52d8) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7fe2317e5340) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7fe2317e53a8) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7fe2317e5340) + std::exception (0x0x7fe230c3a180) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fe2317e53a8) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7fe230c3a360) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7fe230c3a5a0) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7fe230cbcd20) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7fe2308dd120) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7fe2308dd1e0) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7fe23053d0c0) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7fe23053d180) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7fe23053d1e0) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7fe23053d240) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7fe23053d2a0) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7fe23053d3c0) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7fe23053d420) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7fe2305d3a80) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7fe2305d3c00) 0 empty + +Class _G_fpos_t + size=16 align=8 + base size=16 base align=8 +_G_fpos_t (0x0x7fe2303eea80) 0 + +Class _G_fpos64_t + size=16 align=8 + base size=16 base align=8 +_G_fpos64_t (0x0x7fe2303eeae0) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7fe2303eeb40) 0 + +Class _IO_cookie_io_functions_t + size=32 align=8 + base size=32 base align=8 +_IO_cookie_io_functions_t (0x0x7fe2303eeba0) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7fe23004b360) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7fe23004f340) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7fe23004b420) 0 nearly-empty + primary-for std::logic_error (0x0x7fe23004f340) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7fe23004f3a8) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7fe23004f410) 0 + primary-for std::domain_error (0x0x7fe23004f3a8) + std::exception (0x0x7fe23004b480) 0 nearly-empty + primary-for std::logic_error (0x0x7fe23004f410) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7fe23004f478) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7fe23004f4e0) 0 + primary-for std::invalid_argument (0x0x7fe23004f478) + std::exception (0x0x7fe23004b4e0) 0 nearly-empty + primary-for std::logic_error (0x0x7fe23004f4e0) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7fe23004f548) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7fe23004f5b0) 0 + primary-for std::length_error (0x0x7fe23004f548) + std::exception (0x0x7fe23004b540) 0 nearly-empty + primary-for std::logic_error (0x0x7fe23004f5b0) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7fe23004f618) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7fe23004f680) 0 + primary-for std::out_of_range (0x0x7fe23004f618) + std::exception (0x0x7fe23004b5a0) 0 nearly-empty + primary-for std::logic_error (0x0x7fe23004f680) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7fe23004f6e8) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7fe23004b600) 0 nearly-empty + primary-for std::runtime_error (0x0x7fe23004f6e8) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7fe23004f750) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7fe23004f7b8) 0 + primary-for std::range_error (0x0x7fe23004f750) + std::exception (0x0x7fe23004b660) 0 nearly-empty + primary-for std::runtime_error (0x0x7fe23004f7b8) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7fe23004f820) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7fe23004f888) 0 + primary-for std::overflow_error (0x0x7fe23004f820) + std::exception (0x0x7fe23004b6c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fe23004f888) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7fe23004f8f0) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7fe23004f958) 0 + primary-for std::underflow_error (0x0x7fe23004f8f0) + std::exception (0x0x7fe23004b720) 0 nearly-empty + primary-for std::runtime_error (0x0x7fe23004f958) + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7fe2300b3a20) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7fe2300b3a80) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7fe2300b3c00) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7fe2300b3cc0) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7fe23004fbc8) 0 + std::__uses_alloc_base (0x0x7fe2300b3c60) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7fe22fe52300) 0 empty + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7fe22ff0d000) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7fe22fef19c0) 0 nearly-empty + primary-for std::bad_function_call (0x0x7fe22ff0d000) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7fe22fef1a80) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7fe22fef1ae0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7fe22fef1de0) 0 + +Class std::__detail::_Identity + size=1 align=1 + base size=0 base align=1 +std::__detail::_Identity (0x0x7fe22fbc6c60) 0 empty + +Class std::__detail::_Select1st + size=1 align=1 + base size=0 base align=1 +std::__detail::_Select1st (0x0x7fe22fbc6d20) 0 empty + +Class std::__detail::_Hash_node_base + size=8 align=8 + base size=8 base align=8 +std::__detail::_Hash_node_base (0x0x7fe22fbf2240) 0 + +Class std::__detail::_Mod_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mod_range_hashing (0x0x7fe22fc1b0c0) 0 empty + +Class std::__detail::_Default_ranged_hash + size=1 align=1 + base size=0 base align=1 +std::__detail::_Default_ranged_hash (0x0x7fe22fc1b180) 0 empty + +Class std::__detail::_Prime_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Prime_rehash_policy (0x0x7fe22fc1b1e0) 0 + +Class std::__detail::_Mask_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mask_range_hashing (0x0x7fe22fc1b5a0) 0 empty + +Class std::__detail::_Power2_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Power2_rehash_policy (0x0x7fe22fc1b6c0) 0 + +Class std::__detail::_Equality_base + size=1 align=1 + base size=0 base align=1 +std::__detail::_Equality_base (0x0x7fe22f9fd780) 0 empty + +Class std::_Enable_default_constructor_tag + size=1 align=1 + base size=0 base align=1 +std::_Enable_default_constructor_tag (0x0x7fe22fa3b060) 0 empty + +Class std::nullopt_t + size=1 align=1 + base size=0 base align=1 +std::nullopt_t (0x0x7fe22fa3ba20) 0 empty + +Vtable for std::bad_optional_access +std::bad_optional_access::_ZTVSt19bad_optional_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt19bad_optional_access) +16 (int (*)(...))std::bad_optional_access::~bad_optional_access +24 (int (*)(...))std::bad_optional_access::~bad_optional_access +32 (int (*)(...))std::bad_optional_access::what + +Class std::bad_optional_access + size=8 align=8 + base size=8 base align=8 +std::bad_optional_access (0x0x7fe22f994f08) 0 nearly-empty + vptr=((& std::bad_optional_access::_ZTVSt19bad_optional_access) + 16) + std::exception (0x0x7fe22fa3bc60) 0 nearly-empty + primary-for std::bad_optional_access (0x0x7fe22f994f08) + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7fe22f516600) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7fe22f3eda28) 0 + std::iterator (0x0x7fe22f516d80) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7fe22f3edaf8) 0 + std::_Bit_iterator_base (0x0x7fe22f3edb60) 0 + std::iterator (0x0x7fe22f145360) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7fe22f3edc30) 0 + std::_Bit_iterator_base (0x0x7fe22f3edc98) 0 + std::iterator (0x0x7fe22f145b40) 0 empty + +Class __pstl::execution::v1::sequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::sequenced_policy (0x0x7fe22ef56060) 0 empty + +Class __pstl::execution::v1::parallel_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_policy (0x0x7fe22ef561e0) 0 empty + +Class __pstl::execution::v1::parallel_unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_unsequenced_policy (0x0x7fe22ef56360) 0 empty + +Class __pstl::execution::v1::unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::unsequenced_policy (0x0x7fe22ef564e0) 0 empty + +Class std::__detail::__variant::__variant_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_cookie (0x0x7fe22f093000) 0 empty + +Class std::__detail::__variant::__variant_idx_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_idx_cookie (0x0x7fe22f093060) 0 empty + +Class std::monostate + size=1 align=1 + base size=0 base align=1 +std::monostate (0x0x7fe22f117ae0) 0 empty + +Vtable for std::bad_variant_access +std::bad_variant_access::_ZTVSt18bad_variant_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt18bad_variant_access) +16 (int (*)(...))std::bad_variant_access::~bad_variant_access +24 (int (*)(...))std::bad_variant_access::~bad_variant_access +32 (int (*)(...))std::bad_variant_access::what + +Class std::bad_variant_access + size=16 align=8 + base size=16 base align=8 +std::bad_variant_access (0x0x7fe22ed42068) 0 + vptr=((& std::bad_variant_access::_ZTVSt18bad_variant_access) + 16) + std::exception (0x0x7fe22ed80060) 0 nearly-empty + primary-for std::bad_variant_access (0x0x7fe22ed42068) + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7fe22ee16a20) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7fe22ee16a80) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7fe22ee16d20) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7fe22ee5d540) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7fe22ee95660) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7fe22ef26480) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7fe22eecc2d8) 0 + std::__atomic_flag_base (0x0x7fe22ef264e0) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7fe22eaac5b0) 0 + QAtomicInteger (0x0x7fe22eaac618) 0 + QBasicAtomicInteger (0x0x7fe22eaaf3c0) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7fe22e252660) 0 empty + +Class QKeyCombination + size=4 align=4 + base size=4 base align=4 +QKeyCombination (0x0x7fe22e2526c0) 0 + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7fe22e3079c0) 0 + +Class QMethodRawArguments + size=8 align=8 + base size=8 base align=8 +QMethodRawArguments (0x0x7fe22df47120) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7fe22df47180) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7fe22e2a0a28) 0 + QGenericArgument (0x0x7fe22df47420) 0 + +Class QMetaObject::SuperData + size=8 align=8 + base size=8 base align=8 +QMetaObject::SuperData (0x0x7fe22df47900) 0 + +Class QMetaObject::Data + size=56 align=8 + base size=56 base align=8 +QMetaObject::Data (0x0x7fe22df47960) 0 + +Class QMetaObject + size=56 align=8 + base size=56 base align=8 +QMetaObject (0x0x7fe22df478a0) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7fe22df96300) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7fe22dfc2d20) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7fe22dfeb720) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7fe22e0c1240) 0 + +Class QArrayData + size=16 align=8 + base size=16 base align=8 +QArrayData (0x0x7fe22e0c15a0) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7fe22dd55f60) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7fe22dd7f0c0) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7fe22dd7f480) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7fe22dd7f720) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7fe22dd7f900) 0 + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7fe22ddd9a20) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7fe22ddd9d80) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7fe22de1d5a0) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7fe22dd62f08) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7fe22dd62f70) 0 + primary-for std::system_error (0x0x7fe22dd62f08) + std::exception (0x0x7fe22de48180) 0 nearly-empty + primary-for std::runtime_error (0x0x7fe22dd62f70) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7fe22de532d8) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7fe22de53340) 0 + primary-for std::ios_base::failure (0x0x7fe22de532d8) + std::runtime_error (0x0x7fe22de533a8) 0 + primary-for std::system_error (0x0x7fe22de53340) + std::exception (0x0x7fe22de7b900) 0 nearly-empty + primary-for std::runtime_error (0x0x7fe22de533a8) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7fe22de7b960) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7fe22de7b9c0) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7fe22de7ba20) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7fe22de7b8a0) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7fe22db38660) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7fe22dbef960) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7fe22d72af08 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fe22d7a2000 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7fe22d7a2548 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fe22d7a2618 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7fe22d7a2bc8) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7fe22d7e5360) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7fe22d7a2bc8) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7fe22d7a2c30) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7fe22d7e5480) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7fe22d7a2c30) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7fe22d7a2c98) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7fe22d7e55a0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7fe22d7a2c98) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7fe22d7a2d68) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7fe22d7e56c0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7fe22d7a2d68) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7fe22d7e5f60) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7fe22d80f300) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7fe22d80f600) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7fe22d80f960) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7fe22d7a2ea0) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7fe22d8bf120) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7fe22d7a2ea0) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7fe22d8feea0) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7fe22d927420) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7fe22d66d240) 0 + +Class QByteArrayView + size=16 align=8 + base size=16 base align=8 +QByteArrayView (0x0x7fe22d3bf900) 0 + +Class QByteArray + size=24 align=8 + base size=24 base align=8 +QByteArray (0x0x7fe22d4c7300) 0 + +Class QByteArray::FromBase64Result + size=32 align=8 + base size=28 base align=8 +QByteArray::FromBase64Result (0x0x7fe22d30e5a0) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7fe22cfbd180) 0 + +Class QChar::fromUcs4(char32_t)::R + size=4 align=2 + base size=4 base align=2 +QChar::fromUcs4(char32_t)::R (0x0x7fe22d104000) 0 + +Class QtPrivate::hide_char8_t + size=1 align=1 + base size=0 base align=1 +QtPrivate::hide_char8_t (0x0x7fe22d104420) 0 empty + +Class QtPrivate::wrap_char + size=1 align=1 + base size=0 base align=1 +QtPrivate::wrap_char (0x0x7fe22d104480) 0 empty + +Class QAnyStringView + size=16 align=8 + base size=16 base align=8 +QAnyStringView (0x0x7fe22cd87600) 0 + +Class QStringTokenizerBaseBase::tokenizer_state + size=24 align=8 + base size=24 base align=8 +QStringTokenizerBaseBase::tokenizer_state (0x0x7fe22ce66c00) 0 + +Class QStringTokenizerBaseBase + size=8 align=4 + base size=8 base align=4 +QStringTokenizerBaseBase (0x0x7fe22ce66ba0) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7fe22ceaec00) 0 + +Class QString + size=24 align=8 + base size=24 base align=8 +QString (0x0x7fe22cc10d80) 0 + +Class QtPrivate::ArgBase + size=1 align=1 + base size=1 base align=1 +QtPrivate::ArgBase (0x0x7fe22c849180) 0 + +Class QtPrivate::QStringViewArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QStringViewArg (0x0x7fe22c82ab60) 0 + QtPrivate::ArgBase (0x0x7fe22c8491e0) 0 + +Class QtPrivate::QLatin1StringArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QLatin1StringArg (0x0x7fe22c82ac30) 0 + QtPrivate::ArgBase (0x0x7fe22c849420) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7fe22c8bd8a0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7fe22c8bd960) 0 empty + +Class QStringMatcher + size=312 align=8 + base size=312 base align=8 +QStringMatcher (0x0x7fe22c6cade0) 0 + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7fe22c6fe480) 0 empty + +Class QtPrivate::CompareAgainstLiteralZero + size=1 align=1 + base size=0 base align=1 +QtPrivate::CompareAgainstLiteralZero (0x0x7fe22c38fd20) 0 empty + +Class QPartialOrdering + size=1 align=1 + base size=1 base align=1 +QPartialOrdering (0x0x7fe22c38ff60) 0 + +Class QIODeviceBase + size=1 align=1 + base size=0 base align=1 +QIODeviceBase (0x0x7fe22c44a0c0) 0 empty + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7fe22c65e820) 0 + QIODeviceBase (0x0x7fe22c44a120) 0 empty + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7fe22c44a2a0) 0 + +Class QtMetaContainerPrivate::QMetaContainerInterface + size=120 align=8 + base size=120 base align=8 +QtMetaContainerPrivate::QMetaContainerInterface (0x0x7fe22c5016c0) 0 + +Class QtMetaContainerPrivate::QMetaSequenceInterface + size=216 align=8 + base size=216 base align=8 +QtMetaContainerPrivate::QMetaSequenceInterface (0x0x7fe22c151000) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7fe22c501780) 0 + +Class QtMetaContainerPrivate::QMetaAssociationInterface + size=240 align=8 + base size=240 base align=8 +QtMetaContainerPrivate::QMetaAssociationInterface (0x0x7fe22c1510d0) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7fe22c501840) 0 + +Class QMetaContainer + size=8 align=8 + base size=8 base align=8 +QMetaContainer (0x0x7fe22c1ea360) 0 + +Class QMetaSequence + size=8 align=8 + base size=8 base align=8 +QMetaSequence (0x0x7fe22c151478) 0 + QMetaContainer (0x0x7fe22c1ea540) 0 + +Class QMetaAssociation + size=8 align=8 + base size=8 base align=8 +QMetaAssociation (0x0x7fe22c1514e0) 0 + QMetaContainer (0x0x7fe22c1ea900) 0 + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7fe22c2dbc60) 0 + +Class std::__detail::_List_node_header + size=24 align=8 + base size=24 base align=8 +std::__detail::_List_node_header (0x0x7fe22c297548) 0 + std::__detail::_List_node_base (0x0x7fe22c2dbcc0) 0 + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7fe22bfccd80) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7fe22bfed120) 0 + +Class QMetaType + size=8 align=8 + base size=8 base align=8 +QMetaType (0x0x7fe22be4a720) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7fe22beadd80) 0 + +Class QtPrivate::QMetaTypeInterface + size=112 align=8 + base size=112 base align=8 +QtPrivate::QMetaTypeInterface (0x0x7fe22b9bcc00) 0 + +Class QtPrivate::QTypeNormalizer + size=16 align=8 + base size=16 base align=8 +QtPrivate::QTypeNormalizer (0x0x7fe22b9bcc60) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7fe22b902360) 0 + +Class QAdoptSharedDataTag + size=1 align=1 + base size=0 base align=1 +QAdoptSharedDataTag (0x0x7fe22b9026c0) 0 empty + +Class QtPrivate::RefCounted + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCounted (0x0x7fe22b563720) 0 + +Class QPropertyBindingPrivatePtr + size=8 align=8 + base size=8 base align=8 +QPropertyBindingPrivatePtr (0x0x7fe22b563840) 0 + +Class QUntypedPropertyData::InheritsQUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData::InheritsQUntypedPropertyData (0x0x7fe22b5acea0) 0 empty + +Class QUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData (0x0x7fe22b5ace40) 0 empty + +Class QtPrivate::BindingFunctionVTable + size=32 align=8 + base size=32 base align=8 +QtPrivate::BindingFunctionVTable (0x0x7fe22b5acf00) 0 + +Class QtPrivate::QPropertyBindingFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::QPropertyBindingFunction (0x0x7fe22b5d33c0) 0 + +Class QtPrivate::QPropertyBindingData + size=8 align=8 + base size=8 base align=8 +QtPrivate::QPropertyBindingData (0x0x7fe22b5d3420) 0 + +Class std::experimental::fundamentals_v2::source_location + size=24 align=8 + base size=24 base align=8 +std::experimental::fundamentals_v2::source_location (0x0x7fe22b5d3a20) 0 + +Class QPropertyBindingSourceLocation + size=24 align=8 + base size=24 base align=8 +QPropertyBindingSourceLocation (0x0x7fe22b603180) 0 + +Class QPropertyBindingError + size=8 align=8 + base size=8 base align=8 +QPropertyBindingError (0x0x7fe22b603480) 0 + +Class QUntypedPropertyBinding + size=8 align=8 + base size=8 base align=8 +QUntypedPropertyBinding (0x0x7fe22b6035a0) 0 + +Class QPropertyObserverBase + size=24 align=8 + base size=24 base align=8 +QPropertyObserverBase (0x0x7fe22b6037e0) 0 + +Class QPropertyObserver + size=24 align=8 + base size=24 base align=8 +QPropertyObserver (0x0x7fe22b5c4618) 0 + QPropertyObserverBase (0x0x7fe22b603960) 0 + +Class QtPrivate::QBindableInterface + size=56 align=8 + base size=56 base align=8 +QtPrivate::QBindableInterface (0x0x7fe22b6718a0) 0 + +Class QUntypedBindable + size=16 align=8 + base size=16 base align=8 +QUntypedBindable (0x0x7fe22b68fa20) 0 + +Class QBindingStatus + size=16 align=8 + base size=16 base align=8 +QBindingStatus (0x0x7fe22b6bee40) 0 + +Class QBindingStorage + size=16 align=8 + base size=16 base align=8 +QBindingStorage (0x0x7fe22b6beea0) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7fe22b3c2b40) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7fe22b4668a0) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=80 align=8 + base size=80 base align=8 +QObjectData (0x0x7fe22b145240) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7fe22b145ba0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7fe22b145b40) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7fe22b20eae0) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7fe22b24b3c0) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7fe22b177888) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7fe22b24b360) 0 + primary-for QAbstractAnimation (0x0x7fe22b177888) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7fe22b24b720) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7fe22b1778f0) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7fe22b24b6c0) 0 + primary-for QAnimationDriver (0x0x7fe22b1778f0) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7fe22b24b900) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7fe22b177958) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7fe22b24b8a0) 0 + primary-for QEventLoop (0x0x7fe22b177958) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7fe22b24bd80) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7fe22b24be40) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7fe22b24bea0) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QAbstractEventDispatcher::startingUp +200 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7fe22b177af8) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7fe22b24bde0) 0 + primary-for QAbstractEventDispatcher (0x0x7fe22b177af8) + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7fe22b2e5660) 0 empty + +Class QStringConverterBase::State + size=48 align=8 + base size=48 base align=8 +QStringConverterBase::State (0x0x7fe22adb44e0) 0 + +Class QStringConverterBase + size=1 align=1 + base size=0 base align=1 +QStringConverterBase (0x0x7fe22adb4480) 0 empty + +Class QStringConverter::Interface + size=40 align=8 + base size=40 base align=8 +QStringConverter::Interface (0x0x7fe22adfb060) 0 + +Class QStringConverter + size=56 align=8 + base size=56 base align=8 +QStringConverter (0x0x7fe22b2ebc30) 0 + QStringConverterBase (0x0x7fe22adfb000) 0 empty + +Class QStringEncoder + size=56 align=8 + base size=56 base align=8 +QStringEncoder (0x0x7fe22b2ebc98) 0 + QStringConverter (0x0x7fe22b2ebd00) 0 + QStringConverterBase (0x0x7fe22adfba20) 0 empty + +Class QStringDecoder + size=56 align=8 + base size=56 base align=8 +QStringDecoder (0x0x7fe22b2ebd68) 0 + QStringConverter (0x0x7fe22b2ebdd0) 0 + QStringConverterBase (0x0x7fe22ae2a8a0) 0 empty + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7fe22b2ebe38) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + QIODeviceBase (0x0x7fe22ae4b5a0) 0 empty + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7fe22ae4bc60) 0 + +Class QContiguousCacheData + size=40 align=8 + base size=40 base align=8 +QContiguousCacheData (0x0x7fe22af22e40) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7fe22ab668a0) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7fe22ab66a20) 0 + +Class QtPrivate::EnableInternalData + size=1 align=1 + base size=0 base align=1 +QtPrivate::EnableInternalData (0x0x7fe22ac27c00) 0 empty + +Class QDebug::Stream + size=88 align=8 + base size=88 base align=8 +QDebug::Stream (0x0x7fe22ac41c00) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7fe22ac0b8f0) 0 + QIODeviceBase (0x0x7fe22ac41ba0) 0 empty + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7fe22a96eb40) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7fe22a96ec00) 0 empty + +Class QVariant::PrivateShared + size=8 align=8 + base size=8 base align=8 +QVariant::PrivateShared (0x0x7fe22a742660) 0 + +Class QVariant::Private + size=32 align=8 + base size=32 base align=8 +QVariant::Private (0x0x7fe22a7426c0) 0 + +Class QVariant + size=32 align=8 + base size=32 base align=8 +QVariant (0x0x7fe22a742600) 0 + +Class QtPrivate::QVariantTypeCoercer + size=32 align=8 + base size=32 base align=8 +QtPrivate::QVariantTypeCoercer (0x0x7fe22a907de0) 0 + +Class QVariantConstPointer + size=32 align=8 + base size=32 base align=8 +QVariantConstPointer (0x0x7fe22a52d060) 0 + +Class QModelRoleData + size=40 align=8 + base size=40 base align=8 +QModelRoleData (0x0x7fe22a52d240) 0 + +Class QModelRoleDataSpan + size=16 align=8 + base size=16 base align=8 +QModelRoleDataSpan (0x0x7fe22a564120) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7fe22a5af180) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7fe22a5fc360) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7fe22a66dc00) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractItemModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractItemModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7fe22a67ba90) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7fe22a66dba0) 0 + primary-for QAbstractItemModel (0x0x7fe22a67ba90) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7fe22a39d900) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractTableModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7fe22a3402d8) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7fe22a340340) 0 + primary-for QAbstractTableModel (0x0x7fe22a3402d8) + QObject (0x0x7fe22a39d8a0) 0 + primary-for QAbstractItemModel (0x0x7fe22a340340) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7fe22a39da20) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractListModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7fe22a3403a8) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7fe22a340410) 0 + primary-for QAbstractListModel (0x0x7fe22a3403a8) + QObject (0x0x7fe22a39d9c0) 0 + primary-for QAbstractItemModel (0x0x7fe22a340410) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7fe22a3eee40) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7fe22a3eef00) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QAbstractProxyModel::setSourceModel +416 (int (*)(...))__cxa_pure_virtual +424 (int (*)(...))__cxa_pure_virtual +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7fe22a407820) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7fe22a407888) 0 + primary-for QAbstractProxyModel (0x0x7fe22a407820) + QObject (0x0x7fe22a3eeea0) 0 + primary-for QAbstractItemModel (0x0x7fe22a407888) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7fe22a432120) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7fe22a4078f0) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7fe22a407958) 0 + primary-for QAnimationGroup (0x0x7fe22a4078f0) + QObject (0x0x7fe22a4320c0) 0 + primary-for QAbstractAnimation (0x0x7fe22a407958) + +Class QAssociativeIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeIterator (0x0x7fe22a407a90) 0 + QIterator (0x0x7fe22a407af8) 0 + QBaseIterator (0x0x7fe22a432540) 0 + +Class QAssociativeConstIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeConstIterator (0x0x7fe22a407c30) 0 + QConstIterator (0x0x7fe22a407c98) 0 + QBaseIterator (0x0x7fe22a432ae0) 0 + +Class QAssociativeIterable + size=24 align=8 + base size=24 base align=8 +QAssociativeIterable (0x0x7fe22a407d68) 0 + QIterable (0x0x7fe22a484000) 0 + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7fe22a163ae0) 0 + +Class QBitArray + size=24 align=8 + base size=24 base align=8 +QBitArray (0x0x7fe22a1c3840) 0 + +Class QBitRef + size=16 align=8 + base size=16 base align=8 +QBitRef (0x0x7fe22a1f3780) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7fe22a23a300) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7fe22a14a850) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7fe22a23a240) 0 + primary-for QIODevice (0x0x7fe22a14a850) + QIODeviceBase (0x0x7fe22a23a2a0) 0 empty + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7fe22a23a660) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7fe22a22ac98) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7fe22a14a8c0) 0 + primary-for QBuffer (0x0x7fe22a22ac98) + QObject (0x0x7fe22a23a5a0) 0 + primary-for QIODevice (0x0x7fe22a14a8c0) + QIODeviceBase (0x0x7fe22a23a600) 0 empty + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7fe22a23a8a0) 0 + +Class QByteArrayMatcher + size=1056 align=8 + base size=1056 base align=8 +QByteArrayMatcher (0x0x7fe22a23a840) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7fe22a23aa20) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7fe22a23a9c0) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7fe22a2de240) 0 + +Class QCalendar::YearMonthDay + size=12 align=4 + base size=12 base align=4 +QCalendar::YearMonthDay (0x0x7fe22a019000) 0 + +Class QCalendar + size=8 align=8 + base size=8 base align=8 +QCalendar (0x0x7fe229fd7f60) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7fe22a019360) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7fe22a080960) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7fe22a0c8ba0) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7fe22a0c8c00) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7fe22a0c8b40) 0 + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7fe229d4ee40) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7fe229d74720) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7fe229e1a7e0) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel + size=1 align=1 + base size=0 base align=1 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel (0x0x7fe229e82f60) 0 empty + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7fe229ea6060) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator + size=24 align=8 + base size=17 base align=8 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator (0x0x7fe229ea61e0) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7fe229b311e0) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7fe229bf7d20) 0 + +Class QCborParserError + size=16 align=8 + base size=16 base align=8 +QCborParserError (0x0x7fe229c74ea0) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7fe229c74f60) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7fe2299a8840) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7fe2299e2d80) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7fe2299e2de0) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7fe2299e2d20) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7fe229aee3c0) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7fe229aee420) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7fe229aee360) 0 + +Class qfloat16::Wrap + size=2 align=2 + base size=2 base align=2 +qfloat16::Wrap (0x0x7fe229906480) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7fe229906420) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7fe2295fa4e0) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7fe22963ce40) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7fe2296688a0) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7fe229668a80) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7fe22932c4e0) 0 + +Class QEvent::InputEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::InputEventTag (0x0x7fe229395d80) 0 empty + +Class QEvent::PointerEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::PointerEventTag (0x0x7fe229395de0) 0 empty + +Class QEvent::SinglePointEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::SinglePointEventTag (0x0x7fe229395e40) 0 empty + +Vtable for QEvent +QEvent::_ZTV6QEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QEvent + size=16 align=8 + base size=16 base align=8 +QEvent (0x0x7fe229395d20) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QTimerEvent::clone + +Class QTimerEvent + size=24 align=8 + base size=20 base align=8 +QTimerEvent (0x0x7fe22939bbc8) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7fe2293f27e0) 0 + primary-for QTimerEvent (0x0x7fe22939bbc8) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QChildEvent::clone + +Class QChildEvent + size=24 align=8 + base size=24 base align=8 +QChildEvent (0x0x7fe22939bc30) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7fe2293f2cc0) 0 + primary-for QChildEvent (0x0x7fe22939bc30) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDynamicPropertyChangeEvent::clone + +Class QDynamicPropertyChangeEvent + size=40 align=8 + base size=40 base align=8 +QDynamicPropertyChangeEvent (0x0x7fe22939bc98) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7fe229421120) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7fe22939bc98) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDeferredDeleteEvent::clone + +Class QDeferredDeleteEvent + size=24 align=8 + base size=20 base align=8 +QDeferredDeleteEvent (0x0x7fe22939bd00) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7fe2294213c0) 0 + primary-for QDeferredDeleteEvent (0x0x7fe22939bd00) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7fe229421720) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7fe22939bd68) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7fe2294216c0) 0 + primary-for QCoreApplication (0x0x7fe22939bd68) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7fe229421900) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7fe229421a20) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +224 (int (*)(...))QConcatenateTablesProxyModel::mimeData +232 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +240 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QConcatenateTablesProxyModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QConcatenateTablesProxyModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7fe22939bdd0) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7fe22939be38) 0 + primary-for QConcatenateTablesProxyModel (0x0x7fe22939bdd0) + QObject (0x0x7fe2294219c0) 0 + primary-for QAbstractItemModel (0x0x7fe22939be38) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7fe229421ba0) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7fe229421cc0) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7fe229488000) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7fe22918e5a0) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFileDevice::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7fe22918f410) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7fe22919a000) 0 + primary-for QFileDevice (0x0x7fe22918f410) + QObject (0x0x7fe22918e4e0) 0 + primary-for QIODevice (0x0x7fe22919a000) + QIODeviceBase (0x0x7fe22918e540) 0 empty + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7fe22922d120) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7fe22918f820) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7fe22918f888) 0 + primary-for QFile (0x0x7fe22918f820) + QIODevice (0x0x7fe22922f000) 0 + primary-for QFileDevice (0x0x7fe22918f888) + QObject (0x0x7fe22922d060) 0 + primary-for QIODevice (0x0x7fe22922f000) + QIODeviceBase (0x0x7fe22922d0c0) 0 empty + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7fe22922d3c0) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7fe2292aede0) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7fe228fa00c0) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7fe228fa0480) 0 + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7fe229051478) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7fe229079ba0) 0 nearly-empty + primary-for QException (0x0x7fe229051478) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=16 align=8 + base size=16 base align=8 +QUnhandledException (0x0x7fe2290514e0) 0 + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7fe229051548) 0 nearly-empty + primary-for QUnhandledException (0x0x7fe2290514e0) + std::exception (0x0x7fe229079c00) 0 nearly-empty + primary-for QException (0x0x7fe229051548) + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7fe2290c6a80) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7fe2290c6ae0) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7fe2290c6d20) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7fe2290d6750) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7fe2290c6cc0) 0 + primary-for QFileSelector (0x0x7fe2290d6750) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7fe2290c6f00) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7fe2290d67b8) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7fe2290c6ea0) 0 + primary-for QFileSystemWatcher (0x0x7fe2290d67b8) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=9 base align=8 +QRunnable (0x0x7fe2290f80c0) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7fe2290f82a0) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7fe2290d6888) 0 + QBasicMutex (0x0x7fe228d5f000) 0 + +Class QRecursiveMutex + size=24 align=8 + base size=24 base align=8 +QRecursiveMutex (0x0x7fe228d5f420) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7fe228d5fa20) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7fe228dcf060) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7fe228dcfcc0) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7fe228b34720) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7fe228b35af8) 0 + std::__mutex_base (0x0x7fe228b34780) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7fe228b34960) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7fe228b349c0) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7fe228b34a20) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7fe228b6f420) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7fe228b35b60) 0 + std::__recursive_mutex_base (0x0x7fe228b6f480) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7fe229058850) 0 + std::__mutex_base (0x0x7fe228b6f840) 0 + std::__timed_mutex_impl (0x0x7fe228b6f8a0) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7fe2290588c0) 0 + std::__recursive_mutex_base (0x0x7fe228b6fc60) 0 + std::__timed_mutex_impl (0x0x7fe228b6fcc0) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7fe228ba9ae0) 0 + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7fe228ba9d20) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7fe228bf4c60) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7fe228bf4cc0) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7fe228bf4c00) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7fe2289e2f00) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7fe228a1b300) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7fe228a1b360) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7fe228acd8a0) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7fe228a1cd68) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7fe228a1cdd0) 0 + primary-for std::future_error (0x0x7fe228a1cd68) + std::exception (0x0x7fe228af7000) 0 nearly-empty + primary-for std::logic_error (0x0x7fe228a1cdd0) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7fe228af7720) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7fe228af76c0) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7fe22886f180) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7fe22885d5b0) 0 + std::__at_thread_exit_elt (0x0x7fe22886f240) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7fe228af78a0) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7fe228af7660) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7fe2285009c0) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7fe228132f00) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7fe2285009c0) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7fe2281707e0) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7fe228500d00) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7fe228170780) 0 + primary-for QThread (0x0x7fe228500d00) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7fe228170ba0) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7fe228500d68) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7fe228170b40) 0 + primary-for QThreadPool (0x0x7fe228500d68) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7fe227fc4a80) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7fe228319bc8) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7fe227fc4a20) 0 + primary-for QFutureWatcherBase (0x0x7fe228319bc8) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7fe227fed000) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QIdentityProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QIdentityProxyModel::insertRows +272 (int (*)(...))QIdentityProxyModel::insertColumns +280 (int (*)(...))QIdentityProxyModel::removeRows +288 (int (*)(...))QIdentityProxyModel::removeColumns +296 (int (*)(...))QIdentityProxyModel::moveRows +304 (int (*)(...))QIdentityProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QIdentityProxyModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QIdentityProxyModel::setSourceModel +416 (int (*)(...))QIdentityProxyModel::mapToSource +424 (int (*)(...))QIdentityProxyModel::mapFromSource +432 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +440 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7fe228319dd0) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7fe228319e38) 0 + primary-for QIdentityProxyModel (0x0x7fe228319dd0) + QAbstractItemModel (0x0x7fe228319ea0) 0 + primary-for QAbstractProxyModel (0x0x7fe228319e38) + QObject (0x0x7fe227fc4f60) 0 + primary-for QAbstractItemModel (0x0x7fe228319ea0) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7fe227fed180) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7fe228050d20) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7fe228059c30) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7fe228050cc0) 0 + primary-for QItemSelectionModel (0x0x7fe228059c30) + +Class QItemSelection + size=24 align=8 + base size=24 base align=8 +QItemSelection (0x0x7fe2280cd138) 0 + QList (0x0x7fe2280cd1a0) 0 + QListSpecialMethods (0x0x7fe2280cd208) 0 empty + QListSpecialMethodsBase (0x0x7fe22807f720) 0 empty + +Class QJsonValue + size=24 align=8 + base size=24 base align=8 +QJsonValue (0x0x7fe227d3c420) 0 + +Class QJsonValueRef + size=16 align=8 + base size=16 base align=8 +QJsonValueRef (0x0x7fe227d3c900) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::iterator (0x0x7fe227d99b40) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::const_iterator (0x0x7fe227d99ba0) 0 + +Class QJsonArray + size=8 align=8 + base size=8 base align=8 +QJsonArray (0x0x7fe227d99ae0) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7fe227e475a0) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7fe227e47600) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::iterator (0x0x7fe227bdab40) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::const_iterator (0x0x7fe227bdaba0) 0 + +Class QJsonObject + size=8 align=8 + base size=8 base align=8 +QJsonObject (0x0x7fe227bdaae0) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7fe227c946c0) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=24 align=8 + base size=24 base align=8 +QLibrary (0x0x7fe227c992d8) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7fe227c94660) 0 + primary-for QLibrary (0x0x7fe227c992d8) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7fe227c94cc0) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7fe227c94c60) 0 + +Class QTypeRevision + size=2 align=1 + base size=2 base align=1 +QTypeRevision (0x0x7fe2279aa480) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7fe227a00c00) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7fe227a00cc0) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7fe227a7d3c0) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7fe227ad3d20) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7fe22773e360) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7fe227790b40) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7fe227790d80) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7fe227790d20) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7fe2277d5c60) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7fe2278715a0) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7fe227904300) 0 + +Class QMetaMethod::Data + size=8 align=8 + base size=8 base align=8 +QMetaMethod::Data (0x0x7fe2279043c0) 0 + +Class QMetaMethod + size=16 align=8 + base size=16 base align=8 +QMetaMethod (0x0x7fe227904360) 0 + +Class QMetaEnum::Data + size=8 align=8 + base size=8 base align=8 +QMetaEnum::Data (0x0x7fe227569600) 0 + +Class QMetaEnum + size=16 align=8 + base size=16 base align=8 +QMetaEnum (0x0x7fe2275695a0) 0 + +Class QMetaProperty::Data + size=8 align=8 + base size=8 base align=8 +QMetaProperty::Data (0x0x7fe2275ae360) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7fe2275ae300) 0 + +Class QMetaClassInfo::Data + size=8 align=8 + base size=8 base align=8 +QMetaClassInfo::Data (0x0x7fe2275aea20) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=16 base align=8 +QMetaClassInfo (0x0x7fe2275ae9c0) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7fe2275fb840) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7fe2275f6d68) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7fe2275fb7e0) 0 + primary-for QMimeData (0x0x7fe2275f6d68) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7fe2275fb9c0) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7fe22768f3c0) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7fe22768f480) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=40 align=8 + base size=40 base align=8 +QObjectCleanupHandler (0x0x7fe227682bc8) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7fe22768f420) 0 + primary-for QObjectCleanupHandler (0x0x7fe227682bc8) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7fe22768f540) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7fe2276f0360) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7fe2276e7618) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7fe2276e7680) 0 + primary-for QParallelAnimationGroup (0x0x7fe2276e7618) + QAbstractAnimation (0x0x7fe2276e76e8) 0 + primary-for QAnimationGroup (0x0x7fe2276e7680) + QObject (0x0x7fe2276f0300) 0 + primary-for QAbstractAnimation (0x0x7fe2276e76e8) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7fe2276f0540) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7fe2276e7750) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7fe2276e77b8) 0 + primary-for QPauseAnimation (0x0x7fe2276e7750) + QObject (0x0x7fe2276f04e0) 0 + primary-for QAbstractAnimation (0x0x7fe2276e77b8) + +Class QPluginMetaData + size=16 align=8 + base size=16 base align=8 +QPluginMetaData (0x0x7fe2276f0720) 0 + +Class QStaticPlugin + size=24 align=8 + base size=24 base align=8 +QStaticPlugin (0x0x7fe2276f0780) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7fe22733e1e0) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7fe2273383a8) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7fe22733e180) 0 + primary-for QPluginLoader (0x0x7fe2273383a8) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7fe22733e2a0) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7fe2273ae9c0) 0 empty + +Class QProcess::Use_setChildProcessModifier_Instead + size=1 align=1 + base size=0 base align=1 +QProcess::Use_setChildProcessModifier_Instead (0x0x7fe2273aea20) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 32 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QProcess::writeData +248 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7fe2273b5410) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7fe2273bc0e0) 0 + primary-for QProcess (0x0x7fe2273b5410) + QObject (0x0x7fe2273ae900) 0 + primary-for QIODevice (0x0x7fe2273bc0e0) + QIODeviceBase (0x0x7fe2273ae960) 0 empty + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7fe2273f17e0) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7fe2273b5478) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7fe2273b54e0) 0 + primary-for QVariantAnimation (0x0x7fe2273b5478) + QObject (0x0x7fe2273f1780) 0 + primary-for QAbstractAnimation (0x0x7fe2273b54e0) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7fe2273f1a20) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7fe2273b55b0) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7fe2273b5618) 0 + primary-for QPropertyAnimation (0x0x7fe2273b55b0) + QAbstractAnimation (0x0x7fe2273b5680) 0 + primary-for QVariantAnimation (0x0x7fe2273b5618) + QObject (0x0x7fe2273f19c0) 0 + primary-for QAbstractAnimation (0x0x7fe2273b5680) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7fe2274ab180) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7fe22719d600) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7fe22719d5a0) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7fe226f55d80) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7fe226d6ecc0) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7fe226d6ec60) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7fe226de6340) 0 + QRandomGenerator (0x0x7fe226dedf60) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7fe226e1bba0) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7fe226e1bde0) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7fe226e82300) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7fe226e827e0) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7fe226efd240) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7fe226b57a20) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7fe226c25840) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7fe226cfc3c0) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7fe226cfc6c0) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QSaveFile::writeData +248 (int (*)(...))QSaveFile::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7fe226c9c5b0) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7fe226c9c618) 0 + primary-for QSaveFile (0x0x7fe226c9c5b0) + QIODevice (0x0x7fe226ca72a0) 0 + primary-for QFileDevice (0x0x7fe226c9c618) + QObject (0x0x7fe226cfc600) 0 + primary-for QIODevice (0x0x7fe226ca72a0) + QIODeviceBase (0x0x7fe226cfc660) 0 empty + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7fe226cfccc0) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7fe2269954e0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7fe2269fa1e0) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7fe2269f91a0) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7fe2269f9208) 0 + primary-for QSequentialAnimationGroup (0x0x7fe2269f91a0) + QAbstractAnimation (0x0x7fe2269f9270) 0 + primary-for QAnimationGroup (0x0x7fe2269f9208) + QObject (0x0x7fe2269fa180) 0 + primary-for QAbstractAnimation (0x0x7fe2269f9270) + +Class QSequentialIterator + size=16 align=8 + base size=16 base align=8 +QSequentialIterator (0x0x7fe2269f93a8) 0 + QIterator (0x0x7fe2269f9410) 0 + QBaseIterator (0x0x7fe2269fa540) 0 + +Class QSequentialConstIterator + size=16 align=8 + base size=16 base align=8 +QSequentialConstIterator (0x0x7fe2269f94e0) 0 + QConstIterator (0x0x7fe2269f9548) 0 + QBaseIterator (0x0x7fe2269faae0) 0 + +Class QSequentialIterable + size=24 align=8 + base size=24 base align=8 +QSequentialIterable (0x0x7fe2269f95b0) 0 + QIterable (0x0x7fe226a4c000) 0 + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7fe22672c600) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7fe22672b9c0) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7fe22672c5a0) 0 + primary-for QSettings (0x0x7fe22672b9c0) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7fe22672ca20) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7fe22672ba28) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7fe22672c9c0) 0 + primary-for QSharedMemory (0x0x7fe22672ba28) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7fe22672cc00) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7fe22672ba90) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7fe22672cba0) 0 + primary-for QSignalMapper (0x0x7fe22672ba90) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7fe22a623ea0) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7fe22f358bc8) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7fe22a623e40) 0 + primary-for QSocketNotifier (0x0x7fe22f358bc8) + +Class QSocketDescriptor + size=4 align=4 + base size=4 base align=4 +QSocketDescriptor (0x0x7fe229ce6060) 0 + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7fe229ce6720) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QSortFilterProxyModel::mimeTypes +224 (int (*)(...))QSortFilterProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QSortFilterProxyModel::dropMimeData +248 (int (*)(...))QSortFilterProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QSortFilterProxyModel::insertRows +272 (int (*)(...))QSortFilterProxyModel::insertColumns +280 (int (*)(...))QSortFilterProxyModel::removeRows +288 (int (*)(...))QSortFilterProxyModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSortFilterProxyModel::fetchMore +320 (int (*)(...))QSortFilterProxyModel::canFetchMore +328 (int (*)(...))QSortFilterProxyModel::flags +336 (int (*)(...))QSortFilterProxyModel::sort +344 (int (*)(...))QSortFilterProxyModel::buddy +352 (int (*)(...))QSortFilterProxyModel::match +360 (int (*)(...))QSortFilterProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSortFilterProxyModel::setSourceModel +416 (int (*)(...))QSortFilterProxyModel::mapToSource +424 (int (*)(...))QSortFilterProxyModel::mapFromSource +432 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +440 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +448 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +456 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +464 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7fe22f358c30) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7fe22f358c98) 0 + primary-for QSortFilterProxyModel (0x0x7fe22f358c30) + QAbstractItemModel (0x0x7fe22f358d68) 0 + primary-for QAbstractProxyModel (0x0x7fe22f358c98) + QObject (0x0x7fe229ce66c0) 0 + primary-for QAbstractItemModel (0x0x7fe22f358d68) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7fe229ce6ae0) 0 empty + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7fe2296fe420) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7fe228c65d80) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7fe227beb600) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QStringListModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QStringListModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStringListModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QStringListModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QStringListModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStringListModel::flags +336 (int (*)(...))QStringListModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStringListModel + size=40 align=8 + base size=40 base align=8 +QStringListModel (0x0x7fe22f982e38) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7fe22f982f08) 0 + primary-for QStringListModel (0x0x7fe22f982e38) + QAbstractItemModel (0x0x7fe22f982f70) 0 + primary-for QAbstractListModel (0x0x7fe22f982f08) + QObject (0x0x7fe227beb5a0) 0 + primary-for QAbstractItemModel (0x0x7fe22f982f70) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7fe227beb6c0) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7fe227beb7e0) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7fe227beb960) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QTemporaryFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7fe22f994000) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7fe22f9940d0) 0 + primary-for QTemporaryFile (0x0x7fe22f994000) + QFileDevice (0x0x7fe22f9941a0) 0 + primary-for QFile (0x0x7fe22f9940d0) + QIODevice (0x0x7fe22f951f50) 0 + primary-for QFileDevice (0x0x7fe22f9941a0) + QObject (0x0x7fe227beb8a0) 0 + primary-for QIODevice (0x0x7fe22f951f50) + QIODeviceBase (0x0x7fe227beb900) 0 empty + +Class QTextBoundaryFinder + size=72 align=8 + base size=72 base align=8 +QTextBoundaryFinder (0x0x7fe227bebba0) 0 + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7fe226a9f180) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7fe226a9f840) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7fe22f9946e8) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7fe226a9f7e0) 0 + primary-for QTimeLine (0x0x7fe22f9946e8) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7fe226a9fa20) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=16 align=8 + base size=16 base align=8 +QTimer (0x0x7fe22f994750) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7fe226a9f9c0) 0 + primary-for QTimer (0x0x7fe22f994750) + +Class QTimeZone::OffsetData + size=48 align=8 + base size=44 base align=8 +QTimeZone::OffsetData (0x0x7fe22c9e7840) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7fe22c9e77e0) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7fe227cdf8a0) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7fe22f803068) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7fe227cdf840) 0 + primary-for QTranslator (0x0x7fe22f803068) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7fe227cdfa80) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QTransposeProxyModel::insertRows +272 (int (*)(...))QTransposeProxyModel::insertColumns +280 (int (*)(...))QTransposeProxyModel::removeRows +288 (int (*)(...))QTransposeProxyModel::removeColumns +296 (int (*)(...))QTransposeProxyModel::moveRows +304 (int (*)(...))QTransposeProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QTransposeProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QTransposeProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QTransposeProxyModel::setSourceModel +416 (int (*)(...))QTransposeProxyModel::mapToSource +424 (int (*)(...))QTransposeProxyModel::mapFromSource +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7fe22f8030d0) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7fe22f803270) 0 + primary-for QTransposeProxyModel (0x0x7fe22f8030d0) + QAbstractItemModel (0x0x7fe22f8033a8) 0 + primary-for QAbstractProxyModel (0x0x7fe22f803270) + QObject (0x0x7fe227cdfa20) 0 + primary-for QAbstractItemModel (0x0x7fe22f8033a8) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7fe227cdfc00) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7fe22cb40420) 0 + +Class QtPrivate::QXmlString + size=24 align=8 + base size=24 base align=8 +QtPrivate::QXmlString (0x0x7fe22cb40540) 0 + +Class QXmlStreamAttribute + size=104 align=8 + base size=97 base align=8 +QXmlStreamAttribute (0x0x7fe22aa333c0) 0 + +Class QXmlStreamAttributes + size=24 align=8 + base size=24 base align=8 +QXmlStreamAttributes (0x0x7fe22f5c57b8) 0 + QList (0x0x7fe22f5c5750) 0 + QListSpecialMethods (0x0x7fe22f5c5888) 0 empty + QListSpecialMethodsBase (0x0x7fe22a2f2480) 0 empty + +Class QXmlStreamNamespaceDeclaration + size=48 align=8 + base size=48 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7fe22a2f2d20) 0 + +Class QXmlStreamNotationDeclaration + size=72 align=8 + base size=72 base align=8 +QXmlStreamNotationDeclaration (0x0x7fe223f4d3c0) 0 + +Class QXmlStreamEntityDeclaration + size=120 align=8 + base size=120 base align=8 +QXmlStreamEntityDeclaration (0x0x7fe223f53a20) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7fe223f5f1e0) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7fe223f5f240) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7fe223f5f7e0) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=16 align=8 + base size=10 base align=8 +QPaintDevice (0x0x7fe223f5f9c0) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16) + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7fe223f87480) 0 + +Class QColor::CT + size=10 align=2 + base size=10 base align=2 +QColor::CT (0x0x7fe223fae180) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7fe223fae120) 0 + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7fe223fdb1e0) 0 + +Class QPolygon + size=24 align=8 + base size=24 base align=8 +QPolygon (0x0x7fe22f65a0d0) 0 + QList (0x0x7fe22f65a138) 0 + QListSpecialMethods (0x0x7fe22f65a1a0) 0 empty + QListSpecialMethodsBase (0x0x7fe223ffcea0) 0 empty + +Class QPolygonF + size=24 align=8 + base size=24 base align=8 +QPolygonF (0x0x7fe22f65e4e0) 0 + QList (0x0x7fe22f65e548) 0 + QListSpecialMethods (0x0x7fe22f65e5b0) 0 empty + QListSpecialMethodsBase (0x0x7fe224039ae0) 0 empty + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7fe22407e300) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7fe22407e2a0) 0 + +Class QTransform::Affine + size=8 align=8 + base size=8 base align=8 +QTransform::Affine (0x0x7fe2240ae7e0) 0 + +Class QTransform + size=80 align=8 + base size=74 base align=8 +QTransform (0x0x7fe2240ae780) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=24 align=8 + base size=24 base align=8 +QImage (0x0x7fe22f6764e0) 0 + vptr=((& QImage::_ZTV6QImage) + 16) + QPaintDevice (0x0x7fe2240db3c0) 0 + primary-for QImage (0x0x7fe22f6764e0) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=24 align=8 + base size=24 base align=8 +QPixmap (0x0x7fe22f3520d0) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16) + QPaintDevice (0x0x7fe224113b40) 0 + primary-for QPixmap (0x0x7fe22f3520d0) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7fe223d47660) 0 + +Vtable for QAbstractFileIconProvider +QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractFileIconProvider) +16 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +24 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +32 (int (*)(...))QAbstractFileIconProvider::icon +40 (int (*)(...))QAbstractFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QAbstractFileIconProvider + size=16 align=8 + base size=16 base align=8 +QAbstractFileIconProvider (0x0x7fe223d6d960) 0 + vptr=((& QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider) + 16) + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7fe223d6de40) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7fe223d9aba0) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7fe223db8ae0) 0 + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7fe223e14300) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7fe22f384d68) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16) + QObject (0x0x7fe223e142a0) 0 + primary-for QScreen (0x0x7fe22f384d68) + +Class QInputDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDevice::QPrivateSignal (0x0x7fe223e144e0) 0 empty + +Vtable for QInputDevice +QInputDevice::_ZTV12QInputDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDevice) +16 (int (*)(...))QInputDevice::metaObject +24 (int (*)(...))QInputDevice::qt_metacast +32 (int (*)(...))QInputDevice::qt_metacall +40 (int (*)(...))QInputDevice::~QInputDevice +48 (int (*)(...))QInputDevice::~QInputDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputDevice + size=16 align=8 + base size=16 base align=8 +QInputDevice (0x0x7fe22f384e38) 0 + vptr=((& QInputDevice::_ZTV12QInputDevice) + 16) + QObject (0x0x7fe223e14480) 0 + primary-for QInputDevice (0x0x7fe22f384e38) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7fe223e14de0) 0 + +Class QPointingDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPointingDevice::QPrivateSignal (0x0x7fe223e4d780) 0 empty + +Vtable for QPointingDevice +QPointingDevice::_ZTV15QPointingDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPointingDevice) +16 (int (*)(...))QPointingDevice::metaObject +24 (int (*)(...))QPointingDevice::qt_metacast +32 (int (*)(...))QPointingDevice::qt_metacall +40 (int (*)(...))QPointingDevice::~QPointingDevice +48 (int (*)(...))QPointingDevice::~QPointingDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPointingDevice + size=16 align=8 + base size=16 base align=8 +QPointingDevice (0x0x7fe22f38fe38) 0 + vptr=((& QPointingDevice::_ZTV15QPointingDevice) + 16) + QInputDevice (0x0x7fe22f38fea0) 0 + primary-for QPointingDevice (0x0x7fe22f38fe38) + QObject (0x0x7fe223e4d720) 0 + primary-for QInputDevice (0x0x7fe22f38fea0) + +Class QEventPoint + size=8 align=8 + base size=8 base align=8 +QEventPoint (0x0x7fe223e4dde0) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7fe223e95c00) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QInputEvent + size=40 align=8 + base size=40 base align=8 +QInputEvent (0x0x7fe22f3a1820) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16) + QEvent (0x0x7fe223ebcba0) 0 + primary-for QInputEvent (0x0x7fe22f3a1820) + +Vtable for QPointerEvent +QPointerEvent::_ZTV13QPointerEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPointerEvent) +16 (int (*)(...))QPointerEvent::~QPointerEvent +24 (int (*)(...))QPointerEvent::~QPointerEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QPointerEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QPointerEvent::isBeginEvent +64 (int (*)(...))QPointerEvent::isUpdateEvent +72 (int (*)(...))QPointerEvent::isEndEvent + +Class QPointerEvent + size=64 align=8 + base size=64 base align=8 +QPointerEvent (0x0x7fe22f3a1888) 0 + vptr=((& QPointerEvent::_ZTV13QPointerEvent) + 16) + QInputEvent (0x0x7fe22f3a18f0) 0 + primary-for QPointerEvent (0x0x7fe22f3a1888) + QEvent (0x0x7fe223ecb0c0) 0 + primary-for QInputEvent (0x0x7fe22f3a18f0) + +Vtable for QSinglePointEvent +QSinglePointEvent::_ZTV17QSinglePointEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSinglePointEvent) +16 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +24 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QSinglePointEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QSinglePointEvent + size=80 align=8 + base size=80 base align=8 +QSinglePointEvent (0x0x7fe22f3a30d0) 0 + vptr=((& QSinglePointEvent::_ZTV17QSinglePointEvent) + 16) + QPointerEvent (0x0x7fe22f3a3138) 0 + primary-for QSinglePointEvent (0x0x7fe22f3a30d0) + QInputEvent (0x0x7fe22f3a31a0) 0 + primary-for QPointerEvent (0x0x7fe22f3a3138) + QEvent (0x0x7fe223ecb420) 0 + primary-for QInputEvent (0x0x7fe22f3a31a0) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QEnterEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QEnterEvent + size=80 align=8 + base size=80 base align=8 +QEnterEvent (0x0x7fe22f3a3208) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16) + QSinglePointEvent (0x0x7fe22f3a3270) 0 + primary-for QEnterEvent (0x0x7fe22f3a3208) + QPointerEvent (0x0x7fe22f3a32d8) 0 + primary-for QSinglePointEvent (0x0x7fe22f3a3270) + QInputEvent (0x0x7fe22f3a3340) 0 + primary-for QPointerEvent (0x0x7fe22f3a32d8) + QEvent (0x0x7fe223f03480) 0 + primary-for QInputEvent (0x0x7fe22f3a3340) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QMouseEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QMouseEvent + size=80 align=8 + base size=80 base align=8 +QMouseEvent (0x0x7fe22f3a33a8) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16) + QSinglePointEvent (0x0x7fe22f3a3410) 0 + primary-for QMouseEvent (0x0x7fe22f3a33a8) + QPointerEvent (0x0x7fe22f3a3478) 0 + primary-for QSinglePointEvent (0x0x7fe22f3a3410) + QInputEvent (0x0x7fe22f3a3548) 0 + primary-for QPointerEvent (0x0x7fe22f3a3478) + QEvent (0x0x7fe223f03c00) 0 + primary-for QInputEvent (0x0x7fe22f3a3548) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QHoverEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QHoverEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QHoverEvent + size=96 align=8 + base size=96 base align=8 +QHoverEvent (0x0x7fe22f3a35b0) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16) + QSinglePointEvent (0x0x7fe22f3a3618) 0 + primary-for QHoverEvent (0x0x7fe22f3a35b0) + QPointerEvent (0x0x7fe22f3a3680) 0 + primary-for QSinglePointEvent (0x0x7fe22f3a3618) + QInputEvent (0x0x7fe22f3a36e8) 0 + primary-for QPointerEvent (0x0x7fe22f3a3680) + QEvent (0x0x7fe223f1a1e0) 0 + primary-for QInputEvent (0x0x7fe22f3a36e8) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QWheelEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QWheelEvent::isBeginEvent +64 (int (*)(...))QWheelEvent::isUpdateEvent +72 (int (*)(...))QWheelEvent::isEndEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7fe22f3a3750) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16) + QSinglePointEvent (0x0x7fe22f3a37b8) 0 + primary-for QWheelEvent (0x0x7fe22f3a3750) + QPointerEvent (0x0x7fe22f3a3820) 0 + primary-for QSinglePointEvent (0x0x7fe22f3a37b8) + QInputEvent (0x0x7fe22f3a3888) 0 + primary-for QPointerEvent (0x0x7fe22f3a3820) + QEvent (0x0x7fe223f1a600) 0 + primary-for QInputEvent (0x0x7fe22f3a3888) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTabletEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QTabletEvent + size=96 align=8 + base size=96 base align=8 +QTabletEvent (0x0x7fe22f3a38f0) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16) + QSinglePointEvent (0x0x7fe22f3a3958) 0 + primary-for QTabletEvent (0x0x7fe22f3a38f0) + QPointerEvent (0x0x7fe22f3a39c0) 0 + primary-for QSinglePointEvent (0x0x7fe22f3a3958) + QInputEvent (0x0x7fe22f3a3a28) 0 + primary-for QPointerEvent (0x0x7fe22f3a39c0) + QEvent (0x0x7fe223f1aae0) 0 + primary-for QInputEvent (0x0x7fe22f3a3a28) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QNativeGestureEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7fe22f3a3a90) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16) + QSinglePointEvent (0x0x7fe22f3a3b60) 0 + primary-for QNativeGestureEvent (0x0x7fe22f3a3a90) + QPointerEvent (0x0x7fe22f3a3bc8) 0 + primary-for QSinglePointEvent (0x0x7fe22f3a3b60) + QInputEvent (0x0x7fe22f3a3c30) 0 + primary-for QPointerEvent (0x0x7fe22f3a3bc8) + QEvent (0x0x7fe223b333c0) 0 + primary-for QInputEvent (0x0x7fe22f3a3c30) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QKeyEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QKeyEvent + size=88 align=8 + base size=82 base align=8 +QKeyEvent (0x0x7fe22f3a3c98) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16) + QInputEvent (0x0x7fe22f3a3d00) 0 + primary-for QKeyEvent (0x0x7fe22f3a3c98) + QEvent (0x0x7fe223b338a0) 0 + primary-for QInputEvent (0x0x7fe22f3a3d00) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFocusEvent::clone + +Class QFocusEvent + size=24 align=8 + base size=20 base align=8 +QFocusEvent (0x0x7fe22f3a3d68) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16) + QEvent (0x0x7fe223b33ea0) 0 + primary-for QFocusEvent (0x0x7fe22f3a3d68) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPaintEvent::clone + +Class QPaintEvent + size=48 align=8 + base size=41 base align=8 +QPaintEvent (0x0x7fe22f3a3dd0) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16) + QEvent (0x0x7fe223b4f240) 0 + primary-for QPaintEvent (0x0x7fe22f3a3dd0) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QMoveEvent::clone + +Class QMoveEvent + size=32 align=8 + base size=32 base align=8 +QMoveEvent (0x0x7fe22f3a3ea0) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16) + QEvent (0x0x7fe223b4f540) 0 + primary-for QMoveEvent (0x0x7fe22f3a3ea0) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QExposeEvent::clone + +Class QExposeEvent + size=24 align=8 + base size=24 base align=8 +QExposeEvent (0x0x7fe22f3a3f08) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16) + QEvent (0x0x7fe223b4f8a0) 0 + primary-for QExposeEvent (0x0x7fe22f3a3f08) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPlatformSurfaceEvent::clone + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=20 base align=8 +QPlatformSurfaceEvent (0x0x7fe22f3a3f70) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16) + QEvent (0x0x7fe223b4fb40) 0 + primary-for QPlatformSurfaceEvent (0x0x7fe22f3a3f70) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QResizeEvent::clone + +Class QResizeEvent + size=32 align=8 + base size=32 base align=8 +QResizeEvent (0x0x7fe22f3a7000) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16) + QEvent (0x0x7fe223b4fe40) 0 + primary-for QResizeEvent (0x0x7fe22f3a7000) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QCloseEvent + size=16 align=8 + base size=16 base align=8 +QCloseEvent (0x0x7fe22f3a7068) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16) + QEvent (0x0x7fe223b661e0) 0 + primary-for QCloseEvent (0x0x7fe22f3a7068) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QIconDragEvent + size=16 align=8 + base size=16 base align=8 +QIconDragEvent (0x0x7fe22f3a70d0) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16) + QEvent (0x0x7fe223b66240) 0 + primary-for QIconDragEvent (0x0x7fe22f3a70d0) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QShowEvent + size=16 align=8 + base size=16 base align=8 +QShowEvent (0x0x7fe22f3a7138) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16) + QEvent (0x0x7fe223b662a0) 0 + primary-for QShowEvent (0x0x7fe22f3a7138) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QHideEvent + size=16 align=8 + base size=16 base align=8 +QHideEvent (0x0x7fe22f3a71a0) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16) + QEvent (0x0x7fe223b66300) 0 + primary-for QHideEvent (0x0x7fe22f3a71a0) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QContextMenuEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QContextMenuEvent + size=64 align=8 + base size=57 base align=8 +QContextMenuEvent (0x0x7fe22f3a7270) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16) + QInputEvent (0x0x7fe22f3a72d8) 0 + primary-for QContextMenuEvent (0x0x7fe22f3a7270) + QEvent (0x0x7fe223b66360) 0 + primary-for QInputEvent (0x0x7fe22f3a72d8) + +Class QInputMethodEvent::Attribute + size=48 align=8 + base size=48 base align=8 +QInputMethodEvent::Attribute (0x0x7fe223b66900) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodEvent::clone + +Class QInputMethodEvent + size=96 align=8 + base size=96 base align=8 +QInputMethodEvent (0x0x7fe22f3a7340) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16) + QEvent (0x0x7fe223b668a0) 0 + primary-for QInputMethodEvent (0x0x7fe22f3a7340) + +Class QInputMethodQueryEvent::QueryPair + size=40 align=8 + base size=40 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7fe223bbd120) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodQueryEvent::clone + +Class QInputMethodQueryEvent + size=48 align=8 + base size=48 base align=8 +QInputMethodQueryEvent (0x0x7fe22f3ae618) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16) + QEvent (0x0x7fe223bbd0c0) 0 + primary-for QInputMethodQueryEvent (0x0x7fe22f3ae618) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDropEvent::clone + +Class QDropEvent + size=64 align=8 + base size=64 base align=8 +QDropEvent (0x0x7fe22f3b3888) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16) + QEvent (0x0x7fe223bfd240) 0 + primary-for QDropEvent (0x0x7fe22f3b3888) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragMoveEvent + size=80 align=8 + base size=80 base align=8 +QDragMoveEvent (0x0x7fe22f3b38f0) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16) + QDropEvent (0x0x7fe22f3b39c0) 0 + primary-for QDragMoveEvent (0x0x7fe22f3b38f0) + QEvent (0x0x7fe223bfd960) 0 + primary-for QDropEvent (0x0x7fe22f3b39c0) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragEnterEvent + size=80 align=8 + base size=80 base align=8 +QDragEnterEvent (0x0x7fe22f3b3a28) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16) + QDragMoveEvent (0x0x7fe22f3b3a90) 0 + primary-for QDragEnterEvent (0x0x7fe22f3b3a28) + QDropEvent (0x0x7fe22f3b3af8) 0 + primary-for QDragMoveEvent (0x0x7fe22f3b3a90) + QEvent (0x0x7fe223bfdde0) 0 + primary-for QDropEvent (0x0x7fe22f3b3af8) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QDragLeaveEvent + size=16 align=8 + base size=16 base align=8 +QDragLeaveEvent (0x0x7fe22f3b3b60) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16) + QEvent (0x0x7fe223bfde40) 0 + primary-for QDragLeaveEvent (0x0x7fe22f3b3b60) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QHelpEvent::clone + +Class QHelpEvent + size=32 align=8 + base size=32 base align=8 +QHelpEvent (0x0x7fe22f3b3bc8) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16) + QEvent (0x0x7fe223bfdea0) 0 + primary-for QHelpEvent (0x0x7fe22f3b3bc8) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QStatusTipEvent::clone + +Class QStatusTipEvent + size=40 align=8 + base size=40 base align=8 +QStatusTipEvent (0x0x7fe22f3b3c30) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16) + QEvent (0x0x7fe223c1a3c0) 0 + primary-for QStatusTipEvent (0x0x7fe22f3b3c30) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWhatsThisClickedEvent::clone + +Class QWhatsThisClickedEvent + size=40 align=8 + base size=40 base align=8 +QWhatsThisClickedEvent (0x0x7fe22f3b3c98) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16) + QEvent (0x0x7fe223c1a660) 0 + primary-for QWhatsThisClickedEvent (0x0x7fe22f3b3c98) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QActionEvent::clone + +Class QActionEvent + size=32 align=8 + base size=32 base align=8 +QActionEvent (0x0x7fe22f3b3d00) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16) + QEvent (0x0x7fe223c1a900) 0 + primary-for QActionEvent (0x0x7fe22f3b3d00) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFileOpenEvent::clone + +Class QFileOpenEvent + size=48 align=8 + base size=48 base align=8 +QFileOpenEvent (0x0x7fe22f3b3dd0) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16) + QEvent (0x0x7fe223c1ac60) 0 + primary-for QFileOpenEvent (0x0x7fe22f3b3dd0) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QToolBarChangeEvent::clone + +Class QToolBarChangeEvent + size=24 align=8 + base size=17 base align=8 +QToolBarChangeEvent (0x0x7fe22f3b3e38) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16) + QEvent (0x0x7fe223c1af60) 0 + primary-for QToolBarChangeEvent (0x0x7fe22f3b3e38) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QShortcutEvent::clone + +Class QShortcutEvent + size=32 align=8 + base size=29 base align=8 +QShortcutEvent (0x0x7fe22f3b3ea0) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16) + QEvent (0x0x7fe223c372a0) 0 + primary-for QShortcutEvent (0x0x7fe22f3b3ea0) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWindowStateChangeEvent::clone + +Class QWindowStateChangeEvent + size=24 align=8 + base size=21 base align=8 +QWindowStateChangeEvent (0x0x7fe22f3b3f08) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16) + QEvent (0x0x7fe223c37600) 0 + primary-for QWindowStateChangeEvent (0x0x7fe22f3b3f08) + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTouchEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QTouchEvent::isBeginEvent +64 (int (*)(...))QTouchEvent::isUpdateEvent +72 (int (*)(...))QTouchEvent::isEndEvent + +Class QTouchEvent + size=80 align=8 + base size=79 base align=8 +QTouchEvent (0x0x7fe22f3b3f70) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16) + QPointerEvent (0x0x7fe22f3b6000) 0 + primary-for QTouchEvent (0x0x7fe22f3b3f70) + QInputEvent (0x0x7fe22f3b6068) 0 + primary-for QPointerEvent (0x0x7fe22f3b6000) + QEvent (0x0x7fe223c37900) 0 + primary-for QInputEvent (0x0x7fe22f3b6068) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollPrepareEvent::clone + +Class QScrollPrepareEvent + size=96 align=8 + base size=96 base align=8 +QScrollPrepareEvent (0x0x7fe22f3b60d0) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16) + QEvent (0x0x7fe223c37c60) 0 + primary-for QScrollPrepareEvent (0x0x7fe22f3b60d0) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollEvent::clone + +Class QScrollEvent + size=56 align=8 + base size=52 base align=8 +QScrollEvent (0x0x7fe22f3b6138) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16) + QEvent (0x0x7fe223c530c0) 0 + primary-for QScrollEvent (0x0x7fe22f3b6138) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScreenOrientationChangeEvent::clone + +Class QScreenOrientationChangeEvent + size=32 align=8 + base size=28 base align=8 +QScreenOrientationChangeEvent (0x0x7fe22f3b61a0) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16) + QEvent (0x0x7fe223c53480) 0 + primary-for QScreenOrientationChangeEvent (0x0x7fe22f3b61a0) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QApplicationStateChangeEvent::clone + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=20 base align=8 +QApplicationStateChangeEvent (0x0x7fe22f3b6208) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16) + QEvent (0x0x7fe223c537e0) 0 + primary-for QApplicationStateChangeEvent (0x0x7fe22f3b6208) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7fe223c53ae0) 0 + +Class QFontDatabase + size=1 align=1 + base size=0 base align=1 +QFontDatabase (0x0x7fe223ca1b40) 0 empty + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7fe223ca1d20) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7fe223cd7c00) 0 + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7fe223d11300) 0 + +Class QBrushData + size=104 align=8 + base size=104 base align=8 +QBrushData (0x0x7fe223932e40) 0 + +Class QGradient::QGradientData + size=48 align=8 + base size=48 base align=8 +QGradient::QGradientData (0x0x7fe22393c0c0) 0 + +Class QGradient + size=88 align=8 + base size=88 base align=8 +QGradient (0x0x7fe22393c060) 0 + +Class QLinearGradient + size=88 align=8 + base size=88 base align=8 +QLinearGradient (0x0x7fe229763b60) 0 + QGradient (0x0x7fe22393cf60) 0 + +Class QRadialGradient + size=88 align=8 + base size=88 base align=8 +QRadialGradient (0x0x7fe229763af8) 0 + QGradient (0x0x7fe22397d060) 0 + +Class QConicalGradient + size=88 align=8 + base size=88 base align=8 +QConicalGradient (0x0x7fe229775068) 0 + QGradient (0x0x7fe22397d180) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7fe22397d240) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7fe2239a9300) 0 + +Class QTextOption + size=24 align=8 + base size=24 base align=8 +QTextOption (0x0x7fe2239a92a0) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7fe2239cc060) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7fe2239dad20) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7fe2269d7bc8) 0 + QTextFormat (0x0x7fe223a423c0) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7fe223a826e8) 0 + QTextFormat (0x0x7fe223a818a0) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7fe223aa2340) 0 + QTextFormat (0x0x7fe223a9ede0) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7fe223ab3f08) 0 + QTextCharFormat (0x0x7fe223ab3f70) 0 + QTextFormat (0x0x7fe223ab6cc0) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7fe223accbc8) 0 + QTextFormat (0x0x7fe223acdb40) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7fe223aea820) 0 + QTextFrameFormat (0x0x7fe223aea888) 0 + QTextFormat (0x0x7fe223ae8f60) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7fe223b084e0) 0 + QTextCharFormat (0x0x7fe223b08548) 0 + QTextFormat (0x0x7fe223b0b240) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7fe22372a780) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7fe223764de0) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7fe223771240) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7fe2237711e0) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7fe2237b7300) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7fe2237b7780) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7fe2237b7a20) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7fe2237bb138) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16) + QObject (0x0x7fe2237b79c0) 0 + primary-for QTextDocument (0x0x7fe2237bb138) + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7fe2237f1240) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7fe2238405a0) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7fe223840600) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=80 align=8 + base size=80 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7fe223840660) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7fe22383e478) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16) + QObject (0x0x7fe223840540) 0 + primary-for QAbstractTextDocumentLayout (0x0x7fe22383e478) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7fe22389ec00) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7fe22389ee40) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7fe22389eea0) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7fe22389ede0) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7fe2238bd720) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7fe2238bda80) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7fe2238bdae0) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7fe2238bdb40) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7fe2238bdba0) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7fe2238bdc00) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7fe2238bdc60) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7fe2238bdd20) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7fe2238bdd80) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7fe2238a3958) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16) + QAccessibleEvent (0x0x7fe2238e9300) 0 + primary-for QAccessibleStateChangeEvent (0x0x7fe2238a3958) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7fe2238a39c0) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16) + QAccessibleEvent (0x0x7fe2238e96c0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fe2238a39c0) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7fe2238a3a28) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fe2238a3a90) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7fe2238a3a28) + QAccessibleEvent (0x0x7fe2238e9ae0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fe2238a3a90) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextInsertEvent (0x0x7fe2238a3af8) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fe2238a3b60) 0 + primary-for QAccessibleTextInsertEvent (0x0x7fe2238a3af8) + QAccessibleEvent (0x0x7fe2238e9f60) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fe2238a3b60) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextRemoveEvent (0x0x7fe2238a3bc8) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fe2238a3c30) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7fe2238a3bc8) + QAccessibleEvent (0x0x7fe2239003c0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fe2238a3c30) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=88 align=8 + base size=88 base align=8 +QAccessibleTextUpdateEvent (0x0x7fe2238a3c98) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fe2238a3d00) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7fe2238a3c98) + QAccessibleEvent (0x0x7fe2239007e0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fe2238a3d00) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleValueChangeEvent (0x0x7fe2238a3d68) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16) + QAccessibleEvent (0x0x7fe223900c60) 0 + primary-for QAccessibleValueChangeEvent (0x0x7fe2238a3d68) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7fe2238a3dd0) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16) + QAccessibleEvent (0x0x7fe2239110c0) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7fe2238a3dd0) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7fe223911960) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7fe223911c00) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7fe2238a3e38) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16) + QObject (0x0x7fe223911ba0) 0 + primary-for QAccessibleBridgePlugin (0x0x7fe2238a3e38) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0 +24 0 +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7fe2238a3ea0) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16) + QAccessibleInterface (0x0x7fe223911cc0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7fe2238a3ea0) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7fe2238a3f08) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16) + QAccessibleObject (0x0x7fe2238a3f70) 0 + primary-for QAccessibleApplication (0x0x7fe2238a3f08) + QAccessibleInterface (0x0x7fe223911d20) 0 nearly-empty + primary-for QAccessibleObject (0x0x7fe2238a3f70) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7fe223911de0) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7fe22352a000) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16) + QObject (0x0x7fe223911d80) 0 + primary-for QAccessiblePlugin (0x0x7fe22352a000) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7fe223911f00) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7fe22352a068) 0 + vptr=((& QAction::_ZTV7QAction) + 16) + QObject (0x0x7fe223911ea0) 0 + primary-for QAction (0x0x7fe22352a068) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7fe22353f840) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7fe22352a0d0) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16) + QObject (0x0x7fe22353f7e0) 0 + primary-for QActionGroup (0x0x7fe22352a0d0) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7fe22353fae0) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7fe223563360) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16) + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=24 align=8 + base size=24 base align=8 +QBitmap (0x0x7fe22352a270) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16) + QPixmap (0x0x7fe22352a2d8) 0 + primary-for QBitmap (0x0x7fe22352a270) + QPaintDevice (0x0x7fe223563660) 0 + primary-for QPixmap (0x0x7fe22352a2d8) + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7fe223582f60) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7fe2235cc180) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 47 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))-16 +320 (int (*)(...))(& _ZTI7QWindow) +328 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +336 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7fe223553ee0) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16) + QObject (0x0x7fe2235cc0c0) 0 + primary-for QWindow (0x0x7fe223553ee0) + QSurface (0x0x7fe2235cc120) 16 + vptr=((& QWindow::_ZTV7QWindow) + 328) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7fe2235cc9c0) 0 + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7fe2235ccae0) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7fe2235c5958) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16) + QObject (0x0x7fe2235cca80) 0 + primary-for QClipboard (0x0x7fe2235c5958) + +Class QColorTransform + size=8 align=8 + base size=8 base align=8 +QColorTransform (0x0x7fe2235ccc00) 0 + +Class QColorSpace + size=8 align=8 + base size=8 base align=8 +QColorSpace (0x0x7fe22364bba0) 0 + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7fe2236a2840) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7fe2236a2900) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7fe2236a6340) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16) + QObject (0x0x7fe2236a28a0) 0 + primary-for QDrag (0x0x7fe2236a6340) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7fe2236a2ae0) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QFileSystemModel::mimeTypes +224 (int (*)(...))QFileSystemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QFileSystemModel::dropMimeData +248 (int (*)(...))QFileSystemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QFileSystemModel::fetchMore +320 (int (*)(...))QFileSystemModel::canFetchMore +328 (int (*)(...))QFileSystemModel::flags +336 (int (*)(...))QFileSystemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QFileSystemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7fe2236a63a8) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16) + QAbstractItemModel (0x0x7fe2236a6410) 0 + primary-for QFileSystemModel (0x0x7fe2236a63a8) + QObject (0x0x7fe2236a2a80) 0 + primary-for QAbstractItemModel (0x0x7fe2236a6410) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7fe2236e3120) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7fe2236fba20) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7fe223727480) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7fe22338e2a0) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7fe22334ec30) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16) + QObject (0x0x7fe22338e240) 0 + primary-for QGenericPlugin (0x0x7fe22334ec30) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7fe22338e360) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7fe22338e420) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7fe22334ec98) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16) + QObject (0x0x7fe22338e3c0) 0 + primary-for QInputMethod (0x0x7fe22334ec98) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7fe22338e6c0) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7fe22334ed00) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16) + QCoreApplication (0x0x7fe22334ed68) 0 + primary-for QGuiApplication (0x0x7fe22334ed00) + QObject (0x0x7fe22338e660) 0 + primary-for QCoreApplication (0x0x7fe22334ed68) + +Class QIconEngine::ScaledPixmapArgument + size=48 align=8 + base size=48 base align=8 +QIconEngine::ScaledPixmapArgument (0x0x7fe22338e960) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::isNull +128 (int (*)(...))QIconEngine::scaledPixmap +136 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7fe22338e900) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7fe22338ea20) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7fe22334edd0) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16) + QObject (0x0x7fe22338e9c0) 0 + primary-for QIconEnginePlugin (0x0x7fe22334edd0) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QImageIOHandler::write +56 (int (*)(...))QImageIOHandler::option +64 (int (*)(...))QImageIOHandler::setOption +72 (int (*)(...))QImageIOHandler::supportsOption +80 (int (*)(...))QImageIOHandler::jumpToNextImage +88 (int (*)(...))QImageIOHandler::jumpToImage +96 (int (*)(...))QImageIOHandler::loopCount +104 (int (*)(...))QImageIOHandler::imageCount +112 (int (*)(...))QImageIOHandler::nextImageDelay +120 (int (*)(...))QImageIOHandler::currentImageNumber +128 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7fe22338eae0) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7fe22338ed20) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7fe22334ee38) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16) + QObject (0x0x7fe22338ecc0) 0 + primary-for QImageIOPlugin (0x0x7fe22334ee38) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7fe2233e5120) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7fe2233e51e0) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7fe2233e52a0) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7fe223440000) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7fe22349c480) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7fe223484618) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16) + QObject (0x0x7fe22349c420) 0 + primary-for QMovie (0x0x7fe223484618) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7fe22349c840) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7fe223483700) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16) + QObject (0x0x7fe22349c780) 0 + primary-for QOffscreenSurface (0x0x7fe223483700) + QSurface (0x0x7fe22349c7e0) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160) + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7fe22349ca80) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7fe223484680) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16) + QObject (0x0x7fe22349ca20) 0 + primary-for QOpenGLContextGroup (0x0x7fe223484680) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7fe22349cc60) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7fe2234846e8) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16) + QObject (0x0x7fe22349cc00) 0 + primary-for QOpenGLContext (0x0x7fe2234846e8) + +Vtable for QNativeInterface::QGLXContext +QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QGLXContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QGLXContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QGLXContext (0x0x7fe22349cde0) 0 nearly-empty + vptr=((& QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE) + 16) + +Vtable for QNativeInterface::QEGLContext +QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QEGLContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QEGLContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QEGLContext (0x0x7fe22349ce40) 0 nearly-empty + vptr=((& QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE) + 16) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7fe22349cea0) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7fe222fdc480) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7fe222fdc420) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7fe223484af8) 0 + QOpenGLFunctions (0x0x7fe223050240) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1728 align=8 + base size=1728 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7fe2230505a0) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2880 align=8 + base size=2880 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7fe223484b60) 0 + QOpenGLFunctionsPrivate (0x0x7fe223050540) 0 + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7fe222d342a0) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7fe222d7ed20) 0 + +Class QPageRanges::Range + size=8 align=4 + base size=8 base align=4 +QPageRanges::Range (0x0x7fe222dd49c0) 0 + +Class QPageRanges + size=8 align=8 + base size=8 base align=8 +QPageRanges (0x0x7fe222dd4960) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageLayout +96 (int (*)(...))QPagedPaintDevice::setPageSize +104 (int (*)(...))QPagedPaintDevice::setPageOrientation +112 (int (*)(...))QPagedPaintDevice::setPageMargins +120 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPagedPaintDevice + size=24 align=8 + base size=24 base align=8 +QPagedPaintDevice (0x0x7fe222e46750) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16) + QPaintDevice (0x0x7fe222e41ae0) 0 + primary-for QPagedPaintDevice (0x0x7fe222e46750) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7fe222e41c60) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QPaintDeviceWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +352 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +416 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QPaintDevice::redirected +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=56 align=8 + base size=50 base align=8 +QPaintDeviceWindow (0x0x7fe222e2e770) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16) + QWindow (0x0x7fe222e2e7e0) 0 + primary-for QPaintDeviceWindow (0x0x7fe222e2e770) + QObject (0x0x7fe222e41b40) 0 + primary-for QWindow (0x0x7fe222e2e7e0) + QSurface (0x0x7fe222e41ba0) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 344) + QPaintDevice (0x0x7fe222e41c00) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 408) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7fe222e41e40) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7fe222e41de0) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7fe222bed9c0) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QPaintEngine::createPixmap +200 (int (*)(...))QPaintEngine::createPixmapFromImage + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7fe222c1a1e0) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7fe222c1a7e0) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7fe222c742a0) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7fe222c74240) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7fe222cd55a0) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7fe222cd5d80) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 33 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::paintEngine +128 (int (*)(...))QPdfWriter::metric +136 (int (*)(...))-16 +144 (int (*)(...))(& _ZTI10QPdfWriter) +152 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +160 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +168 (int (*)(...))QPaintDevice::devType +176 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +184 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +192 (int (*)(...))QPaintDevice::initPainter +200 (int (*)(...))QPaintDevice::redirected +208 (int (*)(...))QPaintDevice::sharedPainter +216 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +224 (int (*)(...))QPagedPaintDevice::setPageLayout +232 (int (*)(...))QPagedPaintDevice::setPageSize +240 (int (*)(...))QPagedPaintDevice::setPageOrientation +248 (int (*)(...))QPagedPaintDevice::setPageMargins +256 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPdfWriter + size=40 align=8 + base size=40 base align=8 +QPdfWriter (0x0x7fe222cd82a0) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16) + QObject (0x0x7fe222cd5cc0) 0 + primary-for QPdfWriter (0x0x7fe222cd82a0) + QPagedPaintDevice (0x0x7fe222cd35b0) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 152) + QPaintDevice (0x0x7fe222cd5d20) 16 + primary-for QPagedPaintDevice (0x0x7fe222cd35b0) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=24 align=8 + base size=24 base align=8 +QPicture (0x0x7fe222cd3618) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16) + QPaintDevice (0x0x7fe222cd5f60) 0 + primary-for QPicture (0x0x7fe222cd3618) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7fe22292ca20) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7fe22292c9c0) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7fe22296dc60) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 60 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QRasterWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QRasterWindow::redirected +336 (int (*)(...))-16 +344 (int (*)(...))(& _ZTI13QRasterWindow) +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +360 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +392 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +400 (int (*)(...))-40 +408 (int (*)(...))(& _ZTI13QRasterWindow) +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +424 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +432 (int (*)(...))QPaintDevice::devType +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +448 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +456 (int (*)(...))QPaintDevice::initPainter +464 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +472 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=56 align=8 + base size=50 base align=8 +QRasterWindow (0x0x7fe22296fb60) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16) + QPaintDeviceWindow (0x0x7fe222cd8e70) 0 + primary-for QRasterWindow (0x0x7fe22296fb60) + QWindow (0x0x7fe222cd8ee0) 0 + primary-for QPaintDeviceWindow (0x0x7fe222cd8e70) + QObject (0x0x7fe22296db40) 0 + primary-for QWindow (0x0x7fe222cd8ee0) + QSurface (0x0x7fe22296dba0) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 352) + QPaintDevice (0x0x7fe22296dc00) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 416) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7fe22296de40) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7fe22296fc30) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16) + QObject (0x0x7fe22296dde0) 0 + primary-for QSessionManager (0x0x7fe22296fc30) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7fe222989060) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7fe22296fc98) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16) + QObject (0x0x7fe222989000) 0 + primary-for QShortcut (0x0x7fe22296fc98) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::multiData +48 (int (*)(...))QStandardItem::setData +56 (int (*)(...))QStandardItem::clone +64 (int (*)(...))QStandardItem::type +72 (int (*)(...))QStandardItem::read +80 (int (*)(...))QStandardItem::write +88 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7fe222989540) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7fe222a17540) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::clearItemData +216 (int (*)(...))QStandardItemModel::mimeTypes +224 (int (*)(...))QStandardItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QStandardItemModel::dropMimeData +248 (int (*)(...))QStandardItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStandardItemModel::insertRows +272 (int (*)(...))QStandardItemModel::insertColumns +280 (int (*)(...))QStandardItemModel::removeRows +288 (int (*)(...))QStandardItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStandardItemModel::flags +336 (int (*)(...))QStandardItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QStandardItemModel::roleNames +376 (int (*)(...))QStandardItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7fe2229de618) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16) + QAbstractItemModel (0x0x7fe2229de680) 0 + primary-for QStandardItemModel (0x0x7fe2229de618) + QObject (0x0x7fe222a174e0) 0 + primary-for QAbstractItemModel (0x0x7fe2229de680) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7fe222a178a0) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7fe222a7e1e0) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7fe222a782d8) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16) + QObject (0x0x7fe222a7e180) 0 + primary-for QStyleHints (0x0x7fe222a782d8) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7fe222a7e3c0) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7fe222a78340) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16) + QObject (0x0x7fe222a7e360) 0 + primary-for QTextObject (0x0x7fe222a78340) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7fe222a7e5a0) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7fe222a783a8) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16) + QTextObject (0x0x7fe222a78410) 0 + primary-for QTextBlockGroup (0x0x7fe222a783a8) + QObject (0x0x7fe222a7e540) 0 + primary-for QTextObject (0x0x7fe222a78410) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7fe222a7e720) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7fe222a7e7e0) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7fe222a7e840) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7fe222a78478) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16) + QTextObject (0x0x7fe222a784e0) 0 + primary-for QTextFrame (0x0x7fe222a78478) + QObject (0x0x7fe222a7e780) 0 + primary-for QTextObject (0x0x7fe222a784e0) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7fe222ac76c0) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7fe222ac7780) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7fe222ac7720) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7fe222b29000) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7fe222741e40) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7fe22274d680) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16) + QObject (0x0x7fe222741de0) 0 + primary-for QSyntaxHighlighter (0x0x7fe22274d680) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7fe22275e000) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7fe22275e060) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7fe22275e120) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7fe22274d6e8) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16) + QTextBlockGroup (0x0x7fe22274d750) 0 + primary-for QTextList (0x0x7fe22274d6e8) + QTextObject (0x0x7fe22274d7b8) 0 + primary-for QTextBlockGroup (0x0x7fe22274d750) + QObject (0x0x7fe22275e0c0) 0 + primary-for QTextObject (0x0x7fe22274d7b8) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7fe22275e4e0) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7fe22275ed20) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7fe22274d820) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16) + QTextFrame (0x0x7fe22274d888) 0 + primary-for QTextTable (0x0x7fe22274d820) + QTextObject (0x0x7fe22274d8f0) 0 + primary-for QTextFrame (0x0x7fe22274d888) + QObject (0x0x7fe22275ecc0) 0 + primary-for QTextObject (0x0x7fe22274d8f0) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7fe22278f120) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7fe22274d958) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16) + QObject (0x0x7fe22278f0c0) 0 + primary-for QUndoGroup (0x0x7fe22274d958) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7fe22278f2a0) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7fe22278f360) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7fe22274d9c0) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16) + QObject (0x0x7fe22278f300) 0 + primary-for QUndoStack (0x0x7fe22274d9c0) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7fe22278f540) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7fe22274da28) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16) + QObject (0x0x7fe22278f4e0) 0 + primary-for QValidator (0x0x7fe22274da28) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7fe22278f7e0) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7fe22274da90) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16) + QValidator (0x0x7fe22274daf8) 0 + primary-for QIntValidator (0x0x7fe22274da90) + QObject (0x0x7fe22278f780) 0 + primary-for QValidator (0x0x7fe22274daf8) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7fe22278f9c0) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7fe22274db60) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16) + QValidator (0x0x7fe22274dbc8) 0 + primary-for QDoubleValidator (0x0x7fe22274db60) + QObject (0x0x7fe22278f960) 0 + primary-for QValidator (0x0x7fe22274dbc8) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7fe22278fd80) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7fe22274dc30) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16) + QValidator (0x0x7fe22274dc98) 0 + primary-for QRegularExpressionValidator (0x0x7fe22274dc30) + QObject (0x0x7fe22278fd20) 0 + primary-for QValidator (0x0x7fe22274dc98) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7fe22278ff60) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7fe22278ff00) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7fe22282af00) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7fe22284e060) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=40 align=8 + base size=40 base align=8 +QWidget (0x0x7fe2227e0850) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16) + QObject (0x0x7fe22282af60) 0 + primary-for QWidget (0x0x7fe2227e0850) + QPaintDevice (0x0x7fe22284e000) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7fe2228c0900) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0 +480 0 +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=40 align=8 + base size=40 base align=8 +QAbstractButton (0x0x7fe222832c98) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16) + QWidget (0x0x7fe2227e0a80) 0 + primary-for QAbstractButton (0x0x7fe222832c98) + QObject (0x0x7fe2228c0840) 0 + primary-for QWidget (0x0x7fe2227e0a80) + QPaintDevice (0x0x7fe2228c08a0) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7fe2228c0b40) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI16QAbstractSpinBox) +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +504 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=40 align=8 + base size=40 base align=8 +QAbstractSpinBox (0x0x7fe222832d00) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16) + QWidget (0x0x7fe2227e0af0) 0 + primary-for QAbstractSpinBox (0x0x7fe222832d00) + QObject (0x0x7fe2228c0a80) 0 + primary-for QWidget (0x0x7fe2227e0af0) + QPaintDevice (0x0x7fe2228c0ae0) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 496) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7fe2228fc300) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=40 align=8 + base size=40 base align=8 +QAbstractSlider (0x0x7fe222832ea0) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16) + QWidget (0x0x7fe2227e0620) 0 + primary-for QAbstractSlider (0x0x7fe222832ea0) + QObject (0x0x7fe2228fc240) 0 + primary-for QWidget (0x0x7fe2227e0620) + QPaintDevice (0x0x7fe2228fc2a0) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7fe2228fc540) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))QSlider::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI7QSlider) +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +472 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=40 align=8 + base size=40 base align=8 +QSlider (0x0x7fe222832f08) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16) + QAbstractSlider (0x0x7fe222832f70) 0 + primary-for QSlider (0x0x7fe222832f08) + QWidget (0x0x7fe22291f540) 0 + primary-for QAbstractSlider (0x0x7fe222832f70) + QObject (0x0x7fe2228fc480) 0 + primary-for QWidget (0x0x7fe22291f540) + QPaintDevice (0x0x7fe2228fc4e0) 16 + vptr=((& QSlider::_ZTV7QSlider) + 464) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7fe2228fc7e0) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7fe22253e000) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16) + QObject (0x0x7fe2228fc780) 0 + primary-for QStyle (0x0x7fe22253e000) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7fe22257a8a0) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QTabBar::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))QTabBar::initStyleOption +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI7QTabBar) +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +504 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=40 align=8 + base size=40 base align=8 +QTabBar (0x0x7fe22253e2d8) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16) + QWidget (0x0x7fe222567070) 0 + primary-for QTabBar (0x0x7fe22253e2d8) + QObject (0x0x7fe22257a7e0) 0 + primary-for QWidget (0x0x7fe222567070) + QPaintDevice (0x0x7fe22257a840) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 496) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7fe22257aba0) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))QTabWidget::initStyleOption +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI10QTabWidget) +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +480 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=40 align=8 + base size=40 base align=8 +QTabWidget (0x0x7fe22253e340) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16) + QWidget (0x0x7fe222567690) 0 + primary-for QTabWidget (0x0x7fe22253e340) + QObject (0x0x7fe22257aae0) 0 + primary-for QWidget (0x0x7fe222567690) + QPaintDevice (0x0x7fe22257ab40) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 472) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7fe22257af60) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRubberBand::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QRubberBand) +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +464 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=40 align=8 + base size=40 base align=8 +QRubberBand (0x0x7fe22253e3a8) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16) + QWidget (0x0x7fe2225679a0) 0 + primary-for QRubberBand (0x0x7fe22253e3a8) + QObject (0x0x7fe22257aea0) 0 + primary-for QWidget (0x0x7fe2225679a0) + QPaintDevice (0x0x7fe22257af00) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 456) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7fe2225f83c0) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QFrame) +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +464 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=40 align=8 + base size=40 base align=8 +QFrame (0x0x7fe22253e410) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16) + QWidget (0x0x7fe222567af0) 0 + primary-for QFrame (0x0x7fe22253e410) + QObject (0x0x7fe2225f8300) 0 + primary-for QWidget (0x0x7fe222567af0) + QPaintDevice (0x0x7fe2225f8360) 16 + vptr=((& QFrame::_ZTV6QFrame) + 456) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7fe2225f86c0) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7fe22253e478) 0 + QStyleOption (0x0x7fe2225f8720) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7fe22f6361a0) 0 + QStyleOption (0x0x7fe2225f8960) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7fe22f6363a8) 0 + QStyleOption (0x0x7fe2225f8ea0) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7fe22253e4e0) 0 + QStyleOption (0x0x7fe222650120) 0 + +Class QStyleOptionHeader + size=136 align=8 + base size=132 base align=8 +QStyleOptionHeader (0x0x7fe22253e548) 0 + QStyleOption (0x0x7fe222650360) 0 + +Class QStyleOptionHeaderV2 + size=136 align=8 + base size=136 base align=8 +QStyleOptionHeaderV2 (0x0x7fe22253e5b0) 0 + QStyleOptionHeader (0x0x7fe22253e618) 0 + QStyleOption (0x0x7fe2226505a0) 0 + +Class QStyleOptionButton + size=112 align=8 + base size=112 base align=8 +QStyleOptionButton (0x0x7fe22253e6e8) 0 + QStyleOption (0x0x7fe222650960) 0 + +Class QStyleOptionTab + size=160 align=8 + base size=156 base align=8 +QStyleOptionTab (0x0x7fe22253e888) 0 + QStyleOption (0x0x7fe222650ea0) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7fe22253eb60) 0 + QStyleOption (0x0x7fe222693600) 0 + +Class QStyleOptionProgressBar + size=112 align=8 + base size=111 base align=8 +QStyleOptionProgressBar (0x0x7fe22253ed00) 0 + QStyleOption (0x0x7fe222693b40) 0 + +Class QStyleOptionMenuItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionMenuItem (0x0x7fe22253ed68) 0 + QStyleOption (0x0x7fe222693d80) 0 + +Class QStyleOptionDockWidget + size=96 align=8 + base size=92 base align=8 +QStyleOptionDockWidget (0x0x7fe22253edd0) 0 + QStyleOption (0x0x7fe2226fb000) 0 + +Class QStyleOptionViewItem + size=208 align=8 + base size=208 base align=8 +QStyleOptionViewItem (0x0x7fe22253ee38) 0 + QStyleOption (0x0x7fe2226fb240) 0 + +Class QStyleOptionToolBox + size=104 align=8 + base size=104 base align=8 +QStyleOptionToolBox (0x0x7fe22232a000) 0 + QStyleOption (0x0x7fe2226fb780) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7fe22232a068) 0 + QStyleOption (0x0x7fe2226fb9c0) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7fe22232a0d0) 0 + QStyleOption (0x0x7fe2226fbc60) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=128 base align=8 +QStyleOptionSlider (0x0x7fe22232a138) 0 + QStyleOptionComplex (0x0x7fe22232a1a0) 0 + QStyleOption (0x0x7fe2226fbf00) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7fe22232a270) 0 + QStyleOptionComplex (0x0x7fe22232a2d8) 0 + QStyleOption (0x0x7fe2223482a0) 0 + +Class QStyleOptionToolButton + size=152 align=8 + base size=152 base align=8 +QStyleOptionToolButton (0x0x7fe22232a3a8) 0 + QStyleOptionComplex (0x0x7fe22232a410) 0 + QStyleOption (0x0x7fe2223484e0) 0 + +Class QStyleOptionComboBox + size=144 align=8 + base size=140 base align=8 +QStyleOptionComboBox (0x0x7fe22232a5b0) 0 + QStyleOptionComplex (0x0x7fe22232a618) 0 + QStyleOption (0x0x7fe222348a20) 0 + +Class QStyleOptionTitleBar + size=112 align=8 + base size=112 base align=8 +QStyleOptionTitleBar (0x0x7fe22232a680) 0 + QStyleOptionComplex (0x0x7fe22232a6e8) 0 + QStyleOption (0x0x7fe222348c60) 0 + +Class QStyleOptionGroupBox + size=136 align=8 + base size=132 base align=8 +QStyleOptionGroupBox (0x0x7fe22232a750) 0 + QStyleOptionComplex (0x0x7fe22232a7b8) 0 + QStyleOption (0x0x7fe222348ea0) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7fe22232a820) 0 + QStyleOptionComplex (0x0x7fe22232a888) 0 + QStyleOption (0x0x7fe22238d120) 0 + +Class QStyleOptionGraphicsItem + size=96 align=8 + base size=96 base align=8 +QStyleOptionGraphicsItem (0x0x7fe22232a8f0) 0 + QStyleOption (0x0x7fe22238d360) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7fe22238d6c0) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7fe22232a958) 0 + QStyleHintReturn (0x0x7fe22238d720) 0 + +Class QStyleHintReturnVariant + size=40 align=8 + base size=40 base align=8 +QStyleHintReturnVariant (0x0x7fe22232aa28) 0 + QStyleHintReturn (0x0x7fe22238d780) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7fe22238d900) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7fe22232aaf8) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16) + QObject (0x0x7fe22238d8a0) 0 + primary-for QAbstractItemDelegate (0x0x7fe22232aaf8) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7fe22238db40) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI19QAbstractScrollArea) +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +496 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=40 align=8 + base size=40 base align=8 +QAbstractScrollArea (0x0x7fe22232ab60) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16) + QFrame (0x0x7fe22232abc8) 0 + primary-for QAbstractScrollArea (0x0x7fe22232ab60) + QWidget (0x0x7fe222353e00) 0 + primary-for QFrame (0x0x7fe22232abc8) + QObject (0x0x7fe22238da80) 0 + primary-for QWidget (0x0x7fe222353e00) + QPaintDevice (0x0x7fe22238dae0) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 488) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7fe22238de40) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QAbstractItemView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))__cxa_pure_virtual +736 (int (*)(...))__cxa_pure_virtual +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI17QAbstractItemView) +800 0 +808 0 +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=40 align=8 + base size=40 base align=8 +QAbstractItemView (0x0x7fe22232ac30) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16) + QAbstractScrollArea (0x0x7fe22232ac98) 0 + primary-for QAbstractItemView (0x0x7fe22232ac30) + QFrame (0x0x7fe22232ad00) 0 + primary-for QAbstractScrollArea (0x0x7fe22232ac98) + QWidget (0x0x7fe2223cc000) 0 + primary-for QFrame (0x0x7fe22232ad00) + QObject (0x0x7fe22238dd80) 0 + primary-for QWidget (0x0x7fe2223cc000) + QPaintDevice (0x0x7fe22238dde0) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 800) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7fe2223ee540) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16) + QAccessibleObject (0x0x7fe22232aea0) 0 + primary-for QAccessibleWidget (0x0x7fe2223ee540) + QAccessibleInterface (0x0x7fe2223fe7e0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7fe22232aea0) + QAccessibleActionInterface (0x0x7fe2223fe840) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7fe2223fe960) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7fe22232af08) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16) + QGuiApplication (0x0x7fe22232af70) 0 + primary-for QApplication (0x0x7fe22232af08) + QCoreApplication (0x0x7fe22232a208) 0 + primary-for QGuiApplication (0x0x7fe22232af70) + QObject (0x0x7fe2223fe900) 0 + primary-for QCoreApplication (0x0x7fe22232a208) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7fe2223feba0) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7fe222448000) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16) + QLayoutItem (0x0x7fe2223fede0) 0 + primary-for QSpacerItem (0x0x7fe222448000) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7fe222448068) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16) + QLayoutItem (0x0x7fe22244e060) 0 + primary-for QWidgetItem (0x0x7fe222448068) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7fe2224480d0) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16) + QWidgetItem (0x0x7fe222448138) 0 + primary-for QWidgetItemV2 (0x0x7fe2224480d0) + QLayoutItem (0x0x7fe22244e240) 0 + primary-for QWidgetItem (0x0x7fe222448138) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7fe22244e3c0) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QLayout::setGeometry +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI7QLayout) +272 0 +280 0 +288 (int (*)(...))__cxa_pure_virtual +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +312 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +320 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QLayoutItem::hasHeightForWidth +352 (int (*)(...))QLayoutItem::heightForWidth +360 (int (*)(...))QLayoutItem::minimumHeightForWidth +368 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7fe2223ee690) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16) + QObject (0x0x7fe22244e300) 0 + primary-for QLayout (0x0x7fe2223ee690) + QLayoutItem (0x0x7fe22244e360) 16 + vptr=((& QLayout::_ZTV7QLayout) + 272) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7fe22244e6c0) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::spacing +120 (int (*)(...))QGridLayout::setSpacing +128 (int (*)(...))QGridLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QGridLayout::addItem +152 (int (*)(...))QGridLayout::expandingDirections +160 (int (*)(...))QGridLayout::minimumSize +168 (int (*)(...))QGridLayout::maximumSize +176 (int (*)(...))QGridLayout::setGeometry +184 (int (*)(...))QGridLayout::itemAt +192 (int (*)(...))QGridLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QGridLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QGridLayout::sizeHint +264 (int (*)(...))QGridLayout::hasHeightForWidth +272 (int (*)(...))QGridLayout::heightForWidth +280 (int (*)(...))QGridLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QGridLayout) +304 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +312 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +320 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +328 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +336 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +352 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +384 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +392 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +400 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7fe2224481a0) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16) + QLayout (0x0x7fe2223ee9a0) 0 + primary-for QGridLayout (0x0x7fe2224481a0) + QObject (0x0x7fe22244e600) 0 + primary-for QLayout (0x0x7fe2223ee9a0) + QLayoutItem (0x0x7fe22244e660) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 304) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7fe22244e960) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI10QBoxLayout) +304 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +312 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7fe222448208) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16) + QLayout (0x0x7fe2223eea10) 0 + primary-for QBoxLayout (0x0x7fe222448208) + QObject (0x0x7fe22244e8a0) 0 + primary-for QLayout (0x0x7fe2223eea10) + QLayoutItem (0x0x7fe22244e900) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 304) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7fe22244eba0) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QHBoxLayout) +304 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +312 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7fe222448270) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16) + QBoxLayout (0x0x7fe2224482d8) 0 + primary-for QHBoxLayout (0x0x7fe222448270) + QLayout (0x0x7fe2223eed20) 0 + primary-for QBoxLayout (0x0x7fe2224482d8) + QObject (0x0x7fe22244eae0) 0 + primary-for QLayout (0x0x7fe2223eed20) + QLayoutItem (0x0x7fe22244eb40) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 304) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7fe22244ed20) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QVBoxLayout) +304 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +312 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7fe222448340) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16) + QBoxLayout (0x0x7fe2224483a8) 0 + primary-for QVBoxLayout (0x0x7fe222448340) + QLayout (0x0x7fe2223eed90) 0 + primary-for QBoxLayout (0x0x7fe2224483a8) + QObject (0x0x7fe22244ec60) 0 + primary-for QLayout (0x0x7fe2223eed90) + QLayoutItem (0x0x7fe22244ecc0) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 304) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7fe22244ee40) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7fe222448410) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16) + QObject (0x0x7fe22244ede0) 0 + primary-for QButtonGroup (0x0x7fe222448410) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7fe2224b90c0) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=40 align=8 + base size=40 base align=8 +QCalendarWidget (0x0x7fe222448478) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16) + QWidget (0x0x7fe2223eee00) 0 + primary-for QCalendarWidget (0x0x7fe222448478) + QObject (0x0x7fe2224b9000) 0 + primary-for QWidget (0x0x7fe2223eee00) + QPaintDevice (0x0x7fe2224b9060) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7fe2224b9540) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))QCheckBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QCheckBox) +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +488 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=40 align=8 + base size=40 base align=8 +QCheckBox (0x0x7fe2224484e0) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16) + QAbstractButton (0x0x7fe222448548) 0 + primary-for QCheckBox (0x0x7fe2224484e0) + QWidget (0x0x7fe2224bf230) 0 + primary-for QAbstractButton (0x0x7fe222448548) + QObject (0x0x7fe2224b9480) 0 + primary-for QWidget (0x0x7fe2224bf230) + QPaintDevice (0x0x7fe2224b94e0) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 480) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7fe2224b9780) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=40 align=8 + base size=40 base align=8 +QDialog (0x0x7fe2224485b0) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16) + QWidget (0x0x7fe2224bf2a0) 0 + primary-for QDialog (0x0x7fe2224485b0) + QObject (0x0x7fe2224b96c0) 0 + primary-for QWidget (0x0x7fe2224bf2a0) + QPaintDevice (0x0x7fe2224b9720) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7fe2224b99c0) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=40 align=8 + base size=40 base align=8 +QColorDialog (0x0x7fe222448618) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16) + QDialog (0x0x7fe222448680) 0 + primary-for QColorDialog (0x0x7fe222448618) + QWidget (0x0x7fe2224bf3f0) 0 + primary-for QDialog (0x0x7fe222448680) + QObject (0x0x7fe2224b9900) 0 + primary-for QWidget (0x0x7fe2224bf3f0) + QPaintDevice (0x0x7fe2224b9960) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7fe2224b9f00) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7fe222523060) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 109 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QColumnView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QColumnView::setModel +480 (int (*)(...))QColumnView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QColumnView::visualRect +504 (int (*)(...))QColumnView::scrollTo +512 (int (*)(...))QColumnView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QColumnView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QColumnView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QColumnView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QColumnView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QColumnView::moveCursor +704 (int (*)(...))QColumnView::horizontalOffset +712 (int (*)(...))QColumnView::verticalOffset +720 (int (*)(...))QColumnView::isIndexHidden +728 (int (*)(...))QColumnView::setSelection +736 (int (*)(...))QColumnView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QColumnView::createColumn +792 (int (*)(...))-16 +800 (int (*)(...))(& _ZTI11QColumnView) +808 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +816 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=40 align=8 + base size=40 base align=8 +QColumnView (0x0x7fe222448820) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16) + QAbstractItemView (0x0x7fe222448888) 0 + primary-for QColumnView (0x0x7fe222448820) + QAbstractScrollArea (0x0x7fe2224488f0) 0 + primary-for QAbstractItemView (0x0x7fe222448888) + QFrame (0x0x7fe222448958) 0 + primary-for QAbstractScrollArea (0x0x7fe2224488f0) + QWidget (0x0x7fe2224bf700) 0 + primary-for QFrame (0x0x7fe222448958) + QObject (0x0x7fe2224b9f60) 0 + primary-for QWidget (0x0x7fe2224bf700) + QPaintDevice (0x0x7fe222523000) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 808) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7fe2225232a0) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QComboBox) +480 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +488 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=40 align=8 + base size=40 base align=8 +QComboBox (0x0x7fe2224489c0) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16) + QWidget (0x0x7fe2224bf770) 0 + primary-for QComboBox (0x0x7fe2224489c0) + QObject (0x0x7fe2225231e0) 0 + primary-for QWidget (0x0x7fe2224bf770) + QPaintDevice (0x0x7fe222523240) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 480) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7fe222523840) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QPushButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QPushButton) +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +488 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=40 align=8 + base size=40 base align=8 +QPushButton (0x0x7fe222448a28) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16) + QAbstractButton (0x0x7fe222448a90) 0 + primary-for QPushButton (0x0x7fe222448a28) + QWidget (0x0x7fe2224bfc40) 0 + primary-for QAbstractButton (0x0x7fe222448a90) + QObject (0x0x7fe222523780) 0 + primary-for QWidget (0x0x7fe2224bfc40) + QPaintDevice (0x0x7fe2225237e0) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 480) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7fe222523a80) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QCommandLinkButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI18QCommandLinkButton) +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +488 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=40 align=8 + base size=40 base align=8 +QCommandLinkButton (0x0x7fe222448af8) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16) + QPushButton (0x0x7fe222448b60) 0 + primary-for QCommandLinkButton (0x0x7fe222448af8) + QAbstractButton (0x0x7fe222448bc8) 0 + primary-for QPushButton (0x0x7fe222448b60) + QWidget (0x0x7fe2224bfcb0) 0 + primary-for QAbstractButton (0x0x7fe222448bc8) + QObject (0x0x7fe2225239c0) 0 + primary-for QWidget (0x0x7fe2224bfcb0) + QPaintDevice (0x0x7fe222523a20) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 480) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7fe222523c60) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7fe222448c30) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16) + QStyle (0x0x7fe222448c98) 0 + primary-for QCommonStyle (0x0x7fe222448c30) + QObject (0x0x7fe222523c00) 0 + primary-for QStyle (0x0x7fe222448c98) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7fe222523e40) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7fe222448d00) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16) + QObject (0x0x7fe222523de0) 0 + primary-for QCompleter (0x0x7fe222448d00) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7fe2221991e0) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7fe222448d68) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16) + QObject (0x0x7fe222199180) 0 + primary-for QDataWidgetMapper (0x0x7fe222448d68) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7fe2221994e0) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QDateTimeEdit) +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +520 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=40 align=8 + base size=40 base align=8 +QDateTimeEdit (0x0x7fe222448dd0) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16) + QAbstractSpinBox (0x0x7fe222448e38) 0 + primary-for QDateTimeEdit (0x0x7fe222448dd0) + QWidget (0x0x7fe2221a00e0) 0 + primary-for QAbstractSpinBox (0x0x7fe222448e38) + QObject (0x0x7fe222199420) 0 + primary-for QWidget (0x0x7fe2221a00e0) + QPaintDevice (0x0x7fe222199480) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 512) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7fe222199a80) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QTimeEdit) +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +520 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=40 align=8 + base size=40 base align=8 +QTimeEdit (0x0x7fe2221da000) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16) + QDateTimeEdit (0x0x7fe2221da068) 0 + primary-for QTimeEdit (0x0x7fe2221da000) + QAbstractSpinBox (0x0x7fe2221da0d0) 0 + primary-for QDateTimeEdit (0x0x7fe2221da068) + QWidget (0x0x7fe2221a05b0) 0 + primary-for QAbstractSpinBox (0x0x7fe2221da0d0) + QObject (0x0x7fe2221999c0) 0 + primary-for QWidget (0x0x7fe2221a05b0) + QPaintDevice (0x0x7fe222199a20) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 512) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7fe222199c00) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QDateEdit) +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +520 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=40 align=8 + base size=40 base align=8 +QDateEdit (0x0x7fe2221da138) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16) + QDateTimeEdit (0x0x7fe2221da1a0) 0 + primary-for QDateEdit (0x0x7fe2221da138) + QAbstractSpinBox (0x0x7fe2221da208) 0 + primary-for QDateTimeEdit (0x0x7fe2221da1a0) + QWidget (0x0x7fe2221a0620) 0 + primary-for QAbstractSpinBox (0x0x7fe2221da208) + QObject (0x0x7fe222199b40) 0 + primary-for QWidget (0x0x7fe2221a0620) + QPaintDevice (0x0x7fe222199ba0) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 512) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7fe222199ea0) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))QDial::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI5QDial) +464 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +472 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=40 align=8 + base size=40 base align=8 +QDial (0x0x7fe2221da270) 0 + vptr=((& QDial::_ZTV5QDial) + 16) + QAbstractSlider (0x0x7fe2221da2d8) 0 + primary-for QDial (0x0x7fe2221da270) + QWidget (0x0x7fe2221a0690) 0 + primary-for QAbstractSlider (0x0x7fe2221da2d8) + QObject (0x0x7fe222199de0) 0 + primary-for QWidget (0x0x7fe2221a0690) + QPaintDevice (0x0x7fe222199e40) 16 + vptr=((& QDial::_ZTV5QDial) + 464) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7fe222203120) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=40 align=8 + base size=40 base align=8 +QDialogButtonBox (0x0x7fe2221da340) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16) + QWidget (0x0x7fe2221a0700) 0 + primary-for QDialogButtonBox (0x0x7fe2221da340) + QObject (0x0x7fe222203060) 0 + primary-for QWidget (0x0x7fe2221a0700) + QPaintDevice (0x0x7fe2222030c0) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7fe222203720) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDockWidget::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QDockWidget) +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +464 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=40 align=8 + base size=40 base align=8 +QDockWidget (0x0x7fe2221da4e0) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16) + QWidget (0x0x7fe2222067e0) 0 + primary-for QDockWidget (0x0x7fe2221da4e0) + QObject (0x0x7fe222203660) 0 + primary-for QWidget (0x0x7fe2222067e0) + QPaintDevice (0x0x7fe2222036c0) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 456) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7fe222203d20) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7fe22226e3c0) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=40 align=8 + base size=40 base align=8 +QErrorMessage (0x0x7fe2221da7b8) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16) + QDialog (0x0x7fe2221da820) 0 + primary-for QErrorMessage (0x0x7fe2221da7b8) + QWidget (0x0x7fe22226f230) 0 + primary-for QDialog (0x0x7fe2221da820) + QObject (0x0x7fe22226e300) 0 + primary-for QWidget (0x0x7fe22226f230) + QPaintDevice (0x0x7fe22226e360) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7fe22226e600) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=40 align=8 + base size=40 base align=8 +QFileDialog (0x0x7fe2221da888) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16) + QDialog (0x0x7fe2221da8f0) 0 + primary-for QFileDialog (0x0x7fe2221da888) + QWidget (0x0x7fe22226f2a0) 0 + primary-for QDialog (0x0x7fe2221da8f0) + QObject (0x0x7fe22226e540) 0 + primary-for QWidget (0x0x7fe22226f2a0) + QPaintDevice (0x0x7fe22226e5a0) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7fe2221daa90) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16) + QAbstractFileIconProvider (0x0x7fe22226eea0) 0 + primary-for QFileIconProvider (0x0x7fe2221daa90) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7fe2222d80c0) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFocusFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QFocusFrame) +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +464 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=40 align=8 + base size=40 base align=8 +QFocusFrame (0x0x7fe2221daaf8) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16) + QWidget (0x0x7fe22226fbd0) 0 + primary-for QFocusFrame (0x0x7fe2221daaf8) + QObject (0x0x7fe2222d8000) 0 + primary-for QWidget (0x0x7fe22226fbd0) + QPaintDevice (0x0x7fe2222d8060) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 456) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7fe2222d8300) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI13QFontComboBox) +480 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +488 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=40 align=8 + base size=40 base align=8 +QFontComboBox (0x0x7fe2221dab60) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16) + QComboBox (0x0x7fe2221dabc8) 0 + primary-for QFontComboBox (0x0x7fe2221dab60) + QWidget (0x0x7fe22226fc40) 0 + primary-for QComboBox (0x0x7fe2221dabc8) + QObject (0x0x7fe2222d8240) 0 + primary-for QWidget (0x0x7fe22226fc40) + QPaintDevice (0x0x7fe2222d82a0) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 480) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7fe2222d8900) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=40 align=8 + base size=40 base align=8 +QFontDialog (0x0x7fe2221dad68) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16) + QDialog (0x0x7fe2221dadd0) 0 + primary-for QFontDialog (0x0x7fe2221dad68) + QWidget (0x0x7fe22226fee0) 0 + primary-for QDialog (0x0x7fe2221dadd0) + QObject (0x0x7fe2222d8840) 0 + primary-for QWidget (0x0x7fe22226fee0) + QPaintDevice (0x0x7fe2222d88a0) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7fe2222d8f00) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7fe2222d8f60) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::spacing +120 (int (*)(...))QFormLayout::setSpacing +128 (int (*)(...))QFormLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QFormLayout::addItem +152 (int (*)(...))QFormLayout::expandingDirections +160 (int (*)(...))QFormLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QFormLayout::setGeometry +184 (int (*)(...))QFormLayout::itemAt +192 (int (*)(...))QFormLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QFormLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QFormLayout::sizeHint +264 (int (*)(...))QFormLayout::hasHeightForWidth +272 (int (*)(...))QFormLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI11QFormLayout) +296 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +304 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +312 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +320 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +344 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +376 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7fe2221daf70) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16) + QLayout (0x0x7fe22230f230) 0 + primary-for QFormLayout (0x0x7fe2221daf70) + QObject (0x0x7fe2222d8e40) 0 + primary-for QLayout (0x0x7fe22230f230) + QLayoutItem (0x0x7fe2222d8ea0) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 296) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7fe221f6ea80) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7fe221f72a28) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16) + QObject (0x0x7fe221f6ea20) 0 + primary-for QGesture (0x0x7fe221f72a28) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7fe221f6ec60) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7fe221f72a90) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16) + QGesture (0x0x7fe221f72af8) 0 + primary-for QPanGesture (0x0x7fe221f72a90) + QObject (0x0x7fe221f6ec00) 0 + primary-for QGesture (0x0x7fe221f72af8) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7fe221f6ee40) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7fe221f72b60) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16) + QGesture (0x0x7fe221f72bc8) 0 + primary-for QPinchGesture (0x0x7fe221f72b60) + QObject (0x0x7fe221f6ede0) 0 + primary-for QGesture (0x0x7fe221f72bc8) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7fe221f9f600) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7fe221f72d68) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16) + QGesture (0x0x7fe221f72dd0) 0 + primary-for QSwipeGesture (0x0x7fe221f72d68) + QObject (0x0x7fe221f9f5a0) 0 + primary-for QGesture (0x0x7fe221f72dd0) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7fe221f9f8a0) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7fe221f72e38) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16) + QGesture (0x0x7fe221f72ea0) 0 + primary-for QTapGesture (0x0x7fe221f72e38) + QObject (0x0x7fe221f9f840) 0 + primary-for QGesture (0x0x7fe221f72ea0) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7fe221f9fa80) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7fe221f72f08) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16) + QGesture (0x0x7fe221f72f70) 0 + primary-for QTapAndHoldGesture (0x0x7fe221f72f08) + QObject (0x0x7fe221f9fa20) 0 + primary-for QGesture (0x0x7fe221f72f70) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGestureEvent + size=64 align=8 + base size=64 base align=8 +QGestureEvent (0x0x7fe221fd8000) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16) + QEvent (0x0x7fe221f9fc00) 0 + primary-for QGestureEvent (0x0x7fe221fd8000) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0 +24 0 +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7fe221fe58a0) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7fe221fe5c00) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7fe2220bcd80) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0 +48 0 +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0 +136 0 +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7fe2220a6070) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16) + QObject (0x0x7fe2220bccc0) 0 + primary-for QGraphicsObject (0x0x7fe2220a6070) + QGraphicsItem (0x0x7fe2220bcd20) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7fe221fd8a90) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16) + QGraphicsItem (0x0x7fe2220bce40) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fe221fd8a90) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7fe221fd8af8) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fe221fd8b60) 0 + primary-for QGraphicsPathItem (0x0x7fe221fd8af8) + QGraphicsItem (0x0x7fe2220bcf60) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fe221fd8b60) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7fe221fd8bc8) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fe221fd8c30) 0 + primary-for QGraphicsRectItem (0x0x7fe221fd8bc8) + QGraphicsItem (0x0x7fe2221040c0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fe221fd8c30) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7fe221fd8c98) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fe221fd8d00) 0 + primary-for QGraphicsEllipseItem (0x0x7fe221fd8c98) + QGraphicsItem (0x0x7fe222104240) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fe221fd8d00) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7fe221fd8d68) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fe221fd8dd0) 0 + primary-for QGraphicsPolygonItem (0x0x7fe221fd8d68) + QGraphicsItem (0x0x7fe2221043c0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fe221fd8dd0) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7fe221fd8e38) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16) + QGraphicsItem (0x0x7fe2221044e0) 0 + primary-for QGraphicsLineItem (0x0x7fe221fd8e38) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7fe221fd8ea0) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16) + QGraphicsItem (0x0x7fe222104660) 0 + primary-for QGraphicsPixmapItem (0x0x7fe221fd8ea0) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7fe2221048a0) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7fe221fd8f08) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16) + QGraphicsObject (0x0x7fe2220a64d0) 0 + primary-for QGraphicsTextItem (0x0x7fe221fd8f08) + QObject (0x0x7fe2221047e0) 0 + primary-for QGraphicsObject (0x0x7fe2220a64d0) + QGraphicsItem (0x0x7fe222104840) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7fe221d5e000) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fe221d5e068) 0 + primary-for QGraphicsSimpleTextItem (0x0x7fe221d5e000) + QGraphicsItem (0x0x7fe222104b40) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fe221d5e068) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7fe221d5e0d0) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16) + QGraphicsItem (0x0x7fe222104c60) 0 + primary-for QGraphicsItemGroup (0x0x7fe221d5e0d0) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7fe222104f60) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))QGraphicsLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7fe221d5e138) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16) + QGraphicsLayoutItem (0x0x7fe221d7f660) 0 + primary-for QGraphicsLayout (0x0x7fe221d5e138) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7fe221d7f960) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7fe221d5e1a0) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16) + QObject (0x0x7fe221d7f900) 0 + primary-for QGraphicsAnchor (0x0x7fe221d5e1a0) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsAnchorLayout::sizeHint +72 (int (*)(...))QGraphicsAnchorLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsAnchorLayout::count +96 (int (*)(...))QGraphicsAnchorLayout::itemAt +104 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7fe221d5e208) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16) + QGraphicsLayout (0x0x7fe221d5e270) 0 + primary-for QGraphicsAnchorLayout (0x0x7fe221d5e208) + QGraphicsLayoutItem (0x0x7fe221d7fae0) 0 + primary-for QGraphicsLayout (0x0x7fe221d5e270) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7fe221d7fc60) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7fe221d5e2d8) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16) + QObject (0x0x7fe221d7fc00) 0 + primary-for QGraphicsEffect (0x0x7fe221d5e2d8) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7fe221dc9240) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7fe221d5e478) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16) + QGraphicsEffect (0x0x7fe221d5e4e0) 0 + primary-for QGraphicsColorizeEffect (0x0x7fe221d5e478) + QObject (0x0x7fe221dc91e0) 0 + primary-for QGraphicsEffect (0x0x7fe221d5e4e0) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7fe221dc9420) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7fe221d5e548) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16) + QGraphicsEffect (0x0x7fe221d5e5b0) 0 + primary-for QGraphicsBlurEffect (0x0x7fe221d5e548) + QObject (0x0x7fe221dc93c0) 0 + primary-for QGraphicsEffect (0x0x7fe221d5e5b0) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7fe221dc9a80) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7fe221d5e750) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16) + QGraphicsEffect (0x0x7fe221d5e7b8) 0 + primary-for QGraphicsDropShadowEffect (0x0x7fe221d5e750) + QObject (0x0x7fe221dc9a20) 0 + primary-for QGraphicsEffect (0x0x7fe221d5e7b8) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7fe221dc9ea0) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7fe221d5e820) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16) + QGraphicsEffect (0x0x7fe221d5e888) 0 + primary-for QGraphicsOpacityEffect (0x0x7fe221d5e820) + QObject (0x0x7fe221dc9e40) 0 + primary-for QGraphicsEffect (0x0x7fe221d5e888) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsGridLayout::sizeHint +72 (int (*)(...))QGraphicsGridLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsGridLayout::count +96 (int (*)(...))QGraphicsGridLayout::itemAt +104 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7fe221d5e8f0) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16) + QGraphicsLayout (0x0x7fe221d5e958) 0 + primary-for QGraphicsGridLayout (0x0x7fe221d5e8f0) + QGraphicsLayoutItem (0x0x7fe221e2b060) 0 + primary-for QGraphicsLayout (0x0x7fe221d5e958) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7fe221e2b240) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7fe221d5ea90) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16) + QObject (0x0x7fe221e2b1e0) 0 + primary-for QGraphicsItemAnimation (0x0x7fe221d5ea90) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsLinearLayout::sizeHint +72 (int (*)(...))QGraphicsLinearLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsLinearLayout::count +96 (int (*)(...))QGraphicsLinearLayout::itemAt +104 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7fe221d5eaf8) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16) + QGraphicsLayout (0x0x7fe221d5eb60) 0 + primary-for QGraphicsLinearLayout (0x0x7fe221d5eaf8) + QGraphicsLayoutItem (0x0x7fe221e2b300) 0 + primary-for QGraphicsLayout (0x0x7fe221d5eb60) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7fe221e2b600) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 93 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsLayoutItem::isEmpty +736 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7fe221de4070) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16) + QGraphicsObject (0x0x7fe221de40e0) 0 + primary-for QGraphicsWidget (0x0x7fe221de4070) + QObject (0x0x7fe221e2b4e0) 0 + primary-for QGraphicsObject (0x0x7fe221de40e0) + QGraphicsItem (0x0x7fe221e2b540) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376) + QGraphicsLayoutItem (0x0x7fe221e2b5a0) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7fe221e2ba80) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsLayoutItem::isEmpty +856 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7fe221d5ec98) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16) + QGraphicsWidget (0x0x7fe221de4230) 0 + primary-for QGraphicsProxyWidget (0x0x7fe221d5ec98) + QGraphicsObject (0x0x7fe221de42a0) 0 + primary-for QGraphicsWidget (0x0x7fe221de4230) + QObject (0x0x7fe221e2b960) 0 + primary-for QGraphicsObject (0x0x7fe221de42a0) + QGraphicsItem (0x0x7fe221e2b9c0) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496) + QGraphicsLayoutItem (0x0x7fe221e2ba20) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7fe221e2bde0) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems +272 (int (*)(...))QGraphicsScene::focusNextPrevChild + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7fe221d5eea0) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16) + QObject (0x0x7fe221e2bd80) 0 + primary-for QGraphicsScene (0x0x7fe221d5eea0) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneEvent (0x0x7fe221ec28f0) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16) + QEvent (0x0x7fe221b3d120) 0 + primary-for QGraphicsSceneEvent (0x0x7fe221ec28f0) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMouseEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMouseEvent (0x0x7fe221ec2958) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16) + QGraphicsSceneEvent (0x0x7fe221ec29c0) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7fe221ec2958) + QEvent (0x0x7fe221b3d300) 0 + primary-for QGraphicsSceneEvent (0x0x7fe221ec29c0) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneWheelEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneWheelEvent (0x0x7fe221ec2a28) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16) + QGraphicsSceneEvent (0x0x7fe221ec2a90) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7fe221ec2a28) + QEvent (0x0x7fe221b3d420) 0 + primary-for QGraphicsSceneEvent (0x0x7fe221ec2a90) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneContextMenuEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7fe221ec2af8) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16) + QGraphicsSceneEvent (0x0x7fe221ec2b60) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7fe221ec2af8) + QEvent (0x0x7fe221b3d540) 0 + primary-for QGraphicsSceneEvent (0x0x7fe221ec2b60) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHoverEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHoverEvent (0x0x7fe221ec2bc8) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16) + QGraphicsSceneEvent (0x0x7fe221ec2c30) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7fe221ec2bc8) + QEvent (0x0x7fe221b3d660) 0 + primary-for QGraphicsSceneEvent (0x0x7fe221ec2c30) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHelpEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHelpEvent (0x0x7fe221ec2c98) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16) + QGraphicsSceneEvent (0x0x7fe221ec2d00) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7fe221ec2c98) + QEvent (0x0x7fe221b3d780) 0 + primary-for QGraphicsSceneEvent (0x0x7fe221ec2d00) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneDragDropEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneDragDropEvent (0x0x7fe221ec2d68) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16) + QGraphicsSceneEvent (0x0x7fe221ec2dd0) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7fe221ec2d68) + QEvent (0x0x7fe221b3d8a0) 0 + primary-for QGraphicsSceneEvent (0x0x7fe221ec2dd0) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneResizeEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneResizeEvent (0x0x7fe221ec2e38) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16) + QGraphicsSceneEvent (0x0x7fe221ec2ea0) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7fe221ec2e38) + QEvent (0x0x7fe221b3d9c0) 0 + primary-for QGraphicsSceneEvent (0x0x7fe221ec2ea0) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMoveEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMoveEvent (0x0x7fe221ec2f08) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16) + QGraphicsSceneEvent (0x0x7fe221ec2f70) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7fe221ec2f08) + QEvent (0x0x7fe221b3dae0) 0 + primary-for QGraphicsSceneEvent (0x0x7fe221ec2f70) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7fe221b3dc60) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7fe221ec2888) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16) + QObject (0x0x7fe221b3dc00) 0 + primary-for QGraphicsTransform (0x0x7fe221ec2888) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7fe221b3de40) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7fe221ba3000) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16) + QGraphicsTransform (0x0x7fe221ba3068) 0 + primary-for QGraphicsScale (0x0x7fe221ba3000) + QObject (0x0x7fe221b3dde0) 0 + primary-for QGraphicsTransform (0x0x7fe221ba3068) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7fe221bac060) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7fe221ba30d0) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16) + QGraphicsTransform (0x0x7fe221ba3138) 0 + primary-for QGraphicsRotation (0x0x7fe221ba30d0) + QObject (0x0x7fe221bac000) 0 + primary-for QGraphicsTransform (0x0x7fe221ba3138) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7fe221bac2a0) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QScrollArea::scrollContentsBy +464 (int (*)(...))QScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QScrollArea) +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +496 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=40 align=8 + base size=40 base align=8 +QScrollArea (0x0x7fe221ba31a0) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16) + QAbstractScrollArea (0x0x7fe221ba3208) 0 + primary-for QScrollArea (0x0x7fe221ba31a0) + QFrame (0x0x7fe221ba3270) 0 + primary-for QAbstractScrollArea (0x0x7fe221ba3208) + QWidget (0x0x7fe221de4af0) 0 + primary-for QFrame (0x0x7fe221ba3270) + QObject (0x0x7fe221bac1e0) 0 + primary-for QWidget (0x0x7fe221de4af0) + QPaintDevice (0x0x7fe221bac240) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 488) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7fe221bac4e0) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QGraphicsView::setupViewport +448 (int (*)(...))QGraphicsView::viewportEvent +456 (int (*)(...))QGraphicsView::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QGraphicsView::drawBackground +480 (int (*)(...))QGraphicsView::drawForeground +488 (int (*)(...))QGraphicsView::drawItems +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QGraphicsView) +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +520 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=40 align=8 + base size=40 base align=8 +QGraphicsView (0x0x7fe221ba32d8) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16) + QAbstractScrollArea (0x0x7fe221ba3340) 0 + primary-for QGraphicsView (0x0x7fe221ba32d8) + QFrame (0x0x7fe221ba33a8) 0 + primary-for QAbstractScrollArea (0x0x7fe221ba3340) + QWidget (0x0x7fe221de4b60) 0 + primary-for QFrame (0x0x7fe221ba33a8) + QObject (0x0x7fe221bac420) 0 + primary-for QWidget (0x0x7fe221de4b60) + QPaintDevice (0x0x7fe221bac480) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 512) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7fe221c473c0) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QGroupBox::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QGroupBox) +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +464 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=40 align=8 + base size=40 base align=8 +QGroupBox (0x0x7fe221ba3680) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16) + QWidget (0x0x7fe221bc8310) 0 + primary-for QGroupBox (0x0x7fe221ba3680) + QObject (0x0x7fe221c47300) 0 + primary-for QWidget (0x0x7fe221bc8310) + QPaintDevice (0x0x7fe221c47360) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 456) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7fe221c47600) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QHeaderView::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QHeaderView::viewportEvent +456 (int (*)(...))QHeaderView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QHeaderView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QHeaderView::visualRect +504 (int (*)(...))QHeaderView::scrollTo +512 (int (*)(...))QHeaderView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QHeaderView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QHeaderView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QHeaderView::dataChanged +584 (int (*)(...))QHeaderView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QHeaderView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QHeaderView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QHeaderView::moveCursor +704 (int (*)(...))QHeaderView::horizontalOffset +712 (int (*)(...))QHeaderView::verticalOffset +720 (int (*)(...))QHeaderView::isIndexHidden +728 (int (*)(...))QHeaderView::setSelection +736 (int (*)(...))QHeaderView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QHeaderView::paintSection +792 (int (*)(...))QHeaderView::sectionSizeFromContents +800 (int (*)(...))QHeaderView::initStyleOptionForIndex +808 (int (*)(...))QHeaderView::initStyleOption +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QHeaderView) +832 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +840 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=40 align=8 + base size=40 base align=8 +QHeaderView (0x0x7fe221ba36e8) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16) + QAbstractItemView (0x0x7fe221ba3750) 0 + primary-for QHeaderView (0x0x7fe221ba36e8) + QAbstractScrollArea (0x0x7fe221ba37b8) 0 + primary-for QAbstractItemView (0x0x7fe221ba3750) + QFrame (0x0x7fe221ba3820) 0 + primary-for QAbstractScrollArea (0x0x7fe221ba37b8) + QWidget (0x0x7fe221bc8380) 0 + primary-for QFrame (0x0x7fe221ba3820) + QObject (0x0x7fe221c47540) 0 + primary-for QWidget (0x0x7fe221bc8380) + QPaintDevice (0x0x7fe221c475a0) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 832) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7fe221c47a80) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QLineEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QLineEdit::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QLineEdit::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QLineEdit) +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +464 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=40 align=8 + base size=40 base align=8 +QLineEdit (0x0x7fe221ba3888) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16) + QWidget (0x0x7fe221bc8620) 0 + primary-for QLineEdit (0x0x7fe221ba3888) + QObject (0x0x7fe221c479c0) 0 + primary-for QWidget (0x0x7fe221bc8620) + QPaintDevice (0x0x7fe221c47a20) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 456) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7fe221c47e40) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=40 align=8 + base size=40 base align=8 +QInputDialog (0x0x7fe221ba38f0) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16) + QDialog (0x0x7fe221ba3958) 0 + primary-for QInputDialog (0x0x7fe221ba38f0) + QWidget (0x0x7fe221bc8930) 0 + primary-for QDialog (0x0x7fe221ba3958) + QObject (0x0x7fe221c47d80) 0 + primary-for QWidget (0x0x7fe221bc8930) + QPaintDevice (0x0x7fe221c47de0) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7fe221cbf360) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7fe221ba3af8) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16) + QAbstractItemDelegate (0x0x7fe221ba3b60) 0 + primary-for QItemDelegate (0x0x7fe221ba3af8) + QObject (0x0x7fe221cbf300) 0 + primary-for QAbstractItemDelegate (0x0x7fe221ba3b60) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7fe221cbf4e0) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7fe221cbf840) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7fe221cbfd20) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=40 align=8 + base size=40 base align=8 +QKeySequenceEdit (0x0x7fe221ba3c98) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16) + QWidget (0x0x7fe221bc8c40) 0 + primary-for QKeySequenceEdit (0x0x7fe221ba3c98) + QObject (0x0x7fe221cbfc60) 0 + primary-for QWidget (0x0x7fe221bc8c40) + QPaintDevice (0x0x7fe221cbfcc0) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7fe221cbff60) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QLabel) +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +464 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=40 align=8 + base size=40 base align=8 +QLabel (0x0x7fe221ba3d00) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16) + QFrame (0x0x7fe221ba3d68) 0 + primary-for QLabel (0x0x7fe221ba3d00) + QWidget (0x0x7fe221bc8cb0) 0 + primary-for QFrame (0x0x7fe221ba3d68) + QObject (0x0x7fe221cbfea0) 0 + primary-for QWidget (0x0x7fe221bc8cb0) + QPaintDevice (0x0x7fe221cbff00) 16 + vptr=((& QLabel::_ZTV6QLabel) + 456) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7fe22193e2a0) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QLCDNumber) +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +464 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=40 align=8 + base size=40 base align=8 +QLCDNumber (0x0x7fe221ba3dd0) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16) + QFrame (0x0x7fe221ba3e38) 0 + primary-for QLCDNumber (0x0x7fe221ba3dd0) + QWidget (0x0x7fe221bc8d20) 0 + primary-for QFrame (0x0x7fe221ba3e38) + QObject (0x0x7fe22193e1e0) 0 + primary-for QWidget (0x0x7fe221bc8d20) + QPaintDevice (0x0x7fe22193e240) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 456) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7fe22193e660) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QListView) +800 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +808 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=40 align=8 + base size=40 base align=8 +QListView (0x0x7fe221ba3ea0) 0 + vptr=((& QListView::_ZTV9QListView) + 16) + QAbstractItemView (0x0x7fe221ba3f08) 0 + primary-for QListView (0x0x7fe221ba3ea0) + QAbstractScrollArea (0x0x7fe221ba3f70) 0 + primary-for QAbstractItemView (0x0x7fe221ba3f08) + QFrame (0x0x7fe221956000) 0 + primary-for QAbstractScrollArea (0x0x7fe221ba3f70) + QWidget (0x0x7fe2219440e0) 0 + primary-for QFrame (0x0x7fe221956000) + QObject (0x0x7fe22193e5a0) 0 + primary-for QWidget (0x0x7fe2219440e0) + QPaintDevice (0x0x7fe22193e600) 16 + vptr=((& QListView::_ZTV9QListView) + 800) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::data +48 (int (*)(...))QListWidgetItem::setData +56 (int (*)(...))QListWidgetItem::operator< +64 (int (*)(...))QListWidgetItem::read +72 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=40 align=8 + base size=36 base align=8 +QListWidgetItem (0x0x7fe22193eba0) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7fe221993660) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QListWidget::setModel +480 (int (*)(...))QListWidget::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))QListWidget::mimeTypes +792 (int (*)(...))QListWidget::mimeData +800 (int (*)(...))QListWidget::dropMimeData +808 (int (*)(...))QListWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QListWidget) +832 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +840 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=40 align=8 + base size=40 base align=8 +QListWidget (0x0x7fe221956068) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16) + QListView (0x0x7fe2219560d0) 0 + primary-for QListWidget (0x0x7fe221956068) + QAbstractItemView (0x0x7fe221956138) 0 + primary-for QListView (0x0x7fe2219560d0) + QAbstractScrollArea (0x0x7fe2219561a0) 0 + primary-for QAbstractItemView (0x0x7fe221956138) + QFrame (0x0x7fe221956208) 0 + primary-for QAbstractScrollArea (0x0x7fe2219561a0) + QWidget (0x0x7fe221944700) 0 + primary-for QFrame (0x0x7fe221956208) + QObject (0x0x7fe2219935a0) 0 + primary-for QWidget (0x0x7fe221944700) + QPaintDevice (0x0x7fe221993600) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 832) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7fe221993b40) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=40 align=8 + base size=40 base align=8 +QMainWindow (0x0x7fe221956270) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16) + QWidget (0x0x7fe221944770) 0 + primary-for QMainWindow (0x0x7fe221956270) + QObject (0x0x7fe221993a80) 0 + primary-for QWidget (0x0x7fe221944770) + QPaintDevice (0x0x7fe221993ae0) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7fe2219ee240) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QMdiArea::setupViewport +448 (int (*)(...))QMdiArea::viewportEvent +456 (int (*)(...))QMdiArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI8QMdiArea) +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +496 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=40 align=8 + base size=40 base align=8 +QMdiArea (0x0x7fe221956410) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16) + QAbstractScrollArea (0x0x7fe221956478) 0 + primary-for QMdiArea (0x0x7fe221956410) + QFrame (0x0x7fe2219564e0) 0 + primary-for QAbstractScrollArea (0x0x7fe221956478) + QWidget (0x0x7fe221944a80) 0 + primary-for QFrame (0x0x7fe2219564e0) + QObject (0x0x7fe2219ee180) 0 + primary-for QWidget (0x0x7fe221944a80) + QPaintDevice (0x0x7fe2219ee1e0) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 488) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7fe2219ee900) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=40 align=8 + base size=40 base align=8 +QMdiSubWindow (0x0x7fe221956680) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16) + QWidget (0x0x7fe221944e00) 0 + primary-for QMdiSubWindow (0x0x7fe221956680) + QObject (0x0x7fe2219ee840) 0 + primary-for QWidget (0x0x7fe221944e00) + QPaintDevice (0x0x7fe2219ee8a0) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7fe2219eee40) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))QMenu::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QMenu) +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +464 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=40 align=8 + base size=40 base align=8 +QMenu (0x0x7fe221956820) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16) + QWidget (0x0x7fe221a4c070) 0 + primary-for QMenu (0x0x7fe221956820) + QObject (0x0x7fe2219eed80) 0 + primary-for QWidget (0x0x7fe221a4c070) + QPaintDevice (0x0x7fe2219eede0) 16 + vptr=((& QMenu::_ZTV5QMenu) + 456) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7fe221aa5240) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMenuBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QMenuBar) +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +464 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=40 align=8 + base size=40 base align=8 +QMenuBar (0x0x7fe221956888) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16) + QWidget (0x0x7fe221a4c0e0) 0 + primary-for QMenuBar (0x0x7fe221956888) + QObject (0x0x7fe221aa5180) 0 + primary-for QWidget (0x0x7fe221a4c0e0) + QPaintDevice (0x0x7fe221aa51e0) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 456) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7fe221aa5540) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=40 align=8 + base size=40 base align=8 +QMessageBox (0x0x7fe2219568f0) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16) + QDialog (0x0x7fe221956958) 0 + primary-for QMessageBox (0x0x7fe2219568f0) + QWidget (0x0x7fe221a4c150) 0 + primary-for QDialog (0x0x7fe221956958) + QObject (0x0x7fe221aa5480) 0 + primary-for QWidget (0x0x7fe221a4c150) + QPaintDevice (0x0x7fe221aa54e0) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7fe221aa5d80) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7fe221aa5de0) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextEdit::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI9QTextEdit) +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +536 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=40 align=8 + base size=40 base align=8 +QTextEdit (0x0x7fe221956af8) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16) + QAbstractScrollArea (0x0x7fe221956b60) 0 + primary-for QTextEdit (0x0x7fe221956af8) + QFrame (0x0x7fe221956bc8) 0 + primary-for QAbstractScrollArea (0x0x7fe221956b60) + QWidget (0x0x7fe221ac04d0) 0 + primary-for QFrame (0x0x7fe221956bc8) + QObject (0x0x7fe221aa5cc0) 0 + primary-for QWidget (0x0x7fe221ac04d0) + QPaintDevice (0x0x7fe221aa5d20) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 528) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7fe22173d660) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QPlainTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QPlainTextEdit::loadResource +480 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +488 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +496 (int (*)(...))QPlainTextEdit::insertFromMimeData +504 (int (*)(...))QPlainTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI14QPlainTextEdit) +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +536 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=40 align=8 + base size=40 base align=8 +QPlainTextEdit (0x0x7fe221956d68) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16) + QAbstractScrollArea (0x0x7fe221956dd0) 0 + primary-for QPlainTextEdit (0x0x7fe221956d68) + QFrame (0x0x7fe221956e38) 0 + primary-for QAbstractScrollArea (0x0x7fe221956dd0) + QWidget (0x0x7fe221ac0850) 0 + primary-for QFrame (0x0x7fe221956e38) + QObject (0x0x7fe22173d5a0) 0 + primary-for QWidget (0x0x7fe221ac0850) + QPaintDevice (0x0x7fe22173d600) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 528) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7fe22173dba0) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7fe221956ea0) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16) + QAbstractTextDocumentLayout (0x0x7fe221956f08) 0 + primary-for QPlainTextDocumentLayout (0x0x7fe221956ea0) + QObject (0x0x7fe22173db40) 0 + primary-for QAbstractTextDocumentLayout (0x0x7fe221956f08) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7fe22173dde0) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))QProgressBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI12QProgressBar) +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +472 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=40 align=8 + base size=40 base align=8 +QProgressBar (0x0x7fe221956f70) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16) + QWidget (0x0x7fe221ac09a0) 0 + primary-for QProgressBar (0x0x7fe221956f70) + QObject (0x0x7fe22173dd20) 0 + primary-for QWidget (0x0x7fe221ac09a0) + QPaintDevice (0x0x7fe22173dd80) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 464) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7fe2217b1120) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=40 align=8 + base size=40 base align=8 +QProgressDialog (0x0x7fe2217b3000) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16) + QDialog (0x0x7fe2217b3068) 0 + primary-for QProgressDialog (0x0x7fe2217b3000) + QWidget (0x0x7fe221ac0af0) 0 + primary-for QDialog (0x0x7fe2217b3068) + QObject (0x0x7fe2217b1060) 0 + primary-for QWidget (0x0x7fe221ac0af0) + QPaintDevice (0x0x7fe2217b10c0) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7fe2217b1300) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7fe2217b30d0) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16) + QCommonStyle (0x0x7fe2217b3138) 0 + primary-for QProxyStyle (0x0x7fe2217b30d0) + QStyle (0x0x7fe2217b31a0) 0 + primary-for QCommonStyle (0x0x7fe2217b3138) + QObject (0x0x7fe2217b12a0) 0 + primary-for QStyle (0x0x7fe2217b31a0) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7fe2217b1540) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QRadioButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI12QRadioButton) +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +488 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=40 align=8 + base size=40 base align=8 +QRadioButton (0x0x7fe2217b3208) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16) + QAbstractButton (0x0x7fe2217b3270) 0 + primary-for QRadioButton (0x0x7fe2217b3208) + QWidget (0x0x7fe221ac0b60) 0 + primary-for QAbstractButton (0x0x7fe2217b3270) + QObject (0x0x7fe2217b1480) 0 + primary-for QWidget (0x0x7fe221ac0b60) + QPaintDevice (0x0x7fe2217b14e0) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 480) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7fe2217b1780) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))QScrollBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QScrollBar) +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +472 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=40 align=8 + base size=40 base align=8 +QScrollBar (0x0x7fe2217b32d8) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16) + QAbstractSlider (0x0x7fe2217b3340) 0 + primary-for QScrollBar (0x0x7fe2217b32d8) + QWidget (0x0x7fe221ac0bd0) 0 + primary-for QAbstractSlider (0x0x7fe2217b3340) + QObject (0x0x7fe2217b16c0) 0 + primary-for QWidget (0x0x7fe221ac0bd0) + QPaintDevice (0x0x7fe2217b1720) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 464) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7fe2217b1900) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7fe2217b1c60) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7fe2217b33a8) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16) + QObject (0x0x7fe2217b1c00) 0 + primary-for QScroller (0x0x7fe2217b33a8) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7fe2217b1f60) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=40 align=8 + base size=40 base align=8 +QSizeGrip (0x0x7fe2217b3410) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16) + QWidget (0x0x7fe2217f7f50) 0 + primary-for QSizeGrip (0x0x7fe2217b3410) + QObject (0x0x7fe2217b1ea0) 0 + primary-for QWidget (0x0x7fe2217f7f50) + QPaintDevice (0x0x7fe2217b1f00) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7fe22182a1e0) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QSpinBox::valueFromText +488 (int (*)(...))QSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI8QSpinBox) +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +520 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=40 align=8 + base size=40 base align=8 +QSpinBox (0x0x7fe2217b3478) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16) + QAbstractSpinBox (0x0x7fe2217b34e0) 0 + primary-for QSpinBox (0x0x7fe2217b3478) + QWidget (0x0x7fe2217f7930) 0 + primary-for QAbstractSpinBox (0x0x7fe2217b34e0) + QObject (0x0x7fe22182a120) 0 + primary-for QWidget (0x0x7fe2217f7930) + QPaintDevice (0x0x7fe22182a180) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 512) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7fe22182a420) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QDoubleSpinBox::valueFromText +488 (int (*)(...))QDoubleSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI14QDoubleSpinBox) +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +520 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=40 align=8 + base size=40 base align=8 +QDoubleSpinBox (0x0x7fe2217b3548) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16) + QAbstractSpinBox (0x0x7fe2217b35b0) 0 + primary-for QDoubleSpinBox (0x0x7fe2217b3548) + QWidget (0x0x7fe2217f7a10) 0 + primary-for QAbstractSpinBox (0x0x7fe2217b35b0) + QObject (0x0x7fe22182a360) 0 + primary-for QWidget (0x0x7fe2217f7a10) + QPaintDevice (0x0x7fe22182a3c0) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 512) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7fe22182a660) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=40 align=8 + base size=40 base align=8 +QSplashScreen (0x0x7fe2217b3618) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16) + QWidget (0x0x7fe221848000) 0 + primary-for QSplashScreen (0x0x7fe2217b3618) + QObject (0x0x7fe22182a5a0) 0 + primary-for QWidget (0x0x7fe221848000) + QPaintDevice (0x0x7fe22182a600) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7fe22182a8a0) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QSplitter::createHandle +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QSplitter) +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +472 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=40 align=8 + base size=40 base align=8 +QSplitter (0x0x7fe2217b3680) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16) + QFrame (0x0x7fe2217b36e8) 0 + primary-for QSplitter (0x0x7fe2217b3680) + QWidget (0x0x7fe221848070) 0 + primary-for QFrame (0x0x7fe2217b36e8) + QObject (0x0x7fe22182a7e0) 0 + primary-for QWidget (0x0x7fe221848070) + QPaintDevice (0x0x7fe22182a840) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 464) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7fe22182aae0) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=40 align=8 + base size=40 base align=8 +QSplitterHandle (0x0x7fe2217b3750) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16) + QWidget (0x0x7fe2218480e0) 0 + primary-for QSplitterHandle (0x0x7fe2217b3750) + QObject (0x0x7fe22182aa20) 0 + primary-for QWidget (0x0x7fe2218480e0) + QPaintDevice (0x0x7fe22182aa80) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7fe22182ad20) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QStackedLayout::addItem +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QStackedLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QStackedLayout::setGeometry +184 (int (*)(...))QStackedLayout::itemAt +192 (int (*)(...))QStackedLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QStackedLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QStackedLayout::sizeHint +264 (int (*)(...))QStackedLayout::hasHeightForWidth +272 (int (*)(...))QStackedLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI14QStackedLayout) +296 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +304 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +312 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +320 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +344 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +376 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7fe2217b37b8) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16) + QLayout (0x0x7fe221848150) 0 + primary-for QStackedLayout (0x0x7fe2217b37b8) + QObject (0x0x7fe22182ac60) 0 + primary-for QLayout (0x0x7fe221848150) + QLayoutItem (0x0x7fe22182acc0) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 296) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7fe22188b060) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI14QStackedWidget) +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +464 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=40 align=8 + base size=40 base align=8 +QStackedWidget (0x0x7fe2217b3820) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16) + QFrame (0x0x7fe2217b3888) 0 + primary-for QStackedWidget (0x0x7fe2217b3820) + QWidget (0x0x7fe2218482a0) 0 + primary-for QFrame (0x0x7fe2217b3888) + QObject (0x0x7fe22182af60) 0 + primary-for QWidget (0x0x7fe2218482a0) + QPaintDevice (0x0x7fe22188b000) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 456) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7fe22188b2a0) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=40 align=8 + base size=40 base align=8 +QStatusBar (0x0x7fe2217b38f0) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16) + QWidget (0x0x7fe221848310) 0 + primary-for QStatusBar (0x0x7fe2217b38f0) + QObject (0x0x7fe22188b1e0) 0 + primary-for QWidget (0x0x7fe221848310) + QPaintDevice (0x0x7fe22188b240) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7fe22188b480) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7fe2217b3958) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16) + QAbstractItemDelegate (0x0x7fe2217b39c0) 0 + primary-for QStyledItemDelegate (0x0x7fe2217b3958) + QObject (0x0x7fe22188b420) 0 + primary-for QAbstractItemDelegate (0x0x7fe2217b39c0) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7fe22188b600) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7fe2217b3a28) 0 + QPainter (0x0x7fe22188b660) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7fe22188bf00) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7fe2217b3a90) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16) + QObject (0x0x7fe22188bea0) 0 + primary-for QStylePlugin (0x0x7fe2217b3a90) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7fe2218cb060) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7fe2217b3af8) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16) + QObject (0x0x7fe2218cb000) 0 + primary-for QSystemTrayIcon (0x0x7fe2217b3af8) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7fe2218cb360) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableView::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI10QTableView) +800 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +808 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=40 align=8 + base size=40 base align=8 +QTableView (0x0x7fe2217b3b60) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16) + QAbstractItemView (0x0x7fe2217b3bc8) 0 + primary-for QTableView (0x0x7fe2217b3b60) + QAbstractScrollArea (0x0x7fe2217b3c30) 0 + primary-for QAbstractItemView (0x0x7fe2217b3bc8) + QFrame (0x0x7fe2217b3c98) 0 + primary-for QAbstractScrollArea (0x0x7fe2217b3c30) + QWidget (0x0x7fe221848850) 0 + primary-for QFrame (0x0x7fe2217b3c98) + QObject (0x0x7fe2218cb2a0) 0 + primary-for QWidget (0x0x7fe221848850) + QPaintDevice (0x0x7fe2218cb300) 16 + vptr=((& QTableView::_ZTV10QTableView) + 800) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7fe2218cb4e0) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=64 align=8 + base size=60 base align=8 +QTableWidgetItem (0x0x7fe2218cb900) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7fe221917c60) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableWidget::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))QTableWidget::mimeTypes +792 (int (*)(...))QTableWidget::mimeData +800 (int (*)(...))QTableWidget::dropMimeData +808 (int (*)(...))QTableWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI12QTableWidget) +832 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +840 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=40 align=8 + base size=40 base align=8 +QTableWidget (0x0x7fe2219145b0) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16) + QTableView (0x0x7fe221914618) 0 + primary-for QTableWidget (0x0x7fe2219145b0) + QAbstractItemView (0x0x7fe221914680) 0 + primary-for QTableView (0x0x7fe221914618) + QAbstractScrollArea (0x0x7fe2219146e8) 0 + primary-for QAbstractItemView (0x0x7fe221914680) + QFrame (0x0x7fe221914750) 0 + primary-for QAbstractScrollArea (0x0x7fe2219146e8) + QWidget (0x0x7fe221944b60) 0 + primary-for QFrame (0x0x7fe221914750) + QObject (0x0x7fe221917ba0) 0 + primary-for QWidget (0x0x7fe221944b60) + QPaintDevice (0x0x7fe221917c00) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 832) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7fe22159e000) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 79 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextBrowser::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))QTextBrowser::doSetSource +552 (int (*)(...))-16 +560 (int (*)(...))(& _ZTI12QTextBrowser) +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +576 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +624 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=40 align=8 + base size=40 base align=8 +QTextBrowser (0x0x7fe2219147b8) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16) + QTextEdit (0x0x7fe221914820) 0 + primary-for QTextBrowser (0x0x7fe2219147b8) + QAbstractScrollArea (0x0x7fe221914888) 0 + primary-for QTextEdit (0x0x7fe221914820) + QFrame (0x0x7fe2219148f0) 0 + primary-for QAbstractScrollArea (0x0x7fe221914888) + QWidget (0x0x7fe221848a80) 0 + primary-for QFrame (0x0x7fe2219148f0) + QObject (0x0x7fe221917f60) 0 + primary-for QWidget (0x0x7fe221848a80) + QPaintDevice (0x0x7fe221917180) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 568) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7fe22159e240) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QToolBar) +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +464 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=40 align=8 + base size=40 base align=8 +QToolBar (0x0x7fe221914958) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16) + QWidget (0x0x7fe221848af0) 0 + primary-for QToolBar (0x0x7fe221914958) + QObject (0x0x7fe22159e180) 0 + primary-for QWidget (0x0x7fe221848af0) + QPaintDevice (0x0x7fe22159e1e0) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 456) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7fe22159e6c0) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QToolBox::itemInserted +448 (int (*)(...))QToolBox::itemRemoved +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI8QToolBox) +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +480 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=40 align=8 + base size=40 base align=8 +QToolBox (0x0x7fe2219149c0) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16) + QFrame (0x0x7fe221914a28) 0 + primary-for QToolBox (0x0x7fe2219149c0) + QWidget (0x0x7fe221848b60) 0 + primary-for QFrame (0x0x7fe221914a28) + QObject (0x0x7fe22159e600) 0 + primary-for QWidget (0x0x7fe221848b60) + QPaintDevice (0x0x7fe22159e660) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 472) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7fe22159ea20) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))QToolButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QToolButton) +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +488 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=40 align=8 + base size=40 base align=8 +QToolButton (0x0x7fe221914a90) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16) + QAbstractButton (0x0x7fe221914af8) 0 + primary-for QToolButton (0x0x7fe221914a90) + QWidget (0x0x7fe221848bd0) 0 + primary-for QAbstractButton (0x0x7fe221914af8) + QObject (0x0x7fe22159e960) 0 + primary-for QWidget (0x0x7fe221848bd0) + QPaintDevice (0x0x7fe22159e9c0) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 480) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7fe22159ec60) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7fe22159ede0) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeView::setModel +480 (int (*)(...))QTreeView::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI9QTreeView) +816 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +824 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=40 align=8 + base size=40 base align=8 +QTreeView (0x0x7fe221914b60) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16) + QAbstractItemView (0x0x7fe221914bc8) 0 + primary-for QTreeView (0x0x7fe221914b60) + QAbstractScrollArea (0x0x7fe221914c30) 0 + primary-for QAbstractItemView (0x0x7fe221914bc8) + QFrame (0x0x7fe221914c98) 0 + primary-for QAbstractScrollArea (0x0x7fe221914c30) + QWidget (0x0x7fe221848d90) 0 + primary-for QFrame (0x0x7fe221914c98) + QObject (0x0x7fe22159ed20) 0 + primary-for QWidget (0x0x7fe221848d90) + QPaintDevice (0x0x7fe22159ed80) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 816) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7fe22159ef60) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=96 align=8 + base size=92 base align=8 +QTreeWidgetItem (0x0x7fe221617660) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7fe22132a480) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 114 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeWidget::setModel +480 (int (*)(...))QTreeWidget::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))QTreeWidget::mimeTypes +808 (int (*)(...))QTreeWidget::mimeData +816 (int (*)(...))QTreeWidget::dropMimeData +824 (int (*)(...))QTreeWidget::supportedDropActions +832 (int (*)(...))-16 +840 (int (*)(...))(& _ZTI11QTreeWidget) +848 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +856 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +896 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +904 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=40 align=8 + base size=40 base align=8 +QTreeWidget (0x0x7fe2216706e8) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16) + QTreeView (0x0x7fe221670f70) 0 + primary-for QTreeWidget (0x0x7fe2216706e8) + QAbstractItemView (0x0x7fe221332000) 0 + primary-for QTreeView (0x0x7fe221670f70) + QAbstractScrollArea (0x0x7fe221332068) 0 + primary-for QAbstractItemView (0x0x7fe221332000) + QFrame (0x0x7fe2213320d0) 0 + primary-for QAbstractScrollArea (0x0x7fe221332068) + QWidget (0x0x7fe221612b60) 0 + primary-for QFrame (0x0x7fe2213320d0) + QObject (0x0x7fe22132a3c0) 0 + primary-for QWidget (0x0x7fe221612b60) + QPaintDevice (0x0x7fe22132a420) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 848) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7fe22132a8a0) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QUndoView) +800 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +808 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=40 align=8 + base size=40 base align=8 +QUndoView (0x0x7fe221332138) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16) + QListView (0x0x7fe2213321a0) 0 + primary-for QUndoView (0x0x7fe221332138) + QAbstractItemView (0x0x7fe221332208) 0 + primary-for QListView (0x0x7fe2213321a0) + QAbstractScrollArea (0x0x7fe221332270) 0 + primary-for QAbstractItemView (0x0x7fe221332208) + QFrame (0x0x7fe2213322d8) 0 + primary-for QAbstractScrollArea (0x0x7fe221332270) + QWidget (0x0x7fe221612bd0) 0 + primary-for QFrame (0x0x7fe2213322d8) + QObject (0x0x7fe22132a7e0) 0 + primary-for QWidget (0x0x7fe221612bd0) + QPaintDevice (0x0x7fe22132a840) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 800) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7fe22132aa20) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7fe22132aae0) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7fe221332340) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16) + QAction (0x0x7fe2213323a8) 0 + primary-for QWidgetAction (0x0x7fe221332340) + QObject (0x0x7fe22132aa80) 0 + primary-for QAction (0x0x7fe2213323a8) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7fe22132ad20) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=40 align=8 + base size=40 base align=8 +QWizard (0x0x7fe221332410) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16) + QDialog (0x0x7fe221332478) 0 + primary-for QWizard (0x0x7fe221332410) + QWidget (0x0x7fe221612c40) 0 + primary-for QDialog (0x0x7fe221332478) + QObject (0x0x7fe22132ac60) 0 + primary-for QWidget (0x0x7fe221612c40) + QPaintDevice (0x0x7fe22132acc0) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7fe2213924e0) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=40 align=8 + base size=40 base align=8 +QWizardPage (0x0x7fe221332618) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16) + QWidget (0x0x7fe221374e00) 0 + primary-for QWizardPage (0x0x7fe221332618) + QObject (0x0x7fe221392420) 0 + primary-for QWidget (0x0x7fe221374e00) + QPaintDevice (0x0x7fe221392480) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488) + +Class QOpenGLBuffer + size=8 align=8 + base size=8 base align=8 +QOpenGLBuffer (0x0x7fe221392660) 0 + +Class QOpenGLDebugMessage + size=8 align=8 + base size=8 base align=8 +QOpenGLDebugMessage (0x0x7fe221392ae0) 0 + +Class QOpenGLDebugLogger::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLDebugLogger::QPrivateSignal (0x0x7fe22149fae0) 0 empty + +Vtable for QOpenGLDebugLogger +QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLDebugLogger) +16 (int (*)(...))QOpenGLDebugLogger::metaObject +24 (int (*)(...))QOpenGLDebugLogger::qt_metacast +32 (int (*)(...))QOpenGLDebugLogger::qt_metacall +40 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +48 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLDebugLogger + size=16 align=8 + base size=16 base align=8 +QOpenGLDebugLogger (0x0x7fe221495b60) 0 + vptr=((& QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger) + 16) + QObject (0x0x7fe22149fa80) 0 + primary-for QOpenGLDebugLogger (0x0x7fe221495b60) + +Vtable for QOpenGLFramebufferObject +QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLFramebufferObject) +16 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject +24 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject + +Class QOpenGLFramebufferObject + size=16 align=8 + base size=16 base align=8 +QOpenGLFramebufferObject (0x0x7fe22149fe40) 0 + vptr=((& QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject) + 16) + +Class QOpenGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QOpenGLFramebufferObjectFormat (0x0x7fe22117b120) 0 + +Vtable for QOpenGLPaintDevice +QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLPaintDevice) +16 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +24 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +32 (int (*)(...))QOpenGLPaintDevice::devType +40 (int (*)(...))QOpenGLPaintDevice::paintEngine +48 (int (*)(...))QOpenGLPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QOpenGLPaintDevice::ensureActiveTarget + +Class QOpenGLPaintDevice + size=24 align=8 + base size=24 base align=8 +QOpenGLPaintDevice (0x0x7fe221495bc8) 0 + vptr=((& QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice) + 16) + QPaintDevice (0x0x7fe22117b180) 0 + primary-for QOpenGLPaintDevice (0x0x7fe221495bc8) + +Class QOpenGLPixelTransferOptions + size=8 align=8 + base size=8 base align=8 +QOpenGLPixelTransferOptions (0x0x7fe22117b3c0) 0 + +Class QOpenGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShader::QPrivateSignal (0x0x7fe2211cca80) 0 empty + +Vtable for QOpenGLShader +QOpenGLShader::_ZTV13QOpenGLShader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLShader) +16 (int (*)(...))QOpenGLShader::metaObject +24 (int (*)(...))QOpenGLShader::qt_metacast +32 (int (*)(...))QOpenGLShader::qt_metacall +40 (int (*)(...))QOpenGLShader::~QOpenGLShader +48 (int (*)(...))QOpenGLShader::~QOpenGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLShader + size=16 align=8 + base size=16 base align=8 +QOpenGLShader (0x0x7fe2211db5b0) 0 + vptr=((& QOpenGLShader::_ZTV13QOpenGLShader) + 16) + QObject (0x0x7fe2211cca20) 0 + primary-for QOpenGLShader (0x0x7fe2211db5b0) + +Class QOpenGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShaderProgram::QPrivateSignal (0x0x7fe2211ccf60) 0 empty + +Vtable for QOpenGLShaderProgram +QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QOpenGLShaderProgram) +16 (int (*)(...))QOpenGLShaderProgram::metaObject +24 (int (*)(...))QOpenGLShaderProgram::qt_metacast +32 (int (*)(...))QOpenGLShaderProgram::qt_metacall +40 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +48 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOpenGLShaderProgram::link + +Class QOpenGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QOpenGLShaderProgram (0x0x7fe2211db750) 0 + vptr=((& QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram) + 16) + QObject (0x0x7fe2211ccf00) 0 + primary-for QOpenGLShaderProgram (0x0x7fe2211db750) + +Class QOpenGLTexture + size=8 align=8 + base size=8 base align=8 +QOpenGLTexture (0x0x7fe221270120) 0 + +Class QOpenGLTextureBlitter + size=8 align=8 + base size=8 base align=8 +QOpenGLTextureBlitter (0x0x7fe2212e5240) 0 + +Class QOpenGLTimerQuery::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimerQuery::QPrivateSignal (0x0x7fe2212e5480) 0 empty + +Vtable for QOpenGLTimerQuery +QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOpenGLTimerQuery) +16 (int (*)(...))QOpenGLTimerQuery::metaObject +24 (int (*)(...))QOpenGLTimerQuery::qt_metacast +32 (int (*)(...))QOpenGLTimerQuery::qt_metacall +40 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +48 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimerQuery + size=16 align=8 + base size=16 base align=8 +QOpenGLTimerQuery (0x0x7fe2211db8f0) 0 + vptr=((& QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery) + 16) + QObject (0x0x7fe2212e5420) 0 + primary-for QOpenGLTimerQuery (0x0x7fe2211db8f0) + +Class QOpenGLTimeMonitor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimeMonitor::QPrivateSignal (0x0x7fe2212e5660) 0 empty + +Vtable for QOpenGLTimeMonitor +QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLTimeMonitor) +16 (int (*)(...))QOpenGLTimeMonitor::metaObject +24 (int (*)(...))QOpenGLTimeMonitor::qt_metacast +32 (int (*)(...))QOpenGLTimeMonitor::qt_metacall +40 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +48 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimeMonitor + size=16 align=8 + base size=16 base align=8 +QOpenGLTimeMonitor (0x0x7fe2211db958) 0 + vptr=((& QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor) + 16) + QObject (0x0x7fe2212e5600) 0 + primary-for QOpenGLTimeMonitor (0x0x7fe2211db958) + +Class QOpenGLVersionStatus + size=12 align=4 + base size=12 base align=4 +QOpenGLVersionStatus (0x0x7fe2212e57e0) 0 + +Class QOpenGLVersionFunctionsBackend + size=16 align=8 + base size=12 base align=8 +QOpenGLVersionFunctionsBackend (0x0x7fe220ff9840) 0 + +Class QOpenGLVersionFunctionsStorage + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionFunctionsStorage (0x0x7fe220ff9a20) 0 + +Class QAbstractOpenGLFunctionsPrivate + size=16 align=8 + base size=9 base align=8 +QAbstractOpenGLFunctionsPrivate (0x0x7fe220ff9a80) 0 + +Vtable for QAbstractOpenGLFunctions +QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractOpenGLFunctions) +16 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +24 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +32 (int (*)(...))QAbstractOpenGLFunctions::initializeOpenGLFunctions + +Class QAbstractOpenGLFunctions + size=16 align=8 + base size=16 base align=8 +QAbstractOpenGLFunctions (0x0x7fe220ff9c60) 0 + vptr=((& QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions) + 16) + +Class QOpenGLFunctions_1_0_CoreBackend::Functions + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_1_0_CoreBackend::Functions (0x0x7fe220ff9e40) 0 + +Class QOpenGLFunctions_1_0_CoreBackend + size=400 align=8 + base size=400 base align=8 +QOpenGLFunctions_1_0_CoreBackend (0x0x7fe220ff4208) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe220ff9de0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend::Functions + size=128 align=8 + base size=128 base align=8 +QOpenGLFunctions_1_1_CoreBackend::Functions (0x0x7fe2210381e0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend + size=144 align=8 + base size=144 base align=8 +QOpenGLFunctions_1_1_CoreBackend (0x0x7fe220ff4270) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe221038180) 0 + +Class QOpenGLFunctions_1_2_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_1_2_CoreBackend::Functions (0x0x7fe221038540) 0 + +Class QOpenGLFunctions_1_2_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_1_2_CoreBackend (0x0x7fe220ff42d8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe2210384e0) 0 + +Class QOpenGLFunctions_1_3_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_3_CoreBackend::Functions (0x0x7fe2210388a0) 0 + +Class QOpenGLFunctions_1_3_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_1_3_CoreBackend (0x0x7fe220ff4340) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe221038840) 0 + +Class QOpenGLFunctions_1_4_CoreBackend::Functions + size=56 align=8 + base size=56 base align=8 +QOpenGLFunctions_1_4_CoreBackend::Functions (0x0x7fe221038c00) 0 + +Class QOpenGLFunctions_1_4_CoreBackend + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_4_CoreBackend (0x0x7fe220ff43a8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe221038ba0) 0 + +Class QOpenGLFunctions_1_5_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_5_CoreBackend::Functions (0x0x7fe221038f60) 0 + +Class QOpenGLFunctions_1_5_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_1_5_CoreBackend (0x0x7fe220ff4410) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe221038f00) 0 + +Class QOpenGLFunctions_2_0_CoreBackend::Functions + size=744 align=8 + base size=744 base align=8 +QOpenGLFunctions_2_0_CoreBackend::Functions (0x0x7fe221061300) 0 + +Class QOpenGLFunctions_2_0_CoreBackend + size=760 align=8 + base size=760 base align=8 +QOpenGLFunctions_2_0_CoreBackend (0x0x7fe220ff4478) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe2210612a0) 0 + +Class QOpenGLFunctions_2_1_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_2_1_CoreBackend::Functions (0x0x7fe221061660) 0 + +Class QOpenGLFunctions_2_1_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_2_1_CoreBackend (0x0x7fe220ff44e0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe221061600) 0 + +Class QOpenGLFunctions_3_0_CoreBackend::Functions + size=672 align=8 + base size=672 base align=8 +QOpenGLFunctions_3_0_CoreBackend::Functions (0x0x7fe2210619c0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend + size=688 align=8 + base size=688 base align=8 +QOpenGLFunctions_3_0_CoreBackend (0x0x7fe220ff4548) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe221061960) 0 + +Class QOpenGLFunctions_3_1_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_3_1_CoreBackend::Functions (0x0x7fe221061d20) 0 + +Class QOpenGLFunctions_3_1_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_3_1_CoreBackend (0x0x7fe220ff45b0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe221061cc0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_3_2_CoreBackend::Functions (0x0x7fe2210ab0c0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_3_2_CoreBackend (0x0x7fe220ff4618) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe2210ab060) 0 + +Class QOpenGLFunctions_3_3_CoreBackend::Functions + size=464 align=8 + base size=464 base align=8 +QOpenGLFunctions_3_3_CoreBackend::Functions (0x0x7fe2210ab420) 0 + +Class QOpenGLFunctions_3_3_CoreBackend + size=480 align=8 + base size=480 base align=8 +QOpenGLFunctions_3_3_CoreBackend (0x0x7fe220ff4680) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe2210ab3c0) 0 + +Class QOpenGLFunctions_4_0_CoreBackend::Functions + size=368 align=8 + base size=368 base align=8 +QOpenGLFunctions_4_0_CoreBackend::Functions (0x0x7fe2210ab780) 0 + +Class QOpenGLFunctions_4_0_CoreBackend + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_4_0_CoreBackend (0x0x7fe220ff46e8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe2210ab720) 0 + +Class QOpenGLFunctions_4_1_CoreBackend::Functions + size=704 align=8 + base size=704 base align=8 +QOpenGLFunctions_4_1_CoreBackend::Functions (0x0x7fe2210abae0) 0 + +Class QOpenGLFunctions_4_1_CoreBackend + size=720 align=8 + base size=720 base align=8 +QOpenGLFunctions_4_1_CoreBackend (0x0x7fe220ff4750) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe2210aba80) 0 + +Class QOpenGLFunctions_4_2_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_2_CoreBackend::Functions (0x0x7fe2210abe40) 0 + +Class QOpenGLFunctions_4_2_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_2_CoreBackend (0x0x7fe220ff47b8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe2210abde0) 0 + +Class QOpenGLFunctions_4_3_CoreBackend::Functions + size=344 align=8 + base size=344 base align=8 +QOpenGLFunctions_4_3_CoreBackend::Functions (0x0x7fe2211031e0) 0 + +Class QOpenGLFunctions_4_3_CoreBackend + size=360 align=8 + base size=360 base align=8 +QOpenGLFunctions_4_3_CoreBackend (0x0x7fe220ff4820) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe221103180) 0 + +Class QOpenGLFunctions_4_4_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_4_4_CoreBackend::Functions (0x0x7fe221103540) 0 + +Class QOpenGLFunctions_4_4_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_4_4_CoreBackend (0x0x7fe220ff4888) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe2211034e0) 0 + +Class QOpenGLFunctions_4_5_CoreBackend::Functions + size=848 align=8 + base size=848 base align=8 +QOpenGLFunctions_4_5_CoreBackend::Functions (0x0x7fe2211038a0) 0 + +Class QOpenGLFunctions_4_5_CoreBackend + size=864 align=8 + base size=864 base align=8 +QOpenGLFunctions_4_5_CoreBackend (0x0x7fe220ff48f0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe221103840) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend::Functions + size=2064 align=8 + base size=2064 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend::Functions (0x0x7fe221103c00) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend + size=2080 align=8 + base size=2080 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend (0x0x7fe220ff4958) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe221103ba0) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend::Functions + size=136 align=8 + base size=136 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend::Functions (0x0x7fe221103f60) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend (0x0x7fe220ff49c0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe221103f00) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend::Functions + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend::Functions (0x0x7fe220d8c300) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend + size=272 align=8 + base size=272 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend (0x0x7fe220ff4a28) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe220d8c2a0) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend::Functions + size=296 align=8 + base size=296 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend::Functions (0x0x7fe220d8c660) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend + size=312 align=8 + base size=312 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend (0x0x7fe220ff4a90) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe220d8c600) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend::Functions + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend::Functions (0x0x7fe220d8c9c0) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend + size=320 align=8 + base size=320 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend (0x0x7fe220ff4af8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe220d8c960) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend::Functions + size=288 align=8 + base size=288 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend::Functions (0x0x7fe220d8cd20) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend (0x0x7fe220ff4b60) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe220d8ccc0) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend::Functions + size=160 align=8 + base size=160 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend::Functions (0x0x7fe220dc60c0) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend + size=176 align=8 + base size=176 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend (0x0x7fe220ff4bc8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe220dc6060) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend::Functions + size=240 align=8 + base size=240 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend::Functions (0x0x7fe220dc6420) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend (0x0x7fe220ff4c30) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe220dc63c0) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend::Functions (0x0x7fe220dc6780) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend (0x0x7fe220ff4c98) 0 + QOpenGLVersionFunctionsBackend (0x0x7fe220dc6720) 0 + +Class QOpenGLVersionProfile + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionProfile (0x0x7fe220dc6a80) 0 + +Class QOpenGLVersionFunctionsFactory + size=1 align=1 + base size=0 base align=1 +QOpenGLVersionFunctionsFactory (0x0x7fe220dc6c00) 0 empty + +Class QOpenGLVertexArrayObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLVertexArrayObject::QPrivateSignal (0x0x7fe220dc6d20) 0 empty + +Class QOpenGLVertexArrayObject::Binder + size=8 align=8 + base size=8 base align=8 +QOpenGLVertexArrayObject::Binder (0x0x7fe220dc6d80) 0 + +Vtable for QOpenGLVertexArrayObject +QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLVertexArrayObject) +16 (int (*)(...))QOpenGLVertexArrayObject::metaObject +24 (int (*)(...))QOpenGLVertexArrayObject::qt_metacast +32 (int (*)(...))QOpenGLVertexArrayObject::qt_metacall +40 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +48 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLVertexArrayObject + size=16 align=8 + base size=16 base align=8 +QOpenGLVertexArrayObject (0x0x7fe220ff4d00) 0 + vptr=((& QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject) + 16) + QObject (0x0x7fe220dc6cc0) 0 + primary-for QOpenGLVertexArrayObject (0x0x7fe220ff4d00) + +Class QOpenGLWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWindow::QPrivateSignal (0x0x7fe220e05420) 0 empty + +Vtable for QOpenGLWindow +QOpenGLWindow::_ZTV13QOpenGLWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWindow) +16 (int (*)(...))QOpenGLWindow::metaObject +24 (int (*)(...))QOpenGLWindow::qt_metacast +32 (int (*)(...))QOpenGLWindow::qt_metacall +40 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +48 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QOpenGLWindow::resizeEvent +168 (int (*)(...))QOpenGLWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QOpenGLWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QOpenGLWindow::initializeGL +336 (int (*)(...))QOpenGLWindow::resizeGL +344 (int (*)(...))QOpenGLWindow::paintGL +352 (int (*)(...))QOpenGLWindow::paintUnderGL +360 (int (*)(...))QOpenGLWindow::paintOverGL +368 (int (*)(...))QOpenGLWindow::redirected +376 (int (*)(...))-16 +384 (int (*)(...))(& _ZTI13QOpenGLWindow) +392 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD1Ev +400 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD0Ev +408 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +416 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +424 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +432 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +440 (int (*)(...))-40 +448 (int (*)(...))(& _ZTI13QOpenGLWindow) +456 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD1Ev +464 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD0Ev +472 (int (*)(...))QPaintDevice::devType +480 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +488 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QPaintDevice::initPainter +504 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow10redirectedEP6QPoint +512 (int (*)(...))QPaintDevice::sharedPainter + +Class QOpenGLWindow + size=56 align=8 + base size=50 base align=8 +QOpenGLWindow (0x0x7fe220ff4dd0) 0 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 16) + QPaintDeviceWindow (0x0x7fe221015460) 0 + primary-for QOpenGLWindow (0x0x7fe220ff4dd0) + QWindow (0x0x7fe2210154d0) 0 + primary-for QPaintDeviceWindow (0x0x7fe221015460) + QObject (0x0x7fe220e05300) 0 + primary-for QWindow (0x0x7fe2210154d0) + QSurface (0x0x7fe220e05360) 16 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 392) + QPaintDevice (0x0x7fe220e053c0) 40 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 456) + +Class QOpenGLWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWidget::QPrivateSignal (0x0x7fe220e05660) 0 empty + +Vtable for QOpenGLWidget +QOpenGLWidget::_ZTV13QOpenGLWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWidget) +16 (int (*)(...))QOpenGLWidget::metaObject +24 (int (*)(...))QOpenGLWidget::qt_metacast +32 (int (*)(...))QOpenGLWidget::qt_metacall +40 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +48 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +56 (int (*)(...))QOpenGLWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QOpenGLWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QOpenGLWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QOpenGLWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QOpenGLWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QOpenGLWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QOpenGLWidget::initializeGL +440 (int (*)(...))QOpenGLWidget::resizeGL +448 (int (*)(...))QOpenGLWidget::paintGL +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI13QOpenGLWidget) +472 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD1Ev +480 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget11paintEngineEv +504 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QOpenGLWidget + size=40 align=8 + base size=40 base align=8 +QOpenGLWidget (0x0x7fe220ff4ea0) 0 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 16) + QWidget (0x0x7fe221015690) 0 + primary-for QOpenGLWidget (0x0x7fe220ff4ea0) + QObject (0x0x7fe220e055a0) 0 + primary-for QWidget (0x0x7fe221015690) + QPaintDevice (0x0x7fe220e05600) 16 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 472) + +Class QUiLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUiLoader::QPrivateSignal (0x0x7fe220e05840) 0 empty + +Vtable for QUiLoader +QUiLoader::_ZTV9QUiLoader: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUiLoader) +16 (int (*)(...))QUiLoader::metaObject +24 (int (*)(...))QUiLoader::qt_metacast +32 (int (*)(...))QUiLoader::qt_metacall +40 (int (*)(...))QUiLoader::~QUiLoader +48 (int (*)(...))QUiLoader::~QUiLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QUiLoader::createWidget +120 (int (*)(...))QUiLoader::createLayout +128 (int (*)(...))QUiLoader::createActionGroup +136 (int (*)(...))QUiLoader::createAction + +Class QUiLoader + size=24 align=8 + base size=24 base align=8 +QUiLoader (0x0x7fe220ff4f70) 0 + vptr=((& QUiLoader::_ZTV9QUiLoader) + 16) + QObject (0x0x7fe220e057e0) 0 + primary-for QUiLoader (0x0x7fe220ff4f70) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220e57e40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220e701e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220e703c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220e70720) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220e70900) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220e70c60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220e70de0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220ea4120) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220ea4300) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220ea4660) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220ea4840) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220ea4ba0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220ea4d80) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220ed2120) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220ed2300) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220ed2660) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220efdf00) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220f232a0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220f23420) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220f23780) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220f23900) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220f23c60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220f23de0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220b4d180) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220b4d300) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220b4d660) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220b4d7e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220b4db40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220b4dcc0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220b79060) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fe220b791e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fe220b79540) 0 empty + diff --git a/tests/auto/bic/data/QtUiTools.6.2.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtUiTools.6.2.0.linux-gcc-amd64.txt new file mode 100644 index 0000000..52a154b --- /dev/null +++ b/tests/auto/bic/data/QtUiTools.6.2.0.linux-gcc-amd64.txt @@ -0,0 +1,20214 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f0b4ed18c60) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f0b4ee1b480) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f0b4ee1b6c0) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7f0b4ee4d7e0) 0 empty + +Class std::__make_unsigned_selector_base + size=1 align=1 + base size=0 base align=1 +std::__make_unsigned_selector_base (0x0x7f0b4eaa4000) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f0b4eaf2de0) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f0b4eaf2ea0) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7f0b4eb273c0) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7f0b4eb27420) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7f0b4eb27480) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7f0b4eb274e0) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7f0b4eb27540) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f0b4eb27600) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f0b4eb276c0) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f0b4eb27780) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f0b4eb27840) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f0b4eb27ba0) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7f0b4eb27f00) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7f0b4eb27f60) 0 empty + +Class std::__swappable_with_details::__do_is_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_swappable_with_impl (0x0x7f0b4eb72240) 0 empty + +Class std::__swappable_with_details::__do_is_nothrow_swappable_with_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_with_details::__do_is_nothrow_swappable_with_impl (0x0x7f0b4eb722a0) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7f0b4eb72ae0) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f0b4ebee0c0) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7f0b4eb67e38) 0 empty + std::__nonesuch (0x0x7f0b4ebee5a0) 0 empty + +Class std::in_place_t + size=1 align=1 + base size=0 base align=1 +std::in_place_t (0x0x7f0b4e072300) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f0b4e072600) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f0b4e072660) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f0b4e0d33c0) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f0b4e0d3420) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f0b4ec503a8) 0 empty + std::input_iterator_tag (0x0x7f0b4e0d3480) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f0b4ec50410) 0 empty + std::forward_iterator_tag (0x0x7f0b4ec50478) 0 empty + std::input_iterator_tag (0x0x7f0b4e0d34e0) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f0b4ec504e0) 0 empty + std::bidirectional_iterator_tag (0x0x7f0b4ec50548) 0 empty + std::forward_iterator_tag (0x0x7f0b4ec505b0) 0 empty + std::input_iterator_tag (0x0x7f0b4e0d3540) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f0b4e18c240) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f0b4e18c360) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f0b4e18c660) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f0b4e18c960) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f0b4e18ca80) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f0b4e24d2a0) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f0b4e24d5a0) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f0b4e24d600) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f0b4e24d6c0) 0 + +Class __pthread_internal_slist + size=8 align=8 + base size=8 base align=8 +__pthread_internal_slist (0x0x7f0b4e24d720) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7f0b4e24d780) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7f0b4e24d7e0) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7f0b4e24d840) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f0b4e24dae0) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f0b4e24dd80) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f0b4e24dde0) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f0b4dea1ba0) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f0b4ec50958) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7f0b4dea1d80) 0 nearly-empty + primary-for std::bad_exception (0x0x7f0b4ec50958) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f0b4dea1f60) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f0b4ec509c0) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7f0b4df4b360) 0 nearly-empty + primary-for std::bad_cast (0x0x7f0b4ec509c0) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f0b4ec50a28) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7f0b4df4b540) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f0b4ec50a28) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f0b4df4b720) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f0b4df4bc60) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f0b4ec50a90) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7f0b4df7a360) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f0b4ec50a90) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f0b4ec50af8) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7f0b4ec50b60) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f0b4ec50af8) + std::exception (0x0x7f0b4df7a540) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f0b4ec50b60) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f0b4df7a720) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7f0b4df7a960) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f0b4e02c120) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f0b4dc1b4e0) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f0b4dc1b5a0) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f0b4d87e480) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f0b4d87e540) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f0b4d87e5a0) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f0b4d87e600) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f0b4d87e660) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f0b4d87e780) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f0b4d87e7e0) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f0b4d913e40) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f0b4d935000) 0 empty + +Class _G_fpos_t + size=16 align=8 + base size=16 base align=8 +_G_fpos_t (0x0x7f0b4d729e40) 0 + +Class _G_fpos64_t + size=16 align=8 + base size=16 base align=8 +_G_fpos64_t (0x0x7f0b4d729ea0) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f0b4d729f00) 0 + +Class _IO_cookie_io_functions_t + size=32 align=8 + base size=32 base align=8 +_IO_cookie_io_functions_t (0x0x7f0b4d729f60) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f0b4d387720) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f0b4d31eaf8) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7f0b4d3877e0) 0 nearly-empty + primary-for std::logic_error (0x0x7f0b4d31eaf8) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f0b4d31eb60) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7f0b4d31ebc8) 0 + primary-for std::domain_error (0x0x7f0b4d31eb60) + std::exception (0x0x7f0b4d387840) 0 nearly-empty + primary-for std::logic_error (0x0x7f0b4d31ebc8) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f0b4d31ec30) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7f0b4d31ec98) 0 + primary-for std::invalid_argument (0x0x7f0b4d31ec30) + std::exception (0x0x7f0b4d3878a0) 0 nearly-empty + primary-for std::logic_error (0x0x7f0b4d31ec98) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f0b4d31ed00) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7f0b4d31ed68) 0 + primary-for std::length_error (0x0x7f0b4d31ed00) + std::exception (0x0x7f0b4d387900) 0 nearly-empty + primary-for std::logic_error (0x0x7f0b4d31ed68) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f0b4d31edd0) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7f0b4d31ee38) 0 + primary-for std::out_of_range (0x0x7f0b4d31edd0) + std::exception (0x0x7f0b4d387960) 0 nearly-empty + primary-for std::logic_error (0x0x7f0b4d31ee38) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f0b4d31eea0) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7f0b4d3879c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f0b4d31eea0) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f0b4d31ef08) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7f0b4d31ef70) 0 + primary-for std::range_error (0x0x7f0b4d31ef08) + std::exception (0x0x7f0b4d387a20) 0 nearly-empty + primary-for std::runtime_error (0x0x7f0b4d31ef70) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f0b4d3da000) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7f0b4d3da068) 0 + primary-for std::overflow_error (0x0x7f0b4d3da000) + std::exception (0x0x7f0b4d387a80) 0 nearly-empty + primary-for std::runtime_error (0x0x7f0b4d3da068) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f0b4d3da0d0) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7f0b4d3da138) 0 + primary-for std::underflow_error (0x0x7f0b4d3da0d0) + std::exception (0x0x7f0b4d387ae0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f0b4d3da138) + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7f0b4d3fbde0) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f0b4d3fbe40) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f0b4d421000) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f0b4d4210c0) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f0b4d3da3a8) 0 + std::__uses_alloc_base (0x0x7f0b4d421060) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f0b4d1906c0) 0 empty + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f0b4d2247b8) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7f0b4d230d80) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f0b4d2247b8) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f0b4d230e40) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f0b4d230ea0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f0b4ce611e0) 0 + +Class std::__detail::_Identity + size=1 align=1 + base size=0 base align=1 +std::__detail::_Identity (0x0x7f0b4cf36060) 0 empty + +Class std::__detail::_Select1st + size=1 align=1 + base size=0 base align=1 +std::__detail::_Select1st (0x0x7f0b4cf36120) 0 empty + +Class std::__detail::_Hash_node_base + size=8 align=8 + base size=8 base align=8 +std::__detail::_Hash_node_base (0x0x7f0b4cf36600) 0 + +Class std::__detail::_Mod_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mod_range_hashing (0x0x7f0b4cf61480) 0 empty + +Class std::__detail::_Default_ranged_hash + size=1 align=1 + base size=0 base align=1 +std::__detail::_Default_ranged_hash (0x0x7f0b4cf61540) 0 empty + +Class std::__detail::_Prime_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Prime_rehash_policy (0x0x7f0b4cf615a0) 0 + +Class std::__detail::_Mask_range_hashing + size=1 align=1 + base size=0 base align=1 +std::__detail::_Mask_range_hashing (0x0x7f0b4cf61960) 0 empty + +Class std::__detail::_Power2_rehash_policy + size=16 align=8 + base size=16 base align=8 +std::__detail::_Power2_rehash_policy (0x0x7f0b4cf61a80) 0 + +Class std::__detail::_Equality_base + size=1 align=1 + base size=0 base align=1 +std::__detail::_Equality_base (0x0x7f0b4cd3eb40) 0 empty + +Class std::_Enable_default_constructor_tag + size=1 align=1 + base size=0 base align=1 +std::_Enable_default_constructor_tag (0x0x7f0b4cd78420) 0 empty + +Class std::nullopt_t + size=1 align=1 + base size=0 base align=1 +std::nullopt_t (0x0x7f0b4cd78de0) 0 empty + +Vtable for std::bad_optional_access +std::bad_optional_access::_ZTVSt19bad_optional_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt19bad_optional_access) +16 (int (*)(...))std::bad_optional_access::~bad_optional_access +24 (int (*)(...))std::bad_optional_access::~bad_optional_access +32 (int (*)(...))std::bad_optional_access::what + +Class std::bad_optional_access + size=8 align=8 + base size=8 base align=8 +std::bad_optional_access (0x0x7f0b4cd706e8) 0 nearly-empty + vptr=((& std::bad_optional_access::_ZTVSt19bad_optional_access) + 16) + std::exception (0x0x7f0b4cdc2060) 0 nearly-empty + primary-for std::bad_optional_access (0x0x7f0b4cd706e8) + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f0b4c45e9c0) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f0b4c750208) 0 + std::iterator (0x0x7f0b4c483180) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f0b4c7502d8) 0 + std::_Bit_iterator_base (0x0x7f0b4c750340) 0 + std::iterator (0x0x7f0b4c483720) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f0b4c750410) 0 + std::_Bit_iterator_base (0x0x7f0b4c750478) 0 + std::iterator (0x0x7f0b4c483f00) 0 empty + +Class __pstl::execution::v1::sequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::sequenced_policy (0x0x7f0b4c297420) 0 empty + +Class __pstl::execution::v1::parallel_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_policy (0x0x7f0b4c2975a0) 0 empty + +Class __pstl::execution::v1::parallel_unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::parallel_unsequenced_policy (0x0x7f0b4c297720) 0 empty + +Class __pstl::execution::v1::unsequenced_policy + size=1 align=1 + base size=0 base align=1 +__pstl::execution::v1::unsequenced_policy (0x0x7f0b4c2978a0) 0 empty + +Class std::__detail::__variant::__variant_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_cookie (0x0x7f0b4c3d1420) 0 empty + +Class std::__detail::__variant::__variant_idx_cookie + size=1 align=1 + base size=0 base align=1 +std::__detail::__variant::__variant_idx_cookie (0x0x7f0b4c3d1480) 0 empty + +Class std::monostate + size=1 align=1 + base size=0 base align=1 +std::monostate (0x0x7f0b4c05cf00) 0 empty + +Vtable for std::bad_variant_access +std::bad_variant_access::_ZTVSt18bad_variant_access: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt18bad_variant_access) +16 (int (*)(...))std::bad_variant_access::~bad_variant_access +24 (int (*)(...))std::bad_variant_access::~bad_variant_access +32 (int (*)(...))std::bad_variant_access::what + +Class std::bad_variant_access + size=16 align=8 + base size=16 base align=8 +std::bad_variant_access (0x0x7f0b4c3d7820) 0 + vptr=((& std::bad_variant_access::_ZTVSt18bad_variant_access) + 16) + std::exception (0x0x7f0b4c0c8480) 0 nearly-empty + primary-for std::bad_variant_access (0x0x7f0b4c3d7820) + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f0b4c150ea0) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f0b4c150f00) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f0b4c19e1e0) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f0b4c19ea20) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f0b4c1e3ae0) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f0b4be79d80) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f0b4c218af8) 0 + std::__atomic_flag_base (0x0x7f0b4be79de0) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f0b4bcf6dd0) 0 + QAtomicInteger (0x0x7f0b4bcf6e38) 0 + QBasicAtomicInteger (0x0x7f0b4bdfbd20) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f0b4b2a2000) 0 empty + +Class QKeyCombination + size=4 align=4 + base size=4 base align=4 +QKeyCombination (0x0x7f0b4b2a2060) 0 + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f0b4b362360) 0 + +Class QMethodRawArguments + size=8 align=8 + base size=8 base align=8 +QMethodRawArguments (0x0x7f0b4b362a80) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f0b4b362ae0) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f0b4b387270) 0 + QGenericArgument (0x0x7f0b4b362d80) 0 + +Class QMetaObject::SuperData + size=8 align=8 + base size=8 base align=8 +QMetaObject::SuperData (0x0x7f0b4b39a2a0) 0 + +Class QMetaObject::Data + size=56 align=8 + base size=56 base align=8 +QMetaObject::Data (0x0x7f0b4b39a300) 0 + +Class QMetaObject + size=56 align=8 + base size=56 base align=8 +QMetaObject (0x0x7f0b4b39a240) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f0b4b39ac60) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f0b4b4136c0) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f0b4b4390c0) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f0b4b0f5ba0) 0 + +Class QArrayData + size=16 align=8 + base size=16 base align=8 +QArrayData (0x0x7f0b4b0f5f00) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f0b4b1ac9c0) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f0b4b1acae0) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f0b4b1acea0) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f0b4b1f2180) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f0b4b1f2360) 0 + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f0b4b23d480) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f0b4b23d7e0) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f0b4ae7b000) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f0b4b215750) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7f0b4b2157b8) 0 + primary-for std::system_error (0x0x7f0b4b215750) + std::exception (0x0x7f0b4ae7bba0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f0b4b2157b8) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f0b4b215af8) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7f0b4b215b60) 0 + primary-for std::ios_base::failure (0x0x7f0b4b215af8) + std::runtime_error (0x0x7f0b4b215bc8) 0 + primary-for std::system_error (0x0x7f0b4b215b60) + std::exception (0x0x7f0b4aedb360) 0 nearly-empty + primary-for std::runtime_error (0x0x7f0b4b215bc8) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f0b4aedb3c0) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f0b4aedb420) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f0b4aedb480) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f0b4aedb300) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f0b4af920c0) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f0b4ac683c0) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f0b4abb8750 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f0b4abb8820 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7f0b4abb8d68 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f0b4abb8e38 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f0b4ac1c208) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7f0b4ac03d80) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f0b4ac1c208) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f0b4ac1c270) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7f0b4ac03ea0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f0b4ac1c270) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f0b4ac1c2d8) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7f0b4ac40000) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f0b4ac1c2d8) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f0b4ac1c3a8) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7f0b4ac40120) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f0b4ac1c3a8) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f0b4ac409c0) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f0b4ac40d20) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f0b4a869000) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f0b4a869360) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f0b4ac1c4e0) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7f0b4a8ecb40) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f0b4ac1c4e0) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f0b4a95f900) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7f0b4a95fe40) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f0b4a69ac60) 0 + +Class QByteArrayView + size=16 align=8 + base size=16 base align=8 +QByteArrayView (0x0x7f0b4a82c000) 0 + +Class QByteArray + size=24 align=8 + base size=24 base align=8 +QByteArray (0x0x7f0b4a51e120) 0 + +Class QByteArray::FromBase64Result + size=32 align=8 + base size=28 base align=8 +QByteArray::FromBase64Result (0x0x7f0b4a36a4e0) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f0b4a401480) 0 + +Class QChar::fromUcs4(char32_t)::R + size=4 align=2 + base size=4 base align=2 +QChar::fromUcs4(char32_t)::R (0x0x7f0b4a17a3c0) 0 + +Class QtPrivate::hide_char8_t + size=1 align=1 + base size=0 base align=1 +QtPrivate::hide_char8_t (0x0x7f0b4a17a7e0) 0 empty + +Class QtPrivate::wrap_char + size=1 align=1 + base size=0 base align=1 +QtPrivate::wrap_char (0x0x7f0b4a17a840) 0 empty + +Class QAnyStringView + size=16 align=8 + base size=16 base align=8 +QAnyStringView (0x0x7f0b4a2055a0) 0 + +Class QStringTokenizerBaseBase::tokenizer_state + size=24 align=8 + base size=24 base align=8 +QStringTokenizerBaseBase::tokenizer_state (0x0x7f0b49eed780) 0 + +Class QStringTokenizerBaseBase + size=8 align=4 + base size=8 base align=4 +QStringTokenizerBaseBase (0x0x7f0b49eed720) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f0b49f3b660) 0 + +Class QString + size=24 align=8 + base size=24 base align=8 +QString (0x0x7f0b49cab900) 0 + +Class QtPrivate::ArgBase + size=1 align=1 + base size=1 base align=1 +QtPrivate::ArgBase (0x0x7f0b4989ac00) 0 + +Class QtPrivate::QStringViewArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QStringViewArg (0x0x7f0b498a3340) 0 + QtPrivate::ArgBase (0x0x7f0b4989ac60) 0 + +Class QtPrivate::QLatin1StringArg + size=24 align=8 + base size=24 base align=8 +QtPrivate::QLatin1StringArg (0x0x7f0b498a3410) 0 + QtPrivate::ArgBase (0x0x7f0b4989aea0) 0 + +Class QHashSeed + size=8 align=8 + base size=8 base align=8 +QHashSeed (0x0x7f0b4990a720) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f0b499466c0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f0b49946780) 0 empty + +Class QStringMatcher + size=312 align=8 + base size=312 base align=8 +QStringMatcher (0x0x7f0b49753c60) 0 + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f0b4978ee40) 0 empty + +Class QtPrivate::CompareAgainstLiteralZero + size=1 align=1 + base size=0 base align=1 +QtPrivate::CompareAgainstLiteralZero (0x0x7f0b49817b40) 0 empty + +Class QPartialOrdering + size=1 align=1 + base size=1 base align=1 +QPartialOrdering (0x0x7f0b49817d80) 0 + +Class QIODeviceBase + size=1 align=1 + base size=0 base align=1 +QIODeviceBase (0x0x7f0b494c38a0) 0 empty + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f0b499c4a90) 0 + QIODeviceBase (0x0x7f0b494c3900) 0 empty + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f0b494c3a80) 0 + +Class QtMetaContainerPrivate::QMetaContainerInterface + size=120 align=8 + base size=120 base align=8 +QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f0b49601060) 0 + +Class QtMetaContainerPrivate::QMetaSequenceInterface + size=216 align=8 + base size=216 base align=8 +QtMetaContainerPrivate::QMetaSequenceInterface (0x0x7f0b495a27b8) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f0b49601120) 0 + +Class QtMetaContainerPrivate::QMetaAssociationInterface + size=240 align=8 + base size=240 base align=8 +QtMetaContainerPrivate::QMetaAssociationInterface (0x0x7f0b495a2888) 0 + QtMetaContainerPrivate::QMetaContainerInterface (0x0x7f0b496011e0) 0 + +Class QMetaContainer + size=8 align=8 + base size=8 base align=8 +QMetaContainer (0x0x7f0b4929ccc0) 0 + +Class QMetaSequence + size=8 align=8 + base size=8 base align=8 +QMetaSequence (0x0x7f0b495a2c30) 0 + QMetaContainer (0x0x7f0b4929cea0) 0 + +Class QMetaAssociation + size=8 align=8 + base size=8 base align=8 +QMetaAssociation (0x0x7f0b495a2c98) 0 + QMetaContainer (0x0x7f0b492c02a0) 0 + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f0b493bc480) 0 + +Class std::__detail::_List_node_header + size=24 align=8 + base size=24 base align=8 +std::__detail::_List_node_header (0x0x7f0b4934dd00) 0 + std::__detail::_List_node_base (0x0x7f0b493bc4e0) 0 + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f0b490955a0) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7f0b49095900) 0 + +Class QtPrivate::QMetaTypeInterface + size=112 align=8 + base size=112 base align=8 +QtPrivate::QMetaTypeInterface (0x0x7f0b48effd80) 0 + +Class QMetaType + size=8 align=8 + base size=8 base align=8 +QMetaType (0x0x7f0b48efff60) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f0b48feb000) 0 + +Class QtPrivate::QTypeNormalizer + size=16 align=8 + base size=16 base align=8 +QtPrivate::QTypeNormalizer (0x0x7f0b46ac58a0) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f0b466b8ba0) 0 + +Class QAdoptSharedDataTag + size=1 align=1 + base size=0 base align=1 +QAdoptSharedDataTag (0x0x7f0b466b8f00) 0 empty + +Class QtPrivate::RefCounted + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCounted (0x0x7f0b4672bf60) 0 + +Class QPropertyBindingPrivatePtr + size=8 align=8 + base size=8 base align=8 +QPropertyBindingPrivatePtr (0x0x7f0b467430c0) 0 + +Class QUntypedPropertyData::InheritsQUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData::InheritsQUntypedPropertyData (0x0x7f0b46791720) 0 empty + +Class QUntypedPropertyData + size=1 align=1 + base size=0 base align=1 +QUntypedPropertyData (0x0x7f0b467916c0) 0 empty + +Class QPropertyProxyBindingData + size=24 align=8 + base size=24 base align=8 +QPropertyProxyBindingData (0x0x7f0b46791780) 0 + +Class QtPrivate::BindingFunctionVTable + size=32 align=8 + base size=32 base align=8 +QtPrivate::BindingFunctionVTable (0x0x7f0b467917e0) 0 + +Class QtPrivate::QPropertyBindingFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::QPropertyBindingFunction (0x0x7f0b46791d20) 0 + +Class QtPrivate::QPropertyBindingData + size=8 align=8 + base size=8 base align=8 +QtPrivate::QPropertyBindingData (0x0x7f0b46791d80) 0 + +Class std::experimental::fundamentals_v2::source_location + size=24 align=8 + base size=24 base align=8 +std::experimental::fundamentals_v2::source_location (0x0x7f0b467b94e0) 0 + +Class QPropertyBindingSourceLocation + size=24 align=8 + base size=24 base align=8 +QPropertyBindingSourceLocation (0x0x7f0b467b9c00) 0 + +Class QPropertyBindingError + size=8 align=8 + base size=8 base align=8 +QPropertyBindingError (0x0x7f0b467b9f00) 0 + +Class QUntypedPropertyBinding + size=8 align=8 + base size=8 base align=8 +QUntypedPropertyBinding (0x0x7f0b467fc060) 0 + +Class QPropertyObserverBase + size=24 align=8 + base size=24 base align=8 +QPropertyObserverBase (0x0x7f0b467fc2a0) 0 + +Class QPropertyObserver + size=24 align=8 + base size=24 base align=8 +QPropertyObserver (0x0x7f0b46796750) 0 + QPropertyObserverBase (0x0x7f0b467fc420) 0 + +Class QPropertyNotifier + size=56 align=8 + base size=56 base align=8 +QPropertyNotifier (0x0x7f0b46796a90) 0 + QPropertyObserver (0x0x7f0b46796af8) 0 + QPropertyObserverBase (0x0x7f0b467fc900) 0 + +Class QtPrivate::QBindableInterface + size=56 align=8 + base size=56 base align=8 +QtPrivate::QBindableInterface (0x0x7f0b464657e0) 0 + +Class QUntypedBindable + size=16 align=8 + base size=16 base align=8 +QUntypedBindable (0x0x7f0b46484960) 0 + +Class QBindingStatus + size=32 align=8 + base size=32 base align=8 +QBindingStatus (0x0x7f0b4659b8a0) 0 + +Class QBindingStorage + size=16 align=8 + base size=16 base align=8 +QBindingStorage (0x0x7f0b4659b900) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f0b462ab6c0) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f0b46358420) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=80 align=8 + base size=80 base align=8 +QObjectData (0x0x7f0b463a7d80) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f0b46449720) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f0b464496c0) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f0b46106660) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f0b46106f00) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f0b463ded00) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7f0b46106ea0) 0 + primary-for QAbstractAnimation (0x0x7f0b463ded00) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f0b461452a0) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f0b46149000) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7f0b46145240) 0 + primary-for QAnimationDriver (0x0x7f0b46149000) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f0b46145480) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f0b46149068) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7f0b46145420) 0 + primary-for QEventLoop (0x0x7f0b46149068) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f0b461459c0) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f0b46145a80) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f0b46145ae0) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QAbstractEventDispatcher::startingUp +200 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f0b46149208) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7f0b46145a20) 0 + primary-for QAbstractEventDispatcher (0x0x7f0b46149208) + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f0b461d32a0) 0 empty + +Class QStringConverterBase::State + size=48 align=8 + base size=48 base align=8 +QStringConverterBase::State (0x0x7f0b45c9fea0) 0 + +Class QStringConverterBase + size=1 align=1 + base size=0 base align=1 +QStringConverterBase (0x0x7f0b45c9fe40) 0 empty + +Class QStringConverter::Interface + size=40 align=8 + base size=40 base align=8 +QStringConverter::Interface (0x0x7f0b45cc4ae0) 0 + +Class QStringConverter + size=56 align=8 + base size=56 base align=8 +QStringConverter (0x0x7f0b45cc23a8) 0 + QStringConverterBase (0x0x7f0b45cc4a80) 0 empty + +Class QStringEncoder + size=56 align=8 + base size=56 base align=8 +QStringEncoder (0x0x7f0b45cc2410) 0 + QStringConverter (0x0x7f0b45cc2478) 0 + QStringConverterBase (0x0x7f0b45d1c4e0) 0 empty + +Class QStringDecoder + size=56 align=8 + base size=56 base align=8 +QStringDecoder (0x0x7f0b45cc24e0) 0 + QStringConverter (0x0x7f0b45cc2548) 0 + QStringConverterBase (0x0x7f0b45d3c360) 0 empty + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f0b45cc25b0) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + QIODeviceBase (0x0x7f0b45d69060) 0 empty + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f0b45d697e0) 0 + +Class QContiguousCacheData + size=40 align=8 + base size=40 base align=8 +QContiguousCacheData (0x0x7f0b45e459c0) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f0b45aa0060) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f0b45aa01e0) 0 + +Class QtPrivate::EnableInternalData + size=1 align=1 + base size=0 base align=1 +QtPrivate::EnableInternalData (0x0x7f0b45b4c420) 0 empty + +Class QDebug::Stream + size=88 align=8 + base size=88 base align=8 +QDebug::Stream (0x0x7f0b45b72360) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f0b45b53068) 0 + QIODeviceBase (0x0x7f0b45b72300) 0 empty + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f0b45875cc0) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f0b45875d80) 0 empty + +Class QVariant::PrivateShared + size=8 align=8 + base size=8 base align=8 +QVariant::PrivateShared (0x0x7f0b45a1e9c0) 0 + +Class QVariant::Private + size=32 align=8 + base size=32 base align=8 +QVariant::Private (0x0x7f0b45a1ea20) 0 + +Class QVariant + size=32 align=8 + base size=32 base align=8 +QVariant (0x0x7f0b45a1e960) 0 + +Class QtPrivate::QVariantTypeCoercer + size=32 align=8 + base size=32 base align=8 +QtPrivate::QVariantTypeCoercer (0x0x7f0b4580a180) 0 + +Class QVariantConstPointer + size=32 align=8 + base size=32 base align=8 +QVariantConstPointer (0x0x7f0b4580a3c0) 0 + +Class QModelRoleData + size=40 align=8 + base size=40 base align=8 +QModelRoleData (0x0x7f0b4580a5a0) 0 + +Class QModelRoleDataSpan + size=16 align=8 + base size=16 base align=8 +QModelRoleDataSpan (0x0x7f0b4584a4e0) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f0b454944e0) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f0b454e16c0) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f0b45553f60) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractItemModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractItemModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f0b4555ae38) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7f0b45553f00) 0 + primary-for QAbstractItemModel (0x0x7f0b4555ae38) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f0b4528cd20) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractTableModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractTableModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f0b455cb6e8) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7f0b455cb750) 0 + primary-for QAbstractTableModel (0x0x7f0b455cb6e8) + QObject (0x0x7f0b4528ccc0) 0 + primary-for QAbstractItemModel (0x0x7f0b455cb750) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f0b4528ce40) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QAbstractListModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f0b455cb7b8) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7f0b455cb820) 0 + primary-for QAbstractListModel (0x0x7f0b455cb7b8) + QObject (0x0x7f0b4528cde0) 0 + primary-for QAbstractItemModel (0x0x7f0b455cb820) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f0b4530b6c0) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f0b4530b780) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QAbstractProxyModel::setSourceModel +416 (int (*)(...))__cxa_pure_virtual +424 (int (*)(...))__cxa_pure_virtual +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f0b45303c30) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7f0b45303c98) 0 + primary-for QAbstractProxyModel (0x0x7f0b45303c30) + QObject (0x0x7f0b4530b720) 0 + primary-for QAbstractItemModel (0x0x7f0b45303c98) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f0b4530b960) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f0b45303d00) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7f0b45303d68) 0 + primary-for QAnimationGroup (0x0x7f0b45303d00) + QObject (0x0x7f0b4530b900) 0 + primary-for QAbstractAnimation (0x0x7f0b45303d68) + +Class QAssociativeIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeIterator (0x0x7f0b45303ea0) 0 + QIterator (0x0x7f0b45303f08) 0 + QBaseIterator (0x0x7f0b4530bd80) 0 + +Class QAssociativeConstIterator + size=16 align=8 + base size=16 base align=8 +QAssociativeConstIterator (0x0x7f0b45395000) 0 + QConstIterator (0x0x7f0b45395068) 0 + QBaseIterator (0x0x7f0b4538d300) 0 + +Class QAssociativeIterable + size=24 align=8 + base size=24 base align=8 +QAssociativeIterable (0x0x7f0b45395138) 0 + QIterable (0x0x7f0b4538d840) 0 + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f0b45094360) 0 + +Class QBitArray + size=24 align=8 + base size=24 base align=8 +QBitArray (0x0x7f0b450ec0c0) 0 + +Class QBitRef + size=16 align=8 + base size=16 base align=8 +QBitRef (0x0x7f0b45122000) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f0b45149b40) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f0b45158070) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7f0b45149a80) 0 + primary-for QIODevice (0x0x7f0b45158070) + QIODeviceBase (0x0x7f0b45149ae0) 0 empty + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f0b45149f60) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f0b451570d0) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7f0b451580e0) 0 + primary-for QBuffer (0x0x7f0b451570d0) + QObject (0x0x7f0b45149ea0) 0 + primary-for QIODevice (0x0x7f0b451580e0) + QIODeviceBase (0x0x7f0b45149f00) 0 empty + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f0b4519d1e0) 0 + +Class QByteArrayMatcher + size=1056 align=8 + base size=1056 base align=8 +QByteArrayMatcher (0x0x7f0b4519d180) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f0b4519d360) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f0b4519d300) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f0b451f3b40) 0 + +Class QCalendar::YearMonthDay + size=12 align=4 + base size=12 base align=4 +QCalendar::YearMonthDay (0x0x7f0b44f0c9c0) 0 + +Class QCalendar::SystemId + size=8 align=8 + base size=8 base align=8 +QCalendar::SystemId (0x0x7f0b44f0ca20) 0 + +Class QCalendar + size=8 align=8 + base size=8 base align=8 +QCalendar (0x0x7f0b44f0c960) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f0b44f6a480) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f0b44fbea80) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f0b4500bcc0) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f0b4500bd20) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f0b4500bc60) 0 + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7f0b44c8ff60) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f0b44ce9360) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f0b44d9b5a0) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel + size=1 align=1 + base size=0 base align=1 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIteratorSentinel (0x0x7f0b44e0ed20) 0 empty + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f0b44e0ede0) 0 + +Class QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator + size=24 align=8 + base size=17 base align=8 +QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator (0x0x7f0b44e0ef60) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f0b44abc1e0) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f0b44b8ede0) 0 + +Class QCborParserError + size=16 align=8 + base size=16 base align=8 +QCborParserError (0x0x7f0b44c13f60) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7f0b44c31060) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7f0b44951900) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7f0b44986e40) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7f0b44986ea0) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7f0b44986de0) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7f0b44698480) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7f0b446984e0) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7f0b44698420) 0 + +Class qfloat16::Wrap + size=2 align=2 + base size=2 base align=2 +qfloat16::Wrap (0x0x7f0b444ad540) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7f0b444ad4e0) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7f0b4459f900) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7f0b445eed80) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f0b446227e0) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f0b446229c0) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f0b442e8420) 0 + +Class QEvent::InputEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::InputEventTag (0x0x7f0b44354d80) 0 empty + +Class QEvent::PointerEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::PointerEventTag (0x0x7f0b44354de0) 0 empty + +Class QEvent::SinglePointEventTag + size=1 align=1 + base size=0 base align=1 +QEvent::SinglePointEventTag (0x0x7f0b44354e40) 0 empty + +Vtable for QEvent +QEvent::_ZTV6QEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QEvent + size=16 align=8 + base size=16 base align=8 +QEvent (0x0x7f0b44354d20) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QTimerEvent::clone + +Class QTimerEvent + size=24 align=8 + base size=20 base align=8 +QTimerEvent (0x0x7f0b4435d548) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7f0b443b67e0) 0 + primary-for QTimerEvent (0x0x7f0b4435d548) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QChildEvent::clone + +Class QChildEvent + size=24 align=8 + base size=24 base align=8 +QChildEvent (0x0x7f0b4435d5b0) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7f0b443b6cc0) 0 + primary-for QChildEvent (0x0x7f0b4435d5b0) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDynamicPropertyChangeEvent::clone + +Class QDynamicPropertyChangeEvent + size=40 align=8 + base size=40 base align=8 +QDynamicPropertyChangeEvent (0x0x7f0b4435d618) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7f0b443e6120) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f0b4435d618) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDeferredDeleteEvent::clone + +Class QDeferredDeleteEvent + size=24 align=8 + base size=20 base align=8 +QDeferredDeleteEvent (0x0x7f0b4435d680) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7f0b443e63c0) 0 + primary-for QDeferredDeleteEvent (0x0x7f0b4435d680) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f0b443e6780) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f0b4435d750) 0 + QBasicMutex (0x0x7f0b440564e0) 0 + +Class QRecursiveMutex + size=24 align=8 + base size=24 base align=8 +QRecursiveMutex (0x0x7f0b44056900) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f0b44056f00) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f0b440c6540) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f0b441fd1e0) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f0b44230c00) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f0b43e65d80) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f0b43ea40c0) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f0b43fdd480) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f0b43fe4a28) 0 + std::__mutex_base (0x0x7f0b43fdd4e0) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f0b43fdd6c0) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f0b43fdd720) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f0b43fdd780) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f0b4401d1e0) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f0b43fe4a90) 0 + std::__recursive_mutex_base (0x0x7f0b4401d240) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f0b43eede00) 0 + std::__mutex_base (0x0x7f0b4401d600) 0 + std::__timed_mutex_impl (0x0x7f0b4401d660) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f0b43eede70) 0 + std::__recursive_mutex_base (0x0x7f0b4401da20) 0 + std::__timed_mutex_impl (0x0x7f0b4401da80) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f0b43c588a0) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7f0b43c58b40) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f0b43c58ba0) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f0b43c58ae0) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f0b43e42de0) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f0b43a7a1e0) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f0b43a7a240) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f0b43b2d780) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f0b43ae3888) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7f0b43ae38f0) 0 + primary-for std::future_error (0x0x7f0b43ae3888) + std::exception (0x0x7f0b43b2dea0) 0 nearly-empty + primary-for std::logic_error (0x0x7f0b43ae38f0) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f0b43b5c600) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f0b43b5c5a0) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f0b438dc060) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f0b438bf0d0) 0 + std::__at_thread_exit_elt (0x0x7f0b438dc120) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f0b43b5c780) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f0b43b5c540) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f0b4357a4e0) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7f0b43591de0) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f0b4357a4e0) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f0b435d06c0) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f0b4357a820) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7f0b435d0660) 0 + primary-for QThread (0x0x7f0b4357a820) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=9 base align=8 +QRunnable (0x0x7f0b435d0a20) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f0b435d0ba0) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f0b4357a888) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7f0b435d0b40) 0 + primary-for QThreadPool (0x0x7f0b4357a888) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f0b4357a8f0) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7f0b435d0d20) 0 nearly-empty + primary-for QException (0x0x7f0b4357a8f0) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=16 align=8 + base size=16 base align=8 +QUnhandledException (0x0x7f0b4357a958) 0 + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7f0b4357a9c0) 0 nearly-empty + primary-for QUnhandledException (0x0x7f0b4357a958) + std::exception (0x0x7f0b435d0d80) 0 nearly-empty + primary-for QException (0x0x7f0b4357a9c0) + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f0b43635c00) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f0b4306a300) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f0b4306a2a0) 0 + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f0b430af540) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f0b430865b0) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7f0b430af4e0) 0 + primary-for QCoreApplication (0x0x7f0b430865b0) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f0b430af780) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7f0b430af8a0) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +224 (int (*)(...))QConcatenateTablesProxyModel::mimeData +232 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +240 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +248 (int (*)(...))QAbstractItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QConcatenateTablesProxyModel::flags +336 (int (*)(...))QAbstractItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QConcatenateTablesProxyModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7f0b43086618) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7f0b43086680) 0 + primary-for QConcatenateTablesProxyModel (0x0x7f0b43086618) + QObject (0x0x7f0b430af840) 0 + primary-for QAbstractItemModel (0x0x7f0b43086680) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f0b430afa20) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f0b430afc00) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFileDevice::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f0b430866e8) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7f0b430dcd20) 0 + primary-for QFileDevice (0x0x7f0b430866e8) + QObject (0x0x7f0b430afb40) 0 + primary-for QIODevice (0x0x7f0b430dcd20) + QIODeviceBase (0x0x7f0b430afba0) 0 empty + +Class std::filesystem::space_info + size=24 align=8 + base size=24 base align=8 +std::filesystem::space_info (0x0x7f0b43139900) 0 + +Class std::filesystem::__file_clock + size=1 align=1 + base size=0 base align=1 +std::filesystem::__file_clock (0x0x7f0b431cfea0) 0 empty + +Class std::time_base + size=1 align=1 + base size=0 base align=1 +std::time_base (0x0x7f0b431ee360) 0 empty + +Class std::money_base::pattern + size=4 align=1 + base size=4 base align=1 +std::money_base::pattern (0x0x7f0b42e54660) 0 + +Class std::money_base + size=1 align=1 + base size=0 base align=1 +std::money_base (0x0x7f0b42e54600) 0 empty + +Class std::messages_base + size=1 align=1 + base size=0 base align=1 +std::messages_base (0x0x7f0b42e7ac00) 0 empty + +Class std::codecvt_base + size=1 align=1 + base size=0 base align=1 +std::codecvt_base (0x0x7f0b42ed3780) 0 empty + +Construction vtable for std::basic_istream (0x0x7f0b42d2a958 instance) in std::__cxx11::basic_istringstream +std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE0_Si: 10 entries +0 120 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551496 +48 (int (*)(...))-120 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +VTT for std::__cxx11::basic_istringstream +std::__cxx11::basic_istringstream::_ZTTNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE: 4 entries +0 ((& std::__cxx11::basic_istringstream::_ZTVNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE) + 24) +8 ((& std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE0_Si) + 24) +16 ((& std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE0_Si) + 64) +24 ((& std::__cxx11::basic_istringstream::_ZTVNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE) + 64) + +Construction vtable for std::basic_ostream (0x0x7f0b42d2abc8 instance) in std::__cxx11::basic_ostringstream +std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE0_So: 10 entries +0 112 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551504 +48 (int (*)(...))-112 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::__cxx11::basic_ostringstream +std::__cxx11::basic_ostringstream::_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE: 4 entries +0 ((& std::__cxx11::basic_ostringstream::_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE) + 24) +8 ((& std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE0_So) + 24) +16 ((& std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE0_So) + 64) +24 ((& std::__cxx11::basic_ostringstream::_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE) + 64) + +Construction vtable for std::basic_iostream (0x0x7f0b4302be00 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Sd: 15 entries +0 128 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISd) +24 0 +32 0 +40 112 +48 (int (*)(...))-16 +56 (int (*)(...))(& _ZTISd) +64 0 +72 0 +80 18446744073709551488 +88 (int (*)(...))-128 +96 (int (*)(...))(& _ZTISd) +104 0 +112 0 + +Construction vtable for std::basic_istream (0x0x7f0b42d2ae38 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Si: 10 entries +0 128 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551488 +48 (int (*)(...))-128 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f0b42d2af08 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE16_So: 10 entries +0 112 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551504 +48 (int (*)(...))-112 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE: 10 entries +0 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE) + 24) +8 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Sd) + 24) +16 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Si) + 24) +24 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Si) + 64) +32 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE16_So) + 24) +40 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE16_So) + 64) +48 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Sd) + 104) +56 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE0_Sd) + 64) +64 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE) + 104) +72 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f0b42dcf0d0 instance) in std::__cxx11::basic_istringstream +std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E: 10 entries +0 120 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551496 +48 (int (*)(...))-120 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::__cxx11::basic_istringstream +std::__cxx11::basic_istringstream::_ZTTNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE: 4 entries +0 ((& std::__cxx11::basic_istringstream::_ZTVNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE) + 24) +8 ((& std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E) + 24) +16 ((& std::__cxx11::basic_istringstream::_ZTCNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E) + 64) +24 ((& std::__cxx11::basic_istringstream::_ZTVNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE) + 64) + +Construction vtable for std::basic_ostream (0x0x7f0b42dcf340 instance) in std::__cxx11::basic_ostringstream +std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_ostreamIwS2_E: 10 entries +0 112 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551504 +48 (int (*)(...))-112 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::__cxx11::basic_ostringstream +std::__cxx11::basic_ostringstream::_ZTTNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE: 4 entries +0 ((& std::__cxx11::basic_ostringstream::_ZTVNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE) + 24) +8 ((& std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_ostreamIwS2_E) + 24) +16 ((& std::__cxx11::basic_ostringstream::_ZTCNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_ostreamIwS2_E) + 64) +24 ((& std::__cxx11::basic_ostringstream::_ZTVNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE) + 64) + +Construction vtable for std::basic_iostream (0x0x7f0b42ddf1c0 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St14basic_iostreamIwS2_E: 15 entries +0 128 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt14basic_iostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 112 +48 (int (*)(...))-16 +56 (int (*)(...))(& _ZTISt14basic_iostreamIwSt11char_traitsIwEE) +64 0 +72 0 +80 18446744073709551488 +88 (int (*)(...))-128 +96 (int (*)(...))(& _ZTISt14basic_iostreamIwSt11char_traitsIwEE) +104 0 +112 0 + +Construction vtable for std::basic_istream (0x0x7f0b42dcf5b0 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E: 10 entries +0 128 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551488 +48 (int (*)(...))-128 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f0b42dcf680 instance) in std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE16_St13basic_ostreamIwS2_E: 10 entries +0 112 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551504 +48 (int (*)(...))-112 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::__cxx11::basic_stringstream +std::__cxx11::basic_stringstream::_ZTTNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE: 10 entries +0 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE) + 24) +8 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St14basic_iostreamIwS2_E) + 24) +16 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E) + 24) +24 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St13basic_istreamIwS2_E) + 64) +32 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE16_St13basic_ostreamIwS2_E) + 24) +40 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE16_St13basic_ostreamIwS2_E) + 64) +48 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St14basic_iostreamIwS2_E) + 104) +56 ((& std::__cxx11::basic_stringstream::_ZTCNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE0_St14basic_iostreamIwS2_E) + 64) +64 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE) + 104) +72 ((& std::__cxx11::basic_stringstream::_ZTVNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE) + 64) + +Class std::_Resetiosflags + size=4 align=4 + base size=4 base align=4 +std::_Resetiosflags (0x0x7f0b42e0b000) 0 + +Class std::_Setiosflags + size=4 align=4 + base size=4 base align=4 +std::_Setiosflags (0x0x7f0b42e0b180) 0 + +Class std::_Setbase + size=4 align=4 + base size=4 base align=4 +std::_Setbase (0x0x7f0b42e0b300) 0 + +Class std::_Setprecision + size=4 align=4 + base size=4 base align=4 +std::_Setprecision (0x0x7f0b42e0b600) 0 + +Class std::_Setw + size=4 align=4 + base size=4 base align=4 +std::_Setw (0x0x7f0b42e0b780) 0 + +Class std::filesystem::__cxx11::path::__null_terminated + size=1 align=1 + base size=0 base align=1 +std::filesystem::__cxx11::path::__null_terminated (0x0x7f0b42acc840) 0 empty + +Class std::filesystem::__cxx11::path::_List::_Impl_deleter + size=1 align=1 + base size=0 base align=1 +std::filesystem::__cxx11::path::_List::_Impl_deleter (0x0x7f0b42acc900) 0 empty + +Class std::filesystem::__cxx11::path::_List + size=8 align=8 + base size=8 base align=8 +std::filesystem::__cxx11::path::_List (0x0x7f0b42acc8a0) 0 + +Class std::filesystem::__cxx11::path + size=40 align=8 + base size=40 base align=8 +std::filesystem::__cxx11::path (0x0x7f0b42acc720) 0 + +Vtable for std::filesystem::__cxx11::filesystem_error +std::filesystem::__cxx11::filesystem_error::_ZTVNSt10filesystem7__cxx1116filesystem_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt10filesystem7__cxx1116filesystem_errorE) +16 (int (*)(...))std::filesystem::__cxx11::filesystem_error::~filesystem_error +24 (int (*)(...))std::filesystem::__cxx11::filesystem_error::~filesystem_error +32 (int (*)(...))std::filesystem::__cxx11::filesystem_error::what + +Class std::filesystem::__cxx11::filesystem_error + size=48 align=8 + base size=48 base align=8 +std::filesystem::__cxx11::filesystem_error (0x0x7f0b42941478) 0 + vptr=((& std::filesystem::__cxx11::filesystem_error::_ZTVNSt10filesystem7__cxx1116filesystem_errorE) + 16) + std::system_error (0x0x7f0b429414e0) 0 + primary-for std::filesystem::__cxx11::filesystem_error (0x0x7f0b42941478) + std::runtime_error (0x0x7f0b42941548) 0 + primary-for std::system_error (0x0x7f0b429414e0) + std::exception (0x0x7f0b429467e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f0b42941548) + +Class std::filesystem::__cxx11::path::_Cmpt + size=48 align=8 + base size=48 base align=8 +std::filesystem::__cxx11::path::_Cmpt (0x0x7f0b42941ea0) 0 + std::filesystem::__cxx11::path (0x0x7f0b4299f2a0) 0 + +Class std::filesystem::__cxx11::path::iterator + size=24 align=8 + base size=17 base align=8 +std::filesystem::__cxx11::path::iterator (0x0x7f0b429c8540) 0 + +Class std::filesystem::file_status + size=8 align=4 + base size=8 base align=4 +std::filesystem::file_status (0x0x7f0b4267bd20) 0 + +Class std::filesystem::__cxx11::directory_entry + size=48 align=8 + base size=41 base align=8 +std::filesystem::__cxx11::directory_entry (0x0x7f0b426c9240) 0 + +Class std::filesystem::__cxx11::__directory_iterator_proxy + size=48 align=8 + base size=48 base align=8 +std::filesystem::__cxx11::__directory_iterator_proxy (0x0x7f0b4270f900) 0 + +Class std::filesystem::__cxx11::directory_iterator + size=16 align=8 + base size=16 base align=8 +std::filesystem::__cxx11::directory_iterator (0x0x7f0b427350c0) 0 + +Class std::filesystem::__cxx11::recursive_directory_iterator + size=16 align=8 + base size=16 base align=8 +std::filesystem::__cxx11::recursive_directory_iterator (0x0x7f0b427b01e0) 0 + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f0b42485360) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f0b42481958) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7f0b424819c0) 0 + primary-for QFile (0x0x7f0b42481958) + QIODevice (0x0x7f0b426834d0) 0 + primary-for QFileDevice (0x0x7f0b424819c0) + QObject (0x0x7f0b424852a0) 0 + primary-for QIODevice (0x0x7f0b426834d0) + QIODeviceBase (0x0x7f0b42485300) 0 empty + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f0b42485960) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f0b42565300) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f0b4262fa20) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f0b4262fea0) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f0b4235a660) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f0b4235a8a0) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f0b42320b60) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7f0b4235a840) 0 + primary-for QFileSelector (0x0x7f0b42320b60) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f0b4235aa80) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f0b42320bc8) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7f0b4235aa20) 0 + primary-for QFileSystemWatcher (0x0x7f0b42320bc8) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f0b42390240) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f0b42320c30) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7f0b423901e0) 0 + primary-for QFutureWatcherBase (0x0x7f0b42320c30) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f0b42390780) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QIdentityProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QIdentityProxyModel::insertRows +272 (int (*)(...))QIdentityProxyModel::insertColumns +280 (int (*)(...))QIdentityProxyModel::removeRows +288 (int (*)(...))QIdentityProxyModel::removeColumns +296 (int (*)(...))QIdentityProxyModel::moveRows +304 (int (*)(...))QIdentityProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QAbstractProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QIdentityProxyModel::match +360 (int (*)(...))QAbstractProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QIdentityProxyModel::setSourceModel +416 (int (*)(...))QIdentityProxyModel::mapToSource +424 (int (*)(...))QIdentityProxyModel::mapFromSource +432 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +440 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f0b42320e38) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7f0b42320ea0) 0 + primary-for QIdentityProxyModel (0x0x7f0b42320e38) + QAbstractItemModel (0x0x7f0b42320f08) 0 + primary-for QAbstractProxyModel (0x0x7f0b42320ea0) + QObject (0x0x7f0b42390720) 0 + primary-for QAbstractItemModel (0x0x7f0b42320f08) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f0b42390900) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f0b4241f540) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f0b42418d00) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7f0b4241f4e0) 0 + primary-for QItemSelectionModel (0x0x7f0b42418d00) + +Class QItemSelection + size=24 align=8 + base size=24 base align=8 +QItemSelection (0x0x7f0b42080208) 0 + QList (0x0x7f0b42080270) 0 + QListSpecialMethods (0x0x7f0b420802d8) 0 empty + QListSpecialMethodsBase (0x0x7f0b4241ff00) 0 empty + +Class QJsonValue + size=24 align=8 + base size=24 base align=8 +QJsonValue (0x0x7f0b42175120) 0 + +Class QJsonValueRef + size=16 align=8 + base size=16 base align=8 +QJsonValueRef (0x0x7f0b42175600) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::iterator (0x0x7f0b421d3960) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonArray::const_iterator (0x0x7f0b421d39c0) 0 + +Class QJsonArray + size=8 align=8 + base size=8 base align=8 +QJsonArray (0x0x7f0b421d3900) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f0b41e813c0) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f0b41e81420) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::iterator (0x0x7f0b42015960) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=16 base align=8 +QJsonObject::const_iterator (0x0x7f0b420159c0) 0 + +Class QJsonObject + size=8 align=8 + base size=8 base align=8 +QJsonObject (0x0x7f0b42015900) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f0b41cd04e0) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=24 align=8 + base size=24 base align=8 +QLibrary (0x0x7f0b41cc9b60) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7f0b41cd0480) 0 + primary-for QLibrary (0x0x7f0b41cc9b60) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f0b41cd0ba0) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f0b41cd0b40) 0 + +Class QTypeRevision + size=2 align=1 + base size=2 base align=1 +QTypeRevision (0x0x7f0b41ded360) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f0b41a85ba0) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f0b41a85c60) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f0b41b07360) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f0b41b64cc0) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f0b41bcc300) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f0b41c1dae0) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f0b418612a0) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f0b418afba0) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f0b4193f900) 0 + +Class QMetaMethod::Data + size=8 align=8 + base size=8 base align=8 +QMetaMethod::Data (0x0x7f0b4193f9c0) 0 + +Class QMetaMethod + size=16 align=8 + base size=16 base align=8 +QMetaMethod (0x0x7f0b4193f960) 0 + +Class QMetaEnum::Data + size=8 align=8 + base size=8 base align=8 +QMetaEnum::Data (0x0x7f0b419b9c00) 0 + +Class QMetaEnum + size=16 align=8 + base size=16 base align=8 +QMetaEnum (0x0x7f0b419b9ba0) 0 + +Class QMetaProperty::Data + size=8 align=8 + base size=8 base align=8 +QMetaProperty::Data (0x0x7f0b419fc960) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f0b419fc900) 0 + +Class QMetaClassInfo::Data + size=8 align=8 + base size=8 base align=8 +QMetaClassInfo::Data (0x0x7f0b41a27000) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=16 base align=8 +QMetaClassInfo (0x0x7f0b419fc9c0) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f0b41a46e40) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f0b41656680) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7f0b41a46de0) 0 + primary-for QMimeData (0x0x7f0b41656680) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f0b41a46ba0) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f0b416dbae0) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f0b416dbba0) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=40 align=8 + base size=40 base align=8 +QObjectCleanupHandler (0x0x7f0b416e4548) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7f0b416dbb40) 0 + primary-for QObjectCleanupHandler (0x0x7f0b416e4548) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f0b416dbc60) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f0b41731a80) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f0b41730f70) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7f0b41748000) 0 + primary-for QParallelAnimationGroup (0x0x7f0b41730f70) + QAbstractAnimation (0x0x7f0b41748068) 0 + primary-for QAnimationGroup (0x0x7f0b41748000) + QObject (0x0x7f0b41731a20) 0 + primary-for QAbstractAnimation (0x0x7f0b41748068) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f0b41731c60) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f0b417480d0) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7f0b41748138) 0 + primary-for QPauseAnimation (0x0x7f0b417480d0) + QObject (0x0x7f0b41731c00) 0 + primary-for QAbstractAnimation (0x0x7f0b41748138) + +Class QPluginMetaData + size=16 align=8 + base size=16 base align=8 +QPluginMetaData (0x0x7f0b41731e40) 0 + +Class QStaticPlugin + size=24 align=8 + base size=24 base align=8 +QStaticPlugin (0x0x7f0b41731ea0) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f0b41788900) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f0b4178bd00) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7f0b417888a0) 0 + primary-for QPluginLoader (0x0x7f0b4178bd00) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f0b417889c0) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f0b41813240) 0 empty + +Class QProcess::Use_setChildProcessModifier_Instead + size=1 align=1 + base size=0 base align=1 +QProcess::Use_setChildProcessModifier_Instead (0x0x7f0b418132a0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 32 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QProcess::writeData +248 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f0b41808dd0) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7f0b4173bb60) 0 + primary-for QProcess (0x0x7f0b41808dd0) + QObject (0x0x7f0b41813180) 0 + primary-for QIODevice (0x0x7f0b4173bb60) + QIODeviceBase (0x0x7f0b418131e0) 0 empty + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f0b4145a060) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f0b41808e38) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7f0b41808ea0) 0 + primary-for QVariantAnimation (0x0x7f0b41808e38) + QObject (0x0x7f0b4145a000) 0 + primary-for QAbstractAnimation (0x0x7f0b41808ea0) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f0b41fc0120) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f0b42c375b0) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7f0b42c37680) 0 + primary-for QPropertyAnimation (0x0x7f0b42c375b0) + QAbstractAnimation (0x0x7f0b42c376e8) 0 + primary-for QVariantAnimation (0x0x7f0b42c37680) + QObject (0x0x7f0b41fc0060) 0 + primary-for QAbstractAnimation (0x0x7f0b42c376e8) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f0b4cee2000) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f0b4a34d7e0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f0b4a34d780) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f0b44c13a20) 0 + +Class QRandomGenerator::InitialRandomData + size=16 align=8 + base size=16 base align=8 +QRandomGenerator::InitialRandomData (0x0x7f0b4262f0c0) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f0b4262f180) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f0b4262f000) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f0b4c8b9c98) 0 + QRandomGenerator (0x0x7f0b41dd5540) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f0b41b8d600) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f0b41baa4e0) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f0b41861a80) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f0b419163c0) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f0b42f5d540) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f0b454f2000) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f0b4db8bde0) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f0b4b427960) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f0b4b427c60) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QSaveFile::writeData +248 (int (*)(...))QSaveFile::fileName +256 (int (*)(...))QFileDevice::resize +264 (int (*)(...))QFileDevice::permissions +272 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f0b4cb5a068) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7f0b4cb5a0d0) 0 + primary-for QSaveFile (0x0x7f0b4cb5a068) + QIODevice (0x0x7f0b4535c4d0) 0 + primary-for QFileDevice (0x0x7f0b4cb5a0d0) + QObject (0x0x7f0b4b427ba0) 0 + primary-for QIODevice (0x0x7f0b4535c4d0) + QIODeviceBase (0x0x7f0b4b427c00) 0 empty + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f0b4af23000) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f0b4a5477e0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f0b4a591540) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f0b4cbaaa28) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7f0b4cbaaa90) 0 + primary-for QSequentialAnimationGroup (0x0x7f0b4cbaaa28) + QAbstractAnimation (0x0x7f0b4cbaab60) 0 + primary-for QAnimationGroup (0x0x7f0b4cbaaa90) + QObject (0x0x7f0b4a5914e0) 0 + primary-for QAbstractAnimation (0x0x7f0b4cbaab60) + +Class QSequentialIterator + size=16 align=8 + base size=16 base align=8 +QSequentialIterator (0x0x7f0b4cbaabc8) 0 + QIterator (0x0x7f0b4cbaad00) 0 + QBaseIterator (0x0x7f0b4a5918a0) 0 + +Class QSequentialConstIterator + size=16 align=8 + base size=16 base align=8 +QSequentialConstIterator (0x0x7f0b4cbaadd0) 0 + QConstIterator (0x0x7f0b4cbaae38) 0 + QBaseIterator (0x0x7f0b4a591e40) 0 + +Class QSequentialIterable + size=24 align=8 + base size=24 base align=8 +QSequentialIterable (0x0x7f0b4cbaaea0) 0 + QIterable (0x0x7f0b49ccc360) 0 + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f0b49d6d960) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f0b4c96c410) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7f0b49d6d900) 0 + primary-for QSettings (0x0x7f0b4c96c410) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f0b49d6dd80) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f0b4c96c478) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7f0b49d6dd20) 0 + primary-for QSharedMemory (0x0x7f0b4c96c478) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f0b49d6df60) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f0b4c96c548) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7f0b49d6df00) 0 + primary-for QSignalMapper (0x0x7f0b4c96c548) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f0b40edf9c0) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f0b4c978ea0) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7f0b40edf960) 0 + primary-for QSocketNotifier (0x0x7f0b4c978ea0) + +Class QSocketDescriptor + size=4 align=4 + base size=4 base align=4 +QSocketDescriptor (0x0x7f0b40edfb40) 0 + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f0b40f0e4e0) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QSortFilterProxyModel::mimeTypes +224 (int (*)(...))QSortFilterProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QSortFilterProxyModel::dropMimeData +248 (int (*)(...))QSortFilterProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QSortFilterProxyModel::insertRows +272 (int (*)(...))QSortFilterProxyModel::insertColumns +280 (int (*)(...))QSortFilterProxyModel::removeRows +288 (int (*)(...))QSortFilterProxyModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QSortFilterProxyModel::fetchMore +320 (int (*)(...))QSortFilterProxyModel::canFetchMore +328 (int (*)(...))QSortFilterProxyModel::flags +336 (int (*)(...))QSortFilterProxyModel::sort +344 (int (*)(...))QSortFilterProxyModel::buddy +352 (int (*)(...))QSortFilterProxyModel::match +360 (int (*)(...))QSortFilterProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QSortFilterProxyModel::setSourceModel +416 (int (*)(...))QSortFilterProxyModel::mapToSource +424 (int (*)(...))QSortFilterProxyModel::mapFromSource +432 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +440 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +448 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +456 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +464 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f0b4c9819c0) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7f0b4c981a90) 0 + primary-for QSortFilterProxyModel (0x0x7f0b4c9819c0) + QAbstractItemModel (0x0x7f0b4c981af8) 0 + primary-for QAbstractProxyModel (0x0x7f0b4c981a90) + QObject (0x0x7f0b40f0e480) 0 + primary-for QAbstractItemModel (0x0x7f0b4c981af8) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f0b40f0e8a0) 0 empty + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f0b40f372a0) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f0b40f69ae0) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f0b40faa360) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QStringListModel::clearItemData +216 (int (*)(...))QAbstractItemModel::mimeTypes +224 (int (*)(...))QAbstractItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QAbstractListModel::dropMimeData +248 (int (*)(...))QStringListModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStringListModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QStringListModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QStringListModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStringListModel::flags +336 (int (*)(...))QStringListModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QAbstractItemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStringListModel + size=40 align=8 + base size=40 base align=8 +QStringListModel (0x0x7f0b4c99d6e8) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7f0b4c99d750) 0 + primary-for QStringListModel (0x0x7f0b4c99d6e8) + QAbstractItemModel (0x0x7f0b4c99d7b8) 0 + primary-for QAbstractListModel (0x0x7f0b4c99d750) + QObject (0x0x7f0b40faa300) 0 + primary-for QAbstractItemModel (0x0x7f0b4c99d7b8) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f0b40faa420) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f0b40faa540) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f0b40faa6c0) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QIODevice::skipData +240 (int (*)(...))QFileDevice::writeData +248 (int (*)(...))QTemporaryFile::fileName +256 (int (*)(...))QFile::resize +264 (int (*)(...))QFile::permissions +272 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f0b4c99d888) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7f0b4c99d8f0) 0 + primary-for QTemporaryFile (0x0x7f0b4c99d888) + QFileDevice (0x0x7f0b4c99d958) 0 + primary-for QFile (0x0x7f0b4c99d8f0) + QIODevice (0x0x7f0b40f91af0) 0 + primary-for QFileDevice (0x0x7f0b4c99d958) + QObject (0x0x7f0b40faa600) 0 + primary-for QIODevice (0x0x7f0b40f91af0) + QIODeviceBase (0x0x7f0b40faa660) 0 empty + +Class QTextBoundaryFinder + size=72 align=8 + base size=72 base align=8 +QTextBoundaryFinder (0x0x7f0b40faa900) 0 + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f0b40faaf60) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f0b40fe6660) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f0b4c99db60) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7f0b40fe6600) 0 + primary-for QTimeLine (0x0x7f0b4c99db60) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f0b40fe6840) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=16 align=8 + base size=16 base align=8 +QTimer (0x0x7f0b4c99dbc8) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7f0b40fe67e0) 0 + primary-for QTimer (0x0x7f0b4c99dbc8) + +Class QTimeZone::OffsetData + size=48 align=8 + base size=44 base align=8 +QTimeZone::OffsetData (0x0x7f0b410051e0) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f0b41005180) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f0b41036240) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f0b4c9a4b60) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7f0b410361e0) 0 + primary-for QTranslator (0x0x7f0b4c9a4b60) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7f0b41036420) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::clearItemData +216 (int (*)(...))QAbstractProxyModel::mimeTypes +224 (int (*)(...))QAbstractProxyModel::mimeData +232 (int (*)(...))QAbstractProxyModel::canDropMimeData +240 (int (*)(...))QAbstractProxyModel::dropMimeData +248 (int (*)(...))QAbstractProxyModel::supportedDropActions +256 (int (*)(...))QAbstractProxyModel::supportedDragActions +264 (int (*)(...))QTransposeProxyModel::insertRows +272 (int (*)(...))QTransposeProxyModel::insertColumns +280 (int (*)(...))QTransposeProxyModel::removeRows +288 (int (*)(...))QTransposeProxyModel::removeColumns +296 (int (*)(...))QTransposeProxyModel::moveRows +304 (int (*)(...))QTransposeProxyModel::moveColumns +312 (int (*)(...))QAbstractProxyModel::fetchMore +320 (int (*)(...))QAbstractProxyModel::canFetchMore +328 (int (*)(...))QAbstractProxyModel::flags +336 (int (*)(...))QTransposeProxyModel::sort +344 (int (*)(...))QAbstractProxyModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QTransposeProxyModel::span +368 (int (*)(...))QAbstractProxyModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractProxyModel::submit +392 (int (*)(...))QAbstractProxyModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData +408 (int (*)(...))QTransposeProxyModel::setSourceModel +416 (int (*)(...))QTransposeProxyModel::mapToSource +424 (int (*)(...))QTransposeProxyModel::mapFromSource +432 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +440 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7f0b4c9a4bc8) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7f0b4c9a4c30) 0 + primary-for QTransposeProxyModel (0x0x7f0b4c9a4bc8) + QAbstractItemModel (0x0x7f0b4c9a4c98) 0 + primary-for QAbstractProxyModel (0x0x7f0b4c9a4c30) + QObject (0x0x7f0b410363c0) 0 + primary-for QAbstractItemModel (0x0x7f0b4c9a4c98) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f0b410365a0) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f0b40c88de0) 0 + +Class QtPrivate::QXmlString + size=24 align=8 + base size=24 base align=8 +QtPrivate::QXmlString (0x0x7f0b40c88f00) 0 + +Class QXmlStreamAttribute + size=104 align=8 + base size=97 base align=8 +QXmlStreamAttribute (0x0x7f0b40c9fd80) 0 + +Class QXmlStreamAttributes + size=24 align=8 + base size=24 base align=8 +QXmlStreamAttributes (0x0x7f0b4c9c08f0) 0 + QList (0x0x7f0b4c9c0888) 0 + QListSpecialMethods (0x0x7f0b4c9c09c0) 0 empty + QListSpecialMethodsBase (0x0x7f0b40cb9e40) 0 empty + +Class QXmlStreamNamespaceDeclaration + size=48 align=8 + base size=48 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f0b40cea6c0) 0 + +Class QXmlStreamNotationDeclaration + size=72 align=8 + base size=72 base align=8 +QXmlStreamNotationDeclaration (0x0x7f0b40cf7d80) 0 + +Class QXmlStreamEntityDeclaration + size=120 align=8 + base size=120 base align=8 +QXmlStreamEntityDeclaration (0x0x7f0b40d10420) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f0b40d1cba0) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f0b40d1cc00) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f0b40d3b1e0) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=16 align=8 + base size=10 base align=8 +QPaintDevice (0x0x7f0b40d3b3c0) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16) + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7f0b40d3be40) 0 + +Class QColor::CT + size=10 align=2 + base size=10 base align=2 +QColor::CT (0x0x7f0b40d87b40) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7f0b40d87ae0) 0 + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7f0b40dc5ba0) 0 + +Class QPolygon + size=24 align=8 + base size=24 base align=8 +QPolygon (0x0x7f0b4c6c7888) 0 + QList (0x0x7f0b4c6c78f0) 0 + QListSpecialMethods (0x0x7f0b4c6c7958) 0 empty + QListSpecialMethodsBase (0x0x7f0b40df88a0) 0 empty + +Class QPolygonF + size=24 align=8 + base size=24 base align=8 +QPolygonF (0x0x7f0b4c6cebc8) 0 + QList (0x0x7f0b4c6ceb60) 0 + QListSpecialMethods (0x0x7f0b4c6cec98) 0 empty + QListSpecialMethodsBase (0x0x7f0b40e4e4e0) 0 empty + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7f0b40a97cc0) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7f0b40a97c60) 0 + +Class QTransform::Affine + size=8 align=8 + base size=8 base align=8 +QTransform::Affine (0x0x7f0b40ad4240) 0 + +Class QTransform + size=80 align=8 + base size=74 base align=8 +QTransform (0x0x7f0b40ad41e0) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=24 align=8 + base size=24 base align=8 +QImage (0x0x7f0b4c6e5ea0) 0 + vptr=((& QImage::_ZTV6QImage) + 16) + QPaintDevice (0x0x7f0b40af8de0) 0 + primary-for QImage (0x0x7f0b4c6e5ea0) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=24 align=8 + base size=24 base align=8 +QPixmap (0x0x7f0b4c6f1340) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16) + QPaintDevice (0x0x7f0b40b49600) 0 + primary-for QPixmap (0x0x7f0b4c6f1340) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7f0b40b82240) 0 + +Vtable for QAbstractFileIconProvider +QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAbstractFileIconProvider) +16 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +24 (int (*)(...))QAbstractFileIconProvider::~QAbstractFileIconProvider +32 (int (*)(...))QAbstractFileIconProvider::icon +40 (int (*)(...))QAbstractFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QAbstractFileIconProvider + size=16 align=8 + base size=16 base align=8 +QAbstractFileIconProvider (0x0x7f0b40baa5a0) 0 + vptr=((& QAbstractFileIconProvider::_ZTV25QAbstractFileIconProvider) + 16) + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7f0b40baab40) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7f0b40be3900) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7f0b40c038a0) 0 + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7f0b408703c0) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7f0b45b0ec30) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16) + QObject (0x0x7f0b40870360) 0 + primary-for QScreen (0x0x7f0b45b0ec30) + +Class QInputDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDevice::QPrivateSignal (0x0x7f0b40870600) 0 empty + +Vtable for QInputDevice +QInputDevice::_ZTV12QInputDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDevice) +16 (int (*)(...))QInputDevice::metaObject +24 (int (*)(...))QInputDevice::qt_metacast +32 (int (*)(...))QInputDevice::qt_metacall +40 (int (*)(...))QInputDevice::~QInputDevice +48 (int (*)(...))QInputDevice::~QInputDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputDevice + size=16 align=8 + base size=16 base align=8 +QInputDevice (0x0x7f0b45b0ee38) 0 + vptr=((& QInputDevice::_ZTV12QInputDevice) + 16) + QObject (0x0x7f0b408705a0) 0 + primary-for QInputDevice (0x0x7f0b45b0ee38) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7f0b408a60c0) 0 + +Class QPointingDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPointingDevice::QPrivateSignal (0x0x7f0b408b5a20) 0 empty + +Vtable for QPointingDevice +QPointingDevice::_ZTV15QPointingDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPointingDevice) +16 (int (*)(...))QPointingDevice::metaObject +24 (int (*)(...))QPointingDevice::qt_metacast +32 (int (*)(...))QPointingDevice::qt_metacall +40 (int (*)(...))QPointingDevice::~QPointingDevice +48 (int (*)(...))QPointingDevice::~QPointingDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPointingDevice + size=16 align=8 + base size=16 base align=8 +QPointingDevice (0x0x7f0b4541c208) 0 + vptr=((& QPointingDevice::_ZTV15QPointingDevice) + 16) + QInputDevice (0x0x7f0b4541c270) 0 + primary-for QPointingDevice (0x0x7f0b4541c208) + QObject (0x0x7f0b408b59c0) 0 + primary-for QInputDevice (0x0x7f0b4541c270) + +Class QEventPoint + size=8 align=8 + base size=8 base align=8 +QEventPoint (0x0x7f0b408d3180) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7f0b409110c0) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QInputEvent + size=40 align=8 + base size=40 base align=8 +QInputEvent (0x0x7f0b424f5958) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16) + QEvent (0x0x7f0b4093e0c0) 0 + primary-for QInputEvent (0x0x7f0b424f5958) + +Vtable for QPointerEvent +QPointerEvent::_ZTV13QPointerEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPointerEvent) +16 (int (*)(...))QPointerEvent::~QPointerEvent +24 (int (*)(...))QPointerEvent::~QPointerEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QPointerEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QPointerEvent::isBeginEvent +64 (int (*)(...))QPointerEvent::isUpdateEvent +72 (int (*)(...))QPointerEvent::isEndEvent + +Class QPointerEvent + size=64 align=8 + base size=64 base align=8 +QPointerEvent (0x0x7f0b424f5af8) 0 + vptr=((& QPointerEvent::_ZTV13QPointerEvent) + 16) + QInputEvent (0x0x7f0b424f5d00) 0 + primary-for QPointerEvent (0x0x7f0b424f5af8) + QEvent (0x0x7f0b4093e5a0) 0 + primary-for QInputEvent (0x0x7f0b424f5d00) + +Vtable for QSinglePointEvent +QSinglePointEvent::_ZTV17QSinglePointEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSinglePointEvent) +16 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +24 (int (*)(...))QSinglePointEvent::~QSinglePointEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QSinglePointEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QSinglePointEvent + size=80 align=8 + base size=80 base align=8 +QSinglePointEvent (0x0x7f0b423208f0) 0 + vptr=((& QSinglePointEvent::_ZTV17QSinglePointEvent) + 16) + QPointerEvent (0x0x7f0b423d4138) 0 + primary-for QSinglePointEvent (0x0x7f0b423208f0) + QInputEvent (0x0x7f0b423d41a0) 0 + primary-for QPointerEvent (0x0x7f0b423d4138) + QEvent (0x0x7f0b4097f480) 0 + primary-for QInputEvent (0x0x7f0b423d41a0) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QEnterEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QEnterEvent + size=80 align=8 + base size=80 base align=8 +QEnterEvent (0x0x7f0b423fc208) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16) + QSinglePointEvent (0x0x7f0b423fc270) 0 + primary-for QEnterEvent (0x0x7f0b423fc208) + QPointerEvent (0x0x7f0b423fc410) 0 + primary-for QSinglePointEvent (0x0x7f0b423fc270) + QInputEvent (0x0x7f0b423fc5b0) 0 + primary-for QPointerEvent (0x0x7f0b423fc410) + QEvent (0x0x7f0b4097f960) 0 + primary-for QInputEvent (0x0x7f0b423fc5b0) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QMouseEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QMouseEvent + size=80 align=8 + base size=80 base align=8 +QMouseEvent (0x0x7f0b423fc618) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16) + QSinglePointEvent (0x0x7f0b423fc7b8) 0 + primary-for QMouseEvent (0x0x7f0b423fc618) + QPointerEvent (0x0x7f0b423fca28) 0 + primary-for QSinglePointEvent (0x0x7f0b423fc7b8) + QInputEvent (0x0x7f0b423fca90) 0 + primary-for QPointerEvent (0x0x7f0b423fca28) + QEvent (0x0x7f0b40997120) 0 + primary-for QInputEvent (0x0x7f0b423fca90) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QHoverEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QHoverEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QHoverEvent + size=96 align=8 + base size=96 base align=8 +QHoverEvent (0x0x7f0b424181a0) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16) + QSinglePointEvent (0x0x7f0b42418208) 0 + primary-for QHoverEvent (0x0x7f0b424181a0) + QPointerEvent (0x0x7f0b424183a8) 0 + primary-for QSinglePointEvent (0x0x7f0b42418208) + QInputEvent (0x0x7f0b424185b0) 0 + primary-for QPointerEvent (0x0x7f0b424183a8) + QEvent (0x0x7f0b409976c0) 0 + primary-for QInputEvent (0x0x7f0b424185b0) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QWheelEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QWheelEvent::isBeginEvent +64 (int (*)(...))QWheelEvent::isUpdateEvent +72 (int (*)(...))QWheelEvent::isEndEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7f0b42418820) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16) + QSinglePointEvent (0x0x7f0b42418af8) 0 + primary-for QWheelEvent (0x0x7f0b42418820) + QPointerEvent (0x0x7f0b42418b60) 0 + primary-for QSinglePointEvent (0x0x7f0b42418af8) + QInputEvent (0x0x7f0b420805b0) 0 + primary-for QPointerEvent (0x0x7f0b42418b60) + QEvent (0x0x7f0b40997ae0) 0 + primary-for QInputEvent (0x0x7f0b420805b0) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTabletEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QTabletEvent + size=96 align=8 + base size=96 base align=8 +QTabletEvent (0x0x7f0b42080618) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16) + QSinglePointEvent (0x0x7f0b42080dd0) 0 + primary-for QTabletEvent (0x0x7f0b42080618) + QPointerEvent (0x0x7f0b42080e38) 0 + primary-for QSinglePointEvent (0x0x7f0b42080dd0) + QInputEvent (0x0x7f0b420f6270) 0 + primary-for QPointerEvent (0x0x7f0b42080e38) + QEvent (0x0x7f0b409b8000) 0 + primary-for QInputEvent (0x0x7f0b420f6270) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QNativeGestureEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QSinglePointEvent::isBeginEvent +64 (int (*)(...))QSinglePointEvent::isUpdateEvent +72 (int (*)(...))QSinglePointEvent::isEndEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7f0b420f62d8) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16) + QSinglePointEvent (0x0x7f0b420f6c98) 0 + primary-for QNativeGestureEvent (0x0x7f0b420f62d8) + QPointerEvent (0x0x7f0b420f6d00) 0 + primary-for QSinglePointEvent (0x0x7f0b420f6c98) + QInputEvent (0x0x7f0b42156af8) 0 + primary-for QPointerEvent (0x0x7f0b420f6d00) + QEvent (0x0x7f0b409b88a0) 0 + primary-for QInputEvent (0x0x7f0b42156af8) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QKeyEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QKeyEvent + size=88 align=8 + base size=82 base align=8 +QKeyEvent (0x0x7f0b42156b60) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16) + QInputEvent (0x0x7f0b42156ea0) 0 + primary-for QKeyEvent (0x0x7f0b42156b60) + QEvent (0x0x7f0b409b8e40) 0 + primary-for QInputEvent (0x0x7f0b42156ea0) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFocusEvent::clone + +Class QFocusEvent + size=24 align=8 + base size=20 base align=8 +QFocusEvent (0x0x7f0b42156f08) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16) + QEvent (0x0x7f0b409da480) 0 + primary-for QFocusEvent (0x0x7f0b42156f08) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPaintEvent::clone + +Class QPaintEvent + size=48 align=8 + base size=41 base align=8 +QPaintEvent (0x0x7f0b421de4e0) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16) + QEvent (0x0x7f0b409da7e0) 0 + primary-for QPaintEvent (0x0x7f0b421de4e0) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QMoveEvent::clone + +Class QMoveEvent + size=32 align=8 + base size=32 base align=8 +QMoveEvent (0x0x7f0b421de548) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16) + QEvent (0x0x7f0b409daae0) 0 + primary-for QMoveEvent (0x0x7f0b421de548) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QExposeEvent::clone + +Class QExposeEvent + size=24 align=8 + base size=24 base align=8 +QExposeEvent (0x0x7f0b421de888) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16) + QEvent (0x0x7f0b409dae40) 0 + primary-for QExposeEvent (0x0x7f0b421de888) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QPlatformSurfaceEvent::clone + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=20 base align=8 +QPlatformSurfaceEvent (0x0x7f0b421de8f0) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16) + QEvent (0x0x7f0b409f5120) 0 + primary-for QPlatformSurfaceEvent (0x0x7f0b421de8f0) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QResizeEvent::clone + +Class QResizeEvent + size=32 align=8 + base size=32 base align=8 +QResizeEvent (0x0x7f0b41eb22d8) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16) + QEvent (0x0x7f0b409f5420) 0 + primary-for QResizeEvent (0x0x7f0b41eb22d8) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QCloseEvent + size=16 align=8 + base size=16 base align=8 +QCloseEvent (0x0x7f0b41eb2340) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16) + QEvent (0x0x7f0b409f5780) 0 + primary-for QCloseEvent (0x0x7f0b41eb2340) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QIconDragEvent + size=16 align=8 + base size=16 base align=8 +QIconDragEvent (0x0x7f0b41fb6e38) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16) + QEvent (0x0x7f0b409f57e0) 0 + primary-for QIconDragEvent (0x0x7f0b41fb6e38) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QShowEvent + size=16 align=8 + base size=16 base align=8 +QShowEvent (0x0x7f0b41fb6ea0) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16) + QEvent (0x0x7f0b409f5840) 0 + primary-for QShowEvent (0x0x7f0b41fb6ea0) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QHideEvent + size=16 align=8 + base size=16 base align=8 +QHideEvent (0x0x7f0b41fe82d8) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16) + QEvent (0x0x7f0b409f58a0) 0 + primary-for QHideEvent (0x0x7f0b41fe82d8) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QContextMenuEvent::clone +48 (int (*)(...))QInputEvent::setTimestamp + +Class QContextMenuEvent + size=64 align=8 + base size=57 base align=8 +QContextMenuEvent (0x0x7f0b41fe8340) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16) + QInputEvent (0x0x7f0b41fe87b8) 0 + primary-for QContextMenuEvent (0x0x7f0b41fe8340) + QEvent (0x0x7f0b409f5900) 0 + primary-for QInputEvent (0x0x7f0b41fe87b8) + +Class QInputMethodEvent::Attribute + size=48 align=8 + base size=48 base align=8 +QInputMethodEvent::Attribute (0x0x7f0b409f5ea0) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodEvent::clone + +Class QInputMethodEvent + size=96 align=8 + base size=96 base align=8 +QInputMethodEvent (0x0x7f0b41fe8820) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16) + QEvent (0x0x7f0b409f5e40) 0 + primary-for QInputMethodEvent (0x0x7f0b41fe8820) + +Class QInputMethodQueryEvent::QueryPair + size=40 align=8 + base size=40 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7f0b4065c6c0) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QInputMethodQueryEvent::clone + +Class QInputMethodQueryEvent + size=48 align=8 + base size=48 base align=8 +QInputMethodQueryEvent (0x0x7f0b41730138) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16) + QEvent (0x0x7f0b4065c660) 0 + primary-for QInputMethodQueryEvent (0x0x7f0b41730138) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDropEvent::clone + +Class QDropEvent + size=64 align=8 + base size=64 base align=8 +QDropEvent (0x0x7f0b406a4340) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16) + QEvent (0x0x7f0b4069e7e0) 0 + primary-for QDropEvent (0x0x7f0b406a4340) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragMoveEvent + size=80 align=8 + base size=80 base align=8 +QDragMoveEvent (0x0x7f0b406a43a8) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16) + QDropEvent (0x0x7f0b406a4410) 0 + primary-for QDragMoveEvent (0x0x7f0b406a43a8) + QEvent (0x0x7f0b4069ef00) 0 + primary-for QDropEvent (0x0x7f0b406a4410) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QDragMoveEvent::clone + +Class QDragEnterEvent + size=80 align=8 + base size=80 base align=8 +QDragEnterEvent (0x0x7f0b406a4478) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16) + QDragMoveEvent (0x0x7f0b406a44e0) 0 + primary-for QDragEnterEvent (0x0x7f0b406a4478) + QDropEvent (0x0x7f0b406a4548) 0 + primary-for QDragMoveEvent (0x0x7f0b406a44e0) + QEvent (0x0x7f0b406b63c0) 0 + primary-for QDropEvent (0x0x7f0b406a4548) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QDragLeaveEvent + size=16 align=8 + base size=16 base align=8 +QDragLeaveEvent (0x0x7f0b406a45b0) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16) + QEvent (0x0x7f0b406b6420) 0 + primary-for QDragLeaveEvent (0x0x7f0b406a45b0) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QHelpEvent::clone + +Class QHelpEvent + size=32 align=8 + base size=32 base align=8 +QHelpEvent (0x0x7f0b406a4618) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16) + QEvent (0x0x7f0b406b6480) 0 + primary-for QHelpEvent (0x0x7f0b406a4618) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QStatusTipEvent::clone + +Class QStatusTipEvent + size=40 align=8 + base size=40 base align=8 +QStatusTipEvent (0x0x7f0b406a4680) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16) + QEvent (0x0x7f0b406b6960) 0 + primary-for QStatusTipEvent (0x0x7f0b406a4680) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWhatsThisClickedEvent::clone + +Class QWhatsThisClickedEvent + size=40 align=8 + base size=40 base align=8 +QWhatsThisClickedEvent (0x0x7f0b406a46e8) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16) + QEvent (0x0x7f0b406b6c00) 0 + primary-for QWhatsThisClickedEvent (0x0x7f0b406a46e8) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QActionEvent::clone + +Class QActionEvent + size=32 align=8 + base size=32 base align=8 +QActionEvent (0x0x7f0b406a4750) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16) + QEvent (0x0x7f0b406b6ea0) 0 + primary-for QActionEvent (0x0x7f0b406a4750) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QFileOpenEvent::clone + +Class QFileOpenEvent + size=48 align=8 + base size=48 base align=8 +QFileOpenEvent (0x0x7f0b406a47b8) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16) + QEvent (0x0x7f0b406d4240) 0 + primary-for QFileOpenEvent (0x0x7f0b406a47b8) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QToolBarChangeEvent::clone + +Class QToolBarChangeEvent + size=24 align=8 + base size=17 base align=8 +QToolBarChangeEvent (0x0x7f0b406a4820) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16) + QEvent (0x0x7f0b406d4540) 0 + primary-for QToolBarChangeEvent (0x0x7f0b406a4820) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QShortcutEvent::clone + +Class QShortcutEvent + size=32 align=8 + base size=29 base align=8 +QShortcutEvent (0x0x7f0b406a4888) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16) + QEvent (0x0x7f0b406d4840) 0 + primary-for QShortcutEvent (0x0x7f0b406a4888) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QWindowStateChangeEvent::clone + +Class QWindowStateChangeEvent + size=24 align=8 + base size=21 base align=8 +QWindowStateChangeEvent (0x0x7f0b406a48f0) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16) + QEvent (0x0x7f0b406d4ba0) 0 + primary-for QWindowStateChangeEvent (0x0x7f0b406a48f0) + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent +32 (int (*)(...))QPointerEvent::setAccepted +40 (int (*)(...))QTouchEvent::clone +48 (int (*)(...))QPointerEvent::setTimestamp +56 (int (*)(...))QTouchEvent::isBeginEvent +64 (int (*)(...))QTouchEvent::isUpdateEvent +72 (int (*)(...))QTouchEvent::isEndEvent + +Class QTouchEvent + size=80 align=8 + base size=79 base align=8 +QTouchEvent (0x0x7f0b406a4958) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16) + QPointerEvent (0x0x7f0b406a49c0) 0 + primary-for QTouchEvent (0x0x7f0b406a4958) + QInputEvent (0x0x7f0b406a4a28) 0 + primary-for QPointerEvent (0x0x7f0b406a49c0) + QEvent (0x0x7f0b406d4ea0) 0 + primary-for QInputEvent (0x0x7f0b406a4a28) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollPrepareEvent::clone + +Class QScrollPrepareEvent + size=96 align=8 + base size=96 base align=8 +QScrollPrepareEvent (0x0x7f0b406a4a90) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16) + QEvent (0x0x7f0b406f4240) 0 + primary-for QScrollPrepareEvent (0x0x7f0b406a4a90) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScrollEvent::clone + +Class QScrollEvent + size=56 align=8 + base size=52 base align=8 +QScrollEvent (0x0x7f0b406a4af8) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16) + QEvent (0x0x7f0b406f4660) 0 + primary-for QScrollEvent (0x0x7f0b406a4af8) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QScreenOrientationChangeEvent::clone + +Class QScreenOrientationChangeEvent + size=32 align=8 + base size=28 base align=8 +QScreenOrientationChangeEvent (0x0x7f0b406a4b60) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16) + QEvent (0x0x7f0b406f4a20) 0 + primary-for QScreenOrientationChangeEvent (0x0x7f0b406a4b60) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QApplicationStateChangeEvent::clone + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=20 base align=8 +QApplicationStateChangeEvent (0x0x7f0b406a4bc8) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16) + QEvent (0x0x7f0b406f4d80) 0 + primary-for QApplicationStateChangeEvent (0x0x7f0b406a4bc8) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7f0b4070f0c0) 0 + +Class QFontDatabase + size=1 align=1 + base size=0 base align=1 +QFontDatabase (0x0x7f0b40754240) 0 empty + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7f0b40754420) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7f0b407a34e0) 0 + +Class QBrushDataPointerDeleter + size=1 align=1 + base size=0 base align=1 +QBrushDataPointerDeleter (0x0x7f0b407c9cc0) 0 empty + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7f0b407c9d20) 0 + +Class QBrushData + size=104 align=8 + base size=104 base align=8 +QBrushData (0x0x7f0b404df780) 0 + +Class QGradient::QGradientData + size=48 align=8 + base size=48 base align=8 +QGradient::QGradientData (0x0x7f0b404df9c0) 0 + +Class QGradient + size=88 align=8 + base size=88 base align=8 +QGradient (0x0x7f0b404df960) 0 + +Class QLinearGradient + size=88 align=8 + base size=88 base align=8 +QLinearGradient (0x0x7f0b404e3bc8) 0 + QGradient (0x0x7f0b405068a0) 0 + +Class QRadialGradient + size=88 align=8 + base size=88 base align=8 +QRadialGradient (0x0x7f0b404e3c30) 0 + QGradient (0x0x7f0b405069c0) 0 + +Class QConicalGradient + size=88 align=8 + base size=88 base align=8 +QConicalGradient (0x0x7f0b404e3c98) 0 + QGradient (0x0x7f0b40506ae0) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7f0b40506ba0) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7f0b4058ec60) 0 + +Class QTextOption + size=24 align=8 + base size=24 base align=8 +QTextOption (0x0x7f0b4058ec00) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7f0b405d6060) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7f0b405eed20) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7f0b4028c750) 0 + QTextFormat (0x0x7f0b402914e0) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7f0b402ef4e0) 0 + QTextFormat (0x0x7f0b402eb9c0) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7f0b40323138) 0 + QTextFormat (0x0x7f0b40316f00) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7f0b4033dd00) 0 + QTextCharFormat (0x0x7f0b4033dd68) 0 + QTextFormat (0x0x7f0b4033cde0) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7f0b403639c0) 0 + QTextFormat (0x0x7f0b40360c60) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7f0b40393618) 0 + QTextFrameFormat (0x0x7f0b40393680) 0 + QTextFormat (0x0x7f0b4039d0c0) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7f0b403c02d8) 0 + QTextCharFormat (0x0x7f0b403c0340) 0 + QTextFormat (0x0x7f0b403c2360) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7f0b403f08a0) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7f0b40444f60) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7f0b400593c0) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7f0b40059360) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7f0b400c4480) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7f0b400c4900) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7f0b400c4ba0) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7f0b400bbf70) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16) + QObject (0x0x7f0b400c4b40) 0 + primary-for QTextDocument (0x0x7f0b400bbf70) + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7f0b40121480) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7f0b4019c8a0) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7f0b4019c900) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=80 align=8 + base size=80 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7f0b4019c960) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7f0b401a13a8) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16) + QObject (0x0x7f0b4019c840) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f0b401a13a8) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7f0b4022cf00) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7f0b40248180) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7f0b402481e0) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7f0b40248120) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7f0b40248ae0) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7f0b40248ea0) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7f0b40248f00) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7f0b40248f60) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7f0b3fe8f000) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7f0b3fe8f060) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7f0b3fe8f0c0) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7f0b3fe8f180) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16) + +Vtable for QAccessibleHyperlinkInterface +QAccessibleHyperlinkInterface::_ZTV29QAccessibleHyperlinkInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleHyperlinkInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleHyperlinkInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleHyperlinkInterface (0x0x7f0b3fe8f1e0) 0 nearly-empty + vptr=((& QAccessibleHyperlinkInterface::_ZTV29QAccessibleHyperlinkInterface) + 16) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7f0b3fe8f240) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7f0b4023c888) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16) + QAccessibleEvent (0x0x7f0b3fe8f780) 0 + primary-for QAccessibleStateChangeEvent (0x0x7f0b4023c888) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7f0b4023c8f0) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16) + QAccessibleEvent (0x0x7f0b3fe8fb40) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f0b4023c8f0) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7f0b4023c958) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f0b4023c9c0) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7f0b4023c958) + QAccessibleEvent (0x0x7f0b3fe8ff60) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f0b4023c9c0) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextInsertEvent (0x0x7f0b4023ca28) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f0b4023ca90) 0 + primary-for QAccessibleTextInsertEvent (0x0x7f0b4023ca28) + QAccessibleEvent (0x0x7f0b3feba420) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f0b4023ca90) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleTextRemoveEvent (0x0x7f0b4023caf8) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f0b4023cb60) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7f0b4023caf8) + QAccessibleEvent (0x0x7f0b3feba840) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f0b4023cb60) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=88 align=8 + base size=88 base align=8 +QAccessibleTextUpdateEvent (0x0x7f0b4023cbc8) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f0b4023cc30) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7f0b4023cbc8) + QAccessibleEvent (0x0x7f0b3febac60) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f0b4023cc30) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=64 align=8 + base size=64 base align=8 +QAccessibleValueChangeEvent (0x0x7f0b4023cc98) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16) + QAccessibleEvent (0x0x7f0b3fed0120) 0 + primary-for QAccessibleValueChangeEvent (0x0x7f0b4023cc98) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7f0b4023cd00) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16) + QAccessibleEvent (0x0x7f0b3fed0540) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7f0b4023cd00) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7f0b3fed0de0) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7f0b3feea0c0) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7f0b4023cd68) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16) + QObject (0x0x7f0b3feea060) 0 + primary-for QAccessibleBridgePlugin (0x0x7f0b4023cd68) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0 +24 0 +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7f0b4023cdd0) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16) + QAccessibleInterface (0x0x7f0b3feea180) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f0b4023cdd0) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7f0b4023ce38) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16) + QAccessibleObject (0x0x7f0b4023cea0) 0 + primary-for QAccessibleApplication (0x0x7f0b4023ce38) + QAccessibleInterface (0x0x7f0b3feea1e0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f0b4023cea0) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7f0b3feea2a0) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7f0b4023cf08) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16) + QObject (0x0x7f0b3feea240) 0 + primary-for QAccessiblePlugin (0x0x7f0b4023cf08) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7f0b3feea3c0) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7f0b4023cf70) 0 + vptr=((& QAction::_ZTV7QAction) + 16) + QObject (0x0x7f0b3feea360) 0 + primary-for QAction (0x0x7f0b4023cf70) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7f0b3feeacc0) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7f0b3ff1e000) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16) + QObject (0x0x7f0b3feeac60) 0 + primary-for QActionGroup (0x0x7f0b3ff1e000) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7f0b3feeaf60) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7f0b3ff3d8a0) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16) + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=24 align=8 + base size=24 base align=8 +QBitmap (0x0x7f0b3ff1e208) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16) + QPixmap (0x0x7f0b3ff1e270) 0 + primary-for QBitmap (0x0x7f0b3ff1e208) + QPaintDevice (0x0x7f0b3ff3df00) 0 + primary-for QPixmap (0x0x7f0b3ff1e270) + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7f0b3ff7e840) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7f0b3ffc4a80) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 47 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))-16 +320 (int (*)(...))(& _ZTI7QWindow) +328 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +336 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7f0b3ff30d20) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16) + QObject (0x0x7f0b3ffc49c0) 0 + primary-for QWindow (0x0x7f0b3ff30d20) + QSurface (0x0x7f0b3ffc4a20) 16 + vptr=((& QWindow::_ZTV7QWindow) + 328) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7f0b3fffe360) 0 + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7f0b3fffe480) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7f0b3ffc9958) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16) + QObject (0x0x7f0b3fffe420) 0 + primary-for QClipboard (0x0x7f0b3ffc9958) + +Class QColorTransform + size=8 align=8 + base size=8 base align=8 +QColorTransform (0x0x7f0b3fffe5a0) 0 + +Class QColorSpace + size=8 align=8 + base size=8 base align=8 +QColorSpace (0x0x7f0b3fc595a0) 0 + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7f0b3fcb2360) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7f0b3fcb2420) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7f0b3fcb04e0) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16) + QObject (0x0x7f0b3fcb23c0) 0 + primary-for QDrag (0x0x7f0b3fcb04e0) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7f0b3fcb2600) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::clearItemData +216 (int (*)(...))QFileSystemModel::mimeTypes +224 (int (*)(...))QFileSystemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QFileSystemModel::dropMimeData +248 (int (*)(...))QFileSystemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QAbstractItemModel::insertRows +272 (int (*)(...))QAbstractItemModel::insertColumns +280 (int (*)(...))QAbstractItemModel::removeRows +288 (int (*)(...))QAbstractItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QFileSystemModel::fetchMore +320 (int (*)(...))QFileSystemModel::canFetchMore +328 (int (*)(...))QFileSystemModel::flags +336 (int (*)(...))QFileSystemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QFileSystemModel::roleNames +376 (int (*)(...))QAbstractItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7f0b3fcb0548) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16) + QAbstractItemModel (0x0x7f0b3fcb05b0) 0 + primary-for QFileSystemModel (0x0x7f0b3fcb0548) + QObject (0x0x7f0b3fcb25a0) 0 + primary-for QAbstractItemModel (0x0x7f0b3fcb05b0) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7f0b3fcb2cc0) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7f0b3fd0f600) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7f0b3fd41060) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7f0b3fdbed20) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7f0b3fd9d6e8) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16) + QObject (0x0x7f0b3fdbecc0) 0 + primary-for QGenericPlugin (0x0x7f0b3fd9d6e8) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7f0b3fdbede0) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7f0b3fdbeea0) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7f0b3fd9d750) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16) + QObject (0x0x7f0b3fdbee40) 0 + primary-for QInputMethod (0x0x7f0b3fd9d750) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7f0b3fdd9180) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7f0b3fd9d7b8) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16) + QCoreApplication (0x0x7f0b3fd9d820) 0 + primary-for QGuiApplication (0x0x7f0b3fd9d7b8) + QObject (0x0x7f0b3fdd9120) 0 + primary-for QCoreApplication (0x0x7f0b3fd9d820) + +Class QNativeInterface::QX11Application::TypeInfo + size=1 align=1 + base size=0 base align=1 +QNativeInterface::QX11Application::TypeInfo (0x0x7f0b3fdd9480) 0 empty + +Vtable for QNativeInterface::QX11Application +QNativeInterface::QX11Application::_ZTVN16QNativeInterface15QX11ApplicationE: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface15QX11ApplicationE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QX11Application + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QX11Application (0x0x7f0b3fdd9420) 0 nearly-empty + vptr=((& QNativeInterface::QX11Application::_ZTVN16QNativeInterface15QX11ApplicationE) + 16) + +Class QIconEngine::ScaledPixmapArgument + size=48 align=8 + base size=48 base align=8 +QIconEngine::ScaledPixmapArgument (0x0x7f0b3fdd9540) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::isNull +128 (int (*)(...))QIconEngine::scaledPixmap +136 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7f0b3fdd94e0) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7f0b3fdd9600) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7f0b3fd9d888) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16) + QObject (0x0x7f0b3fdd95a0) 0 + primary-for QIconEnginePlugin (0x0x7f0b3fd9d888) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QImageIOHandler::write +56 (int (*)(...))QImageIOHandler::option +64 (int (*)(...))QImageIOHandler::setOption +72 (int (*)(...))QImageIOHandler::supportsOption +80 (int (*)(...))QImageIOHandler::jumpToNextImage +88 (int (*)(...))QImageIOHandler::jumpToImage +96 (int (*)(...))QImageIOHandler::loopCount +104 (int (*)(...))QImageIOHandler::imageCount +112 (int (*)(...))QImageIOHandler::nextImageDelay +120 (int (*)(...))QImageIOHandler::currentImageNumber +128 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7f0b3fdd96c0) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7f0b3fdd9900) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7f0b3fd9d8f0) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16) + QObject (0x0x7f0b3fdd98a0) 0 + primary-for QImageIOPlugin (0x0x7f0b3fd9d8f0) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7f0b3fdd9d80) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7f0b3fdd9e40) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7f0b3fdd9f00) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7f0b3fa78c60) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7f0b3faee1e0) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7f0b3fad3138) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16) + QObject (0x0x7f0b3faee180) 0 + primary-for QMovie (0x0x7f0b3fad3138) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7f0b3faee5a0) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7f0b3fad45b0) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16) + QObject (0x0x7f0b3faee4e0) 0 + primary-for QOffscreenSurface (0x0x7f0b3fad45b0) + QSurface (0x0x7f0b3faee540) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160) + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7f0b3faee840) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7f0b3fad31a0) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16) + QObject (0x0x7f0b3faee7e0) 0 + primary-for QOpenGLContextGroup (0x0x7f0b3fad31a0) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7f0b3faeea20) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7f0b3fad3208) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16) + QObject (0x0x7f0b3faee9c0) 0 + primary-for QOpenGLContext (0x0x7f0b3fad3208) + +Class QNativeInterface::QGLXContext::TypeInfo + size=1 align=1 + base size=0 base align=1 +QNativeInterface::QGLXContext::TypeInfo (0x0x7f0b3faeec60) 0 empty + +Vtable for QNativeInterface::QGLXContext +QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QGLXContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QGLXContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QGLXContext (0x0x7f0b3faeec00) 0 nearly-empty + vptr=((& QNativeInterface::QGLXContext::_ZTVN16QNativeInterface11QGLXContextE) + 16) + +Class QNativeInterface::QEGLContext::TypeInfo + size=1 align=1 + base size=0 base align=1 +QNativeInterface::QEGLContext::TypeInfo (0x0x7f0b3faeed20) 0 empty + +Vtable for QNativeInterface::QEGLContext +QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN16QNativeInterface11QEGLContextE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNativeInterface::QEGLContext + size=8 align=8 + base size=8 base align=8 +QNativeInterface::QEGLContext (0x0x7f0b3faeecc0) 0 nearly-empty + vptr=((& QNativeInterface::QEGLContext::_ZTVN16QNativeInterface11QEGLContextE) + 16) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7f0b3faeed80) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7f0b3fa37420) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7f0b3fa373c0) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7f0b3fad3618) 0 + QOpenGLFunctions (0x0x7f0b3f6aaba0) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1728 align=8 + base size=1728 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7f0b3f6aaf00) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2880 align=8 + base size=2880 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7f0b3fad3680) 0 + QOpenGLFunctionsPrivate (0x0x7f0b3f6aaea0) 0 + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7f0b3f7e0c00) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7f0b3f46b240) 0 + +Class QPageRanges::Range + size=8 align=4 + base size=8 base align=4 +QPageRanges::Range (0x0x7f0b3f523240) 0 + +Class QPageRanges + size=8 align=8 + base size=8 base align=8 +QPageRanges (0x0x7f0b3f5231e0) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageLayout +96 (int (*)(...))QPagedPaintDevice::setPageSize +104 (int (*)(...))QPagedPaintDevice::setPageOrientation +112 (int (*)(...))QPagedPaintDevice::setPageMargins +120 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPagedPaintDevice + size=24 align=8 + base size=24 base align=8 +QPagedPaintDevice (0x0x7f0b3f5944e0) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16) + QPaintDevice (0x0x7f0b3f5967e0) 0 + primary-for QPagedPaintDevice (0x0x7f0b3f5944e0) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7f0b3f596960) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QPaintDeviceWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +352 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +416 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QPaintDevice::redirected +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=56 align=8 + base size=50 base align=8 +QPaintDeviceWindow (0x0x7f0b3f4e0230) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16) + QWindow (0x0x7f0b3f4e02a0) 0 + primary-for QPaintDeviceWindow (0x0x7f0b3f4e0230) + QObject (0x0x7f0b3f596840) 0 + primary-for QWindow (0x0x7f0b3f4e02a0) + QSurface (0x0x7f0b3f5968a0) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 344) + QPaintDevice (0x0x7f0b3f596900) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 408) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7f0b3f596b40) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7f0b3f596ae0) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7f0b3f3cb720) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))QPaintEngine::createPixmap +200 (int (*)(...))QPaintEngine::createPixmapFromImage + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7f0b3f3eef00) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7f0b3f418540) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7f0b3f0b7240) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7f0b3f0b71e0) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7f0b3f14a540) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7f0b3f14ad20) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 33 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::paintEngine +128 (int (*)(...))QPdfWriter::metric +136 (int (*)(...))-16 +144 (int (*)(...))(& _ZTI10QPdfWriter) +152 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +160 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +168 (int (*)(...))QPaintDevice::devType +176 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +184 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +192 (int (*)(...))QPaintDevice::initPainter +200 (int (*)(...))QPaintDevice::redirected +208 (int (*)(...))QPaintDevice::sharedPainter +216 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +224 (int (*)(...))QPagedPaintDevice::setPageLayout +232 (int (*)(...))QPagedPaintDevice::setPageSize +240 (int (*)(...))QPagedPaintDevice::setPageOrientation +248 (int (*)(...))QPagedPaintDevice::setPageMargins +256 (int (*)(...))QPagedPaintDevice::setPageRanges + +Class QPdfWriter + size=40 align=8 + base size=40 base align=8 +QPdfWriter (0x0x7f0b3f0cd930) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16) + QObject (0x0x7f0b3f14ac60) 0 + primary-for QPdfWriter (0x0x7f0b3f0cd930) + QPagedPaintDevice (0x0x7f0b3f149340) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 152) + QPaintDevice (0x0x7f0b3f14acc0) 16 + primary-for QPagedPaintDevice (0x0x7f0b3f149340) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=24 align=8 + base size=24 base align=8 +QPicture (0x0x7f0b3f1493a8) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16) + QPaintDevice (0x0x7f0b3f14af00) 0 + primary-for QPicture (0x0x7f0b3f1493a8) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7f0b3f1b49c0) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7f0b3f1b4960) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7f0b3f209c60) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 60 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QPaintDeviceWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QRasterWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QRasterWindow::redirected +336 (int (*)(...))-16 +344 (int (*)(...))(& _ZTI13QRasterWindow) +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +360 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +392 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +400 (int (*)(...))-40 +408 (int (*)(...))(& _ZTI13QRasterWindow) +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +424 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +432 (int (*)(...))QPaintDevice::devType +440 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +448 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +456 (int (*)(...))QPaintDevice::initPainter +464 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +472 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=56 align=8 + base size=50 base align=8 +QRasterWindow (0x0x7f0b3f20e958) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16) + QPaintDeviceWindow (0x0x7f0b3f1e0540) 0 + primary-for QRasterWindow (0x0x7f0b3f20e958) + QWindow (0x0x7f0b3f1e05b0) 0 + primary-for QPaintDeviceWindow (0x0x7f0b3f1e0540) + QObject (0x0x7f0b3f209b40) 0 + primary-for QWindow (0x0x7f0b3f1e05b0) + QSurface (0x0x7f0b3f209ba0) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 352) + QPaintDevice (0x0x7f0b3f209c00) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 416) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7f0b3f230960) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7f0b3f20ea28) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16) + QObject (0x0x7f0b3f230900) 0 + primary-for QSessionManager (0x0x7f0b3f20ea28) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7f0b3f230b40) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7f0b3f20ea90) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16) + QObject (0x0x7f0b3f230ae0) 0 + primary-for QShortcut (0x0x7f0b3f20ea90) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::multiData +48 (int (*)(...))QStandardItem::setData +56 (int (*)(...))QStandardItem::clone +64 (int (*)(...))QStandardItem::type +72 (int (*)(...))QStandardItem::read +80 (int (*)(...))QStandardItem::write +88 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7f0b3ee6a060) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7f0b3ef5d060) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::clearItemData +216 (int (*)(...))QStandardItemModel::mimeTypes +224 (int (*)(...))QStandardItemModel::mimeData +232 (int (*)(...))QAbstractItemModel::canDropMimeData +240 (int (*)(...))QStandardItemModel::dropMimeData +248 (int (*)(...))QStandardItemModel::supportedDropActions +256 (int (*)(...))QAbstractItemModel::supportedDragActions +264 (int (*)(...))QStandardItemModel::insertRows +272 (int (*)(...))QStandardItemModel::insertColumns +280 (int (*)(...))QStandardItemModel::removeRows +288 (int (*)(...))QStandardItemModel::removeColumns +296 (int (*)(...))QAbstractItemModel::moveRows +304 (int (*)(...))QAbstractItemModel::moveColumns +312 (int (*)(...))QAbstractItemModel::fetchMore +320 (int (*)(...))QAbstractItemModel::canFetchMore +328 (int (*)(...))QStandardItemModel::flags +336 (int (*)(...))QStandardItemModel::sort +344 (int (*)(...))QAbstractItemModel::buddy +352 (int (*)(...))QAbstractItemModel::match +360 (int (*)(...))QAbstractItemModel::span +368 (int (*)(...))QStandardItemModel::roleNames +376 (int (*)(...))QStandardItemModel::multiData +384 (int (*)(...))QAbstractItemModel::submit +392 (int (*)(...))QAbstractItemModel::revert +400 (int (*)(...))QAbstractItemModel::resetInternalData + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7f0b3eef2410) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16) + QAbstractItemModel (0x0x7f0b3eef2478) 0 + primary-for QStandardItemModel (0x0x7f0b3eef2410) + QObject (0x0x7f0b3ef5d000) 0 + primary-for QAbstractItemModel (0x0x7f0b3eef2478) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7f0b3ef5d3c0) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7f0b3f018180) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7f0b3efff1a0) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16) + QObject (0x0x7f0b3f018120) 0 + primary-for QStyleHints (0x0x7f0b3efff1a0) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7f0b3f018360) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7f0b3efff208) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16) + QObject (0x0x7f0b3f018300) 0 + primary-for QTextObject (0x0x7f0b3efff208) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7f0b3f018540) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7f0b3efff270) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16) + QTextObject (0x0x7f0b3efff2d8) 0 + primary-for QTextBlockGroup (0x0x7f0b3efff270) + QObject (0x0x7f0b3f0184e0) 0 + primary-for QTextObject (0x0x7f0b3efff2d8) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7f0b3f0186c0) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7f0b3f018780) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7f0b3f0187e0) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7f0b3efff340) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16) + QTextObject (0x0x7f0b3efff3a8) 0 + primary-for QTextFrame (0x0x7f0b3efff340) + QObject (0x0x7f0b3f018720) 0 + primary-for QTextObject (0x0x7f0b3efff3a8) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7f0b3ec84660) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7f0b3ec84720) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7f0b3ec846c0) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7f0b3ecedf60) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7f0b3ed2ede0) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7f0b3ed3e548) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16) + QObject (0x0x7f0b3ed2ed80) 0 + primary-for QSyntaxHighlighter (0x0x7f0b3ed3e548) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7f0b3ed2ef60) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7f0b3ed5b000) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7f0b3ed5b0c0) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7f0b3ed3e5b0) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16) + QTextBlockGroup (0x0x7f0b3ed3e618) 0 + primary-for QTextList (0x0x7f0b3ed3e5b0) + QTextObject (0x0x7f0b3ed3e680) 0 + primary-for QTextBlockGroup (0x0x7f0b3ed3e618) + QObject (0x0x7f0b3ed5b060) 0 + primary-for QTextObject (0x0x7f0b3ed3e680) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7f0b3ed5b480) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7f0b3ed5bcc0) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7f0b3ed3e6e8) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16) + QTextFrame (0x0x7f0b3ed3e750) 0 + primary-for QTextTable (0x0x7f0b3ed3e6e8) + QTextObject (0x0x7f0b3ed3e7b8) 0 + primary-for QTextFrame (0x0x7f0b3ed3e750) + QObject (0x0x7f0b3ed5bc60) 0 + primary-for QTextObject (0x0x7f0b3ed3e7b8) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7f0b3ed8f0c0) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7f0b3ed3e820) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16) + QObject (0x0x7f0b3ed8f060) 0 + primary-for QUndoGroup (0x0x7f0b3ed3e820) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7f0b3ed8f240) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7f0b3ed8f300) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7f0b3ed3e888) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16) + QObject (0x0x7f0b3ed8f2a0) 0 + primary-for QUndoStack (0x0x7f0b3ed3e888) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7f0b3ed8f4e0) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7f0b3ed3e8f0) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16) + QObject (0x0x7f0b3ed8f480) 0 + primary-for QValidator (0x0x7f0b3ed3e8f0) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7f0b3ed8f780) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7f0b3ed3e958) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16) + QValidator (0x0x7f0b3ed3e9c0) 0 + primary-for QIntValidator (0x0x7f0b3ed3e958) + QObject (0x0x7f0b3ed8f720) 0 + primary-for QValidator (0x0x7f0b3ed3e9c0) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7f0b3ed8f960) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7f0b3ed3ea28) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16) + QValidator (0x0x7f0b3ed3ea90) 0 + primary-for QDoubleValidator (0x0x7f0b3ed3ea28) + QObject (0x0x7f0b3ed8f900) 0 + primary-for QValidator (0x0x7f0b3ed3ea90) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7f0b3ed8fd20) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7f0b3ed3eaf8) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16) + QValidator (0x0x7f0b3ed3eb60) 0 + primary-for QRegularExpressionValidator (0x0x7f0b3ed3eaf8) + QObject (0x0x7f0b3ed8fcc0) 0 + primary-for QValidator (0x0x7f0b3ed3eb60) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7f0b3ed8ff00) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7f0b3ed8fea0) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7f0b3ea72f60) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7f0b3eab50c0) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=40 align=8 + base size=40 base align=8 +QWidget (0x0x7f0b3edd7ee0) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16) + QObject (0x0x7f0b3eab5000) 0 + primary-for QWidget (0x0x7f0b3edd7ee0) + QPaintDevice (0x0x7f0b3eab5060) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7f0b3eb69a20) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0 +480 0 +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=40 align=8 + base size=40 base align=8 +QAbstractButton (0x0x7f0b3ea7fb60) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16) + QWidget (0x0x7f0b3eb7b070) 0 + primary-for QAbstractButton (0x0x7f0b3ea7fb60) + QObject (0x0x7f0b3eb69960) 0 + primary-for QWidget (0x0x7f0b3eb7b070) + QPaintDevice (0x0x7f0b3eb699c0) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7f0b3eb69c60) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI16QAbstractSpinBox) +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +504 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=40 align=8 + base size=40 base align=8 +QAbstractSpinBox (0x0x7f0b3ea7fbc8) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16) + QWidget (0x0x7f0b3eb7b0e0) 0 + primary-for QAbstractSpinBox (0x0x7f0b3ea7fbc8) + QObject (0x0x7f0b3eb69ba0) 0 + primary-for QWidget (0x0x7f0b3eb7b0e0) + QPaintDevice (0x0x7f0b3eb69c00) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 496) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7f0b3ebbb4e0) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=40 align=8 + base size=40 base align=8 +QAbstractSlider (0x0x7f0b3ea7fd68) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16) + QWidget (0x0x7f0b3eb7b5b0) 0 + primary-for QAbstractSlider (0x0x7f0b3ea7fd68) + QObject (0x0x7f0b3ebbb420) 0 + primary-for QWidget (0x0x7f0b3eb7b5b0) + QPaintDevice (0x0x7f0b3ebbb480) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7f0b3ebbb720) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))QSlider::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI7QSlider) +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +472 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=40 align=8 + base size=40 base align=8 +QSlider (0x0x7f0b3ea7fdd0) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16) + QAbstractSlider (0x0x7f0b3ea7fe38) 0 + primary-for QSlider (0x0x7f0b3ea7fdd0) + QWidget (0x0x7f0b3eb7bb60) 0 + primary-for QAbstractSlider (0x0x7f0b3ea7fe38) + QObject (0x0x7f0b3ebbb660) 0 + primary-for QWidget (0x0x7f0b3eb7bb60) + QPaintDevice (0x0x7f0b3ebbb6c0) 16 + vptr=((& QSlider::_ZTV7QSlider) + 464) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7f0b3ebbb9c0) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7f0b3ea7fea0) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16) + QObject (0x0x7f0b3ebbb960) 0 + primary-for QStyle (0x0x7f0b3ea7fea0) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7f0b3e87bc00) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 70 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QTabBar::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))QTabBar::initStyleOption +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI7QTabBar) +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +504 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=40 align=8 + base size=40 base align=8 +QTabBar (0x0x7f0b3e8851a0) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16) + QWidget (0x0x7f0b3e860700) 0 + primary-for QTabBar (0x0x7f0b3e8851a0) + QObject (0x0x7f0b3e87bb40) 0 + primary-for QWidget (0x0x7f0b3e860700) + QPaintDevice (0x0x7f0b3e87bba0) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 496) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7f0b3e87bf00) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))QTabWidget::initStyleOption +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI10QTabWidget) +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +480 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=40 align=8 + base size=40 base align=8 +QTabWidget (0x0x7f0b3e885208) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16) + QWidget (0x0x7f0b3e860d20) 0 + primary-for QTabWidget (0x0x7f0b3e885208) + QObject (0x0x7f0b3e87be40) 0 + primary-for QWidget (0x0x7f0b3e860d20) + QPaintDevice (0x0x7f0b3e87bea0) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 472) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7f0b3e946300) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRubberBand::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QRubberBand) +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +464 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=40 align=8 + base size=40 base align=8 +QRubberBand (0x0x7f0b3e885270) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16) + QWidget (0x0x7f0b3e932070) 0 + primary-for QRubberBand (0x0x7f0b3e885270) + QObject (0x0x7f0b3e946240) 0 + primary-for QWidget (0x0x7f0b3e932070) + QPaintDevice (0x0x7f0b3e9462a0) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 456) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7f0b3e946720) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QFrame) +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +464 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=40 align=8 + base size=40 base align=8 +QFrame (0x0x7f0b3e8852d8) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16) + QWidget (0x0x7f0b3e9321c0) 0 + primary-for QFrame (0x0x7f0b3e8852d8) + QObject (0x0x7f0b3e946660) 0 + primary-for QWidget (0x0x7f0b3e9321c0) + QPaintDevice (0x0x7f0b3e9466c0) 16 + vptr=((& QFrame::_ZTV6QFrame) + 456) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7f0b3e946a20) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7f0b3e885340) 0 + QStyleOption (0x0x7f0b3e946a80) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7f0b4c6a6208) 0 + QStyleOption (0x0x7f0b3e946cc0) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7f0b4c6a6410) 0 + QStyleOption (0x0x7f0b3e9af300) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7f0b3e8853a8) 0 + QStyleOption (0x0x7f0b3e9af540) 0 + +Class QStyleOptionHeader + size=136 align=8 + base size=132 base align=8 +QStyleOptionHeader (0x0x7f0b3e885410) 0 + QStyleOption (0x0x7f0b3e9af780) 0 + +Class QStyleOptionHeaderV2 + size=136 align=8 + base size=136 base align=8 +QStyleOptionHeaderV2 (0x0x7f0b3e885478) 0 + QStyleOptionHeader (0x0x7f0b3e8854e0) 0 + QStyleOption (0x0x7f0b3e9af9c0) 0 + +Class QStyleOptionButton + size=112 align=8 + base size=112 base align=8 +QStyleOptionButton (0x0x7f0b3e8855b0) 0 + QStyleOption (0x0x7f0b3e9afd80) 0 + +Class QStyleOptionTab + size=160 align=8 + base size=156 base align=8 +QStyleOptionTab (0x0x7f0b3e885750) 0 + QStyleOption (0x0x7f0b3ea293c0) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7f0b3e885a28) 0 + QStyleOption (0x0x7f0b3ea29ba0) 0 + +Class QStyleOptionProgressBar + size=112 align=8 + base size=111 base align=8 +QStyleOptionProgressBar (0x0x7f0b3e885bc8) 0 + QStyleOption (0x0x7f0b3e6eb1e0) 0 + +Class QStyleOptionMenuItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionMenuItem (0x0x7f0b3e885c30) 0 + QStyleOption (0x0x7f0b3e6eb420) 0 + +Class QStyleOptionDockWidget + size=96 align=8 + base size=92 base align=8 +QStyleOptionDockWidget (0x0x7f0b3e885c98) 0 + QStyleOption (0x0x7f0b3e6eb660) 0 + +Class QStyleOptionViewItem + size=208 align=8 + base size=208 base align=8 +QStyleOptionViewItem (0x0x7f0b3e885d00) 0 + QStyleOption (0x0x7f0b3e6eb8a0) 0 + +Class QStyleOptionToolBox + size=104 align=8 + base size=104 base align=8 +QStyleOptionToolBox (0x0x7f0b3e885ea0) 0 + QStyleOption (0x0x7f0b3e6ebea0) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7f0b3e885f08) 0 + QStyleOption (0x0x7f0b3e78a120) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7f0b3e885f70) 0 + QStyleOption (0x0x7f0b3e78a3c0) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=128 base align=8 +QStyleOptionSlider (0x0x7f0b3e79e000) 0 + QStyleOptionComplex (0x0x7f0b3e79e068) 0 + QStyleOption (0x0x7f0b3e78a660) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7f0b3e79e138) 0 + QStyleOptionComplex (0x0x7f0b3e79e1a0) 0 + QStyleOption (0x0x7f0b3e78aa20) 0 + +Class QStyleOptionToolButton + size=152 align=8 + base size=152 base align=8 +QStyleOptionToolButton (0x0x7f0b3e79e270) 0 + QStyleOptionComplex (0x0x7f0b3e79e2d8) 0 + QStyleOption (0x0x7f0b3e78ac60) 0 + +Class QStyleOptionComboBox + size=144 align=8 + base size=140 base align=8 +QStyleOptionComboBox (0x0x7f0b3e79e478) 0 + QStyleOptionComplex (0x0x7f0b3e79e4e0) 0 + QStyleOption (0x0x7f0b3e7da240) 0 + +Class QStyleOptionTitleBar + size=112 align=8 + base size=112 base align=8 +QStyleOptionTitleBar (0x0x7f0b3e79e548) 0 + QStyleOptionComplex (0x0x7f0b3e79e5b0) 0 + QStyleOption (0x0x7f0b3e7da480) 0 + +Class QStyleOptionGroupBox + size=136 align=8 + base size=132 base align=8 +QStyleOptionGroupBox (0x0x7f0b3e79e618) 0 + QStyleOptionComplex (0x0x7f0b3e79e680) 0 + QStyleOption (0x0x7f0b3e7da6c0) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7f0b3e79e6e8) 0 + QStyleOptionComplex (0x0x7f0b3e79e750) 0 + QStyleOption (0x0x7f0b3e7da900) 0 + +Class QStyleOptionGraphicsItem + size=96 align=8 + base size=96 base align=8 +QStyleOptionGraphicsItem (0x0x7f0b3e79e7b8) 0 + QStyleOption (0x0x7f0b3e7dab40) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7f0b3e7daea0) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7f0b3e79e820) 0 + QStyleHintReturn (0x0x7f0b3e7daf00) 0 + +Class QStyleHintReturnVariant + size=40 align=8 + base size=40 base align=8 +QStyleHintReturnVariant (0x0x7f0b3e79e8f0) 0 + QStyleHintReturn (0x0x7f0b3e7daf60) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7f0b3e845120) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7f0b3e79e9c0) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16) + QObject (0x0x7f0b3e8450c0) 0 + primary-for QAbstractItemDelegate (0x0x7f0b3e79e9c0) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7f0b3e845360) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI19QAbstractScrollArea) +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +496 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=40 align=8 + base size=40 base align=8 +QAbstractScrollArea (0x0x7f0b3e79ea28) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16) + QFrame (0x0x7f0b3e79ea90) 0 + primary-for QAbstractScrollArea (0x0x7f0b3e79ea28) + QWidget (0x0x7f0b3e83c4d0) 0 + primary-for QFrame (0x0x7f0b3e79ea90) + QObject (0x0x7f0b3e8452a0) 0 + primary-for QWidget (0x0x7f0b3e83c4d0) + QPaintDevice (0x0x7f0b3e845300) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 488) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7f0b3e845660) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QAbstractScrollArea::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))__cxa_pure_virtual +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QAbstractItemView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))__cxa_pure_virtual +736 (int (*)(...))__cxa_pure_virtual +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI17QAbstractItemView) +800 0 +808 0 +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=40 align=8 + base size=40 base align=8 +QAbstractItemView (0x0x7f0b3e79eaf8) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16) + QAbstractScrollArea (0x0x7f0b3e79eb60) 0 + primary-for QAbstractItemView (0x0x7f0b3e79eaf8) + QFrame (0x0x7f0b3e79ebc8) 0 + primary-for QAbstractScrollArea (0x0x7f0b3e79eb60) + QWidget (0x0x7f0b3e83c690) 0 + primary-for QFrame (0x0x7f0b3e79ebc8) + QObject (0x0x7f0b3e8455a0) 0 + primary-for QWidget (0x0x7f0b3e83c690) + QPaintDevice (0x0x7f0b3e845600) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 800) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7f0b3e481bd0) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16) + QAccessibleObject (0x0x7f0b3e79ed68) 0 + primary-for QAccessibleWidget (0x0x7f0b3e481bd0) + QAccessibleInterface (0x0x7f0b3e4f90c0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f0b3e79ed68) + QAccessibleActionInterface (0x0x7f0b3e4f9120) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7f0b3e4f9240) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7f0b3e79edd0) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16) + QGuiApplication (0x0x7f0b3e79ee38) 0 + primary-for QApplication (0x0x7f0b3e79edd0) + QCoreApplication (0x0x7f0b3e79eea0) 0 + primary-for QGuiApplication (0x0x7f0b3e79ee38) + QObject (0x0x7f0b3e4f91e0) 0 + primary-for QCoreApplication (0x0x7f0b3e79eea0) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7f0b3e4f94e0) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7f0b3e79ef08) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16) + QLayoutItem (0x0x7f0b3e4f9720) 0 + primary-for QSpacerItem (0x0x7f0b3e79ef08) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QWidgetItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7f0b3e79ef70) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16) + QLayoutItem (0x0x7f0b3e4f9960) 0 + primary-for QWidgetItem (0x0x7f0b3e79ef70) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QWidgetItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7f0b3e79e0d0) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16) + QWidgetItem (0x0x7f0b3e54a000) 0 + primary-for QWidgetItemV2 (0x0x7f0b3e79e0d0) + QLayoutItem (0x0x7f0b3e4f9b40) 0 + primary-for QWidgetItem (0x0x7f0b3e54a000) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7f0b3e4f9cc0) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QLayout::setGeometry +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI7QLayout) +272 0 +280 0 +288 (int (*)(...))__cxa_pure_virtual +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +312 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +320 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QLayoutItem::hasHeightForWidth +352 (int (*)(...))QLayoutItem::heightForWidth +360 (int (*)(...))QLayoutItem::minimumHeightForWidth +368 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7f0b3e481d90) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16) + QObject (0x0x7f0b3e4f9c00) 0 + primary-for QLayout (0x0x7f0b3e481d90) + QLayoutItem (0x0x7f0b3e4f9c60) 16 + vptr=((& QLayout::_ZTV7QLayout) + 272) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7f0b3e577000) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::spacing +120 (int (*)(...))QGridLayout::setSpacing +128 (int (*)(...))QGridLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QGridLayout::addItem +152 (int (*)(...))QGridLayout::expandingDirections +160 (int (*)(...))QGridLayout::minimumSize +168 (int (*)(...))QGridLayout::maximumSize +176 (int (*)(...))QGridLayout::setGeometry +184 (int (*)(...))QGridLayout::itemAt +192 (int (*)(...))QGridLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QGridLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QGridLayout::sizeHint +264 (int (*)(...))QGridLayout::hasHeightForWidth +272 (int (*)(...))QGridLayout::heightForWidth +280 (int (*)(...))QGridLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QGridLayout) +304 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +312 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +320 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +328 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +336 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +352 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +384 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +392 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +400 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7f0b3e54a068) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16) + QLayout (0x0x7f0b3e5550e0) 0 + primary-for QGridLayout (0x0x7f0b3e54a068) + QObject (0x0x7f0b3e4f9f00) 0 + primary-for QLayout (0x0x7f0b3e5550e0) + QLayoutItem (0x0x7f0b3e4f9f60) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 304) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7f0b3e5772a0) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI10QBoxLayout) +304 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +312 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7f0b3e54a0d0) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16) + QLayout (0x0x7f0b3e555150) 0 + primary-for QBoxLayout (0x0x7f0b3e54a0d0) + QObject (0x0x7f0b3e5771e0) 0 + primary-for QLayout (0x0x7f0b3e555150) + QLayoutItem (0x0x7f0b3e577240) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 304) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7f0b3e5774e0) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QHBoxLayout) +304 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +312 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7f0b3e54a138) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16) + QBoxLayout (0x0x7f0b3e54a1a0) 0 + primary-for QHBoxLayout (0x0x7f0b3e54a138) + QLayout (0x0x7f0b3e555460) 0 + primary-for QBoxLayout (0x0x7f0b3e54a1a0) + QObject (0x0x7f0b3e577420) 0 + primary-for QLayout (0x0x7f0b3e555460) + QLayoutItem (0x0x7f0b3e577480) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 304) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7f0b3e577660) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 55 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::spacing +120 (int (*)(...))QBoxLayout::setSpacing +128 (int (*)(...))QBoxLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QBoxLayout::addItem +152 (int (*)(...))QBoxLayout::expandingDirections +160 (int (*)(...))QBoxLayout::minimumSize +168 (int (*)(...))QBoxLayout::maximumSize +176 (int (*)(...))QBoxLayout::setGeometry +184 (int (*)(...))QBoxLayout::itemAt +192 (int (*)(...))QBoxLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QBoxLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QBoxLayout::sizeHint +264 (int (*)(...))QBoxLayout::hasHeightForWidth +272 (int (*)(...))QBoxLayout::heightForWidth +280 (int (*)(...))QBoxLayout::minimumHeightForWidth +288 (int (*)(...))-16 +296 (int (*)(...))(& _ZTI11QVBoxLayout) +304 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +312 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +320 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +328 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +336 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +352 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +376 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +384 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +392 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +400 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +408 (int (*)(...))QLayoutItem::widget +416 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +424 (int (*)(...))QLayoutItem::spacerItem +432 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7f0b3e54a208) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16) + QBoxLayout (0x0x7f0b3e54a270) 0 + primary-for QVBoxLayout (0x0x7f0b3e54a208) + QLayout (0x0x7f0b3e5554d0) 0 + primary-for QBoxLayout (0x0x7f0b3e54a270) + QObject (0x0x7f0b3e5775a0) 0 + primary-for QLayout (0x0x7f0b3e5554d0) + QLayoutItem (0x0x7f0b3e577600) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 304) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7f0b3e577780) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7f0b3e54a2d8) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16) + QObject (0x0x7f0b3e577720) 0 + primary-for QButtonGroup (0x0x7f0b3e54a2d8) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7f0b3e5779c0) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=40 align=8 + base size=40 base align=8 +QCalendarWidget (0x0x7f0b3e54a340) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16) + QWidget (0x0x7f0b3e555540) 0 + primary-for QCalendarWidget (0x0x7f0b3e54a340) + QObject (0x0x7f0b3e577900) 0 + primary-for QWidget (0x0x7f0b3e555540) + QPaintDevice (0x0x7f0b3e577960) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7f0b3e577e40) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))QCheckBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QCheckBox) +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +488 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=40 align=8 + base size=40 base align=8 +QCheckBox (0x0x7f0b3e54a3a8) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16) + QAbstractButton (0x0x7f0b3e54a410) 0 + primary-for QCheckBox (0x0x7f0b3e54a3a8) + QWidget (0x0x7f0b3e555930) 0 + primary-for QAbstractButton (0x0x7f0b3e54a410) + QObject (0x0x7f0b3e577d80) 0 + primary-for QWidget (0x0x7f0b3e555930) + QPaintDevice (0x0x7f0b3e577de0) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 480) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7f0b3e6000c0) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=40 align=8 + base size=40 base align=8 +QDialog (0x0x7f0b3e54a478) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16) + QWidget (0x0x7f0b3e5559a0) 0 + primary-for QDialog (0x0x7f0b3e54a478) + QObject (0x0x7f0b3e600000) 0 + primary-for QWidget (0x0x7f0b3e5559a0) + QPaintDevice (0x0x7f0b3e600060) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7f0b3e600300) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=40 align=8 + base size=40 base align=8 +QColorDialog (0x0x7f0b3e54a4e0) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16) + QDialog (0x0x7f0b3e54a548) 0 + primary-for QColorDialog (0x0x7f0b3e54a4e0) + QWidget (0x0x7f0b3e555af0) 0 + primary-for QDialog (0x0x7f0b3e54a548) + QObject (0x0x7f0b3e600240) 0 + primary-for QWidget (0x0x7f0b3e555af0) + QPaintDevice (0x0x7f0b3e6002a0) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7f0b3e600900) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7f0b3e600a20) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 109 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QColumnView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QColumnView::setModel +480 (int (*)(...))QColumnView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QColumnView::visualRect +504 (int (*)(...))QColumnView::scrollTo +512 (int (*)(...))QColumnView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QColumnView::setRootIndex +560 (int (*)(...))QAbstractItemView::doItemsLayout +568 (int (*)(...))QColumnView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QColumnView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QColumnView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QAbstractItemView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QColumnView::moveCursor +704 (int (*)(...))QColumnView::horizontalOffset +712 (int (*)(...))QColumnView::verticalOffset +720 (int (*)(...))QColumnView::isIndexHidden +728 (int (*)(...))QColumnView::setSelection +736 (int (*)(...))QColumnView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QColumnView::createColumn +792 (int (*)(...))-16 +800 (int (*)(...))(& _ZTI11QColumnView) +808 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +816 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=40 align=8 + base size=40 base align=8 +QColumnView (0x0x7f0b3e54a6e8) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16) + QAbstractItemView (0x0x7f0b3e54a750) 0 + primary-for QColumnView (0x0x7f0b3e54a6e8) + QAbstractScrollArea (0x0x7f0b3e54a7b8) 0 + primary-for QAbstractItemView (0x0x7f0b3e54a750) + QFrame (0x0x7f0b3e54a820) 0 + primary-for QAbstractScrollArea (0x0x7f0b3e54a7b8) + QWidget (0x0x7f0b3e555e00) 0 + primary-for QFrame (0x0x7f0b3e54a820) + QObject (0x0x7f0b3e600960) 0 + primary-for QWidget (0x0x7f0b3e555e00) + QPaintDevice (0x0x7f0b3e6009c0) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 808) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7f0b3e600c60) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI9QComboBox) +480 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +488 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=40 align=8 + base size=40 base align=8 +QComboBox (0x0x7f0b3e54a888) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16) + QWidget (0x0x7f0b3e555e70) 0 + primary-for QComboBox (0x0x7f0b3e54a888) + QObject (0x0x7f0b3e600ba0) 0 + primary-for QWidget (0x0x7f0b3e555e70) + QPaintDevice (0x0x7f0b3e600c00) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 480) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7f0b3e2bd240) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QPushButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QPushButton) +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +488 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=40 align=8 + base size=40 base align=8 +QPushButton (0x0x7f0b3e54a8f0) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16) + QAbstractButton (0x0x7f0b3e54a958) 0 + primary-for QPushButton (0x0x7f0b3e54a8f0) + QWidget (0x0x7f0b3e294380) 0 + primary-for QAbstractButton (0x0x7f0b3e54a958) + QObject (0x0x7f0b3e2bd180) 0 + primary-for QWidget (0x0x7f0b3e294380) + QPaintDevice (0x0x7f0b3e2bd1e0) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 480) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7f0b3e2bd480) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QPushButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QPushButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QCommandLinkButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI18QCommandLinkButton) +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +488 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=40 align=8 + base size=40 base align=8 +QCommandLinkButton (0x0x7f0b3e54a9c0) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16) + QPushButton (0x0x7f0b3e54aa28) 0 + primary-for QCommandLinkButton (0x0x7f0b3e54a9c0) + QAbstractButton (0x0x7f0b3e54aa90) 0 + primary-for QPushButton (0x0x7f0b3e54aa28) + QWidget (0x0x7f0b3e2943f0) 0 + primary-for QAbstractButton (0x0x7f0b3e54aa90) + QObject (0x0x7f0b3e2bd3c0) 0 + primary-for QWidget (0x0x7f0b3e2943f0) + QPaintDevice (0x0x7f0b3e2bd420) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 480) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7f0b3e2bd660) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7f0b3e54aaf8) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16) + QStyle (0x0x7f0b3e54ab60) 0 + primary-for QCommonStyle (0x0x7f0b3e54aaf8) + QObject (0x0x7f0b3e2bd600) 0 + primary-for QStyle (0x0x7f0b3e54ab60) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7f0b3e2bd840) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7f0b3e54abc8) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16) + QObject (0x0x7f0b3e2bd7e0) 0 + primary-for QCompleter (0x0x7f0b3e54abc8) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7f0b3e2bdba0) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7f0b3e54ac30) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16) + QObject (0x0x7f0b3e2bdb40) 0 + primary-for QDataWidgetMapper (0x0x7f0b3e54ac30) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7f0b3e2bdea0) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QDateTimeEdit) +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +520 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=40 align=8 + base size=40 base align=8 +QDateTimeEdit (0x0x7f0b3e54ac98) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16) + QAbstractSpinBox (0x0x7f0b3e54ad00) 0 + primary-for QDateTimeEdit (0x0x7f0b3e54ac98) + QWidget (0x0x7f0b3e2947e0) 0 + primary-for QAbstractSpinBox (0x0x7f0b3e54ad00) + QObject (0x0x7f0b3e2bdde0) 0 + primary-for QWidget (0x0x7f0b3e2947e0) + QPaintDevice (0x0x7f0b3e2bde40) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 512) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7f0b3e34e480) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QTimeEdit) +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +520 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=40 align=8 + base size=40 base align=8 +QTimeEdit (0x0x7f0b3e54aea0) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16) + QDateTimeEdit (0x0x7f0b3e54af08) 0 + primary-for QTimeEdit (0x0x7f0b3e54aea0) + QAbstractSpinBox (0x0x7f0b3e54af70) 0 + primary-for QDateTimeEdit (0x0x7f0b3e54af08) + QWidget (0x0x7f0b3e294d20) 0 + primary-for QAbstractSpinBox (0x0x7f0b3e54af70) + QObject (0x0x7f0b3e34e3c0) 0 + primary-for QWidget (0x0x7f0b3e294d20) + QPaintDevice (0x0x7f0b3e34e420) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 512) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7f0b3e34e600) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::initStyleOption +472 (int (*)(...))QDateTimeEdit::stepEnabled +480 (int (*)(...))QDateTimeEdit::dateTimeFromText +488 (int (*)(...))QDateTimeEdit::textFromDateTime +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI9QDateEdit) +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +520 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=40 align=8 + base size=40 base align=8 +QDateEdit (0x0x7f0b3e372000) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16) + QDateTimeEdit (0x0x7f0b3e372068) 0 + primary-for QDateEdit (0x0x7f0b3e372000) + QAbstractSpinBox (0x0x7f0b3e3720d0) 0 + primary-for QDateTimeEdit (0x0x7f0b3e372068) + QWidget (0x0x7f0b3e294d90) 0 + primary-for QAbstractSpinBox (0x0x7f0b3e3720d0) + QObject (0x0x7f0b3e34e540) 0 + primary-for QWidget (0x0x7f0b3e294d90) + QPaintDevice (0x0x7f0b3e34e5a0) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 512) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7f0b3e34e960) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))QDial::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI5QDial) +464 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +472 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=40 align=8 + base size=40 base align=8 +QDial (0x0x7f0b3e372138) 0 + vptr=((& QDial::_ZTV5QDial) + 16) + QAbstractSlider (0x0x7f0b3e3721a0) 0 + primary-for QDial (0x0x7f0b3e372138) + QWidget (0x0x7f0b3e294e00) 0 + primary-for QAbstractSlider (0x0x7f0b3e3721a0) + QObject (0x0x7f0b3e34e8a0) 0 + primary-for QWidget (0x0x7f0b3e294e00) + QPaintDevice (0x0x7f0b3e34e900) 16 + vptr=((& QDial::_ZTV5QDial) + 464) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7f0b3e34eba0) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=40 align=8 + base size=40 base align=8 +QDialogButtonBox (0x0x7f0b3e372208) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16) + QWidget (0x0x7f0b3e294e70) 0 + primary-for QDialogButtonBox (0x0x7f0b3e372208) + QObject (0x0x7f0b3e34eae0) 0 + primary-for QWidget (0x0x7f0b3e294e70) + QPaintDevice (0x0x7f0b3e34eb40) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7f0b3e3fb2a0) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDockWidget::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QDockWidget) +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +464 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=40 align=8 + base size=40 base align=8 +QDockWidget (0x0x7f0b3e3723a8) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16) + QWidget (0x0x7f0b3e3bef50) 0 + primary-for QDockWidget (0x0x7f0b3e3723a8) + QObject (0x0x7f0b3e3fb1e0) 0 + primary-for QWidget (0x0x7f0b3e3bef50) + QPaintDevice (0x0x7f0b3e3fb240) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 456) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7f0b3e3fb960) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7f0b3e0ae000) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=40 align=8 + base size=40 base align=8 +QErrorMessage (0x0x7f0b3e372680) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16) + QDialog (0x0x7f0b3e3726e8) 0 + primary-for QErrorMessage (0x0x7f0b3e372680) + QWidget (0x0x7f0b3e4209a0) 0 + primary-for QDialog (0x0x7f0b3e3726e8) + QObject (0x0x7f0b3e3fbf00) 0 + primary-for QWidget (0x0x7f0b3e4209a0) + QPaintDevice (0x0x7f0b3e3fbf60) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7f0b3e0ae240) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=40 align=8 + base size=40 base align=8 +QFileDialog (0x0x7f0b3e372750) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16) + QDialog (0x0x7f0b3e3727b8) 0 + primary-for QFileDialog (0x0x7f0b3e372750) + QWidget (0x0x7f0b3e420a10) 0 + primary-for QDialog (0x0x7f0b3e3727b8) + QObject (0x0x7f0b3e0ae180) 0 + primary-for QWidget (0x0x7f0b3e420a10) + QPaintDevice (0x0x7f0b3e0ae1e0) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QAbstractFileIconProvider::type +56 (int (*)(...))QAbstractFileIconProvider::setOptions +64 (int (*)(...))QAbstractFileIconProvider::options + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7f0b3e372958) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16) + QAbstractFileIconProvider (0x0x7f0b3e0aeba0) 0 + primary-for QFileIconProvider (0x0x7f0b3e372958) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7f0b3e0aed80) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFocusFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QFocusFrame) +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +464 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=40 align=8 + base size=40 base align=8 +QFocusFrame (0x0x7f0b3e3729c0) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16) + QWidget (0x0x7f0b3e0c1380) 0 + primary-for QFocusFrame (0x0x7f0b3e3729c0) + QObject (0x0x7f0b3e0aecc0) 0 + primary-for QWidget (0x0x7f0b3e0c1380) + QPaintDevice (0x0x7f0b3e0aed20) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 456) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7f0b3e155000) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::setModel +440 (int (*)(...))QComboBox::showPopup +448 (int (*)(...))QComboBox::hidePopup +456 (int (*)(...))QComboBox::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI13QFontComboBox) +480 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +488 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=40 align=8 + base size=40 base align=8 +QFontComboBox (0x0x7f0b3e372a28) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16) + QComboBox (0x0x7f0b3e372a90) 0 + primary-for QFontComboBox (0x0x7f0b3e372a28) + QWidget (0x0x7f0b3e0c13f0) 0 + primary-for QComboBox (0x0x7f0b3e372a90) + QObject (0x0x7f0b3e0aef00) 0 + primary-for QWidget (0x0x7f0b3e0c13f0) + QPaintDevice (0x0x7f0b3e0aef60) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 480) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7f0b3e1556c0) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=40 align=8 + base size=40 base align=8 +QFontDialog (0x0x7f0b3e372c30) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16) + QDialog (0x0x7f0b3e372c98) 0 + primary-for QFontDialog (0x0x7f0b3e372c30) + QWidget (0x0x7f0b3e0c1690) 0 + primary-for QDialog (0x0x7f0b3e372c98) + QObject (0x0x7f0b3e155600) 0 + primary-for QWidget (0x0x7f0b3e0c1690) + QPaintDevice (0x0x7f0b3e155660) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7f0b3e155d80) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7f0b3e155de0) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::spacing +120 (int (*)(...))QFormLayout::setSpacing +128 (int (*)(...))QFormLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QFormLayout::addItem +152 (int (*)(...))QFormLayout::expandingDirections +160 (int (*)(...))QFormLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QFormLayout::setGeometry +184 (int (*)(...))QFormLayout::itemAt +192 (int (*)(...))QFormLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QFormLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QFormLayout::sizeHint +264 (int (*)(...))QFormLayout::hasHeightForWidth +272 (int (*)(...))QFormLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI11QFormLayout) +296 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +304 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +312 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +320 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +344 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +376 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7f0b3e372e38) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16) + QLayout (0x0x7f0b3e0c19a0) 0 + primary-for QFormLayout (0x0x7f0b3e372e38) + QObject (0x0x7f0b3e155cc0) 0 + primary-for QLayout (0x0x7f0b3e0c19a0) + QLayoutItem (0x0x7f0b3e155d20) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 296) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7f0b3de960c0) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7f0b3e24c9c0) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16) + QObject (0x0x7f0b3de96060) 0 + primary-for QGesture (0x0x7f0b3e24c9c0) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7f0b3de962a0) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7f0b3e24ca28) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16) + QGesture (0x0x7f0b3e24ca90) 0 + primary-for QPanGesture (0x0x7f0b3e24ca28) + QObject (0x0x7f0b3de96240) 0 + primary-for QGesture (0x0x7f0b3e24ca90) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7f0b3de96480) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7f0b3e24caf8) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16) + QGesture (0x0x7f0b3e24cb60) 0 + primary-for QPinchGesture (0x0x7f0b3e24caf8) + QObject (0x0x7f0b3de96420) 0 + primary-for QGesture (0x0x7f0b3e24cb60) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7f0b3df28cc0) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7f0b3df58478) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16) + QGesture (0x0x7f0b3df584e0) 0 + primary-for QSwipeGesture (0x0x7f0b3df58478) + QObject (0x0x7f0b3df28c60) 0 + primary-for QGesture (0x0x7f0b3df584e0) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7f0b3df28f60) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7f0b3df58548) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16) + QGesture (0x0x7f0b3df585b0) 0 + primary-for QTapGesture (0x0x7f0b3df58548) + QObject (0x0x7f0b3df28f00) 0 + primary-for QGesture (0x0x7f0b3df585b0) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7f0b3df71180) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7f0b3df58618) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16) + QGesture (0x0x7f0b3df58680) 0 + primary-for QTapAndHoldGesture (0x0x7f0b3df58618) + QObject (0x0x7f0b3df71120) 0 + primary-for QGesture (0x0x7f0b3df58680) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGestureEvent + size=64 align=8 + base size=64 base align=8 +QGestureEvent (0x0x7f0b3df586e8) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16) + QEvent (0x0x7f0b3df71300) 0 + primary-for QGestureEvent (0x0x7f0b3df586e8) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0 +24 0 +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7f0b3e04fe40) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7f0b3dc8d2a0) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7f0b3dd82540) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0 +48 0 +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0 +136 0 +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7f0b3dd92000) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16) + QObject (0x0x7f0b3dd82480) 0 + primary-for QGraphicsObject (0x0x7f0b3dd92000) + QGraphicsItem (0x0x7f0b3dd824e0) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7f0b3dc7c820) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16) + QGraphicsItem (0x0x7f0b3dd82600) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f0b3dc7c820) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7f0b3dc7c888) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f0b3dc7c8f0) 0 + primary-for QGraphicsPathItem (0x0x7f0b3dc7c888) + QGraphicsItem (0x0x7f0b3dd82720) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f0b3dc7c8f0) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7f0b3dc7c958) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f0b3dc7c9c0) 0 + primary-for QGraphicsRectItem (0x0x7f0b3dc7c958) + QGraphicsItem (0x0x7f0b3dd82840) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f0b3dc7c9c0) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7f0b3dc7ca28) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f0b3dc7ca90) 0 + primary-for QGraphicsEllipseItem (0x0x7f0b3dc7ca28) + QGraphicsItem (0x0x7f0b3dd829c0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f0b3dc7ca90) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7f0b3dc7caf8) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f0b3dc7cb60) 0 + primary-for QGraphicsPolygonItem (0x0x7f0b3dc7caf8) + QGraphicsItem (0x0x7f0b3dd82b40) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f0b3dc7cb60) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7f0b3dc7cbc8) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16) + QGraphicsItem (0x0x7f0b3dd82c60) 0 + primary-for QGraphicsLineItem (0x0x7f0b3dc7cbc8) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7f0b3dc7cc30) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16) + QGraphicsItem (0x0x7f0b3dd82de0) 0 + primary-for QGraphicsPixmapItem (0x0x7f0b3dc7cc30) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7f0b3de09060) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7f0b3dc7cc98) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16) + QGraphicsObject (0x0x7f0b3dd92460) 0 + primary-for QGraphicsTextItem (0x0x7f0b3dc7cc98) + QObject (0x0x7f0b3dd82f60) 0 + primary-for QGraphicsObject (0x0x7f0b3dd92460) + QGraphicsItem (0x0x7f0b3de09000) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7f0b3dc7cdd0) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f0b3dc7ce38) 0 + primary-for QGraphicsSimpleTextItem (0x0x7f0b3dc7cdd0) + QGraphicsItem (0x0x7f0b3de09300) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f0b3dc7ce38) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7f0b3dc7cea0) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16) + QGraphicsItem (0x0x7f0b3de09420) 0 + primary-for QGraphicsItemGroup (0x0x7f0b3dc7cea0) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7f0b3de09ae0) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))QGraphicsLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7f0b3dc7cf70) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16) + QGraphicsLayoutItem (0x0x7f0b3da7e1e0) 0 + primary-for QGraphicsLayout (0x0x7f0b3dc7cf70) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7f0b3da7e4e0) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7f0b3da90000) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16) + QObject (0x0x7f0b3da7e480) 0 + primary-for QGraphicsAnchor (0x0x7f0b3da90000) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsAnchorLayout::sizeHint +72 (int (*)(...))QGraphicsAnchorLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsAnchorLayout::count +96 (int (*)(...))QGraphicsAnchorLayout::itemAt +104 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7f0b3da90068) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16) + QGraphicsLayout (0x0x7f0b3da900d0) 0 + primary-for QGraphicsAnchorLayout (0x0x7f0b3da90068) + QGraphicsLayoutItem (0x0x7f0b3da7e660) 0 + primary-for QGraphicsLayout (0x0x7f0b3da900d0) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7f0b3da7e7e0) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7f0b3da90138) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16) + QObject (0x0x7f0b3da7e780) 0 + primary-for QGraphicsEffect (0x0x7f0b3da90138) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7f0b3da7ee40) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7f0b3da902d8) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16) + QGraphicsEffect (0x0x7f0b3da90340) 0 + primary-for QGraphicsColorizeEffect (0x0x7f0b3da902d8) + QObject (0x0x7f0b3da7ede0) 0 + primary-for QGraphicsEffect (0x0x7f0b3da90340) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7f0b3db07060) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7f0b3da903a8) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16) + QGraphicsEffect (0x0x7f0b3da90410) 0 + primary-for QGraphicsBlurEffect (0x0x7f0b3da903a8) + QObject (0x0x7f0b3db07000) 0 + primary-for QGraphicsEffect (0x0x7f0b3da90410) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7f0b3db07780) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7f0b3da905b0) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16) + QGraphicsEffect (0x0x7f0b3da90618) 0 + primary-for QGraphicsDropShadowEffect (0x0x7f0b3da905b0) + QObject (0x0x7f0b3db07720) 0 + primary-for QGraphicsEffect (0x0x7f0b3da90618) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7f0b3db07ba0) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7f0b3da90680) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16) + QGraphicsEffect (0x0x7f0b3da906e8) 0 + primary-for QGraphicsOpacityEffect (0x0x7f0b3da90680) + QObject (0x0x7f0b3db07b40) 0 + primary-for QGraphicsEffect (0x0x7f0b3da906e8) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsGridLayout::sizeHint +72 (int (*)(...))QGraphicsGridLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsGridLayout::count +96 (int (*)(...))QGraphicsGridLayout::itemAt +104 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7f0b3da90750) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16) + QGraphicsLayout (0x0x7f0b3da907b8) 0 + primary-for QGraphicsGridLayout (0x0x7f0b3da90750) + QGraphicsLayoutItem (0x0x7f0b3db07d20) 0 + primary-for QGraphicsLayout (0x0x7f0b3da907b8) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7f0b3db07f00) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7f0b3da908f0) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16) + QObject (0x0x7f0b3db07ea0) 0 + primary-for QGraphicsItemAnimation (0x0x7f0b3da908f0) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLayoutItem::isEmpty +64 (int (*)(...))QGraphicsLinearLayout::sizeHint +72 (int (*)(...))QGraphicsLinearLayout::invalidate +80 (int (*)(...))QGraphicsLayout::widgetEvent +88 (int (*)(...))QGraphicsLinearLayout::count +96 (int (*)(...))QGraphicsLinearLayout::itemAt +104 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7f0b3da90958) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16) + QGraphicsLayout (0x0x7f0b3da909c0) 0 + primary-for QGraphicsLinearLayout (0x0x7f0b3da90958) + QGraphicsLayoutItem (0x0x7f0b3dba6000) 0 + primary-for QGraphicsLayout (0x0x7f0b3da909c0) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7f0b3dba6300) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 93 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsLayoutItem::isEmpty +736 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7f0b3dbb7000) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16) + QGraphicsObject (0x0x7f0b3dbb7070) 0 + primary-for QGraphicsWidget (0x0x7f0b3dbb7000) + QObject (0x0x7f0b3dba61e0) 0 + primary-for QGraphicsObject (0x0x7f0b3dbb7070) + QGraphicsItem (0x0x7f0b3dba6240) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376) + QGraphicsLayoutItem (0x0x7f0b3dba62a0) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7f0b3dba6780) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsLayoutItem::isEmpty +856 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7f0b3da90af8) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16) + QGraphicsWidget (0x0x7f0b3dbb71c0) 0 + primary-for QGraphicsProxyWidget (0x0x7f0b3da90af8) + QGraphicsObject (0x0x7f0b3dbb7230) 0 + primary-for QGraphicsWidget (0x0x7f0b3dbb71c0) + QObject (0x0x7f0b3dba6660) 0 + primary-for QGraphicsObject (0x0x7f0b3dbb7230) + QGraphicsItem (0x0x7f0b3dba66c0) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496) + QGraphicsLayoutItem (0x0x7f0b3dba6720) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7f0b3dba6ae0) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems +272 (int (*)(...))QGraphicsScene::focusNextPrevChild + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7f0b3da90d00) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16) + QObject (0x0x7f0b3dba6a80) 0 + primary-for QGraphicsScene (0x0x7f0b3da90d00) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneEvent (0x0x7f0b3d860750) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16) + QEvent (0x0x7f0b3d857f00) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b3d860750) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMouseEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMouseEvent (0x0x7f0b3d8607b8) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b3d860820) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7f0b3d8607b8) + QEvent (0x0x7f0b3d9030c0) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b3d860820) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneWheelEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneWheelEvent (0x0x7f0b3d860888) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b3d8608f0) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7f0b3d860888) + QEvent (0x0x7f0b3d9031e0) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b3d8608f0) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneContextMenuEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7f0b3d860958) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b3d8609c0) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7f0b3d860958) + QEvent (0x0x7f0b3d903300) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b3d8609c0) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHoverEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHoverEvent (0x0x7f0b3d860a28) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b3d860a90) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7f0b3d860a28) + QEvent (0x0x7f0b3d903420) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b3d860a90) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneHelpEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneHelpEvent (0x0x7f0b3d860af8) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b3d860b60) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7f0b3d860af8) + QEvent (0x0x7f0b3d903540) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b3d860b60) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneDragDropEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneDragDropEvent (0x0x7f0b3d860bc8) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b3d860c30) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7f0b3d860bc8) + QEvent (0x0x7f0b3d903660) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b3d860c30) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneResizeEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneResizeEvent (0x0x7f0b3d860c98) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b3d860d00) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7f0b3d860c98) + QEvent (0x0x7f0b3d903780) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b3d860d00) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +32 (int (*)(...))QEvent::setAccepted +40 (int (*)(...))QEvent::clone + +Class QGraphicsSceneMoveEvent + size=24 align=8 + base size=24 base align=8 +QGraphicsSceneMoveEvent (0x0x7f0b3d860d68) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16) + QGraphicsSceneEvent (0x0x7f0b3d860dd0) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7f0b3d860d68) + QEvent (0x0x7f0b3d9038a0) 0 + primary-for QGraphicsSceneEvent (0x0x7f0b3d860dd0) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7f0b3d903a20) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7f0b3d860e38) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16) + QObject (0x0x7f0b3d9039c0) 0 + primary-for QGraphicsTransform (0x0x7f0b3d860e38) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7f0b3d903c00) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7f0b3d860ea0) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16) + QGraphicsTransform (0x0x7f0b3d860f08) 0 + primary-for QGraphicsScale (0x0x7f0b3d860ea0) + QObject (0x0x7f0b3d903ba0) 0 + primary-for QGraphicsTransform (0x0x7f0b3d860f08) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7f0b3d903de0) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7f0b3d860f70) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16) + QGraphicsTransform (0x0x7f0b3d8606e8) 0 + primary-for QGraphicsRotation (0x0x7f0b3d860f70) + QObject (0x0x7f0b3d903d80) 0 + primary-for QGraphicsTransform (0x0x7f0b3d8606e8) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7f0b3d96f060) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QScrollArea::scrollContentsBy +464 (int (*)(...))QScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QScrollArea) +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +496 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=40 align=8 + base size=40 base align=8 +QScrollArea (0x0x7f0b3d96e000) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16) + QAbstractScrollArea (0x0x7f0b3d96e068) 0 + primary-for QScrollArea (0x0x7f0b3d96e000) + QFrame (0x0x7f0b3d96e0d0) 0 + primary-for QAbstractScrollArea (0x0x7f0b3d96e068) + QWidget (0x0x7f0b3dbb7a80) 0 + primary-for QFrame (0x0x7f0b3d96e0d0) + QObject (0x0x7f0b3d903f60) 0 + primary-for QWidget (0x0x7f0b3dbb7a80) + QPaintDevice (0x0x7f0b3d96f000) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 488) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7f0b3d96f2a0) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QGraphicsView::setupViewport +448 (int (*)(...))QGraphicsView::viewportEvent +456 (int (*)(...))QGraphicsView::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QGraphicsView::drawBackground +480 (int (*)(...))QGraphicsView::drawForeground +488 (int (*)(...))QGraphicsView::drawItems +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI13QGraphicsView) +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +520 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=40 align=8 + base size=40 base align=8 +QGraphicsView (0x0x7f0b3d96e138) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16) + QAbstractScrollArea (0x0x7f0b3d96e1a0) 0 + primary-for QGraphicsView (0x0x7f0b3d96e138) + QFrame (0x0x7f0b3d96e208) 0 + primary-for QAbstractScrollArea (0x0x7f0b3d96e1a0) + QWidget (0x0x7f0b3dbb7af0) 0 + primary-for QFrame (0x0x7f0b3d96e208) + QObject (0x0x7f0b3d96f1e0) 0 + primary-for QWidget (0x0x7f0b3dbb7af0) + QPaintDevice (0x0x7f0b3d96f240) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 512) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7f0b3d654300) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QGroupBox::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QGroupBox) +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +464 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=40 align=8 + base size=40 base align=8 +QGroupBox (0x0x7f0b3d96e4e0) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16) + QWidget (0x0x7f0b3d9892a0) 0 + primary-for QGroupBox (0x0x7f0b3d96e4e0) + QObject (0x0x7f0b3d654240) 0 + primary-for QWidget (0x0x7f0b3d9892a0) + QPaintDevice (0x0x7f0b3d6542a0) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 456) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7f0b3d654540) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QHeaderView::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QHeaderView::viewportEvent +456 (int (*)(...))QHeaderView::scrollContentsBy +464 (int (*)(...))QAbstractItemView::viewportSizeHint +472 (int (*)(...))QHeaderView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QHeaderView::visualRect +504 (int (*)(...))QHeaderView::scrollTo +512 (int (*)(...))QHeaderView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QHeaderView::reset +552 (int (*)(...))QAbstractItemView::setRootIndex +560 (int (*)(...))QHeaderView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QHeaderView::dataChanged +584 (int (*)(...))QHeaderView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QAbstractItemView::selectionChanged +608 (int (*)(...))QHeaderView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QHeaderView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QHeaderView::moveCursor +704 (int (*)(...))QHeaderView::horizontalOffset +712 (int (*)(...))QHeaderView::verticalOffset +720 (int (*)(...))QHeaderView::isIndexHidden +728 (int (*)(...))QHeaderView::setSelection +736 (int (*)(...))QHeaderView::visualRegionForSelection +744 (int (*)(...))QAbstractItemView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QHeaderView::paintSection +792 (int (*)(...))QHeaderView::sectionSizeFromContents +800 (int (*)(...))QHeaderView::initStyleOptionForIndex +808 (int (*)(...))QHeaderView::initStyleOption +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QHeaderView) +832 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +840 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=40 align=8 + base size=40 base align=8 +QHeaderView (0x0x7f0b3d96e548) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16) + QAbstractItemView (0x0x7f0b3d96e5b0) 0 + primary-for QHeaderView (0x0x7f0b3d96e548) + QAbstractScrollArea (0x0x7f0b3d96e618) 0 + primary-for QAbstractItemView (0x0x7f0b3d96e5b0) + QFrame (0x0x7f0b3d96e680) 0 + primary-for QAbstractScrollArea (0x0x7f0b3d96e618) + QWidget (0x0x7f0b3d989310) 0 + primary-for QFrame (0x0x7f0b3d96e680) + QObject (0x0x7f0b3d654480) 0 + primary-for QWidget (0x0x7f0b3d989310) + QPaintDevice (0x0x7f0b3d6544e0) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 832) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7f0b3d6549c0) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QLineEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QLineEdit::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QLineEdit::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QLineEdit) +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +464 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=40 align=8 + base size=40 base align=8 +QLineEdit (0x0x7f0b3d96e6e8) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16) + QWidget (0x0x7f0b3d9895b0) 0 + primary-for QLineEdit (0x0x7f0b3d96e6e8) + QObject (0x0x7f0b3d654900) 0 + primary-for QWidget (0x0x7f0b3d9895b0) + QPaintDevice (0x0x7f0b3d654960) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 456) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7f0b3d654d80) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=40 align=8 + base size=40 base align=8 +QInputDialog (0x0x7f0b3d96e750) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16) + QDialog (0x0x7f0b3d96e7b8) 0 + primary-for QInputDialog (0x0x7f0b3d96e750) + QWidget (0x0x7f0b3d9898c0) 0 + primary-for QDialog (0x0x7f0b3d96e7b8) + QObject (0x0x7f0b3d654cc0) 0 + primary-for QWidget (0x0x7f0b3d9898c0) + QPaintDevice (0x0x7f0b3d654d20) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7f0b3d6e7360) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7f0b3d96e958) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f0b3d96e9c0) 0 + primary-for QItemDelegate (0x0x7f0b3d96e958) + QObject (0x0x7f0b3d6e7300) 0 + primary-for QAbstractItemDelegate (0x0x7f0b3d96e9c0) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7f0b3d6e74e0) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7f0b3d6e7840) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7f0b3d6e7d20) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=40 align=8 + base size=40 base align=8 +QKeySequenceEdit (0x0x7f0b3d96eaf8) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16) + QWidget (0x0x7f0b3d989bd0) 0 + primary-for QKeySequenceEdit (0x0x7f0b3d96eaf8) + QObject (0x0x7f0b3d6e7c60) 0 + primary-for QWidget (0x0x7f0b3d989bd0) + QPaintDevice (0x0x7f0b3d6e7cc0) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7f0b3d6e7f60) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI6QLabel) +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +464 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=40 align=8 + base size=40 base align=8 +QLabel (0x0x7f0b3d96eb60) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16) + QFrame (0x0x7f0b3d96ebc8) 0 + primary-for QLabel (0x0x7f0b3d96eb60) + QWidget (0x0x7f0b3d989c40) 0 + primary-for QFrame (0x0x7f0b3d96ebc8) + QObject (0x0x7f0b3d6e7ea0) 0 + primary-for QWidget (0x0x7f0b3d989c40) + QPaintDevice (0x0x7f0b3d6e7f00) 16 + vptr=((& QLabel::_ZTV6QLabel) + 456) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7f0b3d79e2a0) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QLCDNumber) +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +464 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=40 align=8 + base size=40 base align=8 +QLCDNumber (0x0x7f0b3d96ec30) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16) + QFrame (0x0x7f0b3d96ec98) 0 + primary-for QLCDNumber (0x0x7f0b3d96ec30) + QWidget (0x0x7f0b3d989cb0) 0 + primary-for QFrame (0x0x7f0b3d96ec98) + QObject (0x0x7f0b3d79e1e0) 0 + primary-for QWidget (0x0x7f0b3d989cb0) + QPaintDevice (0x0x7f0b3d79e240) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 456) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7f0b3d79e660) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QListView) +800 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +808 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=40 align=8 + base size=40 base align=8 +QListView (0x0x7f0b3d96ed00) 0 + vptr=((& QListView::_ZTV9QListView) + 16) + QAbstractItemView (0x0x7f0b3d96ed68) 0 + primary-for QListView (0x0x7f0b3d96ed00) + QAbstractScrollArea (0x0x7f0b3d96edd0) 0 + primary-for QAbstractItemView (0x0x7f0b3d96ed68) + QFrame (0x0x7f0b3d96ee38) 0 + primary-for QAbstractScrollArea (0x0x7f0b3d96edd0) + QWidget (0x0x7f0b3d7a6070) 0 + primary-for QFrame (0x0x7f0b3d96ee38) + QObject (0x0x7f0b3d79e5a0) 0 + primary-for QWidget (0x0x7f0b3d7a6070) + QPaintDevice (0x0x7f0b3d79e600) 16 + vptr=((& QListView::_ZTV9QListView) + 800) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::data +48 (int (*)(...))QListWidgetItem::setData +56 (int (*)(...))QListWidgetItem::operator< +64 (int (*)(...))QListWidgetItem::read +72 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=40 align=8 + base size=36 base align=8 +QListWidgetItem (0x0x7f0b3d79eba0) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7f0b3d804660) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QListWidget::setModel +480 (int (*)(...))QListWidget::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))QListWidget::mimeTypes +792 (int (*)(...))QListWidget::mimeData +800 (int (*)(...))QListWidget::dropMimeData +808 (int (*)(...))QListWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QListWidget) +832 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +840 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=40 align=8 + base size=40 base align=8 +QListWidget (0x0x7f0b3d96eea0) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16) + QListView (0x0x7f0b3d96ef08) 0 + primary-for QListWidget (0x0x7f0b3d96eea0) + QAbstractItemView (0x0x7f0b3d96ef70) 0 + primary-for QListView (0x0x7f0b3d96ef08) + QAbstractScrollArea (0x0x7f0b3d81d000) 0 + primary-for QAbstractItemView (0x0x7f0b3d96ef70) + QFrame (0x0x7f0b3d81d068) 0 + primary-for QAbstractScrollArea (0x0x7f0b3d81d000) + QWidget (0x0x7f0b3d7a6690) 0 + primary-for QFrame (0x0x7f0b3d81d068) + QObject (0x0x7f0b3d8045a0) 0 + primary-for QWidget (0x0x7f0b3d7a6690) + QPaintDevice (0x0x7f0b3d804600) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 832) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7f0b3d804b40) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=40 align=8 + base size=40 base align=8 +QMainWindow (0x0x7f0b3d81d0d0) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16) + QWidget (0x0x7f0b3d7a6700) 0 + primary-for QMainWindow (0x0x7f0b3d81d0d0) + QObject (0x0x7f0b3d804a80) 0 + primary-for QWidget (0x0x7f0b3d7a6700) + QPaintDevice (0x0x7f0b3d804ae0) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7f0b3d47c300) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QMdiArea::setupViewport +448 (int (*)(...))QMdiArea::viewportEvent +456 (int (*)(...))QMdiArea::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI8QMdiArea) +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +496 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=40 align=8 + base size=40 base align=8 +QMdiArea (0x0x7f0b3d81d270) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16) + QAbstractScrollArea (0x0x7f0b3d81d2d8) 0 + primary-for QMdiArea (0x0x7f0b3d81d270) + QFrame (0x0x7f0b3d81d340) 0 + primary-for QAbstractScrollArea (0x0x7f0b3d81d2d8) + QWidget (0x0x7f0b3d7a6a10) 0 + primary-for QFrame (0x0x7f0b3d81d340) + QObject (0x0x7f0b3d47c240) 0 + primary-for QWidget (0x0x7f0b3d7a6a10) + QPaintDevice (0x0x7f0b3d47c2a0) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 488) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7f0b3d47ca80) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=40 align=8 + base size=40 base align=8 +QMdiSubWindow (0x0x7f0b3d81d4e0) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16) + QWidget (0x0x7f0b3d7a6d90) 0 + primary-for QMdiSubWindow (0x0x7f0b3d81d4e0) + QObject (0x0x7f0b3d47c9c0) 0 + primary-for QWidget (0x0x7f0b3d7a6d90) + QPaintDevice (0x0x7f0b3d47ca20) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7f0b3d5770c0) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))QMenu::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QMenu) +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +464 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=40 align=8 + base size=40 base align=8 +QMenu (0x0x7f0b3d81d680) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16) + QWidget (0x0x7f0b3d576000) 0 + primary-for QMenu (0x0x7f0b3d81d680) + QObject (0x0x7f0b3d577000) 0 + primary-for QWidget (0x0x7f0b3d576000) + QPaintDevice (0x0x7f0b3d577060) 16 + vptr=((& QMenu::_ZTV5QMenu) + 456) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7f0b3d577480) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMenuBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QMenuBar) +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +464 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=40 align=8 + base size=40 base align=8 +QMenuBar (0x0x7f0b3d81d6e8) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16) + QWidget (0x0x7f0b3d576070) 0 + primary-for QMenuBar (0x0x7f0b3d81d6e8) + QObject (0x0x7f0b3d5773c0) 0 + primary-for QWidget (0x0x7f0b3d576070) + QPaintDevice (0x0x7f0b3d577420) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 456) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7f0b3d577780) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=40 align=8 + base size=40 base align=8 +QMessageBox (0x0x7f0b3d81d750) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16) + QDialog (0x0x7f0b3d81d7b8) 0 + primary-for QMessageBox (0x0x7f0b3d81d750) + QWidget (0x0x7f0b3d5760e0) 0 + primary-for QDialog (0x0x7f0b3d81d7b8) + QObject (0x0x7f0b3d5776c0) 0 + primary-for QWidget (0x0x7f0b3d5760e0) + QPaintDevice (0x0x7f0b3d577720) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7f0b3d6420c0) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7f0b3d642120) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextEdit::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI9QTextEdit) +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +536 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=40 align=8 + base size=40 base align=8 +QTextEdit (0x0x7f0b3d81d958) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16) + QAbstractScrollArea (0x0x7f0b3d81d9c0) 0 + primary-for QTextEdit (0x0x7f0b3d81d958) + QFrame (0x0x7f0b3d81da28) 0 + primary-for QAbstractScrollArea (0x0x7f0b3d81d9c0) + QWidget (0x0x7f0b3d5c1460) 0 + primary-for QFrame (0x0x7f0b3d81da28) + QObject (0x0x7f0b3d642000) 0 + primary-for QWidget (0x0x7f0b3d5c1460) + QPaintDevice (0x0x7f0b3d642060) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 528) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7f0b3d642a20) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QPlainTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QPlainTextEdit::loadResource +480 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +488 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +496 (int (*)(...))QPlainTextEdit::insertFromMimeData +504 (int (*)(...))QPlainTextEdit::doSetTextCursor +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI14QPlainTextEdit) +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +536 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=40 align=8 + base size=40 base align=8 +QPlainTextEdit (0x0x7f0b3d81dbc8) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16) + QAbstractScrollArea (0x0x7f0b3d81dc30) 0 + primary-for QPlainTextEdit (0x0x7f0b3d81dbc8) + QFrame (0x0x7f0b3d81dc98) 0 + primary-for QAbstractScrollArea (0x0x7f0b3d81dc30) + QWidget (0x0x7f0b3d5c17e0) 0 + primary-for QFrame (0x0x7f0b3d81dc98) + QObject (0x0x7f0b3d642960) 0 + primary-for QWidget (0x0x7f0b3d5c17e0) + QPaintDevice (0x0x7f0b3d6429c0) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 528) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7f0b3d642f60) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7f0b3d81dd00) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16) + QAbstractTextDocumentLayout (0x0x7f0b3d81dd68) 0 + primary-for QPlainTextDocumentLayout (0x0x7f0b3d81dd00) + QObject (0x0x7f0b3d642f00) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f0b3d81dd68) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7f0b3d2fd1e0) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))QProgressBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI12QProgressBar) +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +472 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=40 align=8 + base size=40 base align=8 +QProgressBar (0x0x7f0b3d81ddd0) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16) + QWidget (0x0x7f0b3d5c1930) 0 + primary-for QProgressBar (0x0x7f0b3d81ddd0) + QObject (0x0x7f0b3d2fd120) 0 + primary-for QWidget (0x0x7f0b3d5c1930) + QPaintDevice (0x0x7f0b3d2fd180) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 464) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7f0b3d2fd4e0) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=40 align=8 + base size=40 base align=8 +QProgressDialog (0x0x7f0b3d81de38) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16) + QDialog (0x0x7f0b3d81dea0) 0 + primary-for QProgressDialog (0x0x7f0b3d81de38) + QWidget (0x0x7f0b3d5c1a80) 0 + primary-for QDialog (0x0x7f0b3d81dea0) + QObject (0x0x7f0b3d2fd420) 0 + primary-for QWidget (0x0x7f0b3d5c1a80) + QPaintDevice (0x0x7f0b3d2fd480) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7f0b3d2fd6c0) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7f0b3d81df08) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16) + QCommonStyle (0x0x7f0b3d81df70) 0 + primary-for QProxyStyle (0x0x7f0b3d81df08) + QStyle (0x0x7f0b3d32b000) 0 + primary-for QCommonStyle (0x0x7f0b3d81df70) + QObject (0x0x7f0b3d2fd660) 0 + primary-for QStyle (0x0x7f0b3d32b000) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7f0b3d2fd900) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))QRadioButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI12QRadioButton) +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +488 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=40 align=8 + base size=40 base align=8 +QRadioButton (0x0x7f0b3d32b068) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16) + QAbstractButton (0x0x7f0b3d32b0d0) 0 + primary-for QRadioButton (0x0x7f0b3d32b068) + QWidget (0x0x7f0b3d5c1af0) 0 + primary-for QAbstractButton (0x0x7f0b3d32b0d0) + QObject (0x0x7f0b3d2fd840) 0 + primary-for QWidget (0x0x7f0b3d5c1af0) + QPaintDevice (0x0x7f0b3d2fd8a0) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 480) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7f0b3d2fdb40) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))QScrollBar::initStyleOption +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QScrollBar) +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +472 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=40 align=8 + base size=40 base align=8 +QScrollBar (0x0x7f0b3d32b138) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16) + QAbstractSlider (0x0x7f0b3d32b1a0) 0 + primary-for QScrollBar (0x0x7f0b3d32b138) + QWidget (0x0x7f0b3d5c1b60) 0 + primary-for QAbstractSlider (0x0x7f0b3d32b1a0) + QObject (0x0x7f0b3d2fda80) 0 + primary-for QWidget (0x0x7f0b3d5c1b60) + QPaintDevice (0x0x7f0b3d2fdae0) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 464) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7f0b3d2fdcc0) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7f0b3d42b0c0) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7f0b3d4240d0) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16) + QObject (0x0x7f0b3d42b060) 0 + primary-for QScroller (0x0x7f0b3d4240d0) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7f0b3d42b3c0) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=40 align=8 + base size=40 base align=8 +QSizeGrip (0x0x7f0b3d424138) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16) + QWidget (0x0x7f0b3d4235b0) 0 + primary-for QSizeGrip (0x0x7f0b3d424138) + QObject (0x0x7f0b3d42b300) 0 + primary-for QWidget (0x0x7f0b3d4235b0) + QPaintDevice (0x0x7f0b3d42b360) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7f0b3d42b600) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QSpinBox::valueFromText +488 (int (*)(...))QSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI8QSpinBox) +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +520 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=40 align=8 + base size=40 base align=8 +QSpinBox (0x0x7f0b3d4241a0) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16) + QAbstractSpinBox (0x0x7f0b3d424208) 0 + primary-for QSpinBox (0x0x7f0b3d4241a0) + QWidget (0x0x7f0b3d423620) 0 + primary-for QAbstractSpinBox (0x0x7f0b3d424208) + QObject (0x0x7f0b3d42b540) 0 + primary-for QWidget (0x0x7f0b3d423620) + QPaintDevice (0x0x7f0b3d42b5a0) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 512) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7f0b3d42b840) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 72 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::initStyleOption +472 (int (*)(...))QAbstractSpinBox::stepEnabled +480 (int (*)(...))QDoubleSpinBox::valueFromText +488 (int (*)(...))QDoubleSpinBox::textFromValue +496 (int (*)(...))-16 +504 (int (*)(...))(& _ZTI14QDoubleSpinBox) +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +520 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=40 align=8 + base size=40 base align=8 +QDoubleSpinBox (0x0x7f0b3d424270) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16) + QAbstractSpinBox (0x0x7f0b3d4242d8) 0 + primary-for QDoubleSpinBox (0x0x7f0b3d424270) + QWidget (0x0x7f0b3d423690) 0 + primary-for QAbstractSpinBox (0x0x7f0b3d4242d8) + QObject (0x0x7f0b3d42b780) 0 + primary-for QWidget (0x0x7f0b3d423690) + QPaintDevice (0x0x7f0b3d42b7e0) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 512) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7f0b3d42ba80) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=40 align=8 + base size=40 base align=8 +QSplashScreen (0x0x7f0b3d424340) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16) + QWidget (0x0x7f0b3d423700) 0 + primary-for QSplashScreen (0x0x7f0b3d424340) + QObject (0x0x7f0b3d42b9c0) 0 + primary-for QWidget (0x0x7f0b3d423700) + QPaintDevice (0x0x7f0b3d42ba20) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7f0b3d42bcc0) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QSplitter::createHandle +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QSplitter) +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +472 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=40 align=8 + base size=40 base align=8 +QSplitter (0x0x7f0b3d4243a8) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16) + QFrame (0x0x7f0b3d424410) 0 + primary-for QSplitter (0x0x7f0b3d4243a8) + QWidget (0x0x7f0b3d423770) 0 + primary-for QFrame (0x0x7f0b3d424410) + QObject (0x0x7f0b3d42bc00) 0 + primary-for QWidget (0x0x7f0b3d423770) + QPaintDevice (0x0x7f0b3d42bc60) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 464) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7f0b3d42bf00) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=40 align=8 + base size=40 base align=8 +QSplitterHandle (0x0x7f0b3d424478) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16) + QWidget (0x0x7f0b3d4237e0) 0 + primary-for QSplitterHandle (0x0x7f0b3d424478) + QObject (0x0x7f0b3d42be40) 0 + primary-for QWidget (0x0x7f0b3d4237e0) + QPaintDevice (0x0x7f0b3d42bea0) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7f0b3d0b0180) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 54 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::spacing +120 (int (*)(...))QLayout::setSpacing +128 (int (*)(...))QLayout::invalidate +136 (int (*)(...))QLayout::geometry +144 (int (*)(...))QStackedLayout::addItem +152 (int (*)(...))QLayout::expandingDirections +160 (int (*)(...))QStackedLayout::minimumSize +168 (int (*)(...))QLayout::maximumSize +176 (int (*)(...))QStackedLayout::setGeometry +184 (int (*)(...))QStackedLayout::itemAt +192 (int (*)(...))QStackedLayout::takeAt +200 (int (*)(...))QLayout::indexOf +208 (int (*)(...))QLayout::indexOf +216 (int (*)(...))QStackedLayout::count +224 (int (*)(...))QLayout::isEmpty +232 (int (*)(...))QLayout::controlTypes +240 (int (*)(...))QLayout::replaceWidget +248 (int (*)(...))QLayout::layout +256 (int (*)(...))QStackedLayout::sizeHint +264 (int (*)(...))QStackedLayout::hasHeightForWidth +272 (int (*)(...))QStackedLayout::heightForWidth +280 (int (*)(...))-16 +288 (int (*)(...))(& _ZTI14QStackedLayout) +296 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +304 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +312 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +320 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +344 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +352 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +360 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +368 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +376 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +384 (int (*)(...))QLayoutItem::minimumHeightForWidth +392 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +400 (int (*)(...))QLayoutItem::widget +408 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +416 (int (*)(...))QLayoutItem::spacerItem +424 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7f0b3d4244e0) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16) + QLayout (0x0x7f0b3d423850) 0 + primary-for QStackedLayout (0x0x7f0b3d4244e0) + QObject (0x0x7f0b3d0b00c0) 0 + primary-for QLayout (0x0x7f0b3d423850) + QLayoutItem (0x0x7f0b3d0b0120) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 296) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7f0b3d0b0480) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI14QStackedWidget) +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +464 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=40 align=8 + base size=40 base align=8 +QStackedWidget (0x0x7f0b3d424548) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16) + QFrame (0x0x7f0b3d4245b0) 0 + primary-for QStackedWidget (0x0x7f0b3d424548) + QWidget (0x0x7f0b3d4239a0) 0 + primary-for QFrame (0x0x7f0b3d4245b0) + QObject (0x0x7f0b3d0b03c0) 0 + primary-for QWidget (0x0x7f0b3d4239a0) + QPaintDevice (0x0x7f0b3d0b0420) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 456) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7f0b3d0b06c0) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=40 align=8 + base size=40 base align=8 +QStatusBar (0x0x7f0b3d424618) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16) + QWidget (0x0x7f0b3d423a10) 0 + primary-for QStatusBar (0x0x7f0b3d424618) + QObject (0x0x7f0b3d0b0600) 0 + primary-for QWidget (0x0x7f0b3d423a10) + QPaintDevice (0x0x7f0b3d0b0660) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7f0b3d0b08a0) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7f0b3d424680) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f0b3d4246e8) 0 + primary-for QStyledItemDelegate (0x0x7f0b3d424680) + QObject (0x0x7f0b3d0b0840) 0 + primary-for QAbstractItemDelegate (0x0x7f0b3d4246e8) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7f0b3d0b0a20) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7f0b3d424750) 0 + QPainter (0x0x7f0b3d0b0a80) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7f0b3d10b300) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7f0b3d4247b8) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16) + QObject (0x0x7f0b3d10b2a0) 0 + primary-for QStylePlugin (0x0x7f0b3d4247b8) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7f0b3d10b420) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7f0b3d424820) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16) + QObject (0x0x7f0b3d10b3c0) 0 + primary-for QSystemTrayIcon (0x0x7f0b3d424820) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7f0b3d10b720) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableView::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI10QTableView) +800 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +808 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=40 align=8 + base size=40 base align=8 +QTableView (0x0x7f0b3d424888) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16) + QAbstractItemView (0x0x7f0b3d4248f0) 0 + primary-for QTableView (0x0x7f0b3d424888) + QAbstractScrollArea (0x0x7f0b3d424958) 0 + primary-for QAbstractItemView (0x0x7f0b3d4248f0) + QFrame (0x0x7f0b3d4249c0) 0 + primary-for QAbstractScrollArea (0x0x7f0b3d424958) + QWidget (0x0x7f0b3d423f50) 0 + primary-for QFrame (0x0x7f0b3d4249c0) + QObject (0x0x7f0b3d10b660) 0 + primary-for QWidget (0x0x7f0b3d423f50) + QPaintDevice (0x0x7f0b3d10b6c0) 16 + vptr=((& QTableView::_ZTV10QTableView) + 800) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7f0b3d10b8a0) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=64 align=8 + base size=60 base align=8 +QTableWidgetItem (0x0x7f0b3d10bcc0) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7f0b3d1eb000) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QTableView::scrollContentsBy +464 (int (*)(...))QTableView::viewportSizeHint +472 (int (*)(...))QTableWidget::setModel +480 (int (*)(...))QTableView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QTableView::visualRect +504 (int (*)(...))QTableView::scrollTo +512 (int (*)(...))QTableView::indexAt +520 (int (*)(...))QTableView::sizeHintForRow +528 (int (*)(...))QTableView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QAbstractItemView::reset +552 (int (*)(...))QTableView::setRootIndex +560 (int (*)(...))QTableView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QAbstractItemView::dataChanged +584 (int (*)(...))QAbstractItemView::rowsInserted +592 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +600 (int (*)(...))QTableView::selectionChanged +608 (int (*)(...))QTableView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTableView::updateGeometries +640 (int (*)(...))QTableView::verticalScrollbarAction +648 (int (*)(...))QTableView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTableView::moveCursor +704 (int (*)(...))QTableView::horizontalOffset +712 (int (*)(...))QTableView::verticalOffset +720 (int (*)(...))QTableView::isIndexHidden +728 (int (*)(...))QTableView::setSelection +736 (int (*)(...))QTableView::visualRegionForSelection +744 (int (*)(...))QTableView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QTableView::initViewItemOption +784 (int (*)(...))QTableWidget::mimeTypes +792 (int (*)(...))QTableWidget::mimeData +800 (int (*)(...))QTableWidget::dropMimeData +808 (int (*)(...))QTableWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI12QTableWidget) +832 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +840 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=40 align=8 + base size=40 base align=8 +QTableWidget (0x0x7f0b3d1702d8) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16) + QTableView (0x0x7f0b3d170340) 0 + primary-for QTableWidget (0x0x7f0b3d1702d8) + QAbstractItemView (0x0x7f0b3d1703a8) 0 + primary-for QTableView (0x0x7f0b3d170340) + QAbstractScrollArea (0x0x7f0b3d170410) 0 + primary-for QAbstractItemView (0x0x7f0b3d1703a8) + QFrame (0x0x7f0b3d170478) 0 + primary-for QAbstractScrollArea (0x0x7f0b3d170410) + QWidget (0x0x7f0b3d1551c0) 0 + primary-for QFrame (0x0x7f0b3d170478) + QObject (0x0x7f0b3d16bf60) 0 + primary-for QWidget (0x0x7f0b3d1551c0) + QPaintDevice (0x0x7f0b3d16b540) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 832) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7f0b3d1eb3c0) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 79 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractScrollArea::viewportEvent +456 (int (*)(...))QTextEdit::scrollContentsBy +464 (int (*)(...))QAbstractScrollArea::viewportSizeHint +472 (int (*)(...))QTextBrowser::loadResource +480 (int (*)(...))QTextEdit::createMimeDataFromSelection +488 (int (*)(...))QTextEdit::canInsertFromMimeData +496 (int (*)(...))QTextEdit::insertFromMimeData +504 (int (*)(...))QTextEdit::doSetTextCursor +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))QTextBrowser::doSetSource +552 (int (*)(...))-16 +560 (int (*)(...))(& _ZTI12QTextBrowser) +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +576 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +624 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=40 align=8 + base size=40 base align=8 +QTextBrowser (0x0x7f0b3d1704e0) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16) + QTextEdit (0x0x7f0b3d170548) 0 + primary-for QTextBrowser (0x0x7f0b3d1704e0) + QAbstractScrollArea (0x0x7f0b3d1705b0) 0 + primary-for QTextEdit (0x0x7f0b3d170548) + QFrame (0x0x7f0b3d170618) 0 + primary-for QAbstractScrollArea (0x0x7f0b3d1705b0) + QWidget (0x0x7f0b3d155230) 0 + primary-for QFrame (0x0x7f0b3d170618) + QObject (0x0x7f0b3d1eb300) 0 + primary-for QWidget (0x0x7f0b3d155230) + QPaintDevice (0x0x7f0b3d1eb360) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 568) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7f0b3d1eb600) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBar::initStyleOption +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI8QToolBar) +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +464 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=40 align=8 + base size=40 base align=8 +QToolBar (0x0x7f0b3d170680) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16) + QWidget (0x0x7f0b3d1552a0) 0 + primary-for QToolBar (0x0x7f0b3d170680) + QObject (0x0x7f0b3d1eb540) 0 + primary-for QWidget (0x0x7f0b3d1552a0) + QPaintDevice (0x0x7f0b3d1eb5a0) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 456) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7f0b3d1eba80) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QToolBox::itemInserted +448 (int (*)(...))QToolBox::itemRemoved +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI8QToolBox) +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +480 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=40 align=8 + base size=40 base align=8 +QToolBox (0x0x7f0b3d1706e8) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16) + QFrame (0x0x7f0b3d170750) 0 + primary-for QToolBox (0x0x7f0b3d1706e8) + QWidget (0x0x7f0b3d155310) 0 + primary-for QFrame (0x0x7f0b3d170750) + QObject (0x0x7f0b3d1eb9c0) 0 + primary-for QWidget (0x0x7f0b3d155310) + QPaintDevice (0x0x7f0b3d1eba20) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 472) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7f0b3d1ebde0) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QToolButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))QToolButton::initStyleOption +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QToolButton) +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +488 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=40 align=8 + base size=40 base align=8 +QToolButton (0x0x7f0b3d1707b8) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16) + QAbstractButton (0x0x7f0b3d170820) 0 + primary-for QToolButton (0x0x7f0b3d1707b8) + QWidget (0x0x7f0b3d155380) 0 + primary-for QAbstractButton (0x0x7f0b3d170820) + QObject (0x0x7f0b3d1ebd20) 0 + primary-for QWidget (0x0x7f0b3d155380) + QPaintDevice (0x0x7f0b3d1ebd80) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 480) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7f0b3ce7e060) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7f0b3ce7e1e0) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeView::setModel +480 (int (*)(...))QTreeView::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI9QTreeView) +816 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +824 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=40 align=8 + base size=40 base align=8 +QTreeView (0x0x7f0b3d170888) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16) + QAbstractItemView (0x0x7f0b3d1708f0) 0 + primary-for QTreeView (0x0x7f0b3d170888) + QAbstractScrollArea (0x0x7f0b3d170958) 0 + primary-for QAbstractItemView (0x0x7f0b3d1708f0) + QFrame (0x0x7f0b3d1709c0) 0 + primary-for QAbstractScrollArea (0x0x7f0b3d170958) + QWidget (0x0x7f0b3d155540) 0 + primary-for QFrame (0x0x7f0b3d1709c0) + QObject (0x0x7f0b3ce7e120) 0 + primary-for QWidget (0x0x7f0b3d155540) + QPaintDevice (0x0x7f0b3ce7e180) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 816) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7f0b3ce7e360) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=96 align=8 + base size=92 base align=8 +QTreeWidgetItem (0x0x7f0b3ce7eae0) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7f0b3d006900) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 114 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTreeView::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QTreeView::viewportEvent +456 (int (*)(...))QTreeView::scrollContentsBy +464 (int (*)(...))QTreeView::viewportSizeHint +472 (int (*)(...))QTreeWidget::setModel +480 (int (*)(...))QTreeWidget::setSelectionModel +488 (int (*)(...))QTreeView::keyboardSearch +496 (int (*)(...))QTreeView::visualRect +504 (int (*)(...))QTreeView::scrollTo +512 (int (*)(...))QTreeView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QTreeView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QTreeView::reset +552 (int (*)(...))QTreeView::setRootIndex +560 (int (*)(...))QTreeView::doItemsLayout +568 (int (*)(...))QTreeView::selectAll +576 (int (*)(...))QTreeView::dataChanged +584 (int (*)(...))QTreeView::rowsInserted +592 (int (*)(...))QTreeView::rowsAboutToBeRemoved +600 (int (*)(...))QTreeView::selectionChanged +608 (int (*)(...))QTreeView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QTreeView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QTreeView::horizontalScrollbarAction +656 (int (*)(...))QTreeView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QTreeView::moveCursor +704 (int (*)(...))QTreeView::horizontalOffset +712 (int (*)(...))QTreeView::verticalOffset +720 (int (*)(...))QTreeView::isIndexHidden +728 (int (*)(...))QTreeView::setSelection +736 (int (*)(...))QTreeView::visualRegionForSelection +744 (int (*)(...))QTreeView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QAbstractItemView::startDrag +776 (int (*)(...))QAbstractItemView::initViewItemOption +784 (int (*)(...))QTreeView::drawRow +792 (int (*)(...))QTreeView::drawBranches +800 (int (*)(...))QTreeWidget::mimeTypes +808 (int (*)(...))QTreeWidget::mimeData +816 (int (*)(...))QTreeWidget::dropMimeData +824 (int (*)(...))QTreeWidget::supportedDropActions +832 (int (*)(...))-16 +840 (int (*)(...))(& _ZTI11QTreeWidget) +848 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +856 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +896 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +904 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=40 align=8 + base size=40 base align=8 +QTreeWidget (0x0x7f0b3cf3dd00) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16) + QTreeView (0x0x7f0b3cf3dd68) 0 + primary-for QTreeWidget (0x0x7f0b3cf3dd00) + QAbstractItemView (0x0x7f0b3cf3ddd0) 0 + primary-for QTreeView (0x0x7f0b3cf3dd68) + QAbstractScrollArea (0x0x7f0b3cf3de38) 0 + primary-for QAbstractItemView (0x0x7f0b3cf3ddd0) + QFrame (0x0x7f0b3cf3dea0) 0 + primary-for QAbstractScrollArea (0x0x7f0b3cf3de38) + QWidget (0x0x7f0b3cf1e310) 0 + primary-for QFrame (0x0x7f0b3cf3dea0) + QObject (0x0x7f0b3d006840) 0 + primary-for QWidget (0x0x7f0b3cf1e310) + QPaintDevice (0x0x7f0b3d0068a0) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 848) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7f0b3d006d20) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QFrame::initStyleOption +440 (int (*)(...))QAbstractScrollArea::setupViewport +448 (int (*)(...))QAbstractItemView::viewportEvent +456 (int (*)(...))QListView::scrollContentsBy +464 (int (*)(...))QListView::viewportSizeHint +472 (int (*)(...))QAbstractItemView::setModel +480 (int (*)(...))QAbstractItemView::setSelectionModel +488 (int (*)(...))QAbstractItemView::keyboardSearch +496 (int (*)(...))QListView::visualRect +504 (int (*)(...))QListView::scrollTo +512 (int (*)(...))QListView::indexAt +520 (int (*)(...))QAbstractItemView::sizeHintForRow +528 (int (*)(...))QAbstractItemView::sizeHintForColumn +536 (int (*)(...))QAbstractItemView::itemDelegateForIndex +544 (int (*)(...))QListView::reset +552 (int (*)(...))QListView::setRootIndex +560 (int (*)(...))QListView::doItemsLayout +568 (int (*)(...))QAbstractItemView::selectAll +576 (int (*)(...))QListView::dataChanged +584 (int (*)(...))QListView::rowsInserted +592 (int (*)(...))QListView::rowsAboutToBeRemoved +600 (int (*)(...))QListView::selectionChanged +608 (int (*)(...))QListView::currentChanged +616 (int (*)(...))QAbstractItemView::updateEditorData +624 (int (*)(...))QAbstractItemView::updateEditorGeometries +632 (int (*)(...))QListView::updateGeometries +640 (int (*)(...))QAbstractItemView::verticalScrollbarAction +648 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +656 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +664 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +672 (int (*)(...))QAbstractItemView::closeEditor +680 (int (*)(...))QAbstractItemView::commitData +688 (int (*)(...))QAbstractItemView::editorDestroyed +696 (int (*)(...))QListView::moveCursor +704 (int (*)(...))QListView::horizontalOffset +712 (int (*)(...))QListView::verticalOffset +720 (int (*)(...))QListView::isIndexHidden +728 (int (*)(...))QListView::setSelection +736 (int (*)(...))QListView::visualRegionForSelection +744 (int (*)(...))QListView::selectedIndexes +752 (int (*)(...))QAbstractItemView::edit +760 (int (*)(...))QAbstractItemView::selectionCommand +768 (int (*)(...))QListView::startDrag +776 (int (*)(...))QListView::initViewItemOption +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QUndoView) +800 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +808 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=40 align=8 + base size=40 base align=8 +QUndoView (0x0x7f0b3cf3df08) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16) + QListView (0x0x7f0b3cf3df70) 0 + primary-for QUndoView (0x0x7f0b3cf3df08) + QAbstractItemView (0x0x7f0b3cf3d410) 0 + primary-for QListView (0x0x7f0b3cf3df70) + QAbstractScrollArea (0x0x7f0b3cf3dc98) 0 + primary-for QAbstractItemView (0x0x7f0b3cf3d410) + QFrame (0x0x7f0b3cc67000) 0 + primary-for QAbstractScrollArea (0x0x7f0b3cf3dc98) + QWidget (0x0x7f0b3cf1e380) 0 + primary-for QFrame (0x0x7f0b3cc67000) + QObject (0x0x7f0b3d006c60) 0 + primary-for QWidget (0x0x7f0b3cf1e380) + QPaintDevice (0x0x7f0b3d006cc0) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 800) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7f0b3d006ea0) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7f0b3d006f60) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7f0b3cc67068) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16) + QAction (0x0x7f0b3cc670d0) 0 + primary-for QWidgetAction (0x0x7f0b3cc67068) + QObject (0x0x7f0b3d006f00) 0 + primary-for QAction (0x0x7f0b3cc670d0) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7f0b3cc831e0) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=40 align=8 + base size=40 base align=8 +QWizard (0x0x7f0b3cc67138) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16) + QDialog (0x0x7f0b3cc671a0) 0 + primary-for QWizard (0x0x7f0b3cc67138) + QWidget (0x0x7f0b3cf1e3f0) 0 + primary-for QDialog (0x0x7f0b3cc671a0) + QObject (0x0x7f0b3cc83120) 0 + primary-for QWidget (0x0x7f0b3cf1e3f0) + QPaintDevice (0x0x7f0b3cc83180) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7f0b3cc83a20) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=40 align=8 + base size=40 base align=8 +QWizardPage (0x0x7f0b3cc67340) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16) + QWidget (0x0x7f0b3cc8c5b0) 0 + primary-for QWizardPage (0x0x7f0b3cc67340) + QObject (0x0x7f0b3cc83960) 0 + primary-for QWidget (0x0x7f0b3cc8c5b0) + QPaintDevice (0x0x7f0b3cc839c0) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488) + +Class QOpenGLBuffer + size=8 align=8 + base size=8 base align=8 +QOpenGLBuffer (0x0x7f0b3cc83ba0) 0 + +Class QOpenGLDebugMessage + size=8 align=8 + base size=8 base align=8 +QOpenGLDebugMessage (0x0x7f0b3cd50120) 0 + +Class QOpenGLDebugLogger::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLDebugLogger::QPrivateSignal (0x0x7f0b3ca72480) 0 empty + +Vtable for QOpenGLDebugLogger +QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLDebugLogger) +16 (int (*)(...))QOpenGLDebugLogger::metaObject +24 (int (*)(...))QOpenGLDebugLogger::qt_metacast +32 (int (*)(...))QOpenGLDebugLogger::qt_metacall +40 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +48 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLDebugLogger + size=16 align=8 + base size=16 base align=8 +QOpenGLDebugLogger (0x0x7f0b3cdd68f0) 0 + vptr=((& QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger) + 16) + QObject (0x0x7f0b3ca72420) 0 + primary-for QOpenGLDebugLogger (0x0x7f0b3cdd68f0) + +Vtable for QOpenGLFramebufferObject +QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLFramebufferObject) +16 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject +24 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject + +Class QOpenGLFramebufferObject + size=16 align=8 + base size=16 base align=8 +QOpenGLFramebufferObject (0x0x7f0b3ca72ba0) 0 + vptr=((& QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject) + 16) + +Class QOpenGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QOpenGLFramebufferObjectFormat (0x0x7f0b3ca72e40) 0 + +Vtable for QOpenGLPaintDevice +QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLPaintDevice) +16 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +24 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +32 (int (*)(...))QOpenGLPaintDevice::devType +40 (int (*)(...))QOpenGLPaintDevice::paintEngine +48 (int (*)(...))QOpenGLPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QOpenGLPaintDevice::ensureActiveTarget + +Class QOpenGLPaintDevice + size=24 align=8 + base size=24 base align=8 +QOpenGLPaintDevice (0x0x7f0b3cdd69c0) 0 + vptr=((& QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice) + 16) + QPaintDevice (0x0x7f0b3ca72ea0) 0 + primary-for QOpenGLPaintDevice (0x0x7f0b3cdd69c0) + +Class QOpenGLPixelTransferOptions + size=8 align=8 + base size=8 base align=8 +QOpenGLPixelTransferOptions (0x0x7f0b3cb2c120) 0 + +Class QOpenGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShader::QPrivateSignal (0x0x7f0b3cb687e0) 0 empty + +Vtable for QOpenGLShader +QOpenGLShader::_ZTV13QOpenGLShader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLShader) +16 (int (*)(...))QOpenGLShader::metaObject +24 (int (*)(...))QOpenGLShader::qt_metacast +32 (int (*)(...))QOpenGLShader::qt_metacall +40 (int (*)(...))QOpenGLShader::~QOpenGLShader +48 (int (*)(...))QOpenGLShader::~QOpenGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLShader + size=16 align=8 + base size=16 base align=8 +QOpenGLShader (0x0x7f0b3cb713a8) 0 + vptr=((& QOpenGLShader::_ZTV13QOpenGLShader) + 16) + QObject (0x0x7f0b3cb68780) 0 + primary-for QOpenGLShader (0x0x7f0b3cb713a8) + +Class QOpenGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShaderProgram::QPrivateSignal (0x0x7f0b3cb68d80) 0 empty + +Vtable for QOpenGLShaderProgram +QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QOpenGLShaderProgram) +16 (int (*)(...))QOpenGLShaderProgram::metaObject +24 (int (*)(...))QOpenGLShaderProgram::qt_metacast +32 (int (*)(...))QOpenGLShaderProgram::qt_metacall +40 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +48 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOpenGLShaderProgram::link + +Class QOpenGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QOpenGLShaderProgram (0x0x7f0b3cb71548) 0 + vptr=((& QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram) + 16) + QObject (0x0x7f0b3cb68d20) 0 + primary-for QOpenGLShaderProgram (0x0x7f0b3cb71548) + +Class QOpenGLTexture + size=8 align=8 + base size=8 base align=8 +QOpenGLTexture (0x0x7f0b3cb68f00) 0 + +Class QOpenGLTextureBlitter + size=8 align=8 + base size=8 base align=8 +QOpenGLTextureBlitter (0x0x7f0b3c8ca120) 0 + +Class QOpenGLTimerQuery::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimerQuery::QPrivateSignal (0x0x7f0b3c8ca360) 0 empty + +Vtable for QOpenGLTimerQuery +QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOpenGLTimerQuery) +16 (int (*)(...))QOpenGLTimerQuery::metaObject +24 (int (*)(...))QOpenGLTimerQuery::qt_metacast +32 (int (*)(...))QOpenGLTimerQuery::qt_metacall +40 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +48 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimerQuery + size=16 align=8 + base size=16 base align=8 +QOpenGLTimerQuery (0x0x7f0b3cb716e8) 0 + vptr=((& QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery) + 16) + QObject (0x0x7f0b3c8ca300) 0 + primary-for QOpenGLTimerQuery (0x0x7f0b3cb716e8) + +Class QOpenGLTimeMonitor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimeMonitor::QPrivateSignal (0x0x7f0b3c8ca540) 0 empty + +Vtable for QOpenGLTimeMonitor +QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLTimeMonitor) +16 (int (*)(...))QOpenGLTimeMonitor::metaObject +24 (int (*)(...))QOpenGLTimeMonitor::qt_metacast +32 (int (*)(...))QOpenGLTimeMonitor::qt_metacall +40 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +48 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimeMonitor + size=16 align=8 + base size=16 base align=8 +QOpenGLTimeMonitor (0x0x7f0b3cb71750) 0 + vptr=((& QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor) + 16) + QObject (0x0x7f0b3c8ca4e0) 0 + primary-for QOpenGLTimeMonitor (0x0x7f0b3cb71750) + +Class QOpenGLVersionStatus + size=12 align=4 + base size=12 base align=4 +QOpenGLVersionStatus (0x0x7f0b3c8ca6c0) 0 + +Class QOpenGLVersionFunctionsBackend + size=16 align=8 + base size=12 base align=8 +QOpenGLVersionFunctionsBackend (0x0x7f0b3c9bb720) 0 + +Class QOpenGLVersionFunctionsStorage + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionFunctionsStorage (0x0x7f0b3c9bb900) 0 + +Class QAbstractOpenGLFunctionsPrivate + size=16 align=8 + base size=9 base align=8 +QAbstractOpenGLFunctionsPrivate (0x0x7f0b3c9bb960) 0 + +Vtable for QAbstractOpenGLFunctions +QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractOpenGLFunctions) +16 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +24 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +32 (int (*)(...))QAbstractOpenGLFunctions::initializeOpenGLFunctions + +Class QAbstractOpenGLFunctions + size=16 align=8 + base size=16 base align=8 +QAbstractOpenGLFunctions (0x0x7f0b3c9bbb40) 0 + vptr=((& QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions) + 16) + +Class QOpenGLFunctions_1_0_CoreBackend::Functions + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_1_0_CoreBackend::Functions (0x0x7f0b3c9bbd20) 0 + +Class QOpenGLFunctions_1_0_CoreBackend + size=400 align=8 + base size=400 base align=8 +QOpenGLFunctions_1_0_CoreBackend (0x0x7f0b3c9e4000) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c9bbcc0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend::Functions + size=128 align=8 + base size=128 base align=8 +QOpenGLFunctions_1_1_CoreBackend::Functions (0x0x7f0b3c9f80c0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend + size=144 align=8 + base size=144 base align=8 +QOpenGLFunctions_1_1_CoreBackend (0x0x7f0b3c9e4068) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c9f8060) 0 + +Class QOpenGLFunctions_1_2_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_1_2_CoreBackend::Functions (0x0x7f0b3c9f8420) 0 + +Class QOpenGLFunctions_1_2_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_1_2_CoreBackend (0x0x7f0b3c9e40d0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c9f83c0) 0 + +Class QOpenGLFunctions_1_3_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_3_CoreBackend::Functions (0x0x7f0b3c9f8780) 0 + +Class QOpenGLFunctions_1_3_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_1_3_CoreBackend (0x0x7f0b3c9e4138) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c9f8720) 0 + +Class QOpenGLFunctions_1_4_CoreBackend::Functions + size=56 align=8 + base size=56 base align=8 +QOpenGLFunctions_1_4_CoreBackend::Functions (0x0x7f0b3c9f8ae0) 0 + +Class QOpenGLFunctions_1_4_CoreBackend + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_4_CoreBackend (0x0x7f0b3c9e41a0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c9f8a80) 0 + +Class QOpenGLFunctions_1_5_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_5_CoreBackend::Functions (0x0x7f0b3c9f8e40) 0 + +Class QOpenGLFunctions_1_5_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_1_5_CoreBackend (0x0x7f0b3c9e4208) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c9f8de0) 0 + +Class QOpenGLFunctions_2_0_CoreBackend::Functions + size=744 align=8 + base size=744 base align=8 +QOpenGLFunctions_2_0_CoreBackend::Functions (0x0x7f0b3ca251e0) 0 + +Class QOpenGLFunctions_2_0_CoreBackend + size=760 align=8 + base size=760 base align=8 +QOpenGLFunctions_2_0_CoreBackend (0x0x7f0b3c9e4270) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3ca25180) 0 + +Class QOpenGLFunctions_2_1_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_2_1_CoreBackend::Functions (0x0x7f0b3ca25540) 0 + +Class QOpenGLFunctions_2_1_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_2_1_CoreBackend (0x0x7f0b3c9e42d8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3ca254e0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend::Functions + size=672 align=8 + base size=672 base align=8 +QOpenGLFunctions_3_0_CoreBackend::Functions (0x0x7f0b3ca258a0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend + size=688 align=8 + base size=688 base align=8 +QOpenGLFunctions_3_0_CoreBackend (0x0x7f0b3c9e4340) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3ca25840) 0 + +Class QOpenGLFunctions_3_1_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_3_1_CoreBackend::Functions (0x0x7f0b3ca25c00) 0 + +Class QOpenGLFunctions_3_1_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_3_1_CoreBackend (0x0x7f0b3c9e43a8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3ca25ba0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_3_2_CoreBackend::Functions (0x0x7f0b3ca25f60) 0 + +Class QOpenGLFunctions_3_2_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_3_2_CoreBackend (0x0x7f0b3c9e4410) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3ca25f00) 0 + +Class QOpenGLFunctions_3_3_CoreBackend::Functions + size=464 align=8 + base size=464 base align=8 +QOpenGLFunctions_3_3_CoreBackend::Functions (0x0x7f0b3c672300) 0 + +Class QOpenGLFunctions_3_3_CoreBackend + size=480 align=8 + base size=480 base align=8 +QOpenGLFunctions_3_3_CoreBackend (0x0x7f0b3c9e4478) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c6722a0) 0 + +Class QOpenGLFunctions_4_0_CoreBackend::Functions + size=368 align=8 + base size=368 base align=8 +QOpenGLFunctions_4_0_CoreBackend::Functions (0x0x7f0b3c672660) 0 + +Class QOpenGLFunctions_4_0_CoreBackend + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_4_0_CoreBackend (0x0x7f0b3c9e44e0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c672600) 0 + +Class QOpenGLFunctions_4_1_CoreBackend::Functions + size=704 align=8 + base size=704 base align=8 +QOpenGLFunctions_4_1_CoreBackend::Functions (0x0x7f0b3c6729c0) 0 + +Class QOpenGLFunctions_4_1_CoreBackend + size=720 align=8 + base size=720 base align=8 +QOpenGLFunctions_4_1_CoreBackend (0x0x7f0b3c9e4548) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c672960) 0 + +Class QOpenGLFunctions_4_2_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_2_CoreBackend::Functions (0x0x7f0b3c672d20) 0 + +Class QOpenGLFunctions_4_2_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_2_CoreBackend (0x0x7f0b3c9e45b0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c672cc0) 0 + +Class QOpenGLFunctions_4_3_CoreBackend::Functions + size=344 align=8 + base size=344 base align=8 +QOpenGLFunctions_4_3_CoreBackend::Functions (0x0x7f0b3c6c00c0) 0 + +Class QOpenGLFunctions_4_3_CoreBackend + size=360 align=8 + base size=360 base align=8 +QOpenGLFunctions_4_3_CoreBackend (0x0x7f0b3c9e4618) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c6c0060) 0 + +Class QOpenGLFunctions_4_4_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_4_4_CoreBackend::Functions (0x0x7f0b3c6c0420) 0 + +Class QOpenGLFunctions_4_4_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_4_4_CoreBackend (0x0x7f0b3c9e4680) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c6c03c0) 0 + +Class QOpenGLFunctions_4_5_CoreBackend::Functions + size=848 align=8 + base size=848 base align=8 +QOpenGLFunctions_4_5_CoreBackend::Functions (0x0x7f0b3c6c0780) 0 + +Class QOpenGLFunctions_4_5_CoreBackend + size=864 align=8 + base size=864 base align=8 +QOpenGLFunctions_4_5_CoreBackend (0x0x7f0b3c9e46e8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c6c0720) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend::Functions + size=2064 align=8 + base size=2064 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend::Functions (0x0x7f0b3c6c0ae0) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend + size=2080 align=8 + base size=2080 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend (0x0x7f0b3c9e4750) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c6c0a80) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend::Functions + size=136 align=8 + base size=136 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend::Functions (0x0x7f0b3c6c0e40) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend (0x0x7f0b3c9e47b8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c6c0de0) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend::Functions + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend::Functions (0x0x7f0b3c74c1e0) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend + size=272 align=8 + base size=272 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend (0x0x7f0b3c9e4820) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c74c180) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend::Functions + size=296 align=8 + base size=296 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend::Functions (0x0x7f0b3c74c540) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend + size=312 align=8 + base size=312 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend (0x0x7f0b3c9e4888) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c74c4e0) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend::Functions + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend::Functions (0x0x7f0b3c74c8a0) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend + size=320 align=8 + base size=320 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend (0x0x7f0b3c9e48f0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c74c840) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend::Functions + size=288 align=8 + base size=288 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend::Functions (0x0x7f0b3c74cc00) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend (0x0x7f0b3c9e4958) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c74cba0) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend::Functions + size=160 align=8 + base size=160 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend::Functions (0x0x7f0b3c74cf60) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend + size=176 align=8 + base size=176 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend (0x0x7f0b3c9e49c0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c74cf00) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend::Functions + size=240 align=8 + base size=240 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend::Functions (0x0x7f0b3c78a300) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend (0x0x7f0b3c9e4a28) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c78a2a0) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend::Functions (0x0x7f0b3c78a660) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend (0x0x7f0b3c9e4a90) 0 + QOpenGLVersionFunctionsBackend (0x0x7f0b3c78a600) 0 + +Class QOpenGLVersionProfile + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionProfile (0x0x7f0b3c78a960) 0 + +Class QOpenGLVersionFunctionsFactory + size=1 align=1 + base size=0 base align=1 +QOpenGLVersionFunctionsFactory (0x0x7f0b3c78aae0) 0 empty + +Class QOpenGLVertexArrayObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLVertexArrayObject::QPrivateSignal (0x0x7f0b3c78ac00) 0 empty + +Class QOpenGLVertexArrayObject::Binder + size=8 align=8 + base size=8 base align=8 +QOpenGLVertexArrayObject::Binder (0x0x7f0b3c78ac60) 0 + +Vtable for QOpenGLVertexArrayObject +QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLVertexArrayObject) +16 (int (*)(...))QOpenGLVertexArrayObject::metaObject +24 (int (*)(...))QOpenGLVertexArrayObject::qt_metacast +32 (int (*)(...))QOpenGLVertexArrayObject::qt_metacall +40 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +48 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLVertexArrayObject + size=16 align=8 + base size=16 base align=8 +QOpenGLVertexArrayObject (0x0x7f0b3c9e4af8) 0 + vptr=((& QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject) + 16) + QObject (0x0x7f0b3c78aba0) 0 + primary-for QOpenGLVertexArrayObject (0x0x7f0b3c9e4af8) + +Class QOpenGLWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWindow::QPrivateSignal (0x0x7f0b3c7c6300) 0 empty + +Vtable for QOpenGLWindow +QOpenGLWindow::_ZTV13QOpenGLWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWindow) +16 (int (*)(...))QOpenGLWindow::metaObject +24 (int (*)(...))QOpenGLWindow::qt_metacast +32 (int (*)(...))QOpenGLWindow::qt_metacall +40 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +48 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QOpenGLWindow::resizeEvent +168 (int (*)(...))QOpenGLWindow::paintEvent +176 (int (*)(...))QWindow::moveEvent +184 (int (*)(...))QWindow::focusInEvent +192 (int (*)(...))QWindow::focusOutEvent +200 (int (*)(...))QWindow::showEvent +208 (int (*)(...))QWindow::hideEvent +216 (int (*)(...))QWindow::closeEvent +224 (int (*)(...))QWindow::keyPressEvent +232 (int (*)(...))QWindow::keyReleaseEvent +240 (int (*)(...))QWindow::mousePressEvent +248 (int (*)(...))QWindow::mouseReleaseEvent +256 (int (*)(...))QWindow::mouseDoubleClickEvent +264 (int (*)(...))QWindow::mouseMoveEvent +272 (int (*)(...))QWindow::wheelEvent +280 (int (*)(...))QWindow::touchEvent +288 (int (*)(...))QWindow::tabletEvent +296 (int (*)(...))QWindow::nativeEvent +304 (int (*)(...))QWindow::surfaceHandle +312 (int (*)(...))QOpenGLWindow::metric +320 (int (*)(...))QPaintDeviceWindow::paintEngine +328 (int (*)(...))QOpenGLWindow::initializeGL +336 (int (*)(...))QOpenGLWindow::resizeGL +344 (int (*)(...))QOpenGLWindow::paintGL +352 (int (*)(...))QOpenGLWindow::paintUnderGL +360 (int (*)(...))QOpenGLWindow::paintOverGL +368 (int (*)(...))QOpenGLWindow::redirected +376 (int (*)(...))-16 +384 (int (*)(...))(& _ZTI13QOpenGLWindow) +392 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD1Ev +400 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD0Ev +408 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +416 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +424 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +432 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +440 (int (*)(...))-40 +448 (int (*)(...))(& _ZTI13QOpenGLWindow) +456 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD1Ev +464 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD0Ev +472 (int (*)(...))QPaintDevice::devType +480 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +488 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QPaintDevice::initPainter +504 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow10redirectedEP6QPoint +512 (int (*)(...))QPaintDevice::sharedPainter + +Class QOpenGLWindow + size=56 align=8 + base size=50 base align=8 +QOpenGLWindow (0x0x7f0b3c9e4bc8) 0 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 16) + QPaintDeviceWindow (0x0x7f0b3c9d6bd0) 0 + primary-for QOpenGLWindow (0x0x7f0b3c9e4bc8) + QWindow (0x0x7f0b3c9d6c40) 0 + primary-for QPaintDeviceWindow (0x0x7f0b3c9d6bd0) + QObject (0x0x7f0b3c7c61e0) 0 + primary-for QWindow (0x0x7f0b3c9d6c40) + QSurface (0x0x7f0b3c7c6240) 16 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 392) + QPaintDevice (0x0x7f0b3c7c62a0) 40 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 456) + +Class QOpenGLWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWidget::QPrivateSignal (0x0x7f0b3c7c6540) 0 empty + +Vtable for QOpenGLWidget +QOpenGLWidget::_ZTV13QOpenGLWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWidget) +16 (int (*)(...))QOpenGLWidget::metaObject +24 (int (*)(...))QOpenGLWidget::qt_metacast +32 (int (*)(...))QOpenGLWidget::qt_metacall +40 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +48 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +56 (int (*)(...))QOpenGLWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QOpenGLWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QOpenGLWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QOpenGLWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QOpenGLWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QOpenGLWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QOpenGLWidget::initializeGL +440 (int (*)(...))QOpenGLWidget::resizeGL +448 (int (*)(...))QOpenGLWidget::paintGL +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI13QOpenGLWidget) +472 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD1Ev +480 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget11paintEngineEv +504 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QOpenGLWidget + size=40 align=8 + base size=40 base align=8 +QOpenGLWidget (0x0x7f0b3c9e4c98) 0 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 16) + QWidget (0x0x7f0b3c9d6e00) 0 + primary-for QOpenGLWidget (0x0x7f0b3c9e4c98) + QObject (0x0x7f0b3c7c6480) 0 + primary-for QWidget (0x0x7f0b3c9d6e00) + QPaintDevice (0x0x7f0b3c7c64e0) 16 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 472) + +Class QUiLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUiLoader::QPrivateSignal (0x0x7f0b3c7c6720) 0 empty + +Vtable for QUiLoader +QUiLoader::_ZTV9QUiLoader: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUiLoader) +16 (int (*)(...))QUiLoader::metaObject +24 (int (*)(...))QUiLoader::qt_metacast +32 (int (*)(...))QUiLoader::qt_metacall +40 (int (*)(...))QUiLoader::~QUiLoader +48 (int (*)(...))QUiLoader::~QUiLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QUiLoader::createWidget +120 (int (*)(...))QUiLoader::createLayout +128 (int (*)(...))QUiLoader::createActionGroup +136 (int (*)(...))QUiLoader::createAction + +Class QUiLoader + size=24 align=8 + base size=24 base align=8 +QUiLoader (0x0x7f0b3c9e4d68) 0 + vptr=((& QUiLoader::_ZTV9QUiLoader) + 16) + QObject (0x0x7f0b3c7c66c0) 0 + primary-for QUiLoader (0x0x7f0b3c9e4d68) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c818840) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c818ba0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c818d80) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c83e0c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c83e2a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c83e600) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c83e780) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c83eae0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c83ecc0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c46b060) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c46b240) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c46b5a0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c46b780) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c46bae0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c46bcc0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c49b060) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c4c6900) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c4c6c60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c4c6de0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c4ec180) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c4ec300) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c4ec660) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c4ec7e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c4ecb40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c4eccc0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c514060) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c5141e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c514540) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c5146c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c514a20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f0b3c514ba0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f0b3c514f00) 0 empty + diff --git a/tests/auto/cmake/CMakeLists.txt b/tests/auto/cmake/CMakeLists.txt new file mode 100644 index 0000000..4ea9f88 --- /dev/null +++ b/tests/auto/cmake/CMakeLists.txt @@ -0,0 +1,67 @@ +# special case skip regeneration + +# This is an automatic test for the CMake configuration files. +# To run it manually, +# 1) mkdir build # Create a build directory +# 2) cd build +# 3) # Run cmake on this directory +# `$qt_prefix/bin/qt-cmake ..` or `cmake -DCMAKE_PREFIX_PATH=/path/to/qt ..` +# 4) ctest # Run ctest +# 5) ctest -V -R test_add_translation_macro # Run single test +# +# The expected output is something like: +# +# 1/2 Test #1: test_uiplugin_module ............. Passed 6.33 sec +# Start 4: test_uiplugin_via_designer +# 2/2 Test #2: test_uiplugin_via_designer ....... Passed 9.32 sec +# +# +# Note that if Qt is not installed, or if it is installed to a +# non-standard prefix, the environment variable CMAKE_PREFIX_PATH +# needs to be set to the installation prefix or build prefix of Qt +# before running these tests. + +cmake_minimum_required(VERSION 3.16) + +project(qttools_cmake_tests) + +enable_testing() + +set(required_packages Core) +set(optional_packages Widgets LinguistTools) + +# Setup the test when called as a completely standalone project. +if(TARGET Qt6::Core) + # Tests are built as part of the qtbase build tree. + # Setup paths so that the Qt packages are found, similar to examples. + qt_internal_set_up_build_dir_package_paths() +endif() + +find_package(Qt6 REQUIRED COMPONENTS ${required_packages}) +find_package(Qt6 OPTIONAL_COMPONENTS ${optional_packages}) + +# Setup common test variables which were previously set by ctest_testcase_common.prf. +set(CMAKE_MODULES_UNDER_TEST "${required_packages}") +foreach(qt_package ${optional_packages}) + set(package_name "${QT_CMAKE_EXPORT_NAMESPACE}${qt_package}") + list(APPEND CMAKE_MODULES_UNDER_TEST "${qt_package}") +endforeach() + +foreach(qt_package ${CMAKE_MODULES_UNDER_TEST}) + if(${package_name}_FOUND) + set(CMAKE_${qt_package}_MODULE_MAJOR_VERSION "${${package_name}_VERSION_MAJOR}") + set(CMAKE_${qt_package}_MODULE_MINOR_VERSION "${${package_name}_VERSION_MINOR}") + set(CMAKE_${qt_package}_MODULE_PATCH_VERSION "${${package_name}_VERSION_PATCH}") + endif() +endforeach() + +include("${_Qt6CTestMacros}") + +if (TARGET Qt6::Widgets) + _qt_internal_test_expect_pass(test_uiplugin_module) + _qt_internal_test_expect_pass(test_uiplugin_via_designer) +endif() + +if(TARGET Qt6::lupdate) + _qt_internal_test_expect_pass(test_translation_api) +endif() diff --git a/tests/auto/cmake/linguist/CMakeLists.txt b/tests/auto/cmake/linguist/CMakeLists.txt new file mode 100644 index 0000000..e137478 --- /dev/null +++ b/tests/auto/cmake/linguist/CMakeLists.txt @@ -0,0 +1,60 @@ +# This is an automatic test for the CMake configuration files. +# To run it manually, +# 1) mkdir build # Create a build directory +# 2) cd build +# 3) # Run cmake on this directory +# `$qt_prefix/bin/qt-cmake ..` or `cmake -DCMAKE_PREFIX_PATH=/path/to/qt ..` +# 4) ctest # Run ctest +# 5) ctest -V -R test_add_translation_macro # Run single test +# +# The expected output is something like: +# +# Start 1: test_add_translation_macro +# 1/2 Test #1: test_add_translation_macro ....... Passed 3.13 sec +# Start 2: test_create_translation_macro +# 2/2 Test #2: test_create_translation_macro .... Passed 3.64 sec +# +# +# Note that if Qt is not installed, or if it is installed to a +# non-standard prefix, the environment variable CMAKE_PREFIX_PATH +# needs to be set to the installation prefix or build prefix of Qt +# before running these tests. + +cmake_minimum_required(VERSION 3.16) + +project(qttools_cmake_tests_linguist) + +enable_testing() + +set(required_packages Core LinguistTools) + +# Setup the test when called as a completely standalone project. +if(TARGET Qt6::Core) + # Tests are built as part of the qtbase build tree. + # Setup paths so that the Qt packages are found, similar to examples. + qt_internal_set_up_build_dir_package_paths() +endif() + +find_package(Qt6 REQUIRED COMPONENTS ${required_packages}) + +# Setup common test variables which were previously set by ctest_testcase_common.prf. +set(CMAKE_MODULES_UNDER_TEST "${required_packages}") +foreach(qt_package ${optional_packages}) + set(package_name "${QT_CMAKE_EXPORT_NAMESPACE}${qt_package}") + list(APPEND CMAKE_MODULES_UNDER_TEST "${qt_package}") +endforeach() + +foreach(qt_package ${CMAKE_MODULES_UNDER_TEST}) + if(${package_name}_FOUND) + set(CMAKE_${qt_package}_MODULE_MAJOR_VERSION "${${package_name}_VERSION_MAJOR}") + set(CMAKE_${qt_package}_MODULE_MINOR_VERSION "${${package_name}_VERSION_MINOR}") + set(CMAKE_${qt_package}_MODULE_PATCH_VERSION "${${package_name}_VERSION_PATCH}") + endif() +endforeach() + +include("${_Qt6CTestMacros}") + +_qt_internal_test_expect_pass(test_add_translation_macro) +if (TARGET Qt6::lupdate) + _qt_internal_test_expect_pass(test_create_translation_macro) +endif() diff --git a/tests/auto/cmake/linguist/test_add_translation_macro/CMakeLists.txt b/tests/auto/cmake/linguist/test_add_translation_macro/CMakeLists.txt new file mode 100644 index 0000000..6a51231 --- /dev/null +++ b/tests/auto/cmake/linguist/test_add_translation_macro/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required(VERSION 3.16) + +project(test_add_translation_macro) + +find_package(Qt6 COMPONENTS Core LinguistTools REQUIRED) + +set(my_srcs myi18nobject.cpp) + +include_directories("${CMAKE_CURRENT_SOURCE_DIR}/some_dir") + +qt_add_translation(qm_files myobject_de.ts OPTIONS -compress) # play around with OPTIONS + +add_executable(test_add_translation ${my_srcs} ${qm_files}) +target_link_libraries(test_add_translation Qt::Core) diff --git a/tests/auto/cmake/linguist/test_add_translation_macro/myi18nobject.cpp b/tests/auto/cmake/linguist/test_add_translation_macro/myi18nobject.cpp new file mode 100644 index 0000000..5a46eea --- /dev/null +++ b/tests/auto/cmake/linguist/test_add_translation_macro/myi18nobject.cpp @@ -0,0 +1,28 @@ +// Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Stephen Kelly +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include +#include +#include + +#include "some_include.h" + +int main(int argc, char **argv) +{ + QCoreApplication app(argc, argv); + QTranslator *myappTranslator = new QTranslator; + + QLocale::setDefault(QLocale("de")); + + if (!myappTranslator->load(QLocale(), "myobject", "_", qApp->applicationDirPath())) + qFatal("Could not load translation file!"); + + app.installTranslator(myappTranslator); + + QString text = QCoreApplication::translate("main", "Hello, world!"); + if (text != QLatin1String("Hallo, Welt!")) + qFatal("Translation not found!"); + + std::fprintf(stdout, "%s\n", qPrintable(text)); + return 0; +} diff --git a/tests/auto/cmake/linguist/test_add_translation_macro/myobject_de.ts b/tests/auto/cmake/linguist/test_add_translation_macro/myobject_de.ts new file mode 100644 index 0000000..18811c2 --- /dev/null +++ b/tests/auto/cmake/linguist/test_add_translation_macro/myobject_de.ts @@ -0,0 +1,12 @@ + + + + + main + + + Hello, world! + Hallo, Welt! + + + diff --git a/tests/auto/cmake/linguist/test_add_translation_macro/some_dir/some_include.h b/tests/auto/cmake/linguist/test_add_translation_macro/some_dir/some_include.h new file mode 100644 index 0000000..b4b535d --- /dev/null +++ b/tests/auto/cmake/linguist/test_add_translation_macro/some_dir/some_include.h @@ -0,0 +1,9 @@ +// Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Stephen Kelly +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef SOME_INCLUDE_H +#define SOME_INCLUDE_H + +enum { Non_Empty_File }; + +#endif diff --git a/tests/auto/cmake/linguist/test_create_translation_macro/CMakeLists.txt b/tests/auto/cmake/linguist/test_create_translation_macro/CMakeLists.txt new file mode 100644 index 0000000..163d217 --- /dev/null +++ b/tests/auto/cmake/linguist/test_create_translation_macro/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required(VERSION 3.16) + +project(test_create_translation_macros) + +find_package(Qt6 COMPONENTS Core LinguistTools REQUIRED) + +set(my_srcs myi18nobject.cpp) + +include_directories("${CMAKE_CURRENT_SOURCE_DIR}/some_dir") + +qt_create_translation(qm_files ${my_srcs} myobject_de.ts OPTIONS -pro-debug) # play around with OPTIONS + +add_executable(myobject ${my_srcs} ${qm_files}) +target_link_libraries(myobject Qt::Core) diff --git a/tests/auto/cmake/linguist/test_create_translation_macro/myi18nobject.cpp b/tests/auto/cmake/linguist/test_create_translation_macro/myi18nobject.cpp new file mode 100644 index 0000000..7e4f99b --- /dev/null +++ b/tests/auto/cmake/linguist/test_create_translation_macro/myi18nobject.cpp @@ -0,0 +1,26 @@ +// Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Stephen Kelly +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include +#include +#include + +int main(int argc, char **argv) +{ + QCoreApplication app(argc, argv); + QTranslator *myappTranslator = new QTranslator; + + QLocale::setDefault(QLocale("de")); + + if (!myappTranslator->load(QLocale(), "myobject", "_", qApp->applicationDirPath())) + qFatal("Could not load translation file!"); + + app.installTranslator(myappTranslator); + + QString text = QCoreApplication::translate("main", "Hello, world!"); + if (text != QLatin1String("Hallo, Welt!")) + qFatal("Translation not found!"); + + std::fprintf(stdout, "%s\n", qPrintable(text)); + return 0; +} diff --git a/tests/auto/cmake/linguist/test_create_translation_macro/myobject_de.ts b/tests/auto/cmake/linguist/test_create_translation_macro/myobject_de.ts new file mode 100644 index 0000000..f4f9f4b --- /dev/null +++ b/tests/auto/cmake/linguist/test_create_translation_macro/myobject_de.ts @@ -0,0 +1,12 @@ + + + + + main + + + Hello, world! + Hallo, Welt! + + + diff --git a/tests/auto/cmake/linguist/test_create_translation_macro/some_dir/some_include.h b/tests/auto/cmake/linguist/test_create_translation_macro/some_dir/some_include.h new file mode 100644 index 0000000..b4b535d --- /dev/null +++ b/tests/auto/cmake/linguist/test_create_translation_macro/some_dir/some_include.h @@ -0,0 +1,9 @@ +// Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Stephen Kelly +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef SOME_INCLUDE_H +#define SOME_INCLUDE_H + +enum { Non_Empty_File }; + +#endif diff --git a/tests/auto/cmake/test_translation_api/CMakeLists.txt b/tests/auto/cmake/test_translation_api/CMakeLists.txt new file mode 100644 index 0000000..ea20ff3 --- /dev/null +++ b/tests/auto/cmake/test_translation_api/CMakeLists.txt @@ -0,0 +1,136 @@ +cmake_minimum_required(VERSION 3.16) + +project(test_update_translation_macro) + +find_package(Qt6 REQUIRED COMPONENTS Core LinguistTools) + +function(create_app target) + add_executable(${target} + myi18nobject.cpp) + + target_include_directories(${target} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/some_dir) + + target_link_libraries(${target} Qt6::Core) +endfunction() + +function(expect_target target) + if(NOT TARGET ${target}) + message(FATAL_ERROR "Expected target '${target}' does not exist.") + endif() +endfunction() + +function(not_expect_target target) + if(TARGET ${target}) + message(FATAL_ERROR "Target '${target}' exists unexpectedly.") + endif() +endfunction() + +function(expect_files_in_list list_var) + set(file_names "") + foreach(path IN LISTS "${list_var}") + get_filename_component(file_name "${path}" NAME) + list(APPEND file_names "${file_name}") + endforeach() + set(found_file_names "") + foreach(expected_file_name IN LISTS ARGN) + list(FIND file_names "${expected_file_name}" idx) + if(idx EQUAL -1) + message(FATAL_ERROR "Expected file name '${expected_file_name}' is not in " + "'${list_var}'. Its value is '${${list_var}}'.") + endif() + list(APPEND found_file_names "${expected_file_name}") + endforeach() + list(REMOVE_ITEM file_names ${found_file_names}) + list(LENGTH file_names n) + if(NOT n EQUAL 0) + message(FATAL_ERROR "Unexpected file names in '${list_var}': ${file_names}\n" + "Value of '${list_var}' is '${${list_var}}'.") + endif() +endfunction() + +# Test NO_GLOBAL_TARGET for lupdate. +create_app(app1) +qt6_add_lupdate(app1 + NO_GLOBAL_TARGET + TS_FILES myobject_de.ts) +expect_target(app1_lupdate) +not_expect_target(app1_lrelease) +not_expect_target(update_translations) +not_expect_target(release_translations) + +# Test NO_GLOBAL_TARGET for lrelease. +create_app(app2) +qt6_add_lrelease(app2 + NO_GLOBAL_TARGET + TS_FILES myobject_de.ts myobject_en.ts + QM_FILES_OUTPUT_VARIABLE qm_files) +not_expect_target(app2_lupdate) +expect_target(app2_lrelease) +not_expect_target(update_translations) +not_expect_target(release_translations) +expect_files_in_list(qm_files myobject_de.qm myobject_en.qm) + +# Typical usage of qt_add_lupdate/qt_add_lrelease. Pass some options for good measure. +create_app(app3) +qt6_add_lupdate(app3 + TS_FILES myobject_no.ts myobject_fi.ts + OPTIONS -source-language en_US) +qt6_add_lrelease(app3 + TS_FILES myobject_no.ts myobject_fi.ts + OPTIONS -compress + QM_FILES_OUTPUT_VARIABLE qm_files2) +expect_target(app3_lupdate) +expect_target(app3_lrelease) +expect_target(release_translations) +expect_files_in_list(qm_files2 myobject_no.qm myobject_fi.qm) + +# Now do the same with qt6_add_translations. +create_app(app4) +qt6_add_translations(app4 + TS_FILES myobject_no.ts myobject_fi.ts + QM_FILES_OUTPUT_VARIABLE qm_files + LUPDATE_OPTIONS -source-language en_US + LRELEASE_OPTIONS -compress) +expect_target(app4_lupdate) +expect_target(app4_lrelease) +expect_target(release_translations) +expect_files_in_list(qm_files myobject_no.qm myobject_fi.qm) + +# Typical usage of qt_add_translations with a generated resource. +create_app(app5) +qt6_add_translations(app5 + TS_FILES myobject_ru.ts + RESOURCE_PREFIX "/tränslehschns") + +# qt_add_translations on a static lib with a generated resource and the default resource prefix. +# Extract the created resource targets. +add_library(staticlib1 STATIC + myi18nobject.cpp) +target_include_directories(staticlib1 + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/some_dir) +target_link_libraries(staticlib1 PRIVATE Qt6::Core) +set(staticlib1_resource_targets "") +qt6_add_translations(staticlib1 + TS_FILES myobject_da.ts + OUTPUT_TARGETS staticlib1_resource_targets) +if("${staticlib1_resource_targets}" STREQUAL "") + message(FATAL_ERROR "staticlib1_resource_targets is empty.") +endif() + +# Explicitly specify SOURCES. +create_app(app6) +qt6_add_translations(app6 + TS_FILES myobject_cs.ts + SOURCES myi18nobject.cpp) + +# Explicitly specify INCLUDE_DIRECTORIES. +create_app(app7) +qt6_add_translations(app7 + TS_FILES myobject_nl.ts + INCLUDE_DIRECTORIES some_dir) + +# Build the update_translations target +add_custom_target(my_all_target + ALL + DEPENDS update_translations) diff --git a/tests/auto/cmake/test_translation_api/myi18nobject.cpp b/tests/auto/cmake/test_translation_api/myi18nobject.cpp new file mode 100644 index 0000000..651f03d --- /dev/null +++ b/tests/auto/cmake/test_translation_api/myi18nobject.cpp @@ -0,0 +1,24 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Stephen Kelly +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include +#include +#include +#include + +#include "some_include.h" + +int main(int argc, char **argv) +{ + QCoreApplication app(argc, argv); + QTranslator *myappTranslator = new QTranslator; + QString localeName = QLocale::system().name(); + if (!myappTranslator->load("myobject_" + localeName + ".qm", qApp->applicationDirPath())) + return 1; + myappTranslator->setObjectName("myobject_" + localeName); + app.installTranslator(myappTranslator); + + qDebug() << QObject::tr("Hello, world!"); + return 0; +} diff --git a/tests/auto/cmake/test_translation_api/myobject_de.ts b/tests/auto/cmake/test_translation_api/myobject_de.ts new file mode 100644 index 0000000..fb4ee6f --- /dev/null +++ b/tests/auto/cmake/test_translation_api/myobject_de.ts @@ -0,0 +1,12 @@ + + + + + QObject + + + Hello, world! + + + + diff --git a/tests/auto/cmake/test_translation_api/some_dir/some_include.h b/tests/auto/cmake/test_translation_api/some_dir/some_include.h new file mode 100644 index 0000000..9889c39 --- /dev/null +++ b/tests/auto/cmake/test_translation_api/some_dir/some_include.h @@ -0,0 +1,12 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Stephen Kelly +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#ifndef SOME_INCLUDE_H +#define SOME_INCLUDE_H + +enum { + Non_Empty_File +}; + +#endif diff --git a/tests/auto/cmake/test_uiplugin_module/CMakeLists.txt b/tests/auto/cmake/test_uiplugin_module/CMakeLists.txt new file mode 100644 index 0000000..81c692f --- /dev/null +++ b/tests/auto/cmake/test_uiplugin_module/CMakeLists.txt @@ -0,0 +1,10 @@ +cmake_minimum_required(VERSION 3.16) +project(test_uiplugin_module) + +find_package(Qt6 COMPONENTS Widgets UiPlugin REQUIRED) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +add_library(my_designer_plugin my_designer_plugin.cpp) +target_link_libraries(my_designer_plugin Qt::UiPlugin) diff --git a/tests/auto/cmake/test_uiplugin_module/my_designer_plugin.cpp b/tests/auto/cmake/test_uiplugin_module/my_designer_plugin.cpp new file mode 100644 index 0000000..4c55dd1 --- /dev/null +++ b/tests/auto/cmake/test_uiplugin_module/my_designer_plugin.cpp @@ -0,0 +1,45 @@ +// Copyright (C) 2016 Stephen Kelly +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include +#include +#include +#include + +#include + +class MyPlugin : public QObject, public QDesignerCustomWidgetInterface +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface") + Q_INTERFACES(QDesignerCustomWidgetInterface) +public: + MyPlugin(QObject *parent = 0) + : QObject(parent) + , initialized(false) + { + + } + + bool isContainer() const { return true; } + bool isInitialized() const { return initialized; } + QIcon icon() const { return QIcon(); } + QString domXml() const { return QString(); } + QString group() const { return QString(); } + QString includeFile() const { return QString(); } + QString name() const { return QString(); } + QString toolTip() const { return QString(); } + QString whatsThis() const { return QString(); } + QWidget *createWidget(QWidget *parent) { return new QWidget(parent); } + void initialize(QDesignerFormEditorInterface *) + { + if (initialized) + return; + initialized = true; + } + +private: + bool initialized; +}; + +#include "my_designer_plugin.moc" diff --git a/tests/auto/cmake/test_uiplugin_via_designer/CMakeLists.txt b/tests/auto/cmake/test_uiplugin_via_designer/CMakeLists.txt new file mode 100644 index 0000000..7090182 --- /dev/null +++ b/tests/auto/cmake/test_uiplugin_via_designer/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 3.16) +project(test_uiplugin_via_designer) + +find_package(Qt6 COMPONENTS Widgets Xml Designer REQUIRED) + +set(CMAKE_AUTOMOC ON) + + +add_definitions(-DTEST_UIPLUGIN_USAGE_REQUIREMENTS=1) + +add_library(my_uiplugin_via_designer my_designer_plugin.cpp) +target_link_libraries(my_uiplugin_via_designer Qt::Designer) diff --git a/tests/auto/cmake/test_uiplugin_via_designer/my_designer_plugin.cpp b/tests/auto/cmake/test_uiplugin_via_designer/my_designer_plugin.cpp new file mode 100644 index 0000000..de0b9e3 --- /dev/null +++ b/tests/auto/cmake/test_uiplugin_via_designer/my_designer_plugin.cpp @@ -0,0 +1,51 @@ +// Copyright (C) 2016 Stephen Kelly +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include +#include +#include +#include + +#include + +#if TEST_UIPLUGIN_USAGE_REQUIREMENTS +# ifndef QT_UIPLUGIN_LIB +# error Expect QT_UIPLUGIN_LIB define +# endif +#endif + +class MyPlugin : public QObject, public QDesignerCustomWidgetInterface +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface") + Q_INTERFACES(QDesignerCustomWidgetInterface) +public: + MyPlugin(QObject *parent = 0) + : QObject(parent) + , initialized(false) + { + + } + + bool isContainer() const { return true; } + bool isInitialized() const { return initialized; } + QIcon icon() const { return QIcon(); } + QString domXml() const { return QString(); } + QString group() const { return QString(); } + QString includeFile() const { return QString(); } + QString name() const { return QString(); } + QString toolTip() const { return QString(); } + QString whatsThis() const { return QString(); } + QWidget *createWidget(QWidget *parent) { return new QWidget(parent); } + void initialize(QDesignerFormEditorInterface *) + { + if (initialized) + return; + initialized = true; + } + +private: + bool initialized; +}; + +#include "my_designer_plugin.moc" diff --git a/tests/auto/linguist/CMakeLists.txt b/tests/auto/linguist/CMakeLists.txt new file mode 100644 index 0000000..a619324 --- /dev/null +++ b/tests/auto/linguist/CMakeLists.txt @@ -0,0 +1,5 @@ +# Generated from linguist.pro. + +add_subdirectory(lrelease) +add_subdirectory(lconvert) +add_subdirectory(lupdate) diff --git a/tests/auto/linguist/lconvert/CMakeLists.txt b/tests/auto/linguist/lconvert/CMakeLists.txt new file mode 100644 index 0000000..401d48f --- /dev/null +++ b/tests/auto/linguist/lconvert/CMakeLists.txt @@ -0,0 +1,10 @@ +# Generated from lconvert.pro. + +##################################################################### +## tst_lconvert Test: +##################################################################### + +qt_internal_add_test(tst_lconvert + SOURCES + tst_lconvert.cpp +) diff --git a/tests/auto/linguist/lconvert/data/codec-utf8.ts b/tests/auto/linguist/lconvert/data/codec-utf8.ts new file mode 100644 index 0000000..e6cc0c9 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/codec-utf8.ts @@ -0,0 +1,27 @@ + + + + + FooBar + + + random ascii only + + + + + this contains an umlaut ü &uuml; + + + + + random ascii only in utf8 + + + + + umlaut ü &uuml; in utf8 + + + + diff --git a/tests/auto/linguist/lconvert/data/endless-po-loop.ts b/tests/auto/linguist/lconvert/data/endless-po-loop.ts new file mode 100644 index 0000000..73d0299 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/endless-po-loop.ts @@ -0,0 +1,16 @@ + + + + + Assistant + + This is some text which introduces the DonauDampfSchifffahrtsKapitaensMuetzeMitKomischenUltraViolettenFransenUndEinemKnopf + + + + + %n document(s) found. + + + + diff --git a/tests/auto/linguist/lconvert/data/idxmerge-add.ts b/tests/auto/linguist/lconvert/data/idxmerge-add.ts new file mode 100644 index 0000000..bc4910a --- /dev/null +++ b/tests/auto/linguist/lconvert/data/idxmerge-add.ts @@ -0,0 +1,17 @@ + + + + + a + + + Second String + + + + + Duplicated String + + + + diff --git a/tests/auto/linguist/lconvert/data/idxmerge.ts b/tests/auto/linguist/lconvert/data/idxmerge.ts new file mode 100644 index 0000000..0784355 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/idxmerge.ts @@ -0,0 +1,17 @@ + + + + + a + + + First String + + + + + Duplicated String + + + + diff --git a/tests/auto/linguist/lconvert/data/idxmerge.ts.out b/tests/auto/linguist/lconvert/data/idxmerge.ts.out new file mode 100644 index 0000000..fa4c7dd --- /dev/null +++ b/tests/auto/linguist/lconvert/data/idxmerge.ts.out @@ -0,0 +1,22 @@ + + + + + a + + + First String + + + + + Second String + + + + + Duplicated String + + + + diff --git a/tests/auto/linguist/lconvert/data/makeplurals.pl b/tests/auto/linguist/lconvert/data/makeplurals.pl new file mode 100755 index 0000000..b6c5894 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/makeplurals.pl @@ -0,0 +1,48 @@ +#!/usr/bin/env perl +# Copyright (C) 2016 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +sub makeit2($$$) +{ + for (my $i = 0; $i < (1 << $_[0]); $i++) { + print OUTFILE "\n"; + print OUTFILE "$_[2]\n" unless $3 eq ""; + print OUTFILE "msgid \"singular $_[1] $i\"\n"; + print OUTFILE "msgid_plural \"plural $_[1] $i\"\n"; + for (my $j = 0; $j < $_[0]; $j++) { + my $tr; + if (($i & (1 << $j)) == 0) { + $tr = "translated $_[1] $i $j"; + } + print OUTFILE "msgstr[$j] \"$tr\"\n"; + } + } +} + +sub makeit($$$) +{ + open OUTFILE, ">${OUTDIR}plural-$_[0].po" || die "cannot write file in $OUTDIR"; + print OUTFILE <=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/tests/auto/linguist/lconvert/data/msgid.ts b/tests/auto/linguist/lconvert/data/msgid.ts new file mode 100644 index 0000000..27d29b7 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/msgid.ts @@ -0,0 +1,27 @@ + + + + + Dialog2 + + %n files + + + + + + %n cars + + + + + + Age: %1 + + + + func3 + + + + diff --git a/tests/auto/linguist/lconvert/data/phrasebook.qph b/tests/auto/linguist/lconvert/data/phrasebook.qph new file mode 100644 index 0000000..847a53b --- /dev/null +++ b/tests/auto/linguist/lconvert/data/phrasebook.qph @@ -0,0 +1,21 @@ + + + + About + Info + + + adornment + Zubehör + + + barrel button + Pen-Knopf + pen + + + foo & bar + Foo & bar + <test>übergroß + + diff --git a/tests/auto/linguist/lconvert/data/plurals-cn.ts b/tests/auto/linguist/lconvert/data/plurals-cn.ts new file mode 100644 index 0000000..ed14ead --- /dev/null +++ b/tests/auto/linguist/lconvert/data/plurals-cn.ts @@ -0,0 +1,17 @@ + + + + + Assistant + + Source + Translation + + + %n document(s) found. + + 1 Dokument gefunden. + + + + diff --git a/tests/auto/linguist/lconvert/data/plurals-de.ts b/tests/auto/linguist/lconvert/data/plurals-de.ts new file mode 100644 index 0000000..d69c5d5 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/plurals-de.ts @@ -0,0 +1,18 @@ + + + + + Assistant + + Not plural + Kein plural + + + %n document(s) found. + + 1 Dokument gefunden. + %n Dokumente gefunden. + + + + diff --git a/tests/auto/linguist/lconvert/data/relative.ts b/tests/auto/linguist/lconvert/data/relative.ts new file mode 100644 index 0000000..0e8954a --- /dev/null +++ b/tests/auto/linguist/lconvert/data/relative.ts @@ -0,0 +1,74 @@ + + + + + Foo + + + This is the first entry. + + + + + And a second one on the same line. + + + + + This tr is new. + + + + + + This one moved in from another file. + + + + + Just as this one. + + + + + + Another alien. + + + + + They are coming! + + + + + They are everywhere! + + + + + An earthling again. + + + + + This is from the bottom, too. + + + + + Third string from the bottom. + + + + + Fourth one! + + + + + This string did move from the bottom. + + + + diff --git a/tests/auto/linguist/lconvert/data/singular.po b/tests/auto/linguist/lconvert/data/singular.po new file mode 100644 index 0000000..9a2c91c --- /dev/null +++ b/tests/auto/linguist/lconvert/data/singular.po @@ -0,0 +1,42 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "untranslated one" +msgstr "translated" + +#, fuzzy +#| msgid "old untranslated" +msgid "untranslated two" +msgstr "translated" + +#| msgid "old untranslated" +msgid "untranslated two b" +msgstr "" + +#, fuzzy +#| msgid "old untranslated" +#| msgid_plural "old untranslated plural" +msgid "untranslated three" +msgstr "translated" + +#| msgid "old untranslated" +#| msgid_plural "old untranslated plural" +msgid "untranslated three b" +msgstr "" + +#, fuzzy +#| msgid_plural "old untranslated only plural" +msgid "untranslated four" +msgstr "translated" + +#| msgid_plural "old untranslated only plural" +msgid "untranslated four b" +msgstr "" + +#, fuzzy +#| msgctxt "old context" +msgid "untranslated five" +msgstr "translated" diff --git a/tests/auto/linguist/lconvert/data/test-broken-utf8.po b/tests/auto/linguist/lconvert/data/test-broken-utf8.po new file mode 100644 index 0000000..20b58a0 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-broken-utf8.po @@ -0,0 +1,9 @@ +# no comment +msgid "" +msgstr "" + +msgid "this works" +msgstr "das geht: ä" + +msgid "this is broken" +msgstr "das ist kaputt: Ãi" diff --git a/tests/auto/linguist/lconvert/data/test-broken-utf8.po.out b/tests/auto/linguist/lconvert/data/test-broken-utf8.po.out new file mode 100644 index 0000000..20fee33 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-broken-utf8.po.out @@ -0,0 +1,12 @@ +# no comment +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "this works" +msgstr "das geht: ä" + +msgid "this is broken" +msgstr "das ist kaputt: �i" diff --git a/tests/auto/linguist/lconvert/data/test-developer-comment.po b/tests/auto/linguist/lconvert/data/test-developer-comment.po new file mode 100644 index 0000000..787f312 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-developer-comment.po @@ -0,0 +1,23 @@ +# translation of kdmgreet.po to zh_CN +# Simp. Chinese Translation for kdmgreet. +# Copyright (C) 2001,2003 Free Software Foundation, Inc. +# Gou Zhuang , 2001. +# Xiong Jiang , 2003. +# Yan Shuangchun , 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: kdmgreet\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2008-04-28 18:47+0200\n" +"PO-Revision-Date: 2008-04-22 16:56+0800\n" +"Last-Translator: Lie_Ex \n" +"Language-Team: zh_CN \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. I'm a clever developer. Right? Uhm ... +msgid "User %u will log in in %t" +msgstr "用户 %u 将在 %t 秒后登录" diff --git a/tests/auto/linguist/lconvert/data/test-empty-comment.po b/tests/auto/linguist/lconvert/data/test-empty-comment.po new file mode 100644 index 0000000..ce74c46 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-empty-comment.po @@ -0,0 +1,24 @@ +# translation of kdmgreet.po to zh_CN +# Simp. Chinese Translation for kdmgreet. +# Copyright (C) 2001,2003 Free Software Foundation, Inc. +# Gou Zhuang , 2001. +# Xiong Jiang , 2003. +# Yan Shuangchun , 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: kdmgreet\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2008-04-28 18:47+0200\n" +"PO-Revision-Date: 2008-04-22 16:56+0800\n" +"Last-Translator: Lie_Ex \n" +"Language-Team: zh_CN \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +# +#: themer/kdmlabel.cpp:236 +msgid "User %u will log in in %t" +msgstr "用户 %u 将在 %t 秒后登录" diff --git a/tests/auto/linguist/lconvert/data/test-escapes.po b/tests/auto/linguist/lconvert/data/test-escapes.po new file mode 100644 index 0000000..059dc58 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-escapes.po @@ -0,0 +1,11 @@ +msgid "" +msgstr "" + +msgid "this comes\non a new line" +msgstr "yup" + +msgid "come to \"quote\" me" +msgstr "sure?" + +msgid "\x1a\45\r\t\v\a\b" +msgstr "yup" diff --git a/tests/auto/linguist/lconvert/data/test-escapes.po.out b/tests/auto/linguist/lconvert/data/test-escapes.po.out new file mode 100644 index 0000000..055fa79 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-escapes.po.out @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "" +"this comes\n" +"on a new line" +msgstr "yup" + +msgid "come to \"quote\" me" +msgstr "sure?" + +msgid "\x1a%\r\t\v\a\b" +msgstr "yup" diff --git a/tests/auto/linguist/lconvert/data/test-kde-ctxt.po b/tests/auto/linguist/lconvert/data/test-kde-ctxt.po new file mode 100644 index 0000000..b510538 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-kde-ctxt.po @@ -0,0 +1,25 @@ +# translation of kdmgreet.po to zh_CN +# Simp. Chinese Translation for kdmgreet. +# Copyright (C) 2001,2003 Free Software Foundation, Inc. +# Gou Zhuang , 2001. +# Xiong Jiang , 2003. +# Yan Shuangchun , 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: kdmgreet\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2008-04-28 18:47+0200\n" +"PO-Revision-Date: 2008-04-22 16:56+0800\n" +"Last-Translator: Lie_Ex \n" +"Language-Team: zh_CN \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: kgdialog.cpp:231 +#, kde-format +msgctxt "session (location)" +msgid "%1 (%2)" +msgstr "%1(%2)" diff --git a/tests/auto/linguist/lconvert/data/test-kde-fuzzy.po b/tests/auto/linguist/lconvert/data/test-kde-fuzzy.po new file mode 100644 index 0000000..5ac2133 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-kde-fuzzy.po @@ -0,0 +1,43 @@ +# translation of kdmgreet.po to German +# Übersetzung von kdmgreet.po ins Deutsche +# Copyright (C) +# Thomas Diehl , 2002, 2003, 2004. +# Stephan Johach , 2005. +# Thomas Reitelbach , 2005, 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: kdmgreet\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2008-04-28 18:47+0200\n" +"PO-Revision-Date: 2007-12-06 20:50+0100\n" +"Last-Translator: Thomas Reitelbach \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KAider 0.1\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: kgverify.cpp:459 +#, fuzzy, kde-format +#| msgid "" +#| "Logging in %1 ...\n" +#| "\n" +msgid "" +"Logging in %1...\n" +"\n" +msgstr "" +"%1 wird angemeldet ...\n" +"\n" + +#: kgverify.cpp:460 +#, fuzzy, kde-format +#~| msgid "" +#~| "Logging out %1 ...\n" +#~| "\n" +#~ msgid "" +#~ "Logging out %1...\n" +#~ "\n" +#~ msgstr "" +#~ "%1 wird abgemeldet ...\n" +#~ "\n" diff --git a/tests/auto/linguist/lconvert/data/test-kde-multiline.po b/tests/auto/linguist/lconvert/data/test-kde-multiline.po new file mode 100644 index 0000000..662c02e --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-kde-multiline.po @@ -0,0 +1,32 @@ +# translation of kdmgreet.po to German +# Übersetzung von kdmgreet.po ins Deutsche +# Copyright (C) +# Thomas Diehl , 2002, 2003, 2004. +# Stephan Johach , 2005. +# Thomas Reitelbach , 2005, 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: kdmgreet\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2008-04-28 18:47+0200\n" +"PO-Revision-Date: 2007-12-06 20:50+0100\n" +"Last-Translator: Thomas Reitelbach \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KAider 0.1\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: kdmshutdown.cpp:706 +#, kde-format +msgid "" +"Owner: %1\n" +"Type: %2%5\n" +"Start: %3\n" +"Timeout: %4" +msgstr "" +"Eigentümer: %1\n" +"Typ: %2%5\n" +"Start: %3\n" +"Zeitlimit: %4" diff --git a/tests/auto/linguist/lconvert/data/test-kde-plurals.po b/tests/auto/linguist/lconvert/data/test-kde-plurals.po new file mode 100644 index 0000000..9f74de0 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-kde-plurals.po @@ -0,0 +1,27 @@ +# translation of kdmgreet.po to German +# Übersetzung von kdmgreet.po ins Deutsche +# Copyright (C) +# Thomas Diehl , 2002, 2003, 2004. +# Stephan Johach , 2005. +# Thomas Reitelbach , 2005, 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: kdmgreet\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2008-04-28 18:47+0200\n" +"PO-Revision-Date: 2007-12-06 20:50+0100\n" +"Last-Translator: Thomas Reitelbach \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KAider 0.1\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Language: de_DE\n" + +#: kgverify.cpp:505 +#, kde-format +msgid "Your account expires tomorrow." +msgid_plural "Your account expires in %1 days." +msgstr[0] "Ihre Zugangsberechtigung läuft morgen ab." +msgstr[1] "Ihre Zugangsberechtigung läuft in %1 Tagen ab." diff --git a/tests/auto/linguist/lconvert/data/test-refs.po b/tests/auto/linguist/lconvert/data/test-refs.po new file mode 100644 index 0000000..e149a38 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-refs.po @@ -0,0 +1,23 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Language: de_DE\n" + +#: themer/kdmlabel.cpp:285 +#, no-c-format +msgctxt "date format" +msgid "%a %d %B" +msgstr "%a %d %B" + +#: foo.bar.baz +#, no-c-format +msgid "full java class name" +msgstr "" + +#: foo.car:123 monks:here file/gar.c:17:19 no:monks:here +#, no-c-format +msgid "some excessive locations" +msgstr "" diff --git a/tests/auto/linguist/lconvert/data/test-slurp.po b/tests/auto/linguist/lconvert/data/test-slurp.po new file mode 100644 index 0000000..67bc239 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-slurp.po @@ -0,0 +1,19 @@ +msgid "" +msgstr "" +"Project-Id-Version: kdmgreet\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" + +msgid "just a line" +msgstr "indeed" + +msgid "" +"another " +"line" +msgstr "certainly" + +msgid "a somewhat longer line that will certainly require re-wrapping, and will be re-wrapped if our algorithm is not completely broken.\n" +"this comes on a new line.\n" +msgstr "whatever ..." + +msgid "bi-""segmented" +msgstr "aye" diff --git a/tests/auto/linguist/lconvert/data/test-slurp.po.out b/tests/auto/linguist/lconvert/data/test-slurp.po.out new file mode 100644 index 0000000..11a874e --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-slurp.po.out @@ -0,0 +1,22 @@ +msgid "" +msgstr "" +"Project-Id-Version: kdmgreet\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "just a line" +msgstr "indeed" + +msgid "another line" +msgstr "certainly" + +msgid "" +"a somewhat longer line that will certainly require re-wrapping, and will be " +"re-wrapped if our algorithm is not completely broken.\n" +"this comes on a new line.\n" +msgstr "whatever ..." + +msgid "bi-segmented" +msgstr "aye" diff --git a/tests/auto/linguist/lconvert/data/test-translator-comment.po b/tests/auto/linguist/lconvert/data/test-translator-comment.po new file mode 100644 index 0000000..bc4df5c --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test-translator-comment.po @@ -0,0 +1,41 @@ +# translation of kdmgreet.po to zh_CN +# Simp. Chinese Translation for kdmgreet. +# Copyright (C) 2001,2003 Free Software Foundation, Inc. +# Gou Zhuang , 2001. +# Xiong Jiang , 2003. +# Yan Shuangchun , 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: kdmgreet\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2008-04-28 18:47+0200\n" +"PO-Revision-Date: 2008-04-22 16:56+0800\n" +"Last-Translator: Lie_Ex \n" +"Language-Team: zh_CN \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "no comment" +msgstr "indeed" + +# +msgid "just empty" +msgstr "indeed" + +# +# This is some comment. +# +# This is another comment. +# +msgid "User %u will log in in %t" +msgstr "用户 %u 将在 %t 秒后登录" + +# A fooish bar. +# Hey-ho, sucker. +# +# Babbling gully. +msgid "Foo" +msgstr "Bar" diff --git a/tests/auto/linguist/lconvert/data/test1-cn.po b/tests/auto/linguist/lconvert/data/test1-cn.po new file mode 100644 index 0000000..529eca3 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test1-cn.po @@ -0,0 +1,67 @@ +# translation of kdmgreet.po to zh_CN +# Simp. Chinese Translation for kdmgreet. +# Copyright (C) 2001,2003 Free Software Foundation, Inc. +# Gou Zhuang , 2001. +# Xiong Jiang , 2003. +# Yan Shuangchun , 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: kdmgreet\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2008-04-28 18:47+0200\n" +"PO-Revision-Date: 2008-04-22 16:56+0800\n" +"Last-Translator: Lie_Ex \n" +"Language-Team: zh_CN \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Language: zh_CN\n" + +#: kdmconfig.cpp:147 +msgid "[fix kdmrc]" +msgstr "[修复 kdmrc]" + +#: krootimage.cpp:39 +msgid "Fancy desktop background for kdm" +msgstr "kdm 的梦幻桌面背景" + +#: kgreeter.cpp:558 +#, kde-format +msgid "" +"Your saved session type '%1' is not valid any more.\n" +"Please select a new one, otherwise 'default' will be used." +msgstr "" +"你保存的“%1”会话类型不再有效。\n" +"请选择一个新的类型,否则将使用“默认”。" + +#: kgdialog.cpp:231 +#, kde-format +msgctxt "session (location)" +msgid "%1 (%2)" +msgstr "%1(%2)" + +#: kgverify.cpp:505 +#, kde-format +msgid "Your account expires tomorrow." +msgid_plural "Your account expires in %1 days." +msgstr[0] "您的账户将于 %1 天后过期。" + +#: kdmshutdown.cpp:510 +#, kde-format +msgctxt "current option in boot loader" +msgid "%1 (current)" +msgstr "%1 (当前)" + +#: themer/kdmlabel.cpp:285 +#, no-c-format +msgctxt "date format" +msgid "%a %d %B" +msgstr "%B月%d日,%a" + +#~ msgid "_Suspend" +#~ msgstr "挂起(_S)" + +#~ msgid "Confi_gure" +#~ msgstr "配置(_G)" diff --git a/tests/auto/linguist/lconvert/data/test1-de.po b/tests/auto/linguist/lconvert/data/test1-de.po new file mode 100644 index 0000000..a4523bb --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test1-de.po @@ -0,0 +1,75 @@ +# translation of kdmgreet.po to German +# translation of kdmgreet.po to +# Übersetzung von kdmgreet.po ins Deutsche +# Copyright (C) +# Thomas Diehl , 2002, 2003, 2004. +# Stephan Johach , 2005. +# Thomas Reitelbach , 2005, 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: kdmgreet\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2008-04-28 18:47+0200\n" +"PO-Revision-Date: 2007-12-06 20:50+0100\n" +"Last-Translator: Thomas Reitelbach \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KAider 0.1\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Language: de_DE\n" + +#: lib/acl.c:107 lib/acl.c:121 lib/acl.c:138 lib/acl.c:165 lib/acl.c:174 +#: src/copy.c:695 src/copy.c:2017 +#, c-format +msgid "preserving permissions for %s" +msgstr "a preservar as permissões de %s" + +#: kdmconfig.cpp:147 +msgid "[fix kdmrc]" +msgstr "[fix kdmrc]" + +#: krootimage.cpp:39 +msgid "Fancy desktop background for kdm" +msgstr "Schicker Arbeitsflächenhintergrund für KDM" + +#: kgreeter.cpp:558 +#, kde-format +msgid "" +"Your saved session type '%1' is not valid any more.\n" +"Please select a new one, otherwise 'default' will be used." +msgstr "" +"Der gespeicherte Sitzungstyp „%1“ ist nicht mehr gültig.\n" +"Bitte wählen Sie einen neuen. Sonst wird die Voreinstellung verwendet." + +#: kgdialog.cpp:231 +#, kde-format +msgctxt "session (location)" +msgid "%1 (%2)" +msgstr "%1 (%2)" + +#: kgverify.cpp:505 +#, kde-format +msgid "Your account expires tomorrow." +msgid_plural "Your account expires in %1 days." +msgstr[0] "Ihre Zugangsberechtigung läuft morgen ab." +msgstr[1] "Ihre Zugangsberechtigung läuft in %1 Tagen ab." + +#: kdmshutdown.cpp:510 +#, kde-format +msgctxt "current option in boot loader" +msgid "%1 (current)" +msgstr "%1 (Aktuelle)" + +#: themer/kdmlabel.cpp:285 +#, no-c-format +msgctxt "date format" +msgid "%a %d %B" +msgstr "%a %d %B" + +#~ msgid "_Suspend" +#~ msgstr "_Ruhezustand" + +#~ msgid "Confi_gure" +#~ msgstr "Ein_richten" diff --git a/tests/auto/linguist/lconvert/data/test20.ts b/tests/auto/linguist/lconvert/data/test20.ts new file mode 100644 index 0000000..0233752 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/test20.ts @@ -0,0 +1,171 @@ + + + + + Dialog2 + + + %n files + plural form + + + + + + + %n cars + + + + + + + &Find %n cars + + + + + + + Search in %n items? + + + + + + + %1. Search in %n items? + + + + + + + Age: %1 + + + + + There are %n house(s) + Plurals and function call + + + + + + + QTranslator + Simple + + + + + + + QTranslator + Simple with comment + + + + + + + QTranslator + Plural without comment + + + + + + + QTranslator + Plural with comment + + + + + + + func3 + + + + + QApplication + + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + + + + + QCoreApplication + + + Plurals, QCoreApplication + %n house(s) + + + + + + + Plurals, QCoreApplication + %n car(s) + + looks quite finished + + + + + Plurals, QCoreApplication + %n horse(s) + + looks kinda vanished + + + + + TestClass + + + inline function + TestClass + + + + + inline function 2 + TestClass + just fine here + + + + static inline function + TestClass + not quite fine here + + + + Bizarre ~ and | context~ + + just something + + + + something else + comment with | and ~ and so~ + + + + just something obsolete + translated obsoletion + + + something else obsolete + comment with | and ~ and so~ + another translated obsoletion + + + diff --git a/tests/auto/linguist/lconvert/data/untranslated.qm b/tests/auto/linguist/lconvert/data/untranslated.qm new file mode 100644 index 0000000000000000000000000000000000000000..e31d2553ac7d18fdb8af944766795720ca498b73 GIT binary patch literal 222 zcmcE7ks@*G{hX<16=n7(EZlo{IRgU&Yf5Uoi>nimCBb}StvZk{Vqf>-F_30pU-!lw zNSS2z@)#2t zK^kNjT)|2e7~Fx1i-GK1AeqFF2-Kbe*UIIem#R=)QUuft(+jc@E-xIKS5lOiSDcer RlA59rjI6K&XbBS|BLEzCG+zJ! literal 0 HcmV?d00001 diff --git a/tests/auto/linguist/lconvert/data/untranslated.ts b/tests/auto/linguist/lconvert/data/untranslated.ts new file mode 100644 index 0000000..89007df --- /dev/null +++ b/tests/auto/linguist/lconvert/data/untranslated.ts @@ -0,0 +1,25 @@ + + + + + a + + + One string + Ein Gesimsband + + + + Untranslated String + + + + + %n things + + + %n Dinger + + + + diff --git a/tests/auto/linguist/lconvert/data/untranslated.ts.out b/tests/auto/linguist/lconvert/data/untranslated.ts.out new file mode 100644 index 0000000..6244f9d --- /dev/null +++ b/tests/auto/linguist/lconvert/data/untranslated.ts.out @@ -0,0 +1,20 @@ + + + + + a + + + One string + Ein Gesimsband + + + + %n things + + + %n Dinger + + + + diff --git a/tests/auto/linguist/lconvert/data/variants.ts b/tests/auto/linguist/lconvert/data/variants.ts new file mode 100644 index 0000000..91c2086 --- /dev/null +++ b/tests/auto/linguist/lconvert/data/variants.ts @@ -0,0 +1,24 @@ + + + + + Assistant + + Source + + A really very long translation + Short translation + + + + %n document(s) found. + + 1 Dokument gefunden. + + %n Dokumente gefunden. + %n Dok. gefunden. + + + + + diff --git a/tests/auto/linguist/lconvert/data/whitespace.ts b/tests/auto/linguist/lconvert/data/whitespace.ts new file mode 100644 index 0000000..560fe5d --- /dev/null +++ b/tests/auto/linguist/lconvert/data/whitespace.ts @@ -0,0 +1,12 @@ + + + + + QObject + + This is a test + SPACE AA AA, +NBSP AA AA + + + diff --git a/tests/auto/linguist/lconvert/data/wrapping.po b/tests/auto/linguist/lconvert/data/wrapping.po new file mode 100644 index 0000000..4ec8c7f --- /dev/null +++ b/tests/auto/linguist/lconvert/data/wrapping.po @@ -0,0 +1,66 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-14 14:01+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#, no-wrap +msgid "one two three four five six seven eight nine ten eleven twelve thirteen a 12 foo bar\n" +msgstr "" + +#, no-wrap +msgid "" +"one two three four five six seven eight nine ten eleven twelve thirteen a 13 foo bar\n" +"second line" +msgstr "" + +#: gettxt.c:3 +msgid "" +"one two three four five six seven eight nine ten eleven twelve thirteen a 14 " +"foo bar\n" +msgstr "" + +#: gettxt.c:4 +msgid "" +"one two three four five six seven eight nine ten eleven twelve thirteen a " +"15\n" +msgstr "" + +#: gettxt.c:5 +msgid "" +"one two three four five six seven eight nine ten eleven twelve thirteen a " +"123 foo bar\n" +msgstr "" + +#: gettxt.c:6 +msgid "one two three four five six seven eight nine ten eleven twelve thirteen" +msgstr "" + +#: gettxt.c:7 +msgid "" +"one two three four five six seven eight nine ten eleven twelve th1rt33n\n" +msgstr "" + +#: gettxt.c:8 +msgid "one two three four five six\n" +msgstr "" + +#: gettxt.c:10 gettxt.c:100 gettxt.c:101 gettxt.c:102 gettxt.c:103 gettxt.c:104 +msgid "foo" +msgstr "" + +#: gettxt.c:100 gettxt.c:101 gettxt.c:102 gettxt.c:103 gettxt.c:104 +#: gettxt.c:105 +msgid "bar" +msgstr "" diff --git a/tests/auto/linguist/lconvert/tst_lconvert.cpp b/tests/auto/linguist/lconvert/tst_lconvert.cpp new file mode 100644 index 0000000..e20d145 --- /dev/null +++ b/tests/auto/linguist/lconvert/tst_lconvert.cpp @@ -0,0 +1,322 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include +#include + +class tst_lconvert : public QObject +{ + Q_OBJECT + +public: + tst_lconvert() + : dataDir(QFINDTESTDATA("data/")) + , lconvert(QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/lconvert") {} + +private slots: + void initTestCase(); + void readverifies_data(); + void readverifies(); + void converts_data(); + void converts(); + void roundtrips_data(); + void roundtrips(); + void chains_data(); + void chains(); + void merge(); + +private: + void doWait(QProcess *cvt, int stage); + void doCompare(QIODevice *actual, const QString &expectedFn); + void verifyReadFail(const QString &fn); + // args can be empty or have one element less than stations + void convertChain(const QString &inFileName, const QString &outFileName, + const QStringList &stations, const QList &args); + void convertRoundtrip(const QString &fileName, const QStringList &stations, + const QList &args); + + QString dataDir; + QString lconvert; +}; + +void tst_lconvert::initTestCase() +{ + if (!QFile::exists(dataDir + QLatin1String("plural-1.po"))) + QProcess::execute(QLatin1String("perl"), QStringList() << dataDir + QLatin1String("makeplurals.pl") << dataDir + QLatin1String("")); + QVERIFY(QFile::exists(dataDir + QLatin1String("plural-1.po"))); +} + +void tst_lconvert::doWait(QProcess *cvt, int stage) +{ + if (QTest::currentTestFailed()) { + cvt->kill(); + cvt->waitForFinished(); + } else { + QVERIFY2(cvt->waitForFinished(3000), + qPrintable(QString("Process %1 hung").arg(stage))); + QVERIFY2(cvt->exitStatus() == QProcess::NormalExit, + qPrintable(QString("Process %1 crashed").arg(stage))); + QVERIFY2(cvt->exitCode() == 0, + qPrintable(QString("Process %1 exited with status %2. Errors:\n%3") + .arg(stage).arg(cvt->exitCode()) + .arg(QString::fromUtf8(cvt->readAllStandardError())))); + } +} + +void tst_lconvert::doCompare(QIODevice *actualDev, const QString &expectedFn) +{ + QList actual = actualDev->readAll().split('\n'); + + QFile file(expectedFn); + QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); + QList expected = file.readAll().split('\n'); + + int i = 0, ei = expected.size(), gi = actual.size(); + for (; ; i++) { + if (i == gi) { + if (i == ei) + return; + gi = 0; + break; + } else if (i == ei) { + ei = 0; + break; + } else if (actual.at(i) != expected.at(i)) { + while ((ei - 1) >= i && (gi - 1) >= i && actual.at(gi - 1) == expected.at(ei - 1)) + ei--, gi--; + break; + } + } + QByteArray diff; + for (int j = qMax(0, i - 3); j < i; j++) + diff += expected.at(j) + '\n'; + diff += "<<<<<<< got\n"; + for (int j = i; j < gi; j++) { + diff += actual.at(j) + '\n'; + if (j >= i + 5) { + diff += "...\n"; + break; + } + } + diff += "=========\n"; + for (int j = i; j < ei; j++) { + diff += expected.at(j) + '\n'; + if (j >= i + 5) { + diff += "...\n"; + break; + } + } + diff += ">>>>>>> expected\n"; + for (int j = ei; j < qMin(ei + 3, expected.size()); j++) + diff += expected.at(j) + '\n'; + QFAIL(qPrintable("Output for " + expectedFn + " does not meet expectations:\n" + diff)); +} + +void tst_lconvert::verifyReadFail(const QString &fn) +{ + QProcess cvt; + cvt.start(lconvert, QStringList() << (dataDir + fn)); + QVERIFY2(cvt.waitForStarted(), qPrintable(cvt.errorString())); + QVERIFY(cvt.waitForFinished(10000)); + QVERIFY(cvt.exitStatus() == QProcess::NormalExit); + QVERIFY2(cvt.exitCode() == 2, "Accepted invalid input"); +} + +void tst_lconvert::convertChain(const QString &_inFileName, const QString &_outFileName, + const QStringList &stations, const QList &argList) +{ + QList cvts; + + QString fileName = dataDir + _inFileName; + QString outFileName = dataDir + _outFileName; + + for (int i = 0; i < stations.size() - 1; i++) { + QProcess *cvt = new QProcess(this); + if (cvts.isEmpty()) + cvt->setStandardInputFile(fileName); + else + cvts.last()->setStandardOutputProcess(cvt); + cvts.append(cvt); + } + for (int i = 0; i < stations.size() - 1; i++) { + QStringList args; + if (!argList.isEmpty()) + args += argList[i]; + args << "-if" << stations[i] << "-i" << "-" << "-of" << stations[i + 1]; + cvts.at(i)->start(lconvert, args, QIODevice::ReadWrite | QIODevice::Text); + } + for (QProcess *cvt : std::as_const(cvts)) + QVERIFY2(cvt->waitForStarted(), qPrintable(cvt->errorString())); + int st = 0; + for (QProcess *cvt : std::as_const(cvts)) + doWait(cvt, ++st); + + if (!QTest::currentTestFailed()) + doCompare(cvts.last(), outFileName); + + qDeleteAll(cvts); +} + +void tst_lconvert::convertRoundtrip(const QString &_fileName, const QStringList &stations, + const QList &argList) +{ + convertChain(_fileName, _fileName, stations, argList); +} + +void tst_lconvert::readverifies_data() +{ + QTest::addColumn("fileName"); + QTest::addColumn("format"); + + QTest::newRow("ts") << "test20.ts" << "ts"; + QTest::newRow("empty comment") << "test-empty-comment.po" << "po"; + QTest::newRow("translator comment") << "test-translator-comment.po" << "po"; + QTest::newRow("developer comment") << "test-developer-comment.po" << "po"; + QTest::newRow("kde context") << "test-kde-ctxt.po" << "po"; + QTest::newRow("kde fuzzy") << "test-kde-fuzzy.po" << "po"; + QTest::newRow("kde plurals") << "test-kde-plurals.po" << "po"; + QTest::newRow("kde multiline") << "test-kde-multiline.po" << "po"; + QTest::newRow("po linewrapping") << "wrapping.po" << "po"; + QTest::newRow("relative locations") << "relative.ts" << "ts"; + QTest::newRow("message ids") << "msgid.ts" << "ts"; + QTest::newRow("length variants") << "variants.ts" << "ts"; + QTest::newRow("qph") << "phrasebook.qph" << "qph"; +} + +void tst_lconvert::readverifies() +{ + QFETCH(QString, fileName); + QFETCH(QString, format); + + convertRoundtrip(fileName, QStringList() << format << format, QList()); +} + +void tst_lconvert::converts_data() +{ + QTest::addColumn("inFileName"); + QTest::addColumn("outFileName"); + QTest::addColumn("format"); + + QTest::newRow("broken utf8") << "test-broken-utf8.po" << "test-broken-utf8.po.out" << "po"; + QTest::newRow("line joins") << "test-slurp.po" << "test-slurp.po.out" << "po"; + QTest::newRow("escapes") << "test-escapes.po" << "test-escapes.po.out" << "po"; +} + +void tst_lconvert::converts() +{ + QFETCH(QString, inFileName); + QFETCH(QString, outFileName); + QFETCH(QString, format); + + QString outFileNameFq = dataDir + outFileName; + + QProcess cvt; + cvt.start(lconvert, + QStringList() << "-i" << (dataDir + inFileName) << "-of" << format, + QIODevice::ReadWrite | QIODevice::Text); + QVERIFY2(cvt.waitForStarted(), qPrintable(cvt.errorString())); + doWait(&cvt, 0); + if (QTest::currentTestFailed()) + return; + + doCompare(&cvt, outFileNameFq); +} + +Q_DECLARE_METATYPE(QList); + +void tst_lconvert::chains_data() +{ + QTest::addColumn("inFileName"); + QTest::addColumn("outFileName"); + QTest::addColumn("stations"); + QTest::addColumn >("args"); + + QTest::newRow("no-untranslated") << "untranslated.ts" << "untranslated.ts.out" + << QStringList({"ts", "ts"}) + << QList({QStringList("-no-untranslated")}); +} + +void tst_lconvert::chains() +{ + QFETCH(QString, inFileName); + QFETCH(QString, outFileName); + QFETCH(QStringList, stations); + QFETCH(QList, args); + + convertChain(inFileName, outFileName, stations, args); +} + +void tst_lconvert::roundtrips_data() +{ + QTest::addColumn("fileName"); + QTest::addColumn("stations"); + QTest::addColumn >("args"); + + QStringList poTsPo; poTsPo << "po" << "ts" << "po"; + QStringList poXlfPo; poXlfPo << "po" << "xlf" << "po"; + QStringList tsPoTs; tsPoTs << "ts" << "po" << "ts"; + QStringList tsXlfTs; tsXlfTs << "ts" << "xlf" << "ts"; + QStringList tsQmTs; tsQmTs << "ts" << "qm" << "ts"; + QStringList qmTsQm; qmTsQm << "qm" << "ts" << "qm"; + + QList noArgs; + QList filterPoArgs; filterPoArgs << QStringList() << (QStringList() << "-drop-tag" << "po:*"); + QList outDeArgs; outDeArgs << QStringList() << (QStringList() << "-target-language" << "de"); + QList outCnArgs; outCnArgs << QStringList() << (QStringList() << "-target-language" << "cn"); + + QTest::newRow("po-ts-po (translator comment)") << "test-translator-comment.po" << poTsPo << noArgs; + QTest::newRow("po-xliff-po (translator comment)") << "test-translator-comment.po" << poXlfPo << noArgs; + QTest::newRow("po-ts-po (developer comment)") << "test-developer-comment.po" << poTsPo << noArgs; + QTest::newRow("po-xliff-po (developer comment)") << "test-developer-comment.po" << poXlfPo << noArgs; + + QTest::newRow("ts20-po-ts20") << "test20.ts" << tsPoTs << filterPoArgs; + QTest::newRow("po-ts-po (de)") << "test1-de.po" << poTsPo << noArgs; + QTest::newRow("po-ts-po (cn)") << "test1-cn.po" << poTsPo << noArgs; + QTest::newRow("po-xliff-po (de)") << "test1-de.po" << poXlfPo << noArgs; + QTest::newRow("po-xliff-po (cn)") << "test1-cn.po" << poXlfPo << noArgs; + + QTest::newRow("po-ts-po (singular)") << "singular.po" << poTsPo << noArgs; + QTest::newRow("po-ts-po (plural-1)") << "plural-1.po" << poTsPo << noArgs; + QTest::newRow("po-ts-po (plural-2)") << "plural-2.po" << poTsPo << noArgs; + QTest::newRow("po-ts-po (plural-3)") << "plural-3.po" << poTsPo << noArgs; + QTest::newRow("po-xliff-po (singular)") << "singular.po" << poXlfPo << noArgs; + QTest::newRow("po-xliff-po (plural-1)") << "plural-1.po" << poXlfPo << noArgs; + QTest::newRow("po-xliff-po (plural-2)") << "plural-2.po" << poXlfPo << noArgs; + QTest::newRow("po-xliff-po (plural-3)") << "plural-3.po" << poXlfPo << noArgs; + + QTest::newRow("po-ts-po (references)") << "test-refs.po" << poTsPo << noArgs; + + QTest::newRow("ts-qm-ts (plurals-de)") << "plurals-de.ts" << tsQmTs << outDeArgs; + QTest::newRow("ts-qm-ts (plurals-cn)") << "plurals-cn.ts" << tsQmTs << outCnArgs; + QTest::newRow("ts-qm-ts (variants)") << "variants.ts" << tsQmTs << outDeArgs; + QTest::newRow("ts-po-ts (msgid)") << "msgid.ts" << tsPoTs << noArgs; + QTest::newRow("ts-xliff-ts (msgid)") << "msgid.ts" << tsXlfTs << noArgs; + + QTest::newRow("ts-po-ts (endless loop)") << "endless-po-loop.ts" << tsPoTs << noArgs; + QTest::newRow("ts-qm-ts (whitespace)") << "whitespace.ts" << tsQmTs << noArgs; + QTest::newRow("qm-ts-qm (untranslated)") << "untranslated.qm" << qmTsQm << noArgs; +} + +void tst_lconvert::roundtrips() +{ + QFETCH(QString, fileName); + QFETCH(QStringList, stations); + QFETCH(QList, args); + + convertRoundtrip(fileName, stations, args); +} + +void tst_lconvert::merge() +{ + QProcess cvt; + QStringList args; + args << (dataDir + "idxmerge.ts") << (dataDir + "idxmerge-add.ts"); + cvt.start(lconvert, args, QIODevice::ReadWrite | QIODevice::Text); + doWait(&cvt, 1); + if (!QTest::currentTestFailed()) + doCompare(&cvt, dataDir + "idxmerge.ts.out"); +} + +QTEST_APPLESS_MAIN(tst_lconvert) + +#include "tst_lconvert.moc" diff --git a/tests/auto/linguist/lrelease/CMakeLists.txt b/tests/auto/linguist/lrelease/CMakeLists.txt new file mode 100644 index 0000000..484109c --- /dev/null +++ b/tests/auto/linguist/lrelease/CMakeLists.txt @@ -0,0 +1,10 @@ +# Generated from lrelease.pro. + +##################################################################### +## tst_lrelease Test: +##################################################################### + +qt_internal_add_test(tst_lrelease + SOURCES + tst_lrelease.cpp +) diff --git a/tests/auto/linguist/lrelease/testdata/compressed.ts b/tests/auto/linguist/lrelease/testdata/compressed.ts new file mode 100644 index 0000000..9579269 --- /dev/null +++ b/tests/auto/linguist/lrelease/testdata/compressed.ts @@ -0,0 +1,46 @@ + + + + + Context1 + + Foo + in first context + + + + Context2 + + Bar + in second context + + + + Action1 + + + Component Name + translation in first context + + + Fooish bar + the bar is fooish + + + + Action2 + + + Component Name + translation in second context + + + + Action3 + + + Component Name + translation in third context + + + diff --git a/tests/auto/linguist/lrelease/testdata/dupes.errors b/tests/auto/linguist/lrelease/testdata/dupes.errors new file mode 100644 index 0000000..9af5f05 --- /dev/null +++ b/tests/auto/linguist/lrelease/testdata/dupes.errors @@ -0,0 +1,4 @@ +Warning: dropping duplicate messages in '.*testdata/dupes\.qm': + +\* Context: FindDialog +\* Source: Text not found diff --git a/tests/auto/linguist/lrelease/testdata/dupes.ts b/tests/auto/linguist/lrelease/testdata/dupes.ts new file mode 100644 index 0000000..79bc450 --- /dev/null +++ b/tests/auto/linguist/lrelease/testdata/dupes.ts @@ -0,0 +1,21 @@ + + + + + FindDialog + + + Search reached start of the document + + + + + Text not found + + + + Text not found + + + + diff --git a/tests/auto/linguist/lrelease/testdata/idbased.ts b/tests/auto/linguist/lrelease/testdata/idbased.ts new file mode 100644 index 0000000..c7555c8 --- /dev/null +++ b/tests/auto/linguist/lrelease/testdata/idbased.ts @@ -0,0 +1,28 @@ + + + + + + + Completely irrelevant source text + This is a test string. + + + This has no translation. + + + + Foo bar. + Warn me! + + + Drop me! + + + + + + + + + diff --git a/tests/auto/linguist/lrelease/testdata/no-translations.pro b/tests/auto/linguist/lrelease/testdata/no-translations.pro new file mode 100644 index 0000000..154b266 --- /dev/null +++ b/tests/auto/linguist/lrelease/testdata/no-translations.pro @@ -0,0 +1 @@ +TEMPLATE = app diff --git a/tests/auto/linguist/lrelease/testdata/translate.ts b/tests/auto/linguist/lrelease/testdata/translate.ts new file mode 100644 index 0000000..ad3015d --- /dev/null +++ b/tests/auto/linguist/lrelease/testdata/translate.ts @@ -0,0 +1,136 @@ + + + + + + + + Test + AAAA + Empty context + + + + CubeForm + + + Test + BBBB + + + + QObject + + + +newline at the start + +NEWLINE AT THE START + + + + newline at the end + + NEWLINE AT THE END + + + + + newline and space at the end + + NEWLINE AND SPACE AT THE END + + + + + space and newline at the end + + SPACE AND NEWLINE AT THE END + + + + + tab at the start and newline at the end + + TAB AT THE START AND NEWLINE AT THE END + + + + + +newline and tab at the start + +NEWLINE AND TAB AT THE START + + + + space and tab at the start + SPACE AND TAB AT THE START + + + + space first + + + + + string that does not exist + + + + + Plurals + + + There are %n houses + + There is %n house + There are %n houses + + + + + tst_lrelease + + + There are %n cars + More Plurals + + There is %n car + There are %n cars + + + + Completely random string + + Super-lange Uebersetzung mit Schikanen + Mittlere Uebersetung + Kurze Uebers. + + + + + no_en + + + Kjør Kåre, kjære + Drive Kåre, dear + + + + en_no + + + Drive Kåre, dear + Kjør Kåre, kjære + + + + en_ch + + + Chinese symbol: + Chinese symbol:簟 + + + diff --git a/tests/auto/linguist/lrelease/tst_lrelease.cpp b/tests/auto/linguist/lrelease/tst_lrelease.cpp new file mode 100644 index 0000000..8be3090 --- /dev/null +++ b/tests/auto/linguist/lrelease/tst_lrelease.cpp @@ -0,0 +1,198 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include +#include +#include +#include + +#include + +class tst_lrelease : public QObject +{ + Q_OBJECT + +public: + tst_lrelease() + : lrelease(QLibraryInfo::path(QLibraryInfo::BinariesPath) + "/lrelease") + , dataDir(QFINDTESTDATA("testdata/")) + {} + +private: + +private slots: + void translate(); + void compressed(); + void idbased(); + void markuntranslated(); + void dupes(); + void noTranslations(); + +private: + void doCompare(const QStringList &actual, const QString &expectedFn); + + QString lrelease; + QString dataDir; +}; + +void tst_lrelease::doCompare(const QStringList &actual, const QString &expectedFn) +{ + QFile file(expectedFn); + QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); + QStringList expected = QString(file.readAll()).trimmed().split('\n'); + + int i = 0, ei = expected.size(), gi = actual.size(); + for (; ; i++) { + if (i == gi) { + if (i == ei) + return; + gi = 0; + break; + } else if (i == ei) { + ei = 0; + break; + } else if (!QRegularExpression(QRegularExpression::anchoredPattern(expected.at(i))).match(actual.at(i)).hasMatch()) { + while ((ei - 1) >= i && (gi - 1) >= i && + (QRegularExpression(QRegularExpression::anchoredPattern(expected.at(ei - 1))).match(actual.at(gi - 1))).hasMatch()) + ei--, gi--; + break; + } + } + QString diff; + for (int j = qMax(0, i - 3); j < i; j++) + diff += expected.at(j) + '\n'; + diff += "<<<<<<< got\n"; + for (int j = i; j < gi; j++) { + diff += actual.at(j) + '\n'; + if (j >= i + 5) { + diff += "...\n"; + break; + } + } + diff += "=========\n"; + for (int j = i; j < ei; j++) { + diff += expected.at(j) + '\n'; + if (j >= i + 5) { + diff += "...\n"; + break; + } + } + diff += ">>>>>>> expected\n"; + for (int j = ei; j < qMin(ei + 3, expected.size()); j++) + diff += expected.at(j) + '\n'; + QFAIL(qPrintable("Output for " + expectedFn + " does not meet expectations:\n" + diff)); +} + +void tst_lrelease::translate() +{ + QVERIFY(!QProcess::execute(lrelease, QStringList() << (dataDir + "translate.ts"))); + + QTranslator translator; + QVERIFY(translator.load(dataDir + "translate.qm")); + qApp->installTranslator(&translator); + + QCOMPARE(QObject::tr("\nnewline at the start"), QString("\nNEWLINE AT THE START")); + QCOMPARE(QObject::tr("newline at the end\n"), QString("NEWLINE AT THE END\n")); + QCOMPARE(QObject::tr("newline and space at the end\n "), QString("NEWLINE AND SPACE AT THE END\n ")); + QCOMPARE(QObject::tr("space and newline at the end \n"), QString("SPACE AND NEWLINE AT THE END \n")); + QCOMPARE(QObject::tr("\ttab at the start and newline at the end\n"), QString("\tTAB AT THE START AND NEWLINE AT THE END\n")); + QCOMPARE(QObject::tr("\n\tnewline and tab at the start"), QString("\n\tNEWLINE AND TAB AT THE START")); + QCOMPARE(QObject::tr(" \tspace and tab at the start"), QString(" \tSPACE AND TAB AT THE START")); + QCOMPARE(QObject::tr(" string that does not exist"), QString(" string that does not exist")); + + QCOMPARE(QCoreApplication::translate("CubeForm", "Test"), QString::fromLatin1("BBBB")); + QCOMPARE(QCoreApplication::translate("", "Test", "Empty context"), QString("AAAA")); + + // Test plurals + QString txed = QCoreApplication::translate("Plurals", "There are %n houses", 0, 0); + QCOMPARE(QString::fromLatin1("[%1]").arg(txed), QString("[There are 0 houses]")); + QCOMPARE(QCoreApplication::translate("Plurals", "There are %n houses", 0, 1), QString("There is 1 house")); + QCOMPARE(QCoreApplication::translate("Plurals", "There are %n houses", 0, 2), QString("There are 2 houses")); + QCOMPARE(QCoreApplication::translate("Plurals", "There are %n houses", 0, 3), QString("There are 3 houses")); + + + // More plurals + QCOMPARE(tr("There are %n cars", "More Plurals", 0) , QString("There are 0 cars")); + QCOMPARE(tr("There are %n cars", "More Plurals", 1) , QString("There is 1 car")); + QCOMPARE(tr("There are %n cars", "More Plurals", 2) , QString("There are 2 cars")); + QCOMPARE(tr("There are %n cars", "More Plurals", 3) , QString("There are 3 cars")); + + + QCOMPARE(QCoreApplication::translate("no_en", "Kj\xc3\xb8r K\xc3\xa5re, kj\xc3\xa6re"), QString::fromUtf8("Drive K\xc3\xa5re, dear")); + QCOMPARE(QCoreApplication::translate("en_no", "Drive K\xc3\xa5re, dear"), QString::fromUtf8("Kj\xc3\xb8r K\xc3\xa5re, kj\xc3\xa6re")); + QCOMPARE(QCoreApplication::translate("en_ch", "Chinese symbol:"), QString::fromUtf8("Chinese symbol:\xe7\xb0\x9f")); + +// printf("halo\r\nhallo"); + // QCOMPARE(tr("This\r\nwill fail"), QString("THIS\nWILL FAIL")); // \r\n = 0d 0a + + QCOMPARE(tr("Completely random string"), + QString::fromLatin1("Super-lange Uebersetzung mit Schikanen\x9c" + "Mittlere Uebersetung\x9c" + "Kurze Uebers.")); + + qApp->removeTranslator(&translator); +} + +void tst_lrelease::compressed() +{ + QVERIFY(!QProcess::execute(lrelease, QStringList() << "-compress" << (dataDir + "compressed.ts"))); + + QTranslator translator; + QVERIFY(translator.load(dataDir + "compressed.qm")); + qApp->installTranslator(&translator); + + QCOMPARE(QCoreApplication::translate("Context1", "Foo"), QString::fromLatin1("in first context")); + QCOMPARE(QCoreApplication::translate("Context2", "Bar"), QString::fromLatin1("in second context")); + + QCOMPARE(QCoreApplication::translate("Action1", "Component Name"), QString::fromLatin1("translation in first context")); + QCOMPARE(QCoreApplication::translate("Action2", "Component Name"), QString::fromLatin1("translation in second context")); + QCOMPARE(QCoreApplication::translate("Action3", "Component Name"), QString::fromLatin1("translation in third context")); + +} + +void tst_lrelease::idbased() +{ + QVERIFY(!QProcess::execute(lrelease, QStringList() << "-idbased" << (dataDir + "idbased.ts"))); + + QTranslator translator; + QVERIFY(translator.load(dataDir + "idbased.qm")); + qApp->installTranslator(&translator); + + QCOMPARE(qtTrId("test_id"), QString::fromLatin1("This is a test string.")); + QCOMPARE(qtTrId("untranslated_id"), QString::fromLatin1("This has no translation.")); +} + +void tst_lrelease::markuntranslated() +{ + QVERIFY(!QProcess::execute(lrelease, QStringList() << "-markuntranslated" << "#" << "-idbased" << (dataDir + "idbased.ts"))); + + QTranslator translator; + QVERIFY(translator.load(dataDir + "idbased.qm")); + qApp->installTranslator(&translator); + + QCOMPARE(qtTrId("test_id"), QString::fromLatin1("This is a test string.")); + QCOMPARE(qtTrId("untranslated_id"), QString::fromLatin1("#This has no translation.")); +} + +void tst_lrelease::dupes() +{ + QProcess proc; + proc.start(lrelease, QStringList() << (dataDir + "dupes.ts"), QIODevice::ReadWrite | QIODevice::Text); + QVERIFY(proc.waitForFinished()); + QVERIFY(proc.exitStatus() == QProcess::NormalExit); + doCompare(QString(proc.readAllStandardError()).trimmed().split('\n'), dataDir + "dupes.errors"); +} + +void tst_lrelease::noTranslations() +{ + QProcess proc; + proc.start(lrelease, { dataDir + "no-translations.pro" }); + QVERIFY(proc.waitForFinished()); + QCOMPARE(proc.exitStatus(), QProcess::NormalExit); + QCOMPARE(proc.exitCode(), 0); + auto stderrOutput = proc.readAllStandardError(); + QVERIFY(stderrOutput.contains("lrelease warning: Met no 'TRANSLATIONS' entry in project file")); +} + +QTEST_MAIN(tst_lrelease) +#include "tst_lrelease.moc" diff --git a/tests/auto/linguist/lupdate/CMakeLists.txt b/tests/auto/linguist/lupdate/CMakeLists.txt new file mode 100644 index 0000000..3342fb7 --- /dev/null +++ b/tests/auto/linguist/lupdate/CMakeLists.txt @@ -0,0 +1,24 @@ +# Generated from lupdate.pro. + +# special case begin +if(CMAKE_VERSION VERSION_LESS "3.19" AND MSVC AND QT_FEATURE_debug_and_release) + message(WARNING "tst_lupdate will not be built in this configuration.") + return() +endif() +# special case end + +##################################################################### +## tst_lupdate Test: +##################################################################### + +qt_internal_add_test(tst_lupdate + SOURCES + tst_lupdate.cpp + LIBRARIES + Qt::Tools + Qt::CorePrivate +) + +# The recursive tests take a bit longer for the clang-based parser. +# Increase the test timeout. +set_property(TEST tst_lupdate APPEND PROPERTY ENVIRONMENT "QTEST_FUNCTION_TIMEOUT=900000") diff --git a/tests/auto/linguist/lupdate/testdata/good/backslashes/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/backslashes/lupdatecmd new file mode 100644 index 0000000..f0e1ab2 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/backslashes/lupdatecmd @@ -0,0 +1 @@ +TRANSLATION: ts\project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/backslashes/project.pro b/tests/auto/linguist/lupdate/testdata/good/backslashes/project.pro new file mode 100644 index 0000000..d4dcda8 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/backslashes/project.pro @@ -0,0 +1,3 @@ +SOURCES += src\\main.cpp + +TRANSLATIONS = ts\\project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/backslashes/src/main.cpp b/tests/auto/linguist/lupdate/testdata/good/backslashes/src/main.cpp new file mode 100644 index 0000000..460f0b1 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/backslashes/src/main.cpp @@ -0,0 +1,44 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +// +// +// +// + +#include + +bool qt_detectRTLLanguage() +{ + return QCoreApplication::tr("QT_LAYOUT_DIRECTION", + "Translate this string to the string 'LTR' in left-to-right" + " languages or to 'RTL' in right-to-left languages (such as Hebrew" + " and Arabic) to get proper widget layout.") == QLatin1String("RTL"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/backslashes/ts/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/backslashes/ts/project.ts.result new file mode 100644 index 0000000..90ac88d --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/backslashes/ts/project.ts.result @@ -0,0 +1,13 @@ + + + + + QCoreApplication + + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/lupdatecmd new file mode 100644 index 0000000..301d839 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/lupdatecmd @@ -0,0 +1,2 @@ +cd ../../recursivescan +lupdate sub/finddialog.cpp -ts project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/project.ts.result new file mode 100644 index 0000000..e77ba09 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_deeppath/project.ts.result @@ -0,0 +1,27 @@ + + + + + FindDialog + + + Enter the text you want to find. + + + + + Search reached end of the document + + + + + Search reached start of the document + + + + + Text not found + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/cmdline_order/a.h b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/a.h new file mode 100644 index 0000000..138075c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/a.h @@ -0,0 +1,29 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#define XX QT_TRANSLATE_NOOP("aaa", "some text") diff --git a/tests/auto/linguist/lupdate/testdata/good/cmdline_order/b.h b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/b.h new file mode 100644 index 0000000..0b72f89 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/b.h @@ -0,0 +1,31 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include "a.h" + +#define YY QT_TRANSLATE_NOOP("bbb", "some text") diff --git a/tests/auto/linguist/lupdate/testdata/good/cmdline_order/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/lupdatecmd new file mode 100644 index 0000000..edd91f7 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/lupdatecmd @@ -0,0 +1 @@ +lupdate b.h a.h -ts project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/cmdline_order/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/project.ts.result new file mode 100644 index 0000000..ef58844 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_order/project.ts.result @@ -0,0 +1,20 @@ + + + + + aaa + + + some text + + + + + bbb + + + some text + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/lupdatecmd new file mode 100644 index 0000000..1814e67 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/lupdatecmd @@ -0,0 +1,2 @@ +cd ../../recursivescan +lupdate . -ts project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/project.ts.result new file mode 100644 index 0000000..9931123 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/cmdline_recurse/project.ts.result @@ -0,0 +1,115 @@ + + + + + FindDialog + + + Qt Assistant - Finn text + + + + + Finn tekst + + + + + Enter the text you want to find. + + + + + Search reached end of the document + + + + + Search reached start of the document + + + + + Text not found + + + + + QObject + + + +newline at the start + + + + + newline at the end + + + + + + newline and space at the end + + + + + + space and newline at the end + + + + + + Tab at the start and newline at the end + + + + + + + newline and tab at the start + + + + + space and tab at the start + + + + + space_first + + + + + space_last + + + + + text/c++ + + + test + + + + + text/cpp + + + test + + + + + text/cxx + + + test + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp new file mode 100644 index 0000000..9933928 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp @@ -0,0 +1,55 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include +#include +#include +#include +#include +int main(int argc, char **argv) +{ + QApplication a(argc, argv); + + + QWidget w; + QLabel label1(QObject::tr("abc", "ascii"), &w); + QLabel label2(QObject::tr("æøå", "utf-8"), &w); + QLabel label2a(QObject::tr("\303\246\303\270\303\245", "utf-8 oct"), &w); + QLabel label3(QObject::tr("Für Élise", "trUtf8"), &w); // trUtf8 is obsolete + QLabel label3a(QObject::tr("F\303\274r \303\211lise", "trUtf8 oct"), &w); // trUtf8 is obsolete + + QBoxLayout *ly = new QVBoxLayout(&w); + ly->addWidget(&label1); + ly->addWidget(&label2); + ly->addWidget(&label2a); + ly->addWidget(&label3); + ly->addWidget(&label3a); + + w.show(); + return a.exec(); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro new file mode 100644 index 0000000..489e060 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro @@ -0,0 +1,6 @@ +SOURCES += main.cpp +CONFIG+= console + +TRANSLATIONS = project.ts + +CODECFORSRC = utf-8 diff --git a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result new file mode 100644 index 0000000..756637a --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result @@ -0,0 +1,37 @@ + + + + + QObject + + + abc + ascii + + + + + æøå + utf-8 + + + + + æøå + utf-8 oct + + + + + Für Élise + trUtf8 + + + + + Für Élise + trUtf8 oct + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/from_subdir/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/from_subdir/lupdatecmd new file mode 100644 index 0000000..8a5b4ad --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/from_subdir/lupdatecmd @@ -0,0 +1 @@ +lupdate translations/translations.pro diff --git a/tests/auto/linguist/lupdate/testdata/good/from_subdir/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/from_subdir/project.ts.result new file mode 100644 index 0000000..c547839 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/from_subdir/project.ts.result @@ -0,0 +1,17 @@ + + + + + QApplication + + + string in main.cpp + + + + + string in main.h + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.cpp b/tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.cpp new file mode 100644 index 0000000..4052368 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.cpp @@ -0,0 +1,38 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include +#include "main.h" + +int main(int argc, char **argv) +{ + QString s1 = QApplication::tr("string in main.cpp"); + return 0; +} diff --git a/tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.h b/tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.h new file mode 100644 index 0000000..7b23bf5 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/from_subdir/src/main.h @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include +char dummy[] = QT_TRANSLATE_NOOP("QApplication", "string in main.h"); diff --git a/tests/auto/linguist/lupdate/testdata/good/from_subdir/translations/translations.pro b/tests/auto/linguist/lupdate/testdata/good/from_subdir/translations/translations.pro new file mode 100644 index 0000000..1815c37 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/from_subdir/translations/translations.pro @@ -0,0 +1,7 @@ +VPATH = ../src +INCLUDEPATH = ../src + +SOURCES += main.cpp +HEADERS += main.h + +TRANSLATIONS += ../project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/heuristics/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/heuristics/expectedoutput.txt new file mode 100644 index 0000000..1eed403 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/heuristics/expectedoutput.txt @@ -0,0 +1,5 @@ +Updating 'project\.ts'\.\.\. + Found 3 source text\(s\) \(3 new and 0 already existing\) + Removed 5 obsolete entries + Number heuristic provided 1 translation\(s\) + Same-text heuristic provided 1 translation\(s\) diff --git a/tests/auto/linguist/lupdate/testdata/good/heuristics/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/heuristics/lupdatecmd new file mode 100644 index 0000000..6bda261 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/heuristics/lupdatecmd @@ -0,0 +1,2 @@ +TRANSLATION: project.ts +lupdate -verbose -disable-heuristic similartext -no-obsolete project.pro diff --git a/tests/auto/linguist/lupdate/testdata/good/heuristics/main.cpp b/tests/auto/linguist/lupdate/testdata/good/heuristics/main.cpp new file mode 100644 index 0000000..41cedf5 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/heuristics/main.cpp @@ -0,0 +1,49 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#define QTCORE +#include QTCORE // Hidden from lupdate, but compiles + +class A: public QObject { + Q_OBJECT + void foo() + { + // number Heuristics + tr("version 2.0 now"); + + // same text match + tr("this is the matched same text"); + + // failed same text + tr("this is the non-matched same text"); + } +}; + diff --git a/tests/auto/linguist/lupdate/testdata/good/heuristics/project.pro b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.pro new file mode 100644 index 0000000..759bea0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.pro @@ -0,0 +1,3 @@ +SOURCES = main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.before new file mode 100644 index 0000000..e72debe --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.before @@ -0,0 +1,38 @@ + + + + + A + + + version 1.0 now + teraz wersja 1.0 + + + + B + + + this is the matched same text + der same-text-treffer + + + + this is the non-matched same text + same-text-reinfall variante eins + + + + C + + + this is the matched same text + der same-text-treffer + + + + this is the non-matched same text + völlig andere variante des reinfalls mit same-text + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.result new file mode 100644 index 0000000..351bdff --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.ts.result @@ -0,0 +1,22 @@ + + + + + A + + + version 2.0 now + teraz wersja 1.0 {2.0 ?} + + + + this is the matched same text + der same-text-treffer + + + + this is the non-matched same text + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/expectedoutput.txt new file mode 100644 index 0000000..c213f73 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/expectedoutput.txt @@ -0,0 +1,4 @@ +.*/lupdate/testdata/good/lacksqobject/main.cpp:45: Class 'B' lacks Q_OBJECT macro +.*/lupdate/testdata/good/lacksqobject/main.cpp:52: Class 'C' lacks Q_OBJECT macro +.*/lupdate/testdata/good/lacksqobject/main.cpp:65: Class 'nsB::B' lacks Q_OBJECT macro +.*/lupdate/testdata/good/lacksqobject/main.cpp:71: Class 'nsB::C' lacks Q_OBJECT macro diff --git a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/main.cpp b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/main.cpp new file mode 100644 index 0000000..f979286 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/main.cpp @@ -0,0 +1,75 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#define QTCORE +#include QTCORE // Hidden from lupdate, but compiles + +// +// Test 'lacks Q_OBJECT' reporting on namespace scopes +// + +class B : public QObject { + //Q_OBJECT + void foo(); +}; + +void B::foo() { + tr("Bla", "::B"); +} + + +class C : public QObject { + //Q_OBJECT + void foo() { + tr("Bla", "::C"); + } +}; + + +namespace nsB { + + class B : public QObject { + //Q_OBJECT + void foo(); + }; + + void B::foo() { + tr("Bla", "nsB::B"); + } + + class C : public QObject { + //Q_OBJECT + void foo() { + tr("Bla", "nsB::C"); + } + }; +} + diff --git a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.pro b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.pro new file mode 100644 index 0000000..759bea0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.pro @@ -0,0 +1,3 @@ +SOURCES = main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.ts.result new file mode 100644 index 0000000..ac4bcc0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.ts.result @@ -0,0 +1,40 @@ + + + + + B + + + Bla + ::B + + + + + C + + + Bla + ::C + + + + + nsB::B + + + Bla + nsB::B + + + + + nsB::C + + + Bla + nsB::C + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/expectedoutput.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/main.cpp b/tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/main.cpp new file mode 100644 index 0000000..f979286 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/main.cpp @@ -0,0 +1,75 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#define QTCORE +#include QTCORE // Hidden from lupdate, but compiles + +// +// Test 'lacks Q_OBJECT' reporting on namespace scopes +// + +class B : public QObject { + //Q_OBJECT + void foo(); +}; + +void B::foo() { + tr("Bla", "::B"); +} + + +class C : public QObject { + //Q_OBJECT + void foo() { + tr("Bla", "::C"); + } +}; + + +namespace nsB { + + class B : public QObject { + //Q_OBJECT + void foo(); + }; + + void B::foo() { + tr("Bla", "nsB::B"); + } + + class C : public QObject { + //Q_OBJECT + void foo() { + tr("Bla", "nsB::C"); + } + }; +} + diff --git a/tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/project.pro b/tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/project.pro new file mode 100644 index 0000000..759bea0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/project.pro @@ -0,0 +1,3 @@ +SOURCES = main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/project.ts.result new file mode 100644 index 0000000..66a33a3 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/lacksqobject_clang_parser/project.ts.result @@ -0,0 +1,31 @@ + + + + + QObject + + + Bla + ::B + + + + + Bla + ::C + + + + + Bla + nsB::B + + + + + Bla + nsB::C + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_ordering/foo.cpp b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/foo.cpp new file mode 100644 index 0000000..90b4c8c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/foo.cpp @@ -0,0 +1,56 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include +// The first line in this file should always be empty, its part of the test!! +class Foo : public QObject +{ + Q_OBJECT +public: + Foo(); +}; + +Foo::Foo() + : QObject() +{ + tr("This is the first entry."); + tr("A second message."); tr("And a second one on the same line."); + tr("This string did move from the bottom."); + tr("This tr is new."); + tr("This one moved in from another file."); + tr("Now again one which is just where it was."); + + tr("Just as this one."); + tr("Another alien."); + tr("This is from the bottom, too."); + tr("Third string from the bottom."); + tr("Fourth one!"); + tr("They are coming!"); + tr("They are everywhere!"); + tr("An earthling again."); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_ordering/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/lupdatecmd new file mode 100644 index 0000000..82b4b0d --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/lupdatecmd @@ -0,0 +1 @@ +lupdate -locations relative project.pro diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.pro b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.pro new file mode 100644 index 0000000..6149858 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.pro @@ -0,0 +1,3 @@ +SOURCES += foo.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.ts.before new file mode 100644 index 0000000..1762cc7 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.ts.before @@ -0,0 +1,74 @@ + + + + Bar + + + Another alien. + + + + + They are coming! + + + + + They are everywhere! + + + + + This one moved in from another file. + + + + + Foo + + + This is the first entry. + + + + + A second message. + + + + + Now again one which is just where it was. + + + + + Just as this one. + + + + + An earthling again. + + + + + This is from the bottom, too. + + + + + Third string from the bottom. + + + + + Fourth one! + + + + + This string did move from the bottom. + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.ts.result new file mode 100644 index 0000000..ca2670f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.ts.result @@ -0,0 +1,82 @@ + + + + + Foo + + + This is the first entry. + + + + + A second message. + + + + + And a second one on the same line. + + + + + This tr is new. + + + + + This one moved in from another file. + + + + + Now again one which is just where it was. + + + + + Just as this one. + + + + + Another alien. + + + + + They are coming! + + + + + They are everywhere! + + + + + An earthling again. + + + + + This is from the bottom, too. + + + + + Third string from the bottom. + + + + + Fourth one! + + + + + This string did move from the bottom. + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.pro b/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.pro new file mode 100644 index 0000000..fa56972 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.pro @@ -0,0 +1,3 @@ +FORMS += project.ui + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.ts.before new file mode 100644 index 0000000..fdc2a99 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.ts.before @@ -0,0 +1,14 @@ + + + + FindDialog + + Qt Assistant - Finn text + + + + Finn tekst + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.ts.result new file mode 100644 index 0000000..9f5c925 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.ts.result @@ -0,0 +1,17 @@ + + + + + FindDialog + + + Qt Assistant - Finn text + + + + + Finn tekst + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.ui b/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.ui new file mode 100644 index 0000000..97a3d7f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.ui @@ -0,0 +1,35 @@ + + +* Copyright (C) 2016 The Qt Company Ltd. +* SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + FindDialog + + + + 0 + 0 + 400 + 172 + + + + Qt Assistant - Finn text + + + Finn tekst + + + + comboFind + checkWords + checkCase + radioForward + radioBackward + findButton + closeButton + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/main.cpp b/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/main.cpp new file mode 100644 index 0000000..fbab452 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/main.cpp @@ -0,0 +1,51 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include +#include +#include + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + + QTranslator translator; + translator.load("whitespace"); + app.installTranslator(&translator); + + QObject::tr("\nnewline at the start"); + QObject::tr("newline at the end\n"); + QObject::tr("newline and space at the end\n "); + QObject::tr("space and newline at the end \n"); + QObject::tr("\tTab at the start and newline at the end\n"); + QObject::tr("\n\tnewline and tab at the start"); + QObject::tr(" \tspace and tab at the start"); + QObject::tr(" space_first"); + QObject::tr("space_last "); + QObject::tr("carriage return and line feed last\r\n"); + return app.exec(); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.pro b/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.pro new file mode 100644 index 0000000..759bea0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.pro @@ -0,0 +1,3 @@ +SOURCES = main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.ts.before new file mode 100644 index 0000000..ab91cac --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.ts.before @@ -0,0 +1,70 @@ + + + + QObject + + + +newline at the start + +NEWLINE AT THE START + + + + newline at the end + + NEWLINE AT THE END + + + + + newline and space at the end + + NEWLINE AND SPACE AT THE END + + + + + space and newline at the end + + SPACE AND NEWLINE AT THE END + + + + + Tab at the start and newline at the end + + TAB AT THE START AND NEWLINE AT THE END + + + + + +newline and tab at the start + +NEWLINE AND TAB AT THE START + + + + space and tab at the start + SPACE AND TAB AT THE START + + + + space_first + SPACE_FIRST + + + + space_last + SPACE_LAST + + + + carriage return and line feed last + + CARRIAGE RETURN AND LINE FEED LAST + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.ts.result new file mode 100644 index 0000000..486abce --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.ts.result @@ -0,0 +1,71 @@ + + + + + QObject + + + +newline at the start + +NEWLINE AT THE START + + + + newline at the end + + NEWLINE AT THE END + + + + + newline and space at the end + + NEWLINE AND SPACE AT THE END + + + + + space and newline at the end + + SPACE AND NEWLINE AT THE END + + + + + Tab at the start and newline at the end + + TAB AT THE START AND NEWLINE AT THE END + + + + + + newline and tab at the start + + NEWLINE AND TAB AT THE START + + + + space and tab at the start + SPACE AND TAB AT THE START + + + + space_first + SPACE_FIRST + + + + space_last + SPACE_LAST + + + + carriage return and line feed last + + CARRIAGE RETURN AND LINE FEED LAST + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp b/tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp new file mode 100644 index 0000000..34dbe59 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp @@ -0,0 +1,71 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#include +#include +#include + +class FindDialog : public QDialog +{ + Q_OBJECT +public: + FindDialog(QMainWindow *parent); + void reset(); +}; +FindDialog::FindDialog(QMainWindow *parent) + : QDialog(parent) +{ + QString trans = tr("Enter the text you want to find."); + trans = tr("Search reached end of the document"); + trans = tr("Search reached start of the document"); + trans = tr( "Text not found" ); +} + +void FindDialog::reset() +{ + tr("%n item(s)", "merge from singular to plural form", 4); + tr("%n item(s)", "merge from a finished singular form to an unfinished plural form", 4); + + + //~ meta matter + //% "Hello" + qtTrId("xx_hello"); + + //% "New world" + qtTrId("xx_world"); + + + //= new_id + tr("this is just some text"); + + + //: A message without source string + qtTrId("qtn_virtual"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.pro new file mode 100644 index 0000000..63f5d66 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.pro @@ -0,0 +1,3 @@ +SOURCES += finddialog.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before new file mode 100644 index 0000000..591c955 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before @@ -0,0 +1,71 @@ + + + + + + + Hello + Hallo + something really clever + + + + World + Welt + + + + A message without source string + + + + FindDialog + + + magic context comment + random translator comment + + + + + Enter the text you want to find. + + + + + Search reached end of the document + + + + + Search reached start of the document + + + + + Text not found + text not found (in chinese) + + + + %n item(s) + merge from singular to plural form + + + + + + + %n item(s) + merge from a finished singular form to an unfinished plural form + + + + + + + this is just some text + Unfertige Uebersetzung + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result new file mode 100644 index 0000000..427f9c7 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result @@ -0,0 +1,75 @@ + + + + + + + + Hello + Hallo + matter + + + + New world + World + Welt + + + + + A message without source string + + + + + FindDialog + + + magic context comment + random translator comment + + + + + Enter the text you want to find. + + + + + Search reached end of the document + + + + + Search reached start of the document + + + + + Text not found + text not found (in chinese) + + + + %n item(s) + merge from singular to plural form + + + + + + + %n item(s) + merge from a finished singular form to an unfinished plural form + + + + + + + this is just some text + Unfertige Uebersetzung + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/finddialog.cpp b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/finddialog.cpp new file mode 100644 index 0000000..e08f205 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/finddialog.cpp @@ -0,0 +1,141 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include "finddialog.h" + + + + +#include +#include +#include +#include +#include +#include +//#include +CaseSensitiveModel::CaseSensitiveModel(int rows, int columns, QObject *parent) + : QStandardItemModel(rows, columns, parent) +{} +QModelIndexList CaseSensitiveModel::match(const QModelIndex &start, int role, const QVariant &value, + int hits, Qt::MatchFlags flags) const +{ + if (flags == Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) + flags |= Qt::MatchCaseSensitive; + + return QStandardItemModel::match(start, role, value, hits, flags); +} + +FindDialog::FindDialog(QMainWindow *parent) + : QDialog(parent) +{ + auto contentsWidget = new QWidget(this); + //ui.setupUi(contentsWidget); + //ui.comboFind->setModel(new CaseSensitiveModel(0, 1, ui.comboFind)); + + QVBoxLayout *l = new QVBoxLayout(this); + l->setContentsMargins(QMargins()); + l->setSpacing(0); + l->addWidget(contentsWidget); + + auto lastBrowser = 0; + auto onceFound = false; + //findExpr.clear(); + + auto sb = new QStatusBar(this); + l->addWidget(sb); + + sb->showMessage(tr("Enter the text you want to find.")); + + //connect(ui.findButton, SIGNAL(clicked()), this, SLOT(findButtonClicked())); + //connect(ui.closeButton, SIGNAL(clicked()), this, SLOT(reject())); +} + +//FindDialog::~FindDialog() +//{ +//} + +//void FindDialog::findButtonClicked() +//{ +// doFind(ui.radioForward->isChecked()); +//} + +void FindDialog::doFind(bool forward) +{ + QTextBrowser *browser = NULL;// = static_cast(mainWindow()->browsers()->currentBrowser()); + //sb->clearMessage(); + + //if (ui.comboFind->currentText() != findExpr || lastBrowser != browser) + // onceFound = false; + //findExpr = ui.comboFind->currentText(); + + QTextDocument::FindFlags flags;// = 0; + + //if (ui.checkCase->isChecked()) + // flags |= QTextDocument::FindCaseSensitively; + + //if (ui.checkWords->isChecked()) + // flags |= QTextDocument::FindWholeWords; + + QTextCursor c = browser->textCursor(); + if (!c.hasSelection()) { + if (forward) + c.movePosition(QTextCursor::Start); + else + c.movePosition(QTextCursor::End); + + browser->setTextCursor(c); + } + + QTextDocument::FindFlags options; + if (forward == false) + flags |= QTextDocument::FindBackward; + bool onceFound = true; + QTextCursor found;// = browser->document()->find(findExpr, c, flags); + if (found.isNull()) { + if (onceFound) { + if (forward) + auto a = tr("Search reached end of the document");//statusMessage(tr("Search reached end of the document")); + else + auto aa = tr("Search reached start of the document");//statusMessage(tr("Search reached start of the document")); + } else { + auto aaa = tr( "Text not found" ); //statusMessage(tr( "Text not found" )); + } + } else { + browser->setTextCursor(found); + } + onceFound |= !found.isNull(); + auto lastBrowser = browser; +} + +void FindDialog::hasFindExpression() const +{ + // statusMessage(tr( "Should be obsolete" )); + + //% "This is some random text" + qtTrId("keep_id"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/finddialog.h b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/finddialog.h new file mode 100644 index 0000000..2254b45 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/finddialog.h @@ -0,0 +1,66 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class FindDialog : public QDialog +{ + Q_OBJECT +public: + FindDialog(QWidget *parent = 0); + FindDialog(QMainWindow *parent = 0); + void doFind(bool forward); + void hasFindExpression() const; + +signals: + +public slots: + void find(); + +private slots: + void emitFindNext(); + void verify(); + +private: + bool m_redText = false; +}; + + +class CaseSensitiveModel: public QStandardItemModel +{ + CaseSensitiveModel(int rows, int columns, QObject *parent); + QModelIndexList match(const QModelIndex &start, int role, const QVariant &value, int hits, Qt::MatchFlags flags) const; +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/lupdatecmd new file mode 100644 index 0000000..500a822 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/lupdatecmd @@ -0,0 +1 @@ +lupdate -noobsolete project.pro diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.pro new file mode 100644 index 0000000..63f5d66 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.pro @@ -0,0 +1,3 @@ +SOURCES += finddialog.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.before new file mode 100644 index 0000000..f9915e9 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.before @@ -0,0 +1,44 @@ + + + + + + + This is some random text + + + + + Should be obsolete, too + SHOULD BE OBSOLETE AS WELL + + + + FindDialog + + + Enter the text you want to find. + + + + + Search reached end of the document + + + + + Search reached start of the document + + + + + Text not found + + + + + Should be obsolete + SHOULD BE OBSOLETE + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.result new file mode 100644 index 0000000..516072d --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.result @@ -0,0 +1,35 @@ + + + + + + + + This is some random text + + + + + FindDialog + + + Enter the text you want to find. + + + + + Search reached end of the document + + + + + Search reached start of the document + + + + + Text not found + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/finddialog.cpp b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/finddialog.cpp new file mode 100644 index 0000000..379098c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/finddialog.cpp @@ -0,0 +1,145 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include "finddialog.h" +//#include "mainwindow.h" +//#include "tabbedbrowser.h" +//#include "helpwindow.h" + +#include +#include +#include +#include +#include +#include + +CaseSensitiveModel::CaseSensitiveModel(int rows, int columns, QObject *parent) + : QStandardItemModel(rows, columns, parent) +{} +QModelIndexList CaseSensitiveModel::match(const QModelIndex &start, int role, const QVariant &value, + int hits, Qt::MatchFlags flags) const +{ + if (flags == Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) + flags |= Qt::MatchCaseSensitive; + + return QStandardItemModel::match(start, role, value, hits, flags); +} + +FindDialog::FindDialog(QMainWindow *parent) + : QDialog(parent) +{ + auto contentsWidget = new QWidget(this); + //ui.setupUi(contentsWidget); + //ui.comboFind->setModel(new CaseSensitiveModel(0, 1, ui.comboFind)); + + QVBoxLayout *l = new QVBoxLayout(this); + l->setContentsMargins(QMargins()); + l->setSpacing(0); + l->addWidget(contentsWidget); + + auto lastBrowser = 0; + auto onceFound = false; + //findExpr.clear(); + + auto sb = new QStatusBar(this); + l->addWidget(sb); + + + // Move it to another line and change the text, + // then lupdate should add this one as a new one, and mark the old one as obsolete. + sb->showMessage(tr("Enter the text you want to find.")); + + //connect(ui.findButton, SIGNAL(clicked()), this, SLOT(findButtonClicked())); + //connect(ui.closeButton, SIGNAL(clicked()), this, SLOT(reject())); +} + +//FindDialog::~FindDialog() +//{ +//} + +//void FindDialog::findButtonClicked() +//{ + //doFind(ui.radioForward->isChecked()); +//} + +void FindDialog::doFind(bool forward) +{ + QTextBrowser *browser;// = static_cast(mainWindow()->browsers()->currentBrowser()); + //sb->clearMessage(); + + //if (ui.comboFind->currentText() != findExpr || lastBrowser != browser) + // onceFound = false; + //findExpr = ui.comboFind->currentText(); + + //QTextDocument::FindFlags flags = 0; + + //if (ui.checkCase->isChecked()) + // flags |= QTextDocument::FindCaseSensitively; + + //if (ui.checkWords->isChecked()) + // flags |= QTextDocument::FindWholeWords; + + QTextCursor c = browser->textCursor(); + if (!c.hasSelection()) { + if (forward) + c.movePosition(QTextCursor::Start); + else + c.movePosition(QTextCursor::End); + + browser->setTextCursor(c); + } + + QTextDocument::FindFlags options; + //if (forward == false) + // flags |= QTextDocument::FindBackward; + bool onceFound = true; + QTextCursor found;// = browser->document()->find(findExpr, c, flags); + if (found.isNull()) { + if (onceFound) { + if (forward) + auto a = tr("Search reached end of the document");//statusMessage(tr("Search reached end of the document")); + else + auto aa = tr("Search reached start of the document");//statusMessage(tr("Search reached start of the document")); + } else { + auto aaa = tr( "Text not found" );//statusMessage(tr( "Text not found" )); + } + } else { + browser->setTextCursor(found); + } + onceFound |= !found.isNull(); + auto lastBrowser = browser; +} + +void FindDialog::hasFindExpression() const +{ + //% "This is some random text" + qtTrId("keep_id"); + + //return !findExpr.isEmpty(); +} + diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/finddialog.h b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/finddialog.h new file mode 100644 index 0000000..2254b45 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/finddialog.h @@ -0,0 +1,66 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class FindDialog : public QDialog +{ + Q_OBJECT +public: + FindDialog(QWidget *parent = 0); + FindDialog(QMainWindow *parent = 0); + void doFind(bool forward); + void hasFindExpression() const; + +signals: + +public slots: + void find(); + +private slots: + void emitFindNext(); + void verify(); + +private: + bool m_redText = false; +}; + + +class CaseSensitiveModel: public QStandardItemModel +{ + CaseSensitiveModel(int rows, int columns, QObject *parent); + QModelIndexList match(const QModelIndex &start, int role, const QVariant &value, int hits, Qt::MatchFlags flags) const; +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.pro new file mode 100644 index 0000000..63f5d66 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.pro @@ -0,0 +1,3 @@ +SOURCES += finddialog.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.before new file mode 100644 index 0000000..99443bb --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.before @@ -0,0 +1,39 @@ + + + + + + + This is some random text + + + + + Should be obsolete, too + SHOULD BE OBSOLETE AS WELL + + + + FindDialog + + + Enter the text you are looking for. + Skriv inn teksten du soker etter + + + + Search reached end of the document + + + + + Search reached start of the document + + + + + Text not found + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.result new file mode 100644 index 0000000..b6d47c8 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.result @@ -0,0 +1,43 @@ + + + + + + + + This is some random text + + + + Should be obsolete, too + SHOULD BE OBSOLETE AS WELL + + + + FindDialog + + Enter the text you are looking for. + Skriv inn teksten du soker etter + + + + Enter the text you want to find. + + + + + Search reached end of the document + + + + + Search reached start of the document + + + + + Text not found + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.pro new file mode 100644 index 0000000..fa56972 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.pro @@ -0,0 +1,3 @@ +FORMS += project.ui + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.ts.before new file mode 100644 index 0000000..b9333c9 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.ts.before @@ -0,0 +1,22 @@ + + + + FindDialog + + + Qt Assistant - Find text + + Qt Assistant - Finn tekst + + + + 300px + 300px + + + + 400px + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.ts.result new file mode 100644 index 0000000..6839729 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.ts.result @@ -0,0 +1,26 @@ + + + + + FindDialog + + Qt Assistant - Find text + Qt Assistant - Finn tekst + + + + Qt Assistant - Find Text + + + + + 300px + 300px + + + + 401 pixels + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui/project.ui b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.ui new file mode 100644 index 0000000..94934dd --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.ui @@ -0,0 +1,39 @@ + + + +* Copyright (C) 2016 The Qt Company Ltd. +* SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + FindDialog + + + + 0 + 0 + 400 + 172 + + + + Qt Assistant - Find Text + + + 300px + + + 401 pixels + + + + comboFind + checkWords + checkCase + radioForward + radioBackward + findButton + closeButton + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.pro new file mode 100644 index 0000000..fa56972 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.pro @@ -0,0 +1,3 @@ +FORMS += project.ui + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ts.before new file mode 100644 index 0000000..d47409c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ts.before @@ -0,0 +1,16 @@ + + + + FindDialog + + + Test similarity + Test likhet (test1) + + + + Similarity should have kicked in here! + Test likhet (test2) + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ts.result new file mode 100644 index 0000000..79a6e8c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ts.result @@ -0,0 +1,22 @@ + + + + + FindDialog + + Test similarity + Test likhet (test1) + + + + This should not be considered to be more or less equal to the corresponding one in the TS file. + + + + + Here, similarity should kick in! + Similarity should have kicked in here! + Test likhet (test2) + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ui b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ui new file mode 100644 index 0000000..a5f8e9f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.ui @@ -0,0 +1,26 @@ + + + + + + FindDialog + + + + This should not be considered to be more or less equal to the corresponding one in the TS file. + + + Here, similarity should kick in! + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/finddialog.cpp b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/finddialog.cpp new file mode 100644 index 0000000..2bf7ab6 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/finddialog.cpp @@ -0,0 +1,42 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include + + +class AClass +{ + Q_OBJECT + + const char *c_noop_translate = QT_TRANSLATE_NOOP("context", "just a message"); + + + +//: This is one comment + const char *c_noop_translate2 = QT_TRANSLATE_NOOP("context", "just a message"); +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/main.cpp b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/main.cpp new file mode 100644 index 0000000..ce763b8 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/main.cpp @@ -0,0 +1,63 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include +class DClass +{ + +//: This is a comment, too. + const char *c_noop_translate = QT_TRANSLATE_NOOP("context", "just a message"); + void func(); +}; +void DClass::func() { +//: commented + qtTrId("lollipop"); + +//% "this is the source text" +//~ meta so-meta +//: even more commented + qtTrId("lollipop"); + +//% "this is contradicting source text" + qtTrId("lollipop"); + +//~ meta too-much-meta + qtTrId("lollipop"); + + + +//~ meta so-meta + auto a = QObject::tr("another message", "here with a lot of noise in the comment so it is long enough"); + +//~ meta too-much-meta + auto aa = QObject::tr("another message", "here with a lot of noise in the comment so it is long enough"); // old parser: not picked up + + + +//: commented +qtTrId("lollipop"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.pro b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.pro new file mode 100644 index 0000000..bbabdfb --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.pro @@ -0,0 +1,4 @@ +SOURCES += main.cpp +SOURCES += finddialog.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.ts.result new file mode 100644 index 0000000..03fa9b1 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.ts.result @@ -0,0 +1,41 @@ + + + + + + + + + + this is the source text + commented +---------- +even more commented + + so-meta + + + + QObject + + + another message + here with a lot of noise in the comment so it is long enough + + so-meta + + + + context + + + + + just a message + This is one comment +---------- +This is a comment, too. + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/namespaces/main.cpp b/tests/auto/linguist/lupdate/testdata/good/namespaces/main.cpp new file mode 100644 index 0000000..c114b33 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/namespaces/main.cpp @@ -0,0 +1,185 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +class Class : public QObject +{ + Q_OBJECT + + class SubClass + { + void f() + { + tr("nested class context"); + } + }; + + void f() + { + tr("just class context"); + } +}; + +namespace Outer { + +class Class : public QObject { Q_OBJECT }; + +namespace Middle1 { + +class Class : public QObject { Q_OBJECT }; + +namespace Inner1 { + +class Class : public QObject { Q_OBJECT }; + +} + +namespace I = Inner1; + +class Something; +class Different; + +} + +namespace Middle2 { + +class Class : public QObject { Q_OBJECT }; + +namespace Inner2 { + +class Class : public QObject { Q_OBJECT }; + +namespace IO = Middle2; + +} + +namespace I = Inner2; + +} + +namespace MI = Middle1::Inner1; + +namespace O = ::Outer; + +class Middle1::Different : QObject { +Q_OBJECT + void f() { + tr("different namespaced class def"); + } +}; + +} + +namespace O = Outer; +namespace OM = Outer::Middle1; +namespace OMI = Outer::Middle1::I; + +int main() +{ + Class::tr("outestmost class"); + Outer::Class::tr("outer class"); + Outer::MI::Class::tr("innermost one"); + OMI::Class::tr("innermost two"); + O::Middle1::I::Class::tr("innermost three"); + O::Middle2::I::Class::tr("innermost three b"); + OM::I::Class::tr("innermost four"); + return 0; +} + +class OM::Something : QObject { +Q_OBJECT + void f() { + tr("namespaced class def"); + } + void g() { + tr("namespaced class def 2"); + } +}; + +// QTBUG-8360 +namespace A { + +void foo() +{ + using namespace A; +} + +QString goo() +{ + return QObject::tr("Bla"); +} + +} + + +namespace AA { +namespace B { + +using namespace AA; + +namespace C { + +class Test : public QObject { + Q_OBJECT +}; + +} + +} + +using namespace B; +using namespace C; + +void goo() +{ + AA::Test::tr("howdy?"); +} + +} + + +namespace A1 { +namespace B { + +class Test : public QObject { + Q_OBJECT +}; + +using namespace A1; + +void foo() +{ + B::B::B::Test::tr("yeeee-ha!"); +} + +} +} + + +//#include "main.moc" diff --git a/tests/auto/linguist/lupdate/testdata/good/namespaces/project.pro b/tests/auto/linguist/lupdate/testdata/good/namespaces/project.pro new file mode 100644 index 0000000..c96859b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/namespaces/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/namespaces/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/namespaces/project.ts.result new file mode 100644 index 0000000..1cc671d --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/namespaces/project.ts.result @@ -0,0 +1,106 @@ + + + + + A1::B::Test + + + yeeee-ha! + + + + + AA::B::C::Test + + + howdy? + + + + + Class + + + nested class context + + + + + just class context + + + + + outestmost class + + + + + Outer::Class + + + outer class + + + + + Outer::Middle1::Different + + + different namespaced class def + + + + + Outer::Middle1::Inner1::Class + + + innermost one + + + + + innermost two + + + + + innermost three + + + + + innermost four + + + + + Outer::Middle1::Something + + + namespaced class def + + + + + namespaced class def 2 + + + + + Outer::Middle2::Inner2::Class + + + innermost three b + + + + + QObject + + + Bla + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/notargetlanguage/main.cpp b/tests/auto/linguist/lupdate/testdata/good/notargetlanguage/main.cpp new file mode 100644 index 0000000..00c4f35 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/notargetlanguage/main.cpp @@ -0,0 +1,42 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QTranslator translator; + app.installTranslator(&translator); + + QObject::tr("un mot","toto",1); + + return app.exec(); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/notargetlanguage/project.pro b/tests/auto/linguist/lupdate/testdata/good/notargetlanguage/project.pro new file mode 100644 index 0000000..759bea0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/notargetlanguage/project.pro @@ -0,0 +1,3 @@ +SOURCES = main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/notargetlanguage/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/notargetlanguage/project.ts.before new file mode 100644 index 0000000..7216e06 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/notargetlanguage/project.ts.before @@ -0,0 +1,15 @@ + + + + + QObject + + + un mot + toto + + ein Wort + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/notargetlanguage/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/notargetlanguage/project.ts.result new file mode 100644 index 0000000..7216e06 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/notargetlanguage/project.ts.result @@ -0,0 +1,15 @@ + + + + + QObject + + + un mot + toto + + ein Wort + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/main.cpp new file mode 100644 index 0000000..2e03947 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/main.cpp @@ -0,0 +1,46 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include +class Dialog2 : public QDialog +{ + Q_OBJECT + void func(); + +}; + +void Dialog2::func() +{ + tr("cat\xc3\xa9gorie"); + + tr("F\xc3\xbcr \xc3\x88lise"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.pro b/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.pro new file mode 100644 index 0000000..c96859b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.ts.result new file mode 100644 index 0000000..ae68a56 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.ts.result @@ -0,0 +1,17 @@ + + + + + Dialog2 + + + catégorie + + + + + Für Èlise + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecontexts/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecontexts/main.cpp new file mode 100644 index 0000000..2203732 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecontexts/main.cpp @@ -0,0 +1,266 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include +#include +#include +// +// Test namespace scoping +// + +class D : public QObject { + Q_OBJECT + public: + QString foo() { + return tr("test", "D"); + } + +}; + +namespace A { + + class C : public QObject { + Q_OBJECT + public: + void foo(); + }; + + void C::foo() { + tr("Bla", "A::C"); + } + + void goo() { + C::tr("Bla", "A::C"); // Is identical to the previous tr(), (same context, sourcetext and comment, + // so it should not add another entry to the list of messages) + } + + void goo2() { + C::tr("Bla 2", "A::C"); //Should be in the same namespace as the previous tr() + } + +} + + +namespace X { + + class D : public QObject { + Q_OBJECT + public: + + }; + + class E : public QObject { + Q_OBJECT + public: + void foo() { D::tr("foo", "D"); } // Note that this is X::D from 440 on + }; + + + namespace Y { + class E : public QObject { + Q_OBJECT + + }; + + class C : public QObject { + Q_OBJECT + void foo(); + }; + + void C::foo() { + tr("Bla", "X::Y::C"); + } + + void goo() { + D::tr("Bla", "X::D"); //This should be assigned to the X::D context + } + + void goo2() { + E::tr("Bla", "X::Y::E"); //This should be assigned to the X::Y::E context + Y::E::tr("Bla", "X::Y::E"); //This should be assigned to the X::Y::E context + } + + }; // namespace Y + + class F : public QObject { + Q_OBJECT + inline void inlinefunc() { + tr("inline function", "X::F"); + } + }; +} // namespace X + +namespace ico { + namespace foo { + class A : public QObject { + A(); + }; + + A::A() { + tr("myfoo", "ico::foo::A"); + QObject::tr("task 161186", "QObject"); + } + } +} + +namespace AA { +class C {}; +} + +/** + * the context of a message should not be affected by any inherited classes + * + * Keep this disabled for now, but at a long-term range it should work. + */ +namespace Gui { + class MainWindow : public QMainWindow, + public AA::C + { + Q_OBJECT +public: + MainWindow() + { + tr("More bla", "Gui::MainWindow"); + } + + }; +} //namespace Gui + + +namespace A1 { + class AB : public QObject { + Q_OBJECT + public: + + friend class OtherClass; + + QString inlineFuncAfterFriendDeclaration() const { + return tr("inlineFuncAfterFriendDeclaration", "A1::AB"); + } + }; + class B : AB { + Q_OBJECT + public: + QString foo() const { return tr("foo", "A1::B"); } + }; + + // This is valid C++ too.... + class V : virtual AB { + Q_OBJECT + public: + QString bar() const { return tr("bar", "A1::V"); } + }; + + class W : virtual public AB { + Q_OBJECT + public: + QString baz() const { return tr("baz", "A1::W"); } + }; +} + +class ForwardDecl; + + +class B1 : public QObject { +}; + +class C1 : public QObject { +}; + +namespace A1 { + +class B2 : public QObject { +}; + +} + +void func1() +{ + B1::tr("test TRANSLATOR comment (1)", "B1"); + +} + +using namespace A1; +/* + TRANSLATOR A1::B2 +*/ +void func2() +{ + B2::tr("test TRANSLATOR comment (2)", "A1::B2"); + C1::tr("test TRANSLATOR comment (3)", "C1"); +} + +void func3() +{ + B2::tr("test TRANSLATOR comment (4)", "A1::B2"); +} + +/* + TRANSLATOR B2 + This is a comment to the translator. +*/ +void func4() +{ + B2::tr("test TRANSLATOR comment (5)", "A1::B2"); +} + +namespace A1 { +namespace B3 { +class C2 : public QObject { +QString foo(); +}; +} +} + +namespace D1 = A1::B3; +using namespace D1; + +// TRANSLATOR A1::B3::C2 +QString C2::foo() +{ + return tr("test TRANSLATOR comment (6)", "A1::B3::C2"); // 4.4 screws up +} +namespace Fooish { + struct toto { + Q_DECLARE_TR_FUNCTIONS(Bears::And::Spiders) + QString bar(); }; +} + +QString Fooish::toto::bar() +{ + return tr("whatever the context", "Bears::And::Spiders"); +} + + +int main(int /*argc*/, char ** /*argv*/) { + return 0; +} + +//#include "main.moc" diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.pro new file mode 100644 index 0000000..759bea0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.pro @@ -0,0 +1,3 @@ +SOURCES = main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.ts.result new file mode 100644 index 0000000..0a46487 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.ts.result @@ -0,0 +1,201 @@ + + + + + A1::AB + + + inlineFuncAfterFriendDeclaration + A1::AB + + + + + A1::B + + + foo + A1::B + + + + + A1::B2 + + + test TRANSLATOR comment (2) + A1::B2 + + + + + test TRANSLATOR comment (4) + A1::B2 + + + + + test TRANSLATOR comment (5) + A1::B2 + + + + + A1::B3::C2 + + + test TRANSLATOR comment (6) + A1::B3::C2 + + + + + A1::V + + + bar + A1::V + + + + + A1::W + + + baz + A1::W + + + + + A::C + + + + Bla + A::C + + + + + Bla 2 + A::C + + + + + B1 + + + test TRANSLATOR comment (1) + B1 + + + + + B2 + + + + This is a comment to the translator. + + + + + Bears::And::Spiders + + + whatever the context + Bears::And::Spiders + + + + + C1 + + + test TRANSLATOR comment (3) + C1 + + + + + D + + + test + D + + + + + Gui::MainWindow + + + More bla + Gui::MainWindow + + + + + QObject + + + task 161186 + QObject + + + + + X::D + + + foo + D + + + + + Bla + X::D + + + + + X::F + + + inline function + X::F + + + + + X::Y::C + + + Bla + X::Y::C + + + + + X::Y::E + + + + Bla + X::Y::E + + + + + ico::foo::A + + + myfoo + ico::foo::A + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecontexts_clang_parser/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecontexts_clang_parser/main.cpp new file mode 100644 index 0000000..2203732 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecontexts_clang_parser/main.cpp @@ -0,0 +1,266 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include +#include +#include +// +// Test namespace scoping +// + +class D : public QObject { + Q_OBJECT + public: + QString foo() { + return tr("test", "D"); + } + +}; + +namespace A { + + class C : public QObject { + Q_OBJECT + public: + void foo(); + }; + + void C::foo() { + tr("Bla", "A::C"); + } + + void goo() { + C::tr("Bla", "A::C"); // Is identical to the previous tr(), (same context, sourcetext and comment, + // so it should not add another entry to the list of messages) + } + + void goo2() { + C::tr("Bla 2", "A::C"); //Should be in the same namespace as the previous tr() + } + +} + + +namespace X { + + class D : public QObject { + Q_OBJECT + public: + + }; + + class E : public QObject { + Q_OBJECT + public: + void foo() { D::tr("foo", "D"); } // Note that this is X::D from 440 on + }; + + + namespace Y { + class E : public QObject { + Q_OBJECT + + }; + + class C : public QObject { + Q_OBJECT + void foo(); + }; + + void C::foo() { + tr("Bla", "X::Y::C"); + } + + void goo() { + D::tr("Bla", "X::D"); //This should be assigned to the X::D context + } + + void goo2() { + E::tr("Bla", "X::Y::E"); //This should be assigned to the X::Y::E context + Y::E::tr("Bla", "X::Y::E"); //This should be assigned to the X::Y::E context + } + + }; // namespace Y + + class F : public QObject { + Q_OBJECT + inline void inlinefunc() { + tr("inline function", "X::F"); + } + }; +} // namespace X + +namespace ico { + namespace foo { + class A : public QObject { + A(); + }; + + A::A() { + tr("myfoo", "ico::foo::A"); + QObject::tr("task 161186", "QObject"); + } + } +} + +namespace AA { +class C {}; +} + +/** + * the context of a message should not be affected by any inherited classes + * + * Keep this disabled for now, but at a long-term range it should work. + */ +namespace Gui { + class MainWindow : public QMainWindow, + public AA::C + { + Q_OBJECT +public: + MainWindow() + { + tr("More bla", "Gui::MainWindow"); + } + + }; +} //namespace Gui + + +namespace A1 { + class AB : public QObject { + Q_OBJECT + public: + + friend class OtherClass; + + QString inlineFuncAfterFriendDeclaration() const { + return tr("inlineFuncAfterFriendDeclaration", "A1::AB"); + } + }; + class B : AB { + Q_OBJECT + public: + QString foo() const { return tr("foo", "A1::B"); } + }; + + // This is valid C++ too.... + class V : virtual AB { + Q_OBJECT + public: + QString bar() const { return tr("bar", "A1::V"); } + }; + + class W : virtual public AB { + Q_OBJECT + public: + QString baz() const { return tr("baz", "A1::W"); } + }; +} + +class ForwardDecl; + + +class B1 : public QObject { +}; + +class C1 : public QObject { +}; + +namespace A1 { + +class B2 : public QObject { +}; + +} + +void func1() +{ + B1::tr("test TRANSLATOR comment (1)", "B1"); + +} + +using namespace A1; +/* + TRANSLATOR A1::B2 +*/ +void func2() +{ + B2::tr("test TRANSLATOR comment (2)", "A1::B2"); + C1::tr("test TRANSLATOR comment (3)", "C1"); +} + +void func3() +{ + B2::tr("test TRANSLATOR comment (4)", "A1::B2"); +} + +/* + TRANSLATOR B2 + This is a comment to the translator. +*/ +void func4() +{ + B2::tr("test TRANSLATOR comment (5)", "A1::B2"); +} + +namespace A1 { +namespace B3 { +class C2 : public QObject { +QString foo(); +}; +} +} + +namespace D1 = A1::B3; +using namespace D1; + +// TRANSLATOR A1::B3::C2 +QString C2::foo() +{ + return tr("test TRANSLATOR comment (6)", "A1::B3::C2"); // 4.4 screws up +} +namespace Fooish { + struct toto { + Q_DECLARE_TR_FUNCTIONS(Bears::And::Spiders) + QString bar(); }; +} + +QString Fooish::toto::bar() +{ + return tr("whatever the context", "Bears::And::Spiders"); +} + + +int main(int /*argc*/, char ** /*argv*/) { + return 0; +} + +//#include "main.moc" diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecontexts_clang_parser/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecontexts_clang_parser/project.pro new file mode 100644 index 0000000..759bea0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecontexts_clang_parser/project.pro @@ -0,0 +1,3 @@ +SOURCES = main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecontexts_clang_parser/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecontexts_clang_parser/project.ts.result new file mode 100644 index 0000000..6ff4df1 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecontexts_clang_parser/project.ts.result @@ -0,0 +1,177 @@ + + + + + A1::AB + + + inlineFuncAfterFriendDeclaration + A1::AB + + + + + A1::B + + + foo + A1::B + + + + + A1::V + + + bar + A1::V + + + + + A1::W + + + baz + A1::W + + + + + A::C + + + + Bla + A::C + + + + + Bla 2 + A::C + + + + + Bears::And::Spiders + + + whatever the context + Bears::And::Spiders + + + + + D + + + test + D + + + + + Gui::MainWindow + + + More bla + Gui::MainWindow + + + + + QObject + + + myfoo + ico::foo::A + + + + + task 161186 + QObject + + + + + test TRANSLATOR comment (1) + B1 + + + + + test TRANSLATOR comment (2) + A1::B2 + + + + + test TRANSLATOR comment (3) + C1 + + + + + test TRANSLATOR comment (4) + A1::B2 + + + + + test TRANSLATOR comment (5) + A1::B2 + + + + + test TRANSLATOR comment (6) + A1::B3::C2 + + + + + X::D + + + foo + D + + + + + Bla + X::D + + + + + X::F + + + inline function + X::F + + + + + X::Y::C + + + Bla + X::Y::C + + + + + X::Y::E + + + + Bla + X::Y::E + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/excluded.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp/excluded.cpp new file mode 100644 index 0000000..2716b75 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/excluded.cpp @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +int main(int argc, char **argv) +{ + QString fake = QApplication::tr("fake", "This message will not be collected"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/parsecpp/expectedoutput.txt new file mode 100644 index 0000000..03ad73a --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/expectedoutput.txt @@ -0,0 +1,3 @@ +.*/lupdate/testdata/good/parsecpp/main.cpp:620: tr\(\) cannot be called without context +.*/lupdate/testdata/good/parsecpp/main.cpp:622: tr\(\) cannot be called without context +lupdate warning: Message with id 'yet_another_id' has no source. diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/finddialog.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp/finddialog.cpp new file mode 100644 index 0000000..26257e3 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/finddialog.cpp @@ -0,0 +1,171 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +//#include "finddialog.h" nothing is picked up from there +//#include "mainwindow.h" +//#include "tabbedbrowser.h" +//#include "helpwindow.h" +#include +#include +#include +#include +#include +#include +#include +#include +class FindDialog +{ Q_OBJECT + FindDialog(QMainWindow *parent); + void findButtonClicked(); + void doFind(bool forward); + void statusMessage(const QString &message); + //QMainWindow *mainWindow() const; + void reset(); + + +}; + + +FindDialog::FindDialog(QMainWindow *parent) +{ + //auto contentsWidget = new QWidget(this); + //ui.setupUi(contentsWidget); + //ui.comboFind->setModel(new CaseSensitiveModel(0, 1, ui.comboFind)); + + //QVBoxLayout *l = new QVBoxLayout(this); + //l->setContentsMargins(QMargins()); + //l->setSpacing(0); + //l->addWidget(contentsWidget); + + auto lastBrowser = 0; + auto onceFound = false; + //findExpr.clear(); + + auto sb = new QStatusBar; + //l->addWidget(sb); + + sb->showMessage(tr("Enter the text you are looking for.")); + + //connect(ui.findButton, SIGNAL(clicked()), this, SLOT(findButtonClicked())); + //connect(ui.closeButton, SIGNAL(clicked()), this, SLOT(reject())); +} + +//FindDialog::~FindDialog() +//{ +//} + +//void FindDialog::findButtonClicked() +//{ +// doFind(ui.radioForward->isChecked()); +//} + +void FindDialog::doFind(bool forward) +{ + //QTextBrowser *browser = static_cast(mainWindow()->browsers()->currentBrowser()); + //sb->clearMessage(); + + //if (ui.comboFind->currentText() != findExpr || lastBrowser != browser) + // onceFound = false; + //findExpr = ui.comboFind->currentText(); + bool onceFound = false; + //QTextDocument::FindFlags flags = 0; + /* + if (ui.checkCase->isChecked()) + flags |= QTextDocument::FindCaseSensitively; + + if (ui.checkWords->isChecked()) + flags |= QTextDocument::FindWholeWords; + + QTextCursor c = browser->textCursor(); + if (!c.hasSelection()) { + if (forward) + c.movePosition(QTextCursor::Start); + else + c.movePosition(QTextCursor::End); + + browser->setTextCursor(c); + } + + QTextDocument::FindFlags options; + if (forward == false) + flags |= QTextDocument::FindBackward; + */ + QTextCursor found;//browser->document()->find(findExpr, c, flags); + if (found.isNull()) { + if (onceFound) { + if (forward) + statusMessage(tr("Search reached end of the document")); + else + statusMessage(tr("Search reached start of the document")); + } else { + statusMessage(tr( "Text not found" )); + } + } else { + //browser->setTextCursor(found); + } + onceFound |= !found.isNull(); + //lastBrowser = browser; +} + +//bool FindDialog::hasFindExpression() const +//{ +// return !findExpr.isEmpty(); +//} + +void FindDialog::statusMessage(const QString &message) +{ /* + if (isVisible()) + sb->showMessage(message); + else + static_cast(parent())->statusBar()->showMessage(message, 2000); */ +} + +//QMainWindow *FindDialog::mainWindow() const +//{ +// return static_cast(parentWidget()); +//} + +void FindDialog::reset() +{ + //ui.comboFind->setFocus(); + //ui.comboFind->lineEdit()->setSelection( + // 0, ui.comboFind->lineEdit()->text().length()); + + QString s = QCoreApplication::translate("QCoreApplication", "with comment", "comment"); + QString s1 = QCoreApplication::translate("QCoreApplication", "empty comment", ""); + QString s2 = QCoreApplication::translate("QCoreApplication", "null comment", 0); + QString s3 = tr("null comment"); + + QString s4 = QCoreApplication::translate("QCoreApplication", "encoding, using QCoreApplication", 0); + QString s5 = QCoreApplication::translate("QCoreApplication", "encoding, using QApplication", 0); + + QString s6 = QCoreApplication::translate("KÃ¥ntekst", "encoding, using QApplication", 0); + QString s7 = QCoreApplication::translate("QTranslator", "Key", "disambiguation"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/included.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp/included.cpp new file mode 100644 index 0000000..7473ac0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/included.cpp @@ -0,0 +1,31 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include +class MyClass2{ + QString toto = QObject::tr("message from #included .cpp file"); +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp new file mode 100644 index 0000000..a1d4ed4 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp @@ -0,0 +1,711 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +int main(int argc, char **argv) +{ + //Size size = QSize(1,1); +} +#include +QString qt_detectRTLLanguage() +{ + return QCoreApplication::tr("QT_LAYOUT_DIRECTION", + "Translate this string to the string 'LTR' in left-to-right" + " languages or to 'RTL' in right-to-left languages (such as Hebrew" + " and Arabic) to get proper widget layout.");// == QLatin1String("RTL"); +} + + +class Dialog2 +{ + Q_OBJECT + void func(); + void func3(); + int getCount() const { return 2; } + +}; + +void Dialog2::func() +{ + int n = getCount(); + tr("%n files", "plural form", n); + tr("%n cars", 0, n); + tr("&Find %n cars", 0, n); + tr("Search in %n items?", 0, n); + tr("%1. Search in %n items?", 0, n); + tr("Age: %1"); + tr("There are %n house(s)", "Plurals and function call", getCount()); + + + + + QCoreApplication::translate("Plurals, QCoreApplication", "%n house(s)", "Plurals and identifier", n); + QCoreApplication::translate("Plurals, QCoreApplication", "%n car(s)", "Plurals and literal number", 1); + QCoreApplication::translate("Plurals, QCoreApplication", "%n horse(s)", "Plurals and function call", getCount()); + + + + + + + + + QTranslator trans; + trans.translate("QTranslator", "Simple"); + trans.translate("QTranslator", "Simple", 0); + trans.translate("QTranslator", "Simple with comment", "with comment"); + trans.translate("QTranslator", "Plural without comment", 0, 1); + trans.translate("QTranslator", "Plural with comment", "comment 1", n); + trans.translate("QTranslator", "Plural with comment", "comment 2", getCount()); + + + + + + + + + + + + +} + + + + +/* This is actually a test of how many alternative ways a struct/class can be found in a source file. + * Due to the simple parser in lupdate, it will actually not treat the remaining lines in the define + * as a macro, which is a case the 'Tok_Class' parser block might not consider, and it might loop infinite + * if it just tries to fetch the next token until it gets a '{' or a ';'. Another pitfall is that the + * context of tr("func3") might not be parsed, it won't resume normal evaluation until the '{' after the function + * signature. + * + */ +typedef struct S_ +{ +int a; +} S, *SPtr; +class ForwardDecl; + + +#define FT_DEFINE_SERVICE( name ) \ + typedef struct FT_Service_ ## name ## Rec_ \ + FT_Service_ ## name ## Rec ; \ + typedef struct FT_Service_ ## name ## Rec_ \ + const * FT_Service_ ## name ; \ + struct FT_Service_ ## name ## Rec_ + + + + +void Dialog2::func3() +{ + tr("func3"); +} + + + + +namespace Gui { class BaseClass {}; } + + +class TestClass : QObject { + Q_OBJECT + + + inline QString inlineFunc1() { + return tr("inline function", "TestClass"); + } + + QString inlineFunc2() { + return tr("inline function 2", "TestClass"); + } + + static inline QString staticInlineFunc() { + return tr("static inline function", "TestClass"); + } + + class NoQObject : public Gui::BaseClass { + public: + inline QString hello() { return QString("hello"); } + + }; + +}; + + +class Testing : QObject { + Q_OBJECT + + inline QString f1() { + //: this is an extra comment for the translator + return tr("extra-commented string"); + return tr("not extra-commented string"); + /*: another extra-comment */ + return tr("another extra-commented string"); + /*: blah! */ + return QCoreApplication::translate("scope", "works in translate, too", "blabb", 0); + } + +}; + +//: extra comment for NOOP +//: which spans multiple lines +const char *c_1 = QT_TRANSLATE_NOOP("scope", "string") /*: complain & ignore */; // 4.4 says the line of this is at the next statement +//: extra comment for NOOP3 +const char *c_2[2] = QT_TRANSLATE_NOOP3_UTF8("scope", "string", "comment"); // 4.4 doesn't see this + +const char *c_3 = QT_TRANSLATE_NOOP("scope", "string " // this is an interleaved comment + "continuation on next line"); + + +class TestingTake17 : QObject { + Q_OBJECT + + void function(void) + { + //: random comment + //= this_is_an_id + //~ loc-layout_id fooish_bar + //~ po-ignore_me totally foo-barred nonsense + tr("something cool"); + + tr("less cool"); + + //= another_id + tr("even more cool"); + } +}; + + + + +//: again an extra comment, this time for id-based NOOP +//% "This is supposed\tto be quoted \" newline\n" +//% "backslashed \\ stuff." +const char *c_4 = QT_TRID_NOOP("this_a_id"); + +//~ some thing +//% "This needs to be here. Really." +QString test = qtTrId("this_another_id", 2); + + + +class YetAnotherTest : QObject { + Q_OBJECT + + void function(void) + { + // + //: + //= + //~ + //# + //============= + //~~~~~~~~~~~~~ + //::::::::::::: + tr("nothing"); + } +}; + + + +//: This is a message without a source string +QString test1 = qtTrId("yet_another_id"); + + + +// QTBUG-9276: context in static initializers +class Bogus : QObject { + Q_OBJECT + static const char * const s_stringss[]; + static const char * const s_strings[]; +}; + +const char * const Bogus::s_strings[] = { + QT_TR_NOOP("this should be in Bogus") +}; + +const char * const Bogus::s_stringss[] = { + QT_TR_NOOP("this should be in Bogus") +}; + +void bogosity() +{ + // no spaces here. test collateral damage from ignoring equal sign + QString toto=QObject::tr("just QObject"); +} + + + +namespace Internal { + +class Message : public QObject +{ + Q_OBJECT +public: + Message(QObject *parent = 0); +}; + +} // The temporary closing of the namespace triggers the problem + +namespace Internal { + +static inline QString message1() +{ + return Message::tr("message1"); // Had no namespace +} + +static inline QString message2() +{ + return Message::tr("message2"); // Already had namespace +} + +} + + + +// QTBUG-11426: operator overloads +class LotsaFun : public QObject +{ + Q_OBJECT +public: + LotsaFun *operator<<(int i); +}; + +LotsaFun *LotsaFun::operator<<(int i) +{ + tr("this is inside operator<<"); + return this; +} + + + +// QTBUG-12683: define in re-opened namespace +namespace NameSchpace { + +class YetMoreFun : public QObject +{ + Q_OBJECT +public: + void funStuff(); +}; + +} + +namespace NameSchpace { + +#define somevar 1 + +void YetMoreFun::funStuff() +{ + tr("funStuff!"); +} + +} + + + +// QTBUG-29998: tr() macro inside square brackets +void blubb() +{ + QMap d; + d[LotsaFun::tr("bracketed")] = "plain"; +} + + + +// QTBUG-9276 part 2: QT_TR_NOOP in static member initializers +class TestClass2 +{ + Q_DECLARE_TR_FUNCTIONS(TestClass); + +public: + static const char TEST_STRING[]; +}; + +const char TestClass2::TEST_STRING[] = QT_TR_NOOP("Test value"); + + + +// derivation from namespaced class +class Class42 : public NameSchpace::YetMoreFun, Gui::BaseClass +{ + Q_OBJECT + void foo(); + Class42() : + NameSchpace::YetMoreFun(), + Gui::BaseClass() + { + tr("does that make sense?"); + } + void hello(int something, QString str); +}; + + +void Class42::foo() +{ + tr("and does that?"); +} + + + +// QTBUG-11866: magic comment parsing is too greedy +void Class42::hello(int something /*= 17 */, QString str = Class42::tr("eyo")) +{ +} + + + +// QTBUG-27974: strings from included sources are not collected +#include "included.cpp" + +// test TR_EXCLUDE +#include "notincluded.cpp" + + + +// failure to update index on insertion messes up subsequent de-duplication +void dupeFail() +{ + // First just the Id. + qtTrId("dupe_id"); + + // Then with source + //% "This is the source" + qtTrId("dupe_id"); + + // Finally, same source, but without ID. + QCoreApplication::translate("", "This is the source"); +} + + + +// QTBUG-42735: lupdate confused by `final` specifier (C++11) +namespace Abc { + +class NamespacedFinalClass; + +} + +class FinalClass final : public QObject +{ + Q_OBJECT + + class SubClass final + { + void f() + { + tr("nested class context with final"); + } + }; + + void f() + { + tr("class context with final"); + } +}; + +class Abc::NamespacedFinalClass final : public QObject +{ + Q_OBJECT + + void f() + { + tr("namespaced class with final"); + } +}; + + + +// QTBUG-48776: lupdate fails to recognize translator comment in ternary +// operator construct +void ternary() +{ + const auto aaa = + true ? + //: comment, aaa, true + QObject::tr("ternary, true, aaa") : + QObject::tr("ternary, failure, aaa"); + + const auto bbb = + true ? + //: comment, bbb, true + QObject::tr("ternary, bbb, true") : + //: comment, bbb, false + QObject::tr("ternary, bbb, false"); +} + +class TernaryClass : public QObject +{ + Q_OBJECT + + void f() + { + const auto ccc = + true ? + //: comment, ccc, true + tr("ternary, ccc, true") : + tr("ternary, ccc, false"); + + const auto ddd = + true ? + //: comment, ddd, true + tr("ternary, ddd, true") : + //: comment, ddd, false + tr("ternary, ddd, false"); + } +}; + + + +// QTBUG-47467: lupdate confused by nullptr in case of plural forms +void nullptrInPlural() +{ + QObject::tr("%n nullptr(s)", nullptr, 3); + QCoreApplication::translate("Plurals, nullptr", "%n car(s)", nullptr, 1); +} + +class nullptrClass : public QObject +{ + Q_OBJECT + + void f() + { + tr("%n car(s)", nullptr, 2); + } +}; + + + +// QTBUG-34265: lupdate does not detect NULL and Q_NULLPTR as 0 when being passed as context +void nullMacroInPlural() +{ + QObject::tr("%n NULL(s)", NULL, 3); + QObject::tr("%n Q_NULLPTR(s)", Q_NULLPTR, 3); +} + + + +// QTBUG-34128: lupdate ignores tr() calls in constructor if a member is +// initialized with C++11 initializer list +class ListInitializationClass : public NameSchpace::YetMoreFun, Gui::BaseClass +{ + Q_OBJECT + + ListInitializationClass() : + NameSchpace::YetMoreFun(), + Gui::BaseClass{ }, + a{ 0 }, + b(1), + c(tr("Hello World")) + { + tr("ListInitializationClass in-class constructor"); + } + + ListInitializationClass(int a); + + ListInitializationClass(int a, int b, int c); + + int a; + int b; + QString c; +}; + +ListInitializationClass::ListInitializationClass(int a)// : +// b{ { 2, 3 }}[a] +{ + tr("ListInitializationClass out-of-class single member initializer"); +} + +ListInitializationClass::ListInitializationClass(int a, int b, int c) : + NameSchpace::YetMoreFun{ }, + Gui::BaseClass(), + a{ 2 + (a/3) }, + b(b), + c{ tr("%n item(s)", Q_NULLPTR, c) } +{ + tr("ListInitializationClass out-of-class multi member initializer"); +} + + + +// QTBUG-42166: lupdate is confused by C++11 lambdas in constructor initializer lists +class LambdaMemberClass : public Gui::BaseClass +{ + Q_OBJECT + + LambdaMemberClass() : + Gui::BaseClass(), + a{ [](){ /*std::cout << */QObject::tr("Hello"); } }, + b([](){ /*std::cout << "World\n";*/ }) + { + tr("LambdaMemberClass in-class constructor"); + } + + LambdaMemberClass(void *); + + std::function a; + std::function b; +}; + +LambdaMemberClass::LambdaMemberClass(void *) : + Gui::BaseClass{ }, + a([](){ /*std::cout <<*/ QObject::tr("Hallo "); }), + b{ [](){ /*std::cout << "Welt\n";*/ } } +{ + tr("LambdaMemberClass out-of-class constructor"); +} + + + +// Template parameters in base class initialization +class TemplateClass : QVarLengthArray, std::vector +{ + Q_DECLARE_TR_FUNCTIONS(TemplateClass) + QString member; + +public: + TemplateClass() : + QVarLengthArray(), + std::vector(3), + member(tr("TemplateClass() in-class member initialization")) + { + tr("TemplateClass() in-class body"); + } + + TemplateClass(void *); + TemplateClass(int); +}; + +// supported: combination of parens in base class template parameter with direct initialization (parens) +TemplateClass::TemplateClass(void *) : + QVarLengthArray(), + std::vector{ 1, 2 }, + member{ tr("TemplateClass(void *) out-of-class member initialization") } +{ + tr("TemplateClass(void *) out-of-class body"); +} + +// not supported: combination of parens in base class template parameter with list initialization (braces) +TemplateClass::TemplateClass(int) : + QVarLengthArray{ 3, 4, 5 }, + member(tr("[unsupported] TemplateClass(int) out-of-class member initialization")) +{ + tr("[unsupported] TemplateClass(int) out-of-class body"); +} + + + +// Related to QTBUG-53644, adapted from qglobal.h. +// Namespace Private must be parsed correctly for TranslatedAfterPrivate to work. +namespace Private { + template struct Class1 { T t; }; + template struct Class1 : Class1 {}; + template struct Class2 { enum { Value = sizeof(T) }; }; +} // namespace Private +class TranslatedAfterPrivate +{ + Q_OBJECT + TranslatedAfterPrivate() + { + tr("Must be in context TranslatedAfterPrivate"); + } +}; + +#include +class AClass { + QString aa = QObject::tr("message after system include without space"); +}; +#include"qobject.h" +class AAClass { + QString aa = QObject::tr("message after local include without space"); +}; + + +// QTBUG-35164: handling of \uNNNN escapes +QString unicodeEscape() +{ + return QCoreApplication::tr("Context", "soft\u00ADhyphen"); +} + + + +// QTBUG-63364: C++17 nested namespaces +namespace Outer::Inner { + +class Class +{ + Q_OBJECT + void function() + { + tr("MoreFunStuff!"); + } +}; + +} + + + +// test of translation for _N_ family +static const char * const test_string_n1[] = { + QT_TRANSLATE_N_NOOP("scope", "string %n") +}; + +static const char * const test_string_n2[] = + QT_TRANSLATE_N_NOOP3("scope", "string %n", "comment") +; +class testing { Q_OBJECT + void test(); }; +void testing::test() { static const char * const test_string_n3[] = { + QT_TR_N_NOOP("%n test") + }; +} + + + +// QTBUG-91521: context in static initializers with parentheses +class Hogus : QObject { + Q_OBJECT + static const QString myString; +}; + +const QString Hogus::myString(QT_TR_NOOP("this should be in Hogus")); + + + +// QTBUG-99415: multiple specifiers after method parameter list +class QTBUG99415 : QObject { + Q_OBJECT + const QString text1() const noexcept { return tr("text1"); } + const QString text2() const noexcept; +}; + +const QString QTBUG99415::text2() const noexcept { return tr("text2"); } diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/notincluded.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp/notincluded.cpp new file mode 100644 index 0000000..6a64054 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/notincluded.cpp @@ -0,0 +1,31 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include +class MyClass{ + QString toto = QObject::tr("message from #included .cpp file"); +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.pro new file mode 100644 index 0000000..0fd8a96 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.pro @@ -0,0 +1,7 @@ +SOURCES += main.cpp +SOURCES += finddialog.cpp +SOURCES += excluded.cpp + +TR_EXCLUDE = $$PWD/excluded.* $$PWD/notincluded.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result new file mode 100644 index 0000000..f21258d --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result @@ -0,0 +1,678 @@ + + + + + + + + This is supposed to be quoted " newline +backslashed \ stuff. + again an extra comment, this time for id-based NOOP + + + + + This needs to be here. Really. + + + + thing + + + + + This is a message without a source string + + + + + + + This is the source + + + + + Abc::NamespacedFinalClass + + + namespaced class with final + + + + + Bogus + + + + this should be in Bogus + + + + + Class42 + + + does that make sense? + + + + + and does that? + + + + + eyo + + + + + Dialog2 + + + %n files + plural form + + + + + + + %n cars + + + + + + + &Find %n cars + + + + + + + Search in %n items? + + + + + + + %1. Search in %n items? + + + + + + + Age: %1 + + + + + There are %n house(s) + Plurals and function call + + + + + + + func3 + + + + + FinalClass + + + nested class context with final + + + + + class context with final + + + + + FindDialog + + + Enter the text you are looking for. + + + + + Search reached end of the document + + + + + Search reached start of the document + + + + + Text not found + + + + + null comment + + + + + Hogus + + + this should be in Hogus + + + + + Internal::Message + + + message1 + + + + + message2 + + + + + KÃ¥ntekst + + + encoding, using QApplication + + + + + LambdaMemberClass + + + LambdaMemberClass in-class constructor + + + + + LambdaMemberClass out-of-class constructor + + + + + ListInitializationClass + + + Hello World + + + + + ListInitializationClass in-class constructor + + + + + ListInitializationClass out-of-class single member initializer + + + + + %n item(s) + + + + + + + ListInitializationClass out-of-class multi member initializer + + + + + LotsaFun + + + this is inside operator<< + + + + + bracketed + + + + + NameSchpace::YetMoreFun + + + funStuff! + + + + + Outer::Inner::Class + + + MoreFunStuff! + + + + + Plurals, QCoreApplication + + + %n house(s) + Plurals and identifier + + + + + + + %n car(s) + Plurals and literal number + + + + + + + %n horse(s) + Plurals and function call + + + + + + + Plurals, nullptr + + + %n car(s) + + + + + + + QCoreApplication + + + with comment + comment + + + + + empty comment + + + + + null comment + + + + + encoding, using QCoreApplication + + + + + encoding, using QApplication + + + + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + + + + + Context + soft­hyphen + + + + + QObject + + + just QObject + + + + + ternary, true, aaa + comment, aaa, true + + + + + ternary, failure, aaa + + + + + ternary, bbb, true + comment, bbb, true + + + + + ternary, bbb, false + comment, bbb, false + + + + + %n nullptr(s) + + + + + + + %n NULL(s) + + + + + + + %n Q_NULLPTR(s) + + + + + + + Hello + + + + + Hallo + + + + + message after system include without space + + + + + message after local include without space + + + + + message from #included .cpp file + + + + + QTBUG99415 + + + text1 + + + + + text2 + + + + + QTranslator + + + Key + disambiguation + + + + + + Simple + + + + + Simple with comment + with comment + + + + + Plural without comment + + + + + + + Plural with comment + comment 1 + + + + + + + Plural with comment + comment 2 + + + + + + + TemplateClass + + + TemplateClass() in-class member initialization + + + + + TemplateClass() in-class body + + + + + TemplateClass(void *) out-of-class member initialization + + + + + TemplateClass(void *) out-of-class body + + + + + TernaryClass + + + ternary, ccc, true + comment, ccc, true + + + + + ternary, ccc, false + + + + + ternary, ddd, true + comment, ddd, true + + + + + ternary, ddd, false + comment, ddd, false + + + + + TestClass + + + inline function + TestClass + + + + + inline function 2 + TestClass + + + + + static inline function + TestClass + + + + + Test value + + + + + Testing + + + extra-commented string + this is an extra comment for the translator + + + + + not extra-commented string + + + + + another extra-commented string + another extra-comment + + + + + TestingTake17 + + + something cool + random comment + + fooish_bar + totally foo-barred nonsense + + + + less cool + + + + + even more cool + + + + + TranslatedAfterPrivate + + + Must be in context TranslatedAfterPrivate + + + + + YetAnotherTest + + + nothing + + + + + nullptrClass + + + %n car(s) + + + + + + + scope + + + works in translate, too + blabb + blah! + + + + + + + string + extra comment for NOOP which spans multiple lines + + + + + string + comment + extra comment for NOOP3 + + + + + string continuation on next line + + + + + string %n + + + + + + + string %n + comment + + + + + + + testing + + + %n test + + + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt new file mode 100644 index 0000000..6a8ee2c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt @@ -0,0 +1,8 @@ +.*/lupdate/testdata/good/parsecpp2/main.cpp:38: Excess closing brace .* +.*/lupdate/testdata/good/parsecpp2/main.cpp:42: Excess closing brace .* +.*/lupdate/testdata/good/parsecpp2/main.cpp:48: Excess closing brace .* +.*/lupdate/testdata/good/parsecpp2/main.cpp:52: Excess closing brace .* +.*/lupdate/testdata/good/parsecpp2/main.cpp:107: //% cannot be used with tr\(\) / QT_TR_NOOP\(\)\. Ignoring +.*/lupdate/testdata/good/parsecpp2/main.cpp:110: //% cannot be used with translate\(\) / QT_TRANSLATE_NOOP\(\)\. Ignoring +.*/lupdate/testdata/good/parsecpp2/main.cpp:113: Discarding unconsumed meta data +lupdate warning: Message with id 'no_source' has no source\. diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp new file mode 100644 index 0000000..a4188c4 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp @@ -0,0 +1,149 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +// nothing here + +// sickness: multi-\ +line c++ comment } (with brace) + +#define This is a closing brace } which was ignored +} // complain here + +#define This is another \ + closing brace } which was ignored +} // complain here + +#define This is another /* comment in } define */\ + something /* comment ) + spanning {multiple} lines */ \ + closing brace } which was ignored +} // complain here + +#define This is another // comment in } define \ + something } comment +} // complain here +#include + + +// Nested class in same file +class TopLevel { + Q_OBJECT + + class Nested; +}; + +class TopLevel::Nested { + void foo(); +}; + +void TopLevel::Nested::foo() +{ + TopLevel::tr("TopLevel"); +} + +// Nested class in other file +#include "main.h" + +class TopLevel2::Nested { + void foo(); +}; + +void TopLevel2::Nested::foo() +{ + TopLevel2::tr("TopLevel2"); +} + + + +namespace NameSpace { +class ToBeUsed; +} + +// using statement before class definition +using NameSpace::ToBeUsed; + +class NameSpace::ToBeUsed { + Q_OBJECT + void caller(); +}; + +void ToBeUsed::caller() +{ + tr("NameSpace::ToBeUsed"); +} +#include + +bool me = false; +// QTBUG-11818 +//% "Foo" +QString s1 = QObject::tr("Hello World"); +QString s2 = QObject::tr("Hello World"); +//% "Bar" +QString s3 = QApplication::translate("QObject", "Hello World"); +QString s4 = QApplication::translate("QObject", "Hello World"); +//% "Baz" +bool clear = me; +QString s5 = QObject::tr("Hello World"); + + + +// QTBUG-11843: complain about missing source in id-based messages +QString s6 = qtTrId("no_source"); + +QString s7 = QObject::tr(R"(simple one)" R"delim(enter +)delim" R"delim(with delimiter )delim inside)delim" u8R"(with quote " inside)"); + +QLatin1String not_translated(R"( + This is a test string +)"); +const char valid[] = QT_TRANSLATE_NOOP("global", R"( +"The time has come," the Walrus said, +"To talk of many things: +Of shoes - and ships - and sealing-wax - +Of cabbages - and kings - +And why the sea is boiling hot - +And whether pigs have wings." +)"); + +const QString nodelimiter(QObject::tr(R"( + This is a test string +)")); +const QString withdelimiter = QObject::tr(R"delim( +This is a test string +)delim"); + + +// New in C++14: integer literals may contain single quotes as separator. +struct IntLiteralsWithSeparators { + long d = 10'000'000'0'00; + int x = 0x1'AF'FE; + int X = 0X2'E5E7; +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.h b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.h new file mode 100644 index 0000000..1a83603 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.h @@ -0,0 +1,38 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include +class TopLevel2 { + Q_OBJECT + + class Nested; +}; + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro new file mode 100644 index 0000000..759bea0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro @@ -0,0 +1,3 @@ +SOURCES = main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result new file mode 100644 index 0000000..0710915 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result @@ -0,0 +1,83 @@ + + + + + + + + + + + + + NameSpace::ToBeUsed + + + NameSpace::ToBeUsed + + + + + QObject + + + + + + + Hello World + + + + + simple oneenter +with delimiter )delim insidewith quote " inside + + + + + + This is a test string + + + + + + +This is a test string + + + + + + TopLevel + + + TopLevel + + + + + TopLevel2 + + + TopLevel2 + + + + + global + + + +"The time has come," the Walrus said, +"To talk of many things: +Of shoes - and ships - and sealing-wax - +Of cabbages - and kings - +And why the sea is boiling hot - +And whether pigs have wings." + + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/expectedoutput.txt new file mode 100644 index 0000000..5546bcc --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/expectedoutput.txt @@ -0,0 +1,3 @@ +.*[/\\]lupdate[/\\]testdata[/\\]good[/\\]parsecpp2_clang_parser[/\\]main.cpp:107:0: //% cannot be used with tr\(\) / QT_TR_NOOP\(\)\. Ignoring +.*[/\\]lupdate[/\\]testdata[/\\]good[/\\]parsecpp2_clang_parser[/\\]main.cpp:110:0: //% cannot be used with translate\(\) / QT_TRANSLATE_NOOP\(\)\. Ignoring +lupdate warning: Message with id 'no_source' has no source\. diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/main.cpp new file mode 100644 index 0000000..a3701cd --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/main.cpp @@ -0,0 +1,141 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +// nothing here + +// sickness: multi-\ +line c++ comment } (with brace) + +//#define This is a closing brace } which was ignored +//} // complain here + +//#define This is another \ +// closing brace } which was ignored +//} // complain here + +//#define This is another /* comment in } define */\ +// something /* comment ) +// spanning {multiple} lines */ \ +// closing brace } which was ignored +//} // complain here + +//#define This is another // comment in } define \ +// something } comment +//} // complain here +#include + + +// Nested class in same file +class TopLevel { + Q_OBJECT + + class Nested; +}; + +class TopLevel::Nested { + void foo(); +}; + +void TopLevel::Nested::foo() +{ + TopLevel::tr("TopLevel"); +} + +// Nested class in other file +#include "main.h" + +class TopLevel2::Nested { + void foo(); +}; + +void TopLevel2::Nested::foo() +{ + TopLevel2::tr("TopLevel2"); +} + + + +namespace NameSpace { +class ToBeUsed; +} + +// using statement before class definition +using NameSpace::ToBeUsed; + +class NameSpace::ToBeUsed { + Q_OBJECT + void caller(); +}; + +void ToBeUsed::caller() +{ + tr("NameSpace::ToBeUsed"); +} +#include + +bool me = false; +// QTBUG-11818 +//% "Foo" +QString s1 = QObject::tr("Hello World"); +QString s2 = QObject::tr("Hello World"); +//% "Bar" +QString s3 = QApplication::translate("QObject", "Hello World"); +QString s4 = QApplication::translate("QObject", "Hello World"); +//% "Baz" +bool clear = me; +QString s5 = QObject::tr("Hello World"); + + + +// QTBUG-11843: complain about missing source in id-based messages +QString s6 = qtTrId("no_source"); + +QString s7 = QObject::tr(R"(simple one)" R"delim(enter +)delim" R"delim(with delimiter )delim inside)delim" u8R"(with quote " inside)"); + +QLatin1String not_translated(R"( + This is a test string +)"); +const char valid[] = QT_TRANSLATE_NOOP("global", R"( +"The time has come," the Walrus said, +"To talk of many things: +Of shoes - and ships - and sealing-wax - +Of cabbages - and kings - +And why the sea is boiling hot - +And whether pigs have wings." +)"); + +const QString nodelimiter(QObject::tr(R"( + This is a test string +)")); +const QString withdelimiter = QObject::tr(R"delim( +This is a test string +)delim"); diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/main.h b/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/main.h new file mode 100644 index 0000000..c78fbe3 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/main.h @@ -0,0 +1,36 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include +class TopLevel2 { + Q_OBJECT + + class Nested; +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/project.pro new file mode 100644 index 0000000..759bea0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/project.pro @@ -0,0 +1,3 @@ +SOURCES = main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/project.ts.result new file mode 100644 index 0000000..0710915 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2_clang_parser/project.ts.result @@ -0,0 +1,83 @@ + + + + + + + + + + + + + NameSpace::ToBeUsed + + + NameSpace::ToBeUsed + + + + + QObject + + + + + + + Hello World + + + + + simple oneenter +with delimiter )delim insidewith quote " inside + + + + + + This is a test string + + + + + + +This is a test string + + + + + + TopLevel + + + TopLevel + + + + + TopLevel2 + + + TopLevel2 + + + + + global + + + +"The time has come," the Walrus said, +"To talk of many things: +Of shoes - and ships - and sealing-wax - +Of cabbages - and kings - +And why the sea is boiling hot - +And whether pigs have wings." + + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/expectedoutput.txt new file mode 100644 index 0000000..4ce39f6 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/expectedoutput.txt @@ -0,0 +1,5 @@ +.*[/\\]lupdate[/\\]testdata[/\\]good[/\\]parsecpp_clang_only[/\\]test_QT_TR_NOOP_context.cpp:51:26: QT_TR_NOOP cannot be called without context\. The call is ignored \(missing Q_OBJECT maybe\?\) +.*[/\\]lupdate[/\\]testdata[/\\]good[/\\]parsecpp_clang_only[/\\]test_QT_TR_NOOP_context.cpp:91:26: QT_TR_NOOP cannot be called without context\. The call is ignored \(missing Q_OBJECT maybe\?\) +.*[/\\]lupdate[/\\]testdata[/\\]good[/\\]parsecpp_clang_only[/\\]test_QT_TR_NOOP_context_bis.cpp:51:26: QT_TR_NOOP cannot be called without context\. The call is ignored \(missing Q_OBJECT maybe\?\) +.*[/\\]lupdate[/\\]testdata[/\\]good[/\\]parsecpp_clang_only[/\\]test_QT_TR_NOOP_context_bis.cpp:91:26: QT_TR_NOOP cannot be called without context\. The call is ignored \(missing Q_OBJECT maybe\?\) +.*[/\\]lupdate[/\\]testdata[/\\]good[/\\]parsecpp_clang_only[/\\]test_isolatedComments.cpp:84:0: TRANSLATOR cannot be called without comment. The call is ignored. diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/lupdatecmd new file mode 100644 index 0000000..e8aa3b3 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/lupdatecmd @@ -0,0 +1 @@ +lupdate project.pro -tr-function-alias QT_TRANSLATE_NOOP+=ma_fonction_a_moi diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/my_include.h b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/my_include.h new file mode 100644 index 0000000..1434073 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/my_include.h @@ -0,0 +1,33 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +class Foo +{ + Q_OBJECT +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/project.pro new file mode 100644 index 0000000..e9e5188 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/project.pro @@ -0,0 +1,9 @@ +SOURCES += test_QT_TR_NOOP_context.cpp +SOURCES += test_QT_TR_NOOP_context_bis.cpp +SOURCES += test_isolatedComments.cpp +SOURCES += test_sameLineComments.cpp +SOURCES += test_contain_only_alias.cpp +SOURCES += test_line_directive.cpp +SOURCES += test_header_only.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/project.ts.result new file mode 100644 index 0000000..47bd60e --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/project.ts.result @@ -0,0 +1,319 @@ + + + + + Class + + + translation_in_hearder + + + + + CommentOnSameLineExtraComment + + + extra comment before translation. , and = in between + other extra comment + + + + + extra comment before translation. = in between + extra2 + + + + + extra comment before translation + extra3 + + + + + extra comment before translation. ; in between + + + + + CommentOnSameLineMetaDataComment + + + meta data comment before translation. , and = in between + + + + + meta data comment before translation. = in between + + + + + meta data comment before translation + + + + + Foo + + + + context Foo. noop + + + + + FooChild + + + context FooChild. noop with comments + Some comments + + + + + GluedNumber1 + + + + blabla + + + + + GluedNumber2 + + + + blabla + + + + + GluedNumber3 + + + + blabla + + + + + GluedNumber4 + + + + // whatever we have here + + + + + GluedNumber5 + + + + // whatever2 we2 have2 here2 + + + + + GluedOnSameLineOne + + + + blabla + + + + + GluedOnSameLineTwo + + + + blabla + + + + + IN_NESTED + + + + context IN_NESTED. tr + + + + + + context IN_NESTED. noop + + + + + MULTIPLELINE + + + + first line second line + + + + + MultipleAppearance + + + + first appearance + + + + + + second appearance + + + + + MultipleLineFourthTry + + + + first line second line + + + + + MultipleLineSecondTry + + + + first line second line + + + + + MultipleLineThirdTry + + + + first line second line + + + + + ONLY_Q + + + + context ONLY_Q. noop + + + + + + context ONLY_Q. noop N + + + + + + + QObject + + + blabla 1 + + + + + blabla 2 + + + + + WithQDeclareTr::Nested + + + + context WithQDeclareTr::Nested. tr + + + + + + context WithQDeclareTr::Nested. noop + + + + + inHeader + + + + how to pick this up Not triggering visit from AST visitor + + + + + my_arg + + + + context my_arg. translate_noop + + + + + test2::BB + + + + context test2::BB. tr + + + + + + context test2::BB. noop + + + + + test3::D + + + + context test3::D. tr + + + + + + context test3::D. noop + + + + + test4::A::B::C + + + + context is test4::A::B::C. tr + + + + + + context is test4::A::B::C. noop + + + + + zscope + + + string_a_moi + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_QT_TR_NOOP_context.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_QT_TR_NOOP_context.cpp new file mode 100644 index 0000000..e19c1e5 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_QT_TR_NOOP_context.cpp @@ -0,0 +1,165 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include +#include "my_include.h" + +int X = 111222332444; + +// Q_OBJECT declared in an other file +class FooChild : public Foo +{ + const char *c_noop = QT_TR_NOOP("context Foo. noop"); +}; + +// No Q_OBJECT. Q_DECLARE_TR_FUNCTIONS. It is enough for tr, it is enough for QT_TR_NOOP +class OnlyQDeclare +{ + Q_DECLARE_TR_FUNCTIONS(ONLY_Q) + const char *c_noop = QT_TR_NOOP("context ONLY_Q. noop"); + const char *c_noop_n = QT_TR_N_NOOP("context ONLY_Q. noop N"); +}; + +// Show the message warning that the QT_TR_NOOP is ignored because no context could be found. +class Nothing +{ + const char *c_noop = QT_TR_NOOP("context Nothing. noop with no Q_OBJECT nor Q_DECLARE_TR_FUNCTIONS"); +}; + +// The closest Q_OBJECT or Q_DECLARE_TR_FUNCTIONS gives the context +class WithQObject +{ + Q_OBJECT + class Nested + { + Q_DECLARE_TR_FUNCTIONS(IN_NESTED) + QString c_tr = tr("context IN_NESTED. tr"); + const char *c_noop = QT_TR_NOOP("context IN_NESTED. noop"); + const char *c_noop_translate = QT_TRANSLATE_NOOP("my_arg", "context my_arg. translate_noop"); + }; +}; + +// The closest Q_OBJECT or Q_DECLARE_TR_FUNCTIONS gives the context +class WithQDeclareTr +{ + Q_DECLARE_TR_FUNCTIONS(A_CONTEXT) + class Nested + { + Q_OBJECT + QString c_tr = tr("context WithQDeclareTr::Nested. tr"); + const char *c_noop = QT_TR_NOOP("context WithQDeclareTr::Nested. noop"); + }; +}; + +// Case where Q_OBJECT is not seen. Behavior reproduces tr function behavior +namespace test1 { + class AA + { + Q_OBJECT + public: + class A {}; + }; + + class B : public AA::A + { + //QString c_tr = tr(" the Q_OBJECT is not seen"); // this will generate an error. + const char *c_noop = QT_TR_NOOP("the Q_OBJECT is not seen"); // Once exploring the bases of B (that is AA:A) + // we are not looking for the parents + // AA is the parent of A in terms of CXXContextDecl::getParent() + // This reproduced tr behavior. + }; +} + +namespace test2 { + class AA + { + Q_OBJECT + public: + class A {}; + }; + + class C {}; + + class BB + { + Q_OBJECT + public: + class B : public AA::A, public C + { + QString c_tr = tr("context test2::BB. tr"); + const char *c_noop = QT_TR_NOOP("context test2::BB. noop"); + }; + }; +} + +namespace test3 { + class AA + { + Q_OBJECT + public: + class A {}; + }; + + class D {Q_OBJECT}; + class C : public D {}; + + class BB + { + Q_OBJECT + public: + class B : public AA::A, public C + { + QString c_tr = tr("context test3::D. tr"); + const char *c_noop = QT_TR_NOOP("context test3::D. noop"); + }; + }; +} + +namespace test4 { + + class A + { + Q_OBJECT + public: + class B + { + public: + class C + { + Q_OBJECT + public: + class D + { + QString c_tr = tr("context is test4::A::B::C. tr"); + const char *c_noop = QT_TR_NOOP("context is test4::A::B::C. noop"); + }; + }; + }; + }; + +} diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_QT_TR_NOOP_context_bis.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_QT_TR_NOOP_context_bis.cpp new file mode 100644 index 0000000..25b648b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_QT_TR_NOOP_context_bis.cpp @@ -0,0 +1,165 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include +#include "my_include.h" +// Testing with two files to check that patch https://codereview.qt-project.org/c/qt/qttools/+/338709/1..3 still works +int X = 111222332444; + +// Q_OBJECT declared in an other file +class FooChild : public Foo +{ + const char *c_noop = QT_TR_NOOP("context Foo. noop"); +}; + +// No Q_OBJECT. Q_DECLARE_TR_FUNCTIONS. It is enough for tr, it is enough for QT_TR_NOOP +class OnlyQDeclare +{ + Q_DECLARE_TR_FUNCTIONS(ONLY_Q) + const char *c_noop = QT_TR_NOOP("context ONLY_Q. noop"); + const char *c_noop_n = QT_TR_N_NOOP("context ONLY_Q. noop N"); +}; + +// Show the message warning that the QT_TR_NOOP is ignored because no context could be found. +class Nothing +{ + const char *c_noop = QT_TR_NOOP("context Nothing. noop with no Q_OBJECT nor Q_DECLARE_TR_FUNCTIONS"); +}; + +// The closest Q_OBJECT or Q_DECLARE_TR_FUNCTIONS gives the context +class WithQObject +{ + Q_OBJECT + class Nested + { + Q_DECLARE_TR_FUNCTIONS(IN_NESTED) + QString c_tr = tr("context IN_NESTED. tr"); + const char *c_noop = QT_TR_NOOP("context IN_NESTED. noop"); + const char *c_noop_translate = QT_TRANSLATE_NOOP("my_arg", "context my_arg. translate_noop"); + }; +}; + +// The closest Q_OBJECT or Q_DECLARE_TR_FUNCTIONS gives the context +class WithQDeclareTr +{ + Q_DECLARE_TR_FUNCTIONS(A_CONTEXT) + class Nested + { + Q_OBJECT + QString c_tr = tr("context WithQDeclareTr::Nested. tr"); + const char *c_noop = QT_TR_NOOP("context WithQDeclareTr::Nested. noop"); + }; +}; + +// Case where Q_OBJECT is not seen. Behavior reproduces tr function behavior +namespace test1 { + class AA + { + Q_OBJECT + public: + class A {}; + }; + + class B : public AA::A + { + //QString c_tr = tr(" the Q_OBJECT is not seen"); // this will generate an error. + const char *c_noop = QT_TR_NOOP("the Q_OBJECT is not seen"); // Once exploring the bases of B (that is AA:A) + // we are not looking for the parents + // AA is the parent of A in terms of CXXContextDecl::getParent() + // This reproduced tr behavior. + }; +} + +namespace test2 { + class AA + { + Q_OBJECT + public: + class A {}; + }; + + class C {}; + + class BB + { + Q_OBJECT + public: + class B : public AA::A, public C + { + QString c_tr = tr("context test2::BB. tr"); + const char *c_noop = QT_TR_NOOP("context test2::BB. noop"); + }; + }; +} + +namespace test3 { + class AA + { + Q_OBJECT + public: + class A {}; + }; + + class D {Q_OBJECT}; + class C : public D {}; + + class BB + { + Q_OBJECT + public: + class B : public AA::A, public C + { + QString c_tr = tr("context test3::D. tr"); + const char *c_noop = QT_TR_NOOP("context test3::D. noop"); + }; + }; +} + +namespace test4 { + + class A + { + Q_OBJECT + public: + class B + { + public: + class C + { + Q_OBJECT + public: + class D + { + QString c_tr = tr("context is test4::A::B::C. tr"); + const char *c_noop = QT_TR_NOOP("context is test4::A::B::C. noop"); + }; + }; + }; + }; + +} diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_QT_TR_NOOP_context_with_comments.h b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_QT_TR_NOOP_context_with_comments.h new file mode 100644 index 0000000..8f855e6 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_QT_TR_NOOP_context_with_comments.h @@ -0,0 +1,36 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +class FooChild +{ + Q_OBJECT + //: Some comments + const char *c_noop = QT_TR_NOOP("context FooChild. noop with comments"); +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_contain_only_alias.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_contain_only_alias.cpp new file mode 100644 index 0000000..980cd51 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_contain_only_alias.cpp @@ -0,0 +1,35 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#ifndef MYOBJECT_H +#define MYOBJECT_H + +#include +const char *c_2 = ma_fonction_a_moi("zscope", "string_a_moi"); + +#endif diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_header_only.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_header_only.cpp new file mode 100644 index 0000000..25a56d6 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_header_only.cpp @@ -0,0 +1,28 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "test_header_only.h" diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_header_only.h b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_header_only.h new file mode 100644 index 0000000..a0732e2 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_header_only.h @@ -0,0 +1,39 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +class Class +{ + Q_OBJECT + void function() + { + tr("translation_in_hearder"); + } + +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_isolatedComments.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_isolatedComments.cpp new file mode 100644 index 0000000..a92d5eb --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_isolatedComments.cpp @@ -0,0 +1,84 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include +#include "test_isolatedComments.h" +#include "test_QT_TR_NOOP_context_with_comments.h" + +/* TRANSLATOR MULTIPLELINE + first line + second line + */ +/* TRANSLATOR + MultipleLineSecondTry + first line + second line + */ + +/* TRANSLATOR + MultipleLineThirdTry first + line + second line + */ + +/* TRANSLATOR + MultipleLineFourthTry first + line + second line + */ + + +/* TRANSLATOR MultipleAppearance first appearance */ + +/* TRANSLATOR MultipleAppearance second appearance */ + +/* TRANSLATOR GluedNumber1 blabla */ +/* TRANSLATOR GluedNumber2 blabla */ +// TRANSLATOR GluedNumber3 blabla +/*TRANSLATOR +GluedNumber4 + // whatever + we + have + here +*/ +/* TRANSLATOR GluedNumber5 + // whatever2 + we2 + have2 + here2 +*/ + +/* TRANSLATOR GluedOnSameLineOne blabla*/ /* TRANSLATOR GluedOnSameLineTwo blabla*/ +// TRANSLATORMISSINGSPACE this will not be picked up by clang cpp parser +// oooTRANSLATOR SomethingBeforeTranslator this should not be picked up +// ooo TRANSLATOR SomethingBeforeTranslatorTwo this should not be picked up +/* ooo TRANSLATOR SomethingBeforeTranslatorThree this should not be picked up */ +/* ~ TRANSLATOR SomethingBeforeTranslatorFour this + should not be picked up */ +// The following comment should be ignored because the comment part is empty +/* TRANSLATOR onlyContext */ diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_isolatedComments.h b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_isolatedComments.h new file mode 100644 index 0000000..629224c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_isolatedComments.h @@ -0,0 +1,33 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +/* TRANSLATOR + inHeader + how to pick this up + Not triggering visit from AST visitor + */ diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_line_directive.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_line_directive.cpp new file mode 100644 index 0000000..ed3fc95 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_line_directive.cpp @@ -0,0 +1,7 @@ +#include + +QString t1 = QObject::tr("blabla 1"); + +#line 1 "toto.cpp" + +QString t2 = QObject::tr("blabla 2"); diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_sameLineComments.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_sameLineComments.cpp new file mode 100644 index 0000000..fa1ab8d --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_only/test_sameLineComments.cpp @@ -0,0 +1,54 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +class CommentOnSameLineMetaDataComment +{ + Q_OBJECT + //= other metaData + void hello(int something /*= metaData1 */, QString str = tr("meta data comment before translation. , and = in between")); + void hellobis(/*= metaData2 */QString str = tr("meta data comment before translation. = in between")); + void hellobiss() + { + hellobis(/*= metaData3*/ tr("meta data comment before translation")); + } +}; +class CommentOnSameLineExtraComment +{ + Q_OBJECT + //: other extra comment + void hello(int something /*: extra1 */, QString str = tr("extra comment before translation. , and = in between")); + void hellobis(/*: extra2 */QString str = tr("extra comment before translation. = in between")); + void hellobiss() + { + hellobis(/*: extra3*/ tr("extra comment before translation")); + } + //: other extra comment + QString toto/*: extra4*/; QString titi = tr("extra comment before translation. ; in between"); +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/expectedoutput.txt new file mode 100644 index 0000000..65c6b1f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/expectedoutput.txt @@ -0,0 +1,2 @@ +.*[/\\]lupdate[/\\]testdata[/\\]good[/\\]parsecpp_clang_parser[/\\]main.cpp:406:0: 'translate' cannot be called without context or source. The call is ignored. +lupdate warning: Message with id 'yet_another_id' has no source. diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/finddialog.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/finddialog.cpp new file mode 100644 index 0000000..f74b5e9 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/finddialog.cpp @@ -0,0 +1,169 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +//#include "finddialog.h" nothing is picked up from there +//#include "mainwindow.h" +//#include "tabbedbrowser.h" +//#include "helpwindow.h" +#include +#include +#include +#include +#include +#include +#include +#include +class FindDialog +{ Q_OBJECT + FindDialog(QMainWindow *parent); + void findButtonClicked(); + void doFind(bool forward); + void statusMessage(const QString &message); + //QMainWindow *mainWindow() const; + void reset(); + + +}; + + +FindDialog::FindDialog(QMainWindow *parent) +{ + //auto contentsWidget = new QWidget(this); + //ui.setupUi(contentsWidget); + //ui.comboFind->setModel(new CaseSensitiveModel(0, 1, ui.comboFind)); + + //QVBoxLayout *l = new QVBoxLayout(this); + //l->setContentsMargins(QMargins()); + //l->setSpacing(0); + //l->addWidget(contentsWidget); + + auto lastBrowser = 0; + auto onceFound = false; + //findExpr.clear(); + + auto sb = new QStatusBar; + //l->addWidget(sb); + + sb->showMessage(tr("Enter the text you are looking for.")); + + //connect(ui.findButton, SIGNAL(clicked()), this, SLOT(findButtonClicked())); + //connect(ui.closeButton, SIGNAL(clicked()), this, SLOT(reject())); +} + +//FindDialog::~FindDialog() +//{ +//} + +//void FindDialog::findButtonClicked() +//{ +// doFind(ui.radioForward->isChecked()); +//} + +void FindDialog::doFind(bool forward) +{ + //QTextBrowser *browser = static_cast(mainWindow()->browsers()->currentBrowser()); + //sb->clearMessage(); + + //if (ui.comboFind->currentText() != findExpr || lastBrowser != browser) + // onceFound = false; + //findExpr = ui.comboFind->currentText(); + bool onceFound = false; + //QTextDocument::FindFlags flags = 0; + /* + if (ui.checkCase->isChecked()) + flags |= QTextDocument::FindCaseSensitively; + + if (ui.checkWords->isChecked()) + flags |= QTextDocument::FindWholeWords; + + QTextCursor c = browser->textCursor(); + if (!c.hasSelection()) { + if (forward) + c.movePosition(QTextCursor::Start); + else + c.movePosition(QTextCursor::End); + + browser->setTextCursor(c); + } + + QTextDocument::FindFlags options; + if (forward == false) + flags |= QTextDocument::FindBackward; + */ + QTextCursor found;//browser->document()->find(findExpr, c, flags); + if (found.isNull()) { + if (onceFound) { + if (forward) + statusMessage(tr("Search reached end of the document")); + else + statusMessage(tr("Search reached start of the document")); + } else { + statusMessage(tr( "Text not found" )); + } + } else { + //browser->setTextCursor(found); + } + onceFound |= !found.isNull(); + //lastBrowser = browser; +} + +//bool FindDialog::hasFindExpression() const +//{ +// return !findExpr.isEmpty(); +//} + +void FindDialog::statusMessage(const QString &message) +{ /* + if (isVisible()) + sb->showMessage(message); + else + static_cast(parent())->statusBar()->showMessage(message, 2000); */ +} + +//QMainWindow *FindDialog::mainWindow() const +//{ +// return static_cast(parentWidget()); +//} + +void FindDialog::reset() +{ + //ui.comboFind->setFocus(); + //ui.comboFind->lineEdit()->setSelection( + // 0, ui.comboFind->lineEdit()->text().length()); + + QString s = QCoreApplication::translate("QCoreApplication", "with comment", "comment"); + QString s1 = QCoreApplication::translate("QCoreApplication", "empty comment", ""); + QString s2 = QCoreApplication::translate("QCoreApplication", "null comment", 0); + QString s3 = tr("null comment"); + + QString s4 = QCoreApplication::translate("QCoreApplication", "encoding, using QCoreApplication", 0); + QString s5 = QCoreApplication::translate("QCoreApplication", "encoding, using QApplication", 0); + + QString s6 = QCoreApplication::translate("KÃ¥ntekst", "encoding, using QApplication", 0); + QString s7 = QCoreApplication::translate("QTranslator", "Key", "disambiguation"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/included.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/included.cpp new file mode 100644 index 0000000..7473ac0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/included.cpp @@ -0,0 +1,31 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include +class MyClass2{ + QString toto = QObject::tr("message from #included .cpp file"); +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/main.cpp new file mode 100644 index 0000000..fbfe7b5 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/main.cpp @@ -0,0 +1,690 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +int main(int argc, char **argv) +{ + //Size size = QSize(1,1); +} +#include +QString qt_detectRTLLanguage() +{ + return QCoreApplication::tr("QT_LAYOUT_DIRECTION", + "Translate this string to the string 'LTR' in left-to-right" + " languages or to 'RTL' in right-to-left languages (such as Hebrew" + " and Arabic) to get proper widget layout.");// == QLatin1String("RTL"); +} + + +class Dialog2 +{ + Q_OBJECT + void func(); + void func3(); + int getCount() const { return 2; } + +}; + +void Dialog2::func() +{ + int n = getCount(); + tr("%n files", "plural form", n); + tr("%n cars", 0, n); + tr("&Find %n cars", 0, n); + tr("Search in %n items?", 0, n); + tr("%1. Search in %n items?", 0, n); + tr("Age: %1"); + tr("There are %n house(s)", "Plurals and function call", getCount()); + + + + + QCoreApplication::translate("Plurals, QCoreApplication", "%n house(s)", "Plurals and identifier", n); + QCoreApplication::translate("Plurals, QCoreApplication", "%n car(s)", "Plurals and literal number", 1); + QCoreApplication::translate("Plurals, QCoreApplication", "%n horse(s)", "Plurals and function call", getCount()); + + + + + + + + + QTranslator trans; + trans.translate("QTranslator", "Simple"); + trans.translate("QTranslator", "Simple", 0); + trans.translate("QTranslator", "Simple with comment", "with comment"); + trans.translate("QTranslator", "Plural without comment", 0, 1); + trans.translate("QTranslator", "Plural with comment", "comment 1", n); + trans.translate("QTranslator", "Plural with comment", "comment 2", getCount()); + + + + + + + + + + + + +} + + + + +/* This is actually a test of how many alternative ways a struct/class can be found in a source file. + * Due to the simple parser in lupdate, it will actually not treat the remaining lines in the define + * as a macro, which is a case the 'Tok_Class' parser block might not consider, and it might loop infinite + * if it just tries to fetch the next token until it gets a '{' or a ';'. Another pitfall is that the + * context of tr("func3") might not be parsed, it won't resume normal evaluation until the '{' after the function + * signature. + * + */ +typedef struct S_ +{ +int a; +} S, *SPtr; +class ForwardDecl; + + +#define FT_DEFINE_SERVICE( name ) \ + typedef struct FT_Service_ ## name ## Rec_ \ + FT_Service_ ## name ## Rec ; \ + typedef struct FT_Service_ ## name ## Rec_ \ + const * FT_Service_ ## name ; \ + struct FT_Service_ ## name ## Rec_ + + + + +void Dialog2::func3() +{ + tr("func3"); +} + + + + +namespace Gui { class BaseClass {}; } + + +class TestClass : QObject { + Q_OBJECT + + + inline QString inlineFunc1() { + return tr("inline function", "TestClass"); + } + + QString inlineFunc2() { + return tr("inline function 2", "TestClass"); + } + + static inline QString staticInlineFunc() { + return tr("static inline function", "TestClass"); + } + + class NoQObject : public Gui::BaseClass { + public: + inline QString hello() { return QString("hello"); } + + }; + +}; + + +class Testing : QObject { + Q_OBJECT + + inline QString f1() { + //: this is an extra comment for the translator + return tr("extra-commented string"); + return tr("not extra-commented string"); + /*: another extra-comment */ + return tr("another extra-commented string"); + /*: blah! */ + return QCoreApplication::translate("scope", "works in translate, too", "blabb", 0); + } + +}; + +//: extra comment for NOOP +//: which spans multiple lines +const char *c_1 = QT_TRANSLATE_NOOP("scope", "string") /*: complain & ignore */; // 4.4 says the line of this is at the next statement +//: extra comment for NOOP3 +const char *c_2[2] = QT_TRANSLATE_NOOP3_UTF8("scope", "string", "comment"); // 4.4 doesn't see this + +const char *c_3 = QT_TRANSLATE_NOOP("scope", "string " // this is an interleaved comment + "continuation on next line"); + + +class TestingTake17 : QObject { + Q_OBJECT + + void function(void) + { + //: random comment + //= this_is_an_id + //~ loc-layout_id fooish_bar + //~ po-ignore_me totally foo-barred nonsense + tr("something cool"); + + tr("less cool"); + + //= another_id + tr("even more cool"); + } +}; + + + + +//: again an extra comment, this time for id-based NOOP +//% "This is supposed\tto be quoted \" newline\n" +//% "backslashed \\ stuff." +const char *c_4 = QT_TRID_NOOP("this_a_id"); + +//~ some thing +//% "This needs to be here. Really." +QString test = qtTrId("this_another_id", 2); + + + +class YetAnotherTest : QObject { + Q_OBJECT + + void function(void) + { + // + //: + //= + //~ + //# + //============= + //~~~~~~~~~~~~~ + //::::::::::::: + tr("nothing"); + } +}; + + + +//: This is a message without a source string +QString test1 = qtTrId("yet_another_id"); + + + +// QTBUG-9276: context in static initializers +class Bogus : QObject { + Q_OBJECT + static const char * const s_stringss[]; + static const char * const s_strings[]; + +}; +const char * const Bogus::s_strings[] = { + QT_TR_NOOP("this should be in Bogus") +}; + +const char * const Bogus::s_stringss[] = { + QT_TR_NOOP("this should be in Bogus") +}; + +void bogosity() +{ + // no spaces here. test collateral damage from ignoring equal sign + QString toto=QObject::tr("just QObject"); +} + + + +namespace Internal { + +class Message : public QObject +{ + Q_OBJECT +public: + Message(QObject *parent = 0); +}; + +} // The temporary closing of the namespace triggers the problem + +namespace Internal { + +static inline QString message1() +{ + return Message::tr("message1"); // Had no namespace +} + +static inline QString message2() +{ + return Message::tr("message2"); // Already had namespace +} + +} + + + +// QTBUG-11426: operator overloads +class LotsaFun : public QObject +{ + Q_OBJECT +public: + LotsaFun *operator<<(int i); +}; + +LotsaFun *LotsaFun::operator<<(int i) +{ + tr("this is inside operator<<"); + return this; +} + + + +// QTBUG-12683: define in re-opened namespace +namespace NameSchpace { + +class YetMoreFun : public QObject +{ + Q_OBJECT +public: + void funStuff(); +}; + +} + +namespace NameSchpace { + +#define somevar 1 + +void YetMoreFun::funStuff() +{ + tr("funStuff!"); +} + +} + + + +// QTBUG-29998: tr() macro inside square brackets +void blubb() +{ + QMap d; + d[LotsaFun::tr("bracketed")] = "plain"; +} + + + +// QTBUG-9276 part 2: QT_TR_NOOP in static member initializers +class TestClass2 +{ + Q_DECLARE_TR_FUNCTIONS(TestClass); + +public: + static const char TEST_STRING[]; +}; + +const char TestClass2::TEST_STRING[] = QT_TR_NOOP("Test value"); + + + +// derivation from namespaced class +class Class42 : public NameSchpace::YetMoreFun, Gui::BaseClass +{ + Q_OBJECT + void foo(); + Class42() : + NameSchpace::YetMoreFun(), + Gui::BaseClass() + { + tr("does that make sense?"); + } + void hello(int something, QString str); +}; + + +void Class42::foo() +{ + tr("and does that?"); +} + + + +// QTBUG-11866: magic comment parsing is too greedy +void Class42::hello(int something /*= 17 */, QString str = Class42::tr("eyo")) +{ +} + + + +// QTBUG-27974: strings from included sources are not collected +#include "included.cpp" + +// test TR_EXCLUDE +#include "notincluded.cpp" + + + +// failure to update index on insertion messes up subsequent de-duplication +void dupeFail() +{ + // First just the Id. + qtTrId("dupe_id"); + + // Then with source + //% "This is the source" + qtTrId("dupe_id"); + + // Finally, same source, but without ID. + QCoreApplication::translate("", "This is the source"); +} + + + +// QTBUG-42735: lupdate confused by `final` specifier (C++11) +namespace Abc { + +class NamespacedFinalClass; + +} + +class FinalClass final : public QObject +{ + Q_OBJECT + + class SubClass final + { + void f() + { + tr("nested class context with final"); + } + }; + + void f() + { + tr("class context with final"); + } +}; + +class Abc::NamespacedFinalClass final : public QObject +{ + Q_OBJECT + + void f() + { + tr("namespaced class with final"); + } +}; + + + +// QTBUG-48776: lupdate fails to recognize translator comment in ternary +// operator construct +void ternary() +{ + const auto aaa = + true ? + //: comment, aaa, true + QObject::tr("ternary, true, aaa") : + QObject::tr("ternary, failure, aaa"); + + const auto bbb = + true ? + //: comment, bbb, true + QObject::tr("ternary, bbb, true") : + //: comment, bbb, false + QObject::tr("ternary, bbb, false"); +} + +class TernaryClass : public QObject +{ + Q_OBJECT + + void f() + { + const auto ccc = + true ? + //: comment, ccc, true + tr("ternary, ccc, true") : + tr("ternary, ccc, false"); + + const auto ddd = + true ? + //: comment, ddd, true + tr("ternary, ddd, true") : + //: comment, ddd, false + tr("ternary, ddd, false"); + } +}; + + + +// QTBUG-47467: lupdate confused by nullptr in case of plural forms +void nullptrInPlural() +{ + QObject::tr("%n nullptr(s)", nullptr, 3); + QCoreApplication::translate("Plurals, nullptr", "%n car(s)", nullptr, 1); +} + +class nullptrClass : public QObject +{ + Q_OBJECT + + void f() + { + tr("%n car(s)", nullptr, 2); + } +}; + + + +// QTBUG-34265: lupdate does not detect NULL and Q_NULLPTR as 0 when being passed as context +void nullMacroInPlural() +{ + QObject::tr("%n NULL(s)", NULL, 3); + QObject::tr("%n Q_NULLPTR(s)", Q_NULLPTR, 3); +} + + + +// QTBUG-34128: lupdate ignores tr() calls in constructor if a member is +// initialized with C++11 initializer list +class ListInitializationClass : public NameSchpace::YetMoreFun, Gui::BaseClass +{ + Q_OBJECT + + ListInitializationClass() : + NameSchpace::YetMoreFun(), + Gui::BaseClass{ }, + a{ 0 }, + b(1), + c(tr("Hello World")) + { + tr("ListInitializationClass in-class constructor"); + } + + ListInitializationClass(int a); + + ListInitializationClass(int a, int b, int c); + + int a; + int b; + QString c; +}; + +ListInitializationClass::ListInitializationClass(int a)// : +// b{ { 2, 3 }}[a] +{ + tr("ListInitializationClass out-of-class single member initializer"); +} + +ListInitializationClass::ListInitializationClass(int a, int b, int c) : + NameSchpace::YetMoreFun{ }, + Gui::BaseClass(), + a{ 2 + (a/3) }, + b(b), + c{ tr("%n item(s)", Q_NULLPTR, c) } +{ + tr("ListInitializationClass out-of-class multi member initializer"); +} + + + +// QTBUG-42166: lupdate is confused by C++11 lambdas in constructor initializer lists +class LambdaMemberClass : public Gui::BaseClass +{ + Q_OBJECT + + LambdaMemberClass() : + Gui::BaseClass(), + a{ [](){ /*std::cout << */QObject::tr("Hello"); } }, + b([](){ /*std::cout << "World\n";*/ }) + { + tr("LambdaMemberClass in-class constructor"); + } + + LambdaMemberClass(void *); + + std::function a; + std::function b; +}; + +LambdaMemberClass::LambdaMemberClass(void *) : + Gui::BaseClass{ }, + a([](){ /*std::cout <<*/ QObject::tr("Hallo "); }), + b{ [](){ /*std::cout << "Welt\n";*/ } } +{ + tr("LambdaMemberClass out-of-class constructor"); +} + + + +// Template parameters in base class initialization +class TemplateClass : QVarLengthArray, std::vector +{ + Q_DECLARE_TR_FUNCTIONS(TemplateClass) + QString member; + +public: + TemplateClass() : + QVarLengthArray(), + std::vector(3), + member(tr("TemplateClass() in-class member initialization")) + { + tr("TemplateClass() in-class body"); + } + + TemplateClass(void *); + TemplateClass(int); +}; + +// supported: combination of parens in base class template parameter with direct initialization (parens) +TemplateClass::TemplateClass(void *) : + QVarLengthArray(), + std::vector{ 1, 2 }, + member{ tr("TemplateClass(void *) out-of-class member initialization") } +{ + tr("TemplateClass(void *) out-of-class body"); +} + +// not supported: combination of parens in base class template parameter with list initialization (braces) +TemplateClass::TemplateClass(int) : + QVarLengthArray{ 3, 4, 5 }, + member(tr("[unsupported] TemplateClass(int) out-of-class member initialization")) +{ + tr("[unsupported] TemplateClass(int) out-of-class body"); +} + + + +// Related to QTBUG-53644, adapted from qglobal.h. +// Namespace Private must be parsed correctly for TranslatedAfterPrivate to work. +namespace Private { + template struct Class1 { T t; }; + template struct Class1 : Class1 {}; + template struct Class2 { enum { Value = sizeof(T) }; }; +} // namespace Private +class TranslatedAfterPrivate +{ + Q_OBJECT + TranslatedAfterPrivate() + { + tr("Must be in context TranslatedAfterPrivate"); + } +}; + +#include +class AClass { + QString aa = QObject::tr("message after system include without space"); +}; +#include"qobject.h" +class AAClass { + QString aa = QObject::tr("message after local include without space"); +}; + + +// QTBUG-35164: handling of \uNNNN escapes +QString unicodeEscape() +{ + return QCoreApplication::tr("Context", "soft\u00ADhyphen"); +} + + + +// QTBUG-63364: C++17 nested namespaces +namespace Outer::Inner { + +class Class +{ + Q_OBJECT + void function() + { + tr("MoreFunStuff!"); + } +}; + +} + + + +// test of translation for _N_ family +static const char * const test_string_n1[] = { + QT_TRANSLATE_N_NOOP("scope", "string %n") +}; + +static const char * const test_string_n2[] = + QT_TRANSLATE_N_NOOP3("scope", "string %n", "comment") +; +class testing { Q_OBJECT + void test(); }; +void testing::test() { static const char * const test_string_n3[] = { + QT_TR_N_NOOP("%n test") + }; +} diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/my_include.h b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/my_include.h new file mode 100644 index 0000000..1c609d1 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/my_include.h @@ -0,0 +1,6 @@ +#include + +class Foo +{ + Q_OBJECT +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/notincluded.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/notincluded.cpp new file mode 100644 index 0000000..6a64054 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/notincluded.cpp @@ -0,0 +1,31 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include +class MyClass{ + QString toto = QObject::tr("message from #included .cpp file"); +}; diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/project.pro new file mode 100644 index 0000000..0fd8a96 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/project.pro @@ -0,0 +1,7 @@ +SOURCES += main.cpp +SOURCES += finddialog.cpp +SOURCES += excluded.cpp + +TR_EXCLUDE = $$PWD/excluded.* $$PWD/notincluded.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/project.ts.result new file mode 100644 index 0000000..ad871b2 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/project.ts.result @@ -0,0 +1,666 @@ + + + + + + + + This is supposed to be quoted " newline +backslashed \ stuff. + again an extra comment, this time for id-based NOOP + + + + + This needs to be here. Really. + + + + thing + + + + + This is a message without a source string + + + + + + This is the source + + + + + Abc::NamespacedFinalClass + + + namespaced class with final + + + + + Bogus + + + + this should be in Bogus + + + + + Class42 + + + does that make sense? + + + + + and does that? + + + + + eyo + + + + + Dialog2 + + + %n files + plural form + + + + + + + %n cars + + + + + + + &Find %n cars + + + + + + + Search in %n items? + + + + + + + %1. Search in %n items? + + + + + + + Age: %1 + + + + + There are %n house(s) + Plurals and function call + + + + + + + func3 + + + + + FinalClass + + + nested class context with final + + + + + class context with final + + + + + FindDialog + + + Enter the text you are looking for. + + + + + Search reached end of the document + + + + + Search reached start of the document + + + + + Text not found + + + + + null comment + + + + + Internal::Message + + + message1 + + + + + message2 + + + + + KÃ¥ntekst + + + encoding, using QApplication + + + + + LambdaMemberClass + + + LambdaMemberClass in-class constructor + + + + + LambdaMemberClass out-of-class constructor + + + + + ListInitializationClass + + + Hello World + + + + + ListInitializationClass in-class constructor + + + + + ListInitializationClass out-of-class single member initializer + + + + + %n item(s) + + + + + + + ListInitializationClass out-of-class multi member initializer + + + + + LotsaFun + + + this is inside operator<< + + + + + bracketed + + + + + NameSchpace::YetMoreFun + + + funStuff! + + + + + Outer::Inner::Class + + + MoreFunStuff! + + + + + Plurals, QCoreApplication + + + %n house(s) + Plurals and identifier + + + + + + + %n car(s) + Plurals and literal number + + + + + + + %n horse(s) + Plurals and function call + + + + + + + Plurals, nullptr + + + %n car(s) + + + + + + + QCoreApplication + + + with comment + comment + + + + + empty comment + + + + + null comment + + + + + encoding, using QCoreApplication + + + + + encoding, using QApplication + + + + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + + + + + Context + soft­hyphen + + + + + QObject + + + just QObject + + + + + ternary, true, aaa + comment, aaa, true + + + + + ternary, failure, aaa + + + + + ternary, bbb, true + comment, bbb, true + + + + + ternary, bbb, false + comment, bbb, false + + + + + %n nullptr(s) + + + + + + + %n NULL(s) + + + + + + + %n Q_NULLPTR(s) + + + + + + + Hello + + + + + Hallo + + + + + message after system include without space + + + + + message after local include without space + + + + + message from #included .cpp file + + + + + QTranslator + + + Key + disambiguation + + + + + + Simple + + + + + Simple with comment + with comment + + + + + Plural without comment + + + + + + + Plural with comment + comment 1 + + + + + + + Plural with comment + comment 2 + + + + + + + TemplateClass + + + TemplateClass() in-class member initialization + + + + + TemplateClass() in-class body + + + + + TemplateClass(void *) out-of-class member initialization + + + + + TemplateClass(void *) out-of-class body + + + + + [unsupported] TemplateClass(int) out-of-class member initialization + + + + + [unsupported] TemplateClass(int) out-of-class body + + + + + TernaryClass + + + ternary, ccc, true + comment, ccc, true + + + + + ternary, ccc, false + + + + + ternary, ddd, true + comment, ddd, true + + + + + ternary, ddd, false + comment, ddd, false + + + + + TestClass + + + inline function + TestClass + + + + + inline function 2 + TestClass + + + + + static inline function + TestClass + + + + + Test value + + + + + Testing + + + extra-commented string + this is an extra comment for the translator + + + + + not extra-commented string + + + + + another extra-commented string + another extra-comment + + + + + TestingTake17 + + + something cool + random comment + + fooish_bar + totally foo-barred nonsense + + + + less cool + + + + + even more cool + + + + + TranslatedAfterPrivate + + + Must be in context TranslatedAfterPrivate + + + + + YetAnotherTest + + + nothing + + + + + nullptrClass + + + %n car(s) + + + + + + + scope + + + works in translate, too + blabb + blah! + + + + + + + string + extra comment for NOOP which spans multiple lines + + + + + string + comment + extra comment for NOOP3 + + + + + string continuation on next line + + + + + string %n + + + + + + + string %n + comment + + + + + + + testing + + + %n test + + + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parseidbasedui/project.pro b/tests/auto/linguist/lupdate/testdata/good/parseidbasedui/project.pro new file mode 100644 index 0000000..fa56972 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseidbasedui/project.pro @@ -0,0 +1,3 @@ +FORMS += project.ui + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parseidbasedui/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parseidbasedui/project.ts.result new file mode 100644 index 0000000..96ad927 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseidbasedui/project.ts.result @@ -0,0 +1,17 @@ + + + + + FindDialog + + + Qt Assistant - Finn text + + + + + Finn tekst - Der Bjørn möchte auch mal. + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parseidbasedui/project.ui b/tests/auto/linguist/lupdate/testdata/good/parseidbasedui/project.ui new file mode 100644 index 0000000..8130bca --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseidbasedui/project.ui @@ -0,0 +1,35 @@ + + +* Copyright (C) 2017 The Qt Company Ltd. +* SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + FindDialog + + + + 0 + 0 + 400 + 172 + + + + Qt Assistant - Finn text + + + Finn tekst - Der Bjørn möchte auch mal. + + + + comboFind + checkWords + checkCase + radioForward + radioBackward + findButton + closeButton + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejava/main.java b/tests/auto/linguist/lupdate/testdata/good/parsejava/main.java new file mode 100644 index 0000000..7c96549 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejava/main.java @@ -0,0 +1,82 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +package com.trolltech.examples; + +public class I18N extends QDialog { + + private class MainWindow extends QMainWindow { + private String foo = tr("pack class class"); + + //: extra comment for t-tor + private String bar = tr("pack class class extra"); + + public MainWindow(QWidget parent) { + super(parent); + + listWidget = new QListWidget(); + listWidget.addItem(tr("pack class class method")); + + } + } + + public I18N(QWidget parent) { + super(parent, new Qt.WindowFlags(Qt.WindowType.WindowStaysOnTopHint)); + + tr("pack class method"); + + tr("QT_LAYOUT_DIRECTION", + "Translate this string to the string 'LTR' in left-to-right" + + " languages or to 'RTL' in right-to-left languages (such as Hebrew" + + " and Arabic) to get proper widget layout."); + + tr("%n files", "plural form", n); + tr("%n cars", null, n); + tr("Age: %1"); + tr("There are %n house(s)", "Plurals and function call", getCount()); + + QTranslator trans; + trans.translate("QTranslator", "Simple"); + trans.translate("QTranslator", "Simple", null); + trans.translate("QTranslator", "Simple with comment", "with comment"); + trans.translate("QTranslator", "Plural without comment", null, 1); + trans.translate("QTranslator", "Plural with comment", "comment 1", n); + trans.translate("QTranslator", "Plural with comment", "comment 2", getCount()); + + /*: with extra comment! */ + QCoreApplication.translate("Plurals, QCoreApplication", "%n house(s)", "Plurals and identifier", n); + + // FIXME: This will fail. + //QApplication.tr("QT_LAYOUT_DIRECTION", "scoped to qapp"); + + } + +} diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejava/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejava/project.pro new file mode 100644 index 0000000..657b535 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejava/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.java + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejava/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsejava/project.ts.result new file mode 100644 index 0000000..dd545d9 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejava/project.ts.result @@ -0,0 +1,115 @@ + + + + + Plurals, QCoreApplication + + + %n house(s) + Plurals and identifier + with extra comment! + + + + + + + QTranslator + + + + Simple + + + + + Simple with comment + with comment + + + + + Plural without comment + + + + + + + Plural with comment + comment 1 + + + + + + + Plural with comment + comment 2 + + + + + + + com.trolltech.examples.I18N + + + pack class method + + + + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + + + + + %n files + plural form + + + + + + + %n cars + + + + + + + Age: %1 + + + + + There are %n house(s) + Plurals and function call + + + + + + + com.trolltech.examples.I18N$MainWindow + + + pack class class + + + + + pack class class extra + extra comment for t-tor + + + + + pack class class method + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs/main.js b/tests/auto/linguist/lupdate/testdata/good/parsejs/main.js new file mode 100644 index 0000000..9f61cea --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs/main.js @@ -0,0 +1,91 @@ +qsTr("One"); +qsTranslate("FooContext", "Two"); + +var greeting_strings = [ + QT_TR_NOOP("Hello"), + QT_TRANSLATE_NOOP("FooContext", "Goodbye") +]; + +qsTr("One", "not the same one"); + +//: My first comment. +qsTr("See comment"); + +//: My second comment. +qsTranslate("BarContext", "See other comment"); + +//: My third comment +//: spans two lines. +qsTr("The comment explains it all"); + +//: My fourth comment +//: spans a whopping +//: three lines. +qsTranslate("BazContext", "It should be clear by now"); + +/*: C-style comment. */ +qsTr("I love C++"); + +/*: Another C-style comment. */ +qsTranslate("FooContext", "I really love C++"); + +/*: C-style comment, followed by */ +/*: another one. */ +qsTr("Qt is the best"); + +/*: Another C-style comment, followed by */ +/*: yet another one. */ +qsTranslate("BarContext", "Qt is the very best"); + +// This comment doesn't have any effect. +qsTr("The comment had no effect"); + +// This comment doesn't have any effect either. +qsTranslate("BazContext", "The comment had no effect, really"); + +/* This C-style comment doesn't have any effect. */ +qsTr("No comment to your comment"); + +/* This C-style comment doesn't have any effect either. */ +qsTranslate("FooContext", "I refuse to comment on that"); + +//= id_foo +qsTr("This string has an identifier"); + +//= id_bar +qsTranslate("BarContext", "This string also has an identifier"); + +//~ loc-blank False +qsTr("This string has meta-data"); + +//~ loc-layout_id foo_dialog +qsTranslate("BazContext", "This string also has meta-data"); + +// This comment is to be ignored. +//: This is a comment for the translator. +//= id_baz +//~ foo 123 +//~ magic-stuff This means something special. +qsTr("This string has a lot of information"); + +// This comment is also to be ignored. +//: This is another comment for the translator. +//= id_babar +//~ foo-bar Important stuff +//~ needle-in-haystack Found +//~ overflow True +qsTranslate("FooContext", "This string has even more information"); + +qsTr("This string has disambiguation", "Disambiguation"); + +qsTranslate("BarContext", "This string also has disambiguation", "Another disambiguation"); + +qsTr("This string contains plurals", "", 10); + +qsTrId("qtn_foo_bar"); + +var more_greeting_strings = [ QT_TRID_NOOP("qtn_needle"), QT_TRID_NOOP("qtn_haystack") ]; + +//: qsTrId() with comment, meta-data and plurals. +//~ well-tested True +qsTrId("qtn_bar_baz", 10); diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro new file mode 100644 index 0000000..d549039 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.js + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsejs/project.ts.result new file mode 100644 index 0000000..8df655f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs/project.ts.result @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + qsTrId() with comment, meta-data and plurals. + + + + True + + + + BarContext + + + See other comment + My second comment. + + + + + Qt is the very best + Another C-style comment, followed by yet another one. + + + + + This string also has an identifier + + + + + This string also has disambiguation + Another disambiguation + + + + + BazContext + + + It should be clear by now + My fourth comment spans a whopping three lines. + + + + + The comment had no effect, really + + + + + This string also has meta-data + + foo_dialog + + + + FooContext + + + Two + + + + + Goodbye + + + + + I really love C++ + Another C-style comment. + + + + + I refuse to comment on that + + + + + This string has even more information + This is another comment for the translator. + + Important stuff + Found + True + + + + main + + + One + + + + + Hello + + + + + One + not the same one + + + + + See comment + My first comment. + + + + + The comment explains it all + My third comment spans two lines. + + + + + I love C++ + C-style comment. + + + + + Qt is the best + C-style comment, followed by another one. + + + + + The comment had no effect + + + + + No comment to your comment + + + + + This string has an identifier + + + + + This string has meta-data + + False + + + + This string has a lot of information + This is a comment for the translator. + + 123 + This means something special. + + + + This string has disambiguation + Disambiguation + + + + + This string contains plurals + + + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs2/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/parsejs2/expectedoutput.txt new file mode 100644 index 0000000..0d6ae31 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs2/expectedoutput.txt @@ -0,0 +1,19 @@ +.*/lupdate/testdata/good/parsejs2/main.js:3: qsTranslate\(\) requires at least two arguments. +.*/lupdate/testdata/good/parsejs2/main.js:4: qsTranslate\(\) requires at least two arguments. +.*/lupdate/testdata/good/parsejs2/main.js:9: QT_TRANSLATE_NOOP\(\) requires at least two arguments. +.*/lupdate/testdata/good/parsejs2/main.js:10: QT_TRANSLATE_NOOP\(\) requires at least two arguments. +.*/lupdate/testdata/good/parsejs2/main.js:15: qsTr\(\) requires at least one argument. +.*/lupdate/testdata/good/parsejs2/main.js:18: QT_TR_NOOP\(\) requires at least one argument. +.*/lupdate/testdata/good/parsejs2/main.js:21: qsTrId\(\) requires at least one argument. +.*/lupdate/testdata/good/parsejs2/main.js:24: QT_TRID_NOOP\(\) requires at least one argument. +.*/lupdate/testdata/good/parsejs2/main.js:27: Unexpected character in meta string +.*/lupdate/testdata/good/parsejs2/main.js:28: Unexpected character in meta string +.*/lupdate/testdata/good/parsejs2/main.js:29: Unterminated meta string +.*/lupdate/testdata/good/parsejs2/main.js:30: Unterminated meta string +.*/lupdate/testdata/good/parsejs2/main.js:33: //% cannot be used with qsTranslate\(\). Ignoring +.*/lupdate/testdata/good/parsejs2/main.js:35: //% cannot be used with QT_TRANSLATE_NOOP\(\). Ignoring +.*/lupdate/testdata/good/parsejs2/main.js:37: //% cannot be used with qsTr\(\). Ignoring +.*/lupdate/testdata/good/parsejs2/main.js:39: //% cannot be used with QT_TR_NOOP\(\). Ignoring +.*/lupdate/testdata/good/parsejs2/main.js:42: Discarding unconsumed meta data +.*/lupdate/testdata/good/parsejs2/main.js:44: Discarding unconsumed meta data +.*/lupdate/testdata/good/parsejs2/main.js:46: Discarding unconsumed meta data diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs2/main.js b/tests/auto/linguist/lupdate/testdata/good/parsejs2/main.js new file mode 100644 index 0000000..ea02957 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs2/main.js @@ -0,0 +1,56 @@ +// This script exercises lupdate errors and warnings. + +qsTranslate(); +qsTranslate(10); +qsTranslate(10, 20); +qsTranslate("10", 20); +qsTranslate(10, "20"); + +QT_TRANSLATE_NOOP(); +QT_TRANSLATE_NOOP(10); +QT_TRANSLATE_NOOP(10, 20); +QT_TRANSLATE_NOOP("10", 20); +QT_TRANSLATE_NOOP(10, "20"); + +qsTr(); +qsTr(10); + +QT_TR_NOOP(); +QT_TR_NOOP(10); + +qsTrId(); +qsTrId(10); + +QT_TRID_NOOP(); +QT_TRID_NOOP(10); + +//% This is wrong +//% "This is not wrong" This is wrong +//% "I forgot to close the meta string +//% "Being evil \ + +//% "Should cause a warning" +qsTranslate("FooContext", "Hello"); +//% "Should cause a warning" +QT_TRANSLATE_NOOP("FooContext", "World"); +//% "Should cause a warning" +qsTr("Hello"); +//% "Should cause a warning" +QT_TR_NOOP("World"); + +//: This comment will be discarded. +Math.sin(1); +//= id_foobar +Math.cos(2); +//~ underflow False +Math.tan(3); + +/* +Not tested for now, because these should perhaps not cause +translation entries to be generated at all; see QTBUG-11843. + +//= qtn_foo +qsTrId("qtn_foo"); +//= qtn_bar +QT_TRID_NOOP("qtn_bar"); +*/ diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro new file mode 100644 index 0000000..d549039 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.js + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.ts.result new file mode 100644 index 0000000..f7aa9a7 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.ts.result @@ -0,0 +1,30 @@ + + + + + FooContext + + + Hello + + + + + World + + + + + main + + + Hello + + + + + World + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs3/main.js b/tests/auto/linguist/lupdate/testdata/good/parsejs3/main.js new file mode 100644 index 0000000..8d4a8b5 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs3/main.js @@ -0,0 +1,40 @@ +({ foo: 123, }) // Trailing comma shouldn't cause syntax error and bailout + +({ foo: qsTr("one") }) + +({ foo: qsTr("two"), }) + +({ foo: qsTranslate("FooContext", "one") }) + +({ foo: qsTranslate("FooContext", "two"), }) + +({ foo: qsTrId("qtn_foo_bar") }) + +({ foo: qsTrId("qtn_bar_baz"), }) + +({ foo: { bar: 123, }, baz: qsTr("three"), }) + +({ foo: { bar: 123, }, baz: qsTranslate("FooContext", "three"), }) + +({ + firstGuy: { + age: 50, + //: First guy first name + firstName: qsTr("Frits"), + //: First guy middle name + middleName: qsTranslate("BarContext", "Joe"), + //% "First guy last name" + lastName: qsTrId("qtn_first_guy_last_name"), + weight: 100, // Uh-oh, trailing comma! + }, + secondGuy: { + age: 70, + //: Second guy first name + firstName: qsTr("Bob"), + //: Second guy middle name + middleName: qsTranslate("BarContext", "Steve"), + //% "Second guy last name" + lastName: qsTrId("qtn_second_guy_last_name"), + weight: 120, // Uh-oh, trailing comma! + }, +}) diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.pro new file mode 100644 index 0000000..d549039 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.js + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.ts.result new file mode 100644 index 0000000..7c28edf --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.ts.result @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + First guy last name + + + + + Second guy last name + + + + + BarContext + + + Joe + First guy middle name + + + + + Steve + Second guy middle name + + + + + FooContext + + + one + + + + + two + + + + + three + + + + + main + + + one + + + + + two + + + + + three + + + + + Frits + First guy first name + + + + + Bob + Second guy first name + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs4/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/parsejs4/expectedoutput.txt new file mode 100644 index 0000000..3fa2b6e --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs4/expectedoutput.txt @@ -0,0 +1,19 @@ +.*/lupdate/testdata/good/parsejs4/main.js:32: qsTranslate\(\) requires at least two arguments. +.*/lupdate/testdata/good/parsejs4/main.js:33: qsTranslate\(\) requires at least two arguments. +.*/lupdate/testdata/good/parsejs4/main.js:38: QT_TRANSLATE_NOOP\(\) requires at least two arguments. +.*/lupdate/testdata/good/parsejs4/main.js:39: QT_TRANSLATE_NOOP\(\) requires at least two arguments. +.*/lupdate/testdata/good/parsejs4/main.js:44: qsTr\(\) requires at least one argument. +.*/lupdate/testdata/good/parsejs4/main.js:47: QT_TR_NOOP\(\) requires at least one argument. +.*/lupdate/testdata/good/parsejs4/main.js:50: qsTrId\(\) requires at least one argument. +.*/lupdate/testdata/good/parsejs4/main.js:53: QT_TRID_NOOP\(\) requires at least one argument. +.*/lupdate/testdata/good/parsejs4/main.js:56: Unexpected character in meta string +.*/lupdate/testdata/good/parsejs4/main.js:57: Unexpected character in meta string +.*/lupdate/testdata/good/parsejs4/main.js:58: Unterminated meta string +.*/lupdate/testdata/good/parsejs4/main.js:59: Unterminated meta string +.*/lupdate/testdata/good/parsejs4/main.js:62: //% cannot be used with qsTranslate\(\). Ignoring +.*/lupdate/testdata/good/parsejs4/main.js:64: //% cannot be used with QT_TRANSLATE_NOOP\(\). Ignoring +.*/lupdate/testdata/good/parsejs4/main.js:66: //% cannot be used with qsTr\(\). Ignoring +.*/lupdate/testdata/good/parsejs4/main.js:68: //% cannot be used with QT_TR_NOOP\(\). Ignoring +.*/lupdate/testdata/good/parsejs4/main.js:71: Discarding unconsumed meta data +.*/lupdate/testdata/good/parsejs4/main.js:73: Discarding unconsumed meta data +.*/lupdate/testdata/good/parsejs4/main.js:75: Discarding unconsumed meta data diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs4/main.js b/tests/auto/linguist/lupdate/testdata/good/parsejs4/main.js new file mode 100644 index 0000000..a66833c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs4/main.js @@ -0,0 +1,85 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +.pragma library +.import QtQuick 2.0 as Quick2 + +qsTranslate(); +qsTranslate(10); +qsTranslate(10, 20); +qsTranslate("10", 20); +qsTranslate(10, "20"); + +QT_TRANSLATE_NOOP(); +QT_TRANSLATE_NOOP(10); +QT_TRANSLATE_NOOP(10, 20); +QT_TRANSLATE_NOOP("10", 20); +QT_TRANSLATE_NOOP(10, "20"); + +qsTr(); +qsTr(10); + +QT_TR_NOOP(); +QT_TR_NOOP(10); + +qsTrId(); +qsTrId(10); + +QT_TRID_NOOP(); +QT_TRID_NOOP(10); + +//% This is wrong +//% "This is not wrong" This is wrong +//% "I forgot to close the meta string +//% "Being evil \ + +//% "Should cause a warning" +qsTranslate("FooContext", "Hello"); +//% "Should cause a warning" +QT_TRANSLATE_NOOP("FooContext", "World"); +//% "Should cause a warning" +qsTr("Hello"); +//% "Should cause a warning" +QT_TR_NOOP("World"); + +//: This comment will be discarded. +Math.sin(1); +//= id_foobar +Math.cos(2); +//~ underflow False +Math.tan(3); + +/* +Not tested for now, because these should perhaps not cause +translation entries to be generated at all; see QTBUG-11843. + +//= qtn_foo +qsTrId("qtn_foo"); +//= qtn_bar +QT_TRID_NOOP("qtn_bar"); +*/ diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs4/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejs4/project.pro new file mode 100644 index 0000000..d549039 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs4/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.js + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs4/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsejs4/project.ts.result new file mode 100644 index 0000000..e22d5da --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejs4/project.ts.result @@ -0,0 +1,30 @@ + + + + + FooContext + + + Hello + + + + + World + + + + + main + + + Hello + + + + + World + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejscontexts/main.js b/tests/auto/linguist/lupdate/testdata/good/parsejscontexts/main.js new file mode 100644 index 0000000..aa510c1 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejscontexts/main.js @@ -0,0 +1,29 @@ +// No context specified, default should be used. +qsTr("One"); +QT_TR_NOOP("Two"); + +// TRANSLATOR Foo +qsTr("Three"); +QT_TR_NOOP("Four"); + +// TRANSLATOR Bar +qsTr("Five"); + +/* + TRANSLATOR Baz + This is a comment to the translator. +*/ +QT_TR_NOOP("Six"); + +// TRANSLATOR Foo.Bar +qsTr("Seven"); + +/* TRANSLATOR Bar::Baz */ +QT_TR_NOOP("Eight"); + +// qsTranslate() context is not affected. +qsTranslate("Foo", "Nine"); + +// Empty context. +// TRANSLATOR +qsTr("Ten"); diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejscontexts/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejscontexts/project.pro new file mode 100644 index 0000000..d549039 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejscontexts/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.js + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejscontexts/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsejscontexts/project.ts.result new file mode 100644 index 0000000..e36dbe4 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsejscontexts/project.ts.result @@ -0,0 +1,81 @@ + + + + + + + + Ten + + + + + Bar + + + Five + + + + + Bar::Baz + + + Eight + + + + + Baz + + + + This is a comment to the translator. + + + + + Six + + + + + Foo + + + Three + + + + + Four + + + + + Nine + + + + + Foo.Bar + + + Seven + + + + + main + + + One + + + + + Two + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parseobjc/main.mm b/tests/auto/linguist/lupdate/testdata/good/parseobjc/main.mm new file mode 100644 index 0000000..4a2fd89 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseobjc/main.mm @@ -0,0 +1,51 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +@interface NSObject +@end + +@interface Foo : NSObject +@property (nonatomic, retain) NSObject *child; +- (bool)someMethodWithArg:(NSObject*)child andAnotherArg:(int)age; +@end + +@implementation Foo +- (bool)someMethodWithArg:(NSObject*)child andAnotherArg:(int)age +{ + QCoreApplication::translate("Biz", "Baz"); + return self.child == child && age == 42; +} +@end + +int main() +{ + QCoreApplication::translate("Foo", "Bar"); + return 0; +} diff --git a/tests/auto/linguist/lupdate/testdata/good/parseobjc/project.pro b/tests/auto/linguist/lupdate/testdata/good/parseobjc/project.pro new file mode 100644 index 0000000..e9d4e1e --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseobjc/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.mm + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parseobjc/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parseobjc/project.ts.result new file mode 100644 index 0000000..675d164 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseobjc/project.ts.result @@ -0,0 +1,20 @@ + + + + + Biz + + + Baz + + + + + Foo + + + Bar + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parsepython/main.py b/tests/auto/linguist/lupdate/testdata/good/parsepython/main.py new file mode 100644 index 0000000..6375ff4 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsepython/main.py @@ -0,0 +1,85 @@ +from pathlib import Path +import sys + +from PySide6.QtCore import (QItemSelection, QLibraryInfo, QLocale, QTranslator, + Qt, Slot) +from PySide6.QtWidgets import (QAbstractItemView, QApplication, QListWidget, + QMainWindow, QWidget) + + +import linguist_rc + + +class Window(QMainWindow): + def __init__(self): + super().__init__() + #: File menu + file_menu = self.menuBar().addMenu(self.tr("&File")) + #= quit_id + quit_action = file_menu.addAction(self.tr("Quit")) + quit_action.setShortcut(self.tr("CTRL+Q")) + quit_action.triggered.connect(self.close) + help_menu = self.menuBar().addMenu(self.tr("&Help")) + about_qt_action = help_menu.addAction(self.tr("About Qt")) + about_qt_action.triggered.connect(qApp.aboutQt) + + self._list_widget = QListWidget() + self._list_widget.setSelectionMode(QAbstractItemView.MultiSelection) + self._list_widget.selectionModel().selectionChanged.connect(self.selection_changed) + self._list_widget.addItem("C++") + self._list_widget.addItem("Java") + self._list_widget.addItem("Python") + self.setCentralWidget(self._list_widget) + + @Slot(QItemSelection, QItemSelection) + def selection_changed(self, selected, deselected): + count = len(self._list_widget.selectionModel().selectedRows()) + message = self.tr("%n language(s) selected", "", count) + self.statusBar().showMessage(message) + + def test_translate_trailing_comma_behavior(self): + self.translate("CONTEXT", + "SOME TEXT, NO COMMENT, TRAILING COMMA", + ) + self.translate("CONTEXT", + "SOME TEXT", + "A COMMENT, NO TRAILING COMMA" + ) + self.translate("CONTEXT", + "SOME MORE TEXT", + "A COMMENT WITH A TRAILING COMMA", + ) + self.translate("CONTEXT", + "EVEN MORE TEXT", + "A COMMENT WITH PLURALIZATION", + 42 + ) + self.translate("CONTEXT", + "YET MORE TEXT", + "A COMMENT WITH PLURALIZATION AND A TRAILING COMMA", + 42, + ) + self.translate("CONTEXT", + "SOME TEXT, SHOULD NOT BE EXTRACTED", + "A COMMENT WITH PLURALIZATION AND A TRAILING COMMA AND GARBAGE", + 42, + "THIS SHOULD NOT WORK" + ) + + + +if __name__ == '__main__': + app = QApplication(sys.argv) + + path = QLibraryInfo.location(QLibraryInfo.TranslationsPath) + translator = QTranslator(app) + if translator.load(QLocale.system(), 'qtbase_', '', path): + app.installTranslator(translator) + translator = QTranslator(app) + path = ':/translations' + if translator.load(QLocale.system(), 'example_', '', path): + app.installTranslator(translator) + + window = Window() + window.show() + sys.exit(app.exec()) diff --git a/tests/auto/linguist/lupdate/testdata/good/parsepython/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsepython/project.pro new file mode 100644 index 0000000..ed8aba5 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsepython/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.py + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parsepython/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsepython/project.ts.result new file mode 100644 index 0000000..f081bc2 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parsepython/project.ts.result @@ -0,0 +1,76 @@ + + + + + CONTEXT + + + SOME TEXT, NO COMMENT, TRAILING COMMA + + + + + SOME TEXT + A COMMENT, NO TRAILING COMMA + + + + + SOME MORE TEXT + A COMMENT WITH A TRAILING COMMA + + + + + EVEN MORE TEXT + A COMMENT WITH PLURALIZATION + + + + + + + YET MORE TEXT + A COMMENT WITH PLURALIZATION AND A TRAILING COMMA + + + + + + + Window + + + &File + File menu + + + + + Quit + + + + + CTRL+Q + + + + + &Help + + + + + About Qt + + + + + %n language(s) selected + + + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml b/tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml new file mode 100644 index 0000000..c966fa1 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml @@ -0,0 +1,100 @@ +import QtQuick 1.0 + +QtObject { + function translate() { + qsTr("One"); + qsTranslate("FooContext", "Two"); + + var greeting_strings = [ + QT_TR_NOOP("Hello"), + QT_TRANSLATE_NOOP("FooContext", "Goodbye") + ]; + + qsTr("One", "not the same one"); + + //: My first comment. + qsTr("See comment"); + + //: My second comment. + qsTranslate("BarContext", "See other comment"); + + //: My third comment + //: spans two lines. + qsTr("The comment explains it all"); + + //: My fourth comment + //: spans a whopping + //: three lines. + qsTranslate("BazContext", "It should be clear by now"); + + /*: C-style comment. */ + qsTr("I love C++"); + + /*: Another C-style comment. */ + qsTranslate("FooContext", "I really love C++"); + + /*: C-style comment, followed by */ + /*: another one. */ + qsTr("Qt is the best"); + + /*: Another C-style comment, followed by */ + /*: yet another one. */ + qsTranslate("BarContext", "Qt is the very best"); + + // This comment doesn't have any effect. + qsTr("The comment had no effect"); + + // This comment doesn't have any effect either. + qsTranslate("BazContext", "The comment had no effect, really"); + + /* This C-style comment doesn't have any effect. */ + qsTr("No comment to your comment"); + + /* This C-style comment doesn't have any effect either. */ + qsTranslate("FooContext", "I refuse to comment on that"); + + //= id_foo + qsTr("This string has an identifier"); + + //= id_bar + qsTranslate("BarContext", "This string also has an identifier"); + + //~ loc-blank False + qsTr("This string has meta-data"); + + //~ loc-layout_id foo_dialog + qsTranslate("BazContext", "This string also has meta-data"); + + // This comment is to be ignored. + //: This is a comment for the translator. + //= id_baz + //~ foo 123 + //~ magic-stuff This means something special. + qsTr("This string has a lot of information"); + + // This comment is also to be ignored. + //: This is another comment for the translator. + //= id_babar + //~ foo-bar Important stuff + //~ needle-in-haystack Found + //~ overflow True + qsTranslate("FooContext", "This string has even more information"); + + qsTr("This string has disambiguation", "Disambiguation"); + + qsTranslate("BarContext", "This string also has disambiguation", "Another disambiguation"); + + qsTr("This string contains plurals", "", 10); + + qsTrId("qtn_foo_bar"); + + var more_greeting_strings = [ QT_TRID_NOOP("qtn_needle"), QT_TRID_NOOP("qtn_haystack") ]; + + //: qsTrId() with comment, meta-data and plurals. + //~ well-tested True + qsTrId("qtn_bar_baz", 10); + + //% "Source text" + qsTrId("qtn_baz_biz"); + } +} diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro b/tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro new file mode 100644 index 0000000..1040e22 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.qml + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqml/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parseqml/project.ts.result new file mode 100644 index 0000000..ce57bd4 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseqml/project.ts.result @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + qsTrId() with comment, meta-data and plurals. + + + + True + + + + Source text + + + + + BarContext + + + See other comment + My second comment. + + + + + Qt is the very best + Another C-style comment, followed by yet another one. + + + + + This string also has an identifier + + + + + This string also has disambiguation + Another disambiguation + + + + + BazContext + + + It should be clear by now + My fourth comment spans a whopping three lines. + + + + + The comment had no effect, really + + + + + This string also has meta-data + + foo_dialog + + + + FooContext + + + Two + + + + + Goodbye + + + + + I really love C++ + Another C-style comment. + + + + + I refuse to comment on that + + + + + This string has even more information + This is another comment for the translator. + + Important stuff + Found + True + + + + main + + + One + + + + + Hello + + + + + One + not the same one + + + + + See comment + My first comment. + + + + + The comment explains it all + My third comment spans two lines. + + + + + I love C++ + C-style comment. + + + + + Qt is the best + C-style comment, followed by another one. + + + + + The comment had no effect + + + + + No comment to your comment + + + + + This string has an identifier + + + + + This string has meta-data + + False + + + + This string has a lot of information + This is a comment for the translator. + + 123 + This means something special. + + + + This string has disambiguation + Disambiguation + + + + + This string contains plurals + + + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqml2/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/parseqml2/expectedoutput.txt new file mode 100644 index 0000000..a2b683f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseqml2/expectedoutput.txt @@ -0,0 +1,19 @@ +.*/lupdate/testdata/good/parseqml2/main.qml:31: qsTranslate\(\) requires at least two arguments. +.*/lupdate/testdata/good/parseqml2/main.qml:32: qsTranslate\(\) requires at least two arguments. +.*/lupdate/testdata/good/parseqml2/main.qml:37: QT_TRANSLATE_NOOP\(\) requires at least two arguments. +.*/lupdate/testdata/good/parseqml2/main.qml:38: QT_TRANSLATE_NOOP\(\) requires at least two arguments. +.*/lupdate/testdata/good/parseqml2/main.qml:43: qsTr\(\) requires at least one argument. +.*/lupdate/testdata/good/parseqml2/main.qml:46: QT_TR_NOOP\(\) requires at least one argument. +.*/lupdate/testdata/good/parseqml2/main.qml:49: qsTrId\(\) requires at least one argument. +.*/lupdate/testdata/good/parseqml2/main.qml:52: QT_TRID_NOOP\(\) requires at least one argument. +.*/lupdate/testdata/good/parseqml2/main.qml:55: Unexpected character in meta string +.*/lupdate/testdata/good/parseqml2/main.qml:56: Unexpected character in meta string +.*/lupdate/testdata/good/parseqml2/main.qml:57: Unterminated meta string +.*/lupdate/testdata/good/parseqml2/main.qml:58: Unterminated meta string +.*/lupdate/testdata/good/parseqml2/main.qml:61: //% cannot be used with qsTranslate\(\). Ignoring +.*/lupdate/testdata/good/parseqml2/main.qml:63: //% cannot be used with QT_TRANSLATE_NOOP\(\). Ignoring +.*/lupdate/testdata/good/parseqml2/main.qml:65: //% cannot be used with qsTr\(\). Ignoring +.*/lupdate/testdata/good/parseqml2/main.qml:67: //% cannot be used with QT_TR_NOOP\(\). Ignoring +.*/lupdate/testdata/good/parseqml2/main.qml:70: Discarding unconsumed meta data +.*/lupdate/testdata/good/parseqml2/main.qml:72: Discarding unconsumed meta data +.*/lupdate/testdata/good/parseqml2/main.qml:74: Discarding unconsumed meta data diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqml2/main.qml b/tests/auto/linguist/lupdate/testdata/good/parseqml2/main.qml new file mode 100644 index 0000000..5ba5b16 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseqml2/main.qml @@ -0,0 +1,88 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +import QtQuick 1.0; QtObject { +function translate() { +qsTranslate(); +qsTranslate(10); +qsTranslate(10, 20); +qsTranslate("10", 20); +qsTranslate(10, "20"); + +QT_TRANSLATE_NOOP(); +QT_TRANSLATE_NOOP(10); +QT_TRANSLATE_NOOP(10, 20); +QT_TRANSLATE_NOOP("10", 20); +QT_TRANSLATE_NOOP(10, "20"); + +qsTr(); +qsTr(10); + +QT_TR_NOOP(); +QT_TR_NOOP(10); + +qsTrId(); +qsTrId(10); + +QT_TRID_NOOP(); +QT_TRID_NOOP(10); + +//% This is wrong +//% "This is not wrong" This is wrong +//% "I forgot to close the meta string +//% "Being evil \ + +//% "Should cause a warning" +qsTranslate("FooContext", "Hello"); +//% "Should cause a warning" +QT_TRANSLATE_NOOP("FooContext", "World"); +//% "Should cause a warning" +qsTr("Hello"); +//% "Should cause a warning" +QT_TR_NOOP("World"); + +//: This comment will be discarded. +Math.sin(1); +//= id_foobar +Math.cos(2); +//~ underflow False +Math.tan(3); + +/* +Not tested for now, because these should perhaps not cause +translation entries to be generated at all; see QTBUG-11843. + +//= qtn_foo +qsTrId("qtn_foo"); +//= qtn_bar +QT_TRID_NOOP("qtn_bar"); +*/ + +} + +} diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqml2/project.pro b/tests/auto/linguist/lupdate/testdata/good/parseqml2/project.pro new file mode 100644 index 0000000..1040e22 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseqml2/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.qml + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqml2/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parseqml2/project.ts.result new file mode 100644 index 0000000..4ed02e5 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseqml2/project.ts.result @@ -0,0 +1,30 @@ + + + + + FooContext + + + Hello + + + + + World + + + + + main + + + Hello + + + + + World + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqrc/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parseqrc/main.cpp new file mode 100644 index 0000000..b69f968 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseqrc/main.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello world"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqrc/main.js b/tests/auto/linguist/lupdate/testdata/good/parseqrc/main.js new file mode 100644 index 0000000..b2e1dd9 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseqrc/main.js @@ -0,0 +1 @@ +qsTr("From JavaScript file"); diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqrc/main.qml b/tests/auto/linguist/lupdate/testdata/good/parseqrc/main.qml new file mode 100644 index 0000000..854501e --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseqrc/main.qml @@ -0,0 +1,35 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +import QtQuick 1.0 + +QtObject { + function translate() { + qsTr("From QML file in root"); + } +} diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqrc/project.pro b/tests/auto/linguist/lupdate/testdata/good/parseqrc/project.pro new file mode 100644 index 0000000..0dbc9e9 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseqrc/project.pro @@ -0,0 +1,9 @@ + +SOURCES += main.cpp + +RESOURCES += project.qrc +RESOURCES += main.qml + +TRANSLATIONS = project.ts + +CONFIG += qtquickcompiler diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqrc/project.qrc b/tests/auto/linguist/lupdate/testdata/good/parseqrc/project.qrc new file mode 100644 index 0000000..87bacf2 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseqrc/project.qrc @@ -0,0 +1,5 @@ + + + main.js + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqrc/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parseqrc/project.ts.result new file mode 100644 index 0000000..a6002ad --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseqrc/project.ts.result @@ -0,0 +1,25 @@ + + + + + QApplication + + + Hello world + + + + + main + + + From JavaScript file + + + + + From QML file in root + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parseui/project.pro b/tests/auto/linguist/lupdate/testdata/good/parseui/project.pro new file mode 100644 index 0000000..fa56972 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseui/project.pro @@ -0,0 +1,3 @@ +FORMS += project.ui + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/parseui/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parseui/project.ts.result new file mode 100644 index 0000000..80edae5 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseui/project.ts.result @@ -0,0 +1,17 @@ + + + + + FindDialog + + + Qt Assistant - Finn text + + + + + Finn tekst - Der Bjørn möchte auch mal. + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/parseui/project.ui b/tests/auto/linguist/lupdate/testdata/good/parseui/project.ui new file mode 100644 index 0000000..97fbeb2 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/parseui/project.ui @@ -0,0 +1,35 @@ + + +* Copyright (C) 2016 The Qt Company Ltd. +* SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + FindDialog + + + + 0 + 0 + 400 + 172 + + + + Qt Assistant - Finn text + + + Finn tekst - Der Bjørn möchte auch mal. + + + + comboFind + checkWords + checkCase + radioForward + radioBackward + findButton + closeButton + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/prefix/main.cpp b/tests/auto/linguist/lupdate/testdata/good/prefix/main.cpp new file mode 100644 index 0000000..f1992ea --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/prefix/main.cpp @@ -0,0 +1,56 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "main.h" + +QString foo() +{ + return QCoreApplication::translate("Foo","XXX","YYY"); +} + +Foo::Foo() +{ + tr("CTOR"); +} + +void Foo::bar() +{ + tr("BAR"); +} + +class BitFields : public QObject +{ + int bits : 20; + QString str = tr("text BitFields"); +}; + +Bibi::Bibi() +{ + //int bits : 32; + tr("text Bibi"); + Babebi::tr("text Babebi"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/prefix/main.h b/tests/auto/linguist/lupdate/testdata/good/prefix/main.h new file mode 100644 index 0000000..6b2aab5 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/prefix/main.h @@ -0,0 +1,48 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +class Foo +{ + Q_OBJECT + Foo(); + void bar(); +}; + +class Bibi +{ + Q_OBJECT + Bibi(); + +}; + +class Babebi +{ +Q_OBJECT +}; + diff --git a/tests/auto/linguist/lupdate/testdata/good/prefix/project.pro b/tests/auto/linguist/lupdate/testdata/good/prefix/project.pro new file mode 100644 index 0000000..759bea0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/prefix/project.pro @@ -0,0 +1,3 @@ +SOURCES = main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/prefix/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/prefix/project.ts.result new file mode 100644 index 0000000..e4f347d --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/prefix/project.ts.result @@ -0,0 +1,47 @@ + + + + + Babebi + + + text Babebi + + + + + Bibi + + + text Bibi + + + + + BitFields + + + text BitFields + + + + + Foo + + + XXX + YYY + + + + + CTOR + + + + + BAR + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/main.cpp b/tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/main.cpp new file mode 100644 index 0000000..f1992ea --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/main.cpp @@ -0,0 +1,56 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "main.h" + +QString foo() +{ + return QCoreApplication::translate("Foo","XXX","YYY"); +} + +Foo::Foo() +{ + tr("CTOR"); +} + +void Foo::bar() +{ + tr("BAR"); +} + +class BitFields : public QObject +{ + int bits : 20; + QString str = tr("text BitFields"); +}; + +Bibi::Bibi() +{ + //int bits : 32; + tr("text Bibi"); + Babebi::tr("text Babebi"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/main.h b/tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/main.h new file mode 100644 index 0000000..6b2aab5 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/main.h @@ -0,0 +1,48 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +class Foo +{ + Q_OBJECT + Foo(); + void bar(); +}; + +class Bibi +{ + Q_OBJECT + Bibi(); + +}; + +class Babebi +{ +Q_OBJECT +}; + diff --git a/tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/project.pro b/tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/project.pro new file mode 100644 index 0000000..759bea0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/project.pro @@ -0,0 +1,3 @@ +SOURCES = main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/project.ts.result new file mode 100644 index 0000000..5af02f7 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/prefix_clang_parser/project.ts.result @@ -0,0 +1,47 @@ + + + + + Babebi + + + text Babebi + + + + + Bibi + + + text Bibi + + + + + Foo + + + XXX + YYY + + + + + CTOR + + + + + BAR + + + + + QObject + + + text BitFields + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/preprocess/main.cpp b/tests/auto/linguist/lupdate/testdata/good/preprocess/main.cpp new file mode 100644 index 0000000..0ad9cee --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/preprocess/main.cpp @@ -0,0 +1,65 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello world", "Platform-independent file"); +} + + + + +void func2() { +#ifdef Q_OS_WIN + QApplication::tr("Kind", "Windows only, see Type"); +#else + QApplication::tr("Type", "Not used on windows, see Kind"); +#endif + +} + + + +void stringconcatenation() +{ + QApplication::tr("One string," + " three" + " lines"); + + QApplication::tr("a backslash followed by newline \ +should be ignored \ +and the next line should be syntactically considered to be \ +on the same line"); + +} + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/preprocess/project.pro b/tests/auto/linguist/lupdate/testdata/good/preprocess/project.pro new file mode 100644 index 0000000..c96859b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/preprocess/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/preprocess/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/preprocess/project.ts.result new file mode 100644 index 0000000..1e2b223 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/preprocess/project.ts.result @@ -0,0 +1,35 @@ + + + + + QApplication + + + Hello world + Platform-independent file + + + + + Kind + Windows only, see Type + + + + + Type + Not used on windows, see Kind + + + + + One string, three lines + + + + + a backslash followed by newline should be ignored and the next line should be syntactically considered to be on the same line + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/expectedoutput.txt new file mode 100644 index 0000000..fe7615b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/expectedoutput.txt @@ -0,0 +1 @@ +.*[/\\]lupdate[/\\]testdata[/\\]good[/\\]preprocess_clang_parser[/\\]main.cpp Code with translation information has been skipped between lines .. and .. diff --git a/tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/main.cpp b/tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/main.cpp new file mode 100644 index 0000000..c7dbb3f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/main.cpp @@ -0,0 +1,62 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello world", "Platform-independent file"); +} + + + + +void func2() { +#ifdef Q_OS_WIN + QApplication::tr("KindType", "The other option has been skipped"); +#else + QApplication::tr("KindType", "The other option has been skipped"); +#endif + +} + + + +void stringconcatenation() +{ + QApplication::tr("One string," + " three" + " lines"); + + QApplication::tr("a backslash followed by newline \ +should be ignored \ +and the next line should be syntactically considered to be \ +on the same line"); + +} diff --git a/tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/project.pro b/tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/project.pro new file mode 100644 index 0000000..c96859b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.cpp + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/project.ts.result new file mode 100644 index 0000000..666dc0f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/preprocess_clang_parser/project.ts.result @@ -0,0 +1,29 @@ +.* + + + + QApplication + + + Hello world + Platform-independent file + + + + + KindType + The other option has been skipped + + + + + One string, three lines + + + + + a backslash followed by newline should be ignored and the next line should be syntactically considered to be on the same line + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/features/default_pre.prf b/tests/auto/linguist/lupdate/testdata/good/proparsing/features/default_pre.prf new file mode 100644 index 0000000..1163398 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/features/default_pre.prf @@ -0,0 +1,2 @@ +load(default_pre) +error("utter failure!") diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/main.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsing/main.cpp new file mode 100644 index 0000000..55c6e15 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/main.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#include + +void func1() { + QApplication::tr("Hello world", "Platform-independent file"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/main.qml b/tests/auto/linguist/lupdate/testdata/good/proparsing/main.qml new file mode 100644 index 0000000..f9aaf2a --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/main.qml @@ -0,0 +1,35 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +import QtQuick 1.0 + +QtObject { + function translate() { + qsTr("From QML file in root"); + } +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/main_mac.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsing/main_mac.cpp new file mode 100644 index 0000000..46fd626 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/main_mac.cpp @@ -0,0 +1,35 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#include + +void func1() { + QApplication::tr("Hello macworld", "mac-only file"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/main_unix.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsing/main_unix.cpp new file mode 100644 index 0000000..9b04590 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/main_unix.cpp @@ -0,0 +1,38 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#include + +void func1() { + QApplication::tr("Hello unixworld", "unix-only file"); +} + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/main_win.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsing/main_win.cpp new file mode 100644 index 0000000..8c63e2f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/main_win.cpp @@ -0,0 +1,38 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#include + +void func1() { + QApplication::tr("Hello windowsworld", "Windows-only file"); +} + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsing/project.pro new file mode 100644 index 0000000..c6a970f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/project.pro @@ -0,0 +1,36 @@ +# Try to reference a variable that does not exist: +MYVAR=$$THIS_VARIABLE_IS_NOT_DEFINED + +QT += widgets + +SOURCES += main.cpp + +win32 { + SOURCES += main_win.cpp +} + +unix { + SOURCES += main_unix.cpp +} + +mac { + SOURCES += main_mac.cpp +} + +SOURCES += wildcard/main*.cpp \ +# yadiyada it should also parse the next line + wildcard*.cpp + + +VPATH = vpaths/dependpath + +# The purpose of this test is to test expansion of environment variables, +# and to test if the VPATH variable is considered correctly. +if (exists($$member($$(PATH), 0))) { + SOURCES += main_dependpath.cpp +} + +inst.files = qml *.qml +INSTALLS += inst + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/proparsing/project.ts.result new file mode 100644 index 0000000..fb9cc77 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/project.ts.result @@ -0,0 +1,80 @@ + + + + + QApplication + + + Hello world + Platform-independent file + + + + + Hello macworld + mac-only file + + + + + Hello unixworld + unix-only file + + + + + Hello windowsworld + Windows-only file + + + + + Hello world + wildcard/main1.cpp + + + + + Hello world + wildcard/main2.cpp + + + + + Hello world + wildcard1.cpp + + + + + Hello world + wildcard99.cpp + + + + + QCoreApplication + + + Hello from a VPATH + See if the VPATH thing works + + + + + main + + + From QML file in root + + + + + notmain + + + From QML file in qml + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/qml/excluded.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsing/qml/excluded.cpp new file mode 100644 index 0000000..2716b75 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/qml/excluded.cpp @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +int main(int argc, char **argv) +{ + QString fake = QApplication::tr("fake", "This message will not be collected"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/qml/notmain.qml b/tests/auto/linguist/lupdate/testdata/good/proparsing/qml/notmain.qml new file mode 100644 index 0000000..a111b61 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/qml/notmain.qml @@ -0,0 +1,35 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +import QtQuick 1.0 + +QtObject { + function translate() { + qsTr("From QML file in qml"); + } +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/vpaths/dependpath/main_dependpath.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsing/vpaths/dependpath/main_dependpath.cpp new file mode 100644 index 0000000..49b8f2d --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/vpaths/dependpath/main_dependpath.cpp @@ -0,0 +1,36 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#include + +int main(int argc, char **argv) +{ + QCoreApplication::tr("Hello from a VPATH", "See if the VPATH thing works"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard/main1.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard/main1.cpp new file mode 100644 index 0000000..1f51f3c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard/main1.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#include + +void func1() { + QApplication::tr("Hello world", "wildcard/main1.cpp"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard/mainfile.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard/mainfile.cpp new file mode 100644 index 0000000..7d7241c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard/mainfile.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#include + +void func1() { + QApplication::tr("Hello world", "wildcard/main2.cpp"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard1.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard1.cpp new file mode 100644 index 0000000..3dad2b8 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard1.cpp @@ -0,0 +1,35 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#include + +void func1() { + QApplication::tr("Hello world", "wildcard1.cpp"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard99.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard99.cpp new file mode 100644 index 0000000..8c35e86 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/wildcard99.cpp @@ -0,0 +1,35 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#include + +void func1() { + QApplication::tr("Hello world", "wildcard99.cpp"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/a b/tests/auto/linguist/lupdate/testdata/good/proparsing2/a new file mode 100644 index 0000000..7bb4419 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/a @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "include.h" +QString func() +{ + return QLineEdit::tr("a"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/a.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsing2/a.cpp new file mode 100644 index 0000000..e5d7319 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/a.cpp @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "include.h" +QString func() +{ + return QLineEdit::tr("a.cpp"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/b b/tests/auto/linguist/lupdate/testdata/good/proparsing2/b new file mode 100644 index 0000000..0ce2024 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/b @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "include.h" +QString func() +{ + return QLineEdit::tr("b"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/b.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsing2/b.cpp new file mode 100644 index 0000000..c8e719b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/b.cpp @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "include.h" +QString func() +{ + return QLineEdit::tr("b.cpp"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/e b/tests/auto/linguist/lupdate/testdata/good/proparsing2/e new file mode 100644 index 0000000..7c0be03 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/e @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "include.h" +QString func() +{ + return QLineEdit::tr("e"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/f/g.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsing2/f/g.cpp new file mode 100644 index 0000000..e345b6a --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/f/g.cpp @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "../include.h" +QString func() +{ + return QLineEdit::tr("f/g.cpp"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/files-cc.txt b/tests/auto/linguist/lupdate/testdata/good/proparsing2/files-cc.txt new file mode 100644 index 0000000..5bd8d03 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/files-cc.txt @@ -0,0 +1 @@ +a.cpp b.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/include.h b/tests/auto/linguist/lupdate/testdata/good/proparsing2/include.h new file mode 100644 index 0000000..94e9543 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/include.h @@ -0,0 +1,2 @@ +#include +#include diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.pro new file mode 100644 index 0000000..3dc4208 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.pro @@ -0,0 +1,33 @@ +# This is to test if quoted elements with spaces are treated as elements (and not splitted up due +# to the spaces.) +# It also tries to verify the behaviour of combining quoted and non-quoted elements with literals. +# + +QUOTED = $$quote(variable with spaces) +VERSIONAB = "a.b" +VAB = $$split(VERSIONAB, ".") +V += $$VAB +V += $$QUOTED + +# this is just to make p4 happy with no spaces in filename +SOURCES += $$member(V,0,1) +V2 = $$member(V,2) +V2S = $$split(V2, " ") +SOURCES += $$join(V2S,"_") +message($$SOURCES) +# SOURCES += [a, b, variable_with_spaces] + +LIST = d e f +L2 = x/$$LIST/g.cpp +SOURCES += $$L2 +# SOURCES += [x/d, e, f/g.cpp] + +QUOTEDEXTRA = x/$$QUOTED/z +Q3 = $$split(QUOTEDEXTRA, " ") +SOURCES += $$Q3 +# SOURCES += [x/variable, with, spaces/z] + +win32: SOURCES += $$system(type files-cc.txt) +unix: SOURCES += $$system(cat files-cc.txt) + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.ts.result new file mode 100644 index 0000000..ee333f7 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.ts.result @@ -0,0 +1,62 @@ + + + + + QLineEdit + + + a + + + + + a.cpp + + + + + b + + + + + b.cpp + + + + + e + + + + + f/g.cpp + + + + + spaces/z + + + + + variable with spaces + + + + + with + + + + + x/d + + + + + x/variable + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/spaces/z b/tests/auto/linguist/lupdate/testdata/good/proparsing2/spaces/z new file mode 100644 index 0000000..c1afc62 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/spaces/z @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "../include.h" +QString func() +{ + return QLineEdit::tr("spaces/z"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/variable_with_spaces b/tests/auto/linguist/lupdate/testdata/good/proparsing2/variable_with_spaces new file mode 100644 index 0000000..392e395 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/variable_with_spaces @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "include.h" +QString func() +{ + return QLineEdit::tr("variable with spaces"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/with b/tests/auto/linguist/lupdate/testdata/good/proparsing2/with new file mode 100644 index 0000000..ffffc5b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/with @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "include.h" +QString func() +{ + return QLineEdit::tr("with"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/x/d b/tests/auto/linguist/lupdate/testdata/good/proparsing2/x/d new file mode 100644 index 0000000..decaf8b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/x/d @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "../include.h" +QString func() +{ + return QLineEdit::tr("x/d"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/x/variable b/tests/auto/linguist/lupdate/testdata/good/proparsing2/x/variable new file mode 100644 index 0000000..317ff97 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/x/variable @@ -0,0 +1,32 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include "../include.h" +QString func() +{ + return QLineEdit::tr("x/variable"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/file1.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/file1.cpp new file mode 100644 index 0000000..d19ac42 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/file1.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello world", "top-level wildcard"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/filter.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/filter.cpp new file mode 100644 index 0000000..9523d9b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/filter.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello world", "top-level direct"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.pro new file mode 100644 index 0000000..6bfe751 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.pro @@ -0,0 +1,5 @@ +SOURCES += file*.cpp filter.cpp non-existing.cpp + +include(sub/sub.pri) + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.ts.result new file mode 100644 index 0000000..f5d5092 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.ts.result @@ -0,0 +1,31 @@ + + + + + QApplication + + + Hello world + top-level wildcard + + + + + Hello world + top-level direct + + + + + Hello world + nested wildcard + + + + + Hello world + nested direct + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/sub/sub.pri b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/sub/sub.pri new file mode 100644 index 0000000..a6079f9 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/sub/sub.pri @@ -0,0 +1,3 @@ +VPATH += $$PWD + +SOURCES += sub/subfile?.cpp subfilter.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/sub/subfile1.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/sub/subfile1.cpp new file mode 100644 index 0000000..8196f93 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/sub/subfile1.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello world", "nested wildcard"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/sub/subfilter.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/sub/subfilter.cpp new file mode 100644 index 0000000..13cfbbb --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/sub/subfilter.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello world", "nested direct"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/common/common.pri b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/common/common.pri new file mode 100644 index 0000000..ba3169d --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/common/common.pri @@ -0,0 +1 @@ +include(main.pri) diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/common/main.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/common/main.cpp new file mode 100644 index 0000000..b2f21af --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/common/main.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello world", "Platform-independent file"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/common/main.pri b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/common/main.pri new file mode 100644 index 0000000..a8d4a2b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/common/main.pri @@ -0,0 +1,5 @@ +TEMPLATE = app +LANGUAGE = C++ + +SOURCES += $$PWD/main.cpp + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/mac/mac.pri b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/mac/mac.pri new file mode 100644 index 0000000..549eab5 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/mac/mac.pri @@ -0,0 +1,5 @@ +TEMPLATE = app +LANGUAGE = C++ + +SOURCES += $$PWD/main_mac.cpp + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/mac/main_mac.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/mac/main_mac.cpp new file mode 100644 index 0000000..b0caf81 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/mac/main_mac.cpp @@ -0,0 +1,38 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello macworld", "mac-only file"); +} + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.pro new file mode 100644 index 0000000..73c6d19 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.pro @@ -0,0 +1,10 @@ +include(win/win.pri) +more = mac unix +for(dir, more): \ + include($$dir/$${dir}.pri) +include (common/common.pri) # Important: keep the space before the '(' +include(relativity/relativity.pri) + +message($$SOURCES) + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.ts.result new file mode 100644 index 0000000..79ada79 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.ts.result @@ -0,0 +1,37 @@ + + + + + QApplication + + + Hello world + Platform-independent file + + + + + Hello macworld + mac-only file + + + + + relativity.pri + Platform-independent file + + + + + Hello unixworld + unix-only file + + + + + Hello windowsworld + Windows-only file + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/relativity.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/relativity.cpp new file mode 100644 index 0000000..53a3802 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/relativity.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("relativity.pri", "Platform-independent file"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/relativity.pri b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/relativity.pri new file mode 100644 index 0000000..42658f0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/relativity.pri @@ -0,0 +1,3 @@ +# Lets test how well the proparser can walk the tree of includes... + +include(sub/sub.pri) diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/sub/sub.pri b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/sub/sub.pri new file mode 100644 index 0000000..17055a7 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/sub/sub.pri @@ -0,0 +1 @@ +include(../sub2/sub2.pri) diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/sub2/sub2.pri b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/sub2/sub2.pri new file mode 100644 index 0000000..e2876b1 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/relativity/sub2/sub2.pri @@ -0,0 +1,2 @@ +SOURCES += $$PWD/../relativity.cpp + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/unix/main_unix.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/unix/main_unix.cpp new file mode 100644 index 0000000..5ea72cd --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/unix/main_unix.cpp @@ -0,0 +1,38 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello unixworld", "unix-only file"); +} + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/unix/unix.pri b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/unix/unix.pri new file mode 100644 index 0000000..99777d7 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/unix/unix.pri @@ -0,0 +1,5 @@ +TEMPLATE = app +LANGUAGE = C++ + +SOURCES += $$PWD/main_unix.cpp + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/win/main_win.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/win/main_win.cpp new file mode 100644 index 0000000..b52800f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/win/main_win.cpp @@ -0,0 +1,38 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello windowsworld", "Windows-only file"); +} + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/win/win.pri b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/win/win.pri new file mode 100644 index 0000000..742417c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/win/win.pri @@ -0,0 +1,5 @@ +TEMPLATE = app +LANGUAGE = C++ + +SOURCES += $$PWD/main_win.cpp + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/project.pro new file mode 100644 index 0000000..88f2435 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/project.pro @@ -0,0 +1,2 @@ +TEMPLATE = subdirs +SUBDIRS = sub1 diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/project.ts.result new file mode 100644 index 0000000..4061300 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/project.ts.result @@ -0,0 +1,13 @@ + + + + + QApplication + + + Hello world + Platform-independent file + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/main.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/main.cpp new file mode 100644 index 0000000..b2f21af --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/main.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello world", "Platform-independent file"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/sub1.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/sub1.pro new file mode 100644 index 0000000..df18c5a --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/sub1.pro @@ -0,0 +1,3 @@ +SOURCES += main.cpp + +TRANSLATIONS = ../project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/common.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/common.pro new file mode 100644 index 0000000..28dcadc --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/common.pro @@ -0,0 +1 @@ +SOURCES += main.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/main.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/main.cpp new file mode 100644 index 0000000..b2f21af --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/main.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello world", "Platform-independent file"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/excluded.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/excluded.pro new file mode 100644 index 0000000..28dcadc --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/excluded.pro @@ -0,0 +1 @@ +SOURCES += main.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/main.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/main.cpp new file mode 100644 index 0000000..adba6d7 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/main.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QString fake = QApplication::tr("fake", "This message will not be collected"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/lupdatecmd new file mode 100644 index 0000000..b7e12cc --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/lupdatecmd @@ -0,0 +1 @@ +lupdate project.pro -ts project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/mac.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/mac.pro new file mode 100644 index 0000000..a1863b6 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/mac.pro @@ -0,0 +1 @@ +SOURCES += main_mac.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/main_mac.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/main_mac.cpp new file mode 100644 index 0000000..b0caf81 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/main_mac.cpp @@ -0,0 +1,38 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello macworld", "mac-only file"); +} + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.pro new file mode 100644 index 0000000..576729f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.pro @@ -0,0 +1,8 @@ +TEMPLATE = subdirs +comm.subdir = common +SUBDIRS = win mac unix comm + +SUBDIRS += excluded +TR_EXCLUDE = excluded + +SUBDIRS += sub diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.ts.result new file mode 100644 index 0000000..92d633b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.ts.result @@ -0,0 +1,39 @@ + + + + + QApplication + + + Hello windowsworld + Windows-only file + + + + + Hello macworld + mac-only file + + + + + Hello unixworld + unix-only file + + + + + Hello world + Platform-independent file + + + + + nm::Test + + + MyText + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/sub/include/test.h b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/sub/include/test.h new file mode 100644 index 0000000..5765a2a --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/sub/include/test.h @@ -0,0 +1,43 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#include + +namespace nm { + +class Test : public QObject { + Q_OBJECT + +public: + Test(); +}; + +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/sub/src/test.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/sub/src/test.cpp new file mode 100644 index 0000000..526da41 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/sub/src/test.cpp @@ -0,0 +1,39 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +#include "../include/test.h" + +using namespace nm; + +Test::Test() +{ + QString value = tr("MyText"); +} diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/sub/sub.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/sub/sub.pro new file mode 100644 index 0000000..85c2c99 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/sub/sub.pro @@ -0,0 +1,5 @@ +INCLUDEPATH += include + +HEADERS += include/test.h + +SOURCES += src/test.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/main_unix.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/main_unix.cpp new file mode 100644 index 0000000..5ea72cd --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/main_unix.cpp @@ -0,0 +1,38 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello unixworld", "unix-only file"); +} + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/unix.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/unix.pro new file mode 100644 index 0000000..71b1a22 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/unix.pro @@ -0,0 +1 @@ +SOURCES += main_unix.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/main_win.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/main_win.cpp new file mode 100644 index 0000000..b52800f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/main_win.cpp @@ -0,0 +1,38 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello windowsworld", "Windows-only file"); +} + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/win.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/win.pro new file mode 100644 index 0000000..afd7197 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/win.pro @@ -0,0 +1 @@ +SOURCES += main_win.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/recurse_full/expectedoutput.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/recurse_full/lupdatecmd new file mode 100644 index 0000000..40987e2 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full/lupdatecmd @@ -0,0 +1,2 @@ +TRANSLATION: project.ts project_sub.ts +cd ../../subdirs_full diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_full/project.ts.result new file mode 100644 index 0000000..5d923f4 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full/project.ts.result @@ -0,0 +1,20 @@ + + + + + subdir1 + + + minimal test + + + + + subsub1 + + + minimal test + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full/project_sub.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_full/project_sub.ts.result new file mode 100644 index 0000000..df1e385 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full/project_sub.ts.result @@ -0,0 +1,12 @@ + + + + + subsub2 + + + minimal test + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/expectedoutput.txt new file mode 100644 index 0000000..9a0e355 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/expectedoutput.txt @@ -0,0 +1,2 @@ +lupdate warning: TS files from command line will override TRANSLATIONS in .*/project\.pro\. +lupdate warning: TS files from command line prevent recursing into .*/subdir2/subsub2/subsub2\.pro\. diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/lupdatecmd new file mode 100644 index 0000000..33296c3 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/lupdatecmd @@ -0,0 +1,3 @@ +TRANSLATION: project.ts project_sub.ts +cd ../../subdirs_full +lupdate project.pro -ts project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project.ts.result new file mode 100644 index 0000000..5d923f4 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project.ts.result @@ -0,0 +1,20 @@ + + + + + subdir1 + + + minimal test + + + + + subsub1 + + + minimal test + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.before b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.before new file mode 100644 index 0000000..e69de29 diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts/project_sub.ts.result new file mode 100644 index 0000000..e69de29 diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/expectedoutput.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/lupdatecmd new file mode 100644 index 0000000..628acc0 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/lupdatecmd @@ -0,0 +1,2 @@ +cd ../../subdirs_full +lupdate subdir1/subdir1.pro subdir2/subsub1/subsub1.pro -ts project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/project.ts.result new file mode 100644 index 0000000..5d923f4 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_full_ts_join/project.ts.result @@ -0,0 +1,20 @@ + + + + + subdir1 + + + minimal test + + + + + subsub1 + + + minimal test + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/recurse_part/expectedoutput.txt new file mode 100644 index 0000000..fb04e2c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part/expectedoutput.txt @@ -0,0 +1 @@ +lupdate warning: no TS files specified\. Only diagnostics will be produced for '.*/project\.pro'\. diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/recurse_part/lupdatecmd new file mode 100644 index 0000000..3e15bc7 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part/lupdatecmd @@ -0,0 +1,2 @@ +TRANSLATION: project.ts project_sub.ts +cd ../../subdirs_part diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.before new file mode 100644 index 0000000..e69de29 diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_part/project.ts.result new file mode 100644 index 0000000..e69de29 diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part/project_sub.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_part/project_sub.ts.result new file mode 100644 index 0000000..df1e385 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part/project_sub.ts.result @@ -0,0 +1,12 @@ + + + + + subsub2 + + + minimal test + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/expectedoutput.txt new file mode 100644 index 0000000..b904390 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/expectedoutput.txt @@ -0,0 +1 @@ +lupdate warning: TS files from command line prevent recursing into .*/subdir2/subsub2/subsub2\.pro\. diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/lupdatecmd new file mode 100644 index 0000000..41bfcec --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/lupdatecmd @@ -0,0 +1,3 @@ +TRANSLATION: project.ts project_sub.ts +cd ../../subdirs_part +lupdate project.pro -ts project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project.ts.result new file mode 100644 index 0000000..5d923f4 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project.ts.result @@ -0,0 +1,20 @@ + + + + + subdir1 + + + minimal test + + + + + subsub1 + + + minimal test + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.before b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.before new file mode 100644 index 0000000..e69de29 diff --git a/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.result b/tests/auto/linguist/lupdate/testdata/good/recurse_part_ts/project_sub.ts.result new file mode 100644 index 0000000..e69de29 diff --git a/tests/auto/linguist/lupdate/testdata/good/reloutput/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/reloutput/lupdatecmd new file mode 100644 index 0000000..90f609b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/reloutput/lupdatecmd @@ -0,0 +1 @@ +TRANSLATION: translations/project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/reloutput/main.cpp b/tests/auto/linguist/lupdate/testdata/good/reloutput/main.cpp new file mode 100644 index 0000000..f600a10 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/reloutput/main.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello world"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good/reloutput/project.pro b/tests/auto/linguist/lupdate/testdata/good/reloutput/project.pro new file mode 100644 index 0000000..4e2e6ad --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/reloutput/project.pro @@ -0,0 +1,3 @@ +SOURCES += main.cpp + +TRANSLATIONS = translations/project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/reloutput/translations/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/reloutput/translations/project.ts.result new file mode 100644 index 0000000..11ac3c8 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/reloutput/translations/project.ts.result @@ -0,0 +1,12 @@ + + + + + QApplication + + + Hello world + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/lupdatecmd new file mode 100644 index 0000000..f370994 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/lupdatecmd @@ -0,0 +1 @@ +lupdate project.qrc -ts project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/main.js b/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/main.js new file mode 100644 index 0000000..b2e1dd9 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/main.js @@ -0,0 +1 @@ +qsTr("From JavaScript file"); diff --git a/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/main.qml b/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/main.qml new file mode 100644 index 0000000..854501e --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/main.qml @@ -0,0 +1,35 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +import QtQuick 1.0 + +QtObject { + function translate() { + qsTr("From QML file in root"); + } +} diff --git a/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/project.qrc b/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/project.qrc new file mode 100644 index 0000000..c5bf150 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/project.qrc @@ -0,0 +1,6 @@ + + + main.qml + main.js + + diff --git a/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/project.ts.result new file mode 100644 index 0000000..e816110 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/resources_cmdline/project.ts.result @@ -0,0 +1,17 @@ + + + + + main + + + From QML file in root + + + + + From JavaScript file + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/respfile/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/respfile/lupdatecmd new file mode 100644 index 0000000..6f198ab --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/respfile/lupdatecmd @@ -0,0 +1,2 @@ +# Add the command that lupdate should run here. If it can't find anything it will default to +lupdate -silent @sources.lst -ts @tsfiles.lst diff --git a/tests/auto/linguist/lupdate/testdata/good/respfile/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/respfile/project.ts.result new file mode 100644 index 0000000..c2fea70 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/respfile/project.ts.result @@ -0,0 +1,17 @@ + + + + + Dialog2 + + + func1 + + + + + func2 + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/respfile/source1.cpp b/tests/auto/linguist/lupdate/testdata/good/respfile/source1.cpp new file mode 100644 index 0000000..f5bdb60 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/respfile/source1.cpp @@ -0,0 +1,36 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +void Dialog2::func3() +{ + tr("func1"); +} + diff --git a/tests/auto/linguist/lupdate/testdata/good/respfile/source2.cpp b/tests/auto/linguist/lupdate/testdata/good/respfile/source2.cpp new file mode 100644 index 0000000..a9e4f9c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/respfile/source2.cpp @@ -0,0 +1,36 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! + +void Dialog2::func3() +{ + tr("func2"); +} + diff --git a/tests/auto/linguist/lupdate/testdata/good/respfile/sources.lst b/tests/auto/linguist/lupdate/testdata/good/respfile/sources.lst new file mode 100644 index 0000000..430937e --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/respfile/sources.lst @@ -0,0 +1,2 @@ +source1.cpp +source2.cpp diff --git a/tests/auto/linguist/lupdate/testdata/good/respfile/tsfiles.lst b/tests/auto/linguist/lupdate/testdata/good/respfile/tsfiles.lst new file mode 100644 index 0000000..f3eb71f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/respfile/tsfiles.lst @@ -0,0 +1 @@ +project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.pro b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.pro new file mode 100644 index 0000000..fa56972 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.pro @@ -0,0 +1,3 @@ +FORMS += project.ui + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ts.before new file mode 100644 index 0000000..d47409c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ts.before @@ -0,0 +1,16 @@ + + + + FindDialog + + + Test similarity + Test likhet (test1) + + + + Similarity should have kicked in here! + Test likhet (test2) + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ts.result new file mode 100644 index 0000000..79a6e8c --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ts.result @@ -0,0 +1,22 @@ + + + + + FindDialog + + Test similarity + Test likhet (test1) + + + + This should not be considered to be more or less equal to the corresponding one in the TS file. + + + + + Here, similarity should kick in! + Similarity should have kicked in here! + Test likhet (test2) + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ui b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ui new file mode 100644 index 0000000..a5f8e9f --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.ui @@ -0,0 +1,26 @@ + + + + + + FindDialog + + + + This should not be considered to be more or less equal to the corresponding one in the TS file. + + + Here, similarity should kick in! + + + diff --git a/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/lupdatecmd b/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/lupdatecmd new file mode 100644 index 0000000..c5dcb6b --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/lupdatecmd @@ -0,0 +1 @@ +lupdate project.pro -tr-function-alias QT_TRANSLATE_NOOP+=QT_TRANSLATE_NOOP_ALIAS,QT_TRANSLATE_NOOP_UTF8+=QT_TRANSLATE_NOOP_UTF8_ALIAS,QT_TRANSLATE_NOOP3+=QT_TRANSLATE_NOOP3_ALIAS,QT_TRANSLATE_NOOP3_UTF8+=QT_TRANSLATE_NOOP3_UTF8_ALIAS,QT_TRID_NOOP+=QT_TRID_NOOP_ALIAS,Q_DECLARE_TR_FUNCTIONS+=Q_DECLARE_TR_FUNCTIONS_ALIAS,qtTrId+=qtTrId_alias,QT_TR_NOOP+=QT_TR_NOOP_ALIAS,QT_TR_NOOP_UTF8+=QT_TR_NOOP_UTF8_ALIAS,tr+=tr_alias,trUtf8+=trUtf8_alias,translate+=translate_alias,qsTr=MySingletonCustomTranslator.subObject.tr -ts project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/main.cpp b/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/main.cpp new file mode 100644 index 0000000..1013f9e --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/main.cpp @@ -0,0 +1,89 @@ +// Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Stephen Kelly +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#ifndef MYOBJECT_H +#define MYOBJECT_H + +#include + +const char *c_1 = QT_TRANSLATE_NOOP("scope", "string"); +const char *c_2 = QT_TRANSLATE_NOOP_ALIAS("scope", "string_alias"); +const char *c_3 = QT_TRANSLATE_NOOP_UTF8("scope", "utf8_string"); +const char *c_4 = QT_TRANSLATE_NOOP_UTF8_ALIAS("scope", "utf8_string_alias"); +const char *c_5[2] = QT_TRANSLATE_NOOP3("scope", "string_with_comment", "comment"); +const char *c_6[2] = QT_TRANSLATE_NOOP3_ALIAS("scope", "string_with_comment_alias", "comment"); +const char *c_7[2] = QT_TRANSLATE_NOOP3_UTF8("scope", "utf8_string_with_comment", "comment"); +const char *c_8[2] = QT_TRANSLATE_NOOP3_UTF8_ALIAS("scope", "utf8_string_with_comment_alias", "comment"); +const char *c_9 = QT_TRID_NOOP("this_a_id"); +const char *c_10 = QT_TRID_NOOP_ALIAS("this_a_id_alias"); +QString test = qtTrId("yet_another_id"); +QString test_alias = qtTrId_alias("yet_another_id_alias"); + +class Bogus : QObject { + Q_OBJECT + + static const char * const s_strings[]; +}; + +const char * const Bogus::s_strings[] = { + QT_TR_NOOP("this should be in Bogus"), + QT_TR_NOOP_ALIAS("this should be in Bogus Alias"), + QT_TR_NOOP_UTF8("this should be utf8 in Bogus"), + QT_TR_NOOP_UTF8_ALIAS("this should be utf8 in Bogus Alias") +}; + +class MyObject : public QObject +{ + Q_OBJECT + explicit MyObject(QObject *parent = 0) + { + tr("Boo", "nsF::D"); + tr_alias("Boo_alias", "nsB::C"); + tr("utf8_Boo", "nsF::D"); // trUtf8 is now obsolete + trUtf8_alias("utf8_Boo_alias", "nsF::D"); + QCoreApplication::translate("QTranslator", "Simple"); + translate_alias("QTranslator", "Simple with comment alias", "with comment"); + } +}; + +struct NonQObject +{ + Q_DECLARE_TR_FUNCTIONS_ALIAS(NonQObject) + + NonQObject() + { + tr("NonQObject_Boo", "nsF::NonQObject_D"); + tr_alias("NonQObject_Boo_alias", "nsB::NonQObject_C"); + tr("utf_NonQObject_Boo", "nsF::D"); + trUtf8_alias("utf8_NonQObject_Boo_alias", "nsF::D"); + QCoreApplication::translate("NonQObject_QTranslator", "Simple"); + translate_alias("NonQObject_QTranslator", "Simple with comment alias", "with comment"); + } +}; + +#endif diff --git a/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/main.qml b/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/main.qml new file mode 100644 index 0000000..3fd65ce --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/main.qml @@ -0,0 +1,4 @@ +import MyModuleWithSingleton 1.0 +Text { + text: MySingletonCustomTranslator.subObject.tr("xxx") +} diff --git a/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/project.pro b/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/project.pro new file mode 100644 index 0000000..d624cad --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/project.pro @@ -0,0 +1,4 @@ +SOURCES += main.cpp +SOURCES += main.qml + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/project.ts.result new file mode 100644 index 0000000..974c452 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good/tr_function_alias/project.ts.result @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bogus + + + this should be in Bogus + + + + + this should be in Bogus Alias + + + + + this should be utf8 in Bogus + + + + + this should be utf8 in Bogus Alias + + + + + MyObject + + + Boo + nsF::D + + + + + Boo_alias + nsB::C + + + + + utf8_Boo + nsF::D + + + + + utf8_Boo_alias + nsF::D + + + + + NonQObject + + + NonQObject_Boo + nsF::NonQObject_D + + + + + NonQObject_Boo_alias + nsB::NonQObject_C + + + + + utf_NonQObject_Boo + nsF::D + + + + + utf8_NonQObject_Boo_alias + nsF::D + + + + + NonQObject_QTranslator + + + Simple + + + + + Simple with comment alias + with comment + + + + + QTranslator + + + Simple + + + + + Simple with comment alias + with comment + + + + + main + + + xxx + + + + + scope + + + string + + + + + string_alias + + + + + utf8_string + + + + + utf8_string_alias + + + + + string_with_comment + comment + + + + + string_with_comment_alias + comment + + + + + utf8_string_with_comment + comment + + + + + utf8_string_with_comment_alias + comment + + + + diff --git a/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/main.cpp b/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/main.cpp new file mode 100644 index 0000000..b69f968 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/main.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +// IMPORTANT!!!! If you want to add testdata to this file, +// always add it to the end in order to not change the linenumbers of translations!!! +#include + +void func1() { + QApplication::tr("Hello world"); +} + + diff --git a/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/main.js b/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/main.js new file mode 100644 index 0000000..b2e1dd9 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/main.js @@ -0,0 +1 @@ +qsTr("From JavaScript file"); diff --git a/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/main.qml b/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/main.qml new file mode 100644 index 0000000..854501e --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/main.qml @@ -0,0 +1,35 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +import QtQuick 1.0 + +QtObject { + function translate() { + qsTr("From QML file in root"); + } +} diff --git a/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/project.pro b/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/project.pro new file mode 100644 index 0000000..0dbc9e9 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/project.pro @@ -0,0 +1,9 @@ + +SOURCES += main.cpp + +RESOURCES += project.qrc +RESOURCES += main.qml + +TRANSLATIONS = project.ts + +CONFIG += qtquickcompiler diff --git a/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/project.qrc b/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/project.qrc new file mode 100644 index 0000000..87bacf2 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/project.qrc @@ -0,0 +1,5 @@ + + + main.js + + diff --git a/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/project.ts.result b/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/project.ts.result new file mode 100644 index 0000000..a6002ad --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/good_testing_all_fixed/parseqrc/project.ts.result @@ -0,0 +1,25 @@ + + + + + QApplication + + + Hello world + + + + + main + + + From JavaScript file + + + + + From QML file in root + + + + diff --git a/tests/auto/linguist/lupdate/testdata/recursivescan/main.cpp b/tests/auto/linguist/lupdate/testdata/recursivescan/main.cpp new file mode 100644 index 0000000..dca286d --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/recursivescan/main.cpp @@ -0,0 +1,50 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include +#include + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + + QTranslator translator; + translator.load("whitespace"); + app.installTranslator(&translator); + + QObject::tr("\nnewline at the start"); + QObject::tr("newline at the end\n"); + QObject::tr("newline and space at the end\n "); + QObject::tr("space and newline at the end \n"); + QObject::tr("\tTab at the start and newline at the end\n"); + QObject::tr("\n\tnewline and tab at the start"); + QObject::tr(" \tspace and tab at the start"); + QObject::tr(" space_first"); + QObject::tr("space_last "); + return app.exec(); +} diff --git a/tests/auto/linguist/lupdate/testdata/recursivescan/project.ui b/tests/auto/linguist/lupdate/testdata/recursivescan/project.ui new file mode 100644 index 0000000..ee6ea3a --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/recursivescan/project.ui @@ -0,0 +1,36 @@ + + + +* Copyright (C) 2016 The Qt Company Ltd. +* SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + FindDialog + + + + 0 + 0 + 400 + 172 + + + + Qt Assistant - Finn text + + + Finn tekst + + + + comboFind + checkWords + checkCase + radioForward + radioBackward + findButton + closeButton + + + + diff --git a/tests/auto/linguist/lupdate/testdata/recursivescan/sub/filetypes/main.c++ b/tests/auto/linguist/lupdate/testdata/recursivescan/sub/filetypes/main.c++ new file mode 100644 index 0000000..acf574a --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/recursivescan/sub/filetypes/main.c++ @@ -0,0 +1,36 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + QApplication::translate("text/c++", "test"); + return app.exec(); +} diff --git a/tests/auto/linguist/lupdate/testdata/recursivescan/sub/filetypes/main.cpp b/tests/auto/linguist/lupdate/testdata/recursivescan/sub/filetypes/main.cpp new file mode 100644 index 0000000..e3bc622 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/recursivescan/sub/filetypes/main.cpp @@ -0,0 +1,36 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + QApplication::translate("text/cpp", "test"); + return app.exec(); +} diff --git a/tests/auto/linguist/lupdate/testdata/recursivescan/sub/filetypes/main.cxx b/tests/auto/linguist/lupdate/testdata/recursivescan/sub/filetypes/main.cxx new file mode 100644 index 0000000..3dd64fc --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/recursivescan/sub/filetypes/main.cxx @@ -0,0 +1,36 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + QApplication::translate("text/cxx", "test"); + return app.exec(); +} diff --git a/tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp b/tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp new file mode 100644 index 0000000..9ebdace --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp @@ -0,0 +1,60 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + +#include "finddialog.h" +#include "mainwindow.h" +#include "tabbedbrowser.h" +#include "helpwindow.h" + +#include +#include +#include +#include +#include +#include + +FindDialog::FindDialog(MainWindow *parent) + : QDialog(parent) +{ + sb->showMessage(tr("Enter the text you want to find.")); +} + +void FindDialog::doFind(bool forward) +{ + QTextCursor found = browser->document()->find(findExpr, c, flags); + if (found.isNull()) { + if (onceFound) { + if (forward) + statusMessage(tr("Search reached end of the document")); + else + statusMessage(tr("Search reached start of the document")); + } else { + statusMessage(tr( "Text not found" )); + } + } +} diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/project.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/project.pro new file mode 100644 index 0000000..1f744a7 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/project.pro @@ -0,0 +1,4 @@ +TEMPLATE = subdirs +SUBDIRS = subdir1 subdir2/subdir2.pro + +TRANSLATIONS = project.ts diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/main.cpp b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/main.cpp new file mode 100644 index 0000000..41e61bc --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/main.cpp @@ -0,0 +1,33 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +QString foo() +{ + return QCoreApplication::translate("subdir1","minimal test"); +} diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/subdir1.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/subdir1.pro new file mode 100644 index 0000000..28dcadc --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/subdir1.pro @@ -0,0 +1 @@ +SOURCES += main.cpp diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subdir2.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subdir2.pro new file mode 100644 index 0000000..f8d03df --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subdir2.pro @@ -0,0 +1,2 @@ +TEMPLATE = subdirs +SUBDIRS = subsub1 subsub2 diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/main.cpp b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/main.cpp new file mode 100644 index 0000000..e124898 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/main.cpp @@ -0,0 +1,33 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +QString foo() +{ + return QCoreApplication::translate("subsub1","minimal test"); +} diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/subsub1.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/subsub1.pro new file mode 100644 index 0000000..28dcadc --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/subsub1.pro @@ -0,0 +1 @@ +SOURCES += main.cpp diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/main.cpp b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/main.cpp new file mode 100644 index 0000000..a326a02 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/main.cpp @@ -0,0 +1,33 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +QString foo() +{ + return QCoreApplication::translate("subsub2","minimal test"); +} diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro new file mode 100644 index 0000000..ac52577 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro @@ -0,0 +1,3 @@ +SOURCES += main.cpp + +TRANSLATIONS = ../../project_sub.ts diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/project.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/project.pro new file mode 100644 index 0000000..d803c37 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/project.pro @@ -0,0 +1,2 @@ +TEMPLATE = subdirs +SUBDIRS = subdir1 subdir2/subdir2.pro diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/main.cpp b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/main.cpp new file mode 100644 index 0000000..41e61bc --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/main.cpp @@ -0,0 +1,33 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +QString foo() +{ + return QCoreApplication::translate("subdir1","minimal test"); +} diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/subdir1.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/subdir1.pro new file mode 100644 index 0000000..28dcadc --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/subdir1.pro @@ -0,0 +1 @@ +SOURCES += main.cpp diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subdir2.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subdir2.pro new file mode 100644 index 0000000..f8d03df --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subdir2.pro @@ -0,0 +1,2 @@ +TEMPLATE = subdirs +SUBDIRS = subsub1 subsub2 diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/main.cpp b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/main.cpp new file mode 100644 index 0000000..e124898 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/main.cpp @@ -0,0 +1,33 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +QString foo() +{ + return QCoreApplication::translate("subsub1","minimal test"); +} diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/subsub1.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/subsub1.pro new file mode 100644 index 0000000..28dcadc --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/subsub1.pro @@ -0,0 +1 @@ +SOURCES += main.cpp diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/main.cpp b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/main.cpp new file mode 100644 index 0000000..a326a02 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/main.cpp @@ -0,0 +1,33 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + + + + + + + + + + + + + + + + + + + + + + + + + +#include + +QString foo() +{ + return QCoreApplication::translate("subsub2","minimal test"); +} diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro new file mode 100644 index 0000000..ac52577 --- /dev/null +++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro @@ -0,0 +1,3 @@ +SOURCES += main.cpp + +TRANSLATIONS = ../../project_sub.ts diff --git a/tests/auto/linguist/lupdate/tst_lupdate.cpp b/tests/auto/linguist/lupdate/tst_lupdate.cpp new file mode 100644 index 0000000..d8fcf0e --- /dev/null +++ b/tests/auto/linguist/lupdate/tst_lupdate.cpp @@ -0,0 +1,363 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#if CHECK_SIMTEXTH +#include "../shared/simtexth.h" +#endif + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +class tst_lupdate : public QObject +{ + Q_OBJECT +public: + tst_lupdate(); + +private slots: + void good_data(); + void good(); +#if CHECK_SIMTEXTH + void simtexth(); + void simtexth_data(); +#endif + +private: + QString m_cmdLupdate; + QString m_basePath; + + void doCompare(QStringList actual, const QString &expectedFn, bool err); + void doCompare(const QString &actualFn, const QString &expectedFn, bool err); +}; + + +tst_lupdate::tst_lupdate() +{ + QString binPath = QLibraryInfo::path(QLibraryInfo::BinariesPath); + m_cmdLupdate = binPath + QLatin1String("/lupdate"); + m_basePath = QFINDTESTDATA("testdata/"); +} + +static bool prepareMatch(const QString &expect, QString *tmpl, int *require, int *accept) +{ + if (expect.startsWith(QLatin1Char('\\'))) { + *tmpl = expect.mid(1); + *require = *accept = 1; + } else if (expect.startsWith(QLatin1Char('?'))) { + *tmpl = expect.mid(1); + *require = 0; + *accept = 1; + } else if (expect.startsWith(QLatin1Char('*'))) { + *tmpl = expect.mid(1); + *require = 0; + *accept = INT_MAX; + } else if (expect.startsWith(QLatin1Char('+'))) { + *tmpl = expect.mid(1); + *require = 1; + *accept = INT_MAX; + } else if (expect.startsWith(QLatin1Char('{'))) { + int brc = expect.indexOf(QLatin1Char('}'), 1); + if (brc < 0) + return false; + *tmpl = expect.mid(brc + 1); + QString sub = expect.mid(1, brc - 1); + int com = sub.indexOf(QLatin1Char(',')); + bool ok; + if (com < 0) { + *require = *accept = sub.toInt(&ok); + return ok; + } else { + *require = sub.left(com).toInt(); + *accept = sub.mid(com + 1).toInt(&ok); + if (!ok) + *accept = INT_MAX; + return *accept >= *require; + } + } else { + *tmpl = expect; + *require = *accept = 1; + } + return true; +} + +void tst_lupdate::doCompare(QStringList actual, const QString &expectedFn, bool err) +{ + QFile file(expectedFn); + QVERIFY2(file.open(QIODevice::ReadOnly | QIODevice::Text), qPrintable(expectedFn)); + QStringList expected = QString(file.readAll()).split('\n'); + + for (int i = actual.size() - 1; i >= 0; --i) { + if (actual.at(i).startsWith(QLatin1String("Info: creating stash file "))) + actual.removeAt(i); + } + + int ei = 0, ai = 0, em = expected.size(), am = actual.size(); + int oei = 0, oai = 0, oem = em, oam = am; + int require = 0, accept = 0; + QString tmpl; + forever { + if (!accept) { + oei = ei, oai = ai; + if (ei == em) { + if (ai == am) + return; + break; + } + if (!prepareMatch(expected.at(ei++), &tmpl, &require, &accept)) + QFAIL(qPrintable(QString("Malformed expected %1 at %3:%2") + .arg(err ? "output" : "result").arg(ei).arg(expectedFn))); + } + if (ai == am) { + if (require <= 0) { + accept = 0; + continue; + } + break; + } + if (err ? !QRegularExpression(QRegularExpression::anchoredPattern(tmpl)).match(actual.at(ai)).hasMatch() : (actual.at(ai) != tmpl)) { + if (require <= 0) { + accept = 0; + continue; + } + ei--; + require = accept = 0; + forever { + if (!accept) { + oem = em, oam = am; + if (ei == em) + break; + if (!prepareMatch(expected.at(--em), &tmpl, &require, &accept)) + QFAIL(qPrintable(QString("Malformed expected %1 at %3:%2") + .arg(err ? "output" : "result") + .arg(em + 1).arg(expectedFn))); + } + if (ai == am || (err ? !QRegularExpression(QRegularExpression::anchoredPattern(tmpl)).match(actual.at(am - 1)).hasMatch() : + (actual.at(am - 1) != tmpl))) { + if (require <= 0) { + accept = 0; + continue; + } + break; + } + accept--; + require--; + am--; + } + break; + } + accept--; + require--; + ai++; + } + QString diff; + for (int j = qMax(0, oai - 3); j < oai; j++) + diff += actual.at(j) + '\n'; + diff += "<<<<<<< got\n"; + for (int j = oai; j < oam; j++) { + diff += actual.at(j) + '\n'; + if (j >= oai + 5) { + diff += "...\n"; + break; + } + } + diff += "=========\n"; + for (int j = oei; j < oem; j++) { + diff += expected.at(j) + '\n'; + if (j >= oei + 5) { + diff += "...\n"; + break; + } + } + diff += ">>>>>>> expected\n"; + for (int j = oam; j < qMin(oam + 3, actual.size()); j++) + diff += actual.at(j) + '\n'; + QFAIL(qPrintable((err ? "Output for " : "Result for ") + + expectedFn + " does not meet expectations:\n" + diff)); + } + +void tst_lupdate::doCompare(const QString &actualFn, const QString &expectedFn, bool err) +{ + QFile afile(actualFn); + QVERIFY2(afile.open(QIODevice::ReadOnly | QIODevice::Text), qPrintable(actualFn)); + QStringList actual = QString(afile.readAll()).split('\n'); + + doCompare(actual, expectedFn, err); +} + +void tst_lupdate::good_data() +{ + QTest::addColumn("directory"); + QTest::addColumn("useClangCpp"); + + QDir parsingDir(m_basePath + "good"); + QStringList dirs = parsingDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name); + +#ifndef Q_OS_WIN + dirs.removeAll(QLatin1String("backslashes")); +#endif +#ifndef Q_OS_MACOS + dirs.removeAll(QLatin1String("parseobjc")); +#endif + QSet ignoredTests = { + "lacksqobject_clang_parser", "parsecontexts_clang_parser", "parsecpp2_clang_parser", + "parsecpp_clang_parser", "prefix_clang_parser", "preprocess_clang_parser", + "parsecpp_clang_only"}; + + // Add test rows for the "classic" lupdate + for (const QString &dir : dirs) { + if (ignoredTests.contains(dir)) + continue; + QTest::newRow(dir.toLocal8Bit()) << dir << false; + } + +#if QT_CONFIG(clangcpp) && QT_CONFIG(widgets) + // Add test rows for the clang-based lupdate + ignoredTests = { + "lacksqobject", + "parsecontexts", + "parsecpp", + "parsecpp2", + "prefix", + "preprocess", + "proparsing2", // llvm8 cannot handle file name without extension + "respfile", //@lst not supported with the new parser yet (include not properly set in the compile_command.json) + "cmdline_deeppath", //no project file, new parser does not support (yet) this way of launching lupdate + "cmdline_order", // no project, new parser do not pickup on macro defined but not used. Test not needed for new parser. + "cmdline_recurse", // recursive scan without project file not supported (yet) with the new parser + }; + for (const QString &dir : dirs) { + if (ignoredTests.contains(dir)) + continue; + QTest::newRow("clang-" + dir.toLocal8Bit()) << dir << true; + } +#endif +} + +void tst_lupdate::good() +{ + QFETCH(QString, directory); + QFETCH(bool, useClangCpp); + + QString dir = m_basePath + "good/" + directory; + QString workDir = dir; + QStringList generatedtsfiles(QLatin1String("project.ts")); + QStringList lupdateArguments; + + QFile file(dir + "/lupdatecmd"); + if (file.exists()) { + QVERIFY2(file.open(QIODevice::ReadOnly | QIODevice::Text), qPrintable(file.fileName())); + while (!file.atEnd()) { + QByteArray cmdstring = file.readLine().simplified(); + if (cmdstring.startsWith('#')) + continue; + if (cmdstring.startsWith("lupdate")) { + for (auto argument : cmdstring.mid(8).simplified().split(' ')) + lupdateArguments += argument; + break; + } else if (cmdstring.startsWith("TRANSLATION:")) { + cmdstring.remove(0, 12); + generatedtsfiles.clear(); + const auto parts = cmdstring.split(' '); + for (const QByteArray &s : parts) + if (!s.isEmpty()) + generatedtsfiles << s; + } else if (cmdstring.startsWith("cd ")) { + cmdstring.remove(0, 3); + workDir = QDir::cleanPath(dir + QLatin1Char('/') + cmdstring); + } + } + file.close(); + } + + for (const QString &ts : std::as_const(generatedtsfiles)) { + QString genTs = workDir + QLatin1Char('/') + ts; + QFile::remove(genTs); + QString beforetsfile = dir + QLatin1Char('/') + ts + QLatin1String(".before"); + if (QFile::exists(beforetsfile)) + QVERIFY2(QFile::copy(beforetsfile, genTs), qPrintable(beforetsfile)); + } + + file.setFileName(workDir + QStringLiteral("/.qmake.cache")); + QVERIFY(file.open(QIODevice::WriteOnly)); + file.close(); + + if (lupdateArguments.isEmpty()) + lupdateArguments.append(QLatin1String("project.pro")); + lupdateArguments.prepend("-silent"); + if (useClangCpp) + lupdateArguments.append("-clang-parser"); + + QProcess proc; + proc.setWorkingDirectory(workDir); + proc.setProcessChannelMode(QProcess::MergedChannels); + const QString command = m_cmdLupdate + ' ' + lupdateArguments.join(' '); + proc.start(m_cmdLupdate, lupdateArguments, QIODevice::ReadWrite | QIODevice::Text); + QVERIFY2(proc.waitForStarted(), qPrintable(command + QLatin1String(" :") + proc.errorString())); + QVERIFY2(proc.waitForFinished(30000), qPrintable(command)); + const QString output = QString::fromLocal8Bit(proc.readAll()); + QVERIFY2(proc.exitStatus() == QProcess::NormalExit, + qPrintable(QLatin1Char('"') + command + "\" crashed\n" + output)); + QVERIFY2(!proc.exitCode(), + qPrintable(QLatin1Char('"') + command + "\" exited with code " + + QString::number(proc.exitCode()) + '\n' + output)); + + // If the file expectedoutput.txt exists, compare the + // console output with the content of that file + QFile outfile(dir + "/expectedoutput.txt"); + if (outfile.exists()) { + QStringList errslist = output.split(QLatin1Char('\n')); + doCompare(errslist, outfile.fileName(), true); + if (QTest::currentTestFailed()) + return; + } + + for (const QString &ts : std::as_const(generatedtsfiles)) { + if (dir.endsWith("preprocess_clang_parser")) { + doCompare(workDir + QLatin1Char('/') + ts, + dir + QLatin1Char('/') + ts + QLatin1String(".result"), true); + } else { + doCompare(workDir + QLatin1Char('/') + ts, + dir + QLatin1Char('/') + ts + QLatin1String(".result"), false); + } + } +} + +#if CHECK_SIMTEXTH +void tst_lupdate::simtexth() +{ + QFETCH(QString, one); + QFETCH(QString, two); + QFETCH(int, expected); + + int measured = getSimilarityScore(one, two.toLatin1()); + QCOMPARE(measured, expected); +} + + +void tst_lupdate::simtexth_data() +{ + using namespace QTest; + + addColumn("one"); + addColumn("two"); + addColumn("expected"); + + newRow("00") << "" << "" << 1024; + newRow("01") << "a" << "a" << 1024; + newRow("02") << "ab" << "ab" << 1024; + newRow("03") << "abc" << "abc" << 1024; + newRow("04") << "abcd" << "abcd" << 1024; +} +#endif + +QTEST_MAIN(tst_lupdate) +#include "tst_lupdate.moc" diff --git a/tests/auto/qdoc/CMakeLists.txt b/tests/auto/qdoc/CMakeLists.txt new file mode 100644 index 0000000..5a192ca --- /dev/null +++ b/tests/auto/qdoc/CMakeLists.txt @@ -0,0 +1,14 @@ +# Generated from qdoc.pro. + +# special case begin +if(CMAKE_VERSION VERSION_LESS "3.19" AND MSVC AND QT_FEATURE_debug_and_release) + message(WARNING "qdoc tests will not be built in this configuration.") + return() +endif() +# special case end + +add_subdirectory(catch_generators) +add_subdirectory(config) +add_subdirectory(generatedoutput) +add_subdirectory(qdoccommandlineparser) +add_subdirectory(utilities) diff --git a/tests/auto/qdoc/catch/CATCH_LICENSE.txt b/tests/auto/qdoc/catch/CATCH_LICENSE.txt new file mode 100644 index 0000000..36b7cd9 --- /dev/null +++ b/tests/auto/qdoc/catch/CATCH_LICENSE.txt @@ -0,0 +1,23 @@ +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/tests/auto/qdoc/catch/CMakeLists.txt b/tests/auto/qdoc/catch/CMakeLists.txt new file mode 100644 index 0000000..e69de29 diff --git a/tests/auto/qdoc/catch/catch.hpp b/tests/auto/qdoc/catch/catch.hpp new file mode 100644 index 0000000..9b309bd --- /dev/null +++ b/tests/auto/qdoc/catch/catch.hpp @@ -0,0 +1,17976 @@ +/* + * Catch v2.13.10 + * Generated: 2022-10-16 11:01:23.452308 + * ---------------------------------------------------------- + * This file has been merged from multiple headers. Please don't edit it directly + * Copyright (c) 2022 Two Blue Cubes Ltd. All rights reserved. + * + * Distributed under the Boost Software License, Version 1.0. (See accompanying + * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + */ +#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED +#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED +// start catch.hpp + + +#define CATCH_VERSION_MAJOR 2 +#define CATCH_VERSION_MINOR 13 +#define CATCH_VERSION_PATCH 10 + +#ifdef __clang__ +# pragma clang system_header +#elif defined __GNUC__ +# pragma GCC system_header +#endif + +// start catch_suppress_warnings.h + +#ifdef __clang__ +# ifdef __ICC // icpc defines the __clang__ macro +# pragma warning(push) +# pragma warning(disable: 161 1682) +# else // __ICC +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wpadded" +# pragma clang diagnostic ignored "-Wswitch-enum" +# pragma clang diagnostic ignored "-Wcovered-switch-default" +# endif +#elif defined __GNUC__ + // Because REQUIREs trigger GCC's -Wparentheses, and because still + // supported version of g++ have only buggy support for _Pragmas, + // Wparentheses have to be suppressed globally. +# pragma GCC diagnostic ignored "-Wparentheses" // See #674 for details + +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wunused-variable" +# pragma GCC diagnostic ignored "-Wpadded" +#endif +// end catch_suppress_warnings.h +#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER) +# define CATCH_IMPL +# define CATCH_CONFIG_ALL_PARTS +#endif + +// In the impl file, we want to have access to all parts of the headers +// Can also be used to sanely support PCHs +#if defined(CATCH_CONFIG_ALL_PARTS) +# define CATCH_CONFIG_EXTERNAL_INTERFACES +# if defined(CATCH_CONFIG_DISABLE_MATCHERS) +# undef CATCH_CONFIG_DISABLE_MATCHERS +# endif +# if !defined(CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER) +# define CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER +# endif +#endif + +#if !defined(CATCH_CONFIG_IMPL_ONLY) +// start catch_platform.h + +// See e.g.: +// https://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/TargetConditionals.h.auto.html +#ifdef __APPLE__ +# include +# if (defined(TARGET_OS_OSX) && TARGET_OS_OSX == 1) || \ + (defined(TARGET_OS_MAC) && TARGET_OS_MAC == 1) +# define CATCH_PLATFORM_MAC +# elif (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE == 1) +# define CATCH_PLATFORM_IPHONE +# endif + +#elif defined(linux) || defined(__linux) || defined(__linux__) +# define CATCH_PLATFORM_LINUX + +#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) || defined(__MINGW32__) +# define CATCH_PLATFORM_WINDOWS +#endif + +// end catch_platform.h + +#ifdef CATCH_IMPL +# ifndef CLARA_CONFIG_MAIN +# define CLARA_CONFIG_MAIN_NOT_DEFINED +# define CLARA_CONFIG_MAIN +# endif +#endif + +// start catch_user_interfaces.h + +namespace Catch { + unsigned int rngSeed(); +} + +// end catch_user_interfaces.h +// start catch_tag_alias_autoregistrar.h + +// start catch_common.h + +// start catch_compiler_capabilities.h + +// Detect a number of compiler features - by compiler +// The following features are defined: +// +// CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported? +// CATCH_CONFIG_WINDOWS_SEH : is Windows SEH supported? +// CATCH_CONFIG_POSIX_SIGNALS : are POSIX signals supported? +// CATCH_CONFIG_DISABLE_EXCEPTIONS : Are exceptions enabled? +// **************** +// Note to maintainers: if new toggles are added please document them +// in configuration.md, too +// **************** + +// In general each macro has a _NO_ form +// (e.g. CATCH_CONFIG_NO_POSIX_SIGNALS) which disables the feature. +// Many features, at point of detection, define an _INTERNAL_ macro, so they +// can be combined, en-mass, with the _NO_ forms later. + +#ifdef __cplusplus + +# if (__cplusplus >= 201402L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) +# define CATCH_CPP14_OR_GREATER +# endif + +# if (__cplusplus >= 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) +# define CATCH_CPP17_OR_GREATER +# endif + +#endif + +// Only GCC compiler should be used in this block, so other compilers trying to +// mask themselves as GCC should be ignored. +#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__CUDACC__) && !defined(__LCC__) +# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic push" ) +# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic pop" ) + +# define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__) + +#endif + +#if defined(__clang__) + +# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic push" ) +# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic pop" ) + +// As of this writing, IBM XL's implementation of __builtin_constant_p has a bug +// which results in calls to destructors being emitted for each temporary, +// without a matching initialization. In practice, this can result in something +// like `std::string::~string` being called on an uninitialized value. +// +// For example, this code will likely segfault under IBM XL: +// ``` +// REQUIRE(std::string("12") + "34" == "1234") +// ``` +// +// Therefore, `CATCH_INTERNAL_IGNORE_BUT_WARN` is not implemented. +# if !defined(__ibmxl__) && !defined(__CUDACC__) +# define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__) /* NOLINT(cppcoreguidelines-pro-type-vararg, hicpp-vararg) */ +# endif + +# define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + _Pragma( "clang diagnostic ignored \"-Wexit-time-destructors\"" ) \ + _Pragma( "clang diagnostic ignored \"-Wglobal-constructors\"") + +# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ + _Pragma( "clang diagnostic ignored \"-Wparentheses\"" ) + +# define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS \ + _Pragma( "clang diagnostic ignored \"-Wunused-variable\"" ) + +# define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS \ + _Pragma( "clang diagnostic ignored \"-Wgnu-zero-variadic-macro-arguments\"" ) + +# define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS \ + _Pragma( "clang diagnostic ignored \"-Wunused-template\"" ) + +#endif // __clang__ + +//////////////////////////////////////////////////////////////////////////////// +// Assume that non-Windows platforms support posix signals by default +#if !defined(CATCH_PLATFORM_WINDOWS) + #define CATCH_INTERNAL_CONFIG_POSIX_SIGNALS +#endif + +//////////////////////////////////////////////////////////////////////////////// +// We know some environments not to support full POSIX signals +#if defined(__CYGWIN__) || defined(__QNX__) || defined(__EMSCRIPTEN__) || defined(__DJGPP__) + #define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS +#endif + +#ifdef __OS400__ +# define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS +# define CATCH_CONFIG_COLOUR_NONE +#endif + +//////////////////////////////////////////////////////////////////////////////// +// Android somehow still does not support std::to_string +#if defined(__ANDROID__) +# define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING +# define CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE +#endif + +//////////////////////////////////////////////////////////////////////////////// +// Not all Windows environments support SEH properly +#if defined(__MINGW32__) +# define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH +#endif + +//////////////////////////////////////////////////////////////////////////////// +// PS4 +#if defined(__ORBIS__) +# define CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE +#endif + +//////////////////////////////////////////////////////////////////////////////// +// Cygwin +#ifdef __CYGWIN__ + +// Required for some versions of Cygwin to declare gettimeofday +// see: http://stackoverflow.com/questions/36901803/gettimeofday-not-declared-in-this-scope-cygwin +# define _BSD_SOURCE +// some versions of cygwin (most) do not support std::to_string. Use the libstd check. +// https://gcc.gnu.org/onlinedocs/gcc-4.8.2/libstdc++/api/a01053_source.html line 2812-2813 +# if !((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \ + && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF)) + +# define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING + +# endif +#endif // __CYGWIN__ + +//////////////////////////////////////////////////////////////////////////////// +// Visual C++ +#if defined(_MSC_VER) + +// Universal Windows platform does not support SEH +// Or console colours (or console at all...) +# if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP) +# define CATCH_CONFIG_COLOUR_NONE +# else +# define CATCH_INTERNAL_CONFIG_WINDOWS_SEH +# endif + +# if !defined(__clang__) // Handle Clang masquerading for msvc + +// MSVC traditional preprocessor needs some workaround for __VA_ARGS__ +// _MSVC_TRADITIONAL == 0 means new conformant preprocessor +// _MSVC_TRADITIONAL == 1 means old traditional non-conformant preprocessor +# if !defined(_MSVC_TRADITIONAL) || (defined(_MSVC_TRADITIONAL) && _MSVC_TRADITIONAL) +# define CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +# endif // MSVC_TRADITIONAL + +// Only do this if we're not using clang on Windows, which uses `diagnostic push` & `diagnostic pop` +# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION __pragma( warning(push) ) +# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION __pragma( warning(pop) ) +# endif // __clang__ + +#endif // _MSC_VER + +#if defined(_REENTRANT) || defined(_MSC_VER) +// Enable async processing, as -pthread is specified or no additional linking is required +# define CATCH_INTERNAL_CONFIG_USE_ASYNC +#endif // _MSC_VER + +//////////////////////////////////////////////////////////////////////////////// +// Check if we are compiled with -fno-exceptions or equivalent +#if defined(__EXCEPTIONS) || defined(__cpp_exceptions) || defined(_CPPUNWIND) +# define CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED +#endif + +//////////////////////////////////////////////////////////////////////////////// +// DJGPP +#ifdef __DJGPP__ +# define CATCH_INTERNAL_CONFIG_NO_WCHAR +#endif // __DJGPP__ + +//////////////////////////////////////////////////////////////////////////////// +// Embarcadero C++Build +#if defined(__BORLANDC__) + #define CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN +#endif + +//////////////////////////////////////////////////////////////////////////////// + +// Use of __COUNTER__ is suppressed during code analysis in +// CLion/AppCode 2017.2.x and former, because __COUNTER__ is not properly +// handled by it. +// Otherwise all supported compilers support COUNTER macro, +// but user still might want to turn it off +#if ( !defined(__JETBRAINS_IDE__) || __JETBRAINS_IDE__ >= 20170300L ) + #define CATCH_INTERNAL_CONFIG_COUNTER +#endif + +//////////////////////////////////////////////////////////////////////////////// + +// RTX is a special version of Windows that is real time. +// This means that it is detected as Windows, but does not provide +// the same set of capabilities as real Windows does. +#if defined(UNDER_RTSS) || defined(RTX64_BUILD) + #define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH + #define CATCH_INTERNAL_CONFIG_NO_ASYNC + #define CATCH_CONFIG_COLOUR_NONE +#endif + +#if !defined(_GLIBCXX_USE_C99_MATH_TR1) +#define CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER +#endif + +// Various stdlib support checks that require __has_include +#if defined(__has_include) + // Check if string_view is available and usable + #if __has_include() && defined(CATCH_CPP17_OR_GREATER) + # define CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW + #endif + + // Check if optional is available and usable + # if __has_include() && defined(CATCH_CPP17_OR_GREATER) + # define CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL + # endif // __has_include() && defined(CATCH_CPP17_OR_GREATER) + + // Check if byte is available and usable + # if __has_include() && defined(CATCH_CPP17_OR_GREATER) + # include + # if defined(__cpp_lib_byte) && (__cpp_lib_byte > 0) + # define CATCH_INTERNAL_CONFIG_CPP17_BYTE + # endif + # endif // __has_include() && defined(CATCH_CPP17_OR_GREATER) + + // Check if variant is available and usable + # if __has_include() && defined(CATCH_CPP17_OR_GREATER) + # if defined(__clang__) && (__clang_major__ < 8) + // work around clang bug with libstdc++ https://bugs.llvm.org/show_bug.cgi?id=31852 + // fix should be in clang 8, workaround in libstdc++ 8.2 + # include + # if defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9) + # define CATCH_CONFIG_NO_CPP17_VARIANT + # else + # define CATCH_INTERNAL_CONFIG_CPP17_VARIANT + # endif // defined(__GLIBCXX__) && defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 9) + # else + # define CATCH_INTERNAL_CONFIG_CPP17_VARIANT + # endif // defined(__clang__) && (__clang_major__ < 8) + # endif // __has_include() && defined(CATCH_CPP17_OR_GREATER) +#endif // defined(__has_include) + +#if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) +# define CATCH_CONFIG_COUNTER +#endif +#if defined(CATCH_INTERNAL_CONFIG_WINDOWS_SEH) && !defined(CATCH_CONFIG_NO_WINDOWS_SEH) && !defined(CATCH_CONFIG_WINDOWS_SEH) && !defined(CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH) +# define CATCH_CONFIG_WINDOWS_SEH +#endif +// This is set by default, because we assume that unix compilers are posix-signal-compatible by default. +#if defined(CATCH_INTERNAL_CONFIG_POSIX_SIGNALS) && !defined(CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_POSIX_SIGNALS) +# define CATCH_CONFIG_POSIX_SIGNALS +#endif +// This is set by default, because we assume that compilers with no wchar_t support are just rare exceptions. +#if !defined(CATCH_INTERNAL_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_WCHAR) +# define CATCH_CONFIG_WCHAR +#endif + +#if !defined(CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_CPP11_TO_STRING) +# define CATCH_CONFIG_CPP11_TO_STRING +#endif + +#if defined(CATCH_INTERNAL_CONFIG_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_NO_CPP17_OPTIONAL) && !defined(CATCH_CONFIG_CPP17_OPTIONAL) +# define CATCH_CONFIG_CPP17_OPTIONAL +#endif + +#if defined(CATCH_INTERNAL_CONFIG_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_NO_CPP17_STRING_VIEW) && !defined(CATCH_CONFIG_CPP17_STRING_VIEW) +# define CATCH_CONFIG_CPP17_STRING_VIEW +#endif + +#if defined(CATCH_INTERNAL_CONFIG_CPP17_VARIANT) && !defined(CATCH_CONFIG_NO_CPP17_VARIANT) && !defined(CATCH_CONFIG_CPP17_VARIANT) +# define CATCH_CONFIG_CPP17_VARIANT +#endif + +#if defined(CATCH_INTERNAL_CONFIG_CPP17_BYTE) && !defined(CATCH_CONFIG_NO_CPP17_BYTE) && !defined(CATCH_CONFIG_CPP17_BYTE) +# define CATCH_CONFIG_CPP17_BYTE +#endif + +#if defined(CATCH_CONFIG_EXPERIMENTAL_REDIRECT) +# define CATCH_INTERNAL_CONFIG_NEW_CAPTURE +#endif + +#if defined(CATCH_INTERNAL_CONFIG_NEW_CAPTURE) && !defined(CATCH_INTERNAL_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NO_NEW_CAPTURE) && !defined(CATCH_CONFIG_NEW_CAPTURE) +# define CATCH_CONFIG_NEW_CAPTURE +#endif + +#if !defined(CATCH_INTERNAL_CONFIG_EXCEPTIONS_ENABLED) && !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) +# define CATCH_CONFIG_DISABLE_EXCEPTIONS +#endif + +#if defined(CATCH_INTERNAL_CONFIG_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_NO_POLYFILL_ISNAN) && !defined(CATCH_CONFIG_POLYFILL_ISNAN) +# define CATCH_CONFIG_POLYFILL_ISNAN +#endif + +#if defined(CATCH_INTERNAL_CONFIG_USE_ASYNC) && !defined(CATCH_INTERNAL_CONFIG_NO_ASYNC) && !defined(CATCH_CONFIG_NO_USE_ASYNC) && !defined(CATCH_CONFIG_USE_ASYNC) +# define CATCH_CONFIG_USE_ASYNC +#endif + +#if defined(CATCH_INTERNAL_CONFIG_ANDROID_LOGWRITE) && !defined(CATCH_CONFIG_NO_ANDROID_LOGWRITE) && !defined(CATCH_CONFIG_ANDROID_LOGWRITE) +# define CATCH_CONFIG_ANDROID_LOGWRITE +#endif + +#if defined(CATCH_INTERNAL_CONFIG_GLOBAL_NEXTAFTER) && !defined(CATCH_CONFIG_NO_GLOBAL_NEXTAFTER) && !defined(CATCH_CONFIG_GLOBAL_NEXTAFTER) +# define CATCH_CONFIG_GLOBAL_NEXTAFTER +#endif + +// Even if we do not think the compiler has that warning, we still have +// to provide a macro that can be used by the code. +#if !defined(CATCH_INTERNAL_START_WARNINGS_SUPPRESSION) +# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION +#endif +#if !defined(CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION) +# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION +#endif +#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS +#endif +#if !defined(CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS +#endif +#if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_UNUSED_WARNINGS +#endif +#if !defined(CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_ZERO_VARIADIC_WARNINGS +#endif + +// The goal of this macro is to avoid evaluation of the arguments, but +// still have the compiler warn on problems inside... +#if !defined(CATCH_INTERNAL_IGNORE_BUT_WARN) +# define CATCH_INTERNAL_IGNORE_BUT_WARN(...) +#endif + +#if defined(__APPLE__) && defined(__apple_build_version__) && (__clang_major__ < 10) +# undef CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS +#elif defined(__clang__) && (__clang_major__ < 5) +# undef CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS +#endif + +#if !defined(CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS) +# define CATCH_INTERNAL_SUPPRESS_UNUSED_TEMPLATE_WARNINGS +#endif + +#if defined(CATCH_CONFIG_DISABLE_EXCEPTIONS) +#define CATCH_TRY if ((true)) +#define CATCH_CATCH_ALL if ((false)) +#define CATCH_CATCH_ANON(type) if ((false)) +#else +#define CATCH_TRY try +#define CATCH_CATCH_ALL catch (...) +#define CATCH_CATCH_ANON(type) catch (type) +#endif + +#if defined(CATCH_INTERNAL_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_NO_TRADITIONAL_MSVC_PREPROCESSOR) && !defined(CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR) +#define CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#endif + +// end catch_compiler_capabilities.h +#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line +#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) +#ifdef CATCH_CONFIG_COUNTER +# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ ) +#else +# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ ) +#endif + +#include +#include +#include + +// We need a dummy global operator<< so we can bring it into Catch namespace later +struct Catch_global_namespace_dummy {}; +std::ostream& operator<<(std::ostream&, Catch_global_namespace_dummy); + +namespace Catch { + + struct CaseSensitive { enum Choice { + Yes, + No + }; }; + + class NonCopyable { + NonCopyable( NonCopyable const& ) = delete; + NonCopyable( NonCopyable && ) = delete; + NonCopyable& operator = ( NonCopyable const& ) = delete; + NonCopyable& operator = ( NonCopyable && ) = delete; + + protected: + NonCopyable(); + virtual ~NonCopyable(); + }; + + struct SourceLineInfo { + + SourceLineInfo() = delete; + SourceLineInfo( char const* _file, std::size_t _line ) noexcept + : file( _file ), + line( _line ) + {} + + SourceLineInfo( SourceLineInfo const& other ) = default; + SourceLineInfo& operator = ( SourceLineInfo const& ) = default; + SourceLineInfo( SourceLineInfo&& ) noexcept = default; + SourceLineInfo& operator = ( SourceLineInfo&& ) noexcept = default; + + bool empty() const noexcept { return file[0] == '\0'; } + bool operator == ( SourceLineInfo const& other ) const noexcept; + bool operator < ( SourceLineInfo const& other ) const noexcept; + + char const* file; + std::size_t line; + }; + + std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ); + + // Bring in operator<< from global namespace into Catch namespace + // This is necessary because the overload of operator<< above makes + // lookup stop at namespace Catch + using ::operator<<; + + // Use this in variadic streaming macros to allow + // >> +StreamEndStop + // as well as + // >> stuff +StreamEndStop + struct StreamEndStop { + std::string operator+() const; + }; + template + T const& operator + ( T const& value, StreamEndStop ) { + return value; + } +} + +#define CATCH_INTERNAL_LINEINFO \ + ::Catch::SourceLineInfo( __FILE__, static_cast( __LINE__ ) ) + +// end catch_common.h +namespace Catch { + + struct RegistrarForTagAliases { + RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ); + }; + +} // end namespace Catch + +#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) \ + CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \ + CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \ + namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); } \ + CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION + +// end catch_tag_alias_autoregistrar.h +// start catch_test_registry.h + +// start catch_interfaces_testcase.h + +#include + +namespace Catch { + + class TestSpec; + + struct ITestInvoker { + virtual void invoke () const = 0; + virtual ~ITestInvoker(); + }; + + class TestCase; + struct IConfig; + + struct ITestCaseRegistry { + virtual ~ITestCaseRegistry(); + virtual std::vector const& getAllTests() const = 0; + virtual std::vector const& getAllTestsSorted( IConfig const& config ) const = 0; + }; + + bool isThrowSafe( TestCase const& testCase, IConfig const& config ); + bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ); + std::vector filterTests( std::vector const& testCases, TestSpec const& testSpec, IConfig const& config ); + std::vector const& getAllTestCasesSorted( IConfig const& config ); + +} + +// end catch_interfaces_testcase.h +// start catch_stringref.h + +#include +#include +#include +#include + +namespace Catch { + + /// A non-owning string class (similar to the forthcoming std::string_view) + /// Note that, because a StringRef may be a substring of another string, + /// it may not be null terminated. + class StringRef { + public: + using size_type = std::size_t; + using const_iterator = const char*; + + private: + static constexpr char const* const s_empty = ""; + + char const* m_start = s_empty; + size_type m_size = 0; + + public: // construction + constexpr StringRef() noexcept = default; + + StringRef( char const* rawChars ) noexcept; + + constexpr StringRef( char const* rawChars, size_type size ) noexcept + : m_start( rawChars ), + m_size( size ) + {} + + StringRef( std::string const& stdString ) noexcept + : m_start( stdString.c_str() ), + m_size( stdString.size() ) + {} + + explicit operator std::string() const { + return std::string(m_start, m_size); + } + + public: // operators + auto operator == ( StringRef const& other ) const noexcept -> bool; + auto operator != (StringRef const& other) const noexcept -> bool { + return !(*this == other); + } + + auto operator[] ( size_type index ) const noexcept -> char { + assert(index < m_size); + return m_start[index]; + } + + public: // named queries + constexpr auto empty() const noexcept -> bool { + return m_size == 0; + } + constexpr auto size() const noexcept -> size_type { + return m_size; + } + + // Returns the current start pointer. If the StringRef is not + // null-terminated, throws std::domain_exception + auto c_str() const -> char const*; + + public: // substrings and searches + // Returns a substring of [start, start + length). + // If start + length > size(), then the substring is [start, size()). + // If start > size(), then the substring is empty. + auto substr( size_type start, size_type length ) const noexcept -> StringRef; + + // Returns the current start pointer. May not be null-terminated. + auto data() const noexcept -> char const*; + + constexpr auto isNullTerminated() const noexcept -> bool { + return m_start[m_size] == '\0'; + } + + public: // iterators + constexpr const_iterator begin() const { return m_start; } + constexpr const_iterator end() const { return m_start + m_size; } + }; + + auto operator += ( std::string& lhs, StringRef const& sr ) -> std::string&; + auto operator << ( std::ostream& os, StringRef const& sr ) -> std::ostream&; + + constexpr auto operator "" _sr( char const* rawChars, std::size_t size ) noexcept -> StringRef { + return StringRef( rawChars, size ); + } +} // namespace Catch + +constexpr auto operator "" _catch_sr( char const* rawChars, std::size_t size ) noexcept -> Catch::StringRef { + return Catch::StringRef( rawChars, size ); +} + +// end catch_stringref.h +// start catch_preprocessor.hpp + + +#define CATCH_RECURSION_LEVEL0(...) __VA_ARGS__ +#define CATCH_RECURSION_LEVEL1(...) CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(CATCH_RECURSION_LEVEL0(__VA_ARGS__))) +#define CATCH_RECURSION_LEVEL2(...) CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(CATCH_RECURSION_LEVEL1(__VA_ARGS__))) +#define CATCH_RECURSION_LEVEL3(...) CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(CATCH_RECURSION_LEVEL2(__VA_ARGS__))) +#define CATCH_RECURSION_LEVEL4(...) CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(CATCH_RECURSION_LEVEL3(__VA_ARGS__))) +#define CATCH_RECURSION_LEVEL5(...) CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(CATCH_RECURSION_LEVEL4(__VA_ARGS__))) + +#ifdef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define INTERNAL_CATCH_EXPAND_VARGS(...) __VA_ARGS__ +// MSVC needs more evaluations +#define CATCH_RECURSION_LEVEL6(...) CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(CATCH_RECURSION_LEVEL5(__VA_ARGS__))) +#define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL6(CATCH_RECURSION_LEVEL6(__VA_ARGS__)) +#else +#define CATCH_RECURSE(...) CATCH_RECURSION_LEVEL5(__VA_ARGS__) +#endif + +#define CATCH_REC_END(...) +#define CATCH_REC_OUT + +#define CATCH_EMPTY() +#define CATCH_DEFER(id) id CATCH_EMPTY() + +#define CATCH_REC_GET_END2() 0, CATCH_REC_END +#define CATCH_REC_GET_END1(...) CATCH_REC_GET_END2 +#define CATCH_REC_GET_END(...) CATCH_REC_GET_END1 +#define CATCH_REC_NEXT0(test, next, ...) next CATCH_REC_OUT +#define CATCH_REC_NEXT1(test, next) CATCH_DEFER ( CATCH_REC_NEXT0 ) ( test, next, 0) +#define CATCH_REC_NEXT(test, next) CATCH_REC_NEXT1(CATCH_REC_GET_END test, next) + +#define CATCH_REC_LIST0(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ ) +#define CATCH_REC_LIST1(f, x, peek, ...) , f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0) ) ( f, peek, __VA_ARGS__ ) +#define CATCH_REC_LIST2(f, x, peek, ...) f(x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1) ) ( f, peek, __VA_ARGS__ ) + +#define CATCH_REC_LIST0_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ ) +#define CATCH_REC_LIST1_UD(f, userdata, x, peek, ...) , f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST0_UD) ) ( f, userdata, peek, __VA_ARGS__ ) +#define CATCH_REC_LIST2_UD(f, userdata, x, peek, ...) f(userdata, x) CATCH_DEFER ( CATCH_REC_NEXT(peek, CATCH_REC_LIST1_UD) ) ( f, userdata, peek, __VA_ARGS__ ) + +// Applies the function macro `f` to each of the remaining parameters, inserts commas between the results, +// and passes userdata as the first parameter to each invocation, +// e.g. CATCH_REC_LIST_UD(f, x, a, b, c) evaluates to f(x, a), f(x, b), f(x, c) +#define CATCH_REC_LIST_UD(f, userdata, ...) CATCH_RECURSE(CATCH_REC_LIST2_UD(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0)) + +#define CATCH_REC_LIST(f, ...) CATCH_RECURSE(CATCH_REC_LIST2(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0)) + +#define INTERNAL_CATCH_EXPAND1(param) INTERNAL_CATCH_EXPAND2(param) +#define INTERNAL_CATCH_EXPAND2(...) INTERNAL_CATCH_NO## __VA_ARGS__ +#define INTERNAL_CATCH_DEF(...) INTERNAL_CATCH_DEF __VA_ARGS__ +#define INTERNAL_CATCH_NOINTERNAL_CATCH_DEF +#define INTERNAL_CATCH_STRINGIZE(...) INTERNAL_CATCH_STRINGIZE2(__VA_ARGS__) +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define INTERNAL_CATCH_STRINGIZE2(...) #__VA_ARGS__ +#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param)) +#else +// MSVC is adding extra space and needs another indirection to expand INTERNAL_CATCH_NOINTERNAL_CATCH_DEF +#define INTERNAL_CATCH_STRINGIZE2(...) INTERNAL_CATCH_STRINGIZE3(__VA_ARGS__) +#define INTERNAL_CATCH_STRINGIZE3(...) #__VA_ARGS__ +#define INTERNAL_CATCH_STRINGIZE_WITHOUT_PARENS(param) (INTERNAL_CATCH_STRINGIZE(INTERNAL_CATCH_REMOVE_PARENS(param)) + 1) +#endif + +#define INTERNAL_CATCH_MAKE_NAMESPACE2(...) ns_##__VA_ARGS__ +#define INTERNAL_CATCH_MAKE_NAMESPACE(name) INTERNAL_CATCH_MAKE_NAMESPACE2(name) + +#define INTERNAL_CATCH_REMOVE_PARENS(...) INTERNAL_CATCH_EXPAND1(INTERNAL_CATCH_DEF __VA_ARGS__) + +#ifndef CATCH_CONFIG_TRADITIONAL_MSVC_PREPROCESSOR +#define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) decltype(get_wrapper()) +#define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__)) +#else +#define INTERNAL_CATCH_MAKE_TYPE_LIST2(...) INTERNAL_CATCH_EXPAND_VARGS(decltype(get_wrapper())) +#define INTERNAL_CATCH_MAKE_TYPE_LIST(...) INTERNAL_CATCH_EXPAND_VARGS(INTERNAL_CATCH_MAKE_TYPE_LIST2(INTERNAL_CATCH_REMOVE_PARENS(__VA_ARGS__))) +#endif + +#define INTERNAL_CATCH_MAKE_TYPE_LISTS_FROM_TYPES(...)\ + CATCH_REC_LIST(INTERNAL_CATCH_MAKE_TYPE_LIST,__VA_ARGS__) + +#define INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_0) INTERNAL_CATCH_REMOVE_PARENS(_0) +#define INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_0, _1) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_1_ARG(_1) +#define INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_0, _1, _2) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_2_ARG(_1, _2) +#define INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_0, _1, _2, _3) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_3_ARG(_1, _2, _3) +#define INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_0, _1, _2, _3, _4) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_4_ARG(_1, _2, _3, _4) +#define INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_0, _1, _2, _3, _4, _5) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_5_ARG(_1, _2, _3, _4, _5) +#define INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_0, _1, _2, _3, _4, _5, _6) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_6_ARG(_1, _2, _3, _4, _5, _6) +#define INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_0, _1, _2, _3, _4, _5, _6, _7) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_7_ARG(_1, _2, _3, _4, _5, _6, _7) +#define INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_8_ARG(_1, _2, _3, _4, _5, _6, _7, _8) +#define INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_9_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9) +#define INTERNAL_CATCH_REMOVE_PARENS_11_ARG(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) INTERNAL_CATCH_REMOVE_PARENS(_0), INTERNAL_CATCH_REMOVE_PARENS_10_ARG(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) + +#define INTERNAL_CATCH_VA_NARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N + +#define INTERNAL_CATCH_TYPE_GEN\ + template struct TypeList {};\ + template\ + constexpr auto get_wrapper() noexcept -> TypeList { return {}; }\ + template class...> struct TemplateTypeList{};\ + template class...Cs>\ + constexpr auto get_wrapper() noexcept -> TemplateTypeList { return {}; }\ + template\ + struct append;\ + template\ + struct rewrap;\ + template class, typename...>\ + struct create;\ + template class, typename>\ + struct convert;\ + \ + template \ + struct append { using type = T; };\ + template< template class L1, typename...E1, template class L2, typename...E2, typename...Rest>\ + struct append, L2, Rest...> { using type = typename append, Rest...>::type; };\ + template< template class L1, typename...E1, typename...Rest>\ + struct append, TypeList, Rest...> { using type = L1; };\ + \ + template< template class Container, template class List, typename...elems>\ + struct rewrap, List> { using type = TypeList>; };\ + template< template class Container, template class List, class...Elems, typename...Elements>\ + struct rewrap, List, Elements...> { using type = typename append>, typename rewrap, Elements...>::type>::type; };\ + \ + template